UNPKG

sheetxl

Version:

SheetXL - Command line tool

4,013 lines 246 kB
/**
 * @license sheetxl - SheetXL - Command line tool - v0.6.0
 *
 * (C) 2025-present SheetXL Inc. & Michael T. Ford
 * License: The license can be found at https://www.sheetxl.com/license.
 */
import { g as n, n as t, O as e, e as r, t as o, b as u, V as a } from "../cli.js";
import "node:util";
import "node:path";
import "node:fs";
import "node:os";
import "open";
import "node:repl";
import "chalk";
import "fs";
import "path";
import "commander";
var i, l = {};
var s, f = (i || (i = 1, s = function(n2) {
  n2.version = "1.0.2";
  var t2 = Math;
  function e2(n3, t3) {
    for (var e3 = 0, r3 = 0; e3 < n3.length; ++e3) r3 = t3 * r3 + n3[e3];
    return r3;
  }
  function r2(n3, t3, e3, r3, o3) {
    if (0 === t3) return e3;
    if (1 === t3) return r3;
    for (var u3 = 2 / n3, a3 = r3, i3 = 1; i3 < t3; ++i3) a3 = r3 * i3 * u3 + o3 * e3, e3 = r3, r3 = a3;
    return a3;
  }
  function o2(n3, t3, e3, o3, u3) {
    return function(e4, a3) {
      if (o3) {
        if (0 === e4) return 1 == o3 ? -1 / 0 : 1 / 0;
        if (e4 < 0) return NaN;
      }
      return 0 === a3 ? n3(e4) : 1 === a3 ? t3(e4) : a3 < 0 ? NaN : r2(e4, a3 |= 0, n3(e4), t3(e4), u3);
    };
  }
  var u2, a2, i2, l2, s2 = function() {
    var n3 = 0.636619772, o3 = [57568490574, -13362590354, 6516196407e-1, -1121442418e-2, 77392.33017, -184.9052456].reverse(), u3 = [57568490411, 1029532985, 9494680718e-3, 59272.64853, 267.8532712, 1].reverse(), a3 = [1, -0.001098628627, 2734510407e-14, -2073370639e-15, 2093887211e-16].reverse(), i3 = [-0.01562499995, 1430488765e-13, -6911147651e-15, 7621095161e-16, -934935152e-16].reverse();
    function l3(r3) {
      var l4 = 0, s4 = 0, f4 = 0, c4 = r3 * r3;
      if (r3 < 8) l4 = (s4 = e2(o3, c4)) / (f4 = e2(u3, c4));
      else {
        var m4 = r3 - 0.785398164;
        s4 = e2(a3, c4 = 64 / c4), f4 = e2(i3, c4), l4 = t2.sqrt(n3 / r3) * (t2.cos(m4) * s4 - t2.sin(m4) * f4 * 8 / r3);
      }
      return l4;
    }
    var s3 = [72362614232, -7895059235, 2423968531e-1, -2972611439e-3, 15704.4826, -30.16036606].reverse(), f3 = [144725228442, 2300535178, 1858330474e-2, 99447.43394, 376.9991397, 1].reverse(), c3 = [1, 183105e-8, -3516396496e-14, 2457520174e-15, -240337019e-15].reverse(), m3 = [0.04687499995, -2002690873e-13, 8449199096e-15, -88228987e-14, 105787412e-15].reverse();
    function p2(r3) {
      var o4 = 0, u4 = 0, a4 = 0, i4 = r3 * r3, l4 = t2.abs(r3) - 2.356194491;
      return Math.abs(r3) < 8 ? o4 = (u4 = r3 * e2(s3, i4)) / (a4 = e2(f3, i4)) : (u4 = e2(c3, i4 = 64 / i4), a4 = e2(m3, i4), o4 = t2.sqrt(n3 / t2.abs(r3)) * (t2.cos(l4) * u4 - t2.sin(l4) * a4 * 8 / t2.abs(r3)), r3 < 0 && (o4 = -o4)), o4;
    }
    return function n4(e3, o4) {
      if (o4 = Math.round(o4), !isFinite(e3)) return isNaN(e3) ? e3 : 0;
      if (o4 < 0) return (o4 % 2 ? -1 : 1) * n4(e3, -o4);
      if (e3 < 0) return (o4 % 2 ? -1 : 1) * n4(-e3, o4);
      if (0 === o4) return l3(e3);
      if (1 === o4) return p2(e3);
      if (0 === e3) return 0;
      var u4 = 0;
      if (e3 > o4) u4 = r2(e3, o4, l3(e3), p2(e3), -1);
      else {
        for (var a4 = false, i4 = 0, s4 = 0, f4 = 1, c4 = 0, m4 = 2 / e3, h2 = 2 * t2.floor((o4 + t2.floor(t2.sqrt(40 * o4))) / 2); h2 > 0; h2--) c4 = h2 * m4 * f4 - i4, i4 = f4, f4 = c4, t2.abs(f4) > 1e10 && (f4 *= 1e-10, i4 *= 1e-10, u4 *= 1e-10, s4 *= 1e-10), a4 && (s4 += f4), a4 = !a4, h2 == o4 && (u4 = i4);
        u4 /= s4 = 2 * s4 - f4;
      }
      return u4;
    };
  }(), f2 = function() {
    var n3 = 0.636619772, r3 = [-2957821389, 7062834065, -5123598036e-1, 1087988129e-2, -86327.92757, 228.4622733].reverse(), u3 = [40076544269, 7452499648e-1, 7189466438e-3, 47447.2647, 226.1030244, 1].reverse(), a3 = [1, -0.001098628627, 2734510407e-14, -2073370639e-15, 2093887211e-16].reverse(), i3 = [-0.01562499995, 1430488765e-13, -6911147651e-15, 7621095161e-16, -934945152e-16].reverse(), l3 = [-4900604943e3, 127527439e4, -51534381390, 7349264551e-1, -4237922726e-3, 8511.937935].reverse(), f3 = [249958057e5, 424441966400, 3733650367, 2245904002e-2, 102042.605, 354.9632885, 1].reverse(), c3 = [1, 183105e-8, -3516396496e-14, 2457520174e-15, -240337019e-15].reverse(), m3 = [0.04687499995, -2002690873e-13, 8449199096e-15, -88228987e-14, 105787412e-15].reverse();
    return o2(function(o3) {
      var l4 = 0, f4 = 0, c4 = 0, m4 = o3 * o3, p2 = o3 - 0.785398164;
      return o3 < 8 ? l4 = (f4 = e2(r3, m4)) / (c4 = e2(u3, m4)) + n3 * s2(o3, 0) * t2.log(o3) : (f4 = e2(a3, m4 = 64 / m4), c4 = e2(i3, m4), l4 = t2.sqrt(n3 / o3) * (t2.sin(p2) * f4 + t2.cos(p2) * c4 * 8 / o3)), l4;
    }, function(r4) {
      var o3 = 0, u4 = 0, a4 = 0, i4 = r4 * r4, p2 = r4 - 2.356194491;
      return r4 < 8 ? o3 = (u4 = r4 * e2(l3, i4)) / (a4 = e2(f3, i4)) + n3 * (s2(r4, 1) * t2.log(r4) - 1 / r4) : (u4 = e2(c3, i4 = 64 / i4), a4 = e2(m3, i4), o3 = t2.sqrt(n3 / r4) * (t2.sin(p2) * u4 + t2.cos(p2) * a4 * 8 / r4)), o3;
    }, 0, 1, -1);
  }(), c2 = (u2 = [1, 3.5156229, 3.0899424, 1.2067492, 0.2659732, 0.0360768, 45813e-7].reverse(), a2 = [0.39894228, 0.01328592, 225319e-8, -157565e-8, 916281e-8, -0.02057706, 0.02635537, -0.01647633, 392377e-8].reverse(), i2 = [0.5, 0.87890594, 0.51498869, 0.15084934, 0.02658733, 301532e-8, 32411e-8].reverse(), l2 = [0.39894228, -0.03988024, -362018e-8, 163801e-8, -0.01031555, 0.02282967, -0.02895312, 0.01787654, -420059e-8].reverse(), function n3(r3, o3) {
    if (0 === (o3 = Math.round(o3))) return function(n4) {
      return n4 <= 3.75 ? e2(u2, n4 * n4 / 14.0625) : t2.exp(t2.abs(n4)) / t2.sqrt(t2.abs(n4)) * e2(a2, 3.75 / t2.abs(n4));
    }(r3);
    if (1 === o3) return function(n4) {
      return n4 < 3.75 ? n4 * e2(i2, n4 * n4 / 14.0625) : (n4 < 0 ? -1 : 1) * t2.exp(t2.abs(n4)) / t2.sqrt(t2.abs(n4)) * e2(l2, 3.75 / t2.abs(n4));
    }(r3);
    if (o3 < 0) return NaN;
    if (0 === t2.abs(r3)) return 0;
    if (r3 == 1 / 0) return 1 / 0;
    var s3, f3 = 0, c3 = 2 / t2.abs(r3), m3 = 0, p2 = 1, h2 = 0;
    for (s3 = 2 * t2.round((o3 + t2.round(t2.sqrt(40 * o3))) / 2); s3 > 0; s3--) h2 = s3 * c3 * p2 + m3, m3 = p2, p2 = h2, t2.abs(p2) > 1e10 && (p2 *= 1e-10, m3 *= 1e-10, f3 *= 1e-10), s3 == o3 && (f3 = m3);
    return f3 *= n3(r3, 0) / p2, r3 < 0 && o3 % 2 ? -f3 : f3;
  }), m2 = function() {
    var n3 = [-0.57721566, 0.4227842, 0.23069756, 0.0348859, 262698e-8, 1075e-7, 74e-7].reverse(), r3 = [1.25331414, -0.07832358, 0.02189568, -0.01062446, 587872e-8, -25154e-7, 53208e-8].reverse(), u3 = [1, 0.15443144, -0.67278579, -0.18156897, -0.01919402, -110404e-8, -4686e-8].reverse(), a3 = [1.25331414, 0.23498619, -0.0365562, 0.01504268, -780353e-8, 325614e-8, -68245e-8].reverse();
    return o2(function(o3) {
      return o3 <= 2 ? -t2.log(o3 / 2) * c2(o3, 0) + e2(n3, o3 * o3 / 4) : t2.exp(-o3) / t2.sqrt(o3) * e2(r3, 2 / o3);
    }, function(n4) {
      return n4 <= 2 ? t2.log(n4 / 2) * c2(n4, 1) + 1 / n4 * e2(u3, n4 * n4 / 4) : t2.exp(-n4) / t2.sqrt(n4) * e2(a3, 2 / n4);
    }, 0, 2, 1);
  }();
  n2.besselj = s2, n2.bessely = f2, n2.besseli = c2, n2.besselk = m2;
}, "undefined" == typeof DO_NOT_EXPORT_BESSEL ? s(l) : s({})), l);
const c = n(f);
var m, p = { exports: {} };
var h, g = (m || (m = 1, p.exports = (h = function(n2, t2) {
  var e2 = Array.prototype.concat, r2 = Array.prototype.slice, o2 = Object.prototype.toString;
  function u2(t3, e3) {
    var r3 = t3 > e3 ? t3 : e3;
    return n2.pow(10, 17 - ~~(n2.log(r3 > 0 ? r3 : -r3) * n2.LOG10E));
  }
  var a2 = Array.isArray || function(n3) {
    return "[object Array]" === o2.call(n3);
  };
  function i2(n3) {
    return "[object Function]" === o2.call(n3);
  }
  function l2(n3) {
    return "number" == typeof n3 && n3 - n3 === 0;
  }
  function s2(n3) {
    return e2.apply([], n3);
  }
  function f2() {
    return new f2._init(arguments);
  }
  function c2() {
    return 0;
  }
  function m2() {
    return 1;
  }
  function p2(n3, t3) {
    return n3 === t3 ? 1 : 0;
  }
  f2.fn = f2.prototype, f2._init = function(n3) {
    if (a2(n3[0])) if (a2(n3[0][0])) {
      i2(n3[1]) && (n3[0] = f2.map(n3[0], n3[1]));
      for (var t3 = 0; t3 < n3[0].length; t3++) this[t3] = n3[0][t3];
      this.length = n3[0].length;
    } else this[0] = i2(n3[1]) ? f2.map(n3[0], n3[1]) : n3[0], this.length = 1;
    else if (l2(n3[0])) this[0] = f2.seq.apply(null, n3), this.length = 1;
    else {
      if (n3[0] instanceof f2) return f2(n3[0].toArray());
      this[0] = [], this.length = 1;
    }
    return this;
  }, f2._init.prototype = f2.prototype, f2._init.constructor = f2, f2.utils = { calcRdx: u2, isArray: a2, isFunction: i2, isNumber: l2, toVector: s2 }, f2._random_fn = n2.random, f2.setRandom = function(n3) {
    if ("function" != typeof n3) throw new TypeError("fn is not a function");
    f2._random_fn = n3;
  }, f2.extend = function(n3) {
    var t3, e3;
    if (1 === arguments.length) {
      for (e3 in n3) f2[e3] = n3[e3];
      return this;
    }
    for (t3 = 1; t3 < arguments.length; t3++) for (e3 in arguments[t3]) n3[e3] = arguments[t3][e3];
    return n3;
  }, f2.rows = function(n3) {
    return n3.length || 1;
  }, f2.cols = function(n3) {
    return n3[0].length || 1;
  }, f2.dimensions = function(n3) {
    return { rows: f2.rows(n3), cols: f2.cols(n3) };
  }, f2.row = function(n3, t3) {
    return a2(t3) ? t3.map(function(t4) {
      return f2.row(n3, t4);
    }) : n3[t3];
  }, f2.rowa = function(n3, t3) {
    return f2.row(n3, t3);
  }, f2.col = function(n3, t3) {
    if (a2(t3)) {
      var e3 = f2.arange(n3.length).map(function() {
        return new Array(t3.length);
      });
      return t3.forEach(function(t4, r4) {
        f2.arange(n3.length).forEach(function(o4) {
          e3[o4][r4] = n3[o4][t4];
        });
      }), e3;
    }
    for (var r3 = new Array(n3.length), o3 = 0; o3 < n3.length; o3++) r3[o3] = [n3[o3][t3]];
    return r3;
  }, f2.cola = function(n3, t3) {
    return f2.col(n3, t3).map(function(n4) {
      return n4[0];
    });
  }, f2.diag = function(n3) {
    for (var t3 = f2.rows(n3), e3 = new Array(t3), r3 = 0; r3 < t3; r3++) e3[r3] = [n3[r3][r3]];
    return e3;
  }, f2.antidiag = function(n3) {
    for (var t3 = f2.rows(n3) - 1, e3 = new Array(t3), r3 = 0; t3 >= 0; t3--, r3++) e3[r3] = [n3[r3][t3]];
    return e3;
  }, f2.transpose = function(n3) {
    var t3, e3, r3, o3, u3, i3 = [];
    for (a2(n3[0]) || (n3 = [n3]), e3 = n3.length, r3 = n3[0].length, u3 = 0; u3 < r3; u3++) {
      for (t3 = new Array(e3), o3 = 0; o3 < e3; o3++) t3[o3] = n3[o3][u3];
      i3.push(t3);
    }
    return 1 === i3.length ? i3[0] : i3;
  }, f2.map = function(n3, t3, e3) {
    var r3, o3, u3, i3, l3;
    for (a2(n3[0]) || (n3 = [n3]), o3 = n3.length, u3 = n3[0].length, i3 = e3 ? n3 : new Array(o3), r3 = 0; r3 < o3; r3++) for (i3[r3] || (i3[r3] = new Array(u3)), l3 = 0; l3 < u3; l3++) i3[r3][l3] = t3(n3[r3][l3], r3, l3);
    return 1 === i3.length ? i3[0] : i3;
  }, f2.cumreduce = function(n3, t3, e3) {
    var r3, o3, u3, i3, l3;
    for (a2(n3[0]) || (n3 = [n3]), o3 = n3.length, u3 = n3[0].length, i3 = e3 ? n3 : new Array(o3), r3 = 0; r3 < o3; r3++) for (i3[r3] || (i3[r3] = new Array(u3)), u3 > 0 && (i3[r3][0] = n3[r3][0]), l3 = 1; l3 < u3; l3++) i3[r3][l3] = t3(i3[r3][l3 - 1], n3[r3][l3]);
    return 1 === i3.length ? i3[0] : i3;
  }, f2.alter = function(n3, t3) {
    return f2.map(n3, t3, true);
  }, f2.create = function(n3, t3, e3) {
    var r3, o3, u3 = new Array(n3);
    for (i2(t3) && (e3 = t3, t3 = n3), r3 = 0; r3 < n3; r3++) for (u3[r3] = new Array(t3), o3 = 0; o3 < t3; o3++) u3[r3][o3] = e3(r3, o3);
    return u3;
  }, f2.zeros = function(n3, t3) {
    return l2(t3) || (t3 = n3), f2.create(n3, t3, c2);
  }, f2.ones = function(n3, t3) {
    return l2(t3) || (t3 = n3), f2.create(n3, t3, m2);
  }, f2.rand = function(n3, t3) {
    return l2(t3) || (t3 = n3), f2.create(n3, t3, f2._random_fn);
  }, f2.identity = function(n3, t3) {
    return l2(t3) || (t3 = n3), f2.create(n3, t3, p2);
  }, f2.symmetric = function(n3) {
    var t3, e3, r3 = n3.length;
    if (n3.length !== n3[0].length) return false;
    for (t3 = 0; t3 < r3; t3++) for (e3 = 0; e3 < r3; e3++) if (n3[e3][t3] !== n3[t3][e3]) return false;
    return true;
  }, f2.clear = function(n3) {
    return f2.alter(n3, c2);
  }, f2.seq = function(n3, t3, e3, r3) {
    i2(r3) || (r3 = false);
    var o3, a3 = [], l3 = u2(n3, t3), s3 = (t3 * l3 - n3 * l3) / ((e3 - 1) * l3), f3 = n3;
    for (o3 = 0; f3 <= t3 && o3 < e3; f3 = (n3 * l3 + s3 * l3 * ++o3) / l3) a3.push(r3 ? r3(f3, o3) : f3);
    return a3;
  }, f2.arange = function(n3, e3, r3) {
    var o3, u3 = [];
    if (r3 = r3 || 1, e3 === t2 && (e3 = n3, n3 = 0), n3 === e3 || 0 === r3) return [];
    if (n3 < e3 && r3 < 0) return [];
    if (n3 > e3 && r3 > 0) return [];
    if (r3 > 0) for (o3 = n3; o3 < e3; o3 += r3) u3.push(o3);
    else for (o3 = n3; o3 > e3; o3 += r3) u3.push(o3);
    return u3;
  }, f2.slice = /* @__PURE__ */ function() {
    function n3(n4, e4, r3, o3) {
      var u3, a3 = [], i3 = n4.length;
      if (e4 === t2 && r3 === t2 && o3 === t2) return f2.copy(n4);
      if (o3 = o3 || 1, (e4 = (e4 = e4 || 0) >= 0 ? e4 : i3 + e4) === (r3 = (r3 = r3 || n4.length) >= 0 ? r3 : i3 + r3) || 0 === o3) return [];
      if (e4 < r3 && o3 < 0) return [];
      if (e4 > r3 && o3 > 0) return [];
      if (o3 > 0) for (u3 = e4; u3 < r3; u3 += o3) a3.push(n4[u3]);
      else for (u3 = e4; u3 > r3; u3 += o3) a3.push(n4[u3]);
      return a3;
    }
    function e3(t3, e4) {
      var r3, o3;
      return l2((e4 = e4 || {}).row) ? l2(e4.col) ? t3[e4.row][e4.col] : n3(f2.rowa(t3, e4.row), (r3 = e4.col || {}).start, r3.end, r3.step) : l2(e4.col) ? n3(f2.cola(t3, e4.col), (o3 = e4.row || {}).start, o3.end, o3.step) : (o3 = e4.row || {}, r3 = e4.col || {}, n3(t3, o3.start, o3.end, o3.step).map(function(t4) {
        return n3(t4, r3.start, r3.end, r3.step);
      }));
    }
    return e3;
  }(), f2.sliceAssign = function(e3, r3, o3) {
    var u3, a3;
    if (l2(r3.row)) {
      if (l2(r3.col)) return e3[r3.row][r3.col] = o3;
      r3.col = r3.col || {}, r3.col.start = r3.col.start || 0, r3.col.end = r3.col.end || e3[0].length, r3.col.step = r3.col.step || 1, u3 = f2.arange(r3.col.start, n2.min(e3.length, r3.col.end), r3.col.step);
      var i3 = r3.row;
      return u3.forEach(function(n3, t3) {
        e3[i3][n3] = o3[t3];
      }), e3;
    }
    if (l2(r3.col)) {
      r3.row = r3.row || {}, r3.row.start = r3.row.start || 0, r3.row.end = r3.row.end || e3.length, r3.row.step = r3.row.step || 1, a3 = f2.arange(r3.row.start, n2.min(e3[0].length, r3.row.end), r3.row.step);
      var s3 = r3.col;
      return a3.forEach(function(n3, t3) {
        e3[n3][s3] = o3[t3];
      }), e3;
    }
    return o3[0].length === t2 && (o3 = [o3]), r3.row.start = r3.row.start || 0, r3.row.end = r3.row.end || e3.length, r3.row.step = r3.row.step || 1, r3.col.start = r3.col.start || 0, r3.col.end = r3.col.end || e3[0].length, r3.col.step = r3.col.step || 1, a3 = f2.arange(r3.row.start, n2.min(e3.length, r3.row.end), r3.row.step), u3 = f2.arange(r3.col.start, n2.min(e3[0].length, r3.col.end), r3.col.step), a3.forEach(function(n3, t3) {
      u3.forEach(function(r4, u4) {
        e3[n3][r4] = o3[t3][u4];
      });
    }), e3;
  }, f2.diagonal = function(n3) {
    var t3 = f2.zeros(n3.length, n3.length);
    return n3.forEach(function(n4, e3) {
      t3[e3][e3] = n4;
    }), t3;
  }, f2.copy = function(n3) {
    return n3.map(function(n4) {
      return l2(n4) ? n4 : n4.map(function(n5) {
        return n5;
      });
    });
  };
  var h2 = f2.prototype;
  return h2.length = 0, h2.push = Array.prototype.push, h2.sort = Array.prototype.sort, h2.splice = Array.prototype.splice, h2.slice = Array.prototype.slice, h2.toArray = function() {
    return this.length > 1 ? r2.call(this) : r2.call(this)[0];
  }, h2.map = function(n3, t3) {
    return f2(f2.map(this, n3, t3));
  }, h2.cumreduce = function(n3, t3) {
    return f2(f2.cumreduce(this, n3, t3));
  }, h2.alter = function(n3) {
    return f2.alter(this, n3), this;
  }, function(n3) {
    for (var t3 = 0; t3 < n3.length; t3++) (function(n4) {
      h2[n4] = function(t4) {
        var e3, r3 = this;
        return t4 ? (setTimeout(function() {
          t4.call(r3, h2[n4].call(r3));
        }), this) : (e3 = f2[n4](this), a2(e3) ? f2(e3) : e3);
      };
    })(n3[t3]);
  }("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")), function(n3) {
    for (var t3 = 0; t3 < n3.length; t3++) (function(n4) {
      h2[n4] = function(t4, e3) {
        var r3 = this;
        return e3 ? (setTimeout(function() {
          e3.call(r3, h2[n4].call(r3, t4));
        }), this) : f2(f2[n4](this, t4));
      };
    })(n3[t3]);
  }("row col".split(" ")), function(n3) {
    for (var t3 = 0; t3 < n3.length; t3++) (function(n4) {
      h2[n4] = function() {
        return f2(f2[n4].apply(null, arguments));
      };
    })(n3[t3]);
  }("create zeros ones rand identity".split(" ")), f2;
}(Math), function(n2, t2) {
  var e2 = n2.utils.isFunction;
  function r2(n3, t3) {
    return n3 - t3;
  }
  function o2(n3, e3, r3) {
    return t2.max(e3, t2.min(n3, r3));
  }
  n2.sum = function(n3) {
    for (var t3 = 0, e3 = n3.length; --e3 >= 0; ) t3 += n3[e3];
    return t3;
  }, n2.sumsqrd = function(n3) {
    for (var t3 = 0, e3 = n3.length; --e3 >= 0; ) t3 += n3[e3] * n3[e3];
    return t3;
  }, n2.sumsqerr = function(t3) {
    for (var e3, r3 = n2.mean(t3), o3 = 0, u3 = t3.length; --u3 >= 0; ) o3 += (e3 = t3[u3] - r3) * e3;
    return o3;
  }, n2.sumrow = function(n3) {
    for (var t3 = 0, e3 = n3.length; --e3 >= 0; ) t3 += n3[e3];
    return t3;
  }, n2.product = function(n3) {
    for (var t3 = 1, e3 = n3.length; --e3 >= 0; ) t3 *= n3[e3];
    return t3;
  }, n2.min = function(n3) {
    for (var t3 = n3[0], e3 = 0; ++e3 < n3.length; ) n3[e3] < t3 && (t3 = n3[e3]);
    return t3;
  }, n2.max = function(n3) {
    for (var t3 = n3[0], e3 = 0; ++e3 < n3.length; ) n3[e3] > t3 && (t3 = n3[e3]);
    return t3;
  }, n2.unique = function(n3) {
    for (var t3 = {}, e3 = [], r3 = 0; r3 < n3.length; r3++) t3[n3[r3]] || (t3[n3[r3]] = true, e3.push(n3[r3]));
    return e3;
  }, n2.mean = function(t3) {
    return n2.sum(t3) / t3.length;
  }, n2.meansqerr = function(t3) {
    return n2.sumsqerr(t3) / t3.length;
  }, n2.geomean = function(e3) {
    var r3 = e3.map(t2.log), o3 = n2.mean(r3);
    return t2.exp(o3);
  }, n2.median = function(n3) {
    var t3 = n3.length, e3 = n3.slice().sort(r2);
    return 1 & t3 ? e3[t3 / 2 | 0] : (e3[t3 / 2 - 1] + e3[t3 / 2]) / 2;
  }, n2.cumsum = function(t3) {
    return n2.cumreduce(t3, function(n3, t4) {
      return n3 + t4;
    });
  }, n2.cumprod = function(t3) {
    return n2.cumreduce(t3, function(n3, t4) {
      return n3 * t4;
    });
  }, n2.diff = function(n3) {
    var t3, e3 = [], r3 = n3.length;
    for (t3 = 1; t3 < r3; t3++) e3.push(n3[t3] - n3[t3 - 1]);
    return e3;
  }, n2.rank = function(n3) {
    var t3, e3 = [], o3 = {};
    for (t3 = 0; t3 < n3.length; t3++) o3[l2 = n3[t3]] ? o3[l2]++ : (o3[l2] = 1, e3.push(l2));
    var u3 = e3.sort(r2), a2 = {}, i2 = 1;
    for (t3 = 0; t3 < u3.length; t3++) {
      var l2, s2 = o3[l2 = u3[t3]], f2 = (i2 + (i2 + s2 - 1)) / 2;
      a2[l2] = f2, i2 += s2;
    }
    return n3.map(function(n4) {
      return a2[n4];
    });
  }, n2.mode = function(n3) {
    var t3, e3 = n3.length, o3 = n3.slice().sort(r2), u3 = 1, a2 = 0, i2 = 0, l2 = [];
    for (t3 = 0; t3 < e3; t3++) o3[t3] === o3[t3 + 1] ? u3++ : (u3 > a2 ? (l2 = [o3[t3]], a2 = u3, i2 = 0) : u3 === a2 && (l2.push(o3[t3]), i2++), u3 = 1);
    return 0 === i2 ? l2[0] : l2;
  }, n2.range = function(t3) {
    return n2.max(t3) - n2.min(t3);
  }, n2.variance = function(t3, e3) {
    return n2.sumsqerr(t3) / (t3.length - (e3 ? 1 : 0));
  }, n2.pooledvariance = function(t3) {
    var e3 = t3.reduce(function(t4, e4) {
      return t4 + n2.sumsqerr(e4);
    }, 0), r3 = t3.reduce(function(n3, t4) {
      return n3 + t4.length;
    }, 0);
    return e3 / (r3 - t3.length);
  }, n2.deviation = function(t3) {
    for (var e3 = n2.mean(t3), r3 = t3.length, o3 = new Array(r3), u3 = 0; u3 < r3; u3++) o3[u3] = t3[u3] - e3;
    return o3;
  }, n2.stdev = function(e3, r3) {
    return t2.sqrt(n2.variance(e3, r3));
  }, n2.pooledstdev = function(e3) {
    return t2.sqrt(n2.pooledvariance(e3));
  }, n2.meandev = function(e3) {
    for (var r3 = n2.mean(e3), o3 = [], u3 = e3.length - 1; u3 >= 0; u3--) o3.push(t2.abs(e3[u3] - r3));
    return n2.mean(o3);
  }, n2.meddev = function(e3) {
    for (var r3 = n2.median(e3), o3 = [], u3 = e3.length - 1; u3 >= 0; u3--) o3.push(t2.abs(e3[u3] - r3));
    return n2.median(o3);
  }, n2.coeffvar = function(t3) {
    return n2.stdev(t3) / n2.mean(t3);
  }, n2.quartiles = function(n3) {
    var e3 = n3.length, o3 = n3.slice().sort(r2);
    return [o3[t2.round(e3 / 4) - 1], o3[t2.round(e3 / 2) - 1], o3[t2.round(3 * e3 / 4) - 1]];
  }, n2.quantiles = function(n3, e3, u3, a2) {
    var i2, l2, s2, f2, c2, m2 = n3.slice().sort(r2), p2 = [e3.length], h2 = n3.length;
    for (void 0 === u3 && (u3 = 3 / 8), void 0 === a2 && (a2 = 3 / 8), i2 = 0; i2 < e3.length; i2++) s2 = h2 * (l2 = e3[i2]) + (u3 + l2 * (1 - u3 - a2)), f2 = t2.floor(o2(s2, 1, h2 - 1)), c2 = o2(s2 - f2, 0, 1), p2[i2] = (1 - c2) * m2[f2 - 1] + c2 * m2[f2];
    return p2;
  }, n2.percentile = function(n3, t3, e3) {
    var o3 = n3.slice().sort(r2), u3 = t3 * (o3.length + (e3 ? 1 : -1)) + (e3 ? 0 : 1), a2 = parseInt(u3), i2 = u3 - a2;
    return a2 + 1 < o3.length ? o3[a2 - 1] + i2 * (o3[a2] - o3[a2 - 1]) : o3[a2 - 1];
  }, n2.percentileOfScore = function(n3, t3, e3) {
    var r3, o3, u3 = 0, a2 = n3.length, i2 = false;
    for ("strict" === e3 && (i2 = true), o3 = 0; o3 < a2; o3++) r3 = n3[o3], (i2 && r3 < t3 || !i2 && r3 <= t3) && u3++;
    return u3 / a2;
  }, n2.histogram = function(e3, r3) {
    r3 = r3 || 4;
    var o3, u3 = n2.min(e3), a2 = (n2.max(e3) - u3) / r3, i2 = e3.length, l2 = [];
    for (o3 = 0; o3 < r3; o3++) l2[o3] = 0;
    for (o3 = 0; o3 < i2; o3++) l2[t2.min(t2.floor((e3[o3] - u3) / a2), r3 - 1)] += 1;
    return l2;
  }, n2.covariance = function(t3, e3) {
    var r3, o3 = n2.mean(t3), u3 = n2.mean(e3), a2 = t3.length, i2 = new Array(a2);
    for (r3 = 0; r3 < a2; r3++) i2[r3] = (t3[r3] - o3) * (e3[r3] - u3);
    return n2.sum(i2) / (a2 - 1);
  }, n2.corrcoeff = function(t3, e3) {
    return n2.covariance(t3, e3) / n2.stdev(t3, 1) / n2.stdev(e3, 1);
  }, n2.spearmancoeff = function(t3, e3) {
    return t3 = n2.rank(t3), e3 = n2.rank(e3), n2.corrcoeff(t3, e3);
  }, n2.stanMoment = function(e3, r3) {
    for (var o3 = n2.mean(e3), u3 = n2.stdev(e3), a2 = e3.length, i2 = 0, l2 = 0; l2 < a2; l2++) i2 += t2.pow((e3[l2] - o3) / u3, r3);
    return i2 / e3.length;
  }, n2.skewness = function(t3) {
    return n2.stanMoment(t3, 3);
  }, n2.kurtosis = function(t3) {
    return n2.stanMoment(t3, 4) - 3;
  };
  var u2 = n2.prototype;
  !function(t3) {
    for (var r3 = 0; r3 < t3.length; r3++) (function(t4) {
      u2[t4] = function(r4, o3) {
        var a2 = [], i2 = 0, l2 = this;
        if (e2(r4) && (o3 = r4, r4 = false), o3) return setTimeout(function() {
          o3.call(l2, u2[t4].call(l2, r4));
        }), this;
        if (this.length > 1) {
          for (l2 = true === r4 ? this : this.transpose(); i2 < l2.length; i2++) a2[i2] = n2[t4](l2[i2]);
          return a2;
        }
        return n2[t4](this[0], r4);
      };
    })(t3[r3]);
  }("cumsum cumprod".split(" ")), function(t3) {
    for (var r3 = 0; r3 < t3.length; r3++) (function(t4) {
      u2[t4] = function(r4, o3) {
        var a2 = [], i2 = 0, l2 = this;
        if (e2(r4) && (o3 = r4, r4 = false), o3) return setTimeout(function() {
          o3.call(l2, u2[t4].call(l2, r4));
        }), this;
        if (this.length > 1) {
          for ("sumrow" !== t4 && (l2 = true === r4 ? this : this.transpose()); i2 < l2.length; i2++) a2[i2] = n2[t4](l2[i2]);
          return true === r4 ? n2[t4](n2.utils.toVector(a2)) : a2;
        }
        return n2[t4](this[0], r4);
      };
    })(t3[r3]);
  }("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")), function(t3) {
    for (var r3 = 0; r3 < t3.length; r3++) (function(t4) {
      u2[t4] = function() {
        var r4, o3 = [], a2 = 0, i2 = this, l2 = Array.prototype.slice.call(arguments);
        if (e2(l2[l2.length - 1])) {
          r4 = l2[l2.length - 1];
          var s2 = l2.slice(0, l2.length - 1);
          return setTimeout(function() {
            r4.call(i2, u2[t4].apply(i2, s2));
          }), this;
        }
        r4 = void 0;
        var f2 = function(e3) {
          return n2[t4].apply(i2, [e3].concat(l2));
        };
        if (this.length > 1) {
          for (i2 = i2.transpose(); a2 < i2.length; a2++) o3[a2] = f2(i2[a2]);
          return o3;
        }
        return f2(this[0]);
      };
    })(t3[r3]);
  }("quantiles percentileOfScore".split(" "));
}(h, Math), function(n2, t2) {
  n2.gammaln = function(n3) {
    var e2, r2, o2, u2 = 0, a2 = [76.18009172947146, -86.50532032941678, 24.01409824083091, -1.231739572450155, 0.001208650973866179, -5395239384953e-18], i2 = 1.000000000190015;
    for (o2 = (r2 = e2 = n3) + 5.5, o2 -= (e2 + 0.5) * t2.log(o2); u2 < 6; u2++) i2 += a2[u2] / ++r2;
    return t2.log(2.5066282746310007 * i2 / e2) - o2;
  }, n2.loggam = function(n3) {
    var e2, r2, o2, u2, a2, i2, l2, s2 = [0.08333333333333333, -0.002777777777777778, 7936507936507937e-19, -5952380952380952e-19, 8417508417508418e-19, -0.001917526917526918, 0.00641025641025641, -0.02955065359477124, 0.1796443723688307, -1.3924322169059];
    if (e2 = n3, l2 = 0, 1 == n3 || 2 == n3) return 0;
    for (n3 <= 7 && (e2 = n3 + (l2 = t2.floor(7 - n3))), r2 = 1 / (e2 * e2), o2 = 2 * t2.PI, a2 = s2[9], i2 = 8; i2 >= 0; i2--) a2 *= r2, a2 += s2[i2];
    if (u2 = a2 / e2 + 0.5 * t2.log(o2) + (e2 - 0.5) * t2.log(e2) - e2, n3 <= 7) for (i2 = 1; i2 <= l2; i2++) u2 -= t2.log(e2 - 1), e2 -= 1;
    return u2;
  }, n2.gammafn = function(n3) {
    var e2, r2, o2, u2, a2 = [-1.716185138865495, 24.76565080557592, -379.80425647094563, 629.3311553128184, 866.9662027904133, -31451.272968848367, -36144.413418691176, 66456.14382024054], i2 = [-30.8402300119739, 315.35062697960416, -1015.1563674902192, -3107.771671572311, 22538.11842098015, 4755.846277527881, -134659.9598649693, -115132.2596755535], l2 = false, s2 = 0, f2 = 0, c2 = 0, m2 = n3;
    if (n3 > 171.6243769536076) return 1 / 0;
    if (m2 <= 0) {
      if (!(u2 = m2 % 1 + 36e-17)) return 1 / 0;
      l2 = (1 & m2 ? -1 : 1) * t2.PI / t2.sin(t2.PI * u2), m2 = 1 - m2;
    }
    for (o2 = m2, r2 = m2 < 1 ? m2++ : (m2 -= s2 = (0 | m2) - 1) - 1, e2 = 0; e2 < 8; ++e2) c2 = (c2 + a2[e2]) * r2, f2 = f2 * r2 + i2[e2];
    if (u2 = c2 / f2 + 1, o2 < m2) u2 /= o2;
    else if (o2 > m2) for (e2 = 0; e2 < s2; ++e2) u2 *= m2, m2++;
    return l2 && (u2 = l2 / u2), u2;
  }, n2.gammap = function(t3, e2) {
    return n2.lowRegGamma(t3, e2) * n2.gammafn(t3);
  }, n2.lowRegGamma = function(e2, r2) {
    var o2, u2 = n2.gammaln(e2), a2 = e2, i2 = 1 / e2, l2 = i2, s2 = r2 + 1 - e2, f2 = 1 / 1e-30, c2 = 1 / s2, m2 = c2, p2 = 1, h2 = -~(8.5 * t2.log(e2 >= 1 ? e2 : 1 / e2) + 0.4 * e2 + 17);
    if (r2 < 0 || e2 <= 0) return NaN;
    if (r2 < e2 + 1) {
      for (; p2 <= h2; p2++) i2 += l2 *= r2 / ++a2;
      return i2 * t2.exp(-r2 + e2 * t2.log(r2) - u2);
    }
    for (; p2 <= h2; p2++) m2 *= (c2 = 1 / (c2 = (o2 = -p2 * (p2 - e2)) * c2 + (s2 += 2))) * (f2 = s2 + o2 / f2);
    return 1 - m2 * t2.exp(-r2 + e2 * t2.log(r2) - u2);
  }, n2.factorialln = function(t3) {
    return t3 < 0 ? NaN : n2.gammaln(t3 + 1);
  }, n2.factorial = function(t3) {
    return t3 < 0 ? NaN : n2.gammafn(t3 + 1);
  }, n2.combination = function(e2, r2) {
    return e2 > 170 || r2 > 170 ? t2.exp(n2.combinationln(e2, r2)) : n2.factorial(e2) / n2.factorial(r2) / n2.factorial(e2 - r2);
  }, n2.combinationln = function(t3, e2) {
    return n2.factorialln(t3) - n2.factorialln(e2) - n2.factorialln(t3 - e2);
  }, n2.permutation = function(t3, e2) {
    return n2.factorial(t3) / n2.factorial(t3 - e2);
  }, n2.betafn = function(e2, r2) {
    if (!(e2 <= 0 || r2 <= 0)) return e2 + r2 > 170 ? t2.exp(n2.betaln(e2, r2)) : n2.gammafn(e2) * n2.gammafn(r2) / n2.gammafn(e2 + r2);
  }, n2.betaln = function(t3, e2) {
    return n2.gammaln(t3) + n2.gammaln(e2) - n2.gammaln(t3 + e2);
  }, n2.betacf = function(n3, e2, r2) {
    var o2, u2, a2, i2, l2 = 1e-30, s2 = 1, f2 = e2 + r2, c2 = e2 + 1, m2 = e2 - 1, p2 = 1, h2 = 1 - f2 * n3 / c2;
    for (t2.abs(h2) < l2 && (h2 = l2), i2 = h2 = 1 / h2; s2 <= 100 && (h2 = 1 + (u2 = s2 * (r2 - s2) * n3 / ((m2 + (o2 = 2 * s2)) * (e2 + o2))) * h2, t2.abs(h2) < l2 && (h2 = l2), p2 = 1 + u2 / p2, t2.abs(p2) < l2 && (p2 = l2), i2 *= (h2 = 1 / h2) * p2, h2 = 1 + (u2 = -(e2 + s2) * (f2 + s2) * n3 / ((e2 + o2) * (c2 + o2))) * h2, t2.abs(h2) < l2 && (h2 = l2), p2 = 1 + u2 / p2, t2.abs(p2) < l2 && (p2 = l2), i2 *= a2 = (h2 = 1 / h2) * p2, !(t2.abs(a2 - 1) < 3e-7)); s2++) ;
    return i2;
  }, n2.gammapinv = function(e2, r2) {
    var o2, u2, a2, i2, l2, s2, f2 = 0, c2 = r2 - 1, m2 = 1e-8, p2 = n2.gammaln(r2);
    if (e2 >= 1) return t2.max(100, r2 + 100 * t2.sqrt(r2));
    if (e2 <= 0) return 0;
    for (r2 > 1 ? (l2 = t2.log(c2), s2 = t2.exp(c2 * (l2 - 1) - p2), i2 = e2 < 0.5 ? e2 : 1 - e2, o2 = (2.30753 + 0.27061 * (u2 = t2.sqrt(-2 * t2.log(i2)))) / (1 + u2 * (0.99229 + 0.04481 * u2)) - u2, e2 < 0.5 && (o2 = -o2), o2 = t2.max(1e-3, r2 * t2.pow(1 - 1 / (9 * r2) - o2 / (3 * t2.sqrt(r2)), 3))) : o2 = e2 < (u2 = 1 - r2 * (0.253 + 0.12 * r2)) ? t2.pow(e2 / u2, 1 / r2) : 1 - t2.log(1 - (e2 - u2) / (1 - u2)); f2 < 12; f2++) {
      if (o2 <= 0) return 0;
      if ((o2 -= u2 = (a2 = (n2.lowRegGamma(r2, o2) - e2) / (u2 = r2 > 1 ? s2 * t2.exp(-(o2 - c2) + c2 * (t2.log(o2) - l2)) : t2.exp(-o2 + c2 * t2.log(o2) - p2))) / (1 - 0.5 * t2.min(1, a2 * ((r2 - 1) / o2 - 1)))) <= 0 && (o2 = 0.5 * (o2 + u2)), t2.abs(u2) < m2 * o2) break;
    }
    return o2;
  }, n2.erf = function(n3) {
    var e2, r2, o2, u2, a2 = [-1.3026537197817094, 0.6419697923564902, 0.019476473204185836, -0.00956151478680863, -946595344482036e-18, 366839497852761e-18, 42523324806907e-18, -20278578112534e-18, -1624290004647e-18, 130365583558e-17, 15626441722e-18, -85238095915e-18, 6529054439e-18, 5059343495e-18, -991364156e-18, -227365122e-18, 96467911e-18, 2394038e-18, -6886027e-18, 894487e-18, 313092e-18, -112708e-18, 381e-18, 7106e-18, -1523e-18, -94e-18, 121e-18, -28e-18], i2 = a2.length - 1, l2 = false, s2 = 0, f2 = 0;
    for (n3 < 0 && (n3 = -n3, l2 = true), r2 = 4 * (e2 = 2 / (2 + n3)) - 2; i2 > 0; i2--) o2 = s2, s2 = r2 * s2 - f2 + a2[i2], f2 = o2;
    return u2 = e2 * t2.exp(-n3 * n3 + 0.5 * (a2[0] + r2 * s2) - f2), l2 ? u2 - 1 : 1 - u2;
  }, n2.erfc = function(t3) {
    return 1 - n2.erf(t3);
  }, n2.erfcinv = function(e2) {
    var r2, o2, u2, a2, i2 = 0;
    if (e2 >= 2) return -100;
    if (e2 <= 0) return 100;
    for (a2 = e2 < 1 ? e2 : 2 - e2, r2 = -0.70711 * ((2.30753 + 0.27061 * (u2 = t2.sqrt(-2 * t2.log(a2 / 2)))) / (1 + u2 * (0.99229 + 0.04481 * u2)) - u2); i2 < 2; i2++) r2 += (o2 = n2.erfc(r2) - a2) / (1.1283791670955126 * t2.exp(-r2 * r2) - r2 * o2);
    return e2 < 1 ? r2 : -r2;
  }, n2.ibetainv = function(e2, r2, o2) {
    var u2, a2, i2, l2, s2, f2, c2, m2, p2, h2, g2 = 1e-8, d2 = r2 - 1, N2 = o2 - 1, b2 = 0;
    if (e2 <= 0) return 0;
    if (e2 >= 1) return 1;
    for (r2 >= 1 && o2 >= 1 ? (i2 = e2 < 0.5 ? e2 : 1 - e2, f2 = (2.30753 + 0.27061 * (l2 = t2.sqrt(-2 * t2.log(i2)))) / (1 + l2 * (0.99229 + 0.04481 * l2)) - l2, e2 < 0.5 && (f2 = -f2), c2 = (f2 * f2 - 3) / 6, m2 = 2 / (1 / (2 * r2 - 1) + 1 / (2 * o2 - 1)), p2 = f2 * t2.sqrt(c2 + m2) / m2 - (1 / (2 * o2 - 1) - 1 / (2 * r2 - 1)) * (c2 + 5 / 6 - 2 / (3 * m2)), f2 = r2 / (r2 + o2 * t2.exp(2 * p2))) : (u2 = t2.log(r2 / (r2 + o2)), a2 = t2.log(o2 / (r2 + o2)), f2 = e2 < (l2 = t2.exp(r2 * u2) / r2) / (p2 = l2 + (s2 = t2.exp(o2 * a2) / o2)) ? t2.pow(r2 * p2 * e2, 1 / r2) : 1 - t2.pow(o2 * p2 * (1 - e2), 1 / o2)), h2 = -n2.gammaln(r2) - n2.gammaln(o2) + n2.gammaln(r2 + o2); b2 < 10; b2++) {
      if (0 === f2 || 1 === f2) return f2;
      if ((f2 -= l2 = (s2 = (n2.ibeta(f2, r2, o2) - e2) / (l2 = t2.exp(d2 * t2.log(f2) + N2 * t2.log(1 - f2) + h2))) / (1 - 0.5 * t2.min(1, s2 * (d2 / f2 - N2 / (1 - f2))))) <= 0 && (f2 = 0.5 * (f2 + l2)), f2 >= 1 && (f2 = 0.5 * (f2 + l2 + 1)), t2.abs(l2) < g2 * f2 && b2 > 0) break;
    }
    return f2;
  }, n2.ibeta = function(e2, r2, o2) {
    var u2 = 0 === e2 || 1 === e2 ? 0 : t2.exp(n2.gammaln(r2 + o2) - n2.gammaln(r2) - n2.gammaln(o2) + r2 * t2.log(e2) + o2 * t2.log(1 - e2));
    return !(e2 < 0 || e2 > 1) && (e2 < (r2 + 1) / (r2 + o2 + 2) ? u2 * n2.betacf(e2, r2, o2) / r2 : 1 - u2 * n2.betacf(1 - e2, o2, r2) / o2);
  }, n2.randn = function(e2, r2) {
    var o2, u2, a2, i2, l2;
    if (r2 || (r2 = e2), e2) return n2.create(e2, r2, function() {
      return n2.randn();
    });
    do {
      o2 = n2._random_fn(), u2 = 1.7156 * (n2._random_fn() - 0.5), l2 = (a2 = o2 - 0.449871) * a2 + (i2 = t2.abs(u2) + 0.386595) * (0.196 * i2 - 0.25472 * a2);
    } while (l2 > 0.27597 && (l2 > 0.27846 || u2 * u2 > -4 * t2.log(o2) * o2 * o2));
    return u2 / o2;
  }, n2.randg = function(e2, r2, o2) {
    var u2, a2, i2, l2, s2, f2, c2 = e2;
    if (o2 || (o2 = r2), e2 || (e2 = 1), r2) return (f2 = n2.zeros(r2, o2)).alter(function() {
      return n2.randg(e2);
    }), f2;
    e2 < 1 && (e2 += 1), u2 = e2 - 1 / 3, a2 = 1 / t2.sqrt(9 * u2);
    do {
      do {
        l2 = 1 + a2 * (s2 = n2.randn());
      } while (l2 <= 0);
      l2 *= l2 * l2, i2 = n2._random_fn();
    } while (i2 > 1 - 0.331 * t2.pow(s2, 4) && t2.log(i2) > 0.5 * s2 * s2 + u2 * (1 - l2 + t2.log(l2)));
    if (e2 == c2) return u2 * l2;
    do {
      i2 = n2._random_fn();
    } while (0 === i2);
    return t2.pow(i2, 1 / c2) * u2 * l2;
  }, function(t3) {
    for (var e2 = 0; e2 < t3.length; e2++) (function(t4) {
      n2.fn[t4] = function() {
        return n2(n2.map(this, function(e3) {
          return n2[t4](e3);
        }));
      };
    })(t3[e2]);
  }("gammaln gammafn factorial factorialln".split(" ")), function(t3) {
    for (var e2 = 0; e2 < t3.length; e2++) (function(t4) {
      n2.fn[t4] = function() {
        return n2(n2[t4].apply(null, arguments));
      };
    })(t3[e2]);
  }("randn".split(" "));
}(h, Math), function(n2, t2) {
  function e2(n3, e3, r3, o3) {
    for (var u3, a2 = 0, i2 = 1, l2 = 1, s2 = 1, f2 = 0, c2 = 0; t2.abs((l2 - c2) / l2) > o3; ) c2 = l2, i2 = s2 + (u3 = -(e3 + f2) * (e3 + r3 + f2) * n3 / (e3 + 2 * f2) / (e3 + 2 * f2 + 1)) * i2, l2 = (a2 = l2 + u3 * a2) + (u3 = (f2 += 1) * (r3 - f2) * n3 / (e3 + 2 * f2 - 1) / (e3 + 2 * f2)) * l2, a2 /= s2 = i2 + u3 * s2, i2 /= s2, l2 /= s2, s2 = 1;
    return l2 / e3;
  }
  function r2(n3) {
    return n3 / t2.abs(n3);
  }
  function o2(e3, r3, o3) {
    var u3 = 12, a2 = 6, i2 = -30, l2 = -50, s2 = 60, f2 = 8, c2 = 3, m2 = 2, p2 = 3, h2 = [0.9815606342467192, 0.9041172563704749, 0.7699026741943047, 0.5873179542866175, 0.3678314989981802, 0.1252334085114689], g2 = [0.04717533638651183, 0.10693932599531843, 0.16007832854334622, 0.20316742672306592, 0.2334925365383548, 0.24914704581340277], d2 = 0.5 * e3;
    if (d2 >= f2) return 1;
    var N2, b2 = 2 * n2.normal.cdf(d2, 0, 1, 1, 0) - 1;
    b2 = b2 >= t2.exp(l2 / o3) ? t2.pow(b2, o3) : 0;
    for (var E2 = d2, I2 = (f2 - d2) / (N2 = e3 > c2 ? m2 : p2), T2 = E2 + I2, M2 = 0, S2 = o3 - 1, A2 = 1; A2 <= N2; A2++) {
      for (var v2 = 0, R2 = 0.5 * (T2 + E2), y2 = 0.5 * (T2 - E2), w2 = 1; w2 <= u3; w2++) {
        var C2, O2 = R2 + y2 * (a2 < w2 ? h2[(C2 = u3 - w2 + 1) - 1] : -h2[(C2 = w2) - 1]), D2 = O2 * O2;
        if (D2 > s2) break;
        var x2 = 2 * n2.normal.cdf(O2, 0, 1, 1, 0) * 0.5 - 2 * n2.normal.cdf(O2, e3, 1, 1, 0) * 0.5;
        x2 >= t2.exp(i2 / S2) && (v2 += x2 = g2[C2 - 1] * t2.exp(-0.5 * D2) * t2.pow(x2, S2));
      }
      M2 += v2 *= 2 * y2 * o3 / t2.sqrt(2 * t2.PI), E2 = T2, T2 += I2;
    }
    return (b2 += M2) <= t2.exp(i2 / r3) ? 0 : (b2 = t2.pow(b2, r3)) >= 1 ? 1 : b2;
  }
  function u2(n3, e3, r3) {
    var o3 = 0.322232421088, u3 = 0.099348462606, a2 = -1, i2 = 0.588581570495, l2 = -0.342242088547, s2 = 0.531103462366, f2 = -0.204231210125, c2 = 0.10353775285, m2 = -453642210148e-16, p2 = 0.0038560700634, h2 = 0.8832, g2 = 0.2368, d2 = 1.208, N2 = 1.4142, b2 = 120, E2 = 0.5 - 0.5 * n3, I2 = t2.sqrt(t2.log(1 / (E2 * E2))), T2 = I2 + ((((I2 * m2 + f2) * I2 + l2) * I2 + a2) * I2 + o3) / ((((I2 * p2 + c2) * I2 + s2) * I2 + i2) * I2 + u3);
    r3 < b2 && (T2 += (T2 * T2 * T2 + T2) / r3 / 4);
    var M2 = h2 - g2 * T2;
    return r3 < b2 && (M2 += -1.214 / r3 + d2 * T2 / r3), T2 * (M2 * t2.log(e3 - 1) + N2);
  }
  !function(t3) {
    for (var e3 = 0; e3 < t3.length; e3++) (function(t4) {
      n2[t4] = function n3(t5, e4, r3) {
        return this instanceof n3 ? (this._a = t5, this._b = e4, this._c = r3, this) : new n3(t5, e4, r3);
      }, n2.fn[t4] = function(e4, r3, o3) {
        var u3 = n2[t4](e4, r3, o3);
        return u3.data = this, u3;
      }, n2[t4].prototype.sample = function(e4) {
        var r3 = this._a, o3 = this._b, u3 = this._c;
        return e4 ? n2.alter(e4, function() {
          return n2[t4].sample(r3, o3, u3);
        }) : n2[t4].sample(r3, o3, u3);
      }, function(e4) {
        for (var r3 = 0; r3 < e4.length; r3++) (function(e5) {
          n2[t4].prototype[e5] = function(r4) {
            var o3 = this._a, u3 = this._b, a2 = this._c;
            return r4 || 0 === r4 || (r4 = this.data), "number" != typeof r4 ? n2.fn.map.call(r4, function(r5) {
              return n2[t4][e5](r5, o3, u3, a2);
            }) : n2[t4][e5](r4, o3, u3, a2);
          };
        })(e4[r3]);
      }("pdf cdf inv".split(" ")), function(e4) {
        for (var r3 = 0; r3 < e4.length; r3++) (function(e5) {
          n2[t4].prototype[e5] = function() {
            return n2[t4][e5](this._a, this._b, this._c);
          };
        })(e4[r3]);
      }("mean median mode variance".split(" "));
    })(t3[e3]);
  }("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")), n2.extend(n2.beta, { pdf: function(e3, r3, o3) {
    return e3 > 1 || e3 < 0 ? 0 : 1 == r3 && 1 == o3 ? 1 : r3 < 512 && o3 < 512 ? t2.pow(e3, r3 - 1) * t2.pow(1 - e3, o3 - 1) / n2.betafn(r3, o3) : t2.exp((r3 - 1) * t2.log(e3) + (o3 - 1) * t2.log(1 - e3) - n2.betaln(r3, o3));
  }, cdf: function(t3, e3, r3) {
    return t3 > 1 || t3 < 0 ? 1 * (t3 > 1) : n2.ibeta(t3, e3, r3);
  }, inv: function(t3, e3, r3) {
    return n2.ibetainv(t3, e3, r3);
  }, mean: function(n3, t3) {
    return n3 / (n3 + t3);
  }, median: function(t3, e3) {
    return n2.ibetainv(0.5, t3, e3);
  }, mode: function(n3, t3) {
    return (n3 - 1) / (n3 + t3 - 2);
  }, sample: function(t3, e3) {
    var r3 = n2.randg(t3);
    return r3 / (r3 + n2.randg(e3));
  }, variance: function(n3, e3) {
    return n3 * e3 / (t2.pow(n3 + e3, 2) * (n3 + e3 + 1));
  } }), n2.extend(n2.centralF, { pdf: function(e3, r3, o3) {
    var u3;
    return e3 < 0 ? 0 : r3 <= 2 ? 0 === e3 && r3 < 2 ? 1 / 0 : 0 === e3 && 2 === r3 ? 1 : 1 / n2.betafn(r3 / 2, o3 / 2) * t2.pow(r3 / o3, r3 / 2) * t2.pow(e3, r3 / 2 - 1) * t2.pow(1 + r3 / o3 * e3, -(r3 + o3) / 2) : (u3 = r3 * e3 / (o3 + e3 * r3), r3 * (o3 / (o3 + e3 * r3)) / 2 * n2.binomial.pdf((r3 - 2) / 2, (r3 + o3 - 2) / 2, u3));
  }, cdf: function(t3, e3, r3) {
    return t3 < 0 ? 0 : n2.ibeta(e3 * t3 / (e3 * t3 + r3), e3 / 2, r3 / 2);
  }, inv: function(t3, e3, r3) {
    return r3 / (e3 * (1 / n2.ibetainv(t3, e3 / 2, r3 / 2) - 1));
  }, mean: function(n3, t3) {
    return t3 > 2 ? t3 / (t3 - 2) : void 0;
  }, mode: function(n3, t3) {
    return n3 > 2 ? t3 * (n3 - 2) / (n3 * (t3 + 2)) : void 0;
  }, sample: function(t3, e3) {
    return 2 * n2.randg(t3 / 2) / t3 / (2 * n2.randg(e3 / 2) / e3);
  }, variance: function(n3, t3) {
    if (!(t3 <= 4)) return 2 * t3 * t3 * (n3 + t3 - 2) / (n3 * (t3 - 2) * (t3 - 2) * (t3 - 4));
  } }), n2.extend(n2.cauchy, { pdf: function(n3, e3, r3) {
    return r3 < 0 ? 0 : r3 / (t2.pow(n3 - e3, 2) + t2.pow(r3, 2)) / t2.PI;
  }, cdf: function(n3, e3, r3) {
    return t2.atan((n3 - e3) / r3) / t2.PI + 0.5;
  }, inv: function(n3, e3, r3) {
    return e3 + r3 * t2.tan(t2.PI * (n3 - 0.5));
  }, median: function(n3) {
    return n3;
  }, mode: function(n3) {
    return n3;
  }, sample: function(e3, r3) {
    return n2.randn() * t2.sqrt(1 / (2 * n2.randg(0.5))) * r3 + e3;
  } }), n2.extend(n2.chisquare, { pdf: function(e3, r3) {
    return e3 < 0 ? 0 : 0 === e3 && 2 === r3 ? 0.5 : t2.exp((r3 / 2 - 1) * t2.log(e3) - e3 / 2 - r3 / 2 * t2.log(2) - n2.gammaln(r3 / 2));
  }, cdf: function(t3, e3) {
    return t3 < 0 ? 0 : n2.lowRegGamma(e3 / 2, t3 / 2);
  }, inv: function(t3, e3) {
    return 2 * n2.gammapinv(t3, 0.5 * e3);
  }, mean: function(n3) {
    return n3;
  }, median: function(n3) {
    return n3 * t2.pow(1 - 2 / (9 * n3), 3);
  }, mode: function(n3) {
    return n3 - 2 > 0 ? n3 - 2 : 0;
  }, sample: function(t3) {
    return 2 * n2.randg(t3 / 2);
  }, variance: function(n3) {
    return 2 * n3;
  } }), n2.extend(n2.exponential, { pdf: function(n3, e3) {
    return n3 < 0 ? 0 : e3 * t2.exp(-e3 * n3);
  }, cdf: function(n3, e3) {
    return n3 < 0 ? 0 : 1 - t2.exp(-e3 * n3);
  }, inv: function(n3, e3) {
    return -t2.log(1 - n3) / e3;
  }, mean: function(n3) {
    return 1 / n3;
  }, median: function(n3) {
    return 1 / n3 * t2.log(2);
  }, mode: function() {
    return 0;
  }, sample: function(e3) {
    return -1 / e3 * t2.log(n2._random_fn());
  }, variance: function(n3) {
    return t2.pow(n3, -2);
  } }), n2.extend(n2.gamma, { pdf: function(e3, r3, o3) {
    return e3 < 0 ? 0 : 0 === e3 && 1 === r3 ? 1 / o3 : t2.exp((r3 - 1) * t2.log(e3) - e3 / o3 - n2.gammaln(r3) - r3 * t2.log(o3));
  }, cdf: function(t3, e3, r3) {
    return t3 < 0 ? 0 : n2.lowRegGamma(e3, t3 / r3);
  }, inv: function(t3, e3, r3) {
    return n2.gammapinv(t3, e3) * r3;
  }, mean: function(n3, t3) {
    return n3 * t3;
  }, mode: function(n3, t3) {
    if (n3 > 1) return (n3 - 1) * t3;
  }, sample: function(t3, e3) {
    return n2.randg(t3) * e3;
  }, variance: function(n3, t3) {
    return n3 * t3 * t3;
  } }), n2.extend(n2.invgamma, { pdf: function(e3, r3, o3) {
    return e3 <= 0 ? 0 : t2.exp(-(r3 + 1) * t2.log(e3) - o3 / e3 - n2.gammaln(r3) + r3 * t2.log(o3));
  }, cdf: function(t3, e3, r3) {
    return t3 <= 0 ? 0 : 1 - n2.lowRegGamma(e3, r3 / t3);
  }, inv: function(t3, e3, r3) {
    return r3 / n2.gammapinv(1 - t3, e3);
  }, mean: function(n3, t3) {
    return n3 > 1 ? t3 / (n3 - 1) : void 0;
  }, mode: function(n3, t3) {
    return t3 / (n3 + 1);
  }, sample: function(t3, e3) {
    return e3 / n2.randg(t3);
  }, variance: function(n3, t3) {
    if (!(n3 <= 2)) return t3 * t3 / ((n3 - 1) * (n3 - 1) * (n3 - 2));
  } }), n2.extend(n2.kumaraswamy, { pdf: function(n3, e3, r3) {
    return 0 === n3 && 1 === e3 ? r3 : 1 === n3 && 1 === r3 ? e3 : t2.exp(t2.log(e3) + t2.log(r3) + (e3 - 1) * t2.log(n3) + (r3 - 1) * t2.log(1 - t2.pow(n3, e3)));
  }, cdf: function(n3, e3, r3) {
    return n3 < 0 ? 0 : n3 > 1 ? 1 : 1 - t2.pow(1 - t2.pow(n3, e3), r3);
  }, inv: function(n3, e3, r3) {
    return t2.pow(1 - t2.pow(1 - n3, 1 / r3), 1 / e3);
  }, mean: function(t3, e3) {
    return e3 * n2.gammafn(1 + 1 / t3) * n2.gammafn(e3) / n2.gammafn(1 + 1 / t3 + e3);
  }, median: function(n3, e3) {
    return t2.pow(1 - t2.pow(2, -1 / e3), 1 / n3);
  }, mode: function(n3, e3) {
    if (n3 >= 1 && e3 >= 1 && 1 !== n3 && 1 !== e3) return t2.pow((n3 - 1) / (n3 * e3 - 1), 1 / n3);
  }, variance: function() {
    throw new Error("variance not yet implemented");
  } }), n2.extend(n2.lognormal, { pdf: function(n3, e3, r3) {
    return n3 <= 0 ? 0 : t2.exp(-t2.log(n3) - 0.5 * t2.log(2 * t2.PI) - t2.log(r3) - t2.pow(t2.log(n3) - e3, 2) / (2 * r3 * r3));
  }, cdf: function(e3, r3, o3) {
    return e3 < 0 ? 0 : 0.5 + 0.5 * n2.erf((t2.log(e3) - r3) / t2.sqrt(2 * o3 * o3));
  }, inv: function(e3, r3, o3) {
    return t2.exp(-1.4142135623730951 * o3 * n2.erfcinv(2 * e3) + r3);
  }, mean: function(n3, e3) {
    return t2.exp(n3 + e3 * e3 / 2);
  }, median: function(n3) {
    return t2.exp(n3);
  }, mode: function(n3, e3) {
    return t2.exp(n3 - e3 * e3);
  }, sample: function(e3, r3) {
    return t2.exp(n2.randn() * r3 + e3);
  }, variance: function(n3, e3) {
    return (t2.exp(e3 * e3) - 1) * t2.exp(2 * n3 + e3 * e3);
  } }), n2.extend(n2.noncentralt, { pdf: function(e3, r3, o3) {
    var u3 = 1e-14;
    return t2.abs(o3) < u3 ? n2.studentt.pdf(e3, r3) : t2.abs(e3) < u3 ? t2.exp(n2.gammaln((r3 + 1) / 2) - o3 * o3 / 2 - 0.5 * t2.log(t2.PI * r3) - n2.gammaln(r3 / 2)) : r3 / e3 * (n2.noncentralt.cdf(e3 * t2.sqrt(1 + 2 / r3), r3 + 2, o3) - n2.noncentralt.cdf(e3, r3, o3));
  }, cdf: function(e3, r3, o3) {
    var u3 = 1e-14, a2 = 200;
    if (t2.abs(o3) < u3) return n2.studentt.cdf(e3, r3);
    var i2 = false;
    e3 < 0 && (i2 = true, o3 = -o3);
    for (var l2 = n2.normal.cdf(-o3, 0, 1), s2 = u3 + 1, f2 = s2, c2 = e3 * e3 / (e3 * e3 + r3), m2 = 0, p2 = t2.exp(-o3 * o3 / 2), h2 = t2.exp(-o3 * o3 / 2 - 0.5 * t2.log(2) - n2.gammaln(1.5)) * o3; m2 < a2 || f2 > u3 || s2 > u3; ) f2 = s2, m2 > 0 && (p2 *= o3 * o3 / (2 * m2), h2 *= o3 * o3 / (2 * (m2 + 0.5))), l2 += 0.5 * (s2 = p2 * n2.beta.cdf(c2, m2 + 0.5, r3 / 2) + h2 * n2.beta.cdf(c2, m2 + 1, r3 / 2)), m2++;
    return i2 ? 1 - l2 : l2;
  } }), n2.extend(n2.normal, { pdf: function(n3, e3, r3) {
    return t2.exp(-0.5 * t2.log(2 * t2.PI) - t2.log(r3) - t2.pow(n3 - e3, 2) / (2 * r3 * r3));
  }, cdf: function(e3, r3, o3) {
    return 0.5 * (1 + n2.erf((e3 - r3) / t2.sqrt(2 * o3 * o3)));
  }, inv: function(t3, e3, r3) {
    return -1.4142135623730951 * r3 * n2.erfcinv(2 * t3) + e3;
  }, mean: function(n3) {
    return n3;
  }, median: function(n3) {
    return n3;
  }, mode: function(n3) {
    return n3;
  }, sample: function(t3, e3) {
    return n2.randn() * e3 + t3;
  }, variance: function(n3, t3) {
    return t3 * t3;
  } }), n2.extend(n2.pareto, { pdf: function(n3, e3, r3) {
    return n3 < e3 ? 0 : r3 * t2.pow(e3, r3) / t2.pow(n3, r3 + 1);
  }, cdf: function(n3, e3, r3) {
    return n3 < e3 ? 0 : 1 - t2.pow(e3 / n3, r3);
  }, inv: function(n3, e3, r3) {
    return e3 / t2.pow(1 - n3, 1 / r3);
  }, mean: function(n3, e3) {
    if (!(e3 <= 1)) return e3 * t2.pow(n3, e3) / (e3 - 1);
  }, median: function(n3, e3) {
    return n3 * (e3 * t2.SQRT2);
  }, mode: function(n3) {
    return n3;
  }, variance: function(n3, e3) {
    if (!(e3 <= 2)) return n3 * n3 * e3 / (t2.pow(e3 - 1, 2) * (e3 - 2));
  } }), n2.extend(n2.studentt, { pdf: function(e3, r3) {
    return r3 = r3 > 1e100 ? 1e100 : r3, 1 / (t2.sqrt(r3) * n2.betafn(0.5, r3 / 2)) * t2.pow(1 + e3 * e3 / r3, -(r3 + 1) / 2);
  }, cdf: function(e3, r3) {
    var o3 = r3 / 2;
    return n2.ibeta((e3 + t2.sqrt(e3 * e3 + r3)) / (2 * t2.sqrt(e3 * e3 + r3)), o3, o3);
  }, inv: function(e3, r3) {
    var o3 = n2.ibetainv(2 * t2.min(e3, 1 - e3), 0.5 * r3, 0.5);
    return o3 = t2.sqrt(r3 * (1 - o3) / o3), e3 > 0.5 ? o3 : -o3;
  }, mean: function(n3) {
    return n3 > 1 ? 0 : void 0;
  }, median: function() {
    return 0;
  }, mode: function() {
    return 0;
  }, sample: function(e3) {
    return n2.randn() * t2.sqrt(e3 / (2 * n2.randg(e3 / 2)));
  }, variance: function(n3) {
    return n3 > 2 ? n3 / (n3 - 2) : n3 > 1 ? 1 / 0 : void 0;
  } }), n2.extend(n2.weibull, { pdf: function(n3, e3, r3) {
    return n3 < 0 || e3 < 0 || r3 < 0 ? 0 : r3 / e3 * t2.pow(n3 / e3, r3 - 1) * t2.exp(-t2.pow(n3 / e3, r3));
  }, cdf: function(n3, e3, r3) {
    return n3 < 0 ? 0 : 1 - t2.exp(-t2.pow(n3 / e3, r3));
  }, inv: function(n3, e3, r3) {
    return e3 * t2.pow(-t2.log(1 - n3), 1 / r3);
  }, mean: function(t3, e3) {
    return t3 * n2.gammafn(1 + 1 / e3);
  }, median: function(n3, e3) {
    return n3 * t2.pow(t2.log(2), 1 / e3);
  }, mode: function(n3, e3) {
    return e3 <= 1 ? 0 : n3 * t2.pow((e3 - 1) / e3, 1 / e3);
  }, sample: function(e3, r3) {
    return e3 * t2.pow(-t2.log(n2._random_fn()), 1 / r3);
  }, variance: function(e3, r3) {
    return e3 * e3 * n2.gammafn(1 + 2 / r3) - t2.pow(n2.weibull.mean(e3, r3), 2);
  } }), n2.extend(n2.uniform, { pdf: function(n3, t3, e3) {
    return n3 < t3 || n3 > e3 ? 0 : 1 / (e3 - t3);
  }, cdf: function(n3, t3, e3) {
    return n3 < t3 ? 0 : n3 < e3 ? (n3 - t3) / (e3 - t3) : 1;
  }, inv: function(n3, t3, e3) {
    return t3 + n3 * (e3 - t3);
  }, mean: function(n3, t3) {
    return 0.5 * (n3 + t3);
  }, median: function(t3, e3) {
    return n2.mean(t3, e3);
  }, mode: function() {
    throw new Error("mode is not yet implemented");
  }, sample: function(t3, e3) {
    return t3 / 2 + e3 / 2 + (e3 / 2 - t3 / 2) * (2 * n2._random_fn() - 1);
  }, variance: function(n3, e3) {
    return t2.pow(e3 - n3, 2) / 12;
  } }), n2.extend(n2.binomial, { pdf: function(e3, r3, o3) {
    return 0 === o3 || 1 === o3 ? r3 * o3 === e3 ? 1 : 0 : n2.combination(r3, e3) * t2.pow(o3, e3) * t2.pow(1 - o3, r3 - e3);
  }, cdf: function(r3, o3, u3) {
    var a2, i2 = 1e-10;
    if (r3 < 0) return 0;
    if (r3 >= o3) return 1;
    if (u3 < 0 || u3 > 1 || o3 <= 0) return NaN;
    var l2 = u3, s2 = (r3 = t2.floor(r3)) + 1, f2 = o3 - r3, c2 = s2 + f2, m2 = t2.exp(n2.gammaln(c2) - n2.gammaln(f2) - n2.gammaln(s2) + s2 * t2.log(l2) + f2 * t2.log(1 - l2));
    return a2 = l2 < (s2 + 1) / (c2 + 2) ? m2 * e2(l2, s2, f2, i2) : 1 - m2 * e2(1 - l2, f2, s2, i2), t2.round(1 / i2 * (1 - a2)) / (1 / i2);
  } }), n2.extend(n2.negbin, { pdf: function(e3, r3, o3) {
    return e3 === e3 >>> 0 && (e3 < 0 ? 0 : n2.combination(e3 + r3 - 1, r3 - 1) * t2.pow(1 - o3, e3) * t2.pow(o3, r3));
  }, cdf: function(t3, e3, r3) {
    var o3 = 0, u3 = 0;
    if (t3 < 0) return 0;
    for (; u3 <= t3; u3++) o3 += n2.negbin.pdf(u3, e3, r3);
    return o3;
  } }), n2.extend(n2.hypgeom, { pdf: function(e3, r3, o3, u3) {
    if (e3 != e3 | 0) return false;
    if (e3 < 0 || e3 < o3 - (r3 - u3)) return 0;
    if (e3 > u3 || e3 > o3) return 0;
    if (2 * o3 > r3) return 2 * u3 > r3 ? n2.hypgeom.pdf(r3 - o3 - u3 + e3, r3, r3 - o3, r3 - u3) : n2.hypgeom.pdf(u3 - e3, r3, r3 - o3, u3);
    if (2 * u3 > r3) return n2.hypgeom.pdf(o3 - e3, r3, o3, r3 - u3);
    if (o3 < u3) return n2.hypgeom.pdf(e3, r3, u3, o3);
    for (var a2 = 1, i2 = 0, l2 = 0; l2 < e3; l2++) {
      for (; a2 > 1 && i2 < u3; ) a2 *= 1 - o3 / (r3 - i2), i2++;
      a2 *= (u3 - l2) * (o3 - l2) / ((l2 + 1) * (r3 - o3 - u3 + l2 + 1));
    }
    for (; i2 < u3; i2++) a2 *= 1 - o3 / (r3 - i2);
    return t2.min(1, t2.max(0, a2));
  }, cdf: function(e3, r3, o3, u3) {
    if (e3 < 0 || e3 < o3 - (r3 - u3)) return 0;
    if (e3 >= u3 || e3 >= o3) return 1;
    if (2 * o3 > r3) return 2 * u3 > r3 ? n2.hypgeom.cdf(r3 - o3 - u3 + e3, r3, r3 - o3, r3 - u3) : 1 - n2.hypgeom.cdf(u3 - e3 - 1, r3, r3 - o3, u3);
    if (2 * u3 > r3) return 1 - n2.hypgeom.cdf(o3 - e3 - 1, r3, o3, r3 - u3);
    if (o3 < u3) return n2.hypgeom.cdf(e3, r3, u3, o3);
    for (var a2 = 1, i2 = 1, l2 = 0, s2 = 0; s2 < e3; s2++) {
      for (; a2 > 1 && l2 < u3; ) {
        var f2 = 1 - o3 / (r3 - l2);
        i2 *= f2, a2 *= f2, l2++;
      }
      a2 += i2 *= (u3 - s2) * (o3 - s2) / ((s2 + 1) * (r3 - o3 - u3 + s2 + 1));
    }
    for (; l2 < u3; l2++) a2 *= 1 - o3 / (r3 - l2);
    return t2.min(1, t2.max(0, a2));
  } }), n2.extend(n2.poisson, { pdf: function(e3, r3) {
    return r3 < 0 || e3 % 1 != 0 || e3 < 0 ? 0 : t2.pow(r3, e3) * t2.exp(-r3) / n2.factorial(e3);
  }, cdf: function(t3, e3) {
    var r3 = [], o3 = 0;
    if (t3 < 0) return 0;
    for (; o3 <= t3; o3++) r3.push(n2.poisson.pdf(o3, e3));
    return n2.sum(r3);
  }, mean: function(n3) {
    return n3;
  }, variance: function(n3) {
    return n3;
  }, sampleSmall: function(e3) {
    var r3 = 1, o3 = 0, u3 = t2.exp(-e3);
    do {
      o3++, r3 *= n2._random_fn();
    } while (r3 > u3);
    return o3 - 1;
  }, sampleLarge: function(e3) {
    var r3, o3, u3, a2, i2, l2, s2, f2, c2, m2, p2 = e3;
    for (a2 = t2.sqrt(p2), i2 = t2.log(p2), l2 = 0.02483 * (s2 = 0.931 + 2.53 * a2) - 0.059, f2 = 1.1239 + 1.1328 / (s2 - 3.4), c2 = 0.9277 - 3.6224 / (s2 - 2); ; ) {
      if (o3 = t2.random() - 0.5, u3 = t2.random(), m2 = 0.5 - t2.abs(o3), r3 = t2.floor((2 * l2 / m2 + s2) * o3 + p2 + 0.43), m2 >= 0.07 && u3 <= c2) return r3;
      if (!(r3 < 0 || m2 < 0.013 && u3 > m2) && t2.log(u3) + t2.log(f2) - t2.log(l2 / (m2 * m2) + s2) <= r3 * i2 - p2 - n2.loggam(r3 + 1)) return r3;
    }
  }, sample: function(n3) {
    return n3 < 10 ? this.sampleSmall(n3) : this.sampleLarge(n3);
  } }), n2.extend(n2.triangular, { pdf: function(n3, t3, e3, r3) {
    return e3 <= t3 || r3 < t3 || r3 > e3 ? NaN : n3 < t3 || n3 > e3 ? 0 : n3 < r3 ? 2 * (n3 - t3) / ((e3 - t3) * (r3 - t3)) : n3 === r3 ? 2 / (e3 - t3) : 2 * (e3 - n3) / ((e3 - t3) * (e3 - r3));
  }, cdf: function(n3, e3, r3, o3) {
    return r3 <= e3 || o3 < e3 || o3 > r3 ? NaN : n3 <= e3 ? 0 : n3 >= r3 ? 1 : n3 <= o3 ? t2.pow(n3 - e3, 2) / ((r3 - e3) * (o3 - e3)) : 1 - t2.pow(r3 - n3, 2) / ((r3 - e3) * (r3 - o3));
  }, inv: function(n3, e3, r3, o3) {
    return r3 <= e3 || o3 < e3 || o3 > r3 ? NaN : n3 <= (o3 - e3) / (r3 - e3) ? e3 + (r3 - e3) * t2.sqrt(n3 * ((o3 - e3) / (r3 - e3))) : e3 + (r3 - e3) * (1 - t2.sqrt((1 - n3) * (1 - (o3 - e3) / (r3 - e3))));
  }, mean: function(n3, t3, e3) {
    return (n3 + t3 + e3) / 3;
  }, median: function(n3, e3, r3) {
    return r3 <= (n3 + e3) / 2 ? e3 - t2.sqrt((e3 - n3) * (e3 - r3)) / t2.sqrt(2) : r3 > (n3 + e3) / 2 ? n3 + t2.sqrt((e3 - n3) * (r3 - n3)) / t2.sqrt(2) : void 0;
  }, mode: function(n3, t3, e3) {
    return e3;
  }, sample: function(e3, r3, o3) {
    var u3 = n2._random_fn();
    return u3 < (o3 - e3) / (r3 - e3) ? e3 + t2.sqrt(u3 * (r3 - e3) * (o3 - e3)) : r3 - t2.sqrt((1 - u3) * (r3 - e3) * (r3 - o3));
  }, variance: function(n3, t3, e3) {
    return (n3 * n3 + t3 * t3 + e3 * e3 - n3 * t3 - n3 * e3 - t3 * e3) / 18;
  } }), n2.extend(n2.arcsine, { pdf: function(n3, e3, r3) {
    return r3 <= e3 ? NaN : n3 <= e3 || n3 >= r3 ? 0 : 2 / t2.PI * t2.pow(t2.pow(r3 - e3, 2) - t2.pow(2 * n3 - e3 - r3, 2), -0.5);
  }, cdf: function(n3, e3, r3) {
    return n3 < e3 ? 0 : n3 < r3 ? 2 / t2.PI * t2.asin(t2.sqrt((n3 - e3) / (r3 - e3))) : 1;
  }, inv: function(n3, e3, r3) {
    return e3 + (0.5 - 0.5 * t2.cos(t2.PI * n3)) * (r3 - e3);
  }, mean: function(n3, t3) {
    return t3 <= n3 ? NaN : (n3 + t3) / 2;
  }, median: function(n3, t3) {
    return t3 <= n3 ? NaN : (n3 + t3) / 2;
  }, mode: function() {
    throw new Error("mode is not yet implemented");
  }, sample: function(e3, r3) {
    return (e3 + r3) / 2 + (r3 - e3) / 2 * t2.sin(2 * t2.PI * n2.uniform.sample(0, 1));
  }, variance: function(n3, e3) {
    return e3 <= n3 ? NaN : t2.pow(e3 - n3, 2) / 8;
  } }), n2.extend(n2.laplace, { pdf: function(n3, e3, r3) {
    return r3 <= 0 ? 0 : t2.exp(-t2.abs(n3 - e3) / r3) / (2 * r3);
  }, cdf: function(n3, e3, r3) {
    return r3 <= 0 ? 0 : n3 < e3 ? 0.5 * t2.exp((n3 - e3) / r3) : 1 - 0.5 * t2.exp(-(n3 - e3) / r3);
  }, mean: function(n3) {
    return n3;
  }, median: function(n3) {
    return n3;
  }, mode: function(n3) {
    return n3;
  }, variance: function(n3, t3) {
    return 2 * t3 * t3;
  }, sample: function(e3, o3) {
    var u3 = n2._random_fn() - 0.5;
    return e3 - o3 * r2(u3) * t2.log(1 - 2 * t2.abs(u3));
  } }), n2.extend(n2.tukey, { cdf: function(e3, r3, u3) {
    var a2 = 1, i2 = r3, l2 = 16, s2 = 8, f2 = -30, c2 = 1e-14, m2 = 100, p2 = 800, h2 = 5e3, g2 = 25e3, d2 = 1, N2 = 0.5, b2 = 0.25, E2 = 0.125, I2 = [0.9894009349916499, 0.9445750230732326, 0.8656312023878318, 0.755404408355003, 0.6178762444026438, 0.45801677765722737, 0.2816035507792589, 0.09501250983763744], T2 = [0.027152459411754096, 0.062253523938647894, 0.09515851168249279, 0.12462897125553388, 0.14959598881657674, 0.16915651939500254, 0.18260341504492358, 0.1894506104550685];
    if (e3 <= 0) return 0;
    if (u3 < 2 || a2 < 1 || i2 < 2) return NaN;
    if (!Number.isFinite(e3)) return 1;
    if (u3 > g2) return o2(e3, a2, i2);
    var M2, S2 = 0.5 * u3, A2 = S2 * t2.log(u3) - u3 * t2.log(2) - n2.gammaln(S2), v2 = S2 - 1, R2 = 0.25 * u3;
    M2 = u3 <= m2 ? d2 : u3 <= p2 ? N2 : u3 <= h2 ? b2 : E2, A2 += t2.log(M2);
    for (var y2 = 0, w2 = 1; w2 <= 50; w2++) {
      for (var C2 = 0, O2 = (2 * w2 - 1) * M2, D2 = 1; D2 <= l2; D2++) {
        var x2, _2;
        s2 < D2 ? (x2 = D2 - s2 - 1, _2 = A2 + v2 * t2.log(O2 + I2[x2] * M2) - (I2[x2] * M2 + O2) * R2) : (x2 = D2 - 1, _2 = A2 + v2 * t2.log(O2 - I2[x2] * M2) + (I2[x2] * M2 - O2) * R2), _2 >= f2 && (C2 += o2(s2 < D2 ? e3 * t2.sqrt(0.5 * (I2[x2] * M2 + O2)) : e3 * t2.sqrt(0.5 * (-I2[x2] * M2 + O2)), a2, i2) * T2[x2] * t2.exp(_2));
      }
      if (w2 * M2 >= 1 && C2 <= c2) break;
      y2 += C2;
    }
    if (C2 > c2) throw new Error("tukey.cdf failed to converge");
    return y2 > 1 && (y2 = 1), y2;
  }, inv: function(e3, r3, o3) {
    var a2 = 1e-4, i2 = 50;
    if (o3 < 2 || r3 < 2) return NaN;
    if (e3 < 0 || e3 > 1) return NaN;
    if (0 === e3) return 0;
    if (1 === e3) return 1 / 0;
    var l2, s2 = u2(e3, r3, o3), f2 = n2.tukey.cdf(s2, r3, o3) - e3;
    l2 = f2 > 0 ? t2.max(0, s2 - 1) : s2 + 1;
    for (var c2, m2 = n2.tukey.cdf(l2, r3, o3) - e3, p2 = 1; p2 < i2; p2++) if (c2 = l2 - m2 * (l2 - s2) / (m2 - f2), f2 = m2, s2 = l2, c2 < 0 && (c2 = 0, m2 = -e3), m2 = n2.tukey.cdf(c2, r3, o3) - e3, l2 = c2, t2.abs(l2 - s2) < a2) return c2;
    throw new Error("tukey.inv failed to converge");
  } });
}(h, Math), function(n2, t2) {
  var e2 = Array.prototype.push, r2 = n2.utils.isArray;
  function o2(t3) {
    return r2(t3) || t3 instanceof n2;
  }
  n2.extend({ add: function(t3, e3) {
    return o2(e3) ? (o2(e3[0]) || (e3 = [e3]), n2.map(t3, function(n3, t4, r3) {
      return n3 + e3[t4][r3];
    })) : n2.map(t3, function(n3) {
      return n3 + e3;
    });
  }, subtract: function(t3, e3) {
    return o2(e3) ? (o2(e3[0]) || (e3 = [e3]), n2.map(t3, function(n3, t4, r3) {
      return n3 - e3[t4][r3] || 0;
    })) : n2.map(t3, function(n3) {
      return n3 - e3;
    });
  }, divide: function(t3, e3) {
    return o2(e3) ? (o2(e3[0]) || (e3 = [e3]), n2.multiply(t3, n2.inv(e3))) : n2.map(t3, function(n3) {
      return n3 / e3;
    });
  }, multiply: function(t3, e3) {
    var r3, u2, a2, i2, l2, s2, f2, c2;
    if (void 0 === t3.length && void 0 === e3.length) return t3 * e3;
    if (l2 = t3.length, s2 = t3[0].length, f2 = n2.zeros(l2, a2 = o2(e3) ? e3[0].length : s2), c2 = 0, o2(e3)) {
      for (; c2 < a2; c2++) for (r3 = 0; r3 < l2; r3++) {
        for (i2 = 0, u2 = 0; u2 < s2; u2++) i2 += t3[r3][u2] * e3[u2][c2];
        f2[r3][c2] = i2;
      }
      return 1 === l2 && 1 === c2 ? f2[0][0] : f2;
    }
    return n2.map(t3, function(n3) {
      return n3 * e3;
    });
  }, outer: function(t3, e3) {
    return n2.multiply(t3.map(function(n3) {
      return [n3];
    }), [e3]);
  }, dot: function(t3, e3) {
    o2(t3[0]) || (t3 = [t3]), o2(e3[0]) || (e3 = [e3]);
    for (var r3, u2, a2 = 1 === t3[0].length && 1 !== t3.length ? n2.transpose(t3) : t3, i2 = 1 === e3[0].length && 1 !== e3.length ? n2.transpose(e3) : e3, l2 = [], s2 = 0, f2 = a2.length, c2 = a2[0].length; s2 < f2; s2++) {
      for (l2[s2] = [], r3 = 0, u2 = 0; u2 < c2; u2++) r3 += a2[s2][u2] * i2[s2][u2];
      l2[s2] = r3;
    }
    return 1 === l2.length ? l2[0] : l2;
  }, pow: function(e3, r3) {
    return n2.map(e3, function(n3) {
      return t2.pow(n3, r3);
    });
  }, exp: function(e3) {
    return n2.map(e3, function(n3) {
      return t2.exp(n3);
    });
  }, log: function(e3) {
    return n2.map(e3, function(n3) {
      return t2.log(n3);
    });
  }, abs: function(e3) {
    return n2.map(e3, function(n3) {
      return t2.abs(n3);
    });
  }, norm: function(n3, e3) {
    var r3 = 0, u2 = 0;
    for (isNaN(e3) && (e3 = 2), o2(n3[0]) && (n3 = n3[0]); u2 < n3.length; u2++) r3 += t2.pow(t2.abs(n3[u2]), e3);
    return t2.pow(r3, 1 / e3);
  }, angle: function(e3, r3) {
    return t2.acos(n2.dot(e3, r3) / (n2.norm(e3) * n2.norm(r3)));
  }, aug: function(n3, t3) {
    var r3, o3 = [];
    for (r3 = 0; r3 < n3.length; r3++) o3.push(n3[r3].slice());
    for (r3 = 0; r3 < o3.length; r3++) e2.apply(o3[r3], t3[r3]);
    return o3;
  }, inv: function(t3) {
    for (var e3, r3 = t3.length, o3 = t3[0].length, u2 = n2.identity(r3, o3), a2 = n2.gauss_jordan(t3, u2), i2 = [], l2 = 0; l2 < r3; l2++) for (i2[l2] = [], e3 = o3; e3 < a2[0].length; e3++) i2[l2][e3 - o3] = a2[l2][e3];
    return i2;
  }, det: function n3(t3) {
    if (2 === t3.length) return t3[0][0] * t3[1][1] - t3[0][1] * t3[1][0];
    for (var e3 = 0, r3 = 0; r3 < t3.length; r3++) {
      for (var o3 = [], u2 = 1; u2 < t3.length; u2++) {
        o3[u2 - 1] = [];
        for (var a2 = 0; a2 < t3.length; a2++) a2 < r3 ? o3[u2 - 1][a2] = t3[u2][a2] : a2 > r3 && (o3[u2 - 1][a2 - 1] = t3[u2][a2]);
      }
      var i2 = r3 % 2 ? -1 : 1;
      e3 += n3(o3) * t3[0][r3] * i2;
    }
    return e3;
  }, gauss_elimination: function(e3, r3) {
    var o3, u2, a2, i2, l2 = 0, s2 = 0, f2 = e3.length, c2 = e3[0].length, m2 = 1, p2 = 0, h2 = [];
    for (o3 = (e3 = n2.aug(e3, r3))[0].length, l2 = 0; l2 < f2; l2++) {
      for (u2 = e3[l2][l2], s2 = l2, i2 = l2 + 1; i2 < c2; i2++) u2 < t2.abs(e3[i2][l2]) && (u2 = e3[i2][l2], s2 = i2);
      if (s2 != l2) for (i2 = 0; i2 < o3; i2++) a2 = e3[l2][i2], e3[l2][i2] = e3[s2][i2], e3[s2][i2] = a2;
      for (s2 = l2 + 1; s2 < f2; s2++) for (m2 = e3[s2][l2] / e3[l2][l2], i2 = l2; i2 < o3; i2++) e3[s2][i2] = e3[s2][i2] - m2 * e3[l2][i2];
    }
    for (l2 = f2 - 1; l2 >= 0; l2--) {
      for (p2 = 0, s2 = l2 + 1; s2 <= f2 - 1; s2++) p2 += h2[s2] * e3[l2][s2];
      h2[l2] = (e3[l2][o3 - 1] - p2) / e3[l2][l2];
    }
    return h2;
  }, gauss_jordan: function(e3, r3) {
    var o3, u2, a2, i2 = n2.aug(e3, r3), l2 = i2.length, s2 = i2[0].length, f2 = 0;
    for (u2 = 0; u2 < l2; u2++) {
      var c2 = u2;
      for (a2 = u2 + 1; a2 < l2; a2++) t2.abs(i2[a2][u2]) > t2.abs(i2[c2][u2]) && (c2 = a2);
      var m2 = i2[u2];
      for (i2[u2] = i2[c2], i2[c2] = m2, a2 = u2 + 1; a2 < l2; a2++) for (f2 = i2[a2][u2] / i2[u2][u2], o3 = u2; o3 < s2; o3++) i2[a2][o3] -= i2[u2][o3] * f2;
    }
    for (u2 = l2 - 1; u2 >= 0; u2--) {
      for (f2 = i2[u2][u2], a2 = 0; a2 < u2; a2++) for (o3 = s2 - 1; o3 > u2 - 1; o3--) i2[a2][o3] -= i2[u2][o3] * i2[a2][u2] / f2;
      for (i2[u2][u2] /= f2, o3 = l2; o3 < s2; o3++) i2[u2][o3] /= f2;
    }
    return i2;
  }, triaUpSolve: function(t3, e3) {
    var r3, o3 = t3[0].length, u2 = n2.zeros(1, o3)[0], a2 = false;
    return null != e3[0].length && (e3 = e3.map(function(n3) {
      return n3[0];
    }), a2 = true), n2.arange(o3 - 1, -1, -1).forEach(function(a3) {
      r3 = n2.arange(a3 + 1, o3).map(function(n3) {
        return u2[n3] * t3[a3][n3];
      }), u2[a3] = (e3[a3] - n2.sum(r3)) / t3[a3][a3];
    }), a2 ? u2.map(function(n3) {
      return [n3];
    }) : u2;
  }, triaLowSolve: function(t3, e3) {
    var r3, o3 = t3[0].length, u2 = n2.zeros(1, o3)[0], a2 = false;
    return null != e3[0].length && (e3 = e3.map(function(n3) {
      return n3[0];
    }), a2 = true), n2.arange(o3).forEach(function(o4) {
      r3 = n2.arange(o4).map(function(n3) {
        return t3[o4][n3] * u2[n3];
      }), u2[o4] = (e3[o4] - n2.sum(r3)) / t3[o4][o4];
    }), a2 ? u2.map(function(n3) {
      return [n3];
    }) : u2;
  }, lu: function(t3) {
    var e3, r3 = t3.length, o3 = n2.identity(r3), u2 = n2.zeros(t3.length, t3[0].length);
    return n2.arange(r3).forEach(function(n3) {
      u2[0][n3] = t3[0][n3];
    }), n2.arange(1, r3).forEach(function(a2) {
      n2.arange(a2).forEach(function(r4) {
        e3 = n2.arange(r4).map(function(n3) {
          return o3[a2][n3] * u2[n3][r4];
        }), o3[a2][r4] = (t3[a2][r4] - n2.sum(e3)) / u2[r4][r4];
      }), n2.arange(a2, r3).forEach(function(r4) {
        e3 = n2.arange(a2).map(function(n3) {
          return o3[a2][n3] * u2[n3][r4];
        }), u2[a2][r4] = t3[e3.length][r4] - n2.sum(e3);
      });
    }), [o3, u2];
  }, cholesky: function(e3) {
    var r3, o3 = e3.length, u2 = n2.zeros(e3.length, e3[0].length);
    return n2.arange(o3).forEach(function(a2) {
      r3 = n2.arange(a2).map(function(n3) {
        return t2.pow(u2[a2][n3], 2);
      }), u2[a2][a2] = t2.sqrt(e3[a2][a2] - n2.sum(r3)), n2.arange(a2 + 1, o3).forEach(function(t3) {
        r3 = n2.arange(a2).map(function(n3) {
          return u2[a2][n3] * u2[t3][n3];
        }), u2[t3][a2] = (e3[a2][t3] - n2.sum(r3)) / u2[a2][a2];
      });
    }), u2;
  }, gauss_jacobi: function(e3, r3, o3, u2) {
    for (var a2, i2, l2, s2, f2 = 0, c2 = 0, m2 = e3.length, p2 = [], h2 = [], g2 = []; f2 < m2; f2++) for (p2[f2] = [], h2[f2] = [], g2[f2] = [], c2 = 0; c2 < m2; c2++) f2 > c2 ? (p2[f2][c2] = e3[f2][c2], h2[f2][c2] = g2[f2][c2] = 0) : f2 < c2 ? (h2[f2][c2] = e3[f2][c2], p2[f2][c2] = g2[f2][c2] = 0) : (g2[f2][c2] = e3[f2][c2], p2[f2][c2] = h2[f2][c2] = 0);
    for (l2 = n2.multiply(n2.multiply(n2.inv(g2), n2.add(p2, h2)), -1), i2 = n2.multiply(n2.inv(g2), r3), a2 = o3, s2 = n2.add(n2.multiply(l2, o3), i2), f2 = 2; t2.abs(n2.norm(n2.subtract(s2, a2))) > u2; ) a2 = s2, s2 = n2.add(n2.multiply(l2, a2), i2), f2++;
    return s2;
  }, gauss_seidel: function(e3, r3, o3, u2) {
    for (var a2, i2, l2, s2, f2, c2 = 0, m2 = e3.length, p2 = [], h2 = [], g2 = []; c2 < m2; c2++) for (p2[c2] = [], h2[c2] = [], g2[c2] = [], a2 = 0; a2 < m2; a2++) c2 > a2 ? (p2[c2][a2] = e3[c2][a2], h2[c2][a2] = g2[c2][a2] = 0) : c2 < a2 ? (h2[c2][a2] = e3[c2][a2], p2[c2][a2] = g2[c2][a2] = 0) : (g2[c2][a2] = e3[c2][a2], p2[c2][a2] = h2[c2][a2] = 0);
    for (s2 = n2.multiply(n2.multiply(n2.inv(n2.add(g2, p2)), h2), -1), l2 = n2.multiply(n2.inv(n2.add(g2, p2)), r3), i2 = o3, f2 = n2.add(n2.multiply(s2, o3), l2), c2 = 2; t2.abs(n2.norm(n2.subtract(f2, i2))) > u2; ) i2 = f2, f2 = n2.add(n2.multiply(s2, i2), l2), c2 += 1;
    return f2;
  }, SOR: function(e3, r3, o3, u2, a2) {
    for (var i2, l2, s2, f2, c2, m2 = 0, p2 = e3.length, h2 = [], g2 = [], d2 = []; m2 < p2; m2++) for (h2[m2] = [], g2[m2] = [], d2[m2] = [], i2 = 0; i2 < p2; i2++) m2 > i2 ? (h2[m2][i2] = e3[m2][i2], g2[m2][i2] = d2[m2][i2] = 0) : m2 < i2 ? (g2[m2][i2] = e3[m2][i2], h2[m2][i2] = d2[m2][i2] = 0) : (d2[m2][i2] = e3[m2][i2], h2[m2][i2] = g2[m2][i2] = 0);
    for (f2 = n2.multiply(n2.inv(n2.add(d2, n2.multiply(h2, a2))), n2.subtract(n2.multiply(d2, 1 - a2), n2.multiply(g2, a2))), s2 = n2.multiply(n2.multiply(n2.inv(n2.add(d2, n2.multiply(h2, a2))), r3), a2), l2 = o3, c2 = n2.add(n2.multiply(f2, o3), s2), m2 = 2; t2.abs(n2.norm(n2.subtract(c2, l2))) > u2; ) l2 = c2, c2 = n2.add(n2.multiply(f2, l2), s2), m2++;
    return c2;
  }, householder: function(e3) {
    for (var r3, o3, u2, a2, i2 = e3.length, l2 = e3[0].length, s2 = 0, f2 = [], c2 = []; s2 < i2 - 1; s2++) {
      for (r3 = 0, a2 = s2 + 1; a2 < l2; a2++) r3 += e3[a2][s2] * e3[a2][s2];
      for (r3 = (e3[s2 + 1][s2] > 0 ? -1 : 1) * t2.sqrt(r3), o3 = t2.sqrt((r3 * r3 - e3[s2 + 1][s2] * r3) / 2), (f2 = n2.zeros(i2, 1))[s2 + 1][0] = (e3[s2 + 1][s2] - r3) / (2 * o3), u2 = s2 + 2; u2 < i2; u2++) f2[u2][0] = e3[u2][s2] / (2 * o3);
      c2 = n2.subtract(n2.identity(i2, l2), n2.multiply(n2.multiply(f2, n2.transpose(f2)), 2)), e3 = n2.multiply(c2, n2.multiply(e3, c2));
    }
    return e3;
  }, QR: function() {
    var e3 = n2.sum, r3 = n2.arange;
    function o3(o4) {
      var u2, a2, i2, l2 = o4.length, s2 = o4[0].length, f2 = n2.zeros(s2, s2);
      for (o4 = n2.copy(o4), a2 = 0; a2 < s2; a2++) {
        for (f2[a2][a2] = t2.sqrt(e3(r3(l2).map(function(n3) {
          return o4[n3][a2] * o4[n3][a2];
        }))), u2 = 0; u2 < l2; u2++) o4[u2][a2] = o4[u2][a2] / f2[a2][a2];
        for (i2 = a2 + 1; i2 < s2; i2++) for (f2[a2][i2] = e3(r3(l2).map(function(n3) {
          return o4[n3][a2] * o4[n3][i2];
        })), u2 = 0; u2 < l2; u2++) o4[u2][i2] = o4[u2][i2] - o4[u2][a2] * f2[a2][i2];
      }
      return [o4, f2];
    }
    return o3;
  }(), lstsq: /* @__PURE__ */ function() {
    function t3(t4) {
      var e4 = (t4 = n2.copy(t4)).length, r3 = n2.identity(e4);
      return n2.arange(e4 - 1, -1, -1).forEach(function(e5) {
        n2.sliceAssign(r3, { row: e5 }, n2.divide(n2.slice(r3, { row: e5 }), t4[e5][e5])), n2.sliceAssign(t4, { row: e5 }, n2.divide(n2.slice(t4, { row: e5 }), t4[e5][e5])), n2.arange(e5).forEach(function(o3) {
          var u2 = n2.multiply(t4[o3][e5], -1), a2 = n2.slice(t4, { row: o3 }), i2 = n2.multiply(n2.slice(t4, { row: e5 }), u2);
          n2.sliceAssign(t4, { row: o3 }, n2.add(a2, i2));
          var l2 = n2.slice(r3, { row: o3 }), s2 = n2.multiply(n2.slice(r3, { row: e5 }), u2);
          n2.sliceAssign(r3, { row: o3 }, n2.add(l2, s2));
        });
      }), r3;
    }
    function e3(e4, r3) {
      var o3 = false;
      void 0 === r3[0].length && (r3 = r3.map(function(n3) {
        return [n3];
      }), o3 = true);
      var u2 = n2.QR(e4), a2 = u2[0], i2 = u2[1], l2 = e4[0].length, s2 = n2.slice(a2, { col: { end: l2 } }), f2 = t3(n2.slice(i2, { row: { end: l2 } })), c2 = n2.transpose(s2);
      void 0 === c2[0].length && (c2 = [c2]);
      var m2 = n2.multiply(n2.multiply(f2, c2), r3);
      return void 0 === m2.length && (m2 = [[m2]]), o3 ? m2.map(function(n3) {
        return n3[0];
      }) : m2;
    }
    return e3;
  }(), jacobi: function(e3) {
    for (var r3, o3, u2, a2, i2, l2, s2, f2 = 1, c2 = e3.length, m2 = n2.identity(c2, c2), p2 = []; 1 === f2; ) {
      for (i2 = e3[0][1], u2 = 0, a2 = 1, r3 = 0; r3 < c2; r3++) for (o3 = 0; o3 < c2; o3++) r3 != o3 && i2 < t2.abs(e3[r3][o3]) && (i2 = t2.abs(e3[r3][o3]), u2 = r3, a2 = o3);
      for (l2 = e3[u2][u2] === e3[a2][a2] ? e3[u2][a2] > 0 ? t2.PI / 4 : -t2.PI / 4 : t2.atan(2 * e3[u2][a2] / (e3[u2][u2] - e3[a2][a2])) / 2, (s2 = n2.identity(c2, c2))[u2][u2] = t2.cos(l2), s2[u2][a2] = -t2.sin(l2), s2[a2][u2] = t2.sin(l2), s2[a2][a2] = t2.cos(l2), m2 = n2.multiply(m2, s2), e3 = n2.multiply(n2.multiply(n2.inv(s2), e3), s2), f2 = 0, r3 = 1; r3 < c2; r3++) for (o3 = 1; o3 < c2; o3++) r3 != o3 && t2.abs(e3[r3][o3]) > 1e-3 && (f2 = 1);
    }
    for (r3 = 0; r3 < c2; r3++) p2.push(e3[r3][r3]);
    return [m2, p2];
  }, rungekutta: function(n3, t3, e3, r3, o3, u2) {
    var a2, i2, l2;
    if (2 === u2) for (; r3 <= e3; ) o3 += ((a2 = t3 * n3(r3, o3)) + (i2 = t3 * n3(r3 + t3, o3 + a2))) / 2, r3 += t3;
    if (4 === u2) for (; r3 <= e3; ) o3 += ((a2 = t3 * n3(r3, o3)) + 2 * (i2 = t3 * n3(r3 + t3 / 2, o3 + a2 / 2)) + 2 * (l2 = t3 * n3(r3 + t3 / 2, o3 + i2 / 2)) + t3 * n3(r3 + t3, o3 + l2)) / 6, r3 += t3;
    return o3;
  }, romberg: function(n3, e3, r3, o3) {
    for (var u2, a2, i2, l2, s2, f2 = 0, c2 = (r3 - e3) / 2, m2 = [], p2 = [], h2 = []; f2 < o3 / 2; ) {
      for (s2 = n3(e3), i2 = e3, l2 = 0; i2 <= r3; i2 += c2, l2++) m2[l2] = i2;
      for (u2 = m2.length, i2 = 1; i2 < u2 - 1; i2++) s2 += (i2 % 2 != 0 ? 4 : 2) * n3(m2[i2]);
      s2 = c2 / 3 * (s2 + n3(r3)), h2[f2] = s2, c2 /= 2, f2++;
    }
    for (a2 = h2.length, u2 = 1; 1 !== a2; ) {
      for (i2 = 0; i2 < a2 - 1; i2++) p2[i2] = (t2.pow(4, u2) * h2[i2 + 1] - h2[i2]) / (t2.pow(4, u2) - 1);
      a2 = p2.length, h2 = p2, p2 = [], u2++;
    }
    return h2;
  }, richardson: function(n3, e3, r3, o3) {
    function u2(n4, t3) {
      for (var e4, r4 = 0, o4 = n4.length; r4 < o4; r4++) n4[r4] === t3 && (e4 = r4);
      return e4;
    }
    for (var a2, i2, l2, s2, f2, c2 = t2.abs(r3 - n3[u2(n3, r3) + 1]), m2 = 0, p2 = [], h2 = []; o3 >= c2; ) a2 = u2(n3, r3 + o3), i2 = u2(n3, r3), p2[m2] = (e3[a2] - 2 * e3[i2] + e3[2 * i2 - a2]) / (o3 * o3), o3 /= 2, m2++;
    for (s2 = p2.length, l2 = 1; 1 != s2; ) {
      for (f2 = 0; f2 < s2 - 1; f2++) h2[f2] = (t2.pow(4, l2) * p2[f2 + 1] - p2[f2]) / (t2.pow(4, l2) - 1);
      s2 = h2.length, p2 = h2, h2 = [], l2++;
    }
    return p2;
  }, simpson: function(n3, t3, e3, r3) {
    for (var o3, u2 = (e3 - t3) / r3, a2 = n3(t3), i2 = [], l2 = t3, s2 = 0, f2 = 1; l2 <= e3; l2 += u2, s2++) i2[s2] = l2;
    for (o3 = i2.length; f2 < o3 - 1; f2++) a2 += (f2 % 2 != 0 ? 4 : 2) * n3(i2[f2]);
    return u2 / 3 * (a2 + n3(e3));
  }, hermite: function(n3, t3, e3, r3) {
    for (var o3, u2 = n3.length, a2 = 0, i2 = 0, l2 = [], s2 = [], f2 = [], c2 = []; i2 < u2; i2++) {
      for (l2[i2] = 1, o3 = 0; o3 < u2; o3++) i2 != o3 && (l2[i2] *= (r3 - n3[o3]) / (n3[i2] - n3[o3]));
      for (s2[i2] = 0, o3 = 0; o3 < u2; o3++) i2 != o3 && (s2[i2] += 1 / (n3[i2] - n3[o3]));
      f2[i2] = (1 - 2 * (r3 - n3[i2]) * s2[i2]) * (l2[i2] * l2[i2]), c2[i2] = (r3 - n3[i2]) * (l2[i2] * l2[i2]), a2 += f2[i2] * t3[i2] + c2[i2] * e3[i2];
    }
    return a2;
  }, lagrange: function(n3, t3, e3) {
    for (var r3, o3, u2 = 0, a2 = 0, i2 = n3.length; a2 < i2; a2++) {
      for (o3 = t3[a2], r3 = 0; r3 < i2; r3++) a2 != r3 && (o3 *= (e3 - n3[r3]) / (n3[a2] - n3[r3]));
      u2 += o3;
    }
    return u2;
  }, cubic_spline: function(t3, e3, r3) {
    for (var o3, u2 = t3.length, a2 = 0, i2 = [], l2 = [], s2 = [], f2 = [], c2 = [], m2 = [], p2 = []; a2 < u2 - 1; a2++) c2[a2] = t3[a2 + 1] - t3[a2];
    for (s2[0] = 0, a2 = 1; a2 < u2 - 1; a2++) s2[a2] = 3 / c2[a2] * (e3[a2 + 1] - e3[a2]) - 3 / c2[a2 - 1] * (e3[a2] - e3[a2 - 1]);
    for (a2 = 1; a2 < u2 - 1; a2++) i2[a2] = [], l2[a2] = [], i2[a2][a2 - 1] = c2[a2 - 1], i2[a2][a2] = 2 * (c2[a2 - 1] + c2[a2]), i2[a2][a2 + 1] = c2[a2], l2[a2][0] = s2[a2];
    for (f2 = n2.multiply(n2.inv(i2), l2), o3 = 0; o3 < u2 - 1; o3++) m2[o3] = (e3[o3 + 1] - e3[o3]) / c2[o3] - c2[o3] * (f2[o3 + 1][0] + 2 * f2[o3][0]) / 3, p2[o3] = (f2[o3 + 1][0] - f2[o3][0]) / (3 * c2[o3]);
    for (o3 = 0; o3 < u2 && !(t3[o3] > r3); o3++) ;
    return e3[o3 -= 1] + (r3 - t3[o3]) * m2[o3] + n2.sq(r3 - t3[o3]) * f2[o3] + (r3 - t3[o3]) * n2.sq(r3 - t3[o3]) * p2[o3];
  }, gauss_quadrature: function() {
    throw new Error("gauss_quadrature not yet implemented");
  }, PCA: function(t3) {
    var e3, r3, o3 = t3.length, u2 = t3[0].length, a2 = 0, i2 = [], l2 = [], s2 = [], f2 = [], c2 = [], m2 = [], p2 = [], h2 = [], g2 = [], d2 = [];
    for (a2 = 0; a2 < o3; a2++) i2[a2] = n2.sum(t3[a2]) / u2;
    for (a2 = 0; a2 < u2; a2++) for (p2[a2] = [], e3 = 0; e3 < o3; e3++) p2[a2][e3] = t3[e3][a2] - i2[e3];
    for (p2 = n2.transpose(p2), a2 = 0; a2 < o3; a2++) for (h2[a2] = [], e3 = 0; e3 < o3; e3++) h2[a2][e3] = n2.dot([p2[a2]], [p2[e3]]) / (u2 - 1);
    for (g2 = (s2 = n2.jacobi(h2))[0], l2 = s2[1], d2 = n2.transpose(g2), a2 = 0; a2 < l2.length; a2++) for (e3 = a2; e3 < l2.length; e3++) l2[a2] < l2[e3] && (r3 = l2[a2], l2[a2] = l2[e3], l2[e3] = r3, f2 = d2[a2], d2[a2] = d2[e3], d2[e3] = f2);
    for (m2 = n2.transpose(p2), a2 = 0; a2 < o3; a2++) for (c2[a2] = [], e3 = 0; e3 < m2.length; e3++) c2[a2][e3] = n2.dot([d2[a2]], [m2[e3]]);
    return [t3, l2, d2, c2];
  } }), function(t3) {
    for (var e3 = 0; e3 < t3.length; e3++) (function(t4) {
      n2.fn[t4] = function(e4, r3) {
        var o3 = this;
        return r3 ? (setTimeout(function() {
          r3.call(o3, n2.fn[t4].call(o3, e4));
        }, 15), this) : "number" == typeof n2[t4](this, e4) ? n2[t4](this, e4) : n2(n2[t4](this, e4));
      };
    })(t3[e3]);
  }("add divide multiply subtract dot pow exp log abs norm angle".split(" "));
}(h, Math), function(n2, t2) {
  var e2 = [].slice, r2 = n2.utils.isNumber, o2 = n2.utils.isArray;
  function u2(n3, e3, r3, o3) {
    if (n3 > 1 || r3 > 1 || n3 <= 0 || r3 <= 0) throw new Error("Proportions should be greater than 0 and less than 1");
    var u3 = (n3 * e3 + r3 * o3) / (e3 + o3);
    return (n3 - r3) / t2.sqrt(u3 * (1 - u3) * (1 / e3 + 1 / o3));
  }
  n2.extend({ zscore: function() {
    var t3 = e2.call(arguments);
    return r2(t3[1]) ? (t3[0] - t3[1]) / t3[2] : (t3[0] - n2.mean(t3[1])) / n2.stdev(t3[1], t3[2]);
  }, ztest: function() {
    var r3, u3 = e2.call(arguments);
    return o2(u3[1]) ? (r3 = n2.zscore(u3[0], u3[1], u3[3]), 1 === u3[2] ? n2.normal.cdf(-t2.abs(r3), 0, 1) : 2 * n2.normal.cdf(-t2.abs(r3), 0, 1)) : u3.length > 2 ? (r3 = n2.zscore(u3[0], u3[1], u3[2]), 1 === u3[3] ? n2.normal.cdf(-t2.abs(r3), 0, 1) : 2 * n2.normal.cdf(-t2.abs(r3), 0, 1)) : (r3 = u3[0], 1 === u3[1] ? n2.normal.cdf(-t2.abs(r3), 0, 1) : 2 * n2.normal.cdf(-t2.abs(r3), 0, 1));
  } }), n2.extend(n2.fn, { zscore: function(n3, t3) {
    return (n3 - this.mean()) / this.stdev(t3);
  }, ztest: function(e3, r3, o3) {
    var u3 = t2.abs(this.zscore(e3, o3));
    return 1 === r3 ? n2.normal.cdf(-u3, 0, 1) : 2 * n2.normal.cdf(-u3, 0, 1);
  } }), n2.extend({ tscore: function() {
    var r3 = e2.call(arguments);
    return 4 === r3.length ? (r3[0] - r3[1]) / (r3[2] / t2.sqrt(r3[3])) : (r3[0] - n2.mean(r3[1])) / (n2.stdev(r3[1], true) / t2.sqrt(r3[1].length));
  }, ttest: function() {
    var o3, u3 = e2.call(arguments);
    return 5 === u3.length ? (o3 = t2.abs(n2.tscore(u3[0], u3[1], u3[2], u3[3])), 1 === u3[4] ? n2.studentt.cdf(-o3, u3[3] - 1) : 2 * n2.studentt.cdf(-o3, u3[3] - 1)) : r2(u3[1]) ? (o3 = t2.abs(u3[0]), 1 == u3[2] ? n2.studentt.cdf(-o3, u3[1] - 1) : 2 * n2.studentt.cdf(-o3, u3[1] - 1)) : (o3 = t2.abs(n2.tscore(u3[0], u3[1])), 1 == u3[2] ? n2.studentt.cdf(-o3, u3[1].length - 1) : 2 * n2.studentt.cdf(-o3, u3[1].length - 1));
  } }), n2.extend(n2.fn, { tscore: function(n3) {
    return (n3 - this.mean()) / (this.stdev(true) / t2.sqrt(this.cols()));
  }, ttest: function(e3, r3) {
    return 1 === r3 ? 1 - n2.studentt.cdf(t2.abs(this.tscore(e3)), this.cols() - 1) : 2 * n2.studentt.cdf(-t2.abs(this.tscore(e3)), this.cols() - 1);
  } }), n2.extend({ anovafscore: function() {
    var r3, o3, u3, a2, i2, l2, s2, f2, c2 = e2.call(arguments);
    if (1 === c2.length) {
      for (i2 = new Array(c2[0].length), s2 = 0; s2 < c2[0].length; s2++) i2[s2] = c2[0][s2];
      c2 = i2;
    }
    for (o3 = new Array(), s2 = 0; s2 < c2.length; s2++) o3 = o3.concat(c2[s2]);
    for (u3 = n2.mean(o3), r3 = 0, s2 = 0; s2 < c2.length; s2++) r3 += c2[s2].length * t2.pow(n2.mean(c2[s2]) - u3, 2);
    for (r3 /= c2.length - 1, l2 = 0, s2 = 0; s2 < c2.length; s2++) for (a2 = n2.mean(c2[s2]), f2 = 0; f2 < c2[s2].length; f2++) l2 += t2.pow(c2[s2][f2] - a2, 2);
    return r3 / (l2 /= o3.length - c2.length);
  }, anovaftest: function() {
    var t3, o3, u3, a2, i2 = e2.call(arguments);
    if (r2(i2[0])) return 1 - n2.centralF.cdf(i2[0], i2[1], i2[2]);
    var l2 = n2.anovafscore(i2);
    for (t3 = i2.length - 1, u3 = 0, a2 = 0; a2 < i2.length; a2++) u3 += i2[a2].length;
    return o3 = u3 - t3 - 1, 1 - n2.centralF.cdf(l2, t3, o3);
  }, ftest: function(t3, e3, r3) {
    return 1 - n2.centralF.cdf(t3, e3, r3);
  } }), n2.extend(n2.fn, { anovafscore: function() {
    return n2.anovafscore(this.toArray());
  }, anovaftes: function() {
    var t3, e3 = 0;
    for (t3 = 0; t3 < this.length; t3++) e3 += this[t3].length;
    return n2.ftest(this.anovafscore(), this.length - 1, e3 - this.length);
  } }), n2.extend({ qscore: function() {
    var o3, u3, a2, i2, l2, s2 = e2.call(arguments);
    return r2(s2[0]) ? (o3 = s2[0], u3 = s2[1], a2 = s2[2], i2 = s2[3], l2 = s2[4]) : (o3 = n2.mean(s2[0]), u3 = n2.mean(s2[1]), a2 = s2[0].length, i2 = s2[1].length, l2 = s2[2]), t2.abs(o3 - u3) / (l2 * t2.sqrt((1 / a2 + 1 / i2) / 2));
  }, qtest: function() {
    var t3, r3 = e2.call(arguments);
    3 === r3.length ? (t3 = r3[0], r3 = r3.slice(1)) : 7 === r3.length ? (t3 = n2.qscore(r3[0], r3[1], r3[2], r3[3], r3[4]), r3 = r3.slice(5)) : (t3 = n2.qscore(r3[0], r3[1], r3[2]), r3 = r3.slice(3));
    var o3 = r3[0], u3 = r3[1];
    return 1 - n2.tukey.cdf(t3, u3, o3 - u3);
  }, tukeyhsd: function(t3) {
    for (var e3 = n2.pooledstdev(t3), r3 = t3.map(function(t4) {
      return n2.mean(t4);
    }), o3 = t3.reduce(function(n3, t4) {
      return n3 + t4.length;
    }, 0), u3 = [], a2 = 0; a2 < t3.length; ++a2) for (var i2 = a2 + 1; i2 < t3.length; ++i2) {
      var l2 = n2.qtest(r3[a2], r3[i2], t3[a2].length, t3[i2].length, e3, o3, t3.length);
      u3.push([[a2, i2], l2]);
    }
    return u3;
  } }), n2.extend({ normalci: function() {
    var r3, o3 = e2.call(arguments), u3 = new Array(2);
    return r3 = 4 === o3.length ? t2.abs(n2.normal.inv(o3[1] / 2, 0, 1) * o3[2] / t2.sqrt(o3[3])) : t2.abs(n2.normal.inv(o3[1] / 2, 0, 1) * n2.stdev(o3[2]) / t2.sqrt(o3[2].length)), u3[0] = o3[0] - r3, u3[1] = o3[0] + r3, u3;
  }, tci: function() {
    var r3, o3 = e2.call(arguments), u3 = new Array(2);
    return r3 = 4 === o3.length ? t2.abs(n2.studentt.inv(o3[1] / 2, o3[3] - 1) * o3[2] / t2.sqrt(o3[3])) : t2.abs(n2.studentt.inv(o3[1] / 2, o3[2].length - 1) * n2.stdev(o3[2], true) / t2.sqrt(o3[2].length)), u3[0] = o3[0] - r3, u3[1] = o3[0] + r3, u3;
  }, significant: function(n3, t3) {
    return n3 < t3;
  } }), n2.extend(n2.fn, { normalci: function(t3, e3) {
    return n2.normalci(t3, e3, this.toArray());
  }, tci: function(t3, e3) {
    return n2.tci(t3, e3, this.toArray());
  } }), n2.extend(n2.fn, { oneSidedDifferenceOfProportions: function(t3, e3, r3, o3) {
    var a2 = u2(t3, e3, r3, o3);
    return n2.ztest(a2, 1);
  }, twoSidedDifferenceOfProportions: function(t3, e3, r3, o3) {
    var a2 = u2(t3, e3, r3, o3);
    return n2.ztest(a2, 2);
  } });
}(h, Math), h.models = /* @__PURE__ */ function() {
  function n2(n3) {
    var e3 = n3[0].length, r3 = h.arange(e3).map(function(r4) {
      var o3 = h.arange(e3).filter(function(n4) {
        return n4 !== r4;
      });
      return t2(h.col(n3, r4).map(function(n4) {
        return n4[0];
      }), h.col(n3, o3));
    });
    return r3;
  }
  function t2(n3, t3) {
    var e3 = n3.length, r3 = t3[0].length - 1, o3 = e3 - r3 - 1, u2 = h.lstsq(t3, n3), a2 = h.multiply(t3, u2.map(function(n4) {
      return [n4];
    })).map(function(n4) {
      return n4[0];
    }), i2 = h.subtract(n3, a2), l2 = h.mean(n3), s2 = h.sum(a2.map(function(n4) {
      return Math.pow(n4 - l2, 2);
    })), f2 = h.sum(n3.map(function(n4, t4) {
      return Math.pow(n4 - a2[t4], 2);
    })), c2 = s2 + f2;
    return { exog: t3, endog: n3, nobs: e3, df_model: r3, df_resid: o3, coef: u2, predict: a2, resid: i2, ybar: l2, SST: c2, SSE: s2, SSR: f2, R2: s2 / c2 };
  }
  function e2(t3) {
    var e3 = n2(t3.exog), r3 = Math.sqrt(t3.SSR / t3.df_resid), o3 = e3.map(function(n3) {
      var t4 = n3.SST, e4 = n3.R2;
      return r3 / Math.sqrt(t4 * (1 - e4));
    }), u2 = t3.coef.map(function(n3, t4) {
      return (n3 - 0) / o3[t4];
    }), a2 = u2.map(function(n3) {
      var e4 = h.studentt.cdf(n3, t3.df_resid);
      return 2 * (e4 > 0.5 ? 1 - e4 : e4);
    }), i2 = h.studentt.inv(0.975, t3.df_resid), l2 = t3.coef.map(function(n3, t4) {
      var e4 = i2 * o3[t4];
      return [n3 - e4, n3 + e4];
    });
    return { se: o3, t: u2, p: a2, sigmaHat: r3, interval95: l2 };
  }
  function r2(n3) {
    var t3 = n3.R2 / n3.df_model / ((1 - n3.R2) / n3.df_resid), e3 = function(n4, t4, e4) {
      return h.beta.cdf(n4 / (e4 / t4 + n4), t4 / 2, e4 / 2);
    };
    return { F_statistic: t3, pvalue: 1 - e3(t3, n3.df_model, n3.df_resid) };
  }
  function o2(n3, o3) {
    var u2 = t2(n3, o3), a2 = e2(u2), i2 = r2(u2), l2 = 1 - (1 - u2.R2) * ((u2.nobs - 1) / u2.df_resid);
    return u2.t = a2, u2.f = i2, u2.adjust_R2 = l2, u2;
  }
  return { ols: o2 };
}(), h.extend({ buildxmatrix: function() {
  for (var n2 = new Array(arguments.length), t2 = 0; t2 < arguments.length; t2++) {
    var e2 = [1];
    n2[t2] = e2.concat(arguments[t2]);
  }
  return h(n2);
}, builddxmatrix: function() {
  for (var n2 = new Array(arguments[0].length), t2 = 0; t2 < arguments[0].length; t2++) {
    var e2 = [1];
    n2[t2] = e2.concat(arguments[0][t2]);
  }
  return h(n2);
}, buildjxmatrix: function(n2) {
  for (var t2 = new Array(n2.length), e2 = 0; e2 < n2.length; e2++) t2[e2] = n2[e2];
  return h.builddxmatrix(t2);
}, buildymatrix: function(n2) {
  return h(n2).transpose();
}, buildjymatrix: function(n2) {
  return n2.transpose();
}, matrixmult: function(n2, t2) {
  var e2, r2, o2, u2, a2;
  if (n2.cols() == t2.rows()) {
    if (t2.rows() > 1) {
      for (u2 = [], e2 = 0; e2 < n2.rows(); e2++) for (u2[e2] = [], r2 = 0; r2 < t2.cols(); r2++) {
        for (a2 = 0, o2 = 0; o2 < n2.cols(); o2++) a2 += n2.toArray()[e2][o2] * t2.toArray()[o2][r2];
        u2[e2][r2] = a2;
      }
      return h(u2);
    }
    for (u2 = [], e2 = 0; e2 < n2.rows(); e2++) for (u2[e2] = [], r2 = 0; r2 < t2.cols(); r2++) {
      for (a2 = 0, o2 = 0; o2 < n2.cols(); o2++) a2 += n2.toArray()[e2][o2] * t2.toArray()[r2];
      u2[e2][r2] = a2;
    }
    return h(u2);
  }
}, regress: function(n2, t2) {
  var e2 = h.xtranspxinv(n2), r2 = n2.transpose(), o2 = h.matrixmult(h(e2), r2);
  return h.matrixmult(o2, t2);
}, regresst: function(n2, t2, e2) {
  var r2 = h.regress(n2, t2), o2 = { anova: {} }, u2 = h.jMatYBar(n2, r2);
  o2.yBar = u2;
  var a2 = t2.mean();
  o2.anova.residuals = h.residuals(t2, u2), o2.anova.ssr = h.ssr(u2, a2), o2.anova.msr = o2.anova.ssr / (n2[0].length - 1), o2.anova.sse = h.sse(t2, u2), o2.anova.mse = o2.anova.sse / (t2.length - (n2[0].length - 1) - 1), o2.anova.sst = h.sst(t2, a2), o2.anova.mst = o2.anova.sst / (t2.length - 1), o2.anova.r2 = 1 - o2.anova.sse / o2.anova.sst, o2.anova.r2 < 0 && (o2.anova.r2 = 0), o2.anova.fratio = o2.anova.msr / o2.anova.mse, o2.anova.pvalue = h.anovaftest(o2.anova.fratio, n2[0].length - 1, t2.length - (n2[0].length - 1) - 1), o2.anova.rmse = Math.sqrt(o2.anova.mse), o2.anova.r2adj = 1 - o2.anova.mse / o2.anova.mst, o2.anova.r2adj < 0 && (o2.anova.r2adj = 0), o2.stats = new Array(n2[0].length);
  for (var i2, l2, s2, f2 = h.xtranspxinv(n2), c2 = 0; c2 < r2.length; c2++) i2 = Math.sqrt(o2.anova.mse * Math.abs(f2[c2][c2])), l2 = Math.abs(r2[c2] / i2), s2 = h.ttest(l2, t2.length - n2[0].length - 1, e2), o2.stats[c2] = [r2[c2], i2, l2, s2];
  return o2.regress = r2, o2;
}, xtranspx: function(n2) {
  return h.matrixmult(n2.transpose(), n2);
}, xtranspxinv: function(n2) {
  var t2 = h.matrixmult(n2.transpose(), n2);
  return h.inv(t2);
}, jMatYBar: function(n2, t2) {
  var e2 = h.matrixmult(n2, t2);
  return new h(e2);
}, residuals: function(n2, t2) {
  return h.matrixsubtract(n2, t2);
}, ssr: function(n2, t2) {
  for (var e2 = 0, r2 = 0; r2 < n2.length; r2++) e2 += Math.pow(n2[r2] - t2, 2);
  return e2;
}, sse: function(n2, t2) {
  for (var e2 = 0, r2 = 0; r2 < n2.length; r2++) e2 += Math.pow(n2[r2] - t2[r2], 2);
  return e2;
}, sst: function(n2, t2) {
  for (var e2 = 0, r2 = 0; r2 < n2.length; r2++) e2 += Math.pow(n2[r2] - t2, 2);
  return e2;
}, matrixsubtract: function(n2, t2) {
  for (var e2 = new Array(n2.length), r2 = 0; r2 < n2.length; r2++) {
    e2[r2] = new Array(n2[r2].length);
    for (var o2 = 0; o2 < n2[r2].length; o2++) e2[r2][o2] = n2[r2][o2] - t2[r2][o2];
  }
  return h(e2);
} }), h.jStat = h, h)), p.exports);
const d = n(g);
var N, b = { exports: {} };
var E = (N || (N = 1, function(n2, t2) {
  const e2 = "ศูนย์บาทถ้วน", r2 = ["", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า"], o2 = ["", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน"];
  function u2(n3) {
    let t3 = "";
    const e3 = n3.length;
    if (e3 > 7) {
      const t4 = e3 - 7 + 1, r3 = n3.slice(0, t4), o3 = n3.slice(t4);
      return u2(r3) + "ล้าน" + u2(o3);
    }
    for (let u3 = 0; u3 < e3; u3++) {
      const a3 = n3[u3];
      a3 > 0 && (t3 += r2[a3] + o2[e3 - u3 - 1]);
    }
    return t3;
  }
  function a2(n3) {
    return n3.replace(/หนึ่งสิบ/g, "สิบ").replace(/สองสิบ/g, "ยี่สิบ").replace(/สิบหนึ่ง/g, "สิบเอ็ด");
  }
  function i2(n3, t3) {
    return n3 || t3 ? n3 && !t3 ? n3 + "บาทถ้วน" : !n3 && t3 ? t3 + "สตางค์" : n3 + "บาท" + t3 + "สตางค์" : e2;
  }
  function l2(n3) {
    if (!n3 || "boolean" == typeof n3 || isNaN(Number(n3)) || n3 < Number.MIN_SAFE_INTEGER || n3 > Number.MAX_SAFE_INTEGER) return e2;
    const t3 = Math.abs(n3), r3 = Math.floor(t3).toString(), o3 = (t3 % 1 * 100).toFixed(0), l3 = Array.from(r3).map(Number), s2 = Array.from(o3).map(Number);
    let f2 = u2(l3), c2 = u2(s2);
    f2 = a2(f2), c2 = a2(c2);
    const m2 = i2(f2, c2);
    return n3 >= 0 ? m2 : "ลบ" + m2;
  }
  null != n2.exports && (n2.exports = { bahttext: l2, bahtxtNum2Word: u2, bahtxtGrammarFix: a2, bahtxtCombine: i2 }, t2.default = { bahttext: l2 });
}(b, b.exports)), b.exports);
const I = Object.freeze(Object.defineProperty({ __proto__: null, CUBEKPIMEMBER: function(n2, t2, e2, r2) {
}, CUBEMEMBER: function(n2, t2, e2) {
}, CUBEMEMBERPROPERTY: function(n2, t2, e2) {
}, CUBERANKEDMEMBER: function(n2, t2, e2, r2) {
}, CUBESET: function(n2, t2, e2, r2, o2) {
}, CUBESETCOUNT: function(n2) {
}, CUBEVALUE: function(n2, ...t2) {
} }, Symbol.toStringTag, { value: "Module" })), T = Object.freeze(Object.defineProperty({ __proto__: null, DAVERAGE: function(n2, t2, e2) {
}, DCOUNT: function(n2, t2, e2) {
}, DCOUNTA: function(n2, t2, e2) {
}, DGET: function(n2, t2, e2) {
}, DMAX: function(n2, t2, e2) {
}, DMIN: function(n2, t2, e2) {
}, DPRODUCT: function(n2, t2, e2) {
}, DSTDEV: function(n2, t2, e2) {
}, DSTDEVP: function(n2, t2, e2) {
}, DSUM: function(n2, t2, e2) {
}, DVAR: function(n2, t2, e2) {
}, DVARP: function(n2, t2, e2) {
} }, Symbol.toStringTag, { value: "Module" })), M = { NUMBER: 0, ARRAY: 1, BOOLEAN: 2, STRING: 3, RANGE_REF: 4, CELL_REF: 5, NUMBER_NO_BOOLEAN: 10 }, S = new class {
  constructor() {
    this.Types = M, this.type2Number = { number: M.NUMBER, boolean: M.BOOLEAN, string: M.STRING, object: -1 };
  }
  flattenDeep(n2) {
    return Array.isArray(n2) || (console.log("flattenDeep invalid arg", n2), n2 = [n2]), n2.reduce((n3, t2) => Array.isArray(t2) ? n3.concat(this.flattenDeep(t2)) : n3.concat(t2), []);
  }
  acceptNumber(n2, e2 = true, r2 = true) {
    if (n2 instanceof t.Known) return n2;
    let o2;
    if ("number" == typeof n2) o2 = n2;
    else if ("boolean" == typeof n2) {
      if (!r2) throw t.BuiltIn.Value;
      o2 = Number(n2);
    } else if ("string" == typeof n2) {
      if (0 === n2.length) throw t.BuiltIn.Value;
      if (o2 = Number(n2), o2 != o2) throw t.BuiltIn.Value;
    } else if (n2?.isIRange) {
      const r3 = n2;
      if (e2) o2 = this.acceptNumber(r3.getValueAt(0, 0) ?? 0);
      else {
        if (1 !== r3.size) throw t.BuiltIn.Value;
        o2 = this.acceptNumber(r3.getValueAt(0, 0) ?? 0);
      }
    } else {
      if (!Array.isArray(n2)) throw new t.Value("Unknown type in FormulaHelpers.acceptNumber");
      if (e2) o2 = this.acceptNumber(n2[0][0]);
      else {
        if (1 !== n2[0].length) throw t.BuiltIn.Value;
        o2 = this.acceptNumber(n2[0][0]);
      }
    }
    return o2;
  }
  flattenParams(n2, e2, r2, o2, u2 = null, a2 = 1) {
    if (n2.length < a2) throw new t.NA(`Argument type ${e2} is missing.`);
    null == u2 && (u2 = e2 === M.NUMBER ? 0 : null == e2 ? null : ""), n2.forEach((n3) => {
      const { isCellRef: t2, isRangeRef: r3, isArray: a3 } = n3;
      let i2 = n3.value;
      const l2 = !(t2 || r3 || a3), s2 = { isLiteral: l2, isCellRef: t2, isRangeRef: r3, isArray: a3, isUnion: false };
      i2?.isIRange && (i2 = i2.getValues(), t2 && (i2 = i2[0][0])), l2 ? (n3 = n3.omitted ? u2 : this.accept(n3, e2, u2), o2(n3, s2)) : t2 ? o2(i2, s2) : (r3 || a3) && (n3 = this.flattenDeep(i2)).forEach((n4) => {
        o2(n4, s2);
      });
    });
  }
  accept(n2, e2 = null, r2 = void 0, o2 = true, u2 = false) {
    let a2 = false;
    if (n2 && (n2.isIRange || n2.value?.isIRange)) {
      const t2 = n2.value ?? n2;
      1 === t2.size || e2 !== M.ARRAY ? n2 = t2.getValueAt(0, 0) : (n2 = t2.getValueAt(), a2 = true);
    } else n2?.value && (a2 = n2.isArray, n2 = n2.value);
    if (Array.isArray(e2) && (e2 = e2[0]), null == n2) {
      if (void 0 === r2) throw new t.NA(`Argument type ${e2} is missing.`);
      return r2;
    }
    if (null == e2) return n2;
    if (n2 instanceof t.Known) throw n2;
    if (e2 === M.ARRAY) {
      if (Array.isArray(n2)) return o2 ? this.flattenDeep(n2) : n2;
      if (Array.isArray(n2.value)) for (let t2 = 0; t2 < n2.value.length; t2++) null === n2.value[t2] && (n2.value[t2] = r2);
      else {
        if (u2) return o2 ? [n2] : [[n2]];
        if (null === n2.value) return o2 ? [r2] : [[r2]];
      }
      throw t.BuiltIn.Value;
    }
    a2 && (n2 = n2[0][0]);
    const i2 = this.type(n2);
    if (e2 === M.STRING) n2 = i2 === M.BOOLEAN ? n2 ? "TRUE" : "FALSE" : `${n2}`;
    else if (e2 === M.BOOLEAN) {
      if (i2 === M.STRING) throw t.BuiltIn.Value;
      i2 === M.NUMBER && (n2 = Boolean(n2));
    } else if (e2 === M.NUMBER) n2 = this.acceptNumber(n2, false);
    else {
      if (e2 !== M.NUMBER_NO_BOOLEAN) throw t.BuiltIn.Value;
      n2 = this.acceptNumber(n2, false, false);
    }
    return n2;
  }
  type(n2) {
    if (n2.isIRange) return M.RANGE_REF;
    let t2 = this.type2Number[typeof n2];
    return -1 === t2 && (Array.isArray(n2) ? t2 = M.ARRAY : n2.ref && (t2 = n2.ref.from ? M.RANGE_REF : M.CELL_REF)), t2;
  }
}(), A = 864e5, v = new Date(Date.UTC(1900, 0, 1)), R = [void 0, 0, 1, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, void 0, 1, 2, 3, 4, 5, 6, 0], y = [void 0, [1, 2, 3, 4, 5, 6, 7], [7, 1, 2, 3, 4, 5, 6], [6, 0, 1, 2, 3, 4, 5], void 0, void 0, void 0, void 0, void 0, void 0, void 0, [7, 1, 2, 3, 4, 5, 6], [6, 7, 1, 2, 3, 4, 5], [5, 6, 7, 1, 2, 3, 4], [4, 5, 6, 7, 1, 2, 3], [3, 4, 5, 6, 7, 1, 2], [2, 3, 4, 5, 6, 7, 1], [1, 2, 3, 4, 5, 6, 7]], w = [void 0, [6, 0], [0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], void 0, void 0, void 0, [0], [1], [2], [3], [4], [5], [6]], C = /^\s*(\d\d?)\s*(:\s*\d\d?)?\s*(:\s*\d\d?)?\s*(pm|am)?\s*$/i, O = /^\s*((\d\d?)\s*([-/])\s*(\d\d?))([\d:.apm\s]*)$/i, D = /^\s*((\d\d?)\s*([-/])\s*(jan\w*|feb\w*|mar\w*|apr\w*|may\w*|jun\w*|jul\w*|aug\w*|sep\w*|oct\w*|nov\w*|dec\w*))([\d:.apm\s]*)$/i, x = /^\s*((jan\w*|feb\w*|mar\w*|apr\w*|may\w*|jun\w*|jul\w*|aug\w*|sep\w*|oct\w*|nov\w*|dec\w*)\s*([-/])\s*(\d\d?))([\d:.apm\s]*)$/i;
function _(n2) {
  let t2 = n2.getTime?.() ?? n2;
  const e2 = t2 > -22038912e5 ? 2 : 1;
  return Math.floor((t2 - v.getTime()) / 864e5) + e2;
}
function B(n2) {
  return function(n3) {
    if (n3 instanceof Date) return { date: n3 };
    let e2, r2 = true;
    return isNaN(n3) ? (e2 = function(n4) {
      const t2 = n4.match(C);
      if (!t2) return;
      const e3 = t2[2] ? t2[2] : ":00", r3 = t2[3] ? t2[3] : ":00", o2 = t2[4] ? " " + t2[4] : "", u2 = new Date(Date.parse(`1/1/1900 ${t2[1] + e3 + r3 + o2} UTC`));
      let a2 = /* @__PURE__ */ new Date();
      return a2 = new Date(Date.UTC(a2.getFullYear(), a2.getMonth(), a2.getDate(), a2.getHours(), a2.getMinutes(), a2.getSeconds(), a2.getMilliseconds())), new Date(Date.UTC(a2.getUTCFullYear(), a2.getUTCMonth(), a2.getUTCDate(), u2.getUTCHours(), u2.getUTCMinutes(), u2.getUTCSeconds(), u2.getUTCMilliseconds()));
    }(n3), e2 ? r2 = false : e2 = function(n4) {
      const t2 = n4.match(O), e3 = n4.match(D), r3 = n4.match(x);
      return t2 ? n4 = t2[1] + t2[3] + (/* @__PURE__ */ new Date()).getFullYear() + t2[5] : e3 ? n4 = e3[1] + e3[3] + (/* @__PURE__ */ new Date()).getFullYear() + e3[5] : r3 && (n4 = r3[1] + r3[3] + (/* @__PURE__ */ new Date()).getFullYear() + r3[5]), new Date(Date.parse(`${n4} UTC`));
    }(n3)) : e2 = function(n4) {
      if (n4 < 0) throw t.BuiltIn.Value;
      return n4 <= 60 ? new Date(v.getTime() + 864e5 * (n4 - 1)) : new Date(v.getTime() + 864e5 * (n4 - 2));
    }(n3 = Number(n3)), { date: e2, isDateGiven: r2 };
  }(n2).date;
}
function U(n2, t2) {
  return n2.getUTCFullYear() === t2.getUTCFullYear() && n2.getUTCMonth() === t2.getUTCMonth() && n2.getUTCDate() === t2.getUTCDate();
}
function L(n2, t2, r2) {
  const o2 = e.fromOADate(n2), u2 = e.fromOADate(t2);
  if (r2 = r2.toLowerCase(), n2 > t2) return Number.NaN;
  const a2 = u2.getUTCFullYear() - o2.getUTCFullYear(), i2 = u2.getUTCMonth() - o2.getUTCMonth(), l2 = u2.getUTCDate() - o2.getUTCDate();
  let s2;
  switch (r2) {
    case "y":
      return s2 = i2 < 0 || 0 === i2 && l2 < 0 ? -1 : 0, s2 + a2;
    case "m":
      return s2 = l2 < 0 ? -1 : 0, 12 * a2 + i2 + s2;
    case "d":
      return Math.floor(u2.getTime() - o2.getTime()) / A;
    case "md":
      return o2.setUTCFullYear(u2.getUTCFullYear()), l2 < 0 ? o2.setUTCMonth(u2.getUTCMonth() - 1) : o2.setUTCMonth(u2.getUTCMonth()), Math.floor(u2.getTime() - o2.getTime()) / A;
    case "ym":
      return s2 = l2 < 0 ? -1 : 0, (s2 + 12 * a2 + i2) % 12;
    case "yd":
      return i2 < 0 || 0 === i2 && l2 < 0 ? o2.setUTCFullYear(u2.getUTCFullYear() - 1) : o2.setUTCFullYear(u2.getUTCFullYear()), Math.floor(u2.getTime() - o2.getTime()) / A;
  }
}
function P(n2, t2) {
  return Math.trunc(n2) - Math.trunc(t2);
}
function V(n2, t2, r2 = false) {
  const o2 = e.fromOADate(n2), u2 = e.fromOADate(t2);
  31 === o2.getUTCDate() && o2.setUTCDate(30), !r2 && o2.getUTCDate() < 30 && u2.getUTCDate() > 30 ? u2.setUTCMonth(u2.getUTCMonth() + 1, 1) : 31 === u2.getUTCDate() && u2.setUTCDate(30);
  const a2 = u2.getUTCFullYear() - o2.getUTCFullYear();
  return 30 * (u2.getUTCMonth() - o2.getUTCMonth()) + (u2.getUTCDate() - o2.getUTCDate()) + 12 * a2 * 30;
}
function F(n2) {
  const t2 = B(n2), e2 = new Date(Date.UTC(t2.getFullYear(), t2.getMonth(), t2.getDate())), r2 = e2.getUTCDay();
  e2.setUTCDate(e2.getUTCDate() + 4 - r2);
  const o2 = new Date(Date.UTC(e2.getUTCFullYear(), 0, 1));
  return Math.ceil(((e2.getTime() - o2.getTime()) / 864e5 + 1) / 7);
}
function H(n2, e2, r2 = 1, o2 = null) {
  if (n2 = B(n2), "1111111" === r2) throw t.BuiltIn.Value;
  if ("string" == typeof r2 && Number(r2).toString() !== r2) {
    if (7 !== r2.length) throw t.BuiltIn.Value;
    r2 = r2.charAt(6) + r2.slice(0, 6);
    const n3 = [];
    for (let t2 = 0; t2 < r2.length; t2++) "1" === r2.charAt(t2) && n3.push(t2);
    r2 = n3;
  } else {
    if ("number" != typeof r2) throw t.BuiltIn.Value;
    if (null == (r2 = w[r2])) throw t.BuiltIn.Num;
  }
  const u2 = [];
  null != o2 && S.flattenParams([o2], M.NUMBER, false, (n3) => {
    u2.push(B(n3));
  }), n2.setUTCDate(n2.getUTCDate() + 1);
  let a2 = 0;
  for (; a2 < e2; ) {
    let t2 = false;
    for (let e3 = 0; e3 < r2.length; e3++) if (r2[e3] === n2.getUTCDay()) {
      t2 = true;
      break;
    }
    if (!t2) {
      let t3 = false;
      for (let e3 = 0; e3 < u2.length; e3++) if (U(n2, u2[e3])) {
        t3 = true;
        break;
      }
      t3 || a2++;
    }
    n2.setUTCDate(n2.getUTCDate() + 1);
  }
  return _(n2) - 1;
}
function G(n2, r2, o2 = 0) {
  let u2 = e.fromOADate(n2), a2 = e.fromOADate(r2);
  if (u2 > a2) {
    const t2 = u2;
    u2 = a2, a2 = t2;
    const e2 = n2;
    n2 = r2, r2 = e2;
  }
  if ((o2 = Math.trunc(o2)) < 0 || o2 > 4) throw t.BuiltIn.Value;
  let i2 = u2.getUTCDate();
  const l2 = u2.getUTCMonth() + 1, s2 = u2.getUTCFullYear();
  let f2 = a2.getUTCDate();
  const c2 = a2.getUTCMonth() + 1, m2 = a2.getUTCFullYear();
  switch (o2) {
    case 0:
      return 31 === i2 && 31 === f2 ? (i2 = 30, f2 = 30) : 31 === i2 ? i2 = 30 : 30 === i2 && 31 === f2 && (f2 = 30), Math.abs(f2 + 30 * c2 + 360 * m2 - (i2 + 30 * l2 + 360 * s2)) / 360;
    case 1:
      if (m2 - s2 < 2) {
        const t2 = 1900 !== (p2 = s2) && 1 !== new Date(p2, 1, 29).getMonth() || 1900 === s2 ? 365 : 366;
        return P(r2, n2) / t2;
      }
      {
        const t2 = m2 - s2 + 1, e2 = new Date(m2 + 1, 0, 1), o3 = new Date(s2, 0, 1), u3 = (e2.getTime() - o3.getTime()) / 1e3 / 60 / 60 / 24 / t2;
        return P(r2, n2) / u3;
      }
    case 2:
      return Math.abs(P(r2, n2) / 360);
    case 3:
      return Math.abs(P(r2, n2) / 365);
    case 4:
      return Math.abs(f2 + 30 * c2 + 360 * m2 - (i2 + 30 * l2 + 360 * s2)) / 360;
  }
  var p2;
}
const X = Object.freeze(Object.defineProperty({ __proto__: null, DATE: function(n2, t2, r2) {
  return n2 < 0 || n2 >= 1e4 ? Number.NaN : (n2 < 1900 && (n2 += 1900), e.formatResults("Short Date"), e.toOADate(new Date(n2, t2 - 1, r2)));
}, DATEDIF: L, DATESTRING: function(n2) {
  return t.BuiltIn.NA;
}, DATEVALUE: function(n2) {
  try {
    const r2 = e.parseAsDateTime(n2);
    if (!r2) throw t.BuiltIn.Value;
    return Math.floor(r2);
  } catch (n3) {
    throw t.BuiltIn.Value;
  }
}, DAY: function(n2) {
  return B(n2).getUTCDate();
}, DAYS: P, DAYS360: V, EDATE: function(n2, t2) {
  return n2.setUTCMonth(n2.getUTCMonth() + t2), _(n2);
}, EOMONTH: function(n2, t2) {
  return n2.setUTCMonth(n2.getUTCMonth() + t2 + 1, 0), _(n2);
}, HOUR: function(n2) {
  return B(n2).getUTCHours();
}, ISOWEEKNUM: F, MINUTE: function(n2) {
  return B(n2).getUTCMinutes();
}, MONTH: function(n2) {
  return B(n2).getUTCMonth() + 1;
}, NETWORKDAYS: function(n2, t2, e2 = null) {
  let r2 = 1;
  if (n2 > t2) {
    r2 = -1;
    const e3 = n2;
    n2 = t2, t2 = e3;
  }
  const o2 = [];
  null !== e2 && S.flattenParams([e2], M.NUMBER, false, (n3) => {
    o2.push(B(n3));
  });
  let u2 = 0;
  for (; n2 <= t2; ) {
    if (0 !== n2.getUTCDay() && 6 !== n2.getUTCDay()) {
      let t3 = false;
      for (let e3 = 0; e3 < o2.length; e3++) if (U(n2, o2[e3])) {
        t3 = true;
        break;
      }
      t3 || u2++;
    }
    n2.setUTCDate(n2.getUTCDate() + 1);
  }
  return r2 * u2;
}, NETWORKDAYS_INTL: function(n2, e2, r2 = 1, o2 = null) {
  let u2 = 1;
  if ((n2 = B(n2)) > (e2 = B(e2))) {
    u2 = -1;
    const t2 = n2;
    n2 = e2, e2 = t2;
  }
  if ("1111111" === r2) return 0;
  if ("string" == typeof r2 && Number(r2).toString() !== r2) {
    if (7 !== r2.length) throw t.BuiltIn.Value;
    r2 = r2.charAt(6) + r2.slice(0, 6);
    const n3 = [];
    for (let t2 = 0; t2 < r2.length; t2++) "1" === r2.charAt(t2) && n3.push(t2);
    r2 = n3;
  } else {
    if ("number" != typeof r2) throw t.BuiltIn.Value;
    r2 = w[r2];
  }
  const a2 = [];
  null != o2 && S.flattenParams([o2], M.NUMBER, false, (n3) => {
    a2.push(B(n3));
  });
  let i2 = 0;
  for (; n2 <= e2; ) {
    let t2 = false;
    for (let e3 = 0; e3 < r2.length; e3++) if (r2[e3] === n2.getUTCDay()) {
      t2 = true;
      break;
    }
    if (!t2) {
      let t3 = false;
      for (let e3 = 0; e3 < a2.length; e3++) if (U(n2, a2[e3])) {
        t3 = true;
        break;
      }
      t3 || i2++;
    }
    n2.setUTCDate(n2.getUTCDate() + 1);
  }
  return u2 * i2;
}, NOW: function() {
  const n2 = /* @__PURE__ */ new Date(), t2 = _(Date.UTC(n2.getFullYear(), n2.getMonth(), n2.getDate(), n2.getHours(), n2.getMinutes(), n2.getSeconds(), n2.getMilliseconds())) + (3600 * n2.getHours() + 60 * n2.getMinutes() + n2.getSeconds()) / 86400;
  return e.markVolatile(), e.formatResults("Short Date Short Time"), t2;
}, SECOND: function(n2) {
  return B(n2).getUTCSeconds();
}, TIME: function(n2, t2, r2) {
  return n2 < 0 || n2 > 32767 || t2 < 0 || t2 > 32767 || r2 < 0 || r2 > 32767 ? Number.NaN : (e.formatResults("Medium Time"), (3600 * n2 + 60 * t2 + r2) / 86400);
}, TIMEVALUE: function(n2) {
  const t2 = B(n2);
  return (3600 * t2.getUTCHours() + 60 * t2.getUTCMinutes() + t2.getUTCSeconds()) / 86400;
}, TODAY: function() {
  e.formatResults("Short Date");
  const n2 = /* @__PURE__ */ new Date();
  return e.toOADate(new Date(n2.getFullYear(), n2.getMonth(), n2.getDate()));
}, WEEKDAY: function(n2, e2 = 1) {
  const r2 = B(n2).getUTCDay(), o2 = y[e2];
  if (!o2) throw t.BuiltIn.Num;
  return o2[r2];
}, WEEKNUM: function(n2, t2 = 1) {
  const e2 = B(n2);
  if (21 === t2) return F(n2);
  const r2 = R[t2], o2 = new Date(Date.UTC(e2.getUTCFullYear(), 0, 1)), u2 = o2.getUTCDay() < r2 ? 1 : 0;
  return Math.ceil(((e2.getTime() - o2.getTime()) / 864e5 + 1) / 7) + u2;
}, WORKDAY: function(n2, t2, e2 = null) {
  return H(n2, t2, 1, e2);
}, WORKDAY_INTL: H, YEAR: function(n2) {
  return B(n2).getUTCFullYear();
}, YEARFRAC: G }, Symbol.toStringTag, { value: "Module" })), Y = Object.freeze(Object.defineProperty({ __proto__: null, BESSELI: function(n2, t2) {
  return (t2 = Math.trunc(t2)) < 0 ? Number.NaN : c.besseli(n2, t2);
}, BESSELJ: function(n2, t2) {
  return (t2 = Math.trunc(t2)) < 0 ? Number.NaN : c.besselj(n2, t2);
}, BESSELK: function(n2, t2) {
  return (t2 = Math.trunc(t2)) < 0 ? Number.NaN : c.besselk(n2, t2);
}, BESSELY: function(n2, t2) {
  return (t2 = Math.trunc(t2)) < 0 ? Number.NaN : c.bessely(n2, t2);
} }, Symbol.toStringTag, { value: "Module" })), k = -512, q = (n2) => {
  const e2 = typeof n2;
  if ("boolean" === e2) return n2 ? 1 : 0;
  if ("number" === e2) {
    if (n2 < 0 || n2 > 281474976710655 || Math.floor(n2) !== n2) throw t.BuiltIn.Num;
    return n2;
  }
  if ("string" === e2) {
    let t2 = 0;
    try {
      t2 = 1 * n2;
    } catch (n3) {
    }
    if (Number.isFinite(t2)) return t2;
  }
  throw t.BuiltIn.Value;
};
function z(n2, t2) {
  if (n2 = q(n2), t2 = Math.trunc(t2), Math.abs(t2) > 53) return Number.NaN;
  const e2 = t2 >= 0 ? n2 * 2 ** t2 : Math.trunc(n2 / 2 ** -t2);
  return e2 > 281474976710655 ? Number.NaN : e2;
}
function j(n2, e2) {
  if (n2 < -549755813888 || n2 > 549755813888) throw t.BuiltIn.Num;
  if (n2 < 0) return (1099511627776 + n2).toString(16).toUpperCase();
  const r2 = parseInt(n2, 10).toString(16);
  if (void 0 === e2) return r2.toUpperCase();
  if ((e2 = Math.trunc(e2)) <= 0) throw t.BuiltIn.Num;
  if (e2 < r2.length) throw t.BuiltIn.Num;
  return "0".repeat(e2 - r2.length) + r2.toUpperCase();
}
function W(n2, e2) {
  if (n2 < -536870912 || n2 > 536870912) throw t.BuiltIn.Num;
  if (n2 < 0) return (n2 + 1073741824).toString(8);
  const r2 = parseInt(n2, 10).toString(8);
  if (void 0 === e2) return r2.toUpperCase();
  if ((e2 = Math.trunc(e2)) <= 0) throw t.BuiltIn.Num;
  if (e2 < r2.length) throw t.BuiltIn.Num;
  return "0".repeat(e2 - r2.length) + r2;
}
function K(n2) {
  if (!/^[0-9A-Fa-f]{1,10}$/.test(n2)) return Number.NaN;
  const t2 = parseInt(n2, 16);
  return t2 >= 549755813888 ? t2 - 1099511627776 : t2;
}
function $(n2) {
  if (n2.length > 10) throw t.BuiltIn.Num;
  for (const e3 of n2) if (e3 < "0" || e3 > "7") throw t.BuiltIn.Num;
  const e2 = parseInt(n2, 8);
  return e2 >= 536870912 ? e2 - 1073741824 : e2;
}
const Q = Object.freeze(Object.defineProperty({ __proto__: null, BIN2DEC: function(n2) {
  const t2 = n2.toString();
  return t2.length > 10 ? Number.NaN : 10 === t2.length && "1" === t2.substring(0, 1) ? parseInt(t2.substring(1), 2) + k : parseInt(t2, 2);
}, BIN2HEX: function(n2, e2) {
  const r2 = n2.toString();
  if (r2.length > 10) throw t.BuiltIn.Num;
  if (10 === r2.length && "1" === r2.substring(0, 1)) return (parseInt(r2.substring(1), 2) + 1099511627264).toString(16).toUpperCase();
  const o2 = parseInt(n2, 2).toString(16);
  if (void 0 === e2) return o2.toUpperCase();
  if (e2 < 0) throw t.BuiltIn.Num;
  if ((e2 = Math.trunc(e2)) >= o2.length) return ("0".repeat(e2 - o2.length) + o2).toUpperCase();
  throw t.BuiltIn.Num;
}, BIN2OCT: function(n2, e2) {
  let r2 = n2.toString();
  if (r2.length > 10) throw t.BuiltIn.Num;
  if (10 === r2.length && "1" === r2.substring(0, 1)) return (parseInt(r2.substring(1), 2) + 1073741312).toString(8);
  const o2 = parseInt(n2, 2).toString(8);
  if (void 0 === e2) return o2.toUpperCase();
  if (e2 < 0) throw t.BuiltIn.Num;
  if ((e2 = Math.trunc(e2)) >= o2.length) return "0".repeat(e2 - o2.length) + o2;
  throw t.BuiltIn.Num;
}, BITAND: function(n2, t2) {
  return (n2 = q(n2)) & q(t2);
}, BITLSHIFT: z, BITOR: function(n2, t2) {
  return (n2 = q(n2)) | q(t2);
}, BITRSHIFT: function(n2, t2) {
  return z(n2 = q(n2), -t2);
}, BITXOR: function(n2, t2) {
  return (n2 = q(n2)) ^ q(t2);
}, DEC2BIN: function(n2, e2) {
  if (n2 < k || n2 > 511) throw t.BuiltIn.Num;
  if (n2 < 0) return "1" + "0".repeat(9 - (512 + n2).toString(2).length) + (512 + n2).toString(2);
  const r2 = parseInt(n2, 10).toString(2);
  if (void 0 === e2) return r2;
  if ((e2 = Math.trunc(e2)) <= 0) throw t.BuiltIn.Num;
  if (e2 < r2.length) throw t.BuiltIn.Num;
  return "0".repeat(e2 - r2.length) + r2;
}, DEC2HEX: j, DEC2OCT: W, HEX2BIN: function(n2, t2) {
  if (n2.length > 10 || !/^[0-9a-fA-F]*$/.test(n2)) return Number.NaN;
  const e2 = 10 === n2.length && "f" === n2.substring(0, 1).toLowerCase(), r2 = e2 ? parseInt(n2, 16) - 1099511627776 : parseInt(n2, 16);
  if (r2 < k || r2 > 511) return Number.NaN;
  if (e2) return "1" + "0".repeat(9 - (r2 + 512).toString(2).length) + (r2 + 512).toString(2);
  const o2 = r2.toString(2);
  return void 0 === t2 ? o2 : (t2 = Math.trunc(t2)) <= 0 || t2 < o2.length ? Number.NaN : "0".repeat(t2 - o2.length) + o2;
}, HEX2DEC: K, HEX2OCT: function(n2, e2) {
  if (n2.length > 10 || !/^[0-9a-fA-F]*$/.test(n2)) throw t.BuiltIn.Num;
  const r2 = K(n2);
  if (r2 > 536870911 || r2 < -536870912) throw t.BuiltIn.Num;
  return W(r2, e2);
}, OCT2BIN: function(n2, e2) {
  if (n2.length > 10) throw t.BuiltIn.Num;
  if (e2 > 10) throw t.BuiltIn.Num;
  if (void 0 !== e2 && e2 < 0) throw t.BuiltIn.Num;
  e2 = Math.trunc(e2);
  const r2 = 10 === n2.length && "7" === n2.substring(0, 1), o2 = $(n2);
  if (o2 < k || o2 > 511) throw t.BuiltIn.Num;
  if (r2) return "1" + "0".repeat(9 - (512 + o2).toString(2).length) + (512 + o2).toString(2);
  const u2 = o2.toString(2);
  if (0 === e2) return u2;
  if (e2 < u2.length) throw t.BuiltIn.Num;
  return "0".repeat(e2 - u2.length) + u2;
}, OCT2DEC: $, OCT2HEX: function(n2, t2) {
  if (n2.length > 10) return Number.NaN;
  for (const t3 of n2) if (t3 < "0" || t3 > "7") return Number.NaN;
  if ((t2 = Math.trunc(t2)) < 0 || t2 > 10) return Number.NaN;
  const e2 = j($(n2));
  return 0 === t2 ? e2 : t2 < e2.length ? Number.NaN : "0".repeat(t2 - e2.length) + e2;
} }, Symbol.toStringTag, { value: "Module" })), Z = Object.freeze(Object.defineProperty({ __proto__: null, CONVERT: function(n2, e2, r2) {
  const o2 = [["a.u. of action", "?", null, "action", false, false, 105457168181818e-48], ["a.u. of charge", "e", null, "electric_charge", false, false, 160217653141414e-33], ["a.u. of energy", "Eh", null, "energy", false, false, 435974417757576e-32], ["a.u. of length", "a?", null, "length", false, false, 529177210818182e-25], ["a.u. of mass", "m?", null, "mass", false, false, 910938261616162e-45], ["a.u. of time", "?/Eh", null, "time", false, false, 241888432650516e-31], ["admiralty knot", "admkn", null, "speed", false, true, 0.514773333], ["ampere", "A", null, "electric_current", true, false, 1], ["ampere per meter", "A/m", null, "magnetic_field_intensity", true, false, 1], ["ångström", "Å", ["ang"], "length", false, true, 1e-10], ["are", "ar", null, "area", false, true, 100], ["astronomical unit", "ua", null, "length", false, false, 149597870691667e-25], ["bar", "bar", null, "pressure", false, false, 1e5], ["barn", "b", null, "area", false, false, 1e-28], ["becquerel", "Bq", null, "radioactivity", true, false, 1], ["bit", "bit", ["b"], "information", false, true, 1], ["btu", "BTU", ["btu"], "energy", false, true, 1055.05585262], ["byte", "byte", null, "information", false, true, 8], ["candela", "cd", null, "luminous_intensity", true, false, 1], ["candela per square metre", "cd/m?", null, "luminance", true, false, 1], ["coulomb", "C", null, "electric_charge", true, false, 1], ["cubic ångström", "ang3", ["ang^3"], "volume", false, true, 1e-30], ["cubic foot", "ft3", ["ft^3"], "volume", false, true, 0.028316846592], ["cubic inch", "in3", ["in^3"], "volume", false, true, 16387064e-12], ["cubic light-year", "ly3", ["ly^3"], "volume", false, true, 846786664623715e-61], ["cubic metre", "m3", ["m^3"], "volume", true, true, 1], ["cubic mile", "mi3", ["mi^3"], "volume", false, true, 416818182544058e-5], ["cubic nautical mile", "Nmi3", ["Nmi^3"], "volume", false, true, 6352182208], ["cubic Pica", "Pica3", ["Picapt3", "Pica^3", "Picapt^3"], "volume", false, true, 758660370370369e-22], ["cubic yard", "yd3", ["yd^3"], "volume", false, true, 0.764554857984], ["cup", "cup", null, "volume", false, true, 2365882365e-13], ["dalton", "Da", ["u"], "mass", false, false, 166053886282828e-41], ["day", "d", ["day"], "time", false, true, 86400], ["degree", "°", null, "angle", false, false, 0.0174532925199433], ["degrees Rankine", "Rank", null, "temperature", false, true, 0.555555555555556], ["dyne", "dyn", ["dy"], "force", false, true, 1e-5], ["electronvolt", "eV", ["ev"], "energy", false, true, 1.60217656514141], ["ell", "ell", null, "length", false, true, 1.143], ["erg", "erg", ["e"], "energy", false, true, 1e-7], ["farad", "F", null, "electric_capacitance", true, false, 1], ["fluid ounce", "oz", null, "volume", false, true, 295735295625e-16], ["foot", "ft", null, "length", false, true, 0.3048], ["foot-pound", "flb", null, "energy", false, true, 1.3558179483314], ["gal", "Gal", null, "acceleration", false, false, 0.01], ["gallon", "gal", null, "volume", false, true, 0.003785411784], ["gauss", "G", ["ga"], "magnetic_flux_density", false, true, 1], ["grain", "grain", null, "mass", false, true, 647989e-10], ["gram", "g", null, "mass", false, true, 1e-3], ["gray", "Gy", null, "absorbed_dose", true, false, 1], ["gross registered ton", "GRT", ["regton"], "volume", false, true, 2.8316846592], ["hectare", "ha", null, "area", false, true, 1e4], ["henry", "H", null, "inductance", true, false, 1], ["hertz", "Hz", null, "frequency", true, false, 1], ["horsepower", "HP", ["h"], "power", false, true, 745.69987158227], ["horsepower-hour", "HPh", ["hh", "hph"], "energy", false, true, 2684519538e-3], ["hour", "h", ["hr"], "time", false, true, 3600], ["imperial gallon (U.K.)", "uk_gal", null, "volume", false, true, 454609e-8], ["imperial hundredweight", "lcwt", ["uk_cwt", "hweight"], "mass", false, true, 50.802345], ["imperial quart (U.K)", "uk_qt", null, "volume", false, true, 0.0011365225], ["imperial ton", "brton", ["uk_ton", "LTON"], "mass", false, true, 1016.046909], ["inch", "in", null, "length", false, true, 0.0254], ["international acre", "uk_acre", null, "area", false, true, 4046.8564224], ["IT calorie", "cal", null, "energy", false, true, 4.1868], ["joule", "J", null, "energy", true, true, 1], ["katal", "kat", null, "catalytic_activity", true, false, 1], ["kelvin", "K", ["kel"], "temperature", true, true, 1], ["kilogram", "kg", null, "mass", true, true, 1], ["knot", "kn", null, "speed", false, true, 0.514444444444444], ["light-year", "ly", null, "length", false, true, 9460730472580800], ["litre", "L", ["l", "lt"], "volume", false, true, 1e-3], ["lumen", "lm", null, "luminous_flux", true, false, 1], ["lux", "lx", null, "illuminance", true, false, 1], ["maxwell", "Mx", null, "magnetic_flux", false, false, 1e-18], ["measurement ton", "MTON", null, "volume", false, true, 1.13267386368], ["meter per hour", "m/h", ["m/hr"], "speed", false, true, 27777777777778e-17], ["meter per second", "m/s", ["m/sec"], "speed", true, true, 1], ["meter per second squared", "m?s??", null, "acceleration", true, false, 1], ["parsec", "pc", ["parsec"], "length", false, true, 30856775814671900], ["meter squared per second", "m?/s", null, "kinematic_viscosity", true, false, 1], ["metre", "m", null, "length", true, true, 1], ["miles per hour", "mph", null, "speed", false, true, 0.44704], ["millimetre of mercury", "mmHg", null, "pressure", false, false, 133.322], ["minute", "?", null, "angle", false, false, 290888208665722e-18], ["minute", "min", ["mn"], "time", false, true, 60], ["modern teaspoon", "tspm", null, "volume", false, true, 5e-6], ["mole", "mol", null, "amount_of_substance", true, false, 1], ["morgen", "Morgen", null, "area", false, true, 2500], ["n.u. of action", "?", null, "action", false, false, 105457168181818e-48], ["n.u. of mass", "m?", null, "mass", false, false, 910938261616162e-45], ["n.u. of speed", "c?", null, "speed", false, false, 299792458], ["n.u. of time", "?/(me?c??)", null, "time", false, false, 128808866778687e-35], ["nautical mile", "M", ["Nmi"], "length", false, true, 1852], ["newton", "N", null, "force", true, true, 1], ["œrsted", "Oe ", null, "magnetic_field_intensity", false, false, 79.5774715459477], ["ohm", "Ω", null, "electric_resistance", true, false, 1], ["ounce mass", "ozm", null, "mass", false, true, 0.028349523125], ["pascal", "Pa", null, "pressure", true, false, 1], ["pascal second", "Pa?s", null, "dynamic_viscosity", true, false, 1], ["pferdestärke", "PS", null, "power", false, true, 735.49875], ["phot", "ph", null, "illuminance", false, false, 1e-4], ["pica (1/6 inch)", "pica", null, "length", false, true, 35277777777778e-17], ["pica (1/72 inch)", "Pica", ["Picapt"], "length", false, true, 0.00423333333333333], ["poise", "P", null, "dynamic_viscosity", false, false, 0.1], ["pond", "pond", null, "force", false, true, 980665e-8], ["pound force", "lbf", null, "force", false, true, 4.4482216152605], ["pound mass", "lbm", null, "mass", false, true, 0.45359237], ["quart", "qt", null, "volume", false, true, 946352946e-12], ["radian", "rad", null, "angle", true, false, 1], ["second", "?", null, "angle", false, false, 484813681109536e-20], ["second", "s", ["sec"], "time", true, true, 1], ["short hundredweight", "cwt", ["shweight"], "mass", false, true, 45.359237], ["siemens", "S", null, "electrical_conductance", true, false, 1], ["sievert", "Sv", null, "equivalent_dose", true, false, 1], ["slug", "sg", null, "mass", false, true, 14.59390294], ["square ångström", "ang2", ["ang^2"], "area", false, true, 1e-20], ["square foot", "ft2", ["ft^2"], "area", false, true, 0.09290304], ["square inch", "in2", ["in^2"], "area", false, true, 64516e-8], ["square light-year", "ly2", ["ly^2"], "area", false, true, 895054210748189e17], ["square meter", "m?", null, "area", true, true, 1], ["square mile", "mi2", ["mi^2"], "area", false, true, 2589988110336e-6], ["square nautical mile", "Nmi2", ["Nmi^2"], "area", false, true, 3429904], ["square Pica", "Pica2", ["Picapt2", "Pica^2", "Picapt^2"], "area", false, true, 1792111111111e-17], ["square yard", "yd2", ["yd^2"], "area", false, true, 0.83612736], ["statute mile", "mi", null, "length", false, true, 1609.344], ["steradian", "sr", null, "solid_angle", true, false, 1], ["stilb", "sb", null, "luminance", false, false, 1e-4], ["stokes", "St", null, "kinematic_viscosity", false, false, 1e-4], ["stone", "stone", null, "mass", false, true, 6.35029318], ["tablespoon", "tbs", null, "volume", false, true, 147868e-10], ["teaspoon", "tsp", null, "volume", false, true, 492892e-11], ["tesla", "T", null, "magnetic_flux_density", true, true, 1], ["thermodynamic calorie", "c", null, "energy", false, true, 4.184], ["ton", "ton", null, "mass", false, true, 907.18474], ["tonne", "t", null, "mass", false, false, 1e3], ["U.K. pint", "uk_pt", null, "volume", false, true, 56826125e-11], ["U.S. bushel", "bushel", null, "volume", false, true, 0.03523907], ["U.S. oil barrel", "barrel", null, "volume", false, true, 0.158987295], ["U.S. pint", "pt", ["us_pt"], "volume", false, true, 473176473e-12], ["U.S. survey mile", "survey_mi", null, "length", false, true, 1609.347219], ["U.S. survey/statute acre", "us_acre", null, "area", false, true, 4046.87261], ["volt", "V", null, "voltage", true, false, 1], ["watt", "W", null, "power", true, true, 1], ["watt-hour", "Wh", ["wh"], "energy", false, true, 3600], ["weber", "Wb", null, "magnetic_flux", true, false, 1], ["yard", "yd", null, "length", false, true, 0.9144], ["year", "yr", null, "time", false, true, 31557600]], u2 = { Yi: ["yobi", 80, 12089258196146292e8, "Yi", "yotta"], Zi: ["zebi", 70, 11805916207174113e5, "Zi", "zetta"], Ei: ["exbi", 60, 1152921504606847e3, "Ei", "exa"], Pi: ["pebi", 50, 1125899906842624, "Pi", "peta"], Ti: ["tebi", 40, 1099511627776, "Ti", "tera"], Gi: ["gibi", 30, 1073741824, "Gi", "giga"], Mi: ["mebi", 20, 1048576, "Mi", "mega"], ki: ["kibi", 10, 1024, "ki", "kilo"] }, a2 = { Y: ["yotta", 1e24, "Y"], Z: ["zetta", 1e21, "Z"], E: ["exa", 1e18, "E"], P: ["peta", 1e15, "P"], T: ["tera", 1e12, "T"], G: ["giga", 1e9, "G"], M: ["mega", 1e6, "M"], k: ["kilo", 1e3, "k"], h: ["hecto", 100, "h"], e: ["dekao", 10, "e"], d: ["deci", 0.1, "d"], c: ["centi", 0.01, "c"], m: ["milli", 1e-3, "m"], u: ["micro", 1e-6, "u"], n: ["nano", 1e-9, "n"], p: ["pico", 1e-12, "p"], f: ["femto", 1e-15, "f"], a: ["atto", 1e-18, "a"], z: ["zepto", 1e-21, "z"], y: ["yocto", 1e-24, "y"] };
  let i2, l2 = null, s2 = null, f2 = e2, c2 = r2, m2 = 1, p2 = 1;
  for (let n3 = 0; n3 < o2.length; n3++) i2 = null === o2[n3][2] ? [] : o2[n3][2], (o2[n3][1] === f2 || i2.indexOf(f2) >= 0) && (l2 = o2[n3]), (o2[n3][1] === c2 || i2.indexOf(c2) >= 0) && (s2 = o2[n3]);
  if (null === l2) {
    const n3 = u2[e2.substring(0, 2)];
    let t2 = a2[e2.substring(0, 1)];
    "da" === e2.substring(0, 2) && (t2 = ["dekao", 10, "da"]), n3 ? (m2 = n3[2], f2 = e2.substring(2)) : t2 && (m2 = t2[1], f2 = e2.substring(t2[2].length));
    for (let n4 = 0; n4 < o2.length; n4++) i2 = null === o2[n4][2] ? [] : o2[n4][2], (o2[n4][1] === f2 || i2.indexOf(f2) >= 0) && (l2 = o2[n4]);
  }
  if (null === s2) {
    const n3 = u2[r2.substring(0, 2)];
    let t2 = a2[r2.substring(0, 1)];
    "da" === r2.substring(0, 2) && (t2 = ["dekao", 10, "da"]), n3 ? (p2 = n3[2], c2 = r2.substring(2)) : t2 && (p2 = t2[1], c2 = r2.substring(t2[2].length));
    for (let n4 = 0; n4 < o2.length; n4++) i2 = null === o2[n4][2] ? [] : o2[n4][2], (o2[n4][1] === c2 || i2.indexOf(c2) >= 0) && (s2 = o2[n4]);
  }
  if (null === l2 || null === s2) throw t.BuiltIn.NA;
  if (l2[3] !== s2[3]) throw t.BuiltIn.NA;
  return n2 * l2[6] * m2 / (s2[6] * p2);
} }, Symbol.toStringTag, { value: "Module" })), J = Object.freeze(Object.defineProperty({ __proto__: null, DELTA: function(n2, t2 = 0) {
  return n2 === t2 ? 1 : 0;
}, GESTEP: function(n2, t2 = 0) {
  return n2 >= t2 ? 1 : 0;
} }, Symbol.toStringTag, { value: "Module" })), nn = Object.freeze(Object.defineProperty({ __proto__: null, ERF: function(n2, t2 = 0) {
  return d.erf(n2);
}, ERFC: function(n2) {
  return d.erfc(n2);
}, ERF_PRECISE: function(n2) {
  return d.erf(n2);
} }, Symbol.toStringTag, { value: "Module" })), tn = /^\s?[+-]?\s?[0-9]+[.]?[0-9]*([eE][+-][0-9]+)?\s?$/, en = /^\s?([+-]?\s?([0-9]+[.]?[0-9]*([eE][+-][0-9]+)?)?)\s?[ij]\s?$/, rn = /^\s?([+-]?\s?[0-9]+[.]?[0-9]*([eE][+-][0-9]+)?)\s?([+-]?\s?([0-9]+[.]?[0-9]*([eE][+-][0-9]+)?)?)\s?[ij]\s?$/, on = /^\s?[+-]?\s?$/;
function un(n2) {
  let e2 = 0, r2 = 0, o2 = "i";
  if ("number" == typeof n2) return { real: n2, im: r2, unit: o2 };
  if ("boolean" == typeof n2) throw t.BuiltIn.Value;
  let u2 = n2.match(tn);
  if (u2) return e2 = Number(u2[0]), { real: e2, im: r2, unit: o2 };
  if (u2 = n2.match(en), u2) return r2 = Number(on.test(u2[1]) ? u2[1] + "1" : u2[1]), o2 = u2[0].slice(-1), { real: e2, im: r2, unit: o2 };
  if (u2 = n2.match(rn), u2) return e2 = Number(u2[1]), r2 = Number(on.test(u2[3]) ? u2[3] + "1" : u2[3]), o2 = u2[0].slice(-1), { real: e2, im: r2, unit: o2 };
  throw t.BuiltIn.Num;
}
function an(n2, e2, r2 = "i") {
  if ("i" !== r2 && "j" !== r2) throw t.BuiltIn.Value;
  if (0 === n2 && 0 === e2) return 0;
  if (0 === n2) return 1 === e2 ? r2 : -1 === e2 ? "-" + r2 : e2.toString() + r2;
  if (0 === e2) return n2.toString();
  let o2 = e2 > 0 ? "+" : "";
  return 1 === e2 ? n2.toString() + o2 + r2 : -1 === e2 ? n2.toString() + o2 + "-" + r2 : n2.toString() + o2 + e2.toString() + r2;
}
function ln(n2) {
  const { real: t2, im: e2 } = un(n2);
  return Math.sqrt(Math.pow(t2, 2) + Math.pow(e2, 2));
}
function sn(n2) {
  const { real: t2, im: e2 } = un(n2);
  return 0 === t2 && 0 === e2 ? 1 / 0 : 0 === t2 && e2 > 0 ? Math.PI / 2 : 0 === t2 && e2 < 0 ? -Math.PI / 2 : t2 < 0 && 0 === e2 ? Math.PI : t2 > 0 && 0 === e2 ? 0 : t2 > 0 ? Math.atan(e2 / t2) : t2 < 0 && e2 > 0 ? Math.atan(e2 / t2) + Math.PI : Math.atan(e2 / t2) - Math.PI;
}
function fn(n2) {
  const { real: t2, im: e2, unit: r2 } = un(n2);
  return an(Math.cos(t2) * (Math.exp(e2) + Math.exp(-e2)) / 2, -Math.sin(t2) * (Math.exp(e2) - Math.exp(-e2)) / 2, r2);
}
function cn(n2) {
  const { real: t2, im: e2, unit: r2 } = un(n2);
  return an(Math.cos(e2) * (Math.exp(t2) + Math.exp(-t2)) / 2, - -Math.sin(e2) * (Math.exp(t2) - Math.exp(-t2)) / 2, r2);
}
function mn(n2, e2) {
  const r2 = un(n2), o2 = r2.real, u2 = r2.im, a2 = r2.unit, i2 = un(e2), l2 = i2.real, s2 = i2.im, f2 = i2.unit;
  if (0 === l2 && 0 === s2 || a2 !== f2) throw t.BuiltIn.Num;
  const c2 = a2, m2 = Math.pow(l2, 2) + Math.pow(s2, 2);
  return an((o2 * l2 + u2 * s2) / m2, (u2 * l2 - o2 * s2) / m2, c2);
}
function pn(n2) {
  const { real: t2, im: e2, unit: r2 } = un(n2);
  return an(Math.sin(t2) * (Math.exp(e2) + Math.exp(-e2)) / 2, Math.cos(t2) * (Math.exp(e2) - Math.exp(-e2)) / 2, r2);
}
function hn(n2) {
  const { real: t2, im: e2, unit: r2 } = un(n2);
  return an(Math.cos(e2) * (Math.exp(t2) - Math.exp(-t2)) / 2, Math.sin(e2) * (Math.exp(t2) + Math.exp(-t2)) / 2, r2);
}
const gn = Object.freeze(Object.defineProperty({ __proto__: null, COMPLEX: an, IMABS: ln, IMAGINARY: function(n2) {
  return un(n2).im;
}, IMARGUMENT: sn, IMCONJUGATE: function(n2) {
  const { real: t2, im: e2, unit: r2 } = un(n2);
  return 0 !== e2 ? an(t2, -e2, r2) : "" + t2;
}, IMCOS: fn, IMCOSH: cn, IMCOT: function(n2) {
  return mn(fn(n2), pn(n2));
}, IMCSC: function(n2) {
  return mn("1", pn(n2));
}, IMCSCH: function(n2) {
  return mn("1", hn(n2));
}, IMDIV: mn, IMEXP: function(n2) {
  const { real: t2, im: e2, unit: r2 } = un(n2), o2 = Math.exp(t2);
  return an(o2 * Math.cos(e2), o2 * Math.sin(e2), r2);
}, IMLN: function(n2) {
  const { real: t2, im: e2, unit: r2 } = un(n2);
  return an(Math.log(Math.sqrt(Math.pow(t2, 2) + Math.pow(e2, 2))), Math.atan(e2 / t2), r2);
}, IMLOG10: function(n2) {
  const { real: t2, im: e2, unit: r2 } = un(n2);
  return an(Math.log(Math.sqrt(Math.pow(t2, 2) + Math.pow(e2, 2))) / Math.log(10), Math.atan(e2 / t2) / Math.log(10), r2);
}, IMLOG2: function(n2) {
  const { real: t2, im: e2, unit: r2 } = un(n2);
  return an(Math.log(Math.sqrt(Math.pow(t2, 2) + Math.pow(e2, 2))) / Math.log(2), Math.atan(e2 / t2) / Math.log(2), r2);
}, IMPOWER: function(n2, t2) {
  const { unit: e2 } = un(n2), r2 = Math.pow(ln(n2), t2), o2 = sn(n2);
  return an(r2 * Math.cos(t2 * o2), r2 * Math.sin(t2 * o2), e2);
}, IMPRODUCT: function(...n2) {
  const e2 = n2.length;
  if (0 === e2) return 0;
  let r2 = n2[0];
  un(r2);
  for (let o2 = 1; o2 < e2; o2++) {
    const e3 = n2[o2], u2 = un(r2), a2 = un(e3);
    if (u2.unit !== a2.unit) throw t.BuiltIn.Value;
    const i2 = u2.real, l2 = u2.im, s2 = a2.real, f2 = a2.im;
    r2 = an(i2 * s2 - l2 * f2, i2 * f2 + l2 * s2);
  }
  return r2;
}, IMREAL: function(n2) {
  return un(n2).real;
}, IMSEC: function(n2) {
  return mn("1", fn(n2));
}, IMSECH: function(n2) {
  return mn("1", cn(n2));
}, IMSIN: pn, IMSINH: hn, IMSQRT: function(n2) {
  const { unit: t2 } = un(n2), e2 = Math.sqrt(ln(n2)), r2 = sn(n2);
  return an(e2 * Math.cos(r2 / 2), e2 * Math.sin(r2 / 2), t2);
}, IMSUB: function(n2, e2) {
  const r2 = un(n2), o2 = r2.real, u2 = r2.im, a2 = r2.unit, i2 = un(e2), l2 = i2.real, s2 = i2.im;
  if (a2 !== i2.unit) throw t.BuiltIn.Value;
  return an(o2 - l2, u2 - s2, a2);
}, IMSUM: function(...n2) {
  let e2, r2 = 0, o2 = 0;
  const u2 = n2.length;
  for (let a2 = 0; a2 < u2; a2++) {
    const u3 = n2[a2], { real: i2, im: l2, unit: s2 } = un(u3);
    if (e2 || (e2 = s2), e2 !== s2) throw t.BuiltIn.Value;
    r2 += i2, o2 += l2;
  }
  return an(r2, o2, e2);
}, IMTAN: function(n2) {
  return mn(pn(n2), fn(n2));
} }, Symbol.toStringTag, { value: "Module" })), dn = 1e-7, Nn = (n2) => {
  const t2 = n2.getCurrencySymbol(), e2 = n2.getNumberGroupSeparator(), r2 = n2.getNumberDecimalSeparator();
  return `${t2}#${e2}##0${r2}00_);[Red](${t2}#${e2}##0${r2}00)`;
}, bn = (n2, t2) => {
  const e2 = t2.getFullYear() - n2.getFullYear();
  if (e2 > 1) return true;
  if (e2 < 1) return false;
  const r2 = t2.getMonth() - n2.getMonth();
  return r2 > 0 || !(r2 < 0) && t2.getDate() - n2.getDate() > 0;
};
function En(n2) {
  return !(n2 < 1 || n2 > 4 || 3 === n2);
}
function In(n2) {
  return !(n2 < 0 || n2 >= 2958466);
}
function Tn(n2) {
  return !(n2 < 0 || n2 > 4);
}
function Mn(n2, t2, r2, o2 = 0, u2 = 0) {
  let a2;
  if (0 === n2) a2 = o2 + r2 * t2;
  else {
    const e2 = Math.pow(1 + n2, t2);
    a2 = 1 === u2 ? o2 * e2 + r2 * (1 + n2) * (e2 - 1) / n2 : o2 * e2 + r2 * (e2 - 1) / n2;
  }
  return e.formatResults(Nn(e.getRuntime())), -a2;
}
function Sn(n2, ...e2) {
  if (e2.length > 254) throw t.BuiltIn.Value;
  let r2 = 0;
  for (let t2 = e2.length - 1; t2 >= 0; t2--) {
    if (r2 += e2[t2], -1 === n2) {
      if (0 === r2) continue;
      return 1 / 0;
    }
    r2 /= 1 + n2;
  }
  return r2;
}
function An(n2, t2, r2, o2 = 0, u2 = 0) {
  if (0 === n2) return (-r2 - o2) / t2;
  u2 = u2 ? 1 : 0;
  const a2 = Math.pow(1 + n2, t2);
  return e.formatResults(Nn(e.getRuntime())), (o2 * n2 + r2 * n2 * a2) * (u2 ? 1 / (1 + n2) : 1) / (1 - a2);
}
const vn = Object.freeze(Object.defineProperty({ __proto__: null, ACCRINT: function(n2, t2, e2, r2, o2, u2, a2 = 0, i2 = true) {
  return In(n2) && In(t2) && In(e2) && En(u2) && !Tn(a2) ? o2 * r2 * G(n2, e2, a2) : Number.NaN;
}, ACCRINTM: function(n2, t2, e2, r2, o2 = 0) {
}, AMORLINC: function(n2, t2, e2, r2, o2, u2, a2 = 0) {
}, COUPDAYBS: function(n2, t2, e2, r2 = 0) {
}, COUPDAYS: function(n2, t2, r2, o2 = 0) {
  if (1 === o2) {
    const o3 = function(n3, t3, e2) {
      const r3 = new Date(t3);
      if (r3.setFullYear(n3.getFullYear()), r3 > n3) for (; r3 > n3; ) r3.setMonth(r3.getMonth() - Math.round(12 / e2));
      else {
        const t4 = new Date(r3);
        for (t4.setMonth(t4.getMonth() + Math.round(12 / e2)); t4 <= n3; ) r3.setTime(t4.getTime()), t4.setMonth(t4.getMonth() + Math.round(12 / e2));
      }
      return r3;
    }(e.fromOADate(n2), e.fromOADate(t2), r2), u3 = new Date(o3);
    return u3.setMonth(u3.getMonth() + Math.round(12 / r2)), L(e.toOADate(o3), e.toOADate(u3), "D");
  }
  let u2;
  switch (o2) {
    case 0:
    case 2:
    case 4:
      u2 = 360;
      break;
    case 3:
      u2 = 365;
      break;
    default:
      return Number.NaN;
  }
  return u2 / r2;
}, COUPNCD: function(n2, t2, e2, r2 = 0) {
}, COUPNUM: function(n2, t2, e2, r2 = 0) {
}, COUPPCD: function(n2, t2, e2, r2 = 0) {
}, CUMIPMT: function(n2, t2, e2, r2, o2, u2) {
  if (!In(r2) || !In(o2)) return Number.NaN;
  if (n2 <= 0 || t2 <= 0 || e2 <= 0) return Number.NaN;
  if (r2 < 1 || o2 < 1 || r2 > o2) return Number.NaN;
  if (0 !== u2 && 1 !== u2) return Number.NaN;
  const a2 = An(n2, t2, e2, 0, u2);
  let i2 = 0;
  1 === r2 && (0 === u2 && (i2 = -e2), r2++);
  for (let t3 = r2; t3 <= o2; t3++) i2 += 1 === u2 ? Mn(n2, t3 - 2, a2, e2, 1) - a2 : Mn(n2, t3 - 1, a2, e2, 0);
  return i2 *= n2, i2;
}, CUMPRINC: function(n2, t2, e2, r2, o2, u2) {
  if (!In(r2) || !In(o2)) return Number.NaN;
  if (r2 > o2) return Number.NaN;
  if (n2 <= 0 || t2 <= 0 || e2 <= 0) return Number.NaN;
  if (r2 < 1 || o2 < 1 || r2 > o2) return Number.NaN;
  if (0 !== u2 && 1 !== u2) return Number.NaN;
  const a2 = An(n2, t2, e2, 0, u2);
  let i2 = 0;
  1 === r2 && (i2 = 0 === u2 ? a2 + e2 * n2 : a2, r2++);
  for (let t3 = r2; t3 <= o2; t3++) i2 += u2 > 0 ? a2 - (Mn(n2, t3 - 2, a2, e2, 1) - a2) * n2 : a2 - Mn(n2, t3 - 1, a2, e2, 0) * n2;
  return i2;
}, DB: function(n2, t2, r2, o2, u2 = 12) {
  if (n2 < 0 || t2 < 0 || r2 < 0 || o2 < 0) return Number.NaN;
  if (u2 < 1 || u2 > 12) return Number.NaN;
  if (o2 > r2) return Number.NaN;
  if (t2 >= n2) return 0;
  const a2 = 1 - Math.pow(t2 / n2, 1 / r2), i2 = Math.round(1e3 * a2) / 1e3;
  if (e.formatResults(Nn(e.getRuntime())), 1 === o2) return n2 * i2 * u2 / 12;
  let l2 = n2 * i2 * u2 / 12;
  for (let e2 = 2; e2 <= o2; e2++) {
    if (e2 === o2 && o2 === r2) return Math.max(0, n2 - l2 - t2);
    const u3 = (n2 - l2) * i2;
    if (e2 === o2) return u3;
    l2 += u3;
  }
  return 0;
}, DDB: function(n2, t2, e2, r2, o2 = 2) {
  if (n2 < 0 || t2 < 0 || e2 < 0 || r2 < 0 || o2 <= 0) return Number.NaN;
  if (r2 > e2) return Number.NaN;
  if (t2 >= n2) return 0;
  let u2 = 0, a2 = 0;
  for (let i2 = 1; i2 <= r2; i2++) a2 = Math.min(o2 / e2 * (n2 - u2), n2 - t2 - u2), u2 += a2;
  return a2;
}, DISC: function(n2, e2, r2, o2, u2 = 0) {
  if (!In(n2) || !In(e2) || !Tn(u2)) return Number.NaN;
  if (r2 <= 0 || o2 <= 0) return Number.NaN;
  if (n2 >= e2) throw t.BuiltIn.Value;
  let a2, i2;
  switch (u2) {
    case 0:
      a2 = 360, i2 = V(n2, e2, false);
      break;
    case 1:
    case 3:
      a2 = 365, i2 = L(n2, e2, "D");
      break;
    case 2:
      a2 = 360, i2 = L(n2, e2, "D");
      break;
    case 4:
      a2 = 360, i2 = V(n2, e2, true);
      break;
    default:
      return Number.NaN;
  }
  return (o2 - r2) / o2 * a2 / i2;
}, DOLLARDE: function(n2, t2) {
  if ((t2 = Math.trunc(t2)) < 0) return Number.NaN;
  if (t2 < 1) return 1 / 0;
  let e2 = n2;
  e2 += n2 % 1 * Math.pow(10, Math.ceil(Math.log(t2) / Math.LN10)) / t2;
  const r2 = Math.pow(10, Math.ceil(Math.log(t2) / Math.LN2) + 1);
  return e2 = Math.round(e2 * r2) / r2, e2;
}, DOLLARFR: function(n2, t2) {
  if ((t2 = Math.trunc(t2)) < 0) return Number.NaN;
  if (t2 < 1) return 1 / 0;
  let e2 = n2;
  return e2 += n2 % 1 * Math.pow(10, -Math.ceil(Math.log(t2) / Math.LN10)) * t2, e2;
}, DURATION: function(n2, t2, e2, r2, o2, u2 = 0) {
  if (!In(n2) || !In(t2) || !Tn(u2)) return Number.NaN;
}, EFFECT: function(n2, t2) {
  return t2 = Math.trunc(t2), Math.pow(1 + n2 / t2, t2) - 1;
}, FV: Mn, FVSCHEDULE: function(n2, e2) {
  let r2 = n2;
  for (const n3 of e2.values({ includeMistyped: true })) {
    if ("number" != typeof n3) throw t.BuiltIn.Value;
    r2 *= 1 + n3;
  }
  return r2;
}, INTRATE: function(n2, t2, r2, o2, u2 = 2) {
  return In(n2) && In(t2) && Tn(u2) ? r2 <= 0 || o2 <= 0 || n2 >= t2 ? Number.NaN : r2 >= o2 ? 1 / 0 : bn(e.fromOADate(n2), e.fromOADate(t2)) ? Number.NaN : void 0 : Number.NaN;
}, IPMT: function(n2, t2, e2, r2, o2 = 0, u2 = 0) {
  const a2 = An(n2, e2, r2, o2, u2);
  return 1 === t2 ? n2 * (u2 ? 0 : -r2) : n2 * (u2 ? Mn(n2, t2 - 2, a2, r2, u2) - a2 : Mn(n2, t2 - 1, a2, r2, u2));
}, IRR: function(n2, t2 = 0.1) {
}, ISPMT: function(n2, t2, e2, r2) {
  return 0 === e2 ? 1 / 0 : r2 * n2 * (t2 / e2 - 1);
}, MDURATION: function(n2, t2, e2, r2, o2, u2 = 2) {
  if (!(In(n2) && In(t2) && En(o2) && Tn(u2))) return Number.NaN;
}, MIRR: function(n2, t2, e2) {
  let r2 = false, o2 = false;
  const u2 = [], a2 = [];
  for (const t3 of n2) t3 > 0 ? (r2 = true, u2.push(t3), a2.push(0)) : t3 < 0 ? (o2 = true, a2.push(t3), u2.push(0)) : (a2.push(0), u2.push(0));
  if (!r2 || !o2) return 1 / 0;
  const i2 = Sn(e2, ...u2);
  if (i2 === 1 / 0) return i2;
  const l2 = Sn(t2, ...a2);
  if (l2 === 1 / 0) return i2;
  const s2 = n2.length;
  return Math.pow(-i2 * Math.pow(1 + e2, s2) / l2 / (1 + t2), 1 / (s2 - 1)) - 1;
}, NOMINAL: function(n2, t2) {
  return t2 = Math.trunc(t2), (Math.pow(n2 + 1, 1 / t2) - 1) * t2;
}, NPER: function(n2, t2, e2, r2 = 0, o2 = 0) {
  return 0 === n2 ? 0 === t2 ? 1 / 0 : (-e2 - r2) / t2 : (o2 && (t2 *= 1 + n2), Math.log((t2 - r2 * n2) / (e2 * n2 + t2)) / Math.log(1 + n2));
}, NPV: Sn, ODDFPRICE: function(n2, t2, e2, r2, o2, u2, a2, i2 = 0) {
  if (!(In(n2) && In(t2) && In(e2) && In(r2) && En(a2) && Tn(i2))) return Number.NaN;
}, ODDFYIELD: function(n2, t2, e2, r2, o2, u2, a2, i2 = 0) {
  if (!(In(n2) && In(t2) && In(e2) && In(r2) && En(a2) && Tn(i2))) return Number.NaN;
}, ODDLPRICE: function(n2, t2, e2, r2, o2, u2, a2, i2 = 0) {
  if (!(In(n2) && In(t2) && In(e2) && En(a2) && Tn(i2))) return Number.NaN;
}, ODDLYIELD: function(n2, t2, e2, r2, o2, u2, a2, i2 = 0) {
  if (!(In(n2) && In(t2) && In(e2) && En(a2) && Tn(i2))) return Number.NaN;
}, PDURATION: function(n2, t2, e2) {
  return (Math.log(e2) - Math.log(t2)) / Math.log(1 + n2);
}, PMT: An, PRICE: function(n2, t2, e2, r2, o2, u2, a2 = 0) {
  if (!(In(n2) && In(t2) && En(u2) && Tn(a2))) return Number.NaN;
}, PRICEDISC: function(n2, e2, r2, o2, u2 = 0) {
  if (!In(n2) || !In(e2) || !Tn(u2)) return Number.NaN;
  if (r2 <= 0 || o2 <= 0) return Number.NaN;
  if (n2 >= e2) throw t.BuiltIn.Value;
  let a2, i2;
  switch (u2) {
    case 0:
      a2 = 360, i2 = V(n2, e2, false);
      break;
    case 1:
    case 3:
      a2 = 365, i2 = L(n2, e2, "D");
      break;
    case 2:
      a2 = 360, i2 = L(n2, e2, "D");
      break;
    case 4:
      a2 = 360, i2 = V(n2, e2, true);
      break;
    default:
      return Number.NaN;
  }
  return o2 - r2 * o2 * i2 / a2;
}, PRICEMAT: function(n2, t2, e2, r2, o2, u2 = 0) {
  if (!(In(n2) && In(t2) && In(e2) && Tn(u2))) return Number.NaN;
}, PV: function(n2, t2, r2, o2 = 0, u2 = 0) {
  return u2 = u2 ? 1 : 0, -1 === n2 ? 0 === t2 ? Number.NaN : 1 / 0 : (e.formatResults(Nn(e.getRuntime())), 0 === n2 ? -r2 * t2 - o2 : ((1 - Math.pow(1 + n2, t2)) * r2 * (1 + n2 * u2) / n2 - o2) / Math.pow(1 + n2, t2));
}, RATE: function(n2, e2, r2, o2 = 0, u2 = 0, a2 = 0.1) {
  if (a2 <= -1) throw t.BuiltIn.Value;
  u2 = u2 ? 1 : 0;
  let i2 = a2;
  0.1 === i2 && Math.abs(e2) > Math.abs(r2) / 10 && (i2 = 0.2);
  for (let t2 = 0; t2 < 20; t2++) {
    if (i2 <= -1) return Number.NaN;
    let t3 = 0;
    if (Math.abs(i2) < dn) t3 = r2 * (1 + n2 * i2) + e2 * (1 + i2 * u2) * n2 + o2;
    else {
      const a4 = Math.pow(1 + i2, n2);
      t3 = r2 * a4 + e2 * (1 / i2 + u2) * (a4 - 1) + o2;
    }
    if (Math.abs(t3) < dn) return i2;
    let a3 = 0;
    if (Math.abs(i2) < dn) a3 = r2 * n2 + e2 * u2 * n2;
    else {
      const t4 = Math.pow(1 + i2, n2), o3 = n2 * Math.pow(1 + i2, n2 - 1);
      a3 = r2 * o3 + e2 * (1 / i2 + u2) * o3 + e2 * (-1 / (i2 * i2)) * (t4 - 1);
    }
    i2 -= t3 / a3;
  }
  return Number.NaN;
}, RECEIVED: function(n2, t2, e2, r2, o2 = 0) {
  if (!In(n2) || !In(t2) || !Tn(o2)) return Number.NaN;
}, RRI: function(n2, t2, e2) {
  return 0 === t2 || e2 < 0 && t2 > 0 || e2 > 0 && t2 < 0 ? Number.NaN : Math.pow(e2 / e2, 1 / n2) - 1;
}, SLN: function(n2, t2, e2) {
  return (n2 - t2) / e2;
}, STOCKHISTORY: function(n2, e2, r2, o2 = 0, u2 = 1, a2 = [0, 1, 2, 3, 4]) {
  if (!In(e2) || !In(r2)) throw t.BuiltIn.Num;
}, SYD: function(n2, t2, e2, r2) {
  return r2 > e2 ? Number.NaN : (n2 - t2) * (e2 - r2 + 1) * 2 / (e2 * (e2 + 1));
}, TBILLEQ: function(n2, t2, r2) {
  if (!In(n2) || !In(t2)) return Number.NaN;
  if ((n2 = Math.round(n2)) >= (t2 = Math.round(t2)) || bn(e.fromOADate(n2), e.fromOADate(t2))) return Number.NaN;
  const o2 = 360 - r2 * (t2 - n2);
  return 0 === o2 ? 0 : o2 < 0 ? Number.NaN : 365 * r2 / o2;
}, TBILLPRICE: function(n2, t2, r2) {
  if (!In(n2) || !In(t2)) return Number.NaN;
  if ((n2 = Math.round(n2)) >= (t2 = Math.round(t2)) || bn(e.fromOADate(n2), e.fromOADate(t2))) return Number.NaN;
  const o2 = 360 - r2 * (t2 - n2);
  return 0 === o2 ? 0 : o2 < 0 ? Number.NaN : 100 * (1 - r2 * (t2 - n2) / 360);
}, TBILLYIELD: function(n2, t2, r2) {
  return In(n2) && In(t2) ? (n2 = Math.round(n2)) >= (t2 = Math.round(t2)) || bn(e.fromOADate(n2), e.fromOADate(t2)) ? Number.NaN : 360 * (100 - r2) / (r2 * (t2 - n2)) : Number.NaN;
}, VDB: function(n2, t2, e2, r2, o2, u2 = 2, a2 = false) {
  if (!In(r2) || !In(o2)) return Number.NaN;
}, XIRR: function(n2, t2, e2 = 0.1) {
}, XNPV: function(n2, t2, e2) {
  let r2 = 0;
  const o2 = t2.length;
  for (let u2 = 0; u2 < o2; u2++) r2 += t2[u2] / Math.pow(1 + n2, P(e2[u2], e2[0]) / 365);
  return r2;
}, YIELD: function(n2, t2, e2, r2, o2, u2, a2 = 0) {
  if (!(In(n2) && In(t2) && En(u2) && Tn(a2))) return Number.NaN;
}, YIELDDISC: function(n2, t2, e2, r2, o2, u2 = 0) {
  if (!(In(n2) && In(t2) && En(o2) && Tn(u2))) return Number.NaN;
}, YIELDMAT: function(n2, t2, e2, r2, o2, u2 = 0) {
  if (!In(n2) || !In(t2) || !Tn(u2)) return Number.NaN;
} }, Symbol.toStringTag, { value: "Module" })), Rn = Object.freeze(Object.defineProperty({ __proto__: null, CELL: function(n2, r2) {
  let o2 = null;
  switch (n2) {
    case "address":
      const n3 = r2.getCoords();
      o2 = e.getAddress({ colIndex: n3.colStart, $colIndex: true, rowIndex: n3.rowStart, $rowIndex: true });
      break;
    case "col":
    case "row":
      o2 = r2.getCoords().colStart + 1;
      break;
    case "contents":
      o2 = r2.getValueAt(0, 0);
      break;
    case "type":
      const u2 = r2.getValueAt(0, 0);
      o2 = null === u2 ? "b" : "string" == typeof u2 ? "l" : "v";
      break;
    default:
      o2 = t.BuiltIn.Value;
  }
  return e.markVolatile(), o2;
}, ERROR_TYPE: function(n2) {
  return n2.map((n3) => n3 instanceof t.Known ? n3.getCode() : t.BuiltIn.NA).fillEmpty(true);
}, INFO: function(n2) {
  if ("DIRECTORY" === (n2 = n2.toUpperCase())) {
    try {
      return e.markVolatile(), e.getRuntime().getLocation();
    } catch (n3) {
    }
    return "..";
  }
  if ("NUMFILE" === n2) return "1";
  if ("ORIGIN" === n2) return "$A$1";
  if ("RECALC" === n2) return "1";
  if ("RELEASE" === n2) return e.getRuntime().getVersion();
  if ("OSVERSION" === n2) return "1";
  if ("SYSTEM" === n2) return e.getRuntime().getOS();
  if ("USER" === n2) {
    return e.getRuntime().getUser() || (e.formatResults("@[Red]"), "Unidentified");
  }
  throw t.BuiltIn.Value;
}, ISBLANK: function(n2) {
  return n2.map(() => false).fillEmpty(true);
}, ISERR: function(n2) {
  return n2.map((n3) => n3 instanceof t.Known && !(n3 instanceof t.NA)).fillEmpty(false);
}, ISERROR: function(n2) {
  return n2.map((n3) => n3 instanceof t.Known).fillEmpty(false);
}, ISEVEN: function(n2) {
  return n2.map((n3) => "number" == typeof n3 && Math.trunc(n3) % 2 == 0).fillEmpty(false);
}, ISFORMULA: function(n2) {
  return n2.map((n3, t2) => null !== e.getFormulaAt(t2.rowIndex, t2.colIndex)).fillEmpty(false);
}, ISLOGICAL: function(n2) {
  return n2.map((n3) => "boolean" == typeof n3).fillEmpty(false);
}, ISNA: function(n2) {
  return n2.map((n3) => n3 instanceof t.NA).fillEmpty(false);
}, ISNONTEXT: function(n2) {
  return n2.map((n3) => "string" != typeof n3).fillEmpty(false);
}, ISNUMBER: function(n2) {
  return n2.map((n3) => "number" == typeof n3).fillEmpty(false);
}, ISODD: function(n2) {
  return n2.map((n3) => "number" == typeof n3 && Math.trunc(n3) % 2 != 0).fillEmpty(false);
}, ISOMITTED: function(n2) {
  return void 0 === n2;
}, ISREF: function(n2) {
  return n2?.isIReferenceRange ?? false;
}, ISTEXT: function(n2) {
  return n2.map((n3) => "string" == typeof n3).fillEmpty(false);
}, N: function(n2) {
  const e2 = n2.getValueAt(0, 0), r2 = typeof e2;
  if ("number" === r2) return e2;
  if ("boolean" === r2) return Number(e2);
  if (e2 instanceof t.Known) throw e2;
  return 0;
}, NA: function() {
  return t.BuiltIn.NA;
}, SHEET: function(n2) {
  const r2 = e.getSheetIndex(n2);
  return r2 >= 0 ? r2 + 1 : t.BuiltIn.NA;
}, SHEETS: function(n2) {
  return n2 ? 1 : e.getSheetCount();
}, TYPE: function(n2) {
  if (n2.getWidth() > 1 || n2.getHeight() > 1) return 64;
  const e2 = n2.getValueAt(0, 0), r2 = typeof e2;
  return "string" === r2 ? 2 : "boolean" === r2 ? 4 : e2 instanceof t.Known ? 16 : 1;
} }, Symbol.toStringTag, { value: "Module" })), yn = { mismatchFill: t.BuiltIn.NA }, wn = { type: r.Boolean, coerce: true }, Cn = Object.freeze(Object.defineProperty({ __proto__: null, AND: function(...n2) {
  let e2 = false;
  for (const t2 of n2) for (const n3 of t2.values({ type: r.Boolean, coerce: true })) if (e2 = true, !n3) return false;
  return !!e2 || t.BuiltIn.Value;
}, BYCOL: function(n2, t2) {
}, BYROW: function(n2, t2) {
}, FALSE: function() {
  return false;
}, IF: function(n2, e2, u2) {
  if (1 === n2.size) return n2.getValueAt(0, 0, wn) ? e2 : u2 ?? n2.empty().replace([[false]]);
  const a2 = n2.getWidth(), i2 = n2.getHeight();
  if (1 === a2 || 1 === i2) {
    const l3 = 1 === a2 ? o.Orientation.Column : o.Orientation.Row, s3 = 1 === i2, f3 = s3 ? e2.getHeight() : e2.getWidth(), c2 = 1 === (s3 ? e2.getWidth() : e2.getHeight());
    if (!u2) {
      const t2 = 1 === i2, r2 = t2 ? e2.getHeight() : e2.getWidth();
      u2 = n2.empty().fill(false, { colStart: 0, rowStart: 0, colEnd: (t2 ? 1 : r2) - 1, rowEnd: (t2 ? r2 : 1) - 1 });
    }
    const m2 = s3 ? u2.getHeight() : u2.getWidth(), p2 = 1 === (s3 ? u2.getWidth() : u2.getHeight()), h2 = Math.max(f3, m2), g2 = n2.empty().fill(t.BuiltIn.Value, { colStart: 0, rowStart: 0, colEnd: (s3 ? u2.getWidth() : h2) - 1, rowEnd: (s3 ? h2 : u2.getHeight()) - 1 }), d2 = [];
    let N2 = n2.empty();
    n2.forEach((n3, r2) => {
      const o2 = true === n3;
      let a3 = o2 ? e2 : u2;
      n3 instanceof t.Known && (a3 = g2);
      let i3 = 0;
      (o2 && !c2 || !o2 && !p2) && (i3 = s3 ? r2.colIndex : r2.rowIndex);
      const l4 = s3 ? { colStart: i3, colEnd: i3 } : { rowStart: i3, rowEnd: i3 };
      a3 = a3.slice(l4), N2 = N2.replace(a3, r2);
      const f4 = s3 ? a3.getHeight() : a3.getWidth();
      f4 < h2 && (s3 ? (l4.rowStart = f4, l4.rowEnd = h2 - 1) : (l4.colStart = f4, l4.colEnd = h2 - 1), d2.push(l4));
    }, { orientation: l3, type: r.Boolean, coerce: true, includeEmpty: true });
    for (let n3 = 0; n3 < d2.length; n3++) N2 = N2.fill(t.BuiltIn.NA, d2[n3]);
    return N2;
  }
  const l2 = a2 - 1, s2 = i2 - 1;
  let f2 = e2.broadcast(u2, (e3, r2, o2) => {
    let u3 = o2.colIndex, a3 = o2.rowIndex;
    return u3 > l2 || a3 > s2 ? t.BuiltIn.NA : n2.getValueAt(o2.rowIndex, o2.colIndex, wn) ? e3 : r2;
  }, yn);
  return f2 = f2.fillEmpty(t.BuiltIn.NA, Math.max(e2.getWidth(), u2.getWidth()), Math.max(e2.getHeight(), u2.getHeight())), f2;
}, IFERROR: function(n2, e2) {
  return n2.broadcast(e2, (n3 = null, e3 = null) => n3 instanceof t.Known ? e3 : n3, { mismatchFill: null });
}, IFNA: function(n2, e2) {
  return n2.broadcast(e2, (n3 = null, e3 = null) => t.BuiltIn.NA.equals(n3) ? e3 : n3, { mismatchFill: null });
}, IFS: function(n2, e2, ...r2) {
  if (r2 && r2.length % 2 != 0) throw new t.NA("IFS expects all arguments after position 0 to be in pairs.");
  const o2 = [n2, e2, ...r2];
  for (let n3 = 0; n3 < o2.length / 2; n3++) {
    const t2 = S.accept(o2[2 * n3], M.BOOLEAN), e3 = S.accept(o2[2 * n3 + 1]);
    if (t2) return e3;
  }
  throw t.BuiltIn.NA;
}, LAMDA: function(...n2) {
}, LET: function(n2, t2, e2, ...r2) {
}, MAKEARRAY: function(n2, t2, e2) {
}, MAP: function(n2, ...t2) {
}, NOT: function(n2) {
  return n2.map((n3) => "boolean" == typeof n3 ? !n3 : "number" == typeof n3 ? 0 === n3 : t.BuiltIn.Value).fillEmpty(true);
}, OR: function(...n2) {
  let e2 = false;
  for (const t2 of n2) for (const n3 of t2.values({ type: r.Boolean, coerce: true })) if (e2 = true, true === n3) return true;
  return !e2 && t.BuiltIn.Value;
}, REDUCE: function(n2, t2, e2) {
}, SCAN: function(n2, t2, e2) {
}, SWITCH: function(n2, t2, ...e2) {
}, TRUE: function() {
  return false;
}, XOR: function(...n2) {
  let e2 = false, o2 = 0;
  for (const t2 of n2) for (const n3 of t2.values({ type: r.Boolean, coerce: true })) e2 = true, true === n3 && o2++;
  return e2 ? o2 % 2 == 1 : t.BuiltIn.Value;
} }, Symbol.toStringTag, { value: "Module" })), On = (n2) => "string" == typeof n2 && /[*?]/.test(n2), Dn = (n2, t2) => RegExp(n2.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/([^~]??)[?]/g, "$1.").replace(/([^~]??)[*]/g, "$1.*").replace(/~([?*])/g, "$1"), t2), xn = Object.freeze(Object.defineProperty({ __proto__: null, ADDRESS: function(n2, r2, o2 = 1, u2 = true, a2 = "") {
  if (n2 < 1 || r2 < 1 || o2 < 1 || o2 > 4) throw t.BuiltIn.Value;
  const i2 = { $colIndex: 1 === o2 || 3 === o2, colIndex: r2 - 1, $rowIndex: 1 === o2 || 2 === o2, rowIndex: n2 - 1, sheetName: a2 };
  return e.getAddress(i2, !u2);
}, AREAS: function(...n2) {
  return n2.length;
}, CHOOSE: function(n2, e2, ...r2) {
  if (1 === n2) return e2;
  if (n2 < 1 || n2 > r2.length + 1) throw t.BuiltIn.Value;
  return r2[n2 - 2];
}, CHOOSECOLS: function(n2, e2, ...r2) {
  const o2 = n2.getValues(), u2 = [e2, ...r2].map((n3) => {
    if (n3 <= 0) throw t.BuiltIn.Value;
    if (n3 > o2[0].length) throw t.BuiltIn.Ref;
    return Math.floor(n3 - 1);
  }), a2 = [];
  for (let n3 = 0; n3 < o2.length; n3++) a2[n3] = u2.map((t2) => o2[n3][t2]);
  return a2;
}, CHOOSEROWS: function(n2, e2, ...r2) {
  const o2 = n2.getValues();
  return [e2, ...r2].map((n3) => {
    if (n3 <= 0) throw t.BuiltIn.Value;
    if (n3 > o2.length) throw t.BuiltIn.Ref;
    return Math.floor(n3 - 1);
  }).map((n3) => [...o2[n3]]);
}, COLUMN: function(n2) {
  if (!n2) return [e.getPosition().colIndex + 1];
  const t2 = [], r2 = n2.getCoords(), o2 = r2.colStart, u2 = r2.colEnd;
  for (let n3 = o2; n3 <= u2; n3++) t2.push(n3 + 1);
  return t2;
}, COLUMNS: function(n2) {
  return n2.getWidth();
}, DROP: function(n2, t2, e2 = 0) {
}, EXPAND: function(n2, e2, r2 = 0, o2 = t.BuiltIn.NA) {
}, FIELDVALUE: function(n2, t2) {
}, FILTER: function(n2, t2, e2) {
}, FORMULATEXT: function(n2) {
  const r2 = n2.getCoords(), o2 = e.getFormulaAt(r2.rowStart, r2.colStart);
  if (null === o2) throw t.BuiltIn.NA;
  return "=" + o2;
}, GETPIVOTDATA: function(n2, t2, e2, r2) {
}, GROUPBY: function(n2, t2, e2, r2 = null, o2 = 2, u2 = null, a2 = null, i2 = 0) {
}, HLOOKUP: function(n2, e2, r2, o2 = true) {
  if (r2 < 1) return t.BuiltIn.Value;
  if (r2 > e2.getHeight()) return t.BuiltIn.Ref;
  if (1 === e2.size) return t.BuiltIn.NA;
  const u2 = e2.getValues(), a2 = typeof n2, i2 = "string" == typeof n2 ? n2 : String(n2), l2 = On(i2), s2 = l2 ? Dn(i2, "i") : null;
  if (o2) {
    let e3 = a2 === typeof u2[0][0] ? u2[0][0] : null;
    const o3 = u2[0].length;
    for (let i3 = 1; i3 < o3; i3++) {
      const o4 = u2[0][i3];
      if (typeof o4 === a2) {
        if (e3 > n2 && o4 > n2) throw t.BuiltIn.NA;
        if (o4 === n2) return u2[r2 - 1][i3];
        if (null != e3 && o4 > n2 && e3 <= n2) return u2[r2 - 1][i3 - 1];
        e3 = o4;
      }
    }
    if (null === e3) throw t.BuiltIn.NA;
    return 1 === u2[0].length ? u2[r2 - 1][0] : e3;
  }
  {
    let e3 = -1;
    if (e3 = l2 ? u2[0].findIndex((n3) => {
      const t2 = "string" == typeof n3 ? n3 : String(n3);
      return s2.test(t2);
    }) : u2[0].findIndex((t2) => t2 === n2), -1 === e3) throw t.BuiltIn.NA;
    return u2[r2 - 1][e3];
  }
}, HSTACK: function(n2, ...t2) {
}, HYPERLINK: function(n2, t2) {
}, IMAGE: function(n2, t2, e2, r2, o2) {
}, INDEX: function(n2, e2 = 0, r2 = 0, o2 = 1) {
  if (e2 < 0 || r2 < 0 || o2 < 0) return t.BuiltIn.Value;
  if (o2 > n2.length) return t.BuiltIn.Ref;
  const u2 = n2[o2 - 1];
  if (0 === e2 && 0 === r2) return u2;
  if (0 !== e2 && 0 !== r2) return u2.getValueAt(e2 - 1, r2 - 1);
  const a2 = u2.getHeight(), i2 = u2.getWidth();
  if (e2 > a2 || r2 > i2) return t.BuiltIn.Ref;
  if (0 === e2) {
    const n3 = r2 - 1;
    return u2.slice({ colStart: n3, rowStart: 0, colEnd: n3, rowEnd: a2 - 1 });
  }
  {
    const n3 = e2 - 1;
    return u2.slice({ colStart: 0, rowStart: n3, colEnd: i2 - 1, rowEnd: n3 });
  }
}, INDIRECT: function(n2, t2 = true) {
  return e.getReference(n2, !t2);
}, LOOKUP: function(n2, t2, e2) {
}, MATCH: function(n2, t2, e2) {
}, OFFSET: function(n2, r2, o2, u2, a2) {
  if (u2 = u2 ?? n2.getHeight(), (a2 = a2 ?? n2.getWidth()) < 0) throw t.BuiltIn.Ref;
  if (u2 < 0) throw t.BuiltIn.Ref;
  const i2 = n2.getCoords(), l2 = { rowStart: i2.rowStart + r2, colStart: i2.colStart + o2, rowEnd: i2.rowStart + r2 + u2 - 1, colEnd: i2.colStart + o2 + a2 - 1 };
  return e.getReference(l2);
}, PIVOTBY: function(n2, t2, e2, r2, o2 = null, u2 = 2, a2 = null, i2 = 2, l2 = null, s2 = null, f2 = 0) {
}, ROW: function(n2) {
  if (!n2) return [e.getPosition().rowIndex + 1];
  const t2 = [], r2 = n2.getCoords(), o2 = r2.rowStart, u2 = r2.rowEnd;
  for (let n3 = o2; n3 <= u2; n3++) t2.push([n3 + 1]);
  return t2;
}, ROWS: function(n2) {
  return n2.getHeight();
}, RTD: function(n2, t2, ...e2) {
}, SORT: function(n2, t2, e2, r2 = false) {
}, SORTBY: function(n2, t2, e2) {
}, TAKE: function(n2, t2, e2 = 0) {
}, TOCOL: function(n2, t2 = 0, e2 = false) {
}, TOROW: function(n2, t2 = 0, e2 = false) {
}, TRANSPOSE: function(n2) {
  return n2.transpose();
}, TRIMRANGE: function(n2, r2 = 3, u2 = 3) {
  let a2 = 0, i2 = n2.getHeight() - 1, l2 = 0, s2 = n2.getWidth() - 1;
  const f2 = n2.isIReferenceRange;
  if (f2) {
    const t2 = n2.getCoords();
    a2 = t2.rowStart, i2 = t2.rowEnd, l2 = t2.colStart, s2 = t2.colEnd;
  } else a2 = 0, i2 = n2.getHeight() - 1, l2 = 0, s2 = n2.getWidth() - 1;
  if (1 === r2 || 3 === r2) {
    const e2 = n2.entries({ orientation: o.Orientation.Row }).next().value;
    if (!e2) return t.BuiltIn.Ref;
    a2 = e2.coords.rowIndex;
  }
  if (2 === r2 || 3 === r2) {
    const e2 = n2.entries({ reverse: true, orientation: o.Orientation.Row }).next().value;
    if (!e2) return t.BuiltIn.Ref;
    i2 = e2.coords.rowIndex;
  }
  if (1 === u2 || 3 === u2) {
    const e2 = n2.entries({ orientation: o.Orientation.Column }).next().value;
    if (!e2) return t.BuiltIn.Ref;
    l2 = e2.coords.colIndex;
  }
  if (2 === u2 || 3 === u2) {
    const e2 = n2.entries({ reverse: true, orientation: o.Orientation.Column }).next().value;
    if (!e2) return t.BuiltIn.Ref;
    s2 = e2.coords.colIndex;
  }
  let c2;
  return f2 ? e.getReference({ colStart: l2, rowStart: a2, colEnd: s2, rowEnd: i2 }) : (c2 = n2.slice({ colStart: l2, rowStart: a2, rowEnd: i2, colEnd: s2 }), c2);
}, UNIQUE: function(n2, t2 = false, e2 = false) {
}, VLOOKUP: function(n2, e2, r2, o2 = true) {
  if (r2 < 1) return t.BuiltIn.Value;
  if (r2 > e2.getWidth()) return t.BuiltIn.Ref;
  if (1 === e2.size) return t.BuiltIn.NA;
  const u2 = e2.getValues(), a2 = typeof n2, i2 = "string" == typeof n2 ? n2 : String(n2), l2 = On(i2), s2 = l2 ? Dn(i2, "i") : null;
  if (o2) {
    let e3 = a2 === typeof u2[0][0] ? u2[0][0] : null;
    const o3 = u2.length;
    for (let i3 = 1; i3 < o3; i3++) {
      const o4 = u2[i3], l3 = u2[i3][0];
      if (typeof l3 === a2) {
        if (e3 > n2 && l3 > n2) throw t.BuiltIn.NA;
        if (l3 === n2) return o4[r2 - 1];
        if (null != e3 && l3 > n2 && e3 <= n2) return u2[i3 - 1][r2 - 1];
        e3 = l3;
      }
    }
    if (null === e3) throw t.BuiltIn.NA;
    return 1 === u2.length ? u2[0][r2 - 1] : e3;
  }
  {
    let e3 = -1;
    if (e3 = l2 ? u2.findIndex((n3) => s2.test(n3[0])) : u2.findIndex((t2) => t2[0] === n2), -1 === e3) throw t.BuiltIn.NA;
    return u2[e3][r2 - 1];
  }
}, VSTACK: function(n2, ...t2) {
}, WRAPCOLS: function(n2, e2, r2 = t.BuiltIn.NA) {
}, WRAPROWS: function(n2, e2, r2 = t.BuiltIn.NA) {
}, XLOOKUP: function(n2, t2, e2, r2, o2 = true, u2, a2 = true) {
}, XMATCH: function(n2, t2, e2, r2 = true) {
} }, Symbol.toStringTag, { value: "Module" })), _n = [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, 20922789888e3, 355687428096e3, 6402373705728e3, 121645100408832e3, 243290200817664e4, 5109094217170944e4, 11240007277776077e5, 2585201673888498e7, 6204484017332394e8, 15511210043330986e9, 40329146112660565e10, 10888869450418352e12, 30488834461171387e13, 8841761993739702e15, 26525285981219107e16, 8222838654177922e18, 2631308369336935e20, 8683317618811886e21, 29523279903960416e22, 10333147966386145e24, 37199332678990125e25, 13763753091226346e27, 5230226174666011e29, 20397882081197444e30, 8159152832478977e32, 3345252661316381e34, 140500611775288e37, 6041526306337383e37, 2658271574788449e39, 11962222086548019e40, 5502622159812089e42, 25862324151116818e43, 12413915592536073e45, 6082818640342675e47, 30414093201713376e48, 15511187532873822e50, 8065817517094388e52, 42748832840600255e53, 2308436973392414e56, 12696403353658276e57, 7109985878048635e59, 40526919504877214e60, 23505613312828785e62, 13868311854568984e64, 832098711274139e67, 5075802138772248e68, 3146997326038794e70, 198260831540444e73, 12688693218588417e73, 8247650592082472e75, 5443449390774431e77, 3647111091818868e79, 24800355424368305e80, 1711224524281413e83, 11978571669969892e84, 8504785885678623e86, 61234458376886085e87, 44701154615126844e89, 3307885441519386e92, 248091408113954e95, 18854947016660504e95, 14518309202828587e97, 11324281178206297e99, 8946182130782976e101, 7156945704626381e103, 5797126020747368e105, 4753643337012842e107, 3945523969720659e109, 3314240134565353e111, 281710411438055e114, 24227095383672734e114, 2107757298379528e117, 18548264225739844e118, 1650795516090846e121, 14857159644817615e122, 1352001527678403e125, 12438414054641308e126, 11567725070816416e128, 1087366156656743e131, 1032997848823906e133, 9916779348709496e134, 9619275968248212e136, 9426890448883248e138, 9332621544394415e140, 9332621544394415e142], Bn = [], Un = [];
function Ln(n2) {
  return Math.abs(n2) < 99e-14 ? 0 : n2;
}
function Pn(n2) {
  return n2 <= 100 ? _n[n2] : Bn[n2] > 0 ? Bn[n2] : Bn[n2] = Pn(n2 - 1) * n2;
}
function Vn(n2) {
  return 1 === n2 || 0 === n2 ? 1 : 2 === n2 ? 2 : Un[n2] > 0 ? Un[n2] : Un[n2] = Vn(n2 - 2) * n2;
}
function Fn(n2) {
  const t2 = [], e2 = n2.length;
  for (let r2 = 0; r2 < e2; r2++) {
    const e3 = n2[r2], o2 = e3.length;
    for (let n3 = 0; n3 < o2; n3++) t2.push(e3[n3]);
  }
  return t2;
}
const Hn = (n2, e2, r2) => {
  const o2 = Fn(n2), u2 = Fn(e2);
  let a2 = 0;
  if (o2.length !== u2.length) throw t.BuiltIn.NA;
  const i2 = o2.length;
  for (let n3 = 0; n3 < i2; n3++) "number" == typeof o2[n3] && "number" == typeof u2[n3] && (a2 = Ln(a2 + r2(o2[n3], u2[n3])));
  return a2;
};
function Gn(n2, t2 = void 0) {
  if (0 === t2) return 0;
  if (n2 / t2 % 1 == 0) return n2;
  const e2 = Math.abs(t2), r2 = Math.floor(Math.abs(n2) / e2);
  return n2 < 0 ? t2 < 0 ? -e2 * (r2 + 1) : -e2 * r2 : (r2 + 1) * e2;
}
function Xn(n2, t2 = 1) {
  return 0 === t2 ? 0 : Gn(n2, Math.abs(t2));
}
function Yn(n2, t2) {
  return n2 < 0 || t2 < 0 || n2 < t2 ? Number.NaN : kn(n2) / kn(t2) / kn(n2 - t2);
}
function kn(n2) {
  return (n2 = Math.trunc(n2)) > 170 || n2 < 0 ? Number.NaN : n2 <= 100 ? _n[n2] : Pn(n2);
}
function qn(n2, t2 = void 0) {
  if (0 === n2) return 0;
  if (0 === t2) return 1 / 0;
  if (t2 = t2 ?? (n2 > 0 ? 1 : -1), n2 > 0 && t2 < 0) return Number.NaN;
  if (n2 / t2 % 1 == 0) return n2;
  const e2 = Math.abs(t2), r2 = Math.floor(Math.abs(n2) / e2);
  return n2 < 0 ? t2 < 0 ? -e2 * r2 : -e2 * (r2 + 1) : r2 * e2;
}
function zn(n2) {
  return Math.floor(n2);
}
const jn = Object.freeze(Object.defineProperty({ __proto__: null, ABS: function(n2) {
  return Math.abs(n2);
}, AGGREGATE: function(n2, t2, e2, r2) {
}, ARABIC: function(n2) {
  if (!/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/.test(n2)) throw new t.Value("Invalid roman numeral in ARABIC evaluation.");
  let e2 = 0;
  return n2.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g, (n3) => {
    e2 += { M: 1e3, CM: 900, D: 500, CD: 400, C: 100, XC: 90, L: 50, XL: 40, X: 10, IX: 9, V: 5, IV: 4, I: 1 }[n3];
  }), e2;
}, BASE: function(n2, t2, e2 = 0) {
  if (n2 < 0 || n2 >= 2 ** 53) return Number.NaN;
  if (t2 < 2 || t2 > 36) return Number.NaN;
  if (e2 < 0) return Number.NaN;
  const r2 = n2.toString(t2).toUpperCase();
  return new Array(Math.max(e2 + 1 - r2.length, 0)).join("0") + r2;
}, CEILING: Gn, CEILING_MATH: function(n2, t2 = void 0, e2 = 0) {
  if (0 === (t2 = t2 ?? (n2 > 0 ? 1 : -1))) return 0;
  if (n2 >= 0) return Gn(n2, t2);
  const r2 = e2 ? t2 : 0;
  return Gn(n2, t2) - r2;
}, CEILING_PRECISE: Xn, COMBIN: Yn, COMBINA: function(n2, t2) {
  return 0 !== n2 && 1 !== n2 || 0 !== t2 ? n2 < 0 || t2 < 0 ? Number.NaN : Yn(n2 + t2 - 1, n2 - 1) : 1;
}, DECIMAL: function(n2, t2) {
  return (t2 = Math.trunc(t2)) < 2 || t2 > 36 ? Number.NaN : parseInt(n2, t2);
}, DEGREES: function(n2) {
  return n2 * (180 / Math.PI);
}, EVEN: function(n2) {
  return Gn(n2, -2);
}, EXP: function(n2) {
  return Math.exp(n2);
}, FACT: kn, FACTDOUBLE: function(n2) {
  return (n2 = Math.trunc(n2)) < -1 ? Number.NaN : -1 === n2 ? 1 : Vn(n2);
}, FLOOR: qn, FLOOR_MATH: function(n2, t2 = void 0, e2 = 0) {
  return 0 === (t2 = t2 ?? (n2 > 0 ? 1 : -1)) ? 0 : 0 === e2 || n2 >= 0 ? qn(n2, Math.abs(t2)) : qn(n2, t2) + t2;
}, FLOOR_PRECISE: function(n2, t2 = 1) {
  return 0 === t2 ? 0 : qn(n2, Math.abs(t2));
}, GCD: function(...n2) {
  let t2, e2 = n2[0];
  if (e2 < 0 || e2 > 9007199254740990) return Number.NaN;
  e2 = Math.abs(Math.abs(Math.trunc(e2)));
  const r2 = n2.length;
  for (let o2 = 1; o2 < r2; o2++) {
    if (t2 = n2[o2], t2 < 0 || t2 > 9007199254740990) return Number.NaN;
    for (t2 = Math.abs(Math.trunc(t2)); e2 && t2; ) e2 > t2 ? e2 %= t2 : t2 %= e2;
    e2 += t2;
  }
  return e2;
}, INT: zn, ISO_CEILING: function(n2, t2 = void 0) {
  return Xn(n2, t2);
}, LCM: function(...n2) {
  let t2, e2, r2 = n2[0];
  if (r2 < 0 || r2 > 9007199254740990) return Number.NaN;
  r2 = Math.abs(Math.trunc(r2));
  const o2 = n2.length;
  for (let u2 = 1; u2 < o2; u2++) {
    const o3 = n2[u2];
    if (o3 < 0 || o3 > 9007199254740990) return Number.NaN;
    for (t2 = Math.abs(Math.trunc(o3)), e2 = r2; r2 && t2; ) r2 > t2 ? r2 %= t2 : t2 %= r2;
    r2 = Math.abs(e2 * o3) / (r2 + t2);
  }
  return r2;
}, LN: function(n2) {
  return Math.log(n2);
}, LOG: function(n2, t2 = 10) {
  return Math.log(n2) / Math.log(t2);
}, LOG10: function(n2) {
  return Math.log10(n2);
}, MDETERM: function(n2) {
  if (n2[0].length !== n2.length) throw t.BuiltIn.Value;
  const e2 = n2.length, r2 = n2[0].length;
  let o2, u2, a2 = 0;
  if (1 === e2) return n2[0][0];
  if (2 === e2) return n2[0][0] * n2[1][1] - n2[0][1] * n2[1][0];
  for (let t2 = 0; t2 < r2; t2++) {
    o2 = n2[0][t2], u2 = n2[0][t2];
    for (let a3 = 1; a3 < e2; a3++) u2 *= n2[a3][((t2 + a3) % r2 + r2) % r2], o2 *= n2[a3][((t2 - a3) % r2 + r2) % r2];
    a2 += u2 - o2;
  }
  return a2;
}, MINVERSE: function(n2) {
}, MMULT: function(n2, e2) {
  const r2 = n2.length, o2 = n2[0].length, u2 = e2.length, a2 = e2[0].length;
  if (o2 !== u2) throw t.BuiltIn.Value;
  const i2 = new Array(r2);
  for (let u3 = 0; u3 < r2; u3++) {
    i2[u3] = new Array(a2);
    for (let r3 = 0; r3 < a2; r3++) {
      i2[u3][r3] = 0;
      for (let a3 = 0; a3 < o2; a3++) {
        const o3 = n2[u3][a3], l2 = e2[a3][r3];
        if ("number" != typeof o3 || "number" != typeof l2) throw t.BuiltIn.Value;
        i2[u3][r3] += n2[u3][a3] * e2[a3][r3];
      }
    }
  }
  return i2;
}, MOD: function(n2, t2) {
  return 0 === t2 ? 1 / 0 : n2 - t2 * zn(n2 / t2);
}, MROUND: function(n2, t2) {
  return 0 === t2 ? 0 : n2 > 0 && t2 < 0 || n2 < 0 && t2 > 0 ? Number.NaN : n2 / t2 % 1 == 0 ? n2 : Math.round(n2 / t2) * t2;
}, MULTINOMIAL: function(...n2) {
  let t2 = 0, e2 = 1;
  for (let r2 = 0; r2 < n2.length; r2++) {
    const o2 = n2[r2];
    if (o2 < 0) return Number.NaN;
    t2 += o2, e2 *= Pn(o2);
  }
  return Pn(t2) / e2;
}, MUNIT: function(n2) {
  const t2 = [];
  for (let e2 = 0; e2 < n2; e2++) {
    const r2 = [];
    for (let t3 = 0; t3 < n2; t3++) e2 === t3 ? r2.push(1) : r2.push(0);
    t2.push(r2);
  }
  return t2;
}, ODD: function(n2) {
  if (0 === n2) return 1;
  let t2 = Math.ceil(Math.abs(n2));
  return t2 = 1 & t2 ? t2 : t2 + 1, n2 > 0 ? t2 : -t2;
}, PI: function() {
  return Math.PI;
}, POWER: function(n2, t2) {
  return n2 ** t2;
}, PRODUCT: function(...n2) {
  let t2 = 1;
  for (const e2 of n2) for (const n3 of e2.values()) t2 *= n3;
  return t2;
}, QUOTIENT: function(n2, t2) {
  return Math.trunc(n2 / t2);
}, RADIANS: function(n2) {
  return n2 / 180 * Math.PI;
}, RAND: function() {
  return e.markVolatile(), Math.random();
}, RANDARRAY: function(n2 = 1, r2 = 1, o2 = 0, u2 = 1, a2 = false) {
  if (0 === n2 || 0 === r2) throw t.BuiltIn.Calc;
  if (n2 < 0 || r2 < 0) throw t.BuiltIn.Value;
  const i2 = e.getEntireCoords();
  if (n2 + 1 > i2.rowEnd || r2 + 1 > i2.colEnd) throw t.BuiltIn.Value;
  if (o2 > u2) throw Number.NaN;
  const l2 = Math.floor(n2), s2 = Math.floor(r2), f2 = new Array(l2);
  for (let n3 = 0; n3 < l2; n3++) {
    const t2 = new Array(s2);
    for (let n4 = 0; n4 < s2; n4++) {
      let e2 = o2 + Math.random() * (u2 - o2);
      a2 && (e2 = Math.floor(e2), e2 > u2 && (e2 = u2)), t2[n4] = e2;
    }
    f2[n3] = t2;
  }
  return e.markVolatile(), f2;
}, RANDBETWEEN: function(n2, t2) {
  return e.markVolatile(), Math.floor(Math.random() * (t2 - n2 + 1) + n2);
}, ROMAN: function(n2, t2 = 0) {
  if (0 !== t2) throw Error("ROMAN: only allows form=0 (classic form).");
  const e2 = String(n2).split(""), r2 = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"];
  let o2 = "", u2 = 3;
  for (; u2--; ) o2 = (r2[+e2.pop() + 10 * u2] || "") + o2;
  return new Array(+e2.join("") + 1).join("M") + o2;
}, ROUND: function(n2, t2) {
  const e2 = Math.pow(10, Math.abs(t2)), r2 = n2 > 0 ? 1 : -1;
  return t2 > 0 ? r2 * Math.round(Math.abs(n2) * e2) / e2 : 0 === t2 ? r2 * Math.round(Math.abs(n2)) : r2 * Math.round(Math.abs(n2) / e2) * e2;
}, ROUNDDOWN: function(n2, t2) {
  const e2 = Math.pow(10, Math.abs(t2)), r2 = n2 > 0 ? 1 : -1;
  if (t2 > 0) {
    const t3 = 1 / e2 * 0.5;
    return r2 * Math.round((Math.abs(n2) - t3) * e2) / e2;
  }
  if (0 === t2) {
    const t3 = 0.5;
    return r2 * Math.round(Math.abs(n2) - t3);
  }
  {
    const t3 = 0.5 * e2;
    return r2 * Math.round((Math.abs(n2) - t3) / e2) * e2;
  }
}, ROUNDUP: function(n2, t2) {
  const e2 = Math.pow(10, Math.abs(t2)), r2 = n2 > 0 ? 1 : -1;
  if (t2 > 0) {
    const t3 = 1 / e2 * 0.5;
    return r2 * Math.round((Math.abs(n2) + t3) * e2) / e2;
  }
  if (0 === t2) {
    const t3 = 0.5;
    return r2 * Math.round(Math.abs(n2) + t3);
  }
  {
    const t3 = 0.5 * e2;
    return r2 * Math.round((Math.abs(n2) + t3) / e2) * e2;
  }
}, SEQUENCE: function(n2, r2 = 1, o2 = 1, u2 = 1) {
  if (0 === n2 || 0 === r2) throw t.BuiltIn.Calc;
  if (n2 < 0 || r2 < 0) throw t.BuiltIn.Value;
  const a2 = e.getEntireCoords();
  if (n2 + 1 > a2.rowEnd || r2 + 1 > a2.colEnd) throw t.BuiltIn.Value;
  const i2 = Math.floor(n2), l2 = Math.floor(r2);
  let s2 = o2;
  const f2 = new Array(i2);
  for (let n3 = 0; n3 < i2; n3++) {
    const t2 = new Array(l2);
    for (let n4 = 0; n4 < l2; n4++) t2[n4] = s2, s2 += u2;
    f2[n3] = t2;
  }
  return f2;
}, SERIESSUM: function(n2, e2, r2, ...o2) {
  let u2;
  for (let a2 = 0; a2 < o2.length; a2++) {
    const i2 = o2[a2];
    if ("number" != typeof i2) throw t.BuiltIn.Value;
    0 === a2 ? u2 = i2 * Math.pow(n2, e2) : u2 += i2 * Math.pow(n2, e2 + a2 * r2);
  }
  return u2;
}, SIGN: function(n2) {
  return n2 > 0 ? 1 : 0 === n2 ? 0 : -1;
}, SQRT: function(n2) {
  return Math.sqrt(n2);
}, SQRTPI: function(n2) {
  return n2 < 0 ? Number.NaN : Math.sqrt(n2 * Math.PI);
}, SUBTOTAL: function(n2, ...t2) {
}, SUM: function(...n2) {
  let t2 = 0;
  for (const e2 of n2) for (const n3 of e2.values()) t2 = Ln(t2 + n3);
  return t2;
}, SUMIF: function(n2, t2, e2) {
}, SUMIFS: function(n2, t2, e2) {
}, SUMPRODUCT: function(n2, ...e2) {
  e2.forEach((e3) => {
    if (n2[0].length !== e3[0].length || n2.length !== e3.length) throw t.BuiltIn.Value;
    for (let t2 = 0; t2 < n2.length; t2++) for (let r3 = 0; r3 < n2[0].length; r3++) "number" != typeof n2[t2][r3] && (n2[t2][r3] = 0), "number" != typeof e3[t2][r3] && (e3[t2][r3] = 0), n2[t2][r3] *= e3[t2][r3];
  });
  let r2 = 0;
  return n2.forEach((n3) => {
    n3.forEach((n4) => {
      r2 = Ln(r2 + n4);
    });
  }), r2;
}, SUMSQ: function(...n2) {
  let t2 = 0;
  for (const e2 of n2) for (const n3 of e2.values({ type: r.Number, includeBoolean: true })) t2 = Ln(t2 + n3 ** 2);
  return t2;
}, SUMX2MY2: function(n2, t2) {
  return Hn(n2, t2, (n3, t3) => n3 ** 2 - t3 ** 2);
}, SUMX2PY2: function(n2, t2) {
  return Hn(n2, t2, (n3, t3) => n3 ** 2 + t3 ** 2);
}, SUMXMY2: function(n2, t2) {
  return Hn(n2, t2, (n3, t3) => (n3 - t3) ** 2);
}, TRUNC: function(n2, t2 = 0) {
  return Math.trunc(n2);
} }, Symbol.toStringTag, { value: "Module" })), Wn = 2 ** 27 - 1, Kn = Object.freeze(Object.defineProperty({ __proto__: null, ACOS: function(n2) {
  return n2 > 1 || n2 < -1 ? Number.NaN : Math.acos(n2);
}, ACOSH: function(n2) {
  return n2 < 1 ? Number.NaN : Math.acosh(n2);
}, ACOT: function(n2) {
  return Math.PI / 2 - Math.atan(n2);
}, ACOTH: function(n2) {
  return Math.abs(n2) <= 1 ? Number.NaN : Math.atanh(1 / n2);
}, ASIN: function(n2) {
  return n2 > 1 || n2 < -1 ? Number.NaN : Math.asin(n2);
}, ASINH: function(n2) {
  return Math.asinh(n2);
}, ATAN: function(n2) {
  return Math.atan(n2);
}, ATAN2: function(n2, t2) {
  return 0 === t2 && 0 === n2 ? 1 / 0 : Math.atan2(t2, n2);
}, ATANH: function(n2) {
  return Math.abs(n2) > 1 ? Number.NaN : Math.atanh(n2);
}, COS: function(n2) {
  if (Math.abs(n2) > Wn) return Number.NaN;
  const t2 = Math.cos(n2);
  return isFinite(t2) ? t2 : Number.NaN;
}, COSH: function(n2) {
  const t2 = Math.cosh(n2);
  return isFinite(t2) ? t2 : Number.NaN;
}, COT: function(n2) {
  return Math.abs(n2) > Wn ? Number.NaN : 0 === n2 ? 1 / 0 : 1 / Math.tan(n2);
}, COTH: function(n2) {
  return 0 === n2 ? 1 / 0 : 1 / Math.tanh(n2);
}, CSC: function(n2) {
  return Math.abs(n2) > Wn ? Number.NaN : 1 / Math.sin(n2);
}, CSCH: function(n2) {
  return 0 === n2 ? 1 / 0 : 1 / Math.sinh(n2);
}, SEC: function(n2) {
  return Math.abs(n2) > Wn ? Number.NaN : 1 / Math.cos(n2);
}, SECH: function(n2) {
  return 1 / Math.cosh(n2);
}, SIN: function(n2) {
  return Math.abs(n2) > Wn ? Number.NaN : Math.sin(n2);
}, SINH: function(n2) {
  const t2 = Math.sinh(n2);
  return isFinite(t2) ? t2 : Number.NaN;
}, TAN: function(n2) {
  return Math.abs(n2) > Wn ? Number.NaN : Math.tan(n2);
}, TANH: function(n2) {
  return Math.tanh(n2);
} }, Symbol.toStringTag, { value: "Module" }));
function $n(n2, ...t2) {
  for (const e2 of t2) {
    const t3 = e2.isLiteral();
    for (const r2 of e2.values({ coerce: false, includeMistyped: true })) {
      const e3 = typeof r2;
      if ("number" !== e3) if ("string" !== e3) if ("boolean" !== e3) {
        if (r2.isFormulaError) throw r2;
      } else {
        if (t3) continue;
        n2(r2);
      }
      else n2(r2);
      else n2(r2);
    }
  }
}
function Qn(...n2) {
  let e2 = 0, r2 = 0;
  for (const t2 of n2) for (const n3 of t2.values()) e2 += n3, r2++;
  if (0 === r2) throw t.BuiltIn.Div0;
  return e2 / r2;
}
function Zn(...n2) {
  let t2 = 0, e2 = 0;
  for (const r2 of n2) {
    const n3 = r2.isLiteral();
    for (const o2 of r2.values({ coerce: false, includeMistyped: true })) {
      const r3 = typeof o2;
      if ("number" !== r3) if ("string" !== r3) if ("boolean" !== r3) {
        if (o2.isFormulaError) return o2;
      } else {
        if (n3) continue;
        t2 += o2 ? 1 : 0, e2++;
      }
      else e2++;
      else t2 += o2, e2++;
    }
  }
  return t2 / e2;
}
const Jn = Object.freeze(Object.defineProperty({ __proto__: null, AVEDEV: function(...n2) {
  let t2 = 0;
  const e2 = [];
  for (const r3 of n2) for (const n3 of r3.values()) t2 += n3, e2.push(n3);
  const r2 = e2.length, o2 = t2 / r2;
  t2 = 0;
  for (let n3 = 0; n3 < r2; n3++) t2 += Math.abs(e2[n3] - o2);
  return t2 / r2;
}, AVERAGE: Qn, AVERAGEA: Zn, AVERAGEIF: function(n2, t2, e2) {
}, AVERAGEIFS: function(n2, t2, ...e2) {
}, COUNT: function(...n2) {
  let t2 = 0;
  for (const e2 of n2) for (const n3 of e2.values()) t2++;
  return t2;
}, COUNTA: function(...n2) {
  let t2 = 0;
  for (const e2 of n2) {
    const n3 = e2.isLiteral();
    for (const r2 of e2.values({ coerce: false, includeMistyped: true })) {
      const e3 = typeof r2;
      if ("number" !== e3) if ("string" !== e3) if ("boolean" !== e3) {
        if (r2.isFormulaError) return r2;
      } else {
        if (n3) continue;
        t2++;
      }
      else t2++;
      else t2++;
    }
  }
  return t2;
}, COUNTBLANK: function(n2) {
  return n2.size;
}, COUNTIF: function(n2, t2) {
}, COUNTIFS: function(n2, t2) {
}, LARGE: function(n2, t2) {
  if ((t2 = Math.floor(t2)) < 1) return Number.NaN;
  const e2 = [];
  for (const t3 of n2.values()) e2.push(t3);
  return 0 === e2.length || t2 > e2.length ? Number.NaN : (e2.sort((n3, t3) => t3 - n3), e2[t2 - 1]);
}, MAX: function(...n2) {
  let t2 = Number.MIN_SAFE_INTEGER;
  for (const e2 of n2) for (const n3 of e2.values()) t2 = Math.max(t2, n3);
  return t2 === Number.MIN_SAFE_INTEGER ? 0 : t2;
}, MAXA: function(...n2) {
  let t2 = 0;
  return $n((n3) => {
    t2 = Math.min(t2, n3);
  }, ...n2), t2;
}, MAXIFS: function(n2, t2, ...e2) {
}, MEDIAN: function(...n2) {
  const t2 = [];
  for (const e3 of n2) for (const n3 of e3.values()) t2.push(n3);
  t2.sort((n3, t3) => n3 - t3);
  const e2 = t2.length;
  if (e2 % 2 == 0) {
    const n3 = e2 / 2;
    return (t2[n3 - 1] + t2[n3]) / 2;
  }
  return t2[Math.floor(e2 / 2)];
}, MIN: function(...n2) {
  let t2 = Number.MAX_SAFE_INTEGER;
  for (const e2 of n2) for (const n3 of e2.values()) t2 = Math.min(t2, n3);
  return t2 === Number.MAX_SAFE_INTEGER ? 0 : t2;
}, MINA: function(...n2) {
  let t2 = 0;
  return $n((n3) => {
    t2 = Math.min(t2, n3);
  }, ...n2), t2;
}, MINIFS: function(n2, t2, ...e2) {
}, PERMUT: function(n2, t2) {
}, PERMUTATIONA: function(n2, t2) {
}, SMALL: function(n2, t2) {
  if ((t2 = Math.floor(t2)) < 1) return Number.NaN;
  const e2 = [];
  for (const t3 of n2.values()) e2.push(t3);
  return 0 === e2.length || t2 > e2.length ? Number.NaN : (e2.sort((n3, t3) => n3 - t3), e2[t2 - 1]);
} }, Symbol.toStringTag, { value: "Module" }));
function nt(n2, e2 = null) {
  const r2 = n2.size, o2 = new Array(r2);
  let u2 = new Array(r2), a2 = 0;
  if (e2) {
    if (e2.size !== r2) throw t.BuiltIn.Ref;
    for (const n3 of e2.values({ includeEmpty: true })) {
      if ("number" != typeof n3) throw t.BuiltIn.Value;
      u2[a2++] = n3;
    }
  } else for (let n3 = 0; n3 < r2; n3++) u2[n3] = n3 + 1;
  a2 = 0;
  for (const e3 of n2.values()) {
    if ("number" != typeof e3) throw t.BuiltIn.Value;
    o2[a2++] = e3;
  }
  return [o2, u2];
}
function tt(n2, t2, e2, r2, o2 = 0, u2 = 1) {
  return t2 <= 0 || e2 <= 0 || n2 < o2 || n2 > u2 || o2 === u2 ? Number.NaN : (n2 = (n2 - o2) / (u2 - o2), r2 ? d.beta.cdf(n2, t2, e2) : d.beta.pdf(n2, t2, e2) / (u2 - o2));
}
function et(n2, t2, e2, r2 = 0, o2 = 1) {
  return t2 <= 0 || e2 <= 0 || n2 <= 0 || n2 > 1 ? Number.NaN : d.beta.inv(n2, t2, e2) * (o2 - r2) + r2;
}
function rt(n2, t2, e2, r2) {
  return t2 < 0 || e2 < 0 || e2 > 1 || n2 < 0 || n2 > t2 ? Number.NaN : r2 ? d.binomial.cdf(n2, t2, e2) : d.binomial.pdf(n2, t2, e2);
}
function ot(n2, t2, e2 = false) {
  return n2 < 0 || t2 < 1 || t2 > 10 ** 10 ? Number.NaN : e2 ? d.chisquare.cdf(n2, t2) : d.chisquare.pdf(n2, t2);
}
function ut(n2, t2) {
  return t2 = Math.trunc(t2), n2 < 0 || n2 > 1 || t2 < 1 || t2 > 10 ** 10 ? Number.NaN : d.chisquare.inv(n2, t2);
}
function at(n2, e2) {
  if (n2.length !== e2.length || n2[0].length !== e2[0].length || 1 === n2.length && 1 === n2[0].length) throw t.BuiltIn.NA;
  const r2 = n2.length, o2 = n2[0].length;
  let u2 = (r2 - 1) * (o2 - 1);
  u2 = 1 === r2 ? o2 - 1 : r2 - 1;
  let a2 = 0;
  for (let t2 = 0; t2 < r2; t2++) for (let r3 = 0; r3 < o2; r3++) if ("number" == typeof n2[t2][r3] && "number" == typeof e2[t2][r3]) {
    if (0 === e2[t2][r3]) return 1 / 0;
    a2 += Math.pow(n2[t2][r3] - e2[t2][r3], 2) / e2[t2][r3];
  }
  let i2 = Math.exp(-0.5 * a2);
  u2 % 2 == 1 && (i2 *= Math.sqrt(2 * a2 / Math.PI));
  let l2 = u2;
  for (; l2 >= 2; ) i2 = i2 * a2 / l2, l2 -= 2;
  let s2 = i2, f2 = u2;
  for (; s2 > 1e-15 * i2; ) f2 += 2, s2 = s2 * a2 / f2, i2 += s2;
  return 1 - i2;
}
function it(n2, e2) {
  if (n2.length !== e2.length) throw t.BuiltIn.NA;
  const r2 = [], o2 = [];
  for (let t2 = 0; t2 < n2.length; t2++) "number" == typeof n2[t2] && "number" == typeof e2[t2] && (r2.push(n2[t2]), o2.push(e2[t2]));
  const u2 = d.mean(r2), a2 = d.mean(o2);
  let i2 = 0;
  for (let n3 = 0; n3 < r2.length; n3++) i2 += (r2[n3] - u2) * (o2[n3] - a2);
  return i2 / r2.length;
}
function lt(n2, t2, e2) {
  return n2 < 0 || t2 <= 0 ? Number.NaN : e2 ? d.exponential.cdf(n2, t2) : d.exponential.pdf(n2, t2);
}
function st(n2, t2, e2, r2) {
  return n2 < 0 || t2 < 1 || e2 < 1 ? Number.NaN : (t2 = Math.trunc(t2), e2 = Math.trunc(e2), r2 ? d.centralF.cdf(n2, t2, e2) : d.centralF.pdf(n2, t2, e2));
}
function ft(n2, t2, e2) {
  return n2 < 0 || n2 > 1 || t2 < 1 || e2 < 1 ? Number.NaN : (t2 = Math.trunc(t2), e2 = Math.trunc(e2), d.centralF.inv(n2, t2, e2));
}
function ct(n2, t2) {
  const e2 = [], r2 = [];
  let o2 = 0, u2 = 0;
  for (let a3 = 0; a3 < Math.max(n2.length, t2.length); a3++) "number" == typeof n2[a3] && (e2.push(n2[a3]), o2 += n2[a3]), "number" == typeof t2[a3] && (r2.push(t2[a3]), u2 += t2[a3]);
  if (e2.length <= 1 || r2.length <= 1) return 1 / 0;
  o2 /= e2.length, u2 /= r2.length;
  let a2 = 0, i2 = 0;
  for (let n3 = 0; n3 < e2.length; n3++) a2 += (o2 - e2[n3]) ** 2;
  a2 /= e2.length - 1;
  for (let n3 = 0; n3 < r2.length; n3++) i2 += (u2 - r2[n3]) ** 2;
  return i2 /= r2.length - 1, 2 * d.centralF.cdf(a2 / i2, e2.length - 1, r2.length - 1);
}
function mt(n2, e2 = null, r2 = null) {
  const o2 = e2.length;
  if (r2.length !== o2) throw t.BuiltIn.NA;
  const u2 = [], a2 = [];
  let i2 = true;
  for (let n3 = 0; n3 < o2; n3++) "number" == typeof e2[n3] && "number" == typeof r2[n3] && (u2.push(e2[n3]), a2.push(r2[n3]), r2[n3] !== r2[0] && (i2 = false));
  if (i2) return 1 / 0;
  const l2 = d.mean(u2), s2 = d.mean(a2);
  let f2 = 0, c2 = 0;
  const m2 = u2.length;
  for (let n3 = 0; n3 < m2; n3++) f2 += (a2[n3] - s2) * (u2[n3] - l2), c2 += (a2[n3] - s2) ** 2;
  const p2 = f2 / c2;
  return l2 - p2 * s2 + p2 * n2;
}
function pt(n2, t2 = void 0) {
  let e2 = [];
  for (let r2 = 0; r2 < n2.length; r2++) {
    const o2 = n2[r2];
    for (let n3 = 0; n3 < o2.length; n3++) {
      let r3 = o2[n3];
      null == r3 && (r3 = t2), e2.push(r3);
    }
  }
  return e2;
}
function ht(n2, t2 = null, e2 = true, r2 = false) {
  const o2 = n2.size, [u2, a2] = nt(n2, t2), i2 = d.mean(u2), l2 = d.mean(a2);
  let s2 = 0, f2 = 0;
  for (let n3 = 0; n3 < o2; n3++) s2 += (a2[n3] - l2) * (u2[n3] - i2), f2 += Math.pow(a2[n3] - l2, 2);
  const c2 = s2 / f2;
  return [c2, i2 - c2 * l2];
}
function gt(n2, t2) {
  return t2 ? d.normal.cdf(n2, 0, 1) : d.normal.pdf(n2, 0, 1);
}
function dt(...n2) {
  const t2 = Nt(...n2);
  return Math.sqrt(t2);
}
function Nt(...n2) {
  let t2 = 0, e2 = 0;
  const o2 = Qn(...n2);
  for (const u2 of n2) for (const n3 of u2.values({ type: r.Number, includeMistyped: true })) "number" == typeof n3 && (t2 += Math.pow(n3 - o2, 2)), e2++;
  return t2 / (e2 - 1);
}
const bt = Object.freeze(Object.defineProperty({ __proto__: null, BETADIST: function(n2, t2, e2, r2, o2 = 0, u2 = 1) {
  return tt(n2, t2, e2, true, o2, u2);
}, BETAINV: function(n2, t2, e2, r2 = 0, o2 = 1) {
  return et(n2, t2, e2, r2, o2);
}, BETA_DIST: tt, BETA_INV: et, BINOMDIST: function(n2, t2, e2, r2) {
  return rt(n2, t2, e2, r2);
}, BINOM_DIST: rt, BINOM_DIST_RANGE: function(n2, t2, e2, r2 = e2) {
  if (n2 < 0 || t2 < 0 || t2 > 1 || e2 < 0 || e2 > n2 || r2 < e2 || r2 > n2) return Number.NaN;
  let o2 = 0;
  for (let u2 = e2; u2 <= r2; u2++) o2 += Yn(n2, u2) * Math.pow(t2, u2) * Math.pow(1 - t2, n2 - u2);
  return o2;
}, BINOM_INV: function(n2, t2, e2) {
  if (n2 < 0 || t2 < 0 || t2 > 1 || e2 < 0 || e2 > 1) return Number.NaN;
  let r2 = 0;
  for (; r2 <= n2; ) {
    if (d.binomial.cdf(r2, n2, t2) >= e2) return r2;
    r2++;
  }
}, CHIDIST: function(n2, t2) {
  return ot(n2, t2);
}, CHIINV: function(n2, t2) {
  return ut(n2, t2);
}, CHISQ_DIST: ot, CHISQ_DIST_RT: function(n2, t2) {
  return t2 = Math.trunc(t2), n2 < 0 || t2 < 1 || t2 > 10 ** 10 ? Number.NaN : 1 - d.chisquare.cdf(n2, t2);
}, CHISQ_INV: ut, CHISQ_INV_RT: function(n2, t2) {
  return t2 = Math.trunc(t2), n2 < 0 || n2 > 1 || t2 < 1 || t2 > 10 ** 10 ? Number.NaN : d.chisquare.inv(1 - n2, t2);
}, CHISQ_TEST: at, CHITEST: function(n2, t2) {
  return at(n2, t2);
}, CONFIDENCE: function(n2, t2, e2, r2) {
  return r2 = Math.trunc(r2), n2 <= 0 || n2 >= 1 || t2 <= 0 || r2 < 1 ? Number.NaN : d.normalci(e2, n2, t2, r2)[1] - 1;
}, CONFIDENCE_NORM: function(n2, t2, e2) {
  return e2 = Math.trunc(e2), n2 <= 0 || n2 >= 1 || t2 <= 0 || e2 < 1 ? Number.NaN : d.normalci(1, n2, t2, e2)[1] - 1;
}, CONFIDENCE_T: function(n2, t2, e2) {
  return e2 = Math.trunc(e2), n2 <= 0 || n2 >= 1 || t2 <= 0 || e2 < 1 ? Number.NaN : d.tci(1, n2, t2, e2)[1] - 1;
}, CORREL: function(n2, e2) {
  if (n2.length !== e2.length) throw t.BuiltIn.NA;
  const r2 = [], o2 = [];
  for (let t2 = 0; t2 < n2.length; t2++) "number" == typeof n2[t2] && "number" == typeof e2[t2] && (r2.push(n2[t2]), o2.push(e2[t2]));
  return r2.length <= 1 ? 1 / 0 : d.corrcoeff(r2, o2);
}, COVARIANCE: function(n2, t2) {
  return it(n2, t2);
}, COVARIANCE_P: it, COVARIANCE_S: function(n2, e2) {
  if (n2.length !== e2.length) throw t.BuiltIn.NA;
  const r2 = [], o2 = [];
  for (let t2 = 0; t2 < n2.length; t2++) "number" == typeof n2[t2] && "number" == typeof e2[t2] && (r2.push(n2[t2]), o2.push(e2[t2]));
  return r2.length <= 1 ? 1 / 0 : d.covariance(r2, o2);
}, CRITBINOM: function(n2, t2, e2) {
}, DEVSQ: function(...n2) {
  let t2 = 0, e2 = [];
  for (const r3 of n2) for (const n3 of r3.values()) t2 += n3, e2.push(n3);
  const r2 = e2.length, o2 = t2 / r2;
  t2 = 0;
  for (let n3 = 0; n3 < r2; n3++) t2 += (e2[n3] - o2) ** 2;
  return t2;
}, EXPONDIST: function(n2, t2, e2) {
  return lt(n2, t2, e2);
}, EXPON_DIST: lt, FDIST: function(n2, t2, e2) {
  return st(n2, t2, e2, true);
}, FINV: function(n2, t2, e2) {
  return ft(n2, t2, e2);
}, FISHER: function(n2) {
  return n2 <= -1 || n2 >= 1 ? Number.NaN : Math.log((1 + n2) / (1 - n2)) / 2;
}, FISHERINV: function(n2) {
  const t2 = Math.exp(2 * n2);
  return (t2 - 1) / (t2 + 1);
}, FORECAST: mt, FORECAST_ETS: function(n2, t2, e2, r2 = 0.95, o2 = 1, u2 = 1) {
}, FORECAST_ETS_CONFINT: function(n2, t2, e2, r2 = 0.95, o2 = 0.95, u2 = 1, a2 = 1) {
}, FORECAST_ETS_SEASONALITY: function(n2, t2, e2 = 1, r2 = 1) {
}, FORECAST_ETS_STAT: function(n2, t2, e2, r2 = 1, o2 = 1, u2 = 1) {
}, FORECAST_LINEAR: function(n2, t2, e2 = null) {
  return mt(n2, t2, e2);
}, FREQUENCY: function(n2, t2) {
  let e2 = pt(n2), r2 = pt(t2);
  const o2 = [];
  for (let n3 = 0; n3 < r2.length; n3++) "number" == typeof r2[n3] && o2.push(r2[n3]);
  o2.sort(), o2.push(1 / 0);
  const u2 = [];
  for (let n3 = 0; n3 < o2.length; n3++) {
    u2[n3] = [], u2[n3][0] = 0;
    for (let t3 = 0; t3 < e2.length; t3++) "number" == typeof e2[t3] && e2[t3] <= o2[n3] && (u2[n3][0]++, e2[t3] = null);
  }
  return u2;
}, FTEST: function(n2, t2) {
  return ct(n2, t2);
}, F_DIST: st, F_DIST_RT: function(n2, t2, e2) {
  return n2 < 0 || t2 < 1 || e2 < 1 ? Number.NaN : (t2 = Math.trunc(t2), e2 = Math.trunc(e2), 1 - d.centralF.cdf(n2, t2, e2));
}, F_INV: ft, F_INV_RT: function(n2, t2, e2) {
  return n2 < 0 || n2 > 1 || t2 < 1 || t2 >= Math.pow(10, 10) || e2 < 1 || e2 >= Math.pow(10, 10) ? Number.NaN : (t2 = Math.trunc(t2), e2 = Math.trunc(e2), d.centralF.inv(1 - n2, t2, e2));
}, F_TEST: ct, GAMMA: function(n2) {
  return 0 === n2 || n2 < 0 && n2 === Math.trunc(n2) ? Number.NaN : d.gammafn(n2);
}, GAMMALN: function(n2) {
  return n2 <= 0 ? Number.NaN : d.gammaln(n2);
}, GAMMALN_PRECISE: function(n2) {
  return n2 <= 0 ? Number.NaN : d.gammaln(n2);
}, GAMMA_DIST: function(n2, t2, e2, r2 = false) {
  return n2 < 0 || t2 <= 0 || e2 <= 0 ? Number.NaN : r2 ? d.gamma.cdf(n2, t2, e2, true) : d.gamma.pdf(n2, t2, e2, false);
}, GAMMA_INV: function(n2, t2, e2) {
  return n2 < 0 || n2 > 1 || t2 <= 0 || e2 <= 0 ? Number.NaN : d.gamma.inv(n2, t2, e2);
}, GAUSS: function(n2) {
  return d.normal.cdf(n2, 0, 1) - 0.5;
}, GEOMEAN: function(...n2) {
  const t2 = [];
  for (const e2 of n2) for (const n3 of e2.values()) t2.push(n3);
  return d.geomean(t2);
}, GROWTH: function(n2, e2 = null, r2 = null, o2 = true) {
  const u2 = n2.length;
  for (let e3 = 0; e3 < u2; e3++) if ("number" != typeof n2[e3]) throw t.BuiltIn.Value;
  const a2 = null === e2;
  if (null === e2) {
    e2 = [];
    for (let n3 = 1; n3 <= u2; n3++) e2.push(n3);
  } else {
    const n3 = e2.length;
    if (n3 !== u2) throw t.BuiltIn.Ref;
    for (let r3 = 0; r3 < n3; r3++) if ("number" != typeof e2[r3]) throw t.BuiltIn.Value;
  }
  if (null === r2 && a2) {
    r2 = [];
    for (let n3 = 1; n3 <= u2; n3++) r2.push(n3);
    r2 = [r2];
  } else null === r2 && (r2 = Array.isArray(e2[0]) ? e2 : [e2]);
  let i2, l2, s2 = 0, f2 = 0, c2 = 0, m2 = 0;
  for (let t2 = 0; t2 < u2; t2++) {
    const r3 = e2[t2], o3 = Math.log(n2[t2]);
    s2 += r3, f2 += o3, c2 += r3 * o3, m2 += r3 * r3;
  }
  s2 /= u2, f2 /= u2, c2 /= u2, m2 /= u2, o2 ? (i2 = (c2 - s2 * f2) / (m2 - s2 * s2), l2 = f2 - i2 * s2) : (i2 = c2 / m2, l2 = 0);
  const p2 = [], h2 = r2.length;
  for (let n3 = 0; n3 < h2; n3++) {
    p2[n3] = [];
    for (let e3 = 0; e3 < r2[0].length; e3++) {
      if ("number" != typeof r2[n3][e3]) throw t.BuiltIn.Value;
      p2[n3][e3] = Math.exp(l2 + i2 * r2[n3][e3]);
    }
  }
  return p2;
}, HARMEAN: function(...n2) {
  let t2 = 0, e2 = 0;
  for (const r2 of n2) for (const n3 of r2.values()) e2 += 1 / n3, t2++;
  return t2 / e2;
}, HYPGEOM_DIST: function(n2, t2, e2, r2, o2) {
  if (n2 = Math.trunc(n2), t2 = Math.trunc(t2), e2 = Math.trunc(e2), (r2 = Math.trunc(r2)) <= 0 || n2 < 0 || t2 <= 0 || e2 <= 0) return Number.NaN;
  if (t2 > r2) return Number.NaN;
  if (e2 > r2) return Number.NaN;
  if (t2 < n2 || e2 < n2) return Number.NaN;
  if (n2 < t2 - r2 + e2) return Number.NaN;
  function u2(n3, t3, e3, r3) {
    return Yn(e3, n3) * Yn(r3 - e3, t3 - n3) / Yn(r3, t3);
  }
  return o2 ? function(n3, t3, e3, r3) {
    let o3 = 0;
    for (let a2 = 0; a2 <= n3; a2++) o3 += u2(a2, t3, e3, r3);
    return o3;
  }(n2, t2, e2, r2) : u2(n2, t2, e2, r2);
}, INTERCEPT: function(n2, e2) {
  if (e2.length !== n2.length) throw t.BuiltIn.NA;
  const r2 = [], o2 = [];
  for (let t2 = 0; t2 < n2.length; t2++) "number" == typeof n2[t2] && "number" == typeof e2[t2] && (r2.push(n2[t2]), o2.push(e2[t2]));
  if (r2.length <= 1) return 1 / 0;
  const u2 = d.mean(r2), a2 = d.mean(o2);
  let i2 = 0, l2 = 0;
  for (let n3 = 0; n3 < r2.length; n3++) i2 += (o2[n3] - a2) * (r2[n3] - u2), l2 += (o2[n3] - a2) ** 2;
  return u2 - i2 / l2 * a2;
}, KURT: function(...n2) {
  let t2 = 0;
  const e2 = [];
  for (const r3 of n2) for (const n3 of r3.values()) t2 += n3, e2.push(n3);
  const r2 = e2.length;
  t2 /= r2;
  let o2 = 0;
  for (let n3 = 0; n3 < r2; n3++) o2 += Math.pow(e2[n3] - t2, 4);
  return o2 /= Math.pow(d.stdev(e2, true), 4), r2 * (r2 + 1) / ((r2 - 1) * (r2 - 2) * (r2 - 3)) * o2 - 3 * (r2 - 1) * (r2 - 1) / ((r2 - 2) * (r2 - 3));
}, LINEST: ht, LOGEST: function(n2, t2 = null, e2 = true, r2 = false) {
}, LOGNORM_DIST: function(n2, t2, e2, r2) {
  return n2 <= 0 || e2 <= 0 ? Number.NaN : r2 ? d.lognormal.cdf(n2, t2, e2) : d.lognormal.pdf(n2, t2, e2);
}, LOGNORM_INV: function(n2, t2, e2) {
  return n2 <= 0 || n2 >= 1 || e2 <= 0 ? Number.NaN : d.lognormal.inv(n2, t2, e2);
}, MODE_MULT: function(...n2) {
}, MODE_SNGL: function(...n2) {
}, NEGBINOM_DIST: function(n2, t2, e2, r2) {
  return n2 = Math.trunc(n2), t2 = Math.trunc(t2), e2 < 0 || e2 > 1 || n2 < 0 || t2 < 1 ? Number.NaN : r2 ? d.negbin.cdf(n2, t2, e2) : d.negbin.pdf(n2, t2, e2);
}, NORM_DIST: function(n2, t2, e2, r2) {
  return e2 <= 0 ? Number.NaN : r2 ? d.normal.cdf(n2, t2, e2) : d.normal.pdf(n2, t2, e2);
}, NORM_INV: function(n2, t2, e2) {
  return n2 <= 0 || n2 >= 1 || e2 <= 0 ? Number.NaN : d.normal.inv(n2, t2, e2);
}, NORM_S_DIST: gt, NORM_S_INV: function(n2) {
  return n2 <= 0 || n2 >= 1 ? Number.NaN : d.normal.inv(n2, 0, 1);
}, PEARSON: function(n2, t2) {
  const e2 = n2.size, [r2, o2] = nt(n2, t2), u2 = d.mean(r2), a2 = d.mean(o2);
  let i2 = 0, l2 = 0, s2 = 0;
  for (let n3 = 0; n3 < e2; n3++) i2 += (r2[n3] - u2) * (o2[n3] - a2), l2 += Math.pow(r2[n3] - u2, 2), s2 += Math.pow(o2[n3] - a2, 2);
  return i2 / Math.sqrt(l2 * s2);
}, PERCENTILE_EXC: function(n2, t2) {
}, PERCENTILE_INC: function(n2, t2) {
}, PERCENTRANK_EXC: function(n2, t2, e2 = 3) {
}, PERCENTRANK_INC: function(n2, t2, e2 = 3) {
}, PHI: function(n2) {
  return Math.exp(-0.5 * n2 * n2) / 2.5066282746310002;
}, POISSON_DIST: function(n2, t2, e2) {
  return n2 < 0 || t2 < 0 ? Number.NaN : (n2 = Math.trunc(n2), e2 ? d.poisson.cdf(n2, t2) : d.poisson.pdf(n2, t2));
}, PROB: function(n2, t2, e2, r2) {
}, QUARTILE_EXC: function(n2, t2) {
}, QUARTILE_INC: function(n2, t2) {
}, RANK_AVG: function(n2, t2, e2 = 0) {
}, RANK_EQ: function(n2, t2, e2 = 0) {
}, RSQ: function(n2, t2) {
}, SKEW: function(...n2) {
}, SKEW_P: function(...n2) {
}, SLOPE: function(n2, t2) {
  return ht(n2, t2)[0];
}, STANDARDIZE: function(n2, t2, e2) {
  return e2 <= 0 ? Number.NaN : (n2 - t2) / e2;
}, STDEVA: function(...n2) {
}, STDEVPA: function(...n2) {
}, STDEV_P: function(...n2) {
}, STDEV_S: dt, STEYX: function(n2, t2) {
}, TREND: function(n2, t2 = null, e2 = null, r2 = true) {
}, TRIMMEAN: function(n2, t2) {
}, T_DIST: function(n2, t2, e2) {
  return t2 < 1 ? Number.NaN : e2 ? d.studentt.cdf(n2, t2) : d.studentt.pdf(n2, t2);
}, T_DIST_2T: function(n2, t2) {
  return t2 < 1 || n2 < 0 ? Number.NaN : 2 * (1 - d.studentt.cdf(n2, t2));
}, T_DIST_RT: function(n2, t2) {
  return t2 < 1 ? Number.NaN : 1 - d.studentt.cdf(n2, t2);
}, T_INV: function(n2, t2) {
  return n2 <= 0 || n2 > 1 || t2 < 1 ? Number.NaN : (t2 = t2 % 1 == 0 ? t2 : Math.trunc(t2), d.studentt.inv(n2, t2));
}, T_INV_2T: function(n2, t2) {
  return n2 <= 0 || n2 > 1 || t2 < 1 ? Number.NaN : (t2 = t2 % 1 == 0 ? t2 : Math.trunc(t2), Math.abs(d.studentt.inv(n2 / 2, t2)));
}, T_TEST: function(n2, t2, e2, r2) {
}, VARA: function(...n2) {
  let t2 = 0, e2 = 0;
  const r2 = Zn(...n2);
  for (const o2 of n2) for (const n3 of o2.values()) t2 += "number" == typeof n3 ? Math.pow(n3 - r2, 2) : true === n3 ? Math.pow(1 - r2, 2) : Math.pow(0 - r2, 2), e2++;
  return t2 / (e2 - 1);
}, VARPA: function(...n2) {
  const t2 = Zn(...n2);
  let e2 = 0, r2 = 0;
  for (const o2 of n2) for (const n3 of o2.values()) r2++, e2 += "number" == typeof n3 ? Math.pow(n3 - t2, 2) : true === n3 ? Math.pow(1 - t2, 2) : Math.pow(0 - t2, 2);
  return e2 / r2;
}, VAR_P: function(...n2) {
  let e2 = 0, r2 = 0;
  const o2 = Qn(...n2);
  for (const t2 of n2) for (const n3 of t2.values()) e2 += Math.pow(n3 - o2, 2), r2++;
  const u2 = e2 / r2;
  return isNaN(u2) ? t.BuiltIn.Num : u2;
}, VAR_S: Nt, WEIBULL_DIST: function(n2, t2, e2, r2) {
  return n2 < 0 || t2 <= 0 || e2 <= 0 ? Number.NaN : r2 ? 1 - Math.exp(-Math.pow(n2 / e2, t2)) : Math.pow(n2, t2 - 1) * Math.exp(-Math.pow(n2 / e2, t2)) * t2 / Math.pow(e2, t2);
}, Z_TEST: function(n2, t2, e2 = 0) {
  e2 = e2 || dt(n2);
  const r2 = n2.size;
  return 1 - gt((Qn(n2) - t2) / (e2 / Math.sqrt(r2)), true);
} }, Symbol.toStringTag, { value: "Module" }));
globalThis.debugEventTarget ??= new EventTarget();
const Et = globalThis.debugEventTarget, It = /* @__PURE__ */ new Map();
const Tt = Object.freeze(Object.defineProperty({ __proto__: null, DELAY: async function(n2, t2, e2 = "No label") {
  return new Promise((e3) => {
    setTimeout(() => {
      e3(t2);
    }, n2);
  });
}, WAIT: async function(n2, t2) {
  const e2 = await function(n3) {
    const { inbox: t3, waiters: e3 } = function(n4) {
      if (It.has(n4)) return It.get(n4);
      const t4 = { inbox: [], waiters: [] };
      return Et.addEventListener(n4, (n5) => {
        t4.waiters.length ? t4.waiters.shift()(n5.detail) : t4.inbox.push(n5.detail);
      }), It.set(n4, t4), t4;
    }(n3);
    return t3.length ? Promise.resolve(t3.shift()) : new Promise((n4) => e3.push(n4));
  }(n2);
  let r2 = t2?.getValueAt(0, 0) ?? "", o2 = `event["${n2}"`;
  return void 0 !== e2 && (o2 += `, payload: ${e2}`), "" !== r2 && (o2 += `, input: ${r2}`), o2 += "]", console.log(o2), "" + e2 + r2;
} }, Symbol.toStringTag, { value: "Module" })), Mt = Object.freeze(Object.defineProperty({ __proto__: null, BAHTTEXT: function(n2) {
  try {
    return E.bahttext(n2);
  } catch (n3) {
    throw Error(`Error in https://github.com/jojoee/bahttext 
${n3.toString()}`);
  }
} }, Symbol.toStringTag, { value: "Module" })), St = { latin: { halfRE: /[!-~]/g, fullRE: /[!-~]/g, delta: 65248 }, hangul1: { halfRE: /[ᄀ-ᄒ]/g, fullRE: /[ᆨ-ᇂ]/g, delta: -60921 }, hangul2: { halfRE: /[ᅡ-ᅵ]/g, fullRE: /[ᅡ-ᅵ]/g, delta: -61025 }, kana: { delta: 0, half: "。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚", full: "。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜" }, extras: { delta: 0, half: "¢£¬¯¦¥₩ |←↑→↓■°", full: "¢£¬ ̄¦¥₩ │←↑→↓■○" } }, At = (n2, t2) => n2[t2 + "RE"] || new RegExp("[" + n2[t2] + "]", "g"), vt = Object.keys(St).map((n2) => St[n2]);
function Rt(n2) {
  if (0 === n2.length) throw t.BuiltIn.Value;
  return n2.charCodeAt(0);
}
function yt(n2, e2, r2 = 1) {
  if (r2 < 1 || r2 > e2.length) throw t.BuiltIn.Value;
  const o2 = e2.indexOf(n2, r2 - 1);
  if (-1 === o2) throw t.BuiltIn.Value;
  return o2 + 1;
}
function wt(n2, e2 = 1) {
  if (e2 < 0) throw t.BuiltIn.Value;
  return e2 > n2.length ? n2 : n2.slice(0, e2);
}
function Ct(n2, e2, r2) {
  if (e2 > n2.length) return "";
  if (e2 < 1 || r2 < 1) throw t.BuiltIn.Value;
  return n2.slice(e2 - 1, e2 + r2 - 1);
}
function Ot(n2, t2, e2, r2) {
  let o2 = n2.split("");
  return o2.splice(t2 - 1, e2, r2), o2.join("");
}
function Dt(n2, e2 = 1) {
  if (e2 < 0) throw t.BuiltIn.Value;
  const r2 = n2.length;
  return e2 > r2 ? n2 : n2.slice(r2 - e2);
}
function xt(n2, e2, r2 = 1) {
  if (r2 < 1 || r2 > e2.length) throw t.BuiltIn.Value;
  let o2 = On(n2) ? Dn(n2, "i") : n2;
  const u2 = e2.slice(r2 - 1).search(o2);
  if (-1 === u2) throw t.BuiltIn.Value;
  return u2 + r2;
}
function _t(n2, e2 = 0) {
  if (0 !== (e2 = Math.floor(e2)) && 1 !== e2) throw t.BuiltIn.Value;
  return null !== n2 ? "string" == typeof n2 ? 1 === e2 ? '"' + n2 + '"' : n2 : "boolean" == typeof n2 ? n2 ? "TRUE" : "FALSE" : n2.toString() : "";
}
const Bt = Object.freeze(Object.defineProperty({ __proto__: null, ARRAYTOTEXT: function(n2, e2 = 0) {
  if (0 !== (e2 = Math.floor(e2)) && 1 !== e2) throw t.BuiltIn.Value;
  const r2 = 1 === e2;
  let u2 = null;
  if (!r2) {
    for (const t2 of n2.values({ orientation: o.Orientation.Row })) u2 = null === u2 ? "" : u2 + ", ", u2 += _t(t2, e2);
    return u2;
  }
  const a2 = n2.getValues();
  u2 = "{";
  for (let n3 = 0; n3 < a2.length; n3++) {
    const t2 = a2[n3];
    for (let n4 = 0; n4 < t2.length; n4++) u2 += _t(t2[n4], e2), n4 < t2.length - 1 && (u2 += ",");
    n3 < a2.length - 1 && (u2 += ";");
  }
  return r2 && (u2 += "}"), u2;
}, ASC: function(n2) {
  return ((n3) => vt.reduce((n4, t2) => n4.replace(At(t2, "full"), /* @__PURE__ */ ((n5) => (t3) => n5.delta ? String.fromCharCode(t3.charCodeAt(0) - n5.delta) : [...n5.half][[...n5.full].indexOf(t3)])(t2)), n3))(n2);
}, CHAR: function(n2) {
  if (n2 > 255 || n2 < 1) throw t.BuiltIn.Value;
  return String.fromCharCode(n2);
}, CLEAN: function(n2) {
  return n2.replace(/[\x00-\x1F]/g, "");
}, CODE: Rt, CONCAT: function(...n2) {
  let e2 = "", u2 = 0;
  for (const a2 of n2) for (const n3 of a2.values({ type: r.String, coerce: true, orientation: o.Orientation.Row })) {
    if (u2++ > 254) throw t.Value;
    e2 += n3;
  }
  return e2;
}, CONCATENATE: function(...n2) {
  let e2 = "", o2 = 0;
  for (const u2 of n2) {
    const n3 = u2.getValueAt(0, 0, { type: r.String, coerce: true });
    if (o2++ > 254) throw t.Value;
    e2 += n3;
  }
  return e2;
}, DBCS: function(n2) {
  return ((n3) => vt.reduce((n4, t2) => n4.replace(At(t2, "half"), /* @__PURE__ */ ((n5) => (t3) => n5.delta ? String.fromCharCode(t3.charCodeAt(0) + n5.delta) : [...n5.full][[...n5.half].indexOf(t3)])(t2)), n3))(n2);
}, DETECTLANGUAGE: function(n2) {
}, DOLLAR: function(n2, t2 = 2) {
  const r2 = Array(t2).fill("0").join(""), o2 = e.getRuntime(), u2 = o2.getCurrencySymbol(), a2 = o2.getNumberGroupSeparator(), i2 = o2.getNumberDecimalSeparator(), l2 = `${u2}#${a2}##0${i2}${r2}_);(${u2}#${a2}##0${i2}${r2})`;
  return e.getNumberFormat(l2, n2).trim();
}, EXACT: function(n2, t2) {
  return n2 === t2;
}, FIND: yt, FINDB: function(n2, t2, e2 = 1) {
  return yt(n2, t2, e2);
}, FIXED: function(n2, t2 = 2, r2 = false) {
  const o2 = Array(t2).fill("0").join(""), u2 = e.getRuntime(), a2 = u2.getNumberGroupSeparator(), i2 = u2.getNumberDecimalSeparator(), l2 = r2 ? "" : `#${a2}`, s2 = `${l2}##0${i2}${o2}_);(${l2}##0${i2}${o2})`;
  return e.getNumberFormat(s2, n2).trim();
}, LEFT: wt, LEFTB: function(n2, t2 = 1) {
  return wt(n2, t2);
}, LEN: function(n2) {
  return n2.length;
}, LENB: function(n2) {
  return n2.length;
}, LOWER: function(n2) {
  return n2.toLowerCase();
}, MID: Ct, MIDB: function(n2, t2, e2) {
  return Ct(n2, t2, e2);
}, NUMBERVALUE: function(n2, e2 = ".", r2 = ",") {
  if (0 === n2.length) return 0;
  if (0 === e2.length || 0 === r2.length) throw t.BuiltIn.Value;
  if ((e2 = e2[0]) === (r2 = r2[0]) || n2.indexOf(e2) < n2.lastIndexOf(r2)) throw t.BuiltIn.Value;
  const o2 = n2.replace(r2, "").replace(e2, ".").replace(/[^\-0-9.%()]/g, "").match(/([(-]*)([0-9]*[.]*[0-9]+)([)]?)([%]*)/);
  if (!o2) throw t.BuiltIn.Value;
  const u2 = o2[1].length, a2 = o2[3].length, i2 = o2[4].length;
  let l2 = Number(o2[2]);
  if (u2 > 1 || u2 && !a2 || !u2 && a2 || isNaN(l2)) throw t.BuiltIn.Value;
  return l2 /= 100 ** i2, u2 ? -l2 : l2;
}, PERCENTOF: function(n2, t2) {
}, PHONETIC: function(n2) {
}, PROPER: function(n2) {
  return (n2 = (n2 = n2.toLowerCase()).charAt(0).toUpperCase() + n2.slice(1)).replace(/(?:[^a-zA-Z])([a-zA-Z])/g, (n3) => n3.toUpperCase());
}, REGEXEXTRACT: function(n2, t2, e2 = 0, r2 = false) {
}, REGEXREPLACE: function(n2, t2, e2, r2 = 0, o2 = false) {
}, REGEXTEST: function(n2, t2, e2 = false) {
}, REPLACE: Ot, REPLACEB: function(n2, t2, e2, r2) {
  return Ot(n2, t2, e2, r2);
}, REPT: function(n2, t2) {
  let e2 = "";
  for (let r2 = 0; r2 < t2; r2++) e2 += n2;
  return e2;
}, RIGHT: Dt, RIGHTB: function(n2, t2 = 1) {
  return Dt(n2, t2);
}, SEARCH: xt, SEARCHB: function(n2, t2, e2 = 1) {
  return xt(n2, t2, e2);
}, SUBSTITUTE: function(n2, e2, r2, o2) {
  if (!n2 || !e2) return n2;
  if (void 0 === o2) o2 = -1;
  else if ((o2 = Math.floor(o2)) <= 0) throw new t.Value();
  let u2 = n2, a2 = 0, i2 = 0;
  for (; -1 !== (a2 = u2.indexOf(e2, a2)); ) ++i2, i2 !== o2 && -1 !== o2 || (u2 = u2.substring(0, a2) + r2 + u2.substring(a2 + e2.length)), a2 += e2.length;
  return u2;
}, T: function(n2) {
  return "string" == typeof n2 ? n2 : "";
}, TEXT: function(n2, r2) {
  try {
    return e.getNumberFormat(r2, n2);
  } catch (n3) {
    throw t.BuiltIn.Value;
  }
}, TEXTAFTER: function(n2, e2, r2 = 1, o2 = 0, u2 = 0, a2 = void 0) {
  if (!n2 || !e2) return t.BuiltIn.Value;
  if ((r2 = Math.floor(r2)) <= 0) throw t.BuiltIn.Value;
  let i2 = n2, l2 = e2;
  1 === o2 && (i2 = n2.toLowerCase(), l2 = e2.toLowerCase());
  let s2 = -1, f2 = 0;
  for (; f2 < r2; ) {
    if (s2 = i2.indexOf(l2, s2 + 1), -1 === s2) return a2 ?? t.BuiltIn.NA;
    f2++;
  }
  const c2 = n2.substring(s2 + e2.length);
  return 1 === u2 && 0 === c2.length ? "" : c2;
}, TEXTBEFORE: function(n2, e2, r2 = 1, o2 = 0, u2 = 0, a2 = void 0) {
  if (!n2 || !e2) return t.BuiltIn.Value;
  if ((r2 = Math.floor(r2)) <= 0) throw t.BuiltIn.Value;
  let i2 = n2, l2 = e2;
  1 === o2 && (i2 = n2.toLowerCase(), l2 = e2.toLowerCase());
  let s2 = -1, f2 = 0;
  for (; f2 < r2; ) {
    if (s2 = i2.indexOf(l2, s2 + 1), -1 === s2) return a2 ?? t.BuiltIn.NA;
    f2++;
  }
  const c2 = n2.substring(0, s2);
  return 1 === u2 && 0 === c2.length ? "" : c2;
}, TEXTJOIN: function(n2, t2, ...e2) {
  let u2 = "";
  for (const a2 of e2) for (const e3 of a2.values({ type: r.String, coerce: true, orientation: o.Orientation.Row, includeEmpty: !t2 })) 0 === e3.length && t2 || (u2.length > 0 && (u2 += n2), u2 += e3);
  return u2;
}, TEXTSPLIT: function(n2, e2, r2 = null, o2 = false, u2 = 0, a2 = void 0) {
  if (!n2) return [[""]];
  if (0 !== u2 && 1 !== u2) throw t.BuiltIn.Value;
  const i2 = (n3, t2, e3) => {
    if (0 === t2.length) return [n3];
    const r3 = new RegExp(t2.map((n4) => n4.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|"), e3 ? "gi" : "g");
    return n3.split(r3);
  };
  let l2 = [n2];
  if (r2 && (l2 = i2(n2, r2, 1 === u2)), o2) {
    const n3 = [];
    for (let t2 = 0; t2 < l2.length; t2++) {
      const e3 = l2[t2];
      e3.length > 0 && n3.push(e3);
    }
    l2 = n3;
  }
  const s2 = [];
  let f2 = 0, c2 = Number.MAX_SAFE_INTEGER;
  for (let n3 = 0; n3 < l2.length; n3++) {
    let t2 = i2(l2[n3], e2, 1 === u2);
    if (o2) {
      const n4 = [];
      for (let e3 = 0; e3 < t2.length; e3++) {
        const r3 = t2[e3];
        r3.length > 0 && n4.push(r3);
      }
      t2 = n4;
    }
    (t2.length > 0 || !o2) && (s2.push(t2), f2 = Math.max(f2, t2.length), c2 = Math.min(c2, t2.length));
  }
  if (s2.length > 0 && c2 !== f2) {
    const n3 = a2 || t.BuiltIn.NA;
    for (let t2 = 0; t2 < s2.length; t2++) {
      const e3 = s2[t2];
      for (; e3.length < f2; ) e3.push(n3);
    }
  }
  return s2.length > 0 ? s2 : [[""]];
}, TRANSLATE: function(n2, t2, e2) {
}, TRIM: function(n2) {
  return n2.replace(/^\s+|\s+$/g, "");
}, UNICHAR: function(n2) {
  if (n2 <= 0) throw t.BuiltIn.Value;
  return String.fromCharCode(n2);
}, UNICODE: function(n2) {
  return Rt(n2);
}, UPPER: function(n2) {
  return n2.toUpperCase();
}, VALUE: function(n2) {
  const e2 = Number(n2);
  if (isNaN(e2)) throw t.BuiltIn.Value;
  return e2;
}, VALUETOTEXT: _t }, Symbol.toStringTag, { value: "Module" }));
let Ut = null, Lt = null, Pt = false;
const Vt = Object.freeze(Object.defineProperty({ __proto__: null, FILTERXML: async function(n2, e2) {
  if (Pt) throw t.BuiltIn.Blocked;
  if (!DOMParser || !Lt) try {
    console.log("Falling back to ESM CDN for XML libraries");
    const n3 = "https://esm.sh/fontoxpath@3.33.2", t2 = "https://esm.sh/@xmldom/xmldom@0.9.7", [e3, r2] = await Promise.all([import(
      /* webpackIgnore: true */
      /* @vite-ignore */
      n3
    ), import(
      /* webpackIgnore: true */
      /* @vite-ignore */
      t2
    )]);
    Lt = e3, DOMParser = r2.DOMParser, Ut = new DOMParser();
  } catch (n3) {
    throw console.error("Error loading XML libraries from CDN:", n3), new Error("Failed to load XML libraries");
  }
  if (!Ut) throw Pt = true, console.warn("Unable to load XML libraries"), t.BuiltIn.Blocked;
  try {
    const t2 = Ut.parseFromString(n2, "text/xml");
    return Lt.evaluateXPathToString(e2, t2, null, {});
  } catch (n3) {
    throw t.BuiltIn.Value;
  }
} }, Symbol.toStringTag, { value: "Module" })), Ft = Object.freeze(Object.defineProperty({ __proto__: null, ENCODEURL: function(n2) {
  return encodeURIComponent(n2);
}, WEBSERVICE: async function(n2) {
  try {
    const t2 = await fetch(n2, { method: "GET", headers: { Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "User-Agent": "SheetXL-Formula-Function-WEBSERVICE" } });
    if (!t2.ok) throw new Error(`HTTP error: ${t2.status}`);
    return await t2.text();
  } catch (n3) {
    throw t.BuiltIn.Value;
  }
} }, Symbol.toStringTag, { value: "Module" })), Ht = { CUBEKPIMEMBER: { p: [{ n: "connection", s: "s" }, { n: "kpiName", s: "s" }, { n: "kpiProperty" }, { n: "caption", s: "s", m: "?" }] }, CUBEMEMBER: { p: [{ n: "connection", s: "s" }, { n: "memberExpression", s: "s" }, { n: "caption", s: "s", m: "?" }] }, CUBEMEMBERPROPERTY: { p: [{ n: "connection", s: "s" }, { n: "memberExpression", s: "s" }, { n: "kpiProperty" }] }, CUBERANKEDMEMBER: { p: [{ n: "connection", s: "s" }, { n: "setExpression", s: "s" }, { n: "rank" }, { n: "caption", s: "s", m: "?" }] }, CUBESET: { p: [{ n: "connection", s: "s" }, { n: "setExpression", s: "s" }, { n: "caption", s: "s", m: "?" }, { n: "sortOrder", m: "?" }, { n: "sortBy", s: "s", m: "?" }] }, CUBESETCOUNT: { p: [{ n: "set", s: "s" }] }, CUBEVALUE: { p: [{ n: "connection", s: "s" }, { n: "memberExpression", s: "s", d: 1, m: "..." }] } }, Gt = { DAVERAGE: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DCOUNT: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DCOUNTA: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DGET: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DMAX: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DMIN: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DPRODUCT: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DSTDEV: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DSTDEVP: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DSUM: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DVAR: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] }, DVARP: { p: [{ n: "database", r: "l" }, { n: "field", s: "s" }, { n: "criteria", s: "s", r: "l" }] } }, Xt = { DATE: { p: [{ n: "year" }, { n: "month" }, { n: "day" }] }, DATEDIF: { p: [{ n: "startDate" }, { n: "endDate" }, { n: "unit", s: "s" }] }, DATESTRING: { p: [{ n: "number" }] }, DATEVALUE: { p: [{ n: "dateText", s: "s" }] }, DAY: { p: [{ n: "serialOrString", s: "*" }] }, DAYS: { p: [{ n: "endDate" }, { n: "startDate" }] }, DAYS360: { p: [{ n: "startDate" }, { n: "endDate" }, { n: "method", s: "b", m: "?" }] }, EDATE: { p: [{ n: "startDate", s: "Date" }, { n: "months" }] }, EOMONTH: { p: [{ n: "startDate", s: "Date" }, { n: "months" }] }, HOUR: { p: [{ n: "serialOrString", s: "*" }] }, ISOWEEKNUM: { p: [{ n: "serialOrString", s: "*" }] }, MINUTE: { p: [{ n: "serialOrString", s: "s" }] }, MONTH: { p: [{ n: "serialOrString", s: "s" }] }, NETWORKDAYS: { p: [{ n: "startDate", s: "Date" }, { n: "endDate", s: "Date" }, { n: "holidays", d: 1, m: "?" }] }, "NETWORKDAYS.INTL": { fn: "NETWORKDAYS_INTL", p: [{ n: "startDate", s: "Date" }, { n: "endDate", s: "Date" }, { n: "weekend", s: "z", m: "?" }, { n: "holidays", d: 1, m: "?" }] }, NOW: {}, SECOND: { p: [{ n: "serialOrString", s: "*" }] }, TIME: { p: [{ n: "hour" }, { n: "minute" }, { n: "second" }] }, TIMEVALUE: { p: [{ n: "timeText", s: "s" }] }, TODAY: {}, WEEKDAY: { p: [{ n: "serialOrString", s: "*" }, { n: "returnType", m: "?" }] }, WEEKNUM: { p: [{ n: "serialOrString", s: "z" }, { n: "returnType", m: "?" }] }, WORKDAY: { p: [{ n: "startDate", s: "Date" }, { n: "days" }, { n: "holidays", d: 1, m: "?" }] }, "WORKDAY.INTL": { fn: "WORKDAY_INTL", p: [{ n: "startDate", s: "Date" }, { n: "days" }, { n: "weekend", s: "z", m: "?" }, { n: "holidays", d: 1, m: "?" }] }, YEAR: { p: [{ n: "serialOrString", s: "*" }] }, YEARFRAC: { p: [{ n: "startDate" }, { n: "endDate" }, { n: "basis", m: "?" }] } }, Yt = { BESSELI: { p: [{ n: "x" }, { n: "n" }] }, BESSELJ: { p: [{ n: "x" }, { n: "n" }] }, BESSELK: { p: [{ n: "x" }, { n: "n" }] }, BESSELY: { p: [{ n: "x" }, { n: "n" }] } }, kt = { BIN2DEC: { p: [{ n: "number" }] }, BIN2HEX: { p: [{ n: "number" }, { n: "places", m: "?" }] }, BIN2OCT: { p: [{ n: "number" }, { n: "places", m: "?" }] }, BITAND: { p: [{ n: "number1", s: "*" }, { n: "number2", s: "*" }] }, BITLSHIFT: { p: [{ n: "number", s: "*" }, { n: "shiftAmount" }] }, BITOR: { p: [{ n: "number1", s: "*" }, { n: "number2", s: "*" }] }, BITRSHIFT: { p: [{ n: "number", s: "*" }, { n: "shiftAmount" }] }, BITXOR: { p: [{ n: "number1", s: "*" }, { n: "number2", s: "*" }] }, DEC2BIN: { p: [{ n: "number" }, { n: "places", m: "?" }] }, DEC2HEX: { p: [{ n: "number" }, { n: "places", m: "?" }] }, DEC2OCT: { p: [{ n: "number" }, { n: "places", m: "?" }] }, HEX2BIN: { p: [{ n: "number", s: "s" }, { n: "places", m: "?" }] }, HEX2DEC: { p: [{ n: "number", s: "s" }] }, HEX2OCT: { p: [{ n: "number", s: "s" }, { n: "places", m: "?" }] }, OCT2BIN: { p: [{ n: "number", s: "s" }, { n: "places", m: "?" }] }, OCT2DEC: { p: [{ n: "number", s: "s" }] }, OCT2HEX: { p: [{ n: "number", s: "s" }, { n: "places", m: "?" }] } }, qt = { CONVERT: { p: [{ n: "number" }, { n: "fromUnit", s: "s" }, { n: "toUnit", s: "s" }] } }, zt = { DELTA: { p: [{ n: "number1" }, { n: "number2", m: "?" }] }, GESTEP: { p: [{ n: "number" }, { n: "step", m: "?" }] } }, jt = { ERF: { p: [{ n: "lowerLimit" }, { n: "upperLimit", m: "?" }] }, "ERF.PRECISE": { fn: "ERF_PRECISE", p: [{ n: "x" }] }, ERFC: { p: [{ n: "x" }] } }, Wt = { COMPLEX: { p: [{ n: "realNum" }, { n: "iNum" }, { n: "suffix", s: "s", m: "?" }] }, IMABS: { p: [{ n: "inumber", s: "*" }] }, IMAGINARY: { p: [{ n: "inumber", s: "*" }] }, IMARGUMENT: { p: [{ n: "inumber", s: "*" }] }, IMCONJUGATE: { p: [{ n: "inumber", s: "*" }] }, IMCOS: { p: [{ n: "inumber", s: "*" }] }, IMCOSH: { p: [{ n: "inumber", s: "*" }] }, IMCOT: { p: [{ n: "inumber", s: "*" }] }, IMCSC: { p: [{ n: "inumber", s: "*" }] }, IMCSCH: { p: [{ n: "inumber", s: "*" }] }, IMDIV: { p: [{ n: "inumber1", s: "*" }, { n: "inumber2", s: "*" }] }, IMEXP: { p: [{ n: "inumber", s: "*" }] }, IMLN: { p: [{ n: "inumber", s: "*" }] }, IMLOG10: { p: [{ n: "inumber", s: "*" }] }, IMLOG2: { p: [{ n: "inumber", s: "*" }] }, IMPOWER: { p: [{ n: "inumber", s: "*" }, { n: "number" }] }, IMPRODUCT: { p: [{ n: "inumber", s: "*", d: 1, m: "..." }] }, IMREAL: { p: [{ n: "inumber", s: "*" }] }, IMSEC: { p: [{ n: "inumber", s: "*" }] }, IMSECH: { p: [{ n: "inumber", s: "*" }] }, IMSIN: { p: [{ n: "inumber", s: "*" }] }, IMSINH: { p: [{ n: "inumber", s: "*" }] }, IMSQRT: { p: [{ n: "inumber", s: "*" }] }, IMSUB: { p: [{ n: "inumber1", s: "*" }, { n: "inumber2", s: "*" }] }, IMSUM: { p: [{ n: "inumber", s: "*", d: 1, m: "..." }] }, IMTAN: { p: [{ n: "inumber", s: "*" }] } }, Kt = { ACCRINT: { p: [{ n: "issue" }, { n: "firstInterest" }, { n: "settlement" }, { n: "rate" }, { n: "par" }, { n: "frequency" }, { n: "basis", m: "?" }, { n: "calcMethod", s: "b", m: "?" }] }, ACCRINTM: { p: [{ n: "issue" }, { n: "settlement" }, { n: "rate" }, { n: "par" }, { n: "basis", m: "?" }] }, AMORLINC: { p: [{ n: "cost" }, { n: "datePurchased" }, { n: "firstPeriod" }, { n: "salvarge" }, { n: "period" }, { n: "rate" }, { n: "basis", m: "?" }] }, COUPDAYBS: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "frequency" }, { n: "basis", m: "?" }] }, COUPDAYS: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "frequency" }, { n: "basis", m: "?" }] }, COUPNCD: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "frequency" }, { n: "basis", m: "?" }] }, COUPNUM: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "frequency" }, { n: "basis", m: "?" }] }, COUPPCD: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "frequency" }, { n: "basis", m: "?" }] }, CUMIPMT: { p: [{ n: "rate" }, { n: "nper" }, { n: "pv" }, { n: "startPeriod" }, { n: "endPeriod" }, { n: "type" }] }, CUMPRINC: { p: [{ n: "rate" }, { n: "nper" }, { n: "pv" }, { n: "startPeriod" }, { n: "endPeriod" }, { n: "type" }] }, DB: { p: [{ n: "cost" }, { n: "salvage" }, { n: "life" }, { n: "period" }, { n: "month", m: "?" }] }, DDB: { p: [{ n: "cost" }, { n: "salvage" }, { n: "life" }, { n: "period" }, { n: "factor", m: "?" }] }, DISC: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "pr" }, { n: "redemption" }, { n: "basis", m: "?" }] }, DOLLARDE: { p: [{ n: "fractionalDollar" }, { n: "fraction" }] }, DOLLARFR: { p: [{ n: "decimalDollar" }, { n: "fraction" }] }, DURATION: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "coupon" }, { n: "yld" }, { n: "frequency" }, { n: "basis", m: "?" }] }, EFFECT: { p: [{ n: "nominalRate" }, { n: "npery" }] }, FV: { p: [{ n: "rate" }, { n: "nper" }, { n: "pmt" }, { n: "pv", m: "?" }, { n: "type", m: "?", e: ["0", "1"] }] }, FVSCHEDULE: { p: [{ n: "principal" }, { n: "schedule", s: "n", r: "l" }] }, INTRATE: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "investment" }, { n: "redemption" }, { n: "basis", m: "?" }] }, IPMT: { p: [{ n: "rate" }, { n: "per" }, { n: "nper" }, { n: "pv" }, { n: "fv", m: "?" }, { n: "type", m: "?" }] }, IRR: { p: [{ n: "values", s: "n", r: "l" }, { n: "guess", m: "?" }] }, ISPMT: { p: [{ n: "rate" }, { n: "per" }, { n: "nper" }, { n: "pv" }] }, MDURATION: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "coupon" }, { n: "yld" }, { n: "frequency" }, { n: "basis", m: "?" }] }, MIRR: { p: [{ n: "values", d: 1 }, { n: "financeRate" }, { n: "reinvestRate" }] }, NOMINAL: { p: [{ n: "effectiveRate" }, { n: "npery" }] }, NPER: { p: [{ n: "rate" }, { n: "pmt" }, { n: "pv" }, { n: "fv", m: "?" }, { n: "type", m: "?" }] }, NPV: { p: [{ n: "rate" }, { n: "value", d: 1, m: "..." }] }, ODDFPRICE: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "issue" }, { n: "firstCoupon" }, { n: "yld" }, { n: "redemption" }, { n: "frequency" }, { n: "basis", m: "?" }] }, ODDFYIELD: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "issue" }, { n: "firstCoupon" }, { n: "yld" }, { n: "redemption" }, { n: "frequency" }, { n: "basis", m: "?" }] }, ODDLPRICE: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "lastInterest" }, { n: "rate" }, { n: "yld" }, { n: "redemption" }, { n: "frequency" }, { n: "basis", m: "?" }] }, ODDLYIELD: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "lastInterest" }, { n: "rate" }, { n: "pr" }, { n: "redemption" }, { n: "frequency" }, { n: "basis", m: "?" }] }, PDURATION: { p: [{ n: "rate" }, { n: "pv" }, { n: "fv" }] }, PMT: { p: [{ n: "rate" }, { n: "nper" }, { n: "pv" }, { n: "fv", m: "?" }, { n: "type", m: "?" }] }, PRICE: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "rate" }, { n: "yld" }, { n: "redemption" }, { n: "frequency" }, { n: "basis", m: "?" }] }, PRICEDISC: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "discount" }, { n: "redemption" }, { n: "basis", m: "?" }] }, PRICEMAT: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "issue" }, { n: "rate" }, { n: "yld" }, { n: "basis", m: "?" }] }, PV: { p: [{ n: "rate" }, { n: "nper" }, { n: "pmt" }, { n: "fv", m: "?" }, { n: "type", m: "?" }] }, RATE: { p: [{ n: "nper" }, { n: "pmt" }, { n: "pv" }, { n: "fv", m: "?" }, { n: "type", m: "?" }, { n: "guess", m: "?" }] }, RECEIVED: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "investment" }, { n: "discount" }, { n: "basis", m: "?" }] }, RRI: { p: [{ n: "nper" }, { n: "pv" }, { n: "fv" }] }, SLN: { p: [{ n: "cost" }, { n: "salvage" }, { n: "life" }] }, STOCKHISTORY: { p: [{ n: "stock", s: "s" }, { n: "startDate" }, { n: "endDate" }, { n: "interval", m: "?" }, { n: "headers", m: "?" }, { n: "properties", d: 1, m: "?" }] }, SYD: { p: [{ n: "cost" }, { n: "salvage" }, { n: "life" }, { n: "per" }] }, TBILLEQ: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "discount" }] }, TBILLPRICE: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "discount" }] }, TBILLYIELD: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "pr" }] }, VDB: { p: [{ n: "cost" }, { n: "salvage" }, { n: "life" }, { n: "startPeriod" }, { n: "endPeriod" }, { n: "factor", m: "?" }, { n: "noSwitch", s: "b", m: "?" }] }, XIRR: { p: [{ n: "values", s: "n", r: "l", d: 1 }, { n: "dates", s: "n", r: "l", d: 1 }, { n: "guess", m: "?" }] }, XNPV: { p: [{ n: "rate" }, { n: "values", d: 1 }, { n: "dates", d: 1 }] }, YIELD: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "rate" }, { n: "pr" }, { n: "redemption" }, { n: "frequency" }, { n: "basis", m: "?" }] }, YIELDDISC: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "pr" }, { n: "redemption" }, { n: "frequency" }, { n: "basis", m: "?" }] }, YIELDMAT: { p: [{ n: "settlement" }, { n: "maturity" }, { n: "issue" }, { n: "rate" }, { n: "pr" }, { n: "basis", m: "?" }] } }, $t = { CELL: { p: [{ n: "infoType", s: "s", e: ["address", "col", "contents", "row", "type"] }, { n: "reference", r: "r" }] }, "ERROR.TYPE": { fn: "ERROR_TYPE", p: [{ n: "errorVal", r: "l" }] }, INFO: { p: [{ n: "typeText", s: "s", e: ["DIRECTORY", "NUMFILE", "ORIGIN", "OSVERSION", "RECALC", "RELEASE", "SYSTEM", "USER"] }] }, ISBLANK: { p: [{ n: "value", r: "l" }] }, ISERR: { p: [{ n: "value", r: "l" }] }, ISERROR: { p: [{ n: "value", r: "l" }] }, ISEVEN: { p: [{ n: "number", s: "n", r: "l" }] }, ISFORMULA: { p: [{ n: "reference", r: "r" }] }, ISLOGICAL: { p: [{ n: "value", r: "l" }] }, ISNA: { p: [{ n: "value", r: "l" }] }, ISNONTEXT: { p: [{ n: "value", r: "l" }] }, ISNUMBER: { p: [{ n: "value", r: "l" }] }, ISODD: { p: [{ n: "number", s: "n", r: "l" }] }, ISOMITTED: { p: [{ n: "argument", s: "z" }] }, ISREF: { p: [{ n: "value", r: "l" }] }, ISTEXT: { p: [{ n: "value", r: "l" }] }, N: { p: [{ n: "value", r: "l" }] }, NA: {}, SHEET: { p: [{ n: "value", s: "s", m: "?" }] }, SHEETS: { p: [{ n: "reference", r: "r", m: "?" }] }, TYPE: { p: [{ n: "value", r: "l" }] } }, Qt = { AND: { p: [{ n: "logical", r: "l", d: 1, m: "..." }] }, BYCOL: { p: [{ n: "array", r: "l" }, { n: "fn", s: "z" }] }, BYROW: { p: [{ n: "array", r: "l" }, { n: "fn", s: "z" }] }, FALSE: {}, IF: { p: [{ n: "logicalTest", r: "l" }, { n: "valueIfTrue", r: "l" }, { n: "valueIfFalse", r: "l", m: "?" }] }, IFERROR: { p: [{ n: "value", r: "l" }, { n: "valueIfError", r: "l" }] }, IFNA: { p: [{ n: "value", r: "l" }, { n: "valueIfError", r: "l" }] }, IFS: { p: [{ n: "logicalTest", r: "l" }, { n: "logicalTrue", r: "l" }, { n: "rest", r: "l", d: 1, m: "..." }] }, LAMDA: { p: [{ n: "parameterOrCalculation", r: "l", d: 1, m: "..." }] }, LET: { p: [{ n: "name", s: "s" }, { n: "nameOrValue", r: "l" }, { n: "calculationOrName", r: "l" }, { n: "rest", r: "l", d: 1, m: "..." }] }, MAKEARRAY: { p: [{ n: "rows" }, { n: "columns" }, { n: "fn", r: "l" }] }, MAP: { p: [{ n: "array", r: "l" }, { n: "lamdaOrArray", r: "l", d: 1, m: "..." }] }, NOT: { p: [{ n: "logical", r: "l" }] }, OR: { p: [{ n: "logical", r: "l", d: 1, m: "..." }] }, REDUCE: { p: [{ n: "initialValue", r: "l" }, { n: "array", r: "l" }, { n: "fn", r: "l" }] }, SCAN: { p: [{ n: "initialValue", r: "l" }, { n: "array", r: "l" }, { n: "fn", r: "l" }] }, SWITCH: { p: [{ n: "expression", r: "l" }, { n: "value", r: "l" }, { n: "results", r: "l", d: 1, m: "..." }] }, TRUE: {}, XOR: { p: [{ n: "logical", r: "l", d: 1, m: "..." }] } }, Zt = { ADDRESS: { p: [{ n: "rowNum" }, { n: "columnNum" }, { n: "absNum", m: "?" }, { n: "a1", s: "b", m: "?" }, { n: "sheetText", s: "s", m: "?" }] }, AREAS: { p: [{ n: "references", r: "l", d: 1, m: "..." }] }, CHOOSE: { p: [{ n: "indexNum" }, { n: "value1", r: "l" }, { n: "value", r: "l", d: 1, m: "..." }] }, CHOOSECOLS: { p: [{ n: "array", r: "l" }, { n: "colNum1" }, { n: "colNum", d: 1, m: "..." }] }, CHOOSEROWS: { p: [{ n: "array", r: "l" }, { n: "rowNum1" }, { n: "rowNum", d: 1, m: "..." }] }, COLUMN: { p: [{ n: "reference", r: "r", m: "?" }] }, COLUMNS: { p: [{ n: "array", r: "l" }] }, DROP: { p: [{ n: "array", r: "l" }, { n: "row" }, { n: "columns", m: "?" }] }, EXPAND: { p: [{ n: "array", r: "l" }, { n: "row" }, { n: "columns", m: "?" }, { n: "padWidth", s: "*", m: "?" }] }, FIELDVALUE: { p: [{ n: "value", s: "*" }, { n: "fieldName", s: "s" }] }, FILTER: { p: [{ n: "array", r: "l" }, { n: "include", r: "l" }, { n: "ifEmpty", r: "l" }] }, FORMULATEXT: { p: [{ n: "reference", r: "r" }] }, GETPIVOTDATA: { p: [{ n: "dataField", s: "s" }, { n: "pivotTable", s: "s" }, { n: "field1", s: "s" }, { n: "item1", r: "l" }] }, GROUPBY: { p: [{ n: "rowFields", r: "r" }, { n: "values", r: "l" }, { n: "fn", s: "z", d: 1 }, { n: "fieldHeaders", m: "?" }, { n: "totalDepth", m: "?" }, { n: "sortOrder", s: "z", d: 1, m: "?" }, { n: "filterArray", s: "b", d: 1, m: "?" }, { n: "fieldRelationship", m: "?" }] }, HLOOKUP: { p: [{ n: "lookupValue", s: "*" }, { n: "tableArray", r: "l" }, { n: "rowIndexNum" }, { n: "rangeLookup", s: "b", m: "?" }] }, HSTACK: { p: [{ n: "array1", r: "l" }, { n: "array", r: "l", d: 1, m: "..." }] }, HYPERLINK: { p: [{ n: "linkLocation", s: "s" }, { n: "friendlyName", s: "s", m: "?" }] }, IMAGE: { p: [{ n: "source", s: "s" }, { n: "alternateText", s: "s" }, { n: "sizing" }, { n: "height" }, { n: "width" }] }, INDEX: { p: [{ n: "array", r: "l", d: 1 }, { n: "rowNum", m: "?" }, { n: "colNum", m: "?" }, { n: "areaNum", m: "?" }] }, INDIRECT: { p: [{ n: "refText", s: "s" }, { n: "a1", s: "b", m: "?" }] }, LOOKUP: { p: [{ n: "lookupValue", s: "*" }, { n: "lookupVector", r: "l" }, { n: "resultVector", r: "l" }] }, MATCH: { p: [{ n: "lookupValue", s: "*" }, { n: "lookupArray", d: 2 }, { n: "matchType" }] }, OFFSET: { p: [{ n: "reference", r: "r" }, { n: "rows" }, { n: "cols" }, { n: "height", m: "?" }, { n: "width", m: "?" }] }, PIVOTBY: { p: [{ n: "rowFields", r: "r" }, { n: "colFields", r: "r" }, { n: "values", r: "l", d: 1 }, { n: "fn", s: "z", d: 1 }, { n: "fieldHeaders", m: "?" }, { n: "rowTotalDepth", m: "?" }, { n: "rowSortOrder", s: "z", d: 1, m: "?" }, { n: "colTotalDepth", m: "?" }, { n: "colSortOrder", s: "z", d: 1, m: "?" }, { n: "filterArray", s: "b", d: 1, m: "?" }, { n: "relativeTo", m: "?" }] }, ROW: { p: [{ n: "reference", r: "r", m: "?" }] }, ROWS: { p: [{ n: "array", r: "l" }] }, RTD: { p: [{ n: "progId", s: "s" }, { n: "server", s: "s", m: "?" }, { n: "topic", s: "s", d: 1, m: "..." }] }, SORT: { p: [{ n: "array", r: "l" }, { n: "sortIndex", d: 1, m: "?" }, { n: "sortOrder", d: 1, m: "?" }, { n: "byCol", s: "b", m: "?" }] }, SORTBY: { p: [{ n: "array", r: "l" }, { n: "byArray1", r: "l" }, { n: "sortOrder", d: 1, m: "?" }] }, TAKE: { p: [{ n: "array", r: "l" }, { n: "rows" }, { n: "columns", m: "?" }] }, TOCOL: { p: [{ n: "array", r: "l" }, { n: "ignore", m: "?", e: ["0 - Keep all values", "1 - Ignore Blanks", "2 - Ignore Errors", "3 - Ignore Blanks and Errors"] }, { n: "scanByColumn", s: "b", m: "?" }] }, TOROW: { p: [{ n: "array", r: "l" }, { n: "ignore", m: "?", e: ["0 - Keep all values", "1 - Ignore Blanks", "2 - Ignore Errors", "3 - Ignore Blanks and Errors"] }, { n: "scanByColumn", s: "b", m: "?" }] }, TRANSPOSE: { p: [{ n: "array", r: "l" }] }, TRIMRANGE: { p: [{ n: "range", r: "l" }, { n: "rowTrimMode", m: "?" }, { n: "colTrimMode", m: "?" }] }, UNIQUE: { p: [{ n: "array", r: "l" }, { n: "byCol", s: "b", m: "?" }, { n: "exactlyOnce", s: "b", m: "?" }] }, VLOOKUP: { p: [{ n: "lookupValue", s: "*" }, { n: "tableArray", r: "l" }, { n: "colIndexNum" }, { n: "rangeLookup", s: "b", m: "?" }] }, VSTACK: { p: [{ n: "array1", r: "l" }, { n: "array", r: "l", d: 1, m: "..." }] }, WRAPCOLS: { p: [{ n: "vector", r: "l" }, { n: "wrapCount" }, { n: "padWith", s: "*", m: "?" }] }, WRAPROWS: { p: [{ n: "vector", r: "l" }, { n: "wrapCount" }, { n: "padWith", s: "*", m: "?" }] }, XLOOKUP: { p: [{ n: "lookupValue", s: "*" }, { n: "lookupArray", r: "l" }, { n: "returnArray", r: "l" }, { n: "ifNotFound", s: "*" }, { n: "rangeLookup", s: "b", m: "?" }, { n: "matchMode", s: "b" }, { n: "searchMode", s: "b", m: "?" }] }, XMATCH: { p: [{ n: "lookupValue", s: "*" }, { n: "lookupArray", r: "l" }, { n: "matchMode", s: "b" }, { n: "searchMode", s: "b", m: "?" }] } }, Jt = { ABS: { p: [{ n: "number" }] }, AGGREGATE: { p: [{ n: "functionNum" }, { n: "options" }, { n: "array", r: "l" }, { n: "K" }] }, ARABIC: { p: [{ n: "text", s: "s" }] }, BASE: { p: [{ n: "number" }, { n: "radix" }, { n: "minLength", m: "?" }] }, CEILING: { p: [{ n: "number" }, { n: "significance", m: "?" }] }, "CEILING.MATH": { fn: "CEILING_MATH", p: [{ n: "number" }, { n: "significance", m: "?" }, { n: "mode", m: "?" }] }, "CEILING.PRECISE": { fn: "CEILING_PRECISE", p: [{ n: "number" }, { n: "significance", m: "?" }] }, COMBIN: { p: [{ n: "number" }, { n: "numberChosen" }] }, COMBINA: { p: [{ n: "number" }, { n: "numberChosen" }] }, DECIMAL: { p: [{ n: "number", s: "s" }, { n: "radix" }] }, DEGREES: { p: [{ n: "angle" }] }, EVEN: { p: [{ n: "number" }] }, EXP: { p: [{ n: "number" }] }, FACT: { p: [{ n: "number" }] }, FACTDOUBLE: { p: [{ n: "number" }] }, FLOOR: { p: [{ n: "number" }, { n: "significance", m: "?" }] }, "FLOOR.MATH": { fn: "FLOOR_MATH", p: [{ n: "number" }, { n: "significance", m: "?" }, { n: "mode", m: "?" }] }, "FLOOR.PRECISE": { fn: "FLOOR_PRECISE", p: [{ n: "number" }, { n: "significance", m: "?" }] }, GCD: { p: [{ n: "number", d: 1, m: "..." }] }, INT: { p: [{ n: "number" }] }, "ISO.CEILING": { fn: "ISO_CEILING", p: [{ n: "number" }, { n: "significance", m: "?" }] }, LCM: { p: [{ n: "number", d: 1, m: "..." }] }, LN: { p: [{ n: "number" }] }, LOG: { p: [{ n: "number" }, { n: "base", m: "?" }] }, LOG10: { p: [{ n: "number" }] }, MDETERM: { p: [{ n: "array", d: 2 }] }, MINVERSE: { p: [{ n: "array", d: 2 }] }, MMULT: { p: [{ n: "array1", s: "z", d: 2 }, { n: "array2", s: "z", d: 2 }] }, MOD: { p: [{ n: "number" }, { n: "divisor" }] }, MROUND: { p: [{ n: "number" }, { n: "multiple" }] }, MULTINOMIAL: { p: [{ n: "number", d: 1, m: "..." }] }, MUNIT: { p: [{ n: "dimension" }] }, ODD: { p: [{ n: "number" }] }, PI: {}, POWER: { p: [{ n: "number" }, { n: "power" }] }, PRODUCT: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, QUOTIENT: { p: [{ n: "numerator" }, { n: "denominator" }] }, RADIANS: { p: [{ n: "angle" }] }, RAND: {}, RANDARRAY: { p: [{ n: "rows", m: "?" }, { n: "columns", m: "?" }, { n: "min", m: "?" }, { n: "max", m: "?" }, { n: "integer", s: "b", m: "?" }] }, RANDBETWEEN: { p: [{ n: "bottom" }, { n: "top" }] }, ROMAN: { p: [{ n: "number" }, { n: "form", m: "?" }] }, ROUND: { p: [{ n: "number" }, { n: "numDigits" }] }, ROUNDDOWN: { p: [{ n: "number" }, { n: "numDigits" }] }, ROUNDUP: { p: [{ n: "number" }, { n: "numDigits" }] }, SEQUENCE: { p: [{ n: "rows" }, { n: "columns", m: "?" }, { n: "start", m: "?" }, { n: "step", m: "?" }] }, SERIESSUM: { p: [{ n: "x" }, { n: "n" }, { n: "m" }, { n: "coefficients", d: 1, m: "..." }] }, SIGN: { p: [{ n: "number" }] }, SQRT: { p: [{ n: "number" }] }, SQRTPI: { p: [{ n: "number" }] }, SUBTOTAL: { p: [{ n: "functionNum" }, { n: "ref", r: "l", d: 1, m: "..." }] }, SUM: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, SUMIF: { p: [{ n: "range", r: "l" }, { n: "criteria", r: "l" }, { n: "sumRange", r: "r", m: "?" }] }, SUMIFS: { p: [{ n: "sumRange", r: "l" }, { n: "criteriaRange", r: "r" }, { n: "criteria", r: "l" }] }, SUMPRODUCT: { p: [{ n: "array1", s: "z", d: 2 }, { n: "rest", s: "z", d: 3, m: "..." }] }, SUMSQ: { p: [{ n: "number", r: "l", d: 1, m: "..." }] }, SUMX2MY2: { p: [{ n: "arrayX", s: "z", d: 2 }, { n: "arrayY", s: "z", d: 2 }] }, SUMX2PY2: { p: [{ n: "arrayX", s: "z", d: 2 }, { n: "arrayY", s: "z", d: 2 }] }, SUMXMY2: { p: [{ n: "arrayX", s: "z", d: 2 }, { n: "arrayY", s: "z", d: 2 }] }, TRUNC: { p: [{ n: "number" }, { n: "numDigits", m: "?" }] } }, ne = { ACOS: { p: [{ n: "number" }] }, ACOSH: { p: [{ n: "number" }] }, ACOT: { p: [{ n: "number" }] }, ACOTH: { p: [{ n: "number" }] }, ASIN: { p: [{ n: "number" }] }, ASINH: { p: [{ n: "number" }] }, ATAN: { p: [{ n: "number" }] }, ATAN2: { p: [{ n: "x" }, { n: "y" }] }, ATANH: { p: [{ n: "number" }] }, COS: { p: [{ n: "number" }] }, COSH: { p: [{ n: "number" }] }, COT: { p: [{ n: "number" }] }, COTH: { p: [{ n: "number" }] }, CSC: { p: [{ n: "number" }] }, CSCH: { p: [{ n: "number" }] }, SEC: { p: [{ n: "number" }] }, SECH: { p: [{ n: "number" }] }, SIN: { p: [{ n: "number" }] }, SINH: { p: [{ n: "number" }] }, TAN: { p: [{ n: "number" }] }, TANH: { p: [{ n: "number" }] } }, te = { "BETA.DIST": { fn: "BETA_DIST", p: [{ n: "x" }, { n: "alpha" }, { n: "beta" }, { n: "cumulative", s: "b" }, { n: "a", m: "?" }, { n: "b", m: "?" }] }, BETADIST: { p: [{ n: "x" }, { n: "alpha" }, { n: "beta" }, { n: "cumulative", s: "b" }, { n: "a", m: "?" }, { n: "b", m: "?" }] }, "BETA.INV": { fn: "BETA_INV", p: [{ n: "probability" }, { n: "alpha" }, { n: "beta" }, { n: "a", m: "?" }, { n: "b", m: "?" }] }, BETAINV: { p: [{ n: "probability" }, { n: "alpha" }, { n: "beta" }, { n: "a", m: "?" }, { n: "b", m: "?" }] }, "BINOM.DIST": { fn: "BINOM_DIST", p: [{ n: "numberS" }, { n: "trials" }, { n: "probabilityS" }, { n: "cumulative", s: "b" }] }, BINOMDIST: { p: [{ n: "numberS" }, { n: "trials" }, { n: "probabilityS" }, { n: "cumulative", s: "b" }] }, "BINOM.DIST.RANGE": { fn: "BINOM_DIST_RANGE", p: [{ n: "trials" }, { n: "probabilityS" }, { n: "numberS" }, { n: "numberS2", m: "?" }] }, "BINOM.INV": { fn: "BINOM_INV", p: [{ n: "trials" }, { n: "probabilityS" }, { n: "alpha" }] }, "CHISQ.DIST": { fn: "CHISQ_DIST", p: [{ n: "x" }, { n: "degFreedom" }, { n: "cumulative", s: "b", m: "?" }] }, CHIDIST: { p: [{ n: "x" }, { n: "degFreedom" }] }, "CHISQ.DIST.RT": { fn: "CHISQ_DIST_RT", p: [{ n: "x" }, { n: "degFreedom" }] }, "CHISQ.INV": { fn: "CHISQ_INV", p: [{ n: "probability" }, { n: "degFreedom" }] }, CHIINV: { p: [{ n: "probability" }, { n: "degFreedom" }] }, "CHISQ.INV.RT": { fn: "CHISQ_INV_RT", p: [{ n: "probability" }, { n: "degFreedom" }] }, "CHISQ.TEST": { fn: "CHISQ_TEST", p: [{ n: "actualRange", s: "z", d: 2 }, { n: "expectedRange", s: "z", d: 2 }] }, CHITEST: { p: [{ n: "actualRange", s: "z", d: 2 }, { n: "expectedRange", s: "z", d: 2 }] }, "CONFIDENCE.NORM": { fn: "CONFIDENCE_NORM", p: [{ n: "alpha" }, { n: "standardDev" }, { n: "size" }] }, CONFIDENCE: { p: [{ n: "alpha" }, { n: "std" }, { n: "dev" }, { n: "size" }] }, "CONFIDENCE.T": { fn: "CONFIDENCE_T", p: [{ n: "alpha" }, { n: "standardDev" }, { n: "size" }] }, CORREL: { p: [{ n: "array1", s: "z", d: 1 }, { n: "array2", s: "z", d: 1 }] }, "COVARIANCE.P": { fn: "COVARIANCE_P", p: [{ n: "array1", s: "z", d: 1 }, { n: "array2", s: "z", d: 1 }] }, COVARIANCE: { p: [{ n: "array1", s: "z", d: 1 }, { n: "array2", s: "z", d: 1 }] }, "COVARIANCE.S": { fn: "COVARIANCE_S", p: [{ n: "array1", s: "z", d: 1 }, { n: "array2", s: "z", d: 1 }] }, CRITBINOM: { p: [{ n: "trails", s: "z", d: 2 }, { n: "probabilityS" }, { n: "alpha" }] }, DEVSQ: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, "EXPON.DIST": { fn: "EXPON_DIST", p: [{ n: "x" }, { n: "lambda" }, { n: "cumulative", s: "b" }] }, EXPONDIST: { p: [{ n: "x" }, { n: "lambda" }, { n: "cumulative", s: "b" }] }, "F.DIST": { fn: "F_DIST", p: [{ n: "x" }, { n: "degFreedom1" }, { n: "degFreedom2" }, { n: "cumulative", s: "b" }] }, FDIST: { p: [{ n: "x" }, { n: "degFreedom1" }, { n: "degFreedom2" }] }, "F.DIST.RT": { fn: "F_DIST_RT", p: [{ n: "x" }, { n: "degFreedom1" }, { n: "degFreedom2" }] }, "F.INV": { fn: "F_INV", p: [{ n: "probability" }, { n: "degFreedom1" }, { n: "degFreedom2" }] }, FINV: { p: [{ n: "probability" }, { n: "degFreedom1" }, { n: "degFreedom2" }] }, "F.INV.RT": { fn: "F_INV_RT", p: [{ n: "probability" }, { n: "degFreedom1" }, { n: "degFreedom2" }] }, "F.TEST": { fn: "F_TEST", p: [{ n: "array1", s: "z", d: 1 }, { n: "array2", s: "z", d: 1 }] }, FTEST: { p: [{ n: "array1", s: "z", d: 1 }, { n: "array2", s: "z", d: 1 }] }, FISHER: { p: [{ n: "x" }] }, FISHERINV: { p: [{ n: "y" }] }, FORECAST: { p: [{ n: "x" }, { n: "knownYs", s: "z", d: 1, m: "?" }, { n: "knownXs", s: "z", d: 1, m: "?" }] }, "FORECAST.ETS": { fn: "FORECAST_ETS", p: [{ n: "targetDate" }, { n: "values", r: "l" }, { n: "timeline", r: "l" }, { n: "seasonality", m: "?" }, { n: "dataCompletion", m: "?" }, { n: "aggregation", m: "?" }] }, "FORECAST.ETS.CONFINT": { fn: "FORECAST_ETS_CONFINT", p: [{ n: "targetDate" }, { n: "values", r: "l" }, { n: "timeline", r: "l" }, { n: "confiedenceLevel", m: "?" }, { n: "seasonality", m: "?" }, { n: "dataCompletion", m: "?" }, { n: "aggregation", m: "?" }] }, "FORECAST.ETS.SEASONALITY": { fn: "FORECAST_ETS_SEASONALITY", p: [{ n: "values", r: "l" }, { n: "timeline", r: "l" }, { n: "dataCompletion", m: "?" }, { n: "aggregation", m: "?" }] }, "FORECAST.ETS.STAT": { fn: "FORECAST_ETS_STAT", p: [{ n: "values", r: "l" }, { n: "timeline", r: "l" }, { n: "statisticType" }, { n: "seasonality", m: "?" }, { n: "dataCompletion", m: "?" }, { n: "aggregation", m: "?" }] }, "FORECAST.LINEAR": { fn: "FORECAST_LINEAR", p: [{ n: "x" }, { n: "knownYs", s: "z", d: 1 }, { n: "knownXs", s: "z", d: 1, m: "?" }] }, FREQUENCY: { p: [{ n: "dataArray", s: "z", d: 2 }, { n: "binsArray", s: "z", d: 2 }] }, GAMMA: { p: [{ n: "x" }] }, "GAMMA.DIST": { fn: "GAMMA_DIST", p: [{ n: "x" }, { n: "alpha" }, { n: "beta" }, { n: "cumulative", s: "b", m: "?" }] }, "GAMMA.INV": { fn: "GAMMA_INV", p: [{ n: "probability" }, { n: "alpha" }, { n: "beta" }] }, GAMMALN: { p: [{ n: "x" }] }, "GAMMALN.PRECISE": { fn: "GAMMALN_PRECISE", p: [{ n: "x" }] }, GAUSS: { p: [{ n: "x" }] }, GEOMEAN: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, GROWTH: { p: [{ n: "knownYs", s: "z", d: 1 }, { n: "knownXs", s: "z", d: 1, m: "?" }, { n: "newXs", s: "z", d: 2, m: "?" }, { n: "useConst", s: "b", m: "?" }] }, HARMEAN: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, "HYPGEOM.DIST": { fn: "HYPGEOM_DIST", p: [{ n: "sampleS" }, { n: "numberSample" }, { n: "populationS" }, { n: "numberPop" }, { n: "cumulative", s: "b" }] }, INTERCEPT: { p: [{ n: "knownYs", s: "z", d: 1 }, { n: "knownXs", s: "z", d: 1 }] }, KURT: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, LINEST: { p: [{ n: "knownYs", r: "l" }, { n: "knownXs", r: "l", m: "?" }, { n: "constant", s: "b", m: "?" }, { n: "stats", s: "b", m: "?" }] }, LOGEST: { p: [{ n: "knownYs", r: "l" }, { n: "knownXs", r: "l", m: "?" }, { n: "constant", s: "b", m: "?" }, { n: "stats", s: "b", m: "?" }] }, "LOGNORM.DIST": { fn: "LOGNORM_DIST", p: [{ n: "x" }, { n: "mean" }, { n: "standardDev" }, { n: "cumulative", s: "b" }] }, "LOGNORM.INV": { fn: "LOGNORM_INV", p: [{ n: "probability" }, { n: "mean" }, { n: "standardDev" }] }, "MODE.MULT": { fn: "MODE_MULT", p: [{ n: "number", r: "l", d: 1, m: "..." }] }, "MODE.SNGL": { fn: "MODE_SNGL", p: [{ n: "number", r: "l", d: 1, m: "..." }] }, "NEGBINOM.DIST": { fn: "NEGBINOM_DIST", p: [{ n: "numberF" }, { n: "numberS" }, { n: "probabilityS" }, { n: "cumulative", s: "b" }] }, "NORM.DIST": { fn: "NORM_DIST", p: [{ n: "x" }, { n: "mean" }, { n: "standardDev" }, { n: "cumulative", s: "b" }] }, "NORM.INV": { fn: "NORM_INV", p: [{ n: "probability" }, { n: "mean" }, { n: "standardDev" }] }, "NORM.S.DIST": { fn: "NORM_S_DIST", p: [{ n: "z" }, { n: "cumulative", s: "b" }] }, "NORM.S.INV": { fn: "NORM_S_INV", p: [{ n: "probability" }] }, PEARSON: { p: [{ n: "array1", r: "l" }, { n: "array2", r: "l" }] }, "PERCENTILE.EXC": { fn: "PERCENTILE_EXC", p: [{ n: "array", r: "l" }, { n: "k" }] }, "PERCENTILE.INC": { fn: "PERCENTILE_INC", p: [{ n: "array", r: "l" }, { n: "k" }] }, "PERCENTRANK.EXC": { fn: "PERCENTRANK_EXC", p: [{ n: "array", r: "l" }, { n: "x" }, { n: "significance", m: "?" }] }, "PERCENTRANK.INC": { fn: "PERCENTRANK_INC", p: [{ n: "array", r: "l" }, { n: "x" }, { n: "significance", m: "?" }] }, PHI: { p: [{ n: "x" }] }, "POISSON.DIST": { fn: "POISSON_DIST", p: [{ n: "x" }, { n: "mean" }, { n: "cumulative", s: "b" }] }, PROB: { p: [{ n: "xRange", r: "l" }, { n: "probRange", r: "l" }, { n: "lowerLimit" }, { n: "upperLimit", m: "?" }] }, "QUARTILE.EXC": { fn: "QUARTILE_EXC", p: [{ n: "array", r: "l" }, { n: "quart" }] }, "QUARTILE.INC": { fn: "QUARTILE_INC", p: [{ n: "array", r: "l" }, { n: "quart" }] }, "RANK.AVG": { fn: "RANK_AVG", p: [{ n: "number" }, { n: "ref", r: "l" }, { n: "order", m: "?" }] }, "RANK.EQ": { fn: "RANK_EQ", p: [{ n: "number" }, { n: "ref", r: "l" }, { n: "order", m: "?" }] }, RSQ: { p: [{ n: "knownYs", s: "z", d: 1 }, { n: "knownXs", s: "z", d: 1 }] }, SKEW: { p: [{ n: "number", r: "l", d: 1, m: "..." }] }, "SKEW.P": { fn: "SKEW_P", p: [{ n: "number", r: "l", d: 1, m: "..." }] }, SLOPE: { p: [{ n: "knownYs", r: "l" }, { n: "knownXs", r: "l" }] }, STANDARDIZE: { p: [{ n: "x" }, { n: "mean" }, { n: "standardDev" }] }, "STDEV.P": { fn: "STDEV_P", p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, "STDEV.S": { fn: "STDEV_S", p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, STDEVA: { p: [{ n: "value", r: "l", d: 1, m: "..." }] }, STDEVPA: { p: [{ n: "value", r: "l", d: 1, m: "..." }] }, STEYX: { p: [{ n: "knownYs", s: "z", d: 1 }, { n: "knownXs", s: "z", d: 1 }] }, "T.DIST": { fn: "T_DIST", p: [{ n: "x" }, { n: "degFreedom" }, { n: "cumulative", s: "b" }] }, "T.DIST.2T": { fn: "T_DIST_2T", p: [{ n: "x" }, { n: "degFreedom" }] }, "T.DIST.RT": { fn: "T_DIST_RT", p: [{ n: "x" }, { n: "degFreedom" }] }, "T.INV": { fn: "T_INV", p: [{ n: "probability" }, { n: "degFreedom" }] }, "T.INV.2T": { fn: "T_INV_2T", p: [{ n: "probability" }, { n: "degFreedom" }] }, "T.TEST": { fn: "T_TEST", p: [{ n: "array1", r: "l" }, { n: "array2", r: "l" }, { n: "tails" }, { n: "type" }] }, TREND: { p: [{ n: "knownYs", s: "z", d: 1 }, { n: "knownXs", s: "z", d: 1, m: "?" }, { n: "newXs", s: "z", d: 1, m: "?" }, { n: "consts", s: "b", m: "?" }] }, TRIMMEAN: { p: [{ n: "array", r: "l" }, { n: "percent", r: "l" }] }, "VAR.P": { fn: "VAR_P", p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, "VAR.S": { fn: "VAR_S", p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, VARA: { p: [{ n: "value", r: "l", d: 1, m: "..." }] }, VARPA: { p: [{ n: "value", r: "l", d: 1, m: "..." }] }, "WEIBULL.DIST": { fn: "WEIBULL_DIST", p: [{ n: "x" }, { n: "alpha" }, { n: "beta" }, { n: "cumulative", s: "b" }] }, "Z.TEST": { fn: "Z_TEST", p: [{ n: "array", r: "l" }, { n: "x" }, { n: "sigma", m: "?" }] } }, ee = { AVEDEV: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, AVERAGE: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, AVERAGEA: { p: [{ n: "value", s: "n", r: "l", d: 1, m: "..." }] }, AVERAGEIF: { p: [{ n: "range", r: "l" }, { n: "criteria", r: "l" }, { n: "averageRange", r: "r", m: "?" }] }, AVERAGEIFS: { p: [{ n: "averageRange", r: "l" }, { n: "criteriaRange", r: "l" }, { n: "criteria", r: "l", d: 1, m: "..." }] }, COUNT: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, COUNTA: { p: [{ n: "value", s: "n", r: "l", d: 1, m: "..." }] }, COUNTBLANK: { p: [{ n: "range", r: "l" }] }, COUNTIF: { p: [{ n: "range", r: "l" }, { n: "criteria", r: "l" }] }, COUNTIFS: { p: [{ n: "criteriaRange", r: "l" }, { n: "criteria", r: "l" }] }, LARGE: { p: [{ n: "array", s: "n", r: "l" }, { n: "k" }] }, MAX: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, MAXA: { p: [{ n: "value", r: "l", d: 1, m: "..." }] }, MAXIFS: { p: [{ n: "maxRange", r: "l" }, { n: "criteriaRange", r: "l" }, { n: "criteria", r: "l", d: 1, m: "..." }] }, MEDIAN: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, MIN: { p: [{ n: "number", s: "n", r: "l", d: 1, m: "..." }] }, MINA: { p: [{ n: "value", r: "l", d: 1, m: "..." }] }, MINIFS: { p: [{ n: "maxRange", r: "l" }, { n: "criteriaRange", r: "l" }, { n: "criteria", r: "l", d: 1, m: "..." }] }, PERMUT: { p: [{ n: "number" }, { n: "numberChoosen" }] }, PERMUTATIONA: { p: [{ n: "number" }, { n: "numberChoosen" }] }, SMALL: { p: [{ n: "array", s: "n", r: "l" }, { n: "k" }] } }, re = { DELAY: { p: [{ n: "time" }, { n: "input", s: "*" }, { n: "label", s: "s", m: "?" }] }, WAIT: { p: [{ n: "type", s: "s" }, { n: "input", r: "l", m: "?" }] } }, oe = { BAHTTEXT: { p: [{ n: "number" }] } }, ue = { ASC: { p: [{ n: "text", s: "s" }] }, ARRAYTOTEXT: { p: [{ n: "array", r: "l" }, { n: "format", m: "?" }] }, CHAR: { p: [{ n: "number" }] }, CLEAN: { p: [{ n: "text", s: "s" }] }, CODE: { p: [{ n: "text", s: "s" }] }, CONCAT: { p: [{ n: "text", r: "l", d: 1, m: "..." }] }, CONCATENATE: { p: [{ n: "text", r: "l", d: 1, m: "..." }] }, DETECTLANGUAGE: { p: [{ n: "text", s: "s" }] }, DBCS: { p: [{ n: "text", s: "s" }] }, DOLLAR: { p: [{ n: "number" }, { n: "decimals", m: "?" }] }, EXACT: { p: [{ n: "text1", s: "s" }, { n: "text2", s: "s" }] }, FIND: { p: [{ n: "findText", s: "s" }, { n: "withinText", s: "s" }, { n: "startNum", m: "?" }] }, FINDB: { p: [{ n: "findText", s: "s" }, { n: "withinText", s: "s" }, { n: "startNum", m: "?" }] }, FIXED: { p: [{ n: "number" }, { n: "decimals", m: "?" }, { n: "noCommas", s: "b", m: "?" }] }, LEFT: { p: [{ n: "text", s: "s" }, { n: "numChars", m: "?" }] }, LEFTB: { p: [{ n: "text", s: "s" }, { n: "numBytes", m: "?" }] }, LEN: { p: [{ n: "text", s: "s" }] }, LENB: { p: [{ n: "text", s: "s" }] }, LOWER: { p: [{ n: "text", s: "s" }] }, MID: { p: [{ n: "text", s: "s" }, { n: "startNum" }, { n: "numChars" }] }, MIDB: { p: [{ n: "text", s: "s" }, { n: "startNum" }, { n: "numBytes" }] }, NUMBERVALUE: { p: [{ n: "text", s: "s" }, { n: "decimalSeparator", s: "s", m: "?" }, { n: "groupSeparator", s: "s", m: "?" }] }, PERCENTOF: { p: [{ n: "dataSubset", r: "l" }, { n: "dataAll", r: "l" }] }, PHONETIC: { p: [{ n: "reference", r: "r" }] }, PROPER: { p: [{ n: "text", s: "s" }] }, REGEXEXTRACT: { p: [{ n: "text", s: "s" }, { n: "pattern", s: "s" }, { n: "returnMode", m: "?" }, { n: "caseSensitivity", s: "b", m: "?" }] }, REGEXREPLACE: { p: [{ n: "text", s: "s" }, { n: "pattern", s: "s" }, { n: "replacement", s: "s" }, { n: "occurrence", m: "?" }, { n: "caseSensitivity", s: "b", m: "?" }] }, REGEXTEST: { p: [{ n: "text", s: "s" }, { n: "pattern", s: "s" }, { n: "caseSensitivity", s: "b", m: "?" }] }, REPLACE: { p: [{ n: "oldText", s: "s" }, { n: "startNum" }, { n: "numChars" }, { n: "newText", s: "s" }] }, REPLACEB: { p: [{ n: "oldText", s: "s" }, { n: "startNum" }, { n: "numBytes" }, { n: "newText", s: "s" }] }, REPT: { p: [{ n: "text", s: "s" }, { n: "numberTimes" }] }, RIGHT: { p: [{ n: "text", s: "s" }, { n: "numChars", m: "?" }] }, RIGHTB: { p: [{ n: "text", s: "s" }, { n: "numBytes", m: "?" }] }, SEARCH: { p: [{ n: "findText", s: "s" }, { n: "withinText", s: "s" }, { n: "startNum", m: "?" }] }, SEARCHB: { p: [{ n: "findText", s: "s" }, { n: "withinText", s: "s" }, { n: "startBytes", m: "?" }] }, SUBSTITUTE: { p: [{ n: "text", s: "s" }, { n: "oldText", s: "s" }, { n: "newText", s: "s" }, { n: "instanceNum", m: "?" }] }, T: { p: [{ n: "value", s: "*" }] }, TEXT: { p: [{ n: "value", s: "*" }, { n: "formatText", s: "s" }] }, TEXTAFTER: { p: [{ n: "text", s: "s" }, { n: "delimiter", s: "s" }, { n: "instanceNum", m: "?" }, { n: "matchMode", m: "?" }, { n: "matchEnd", m: "?" }, { n: "ifNotFound", s: "s", m: "?" }] }, TEXTJOIN: { p: [{ n: "delimiter", s: "s" }, { n: "ignoreEmpty", s: "b" }, { n: "text", r: "l", d: 1, m: "..." }] }, TEXTSPLIT: { p: [{ n: "text", s: "s" }, { n: "colDelimiter", s: "s", d: 1 }, { n: "rowDelimiter", s: "s", d: 1, m: "?" }, { n: "ignoreEmpty", s: "b", m: "?" }, { n: "matchMode", m: "?" }, { n: "padWith", s: "s", m: "?" }] }, TEXTBEFORE: { p: [{ n: "text", s: "s" }, { n: "delimiter", s: "s" }, { n: "instanceNum", m: "?" }, { n: "matchMode", m: "?" }, { n: "matchEnd", m: "?" }, { n: "ifNotFound", s: "s", m: "?" }] }, TRANSLATE: { p: [{ n: "text", s: "s" }, { n: "sourceLanguage", s: "s" }, { n: "targetLanguage", s: "s" }] }, TRIM: { p: [{ n: "text", s: "s" }] }, UNICHAR: { p: [{ n: "number" }] }, UNICODE: { p: [{ n: "text", s: "s" }] }, UPPER: { p: [{ n: "text", s: "s" }] }, VALUE: { p: [{ n: "text", s: "s" }] }, VALUETOTEXT: { p: [{ n: "value", s: "*" }, { n: "format", m: "?" }] } }, ae = { FILTERXML: { p: [{ n: "xml", s: "s" }, { n: "xpath", s: "s" }] } }, ie = { ENCODEURL: { p: [{ n: "text", s: "s" }] }, WEBSERVICE: { p: [{ n: "url", s: "s" }] } }, le = () => import("./Ca8OgMPhAzZH-8Bi.js"), se = () => import("./geaW_3eTD4j3Pe0N.js"), fe = () => import("./Clhxzy30vR4LlvCC.js"), ce = () => import("./BvIS4a9vzvyRSdu_.js"), me = () => import("./Dmy95eYEZyBt0Sy1.js"), pe = () => import("./DkqjNaSoywccbPcm.js"), he = () => import("./CmM3CH6Q6_z922bD.js"), ge = () => import("./DfPxeCjrUNTzj1Ll.js"), de = () => import("./Bfs3jIfTCGYQyLTU.js"), Ne = () => import("./P75XGwQIqEIKaJS2.js"), be = () => import("./DsAsJuPGJccbhSKr.js"), Ee = () => import("./DVGhuq2g78r7BUu7.js"), Ie = () => import("./BewrYCTrWJXGtgw1.js"), Te = () => import("./DfYXBeVk6DETsUuS.js"), Me = () => import("./Cyj2BpCH_fEwktx7.js"), Se = () => import("./CTFVn3t9DGwXwk7i.js"), Ae = () => import("./BDPqUMUe3hE185yA.js"), ve = () => import("./DotgBZDFMVY1uGvp.js"), Re = () => import("./DbN9yLKsirr8Babs.js"), ye = () => import("./BtKyYLeYcVdHgHcv.js"), we = () => import("./BHAEFSlRYwEfYfOI.js"), Ce = () => import("./LUQI1wzvZ6IzU-x5.js");
function Oe(n2) {
  return function(n3, t2) {
    const e2 = /* @__PURE__ */ new Map();
    return t2(e2, n3, I, Ht, le, "Cube"), t2(e2, n3, T, Gt, se, "Database"), t2(e2, n3, X, Xt, fe, "Date & Time"), t2(e2, n3, Y, Yt, ce, "Engineering"), t2(e2, n3, Q, kt, me, "Engineering"), t2(e2, n3, Z, qt, pe, "Engineering"), t2(e2, n3, J, zt, he, "Engineering"), t2(e2, n3, nn, jt, ge, "Engineering"), t2(e2, n3, gn, Wt, de, "Engineering"), t2(e2, n3, vn, Kt, Ne, "Financial"), t2(e2, n3, Rn, $t, be, "Information"), t2(e2, n3, Cn, Qt, Ee, "Logical"), t2(e2, n3, xn, Zt, Ie, "Lookup & Reference"), t2(e2, n3, jn, Jt, Te, "Math & Trig"), t2(e2, n3, Kn, ne, Me, "Math & Trig"), t2(e2, n3, bt, te, Se, "Statistical"), t2(e2, n3, Jn, ee, Ae, "Statistical"), t2(e2, n3, Tt, re, ve, "Testing"), t2(e2, n3, Mt, oe, Re, "Text"), t2(e2, n3, Bt, ue, ye, "Text"), t2(e2, n3, Vt, ae, we, "Web"), t2(e2, n3, Ft, ie, Ce, "Web"), e2;
  }(n2, De);
}
const De = (n2, t2, e2, o2, i2, l2) => {
  const s2 = Object.keys(o2);
  for (const f2 of s2) {
    const s3 = o2[f2], c2 = f2, m2 = [], p2 = s3.p;
    if (p2) for (let n3 = 0; n3 < p2.length; n3++) {
      const t3 = p2[n3];
      let e3 = null;
      t3.s ? e3 = t3.s : t3.r || (e3 = r.Number);
      const o3 = { name: t3.n, scalar: e3, range: t3.r ?? null, arrayDepth: t3.d ?? 0, optional: "?" === t3.m, rest: "..." === t3.m, enums: t3.e ?? u.EmptyArray };
      delete o3.dim, m2.push(o3);
    }
    const h2 = { name: c2, parameters: m2, returnType: null, context: s3.c ? "calculation" : null, behavior: null }, g2 = e2[s3.fn ?? c2];
    let d2;
    const N2 = new a(h2, g2, t2, async (n3) => {
      if (!i2) return null;
      let t3;
      d2 || (t3 = (await i2()).default, d2 = t3);
      const e3 = t3?.[c2];
      if (!e3) return console.warn(`No descriptor found for built-in function: ${c2}`), null;
      const r2 = e3.p;
      let o3 = r2 ? { ...r2 } : u.EmptyObject;
      const a2 = Object.keys(o3);
      if (a2.length > 0) for (let n4 = 0; n4 < a2.length; n4++) {
        const t4 = a2[n4], e4 = r2[t4], u2 = { description: e4.d ?? "", example: e4.e, defaultValue: e4.v };
        o3[t4] = u2;
      }
      return { name: c2, summary: e3.s ?? "", category: e3.c ?? l2 ?? null, parameters: o3, hidden: e3.h ?? false, links: e3.l ?? u.EmptyArray };
    }, true);
    n2.set(c2, N2);
  }
};
export {
  Oe as initializeBuiltIns
};