@sheetxl/sdk 0.1.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/LICENSE.md +11 -0
  2. package/README.md +30 -0
  3. package/build/browser/cjs/7Yh1PqgSd93uKFOq.cjs +6 -0
  4. package/build/browser/cjs/AbBzPqrBe_7Scafy.cjs +6 -0
  5. package/build/browser/cjs/B2jt9h-29UhlG-ir.cjs +6 -0
  6. package/build/browser/cjs/BAY6G2idlFTr3aXF.cjs +6 -0
  7. package/build/browser/cjs/BJAOd8ki61yYMUO8.cjs +6 -0
  8. package/build/browser/cjs/BNfn1no9QwiHEFwd.cjs +6 -0
  9. package/build/browser/cjs/BUkgy8lQRuxtyPlh.cjs +6 -0
  10. package/build/browser/cjs/B_O3B0P2cyGD9Rbm.cjs +6 -0
  11. package/build/browser/cjs/BkmEUMAKvuzsSqbR.cjs +7 -0
  12. package/build/browser/cjs/BlllxPbkhoY0sEC4.cjs +23 -0
  13. package/build/browser/cjs/BmT4qU5bgAIPFNTH.cjs +124 -0
  14. package/build/browser/cjs/BqZnbFL2t1u1XgPn.cjs +6 -0
  15. package/build/browser/cjs/Bs6xUWpBc0gC2FqH.cjs +6 -0
  16. package/build/browser/cjs/Bsv5BCVCW5dIA5It.cjs +1511 -0
  17. package/build/browser/cjs/ByZLM15SpxjqWDYX.cjs +6 -0
  18. package/build/browser/cjs/CaHv2p0pVvOc7XPO.cjs +42 -0
  19. package/build/browser/cjs/CcIliks7z_TMUXOM.cjs +6 -0
  20. package/build/browser/cjs/CpbUnis3pqWrW9H4.cjs +11 -0
  21. package/build/browser/cjs/CvGHijwHYOsCppoo.cjs +6 -0
  22. package/build/browser/cjs/D5m2Wlak7m4vG0kA.cjs +6 -0
  23. package/build/browser/cjs/DSNXa0HNC7bG9qZw.cjs +6 -0
  24. package/build/browser/cjs/DZ-H3oz78Mjq38DI.cjs +6 -0
  25. package/build/browser/cjs/Da34iNTZrWBA6OUT.cjs +6 -0
  26. package/build/browser/cjs/DfMNPyGio0O0RToU.cjs +6 -0
  27. package/build/browser/cjs/Dghi8Yq5nXZtUpoV.cjs +80 -0
  28. package/build/browser/cjs/Dk63Co0TJejVtNXp.cjs +6 -0
  29. package/build/browser/cjs/ErSjtO5fMJzUVHk4.cjs +6 -0
  30. package/build/browser/cjs/G-xZJIN6jjcTuQXA.cjs +6 -0
  31. package/build/browser/cjs/GPfZ0ZpBee250ywR.cjs +20 -0
  32. package/build/browser/cjs/IHypcrtWCiX_F0RJ.cjs +11 -0
  33. package/build/browser/cjs/X-HIF0659hMdI4Fu.cjs +6 -0
  34. package/build/browser/cjs/index.cjs +6 -0
  35. package/build/browser/cjs/qhBvSFMQ_DepDCwv.cjs +6 -0
  36. package/build/browser/cjs/wYOZ6mjOO7MbdyBZ.cjs +6 -0
  37. package/build/browser/esm/70LlV-Ub5gQiHal4.mjs +10 -0
  38. package/build/browser/esm/71Qocy3xStWv_56t.mjs +10 -0
  39. package/build/browser/esm/B9-WgxZWcZj4jdUC.mjs +10 -0
  40. package/build/browser/esm/BAKRnfUqPzHyyiLx.mjs +3966 -0
  41. package/build/browser/esm/BChNW8QNTMP8QXKM.mjs +484 -0
  42. package/build/browser/esm/BCzBxiWxCFs-jcmK.mjs +5651 -0
  43. package/build/browser/esm/BOn1aDBCyrMSMmVr.mjs +10 -0
  44. package/build/browser/esm/BPqJ7trmE53kA4iD.mjs +10 -0
  45. package/build/browser/esm/B_XqbIeKalrEkjs7.mjs +10 -0
  46. package/build/browser/esm/B_b5FIYJnm4UKAEc.mjs +28 -0
  47. package/build/browser/esm/BoWGCLoCBi99JpFs.mjs +10 -0
  48. package/build/browser/esm/Bq9W-xButcfpjGEk.mjs +433 -0
  49. package/build/browser/esm/ByxOyRbOjkmiHT8z.mjs +10 -0
  50. package/build/browser/esm/CAxIV1vPiKW9r_Yh.mjs +10 -0
  51. package/build/browser/esm/CFw23OkHfPquoVEk.mjs +10 -0
  52. package/build/browser/esm/CG8a93kgahRemVJe.mjs +10 -0
  53. package/build/browser/esm/CN45di2IcbM8P0Qu.mjs +10 -0
  54. package/build/browser/esm/COgfNXNmX_PF_eWZ.mjs +35 -0
  55. package/build/browser/esm/CPv7OpinaYcwbA_W.mjs +10 -0
  56. package/build/browser/esm/Cfhp3FCr7wP0Rnfu.mjs +10 -0
  57. package/build/browser/esm/D4GeLOfATuEzvjPr.mjs +1586 -0
  58. package/build/browser/esm/DMas1DZMe9F5tPaN.mjs +23970 -0
  59. package/build/browser/esm/DS4xBjO2TN0rQ1lJ.mjs +10 -0
  60. package/build/browser/esm/DTM0pK30PrZRsXYw.mjs +10 -0
  61. package/build/browser/esm/DgslJ1_vlPooGZHU.mjs +10 -0
  62. package/build/browser/esm/DmEPCZ9FSKO_TRTA.mjs +10 -0
  63. package/build/browser/esm/Do_EO3eQIyPgc7uz.mjs +30 -0
  64. package/build/browser/esm/ERMewE78C__HUblm.mjs +10 -0
  65. package/build/browser/esm/Qib5_XvQHWOPzGrm.mjs +10 -0
  66. package/build/browser/esm/SSYRYFzxzHWQzdAN.mjs +12 -0
  67. package/build/browser/esm/V_ha0oCA5_oDPanz.mjs +832 -0
  68. package/build/browser/esm/gTh1PiesKrQblf8O.mjs +10 -0
  69. package/build/browser/esm/g_p1uVDePbDJJ4nX.mjs +10 -0
  70. package/build/browser/esm/index.mjs +89 -0
  71. package/build/licenses/dependencies.txt +1239 -0
  72. package/build/node/esm/4HPektqH91Rh-rsq.mjs +2445 -0
  73. package/build/node/esm/70LlV-Ub5gQiHal4.mjs +10 -0
  74. package/build/node/esm/B9-WgxZWcZj4jdUC.mjs +10 -0
  75. package/build/node/esm/BDxewg-utn4BhUXl.mjs +35 -0
  76. package/build/node/esm/BPqJ7trmE53kA4iD.mjs +10 -0
  77. package/build/node/esm/BUOg554dxBM0VWFi.mjs +22 -0
  78. package/build/node/esm/B_XqbIeKalrEkjs7.mjs +10 -0
  79. package/build/node/esm/BoWGCLoCBi99JpFs.mjs +10 -0
  80. package/build/node/esm/ByxOyRbOjkmiHT8z.mjs +10 -0
  81. package/build/node/esm/CFw23OkHfPquoVEk.mjs +10 -0
  82. package/build/node/esm/CG8a93kgahRemVJe.mjs +10 -0
  83. package/build/node/esm/CN45di2IcbM8P0Qu.mjs +10 -0
  84. package/build/node/esm/CNOiP4baOWSizP6F.mjs +1070 -0
  85. package/build/node/esm/CPv7OpinaYcwbA_W.mjs +10 -0
  86. package/build/node/esm/CVAFJAiy4lznWzaG.mjs +10 -0
  87. package/build/node/esm/CZd8SSXlusZy49FM.mjs +10 -0
  88. package/build/node/esm/CZw7SgmfxSHhZZe0.mjs +10 -0
  89. package/build/node/esm/Cdjab80o1WocCHgN.mjs +13 -0
  90. package/build/node/esm/CfWoSrOmaP9LrFja.mjs +466 -0
  91. package/build/node/esm/CnaBpzYiURAKhAxF.mjs +825 -0
  92. package/build/node/esm/Cp5ea9Hpxse8B4mC.mjs +10 -0
  93. package/build/node/esm/DH_fbhyW3PwE1rYa.mjs +10 -0
  94. package/build/node/esm/DNHqdv3-ufdcF5zc.mjs +20 -0
  95. package/build/node/esm/DS4xBjO2TN0rQ1lJ.mjs +10 -0
  96. package/build/node/esm/DTM0pK30PrZRsXYw.mjs +10 -0
  97. package/build/node/esm/DlFgt0KLeXDowatv.mjs +10 -0
  98. package/build/node/esm/ERMewE78C__HUblm.mjs +10 -0
  99. package/build/node/esm/GTFYlX2Atw10TdFe.mjs +86 -0
  100. package/build/node/esm/Qib5_XvQHWOPzGrm.mjs +10 -0
  101. package/build/node/esm/gTh1PiesKrQblf8O.mjs +10 -0
  102. package/build/node/esm/g_p1uVDePbDJJ4nX.mjs +10 -0
  103. package/build/node/esm/index.mjs +23412 -0
  104. package/build/package.json +58 -0
  105. package/build/types/index.d.ts +20624 -0
  106. package/package.json +85 -0
@@ -0,0 +1,2445 @@
1
+ /**
2
+ * @license @sheetxl/sdk - A high-performance, embeddable spreadsheet engine. - v0.0.0
3
+ *
4
+ * (C) 2025-present SheetXL Inc. & Michael T. Ford
5
+ * License: The license can be found at https://www.sheetxl.com/license.
6
+ */
7
+ import { FormulaError as n, F as t, ScalarType as e, IRange as r, CommonUtils as u, T as o } from "./index.mjs";
8
+ import a from "bessel";
9
+ import i from "jstat";
10
+ import { bahttext as l } from "bahttext";
11
+ const s = Object.freeze(Object.defineProperty({ __proto__: null, CUBEKPIMEMBER: function(n2, t2, e2, r2) {
12
+ }, CUBEMEMBER: function(n2, t2, e2) {
13
+ }, CUBEMEMBERPROPERTY: function(n2, t2, e2) {
14
+ }, CUBERANKEDMEMBER: function(n2, t2, e2, r2) {
15
+ }, CUBESET: function(n2, t2, e2, r2, u2) {
16
+ }, CUBESETCOUNT: function(n2) {
17
+ }, CUBEVALUE: function(n2, ...t2) {
18
+ } }, Symbol.toStringTag, { value: "Module" }));
19
+ const f = Object.freeze(Object.defineProperty({ __proto__: null, DAVERAGE: function(n2, t2, e2) {
20
+ }, DCOUNT: function(n2, t2, e2) {
21
+ }, DCOUNTA: function(n2, t2, e2) {
22
+ }, DGET: function(n2, t2, e2) {
23
+ }, DMAX: function(n2, t2, e2) {
24
+ }, DMIN: function(n2, t2, e2) {
25
+ }, DPRODUCT: function(n2, t2, e2) {
26
+ }, DSTDEV: function(n2, t2, e2) {
27
+ }, DSTDEVP: function(n2, t2, e2) {
28
+ }, DSUM: function(n2, t2, e2) {
29
+ }, DVAR: function(n2, t2, e2) {
30
+ }, DVARP: function(n2, t2, e2) {
31
+ } }, Symbol.toStringTag, { value: "Module" })), c = { NUMBER: 0, ARRAY: 1, BOOLEAN: 2, STRING: 3, RANGE_REF: 4, CELL_REF: 5, NUMBER_NO_BOOLEAN: 10 };
32
+ const m = new class {
33
+ constructor() {
34
+ this.Types = c, this.type2Number = { number: c.NUMBER, boolean: c.BOOLEAN, string: c.STRING, object: -1 };
35
+ }
36
+ flattenDeep(n2) {
37
+ 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), []);
38
+ }
39
+ acceptNumber(t2, e2 = true, r2 = true) {
40
+ if (t2 instanceof n.Known) return t2;
41
+ let u2;
42
+ if ("number" == typeof t2) u2 = t2;
43
+ else if ("boolean" == typeof t2) {
44
+ if (!r2) throw n.BuiltIn.Value;
45
+ u2 = Number(t2);
46
+ } else if ("string" == typeof t2) {
47
+ if (0 === t2.length) throw n.BuiltIn.Value;
48
+ if (u2 = Number(t2), u2 != u2) throw n.BuiltIn.Value;
49
+ } else if (t2?.isIRange) {
50
+ const r3 = t2;
51
+ if (e2) u2 = this.acceptNumber(r3.getValueAt(0, 0) ?? 0);
52
+ else {
53
+ if (1 !== r3.size) throw n.BuiltIn.Value;
54
+ u2 = this.acceptNumber(r3.getValueAt(0, 0) ?? 0);
55
+ }
56
+ } else {
57
+ if (!Array.isArray(t2)) throw new n.Value("Unknown type in FormulaHelpers.acceptNumber");
58
+ if (e2) u2 = this.acceptNumber(t2[0][0]);
59
+ else {
60
+ if (1 !== t2[0].length) throw n.BuiltIn.Value;
61
+ u2 = this.acceptNumber(t2[0][0]);
62
+ }
63
+ }
64
+ return u2;
65
+ }
66
+ flattenParams(t2, e2, r2, u2, o2 = null, a2 = 1) {
67
+ if (t2.length < a2) throw new n.NA(`Argument type ${e2} is missing.`);
68
+ null == o2 && (o2 = e2 === c.NUMBER ? 0 : null == e2 ? null : ""), t2.forEach((n2) => {
69
+ const { isCellRef: t3, isRangeRef: r3, isArray: a3 } = n2;
70
+ let i2 = n2.value;
71
+ const l2 = false, s2 = !(t3 || r3 || a3), f2 = { isLiteral: s2, isCellRef: t3, isRangeRef: r3, isArray: a3, isUnion: l2 };
72
+ i2?.isIRange && (i2 = i2.getValues(), t3 && (i2 = i2[0][0])), s2 ? (n2 = n2.omitted ? o2 : this.accept(n2, e2, o2), u2(n2, f2)) : t3 ? u2(i2, f2) : (r3 || a3) && (n2 = this.flattenDeep(i2)).forEach((n3) => {
73
+ u2(n3, f2);
74
+ });
75
+ });
76
+ }
77
+ accept(t2, e2 = null, r2 = void 0, u2 = true, o2 = false) {
78
+ let a2 = false;
79
+ if (t2 && (t2.isIRange || t2.value?.isIRange)) {
80
+ const n2 = t2.value ?? t2;
81
+ 1 === n2.size || e2 !== c.ARRAY ? t2 = n2.getValueAt(0, 0) : (t2 = n2.getValueAt(), a2 = true);
82
+ } else t2?.value && (a2 = t2.isArray, t2 = t2.value);
83
+ if (Array.isArray(e2) && (e2 = e2[0]), null == t2) {
84
+ if (void 0 === r2) throw new n.NA(`Argument type ${e2} is missing.`);
85
+ return r2;
86
+ }
87
+ if (null == e2) return t2;
88
+ if (t2 instanceof n.Known) throw t2;
89
+ if (e2 === c.ARRAY) {
90
+ if (Array.isArray(t2)) return u2 ? this.flattenDeep(t2) : t2;
91
+ if (Array.isArray(t2.value)) for (let n2 = 0; n2 < t2.value.length; n2++) {
92
+ null === t2.value[n2] && (t2.value[n2] = r2);
93
+ }
94
+ else {
95
+ if (o2) return u2 ? [t2] : [[t2]];
96
+ if (null === t2.value) return u2 ? [r2] : [[r2]];
97
+ }
98
+ throw n.BuiltIn.Value;
99
+ }
100
+ a2 && (t2 = t2[0][0]);
101
+ const i2 = this.type(t2);
102
+ if (e2 === c.STRING) t2 = i2 === c.BOOLEAN ? t2 ? "TRUE" : "FALSE" : `${t2}`;
103
+ else if (e2 === c.BOOLEAN) {
104
+ if (i2 === c.STRING) throw n.BuiltIn.Value;
105
+ i2 === c.NUMBER && (t2 = Boolean(t2));
106
+ } else if (e2 === c.NUMBER) t2 = this.acceptNumber(t2, false);
107
+ else {
108
+ if (e2 !== c.NUMBER_NO_BOOLEAN) throw n.BuiltIn.Value;
109
+ t2 = this.acceptNumber(t2, false, false);
110
+ }
111
+ return t2;
112
+ }
113
+ type(n2) {
114
+ if (n2.isIRange) return c.RANGE_REF;
115
+ let t2 = this.type2Number[typeof n2];
116
+ return -1 === t2 && (Array.isArray(n2) ? t2 = c.ARRAY : n2.ref && (t2 = n2.ref.from ? c.RANGE_REF : c.CELL_REF)), t2;
117
+ }
118
+ }(), p = 864e5, N = new Date(Date.UTC(1900, 0, 1)), h = [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], E = [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]], g = [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]], I = /^\s*(\d\d?)\s*(:\s*\d\d?)?\s*(:\s*\d\d?)?\s*(pm|am)?\s*$/i, T = /^\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, b = /^\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;
119
+ function M(n2) {
120
+ let t2 = n2.getTime?.() ?? n2;
121
+ const e2 = t2 > -22038912e5 ? 2 : 1;
122
+ return Math.floor((t2 - N.getTime()) / 864e5) + e2;
123
+ }
124
+ function S(t2) {
125
+ if (t2 instanceof Date) return { date: t2 };
126
+ let e2, r2 = true;
127
+ return isNaN(t2) ? (e2 = function(n2) {
128
+ const t3 = n2.match(I);
129
+ if (!t3) return;
130
+ const e3 = t3[2] ? t3[2] : ":00", r3 = t3[3] ? t3[3] : ":00", u2 = t3[4] ? " " + t3[4] : "", o2 = new Date(Date.parse(`1/1/1900 ${t3[1] + e3 + r3 + u2} UTC`));
131
+ let a2 = /* @__PURE__ */ new Date();
132
+ 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(), o2.getUTCHours(), o2.getUTCMinutes(), o2.getUTCSeconds(), o2.getUTCMilliseconds()));
133
+ }(t2), e2 ? r2 = false : e2 = function(n2) {
134
+ const t3 = n2.match(T), e3 = n2.match(d), r3 = n2.match(b);
135
+ return t3 ? n2 = t3[1] + t3[3] + (/* @__PURE__ */ new Date()).getFullYear() + t3[5] : e3 ? n2 = e3[1] + e3[3] + (/* @__PURE__ */ new Date()).getFullYear() + e3[5] : r3 && (n2 = r3[1] + r3[3] + (/* @__PURE__ */ new Date()).getFullYear() + r3[5]), new Date(Date.parse(`${n2} UTC`));
136
+ }(t2)) : e2 = function(t3) {
137
+ if (t3 < 0) throw n.BuiltIn.Value;
138
+ return t3 <= 60 ? new Date(N.getTime() + 864e5 * (t3 - 1)) : new Date(N.getTime() + 864e5 * (t3 - 2));
139
+ }(t2 = Number(t2)), { date: e2, isDateGiven: r2 };
140
+ }
141
+ function A(n2) {
142
+ return S(n2).date;
143
+ }
144
+ function R(n2, t2) {
145
+ return n2.getUTCFullYear() === t2.getUTCFullYear() && n2.getUTCMonth() === t2.getUTCMonth() && n2.getUTCDate() === t2.getUTCDate();
146
+ }
147
+ function C(n2, e2, r2) {
148
+ const u2 = t.fromOADate(n2), o2 = t.fromOADate(e2);
149
+ if (r2 = r2.toLowerCase(), n2 > e2) return Number.NaN;
150
+ const a2 = o2.getUTCFullYear() - u2.getUTCFullYear(), i2 = o2.getUTCMonth() - u2.getUTCMonth(), l2 = o2.getUTCDate() - u2.getUTCDate();
151
+ let s2;
152
+ switch (r2) {
153
+ case "y":
154
+ return s2 = i2 < 0 || 0 === i2 && l2 < 0 ? -1 : 0, s2 + a2;
155
+ case "m":
156
+ return s2 = l2 < 0 ? -1 : 0, 12 * a2 + i2 + s2;
157
+ case "d":
158
+ return Math.floor(o2.getTime() - u2.getTime()) / p;
159
+ case "md":
160
+ return u2.setUTCFullYear(o2.getUTCFullYear()), l2 < 0 ? u2.setUTCMonth(o2.getUTCMonth() - 1) : u2.setUTCMonth(o2.getUTCMonth()), Math.floor(o2.getTime() - u2.getTime()) / p;
161
+ case "ym":
162
+ return s2 = l2 < 0 ? -1 : 0, (s2 + 12 * a2 + i2) % 12;
163
+ case "yd":
164
+ return i2 < 0 || 0 === i2 && l2 < 0 ? u2.setUTCFullYear(o2.getUTCFullYear() - 1) : u2.setUTCFullYear(o2.getUTCFullYear()), Math.floor(o2.getTime() - u2.getTime()) / p;
165
+ }
166
+ }
167
+ function O(n2, t2) {
168
+ return Math.trunc(n2) - Math.trunc(t2);
169
+ }
170
+ function D(n2, e2, r2 = false) {
171
+ const u2 = t.fromOADate(n2), o2 = t.fromOADate(e2);
172
+ 31 === u2.getUTCDate() && u2.setUTCDate(30), !r2 && u2.getUTCDate() < 30 && o2.getUTCDate() > 30 ? o2.setUTCMonth(o2.getUTCMonth() + 1, 1) : 31 === o2.getUTCDate() && o2.setUTCDate(30);
173
+ const a2 = o2.getUTCFullYear() - u2.getUTCFullYear();
174
+ return 30 * (o2.getUTCMonth() - u2.getUTCMonth()) + (o2.getUTCDate() - u2.getUTCDate()) + 12 * a2 * 30;
175
+ }
176
+ function y(n2) {
177
+ const t2 = A(n2), e2 = new Date(Date.UTC(t2.getFullYear(), t2.getMonth(), t2.getDate())), r2 = e2.getUTCDay();
178
+ e2.setUTCDate(e2.getUTCDate() + 4 - r2);
179
+ const u2 = new Date(Date.UTC(e2.getUTCFullYear(), 0, 1));
180
+ return Math.ceil(((e2.getTime() - u2.getTime()) / 864e5 + 1) / 7);
181
+ }
182
+ function w(t2, e2, r2 = 1, u2 = null) {
183
+ if (t2 = A(t2), "1111111" === r2) throw n.BuiltIn.Value;
184
+ if ("string" == typeof r2 && Number(r2).toString() !== r2) {
185
+ if (7 !== r2.length) throw n.BuiltIn.Value;
186
+ r2 = r2.charAt(6) + r2.slice(0, 6);
187
+ const t3 = [];
188
+ for (let n2 = 0; n2 < r2.length; n2++) "1" === r2.charAt(n2) && t3.push(n2);
189
+ r2 = t3;
190
+ } else {
191
+ if ("number" != typeof r2) throw n.BuiltIn.Value;
192
+ if (null == (r2 = g[r2])) throw n.BuiltIn.Num;
193
+ }
194
+ const o2 = [];
195
+ null != u2 && m.flattenParams([u2], c.NUMBER, false, (n2) => {
196
+ o2.push(A(n2));
197
+ }), t2.setUTCDate(t2.getUTCDate() + 1);
198
+ let a2 = 0;
199
+ for (; a2 < e2; ) {
200
+ let n2 = false;
201
+ for (let e3 = 0; e3 < r2.length; e3++) if (r2[e3] === t2.getUTCDay()) {
202
+ n2 = true;
203
+ break;
204
+ }
205
+ if (!n2) {
206
+ let n3 = false;
207
+ for (let e3 = 0; e3 < o2.length; e3++) if (R(t2, o2[e3])) {
208
+ n3 = true;
209
+ break;
210
+ }
211
+ n3 || a2++;
212
+ }
213
+ t2.setUTCDate(t2.getUTCDate() + 1);
214
+ }
215
+ return M(t2) - 1;
216
+ }
217
+ function B(e2, r2, u2 = 0) {
218
+ let o2 = t.fromOADate(e2), a2 = t.fromOADate(r2);
219
+ if (o2 > a2) {
220
+ const n2 = o2;
221
+ o2 = a2, a2 = n2;
222
+ const t2 = e2;
223
+ e2 = r2, r2 = t2;
224
+ }
225
+ if ((u2 = Math.trunc(u2)) < 0 || u2 > 4) throw n.BuiltIn.Value;
226
+ let i2 = o2.getUTCDate();
227
+ const l2 = o2.getUTCMonth() + 1, s2 = o2.getUTCFullYear();
228
+ let f2 = a2.getUTCDate();
229
+ const c2 = a2.getUTCMonth() + 1, m2 = a2.getUTCFullYear();
230
+ switch (u2) {
231
+ case 0:
232
+ 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;
233
+ case 1:
234
+ if (m2 - s2 < 2) {
235
+ const n2 = 1900 !== (p2 = s2) && 1 !== new Date(p2, 1, 29).getMonth() || 1900 === s2 ? 365 : 366;
236
+ return O(r2, e2) / n2;
237
+ }
238
+ {
239
+ const n2 = m2 - s2 + 1, t2 = new Date(m2 + 1, 0, 1), u3 = new Date(s2, 0, 1), o3 = (t2.getTime() - u3.getTime()) / 1e3 / 60 / 60 / 24 / n2;
240
+ return O(r2, e2) / o3;
241
+ }
242
+ case 2:
243
+ return Math.abs(O(r2, e2) / 360);
244
+ case 3:
245
+ return Math.abs(O(r2, e2) / 365);
246
+ case 4:
247
+ return Math.abs(f2 + 30 * c2 + 360 * m2 - (i2 + 30 * l2 + 360 * s2)) / 360;
248
+ }
249
+ var p2;
250
+ }
251
+ const U = Object.freeze(Object.defineProperty({ __proto__: null, DATE: function(n2, e2, r2) {
252
+ return n2 < 0 || n2 >= 1e4 ? Number.NaN : (n2 < 1900 && (n2 += 1900), t.formatResults("Short Date"), t.toOADate(new Date(n2, e2 - 1, r2)));
253
+ }, DATEDIF: C, DATESTRING: function(t2) {
254
+ return n.BuiltIn.NA;
255
+ }, DATEVALUE: function(e2) {
256
+ try {
257
+ const r2 = t.parseAsDateTime(e2);
258
+ if (!r2) throw n.BuiltIn.Value;
259
+ return Math.floor(r2);
260
+ } catch (t2) {
261
+ throw n.BuiltIn.Value;
262
+ }
263
+ }, DAY: function(n2) {
264
+ return A(n2).getUTCDate();
265
+ }, DAYS: O, DAYS360: D, EDATE: function(n2, t2) {
266
+ return n2.setUTCMonth(n2.getUTCMonth() + t2), M(n2);
267
+ }, EOMONTH: function(n2, t2) {
268
+ return n2.setUTCMonth(n2.getUTCMonth() + t2 + 1, 0), M(n2);
269
+ }, HOUR: function(n2) {
270
+ return A(n2).getUTCHours();
271
+ }, ISOWEEKNUM: y, MINUTE: function(n2) {
272
+ return A(n2).getUTCMinutes();
273
+ }, MONTH: function(n2) {
274
+ return A(n2).getUTCMonth() + 1;
275
+ }, NETWORKDAYS: function(n2, t2, e2 = null) {
276
+ let r2 = 1;
277
+ if (n2 > t2) {
278
+ r2 = -1;
279
+ const e3 = n2;
280
+ n2 = t2, t2 = e3;
281
+ }
282
+ const u2 = [];
283
+ null !== e2 && m.flattenParams([e2], c.NUMBER, false, (n3) => {
284
+ u2.push(A(n3));
285
+ });
286
+ let o2 = 0;
287
+ for (; n2 <= t2; ) {
288
+ if (0 !== n2.getUTCDay() && 6 !== n2.getUTCDay()) {
289
+ let t3 = false;
290
+ for (let e3 = 0; e3 < u2.length; e3++) if (R(n2, u2[e3])) {
291
+ t3 = true;
292
+ break;
293
+ }
294
+ t3 || o2++;
295
+ }
296
+ n2.setUTCDate(n2.getUTCDate() + 1);
297
+ }
298
+ return r2 * o2;
299
+ }, NETWORKDAYS_INTL: function(t2, e2, r2 = 1, u2 = null) {
300
+ let o2 = 1;
301
+ if ((t2 = A(t2)) > (e2 = A(e2))) {
302
+ o2 = -1;
303
+ const n2 = t2;
304
+ t2 = e2, e2 = n2;
305
+ }
306
+ if ("1111111" === r2) return 0;
307
+ if ("string" == typeof r2 && Number(r2).toString() !== r2) {
308
+ if (7 !== r2.length) throw n.BuiltIn.Value;
309
+ r2 = r2.charAt(6) + r2.slice(0, 6);
310
+ const t3 = [];
311
+ for (let n2 = 0; n2 < r2.length; n2++) "1" === r2.charAt(n2) && t3.push(n2);
312
+ r2 = t3;
313
+ } else {
314
+ if ("number" != typeof r2) throw n.BuiltIn.Value;
315
+ r2 = g[r2];
316
+ }
317
+ const a2 = [];
318
+ null != u2 && m.flattenParams([u2], c.NUMBER, false, (n2) => {
319
+ a2.push(A(n2));
320
+ });
321
+ let i2 = 0;
322
+ for (; t2 <= e2; ) {
323
+ let n2 = false;
324
+ for (let e3 = 0; e3 < r2.length; e3++) if (r2[e3] === t2.getUTCDay()) {
325
+ n2 = true;
326
+ break;
327
+ }
328
+ if (!n2) {
329
+ let n3 = false;
330
+ for (let e3 = 0; e3 < a2.length; e3++) if (R(t2, a2[e3])) {
331
+ n3 = true;
332
+ break;
333
+ }
334
+ n3 || i2++;
335
+ }
336
+ t2.setUTCDate(t2.getUTCDate() + 1);
337
+ }
338
+ return o2 * i2;
339
+ }, NOW: function() {
340
+ const n2 = /* @__PURE__ */ new Date(), e2 = M(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;
341
+ return t.markVolatile(), t.formatResults("Short Date Short Time"), e2;
342
+ }, SECOND: function(n2) {
343
+ return A(n2).getUTCSeconds();
344
+ }, TIME: function(n2, e2, r2) {
345
+ return n2 < 0 || n2 > 32767 || e2 < 0 || e2 > 32767 || r2 < 0 || r2 > 32767 ? Number.NaN : (t.formatResults("Medium Time"), (3600 * n2 + 60 * e2 + r2) / 86400);
346
+ }, TIMEVALUE: function(n2) {
347
+ const t2 = A(n2);
348
+ return (3600 * t2.getUTCHours() + 60 * t2.getUTCMinutes() + t2.getUTCSeconds()) / 86400;
349
+ }, TODAY: function() {
350
+ t.formatResults("Short Date");
351
+ const n2 = /* @__PURE__ */ new Date();
352
+ return t.toOADate(new Date(n2.getFullYear(), n2.getMonth(), n2.getDate()));
353
+ }, WEEKDAY: function(t2, e2 = 1) {
354
+ const r2 = A(t2).getUTCDay(), u2 = E[e2];
355
+ if (!u2) throw n.BuiltIn.Num;
356
+ return u2[r2];
357
+ }, WEEKNUM: function(n2, t2 = 1) {
358
+ const e2 = A(n2);
359
+ if (21 === t2) return y(n2);
360
+ const r2 = h[t2], u2 = new Date(Date.UTC(e2.getUTCFullYear(), 0, 1)), o2 = u2.getUTCDay() < r2 ? 1 : 0;
361
+ return Math.ceil(((e2.getTime() - u2.getTime()) / 864e5 + 1) / 7) + o2;
362
+ }, WORKDAY: function(n2, t2, e2 = null) {
363
+ return w(n2, t2, 1, e2);
364
+ }, WORKDAY_INTL: w, YEAR: function(n2) {
365
+ return A(n2).getUTCFullYear();
366
+ }, YEARFRAC: B }, Symbol.toStringTag, { value: "Module" }));
367
+ const L = Object.freeze(Object.defineProperty({ __proto__: null, BESSELI: function(n2, t2) {
368
+ return (t2 = Math.trunc(t2)) < 0 ? Number.NaN : a.besseli(n2, t2);
369
+ }, BESSELJ: function(n2, t2) {
370
+ return (t2 = Math.trunc(t2)) < 0 ? Number.NaN : a.besselj(n2, t2);
371
+ }, BESSELK: function(n2, t2) {
372
+ return (t2 = Math.trunc(t2)) < 0 ? Number.NaN : a.besselk(n2, t2);
373
+ }, BESSELY: function(n2, t2) {
374
+ return (t2 = Math.trunc(t2)) < 0 ? Number.NaN : a.bessely(n2, t2);
375
+ } }, Symbol.toStringTag, { value: "Module" })), _ = -512, v = (t2) => {
376
+ const e2 = typeof t2;
377
+ if ("boolean" === e2) return t2 ? 1 : 0;
378
+ if ("number" === e2) {
379
+ if (t2 < 0 || t2 > 281474976710655 || Math.floor(t2) !== t2) throw n.BuiltIn.Num;
380
+ return t2;
381
+ }
382
+ if ("string" === e2) {
383
+ let n2 = 0;
384
+ try {
385
+ n2 = 1 * t2;
386
+ } catch (n3) {
387
+ }
388
+ if (Number.isFinite(n2)) return n2;
389
+ }
390
+ throw n.BuiltIn.Value;
391
+ };
392
+ function V(n2, t2) {
393
+ if (n2 = v(n2), t2 = Math.trunc(t2), Math.abs(t2) > 53) return Number.NaN;
394
+ const e2 = t2 >= 0 ? n2 * 2 ** t2 : Math.trunc(n2 / 2 ** -t2);
395
+ return e2 > 281474976710655 ? Number.NaN : e2;
396
+ }
397
+ function P(t2, e2) {
398
+ if (t2 < -549755813888 || t2 > 549755813888) throw n.BuiltIn.Num;
399
+ if (t2 < 0) return (1099511627776 + t2).toString(16).toUpperCase();
400
+ const r2 = parseInt(t2, 10).toString(16);
401
+ if (void 0 === e2) return r2.toUpperCase();
402
+ if ((e2 = Math.trunc(e2)) <= 0) throw n.BuiltIn.Num;
403
+ if (e2 < r2.length) throw n.BuiltIn.Num;
404
+ return "0".repeat(e2 - r2.length) + r2.toUpperCase();
405
+ }
406
+ function F(t2, e2) {
407
+ if (t2 < -536870912 || t2 > 536870912) throw n.BuiltIn.Num;
408
+ if (t2 < 0) return (t2 + 1073741824).toString(8);
409
+ const r2 = parseInt(t2, 10).toString(8);
410
+ if (void 0 === e2) return r2.toUpperCase();
411
+ if ((e2 = Math.trunc(e2)) <= 0) throw n.BuiltIn.Num;
412
+ if (e2 < r2.length) throw n.BuiltIn.Num;
413
+ return "0".repeat(e2 - r2.length) + r2;
414
+ }
415
+ function x(n2) {
416
+ if (!/^[0-9A-Fa-f]{1,10}$/.test(n2)) return Number.NaN;
417
+ const t2 = parseInt(n2, 16);
418
+ return t2 >= 549755813888 ? t2 - 1099511627776 : t2;
419
+ }
420
+ function H(t2) {
421
+ if (t2.length > 10) throw n.BuiltIn.Num;
422
+ for (const e3 of t2) if (e3 < "0" || e3 > "7") throw n.BuiltIn.Num;
423
+ const e2 = parseInt(t2, 8);
424
+ return e2 >= 536870912 ? e2 - 1073741824 : e2;
425
+ }
426
+ const G = Object.freeze(Object.defineProperty({ __proto__: null, BIN2DEC: function(n2) {
427
+ const t2 = n2.toString();
428
+ return t2.length > 10 ? Number.NaN : 10 === t2.length && "1" === t2.substring(0, 1) ? parseInt(t2.substring(1), 2) + _ : parseInt(t2, 2);
429
+ }, BIN2HEX: function(t2, e2) {
430
+ const r2 = t2.toString();
431
+ if (r2.length > 10) throw n.BuiltIn.Num;
432
+ if (10 === r2.length && "1" === r2.substring(0, 1)) return (parseInt(r2.substring(1), 2) + 1099511627264).toString(16).toUpperCase();
433
+ const u2 = parseInt(t2, 2).toString(16);
434
+ if (void 0 === e2) return u2.toUpperCase();
435
+ if (e2 < 0) throw n.BuiltIn.Num;
436
+ if ((e2 = Math.trunc(e2)) >= u2.length) return ("0".repeat(e2 - u2.length) + u2).toUpperCase();
437
+ throw n.BuiltIn.Num;
438
+ }, BIN2OCT: function(t2, e2) {
439
+ let r2 = t2.toString();
440
+ if (r2.length > 10) throw n.BuiltIn.Num;
441
+ if (10 === r2.length && "1" === r2.substring(0, 1)) return (parseInt(r2.substring(1), 2) + 1073741312).toString(8);
442
+ const u2 = parseInt(t2, 2).toString(8);
443
+ if (void 0 === e2) return u2.toUpperCase();
444
+ if (e2 < 0) throw n.BuiltIn.Num;
445
+ if ((e2 = Math.trunc(e2)) >= u2.length) return "0".repeat(e2 - u2.length) + u2;
446
+ throw n.BuiltIn.Num;
447
+ }, BITAND: function(n2, t2) {
448
+ return (n2 = v(n2)) & (t2 = v(t2));
449
+ }, BITLSHIFT: V, BITOR: function(n2, t2) {
450
+ return (n2 = v(n2)) | (t2 = v(t2));
451
+ }, BITRSHIFT: function(n2, t2) {
452
+ return V(n2 = v(n2), -t2);
453
+ }, BITXOR: function(n2, t2) {
454
+ return (n2 = v(n2)) ^ (t2 = v(t2));
455
+ }, DEC2BIN: function(t2, e2) {
456
+ if (t2 < _ || t2 > 511) throw n.BuiltIn.Num;
457
+ if (t2 < 0) return "1" + "0".repeat(9 - (512 + t2).toString(2).length) + (512 + t2).toString(2);
458
+ const r2 = parseInt(t2, 10).toString(2);
459
+ if (void 0 === e2) return r2;
460
+ if ((e2 = Math.trunc(e2)) <= 0) throw n.BuiltIn.Num;
461
+ if (e2 < r2.length) throw n.BuiltIn.Num;
462
+ return "0".repeat(e2 - r2.length) + r2;
463
+ }, DEC2HEX: P, DEC2OCT: F, HEX2BIN: function(n2, t2) {
464
+ if (n2.length > 10 || !/^[0-9a-fA-F]*$/.test(n2)) return Number.NaN;
465
+ const e2 = 10 === n2.length && "f" === n2.substring(0, 1).toLowerCase(), r2 = e2 ? parseInt(n2, 16) - 1099511627776 : parseInt(n2, 16);
466
+ if (r2 < _ || r2 > 511) return Number.NaN;
467
+ if (e2) return "1" + "0".repeat(9 - (r2 + 512).toString(2).length) + (r2 + 512).toString(2);
468
+ const u2 = r2.toString(2);
469
+ return void 0 === t2 ? u2 : (t2 = Math.trunc(t2)) <= 0 || t2 < u2.length ? Number.NaN : "0".repeat(t2 - u2.length) + u2;
470
+ }, HEX2DEC: x, HEX2OCT: function(t2, e2) {
471
+ if (t2.length > 10 || !/^[0-9a-fA-F]*$/.test(t2)) throw n.BuiltIn.Num;
472
+ const r2 = x(t2);
473
+ if (r2 > 536870911 || r2 < -536870912) throw n.BuiltIn.Num;
474
+ return F(r2, e2);
475
+ }, OCT2BIN: function(t2, e2) {
476
+ if (t2.length > 10) throw n.BuiltIn.Num;
477
+ if (e2 > 10) throw n.BuiltIn.Num;
478
+ if (void 0 !== e2 && e2 < 0) throw n.BuiltIn.Num;
479
+ e2 = Math.trunc(e2);
480
+ const r2 = 10 === t2.length && "7" === t2.substring(0, 1), u2 = H(t2);
481
+ if (u2 < _ || u2 > 511) throw n.BuiltIn.Num;
482
+ if (r2) return "1" + "0".repeat(9 - (512 + u2).toString(2).length) + (512 + u2).toString(2);
483
+ const o2 = u2.toString(2);
484
+ if (0 === e2) return o2;
485
+ if (e2 < o2.length) throw n.BuiltIn.Num;
486
+ return "0".repeat(e2 - o2.length) + o2;
487
+ }, OCT2DEC: H, OCT2HEX: function(n2, t2) {
488
+ if (n2.length > 10) return Number.NaN;
489
+ for (const t3 of n2) if (t3 < "0" || t3 > "7") return Number.NaN;
490
+ if ((t2 = Math.trunc(t2)) < 0 || t2 > 10) return Number.NaN;
491
+ const e2 = P(H(n2));
492
+ return 0 === t2 ? e2 : t2 < e2.length ? Number.NaN : "0".repeat(t2 - e2.length) + e2;
493
+ } }, Symbol.toStringTag, { value: "Module" }));
494
+ const X = Object.freeze(Object.defineProperty({ __proto__: null, CONVERT: function(t2, e2, r2) {
495
+ const u2 = [["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]], o2 = { 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"] };
496
+ let i2, l2 = null, s2 = null, f2 = e2, c2 = r2, m2 = 1, p2 = 1;
497
+ for (let n2 = 0; n2 < u2.length; n2++) i2 = null === u2[n2][2] ? [] : u2[n2][2], (u2[n2][1] === f2 || i2.indexOf(f2) >= 0) && (l2 = u2[n2]), (u2[n2][1] === c2 || i2.indexOf(c2) >= 0) && (s2 = u2[n2]);
498
+ if (null === l2) {
499
+ const n2 = o2[e2.substring(0, 2)];
500
+ let t3 = a2[e2.substring(0, 1)];
501
+ "da" === e2.substring(0, 2) && (t3 = ["dekao", 10, "da"]), n2 ? (m2 = n2[2], f2 = e2.substring(2)) : t3 && (m2 = t3[1], f2 = e2.substring(t3[2].length));
502
+ for (let n3 = 0; n3 < u2.length; n3++) i2 = null === u2[n3][2] ? [] : u2[n3][2], (u2[n3][1] === f2 || i2.indexOf(f2) >= 0) && (l2 = u2[n3]);
503
+ }
504
+ if (null === s2) {
505
+ const n2 = o2[r2.substring(0, 2)];
506
+ let t3 = a2[r2.substring(0, 1)];
507
+ "da" === r2.substring(0, 2) && (t3 = ["dekao", 10, "da"]), n2 ? (p2 = n2[2], c2 = r2.substring(2)) : t3 && (p2 = t3[1], c2 = r2.substring(t3[2].length));
508
+ for (let n3 = 0; n3 < u2.length; n3++) i2 = null === u2[n3][2] ? [] : u2[n3][2], (u2[n3][1] === c2 || i2.indexOf(c2) >= 0) && (s2 = u2[n3]);
509
+ }
510
+ if (null === l2 || null === s2) throw n.BuiltIn.NA;
511
+ if (l2[3] !== s2[3]) throw n.BuiltIn.NA;
512
+ return t2 * l2[6] * m2 / (s2[6] * p2);
513
+ } }, Symbol.toStringTag, { value: "Module" }));
514
+ const Y = Object.freeze(Object.defineProperty({ __proto__: null, DELTA: function(n2, t2 = 0) {
515
+ return n2 === t2 ? 1 : 0;
516
+ }, GESTEP: function(n2, t2 = 0) {
517
+ return n2 >= t2 ? 1 : 0;
518
+ } }, Symbol.toStringTag, { value: "Module" }));
519
+ const k = Object.freeze(Object.defineProperty({ __proto__: null, ERF: function(n2, t2 = 0) {
520
+ return i.erf(n2);
521
+ }, ERFC: function(n2) {
522
+ return i.erfc(n2);
523
+ }, ERF_PRECISE: function(n2) {
524
+ return i.erf(n2);
525
+ } }, Symbol.toStringTag, { value: "Module" })), z = /^\s?[+-]?\s?[0-9]+[.]?[0-9]*([eE][+-][0-9]+)?\s?$/, j = /^\s?([+-]?\s?([0-9]+[.]?[0-9]*([eE][+-][0-9]+)?)?)\s?[ij]\s?$/, W = /^\s?([+-]?\s?[0-9]+[.]?[0-9]*([eE][+-][0-9]+)?)\s?([+-]?\s?([0-9]+[.]?[0-9]*([eE][+-][0-9]+)?)?)\s?[ij]\s?$/, K = /^\s?[+-]?\s?$/;
526
+ function $(t2) {
527
+ let e2 = 0, r2 = 0, u2 = "i";
528
+ if ("number" == typeof t2) return { real: t2, im: r2, unit: u2 };
529
+ if ("boolean" == typeof t2) throw n.BuiltIn.Value;
530
+ let o2 = t2.match(z);
531
+ if (o2) return e2 = Number(o2[0]), { real: e2, im: r2, unit: u2 };
532
+ if (o2 = t2.match(j), o2) return r2 = Number(K.test(o2[1]) ? o2[1] + "1" : o2[1]), u2 = o2[0].slice(-1), { real: e2, im: r2, unit: u2 };
533
+ if (o2 = t2.match(W), o2) return e2 = Number(o2[1]), r2 = Number(K.test(o2[3]) ? o2[3] + "1" : o2[3]), u2 = o2[0].slice(-1), { real: e2, im: r2, unit: u2 };
534
+ throw n.BuiltIn.Num;
535
+ }
536
+ function q(t2, e2, r2 = "i") {
537
+ if ("i" !== r2 && "j" !== r2) throw n.BuiltIn.Value;
538
+ if (0 === t2 && 0 === e2) return 0;
539
+ if (0 === t2) return 1 === e2 ? r2 : -1 === e2 ? "-" + r2 : e2.toString() + r2;
540
+ if (0 === e2) return t2.toString();
541
+ let u2 = e2 > 0 ? "+" : "";
542
+ return 1 === e2 ? t2.toString() + u2 + r2 : -1 === e2 ? t2.toString() + u2 + "-" + r2 : t2.toString() + u2 + e2.toString() + r2;
543
+ }
544
+ function Q(n2) {
545
+ const { real: t2, im: e2 } = $(n2);
546
+ return Math.sqrt(Math.pow(t2, 2) + Math.pow(e2, 2));
547
+ }
548
+ function Z(n2) {
549
+ const { real: t2, im: e2 } = $(n2);
550
+ 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;
551
+ }
552
+ function J(n2) {
553
+ const { real: t2, im: e2, unit: r2 } = $(n2);
554
+ return q(Math.cos(t2) * (Math.exp(e2) + Math.exp(-e2)) / 2, -Math.sin(t2) * (Math.exp(e2) - Math.exp(-e2)) / 2, r2);
555
+ }
556
+ function nn(n2) {
557
+ const { real: t2, im: e2, unit: r2 } = $(n2);
558
+ return q(Math.cos(e2) * (Math.exp(t2) + Math.exp(-t2)) / 2, -(-Math.sin(e2) * (Math.exp(t2) - Math.exp(-t2)) / 2), r2);
559
+ }
560
+ function tn(t2, e2) {
561
+ const r2 = $(t2), u2 = r2.real, o2 = r2.im, a2 = r2.unit, i2 = $(e2), l2 = i2.real, s2 = i2.im, f2 = i2.unit;
562
+ if (0 === l2 && 0 === s2 || a2 !== f2) throw n.BuiltIn.Num;
563
+ const c2 = a2, m2 = Math.pow(l2, 2) + Math.pow(s2, 2);
564
+ return q((u2 * l2 + o2 * s2) / m2, (o2 * l2 - u2 * s2) / m2, c2);
565
+ }
566
+ function en(n2) {
567
+ const { real: t2, im: e2, unit: r2 } = $(n2);
568
+ return q(Math.sin(t2) * (Math.exp(e2) + Math.exp(-e2)) / 2, Math.cos(t2) * (Math.exp(e2) - Math.exp(-e2)) / 2, r2);
569
+ }
570
+ function rn(n2) {
571
+ const { real: t2, im: e2, unit: r2 } = $(n2);
572
+ return q(Math.cos(e2) * (Math.exp(t2) - Math.exp(-t2)) / 2, Math.sin(e2) * (Math.exp(t2) + Math.exp(-t2)) / 2, r2);
573
+ }
574
+ const un = Object.freeze(Object.defineProperty({ __proto__: null, COMPLEX: q, IMABS: Q, IMAGINARY: function(n2) {
575
+ return $(n2).im;
576
+ }, IMARGUMENT: Z, IMCONJUGATE: function(n2) {
577
+ const { real: t2, im: e2, unit: r2 } = $(n2);
578
+ return 0 !== e2 ? q(t2, -e2, r2) : "" + t2;
579
+ }, IMCOS: J, IMCOSH: nn, IMCOT: function(n2) {
580
+ return tn(J(n2), en(n2));
581
+ }, IMCSC: function(n2) {
582
+ return tn("1", en(n2));
583
+ }, IMCSCH: function(n2) {
584
+ return tn("1", rn(n2));
585
+ }, IMDIV: tn, IMEXP: function(n2) {
586
+ const { real: t2, im: e2, unit: r2 } = $(n2), u2 = Math.exp(t2);
587
+ return q(u2 * Math.cos(e2), u2 * Math.sin(e2), r2);
588
+ }, IMLN: function(n2) {
589
+ const { real: t2, im: e2, unit: r2 } = $(n2);
590
+ return q(Math.log(Math.sqrt(Math.pow(t2, 2) + Math.pow(e2, 2))), Math.atan(e2 / t2), r2);
591
+ }, IMLOG10: function(n2) {
592
+ const { real: t2, im: e2, unit: r2 } = $(n2);
593
+ return q(Math.log(Math.sqrt(Math.pow(t2, 2) + Math.pow(e2, 2))) / Math.log(10), Math.atan(e2 / t2) / Math.log(10), r2);
594
+ }, IMLOG2: function(n2) {
595
+ const { real: t2, im: e2, unit: r2 } = $(n2);
596
+ return q(Math.log(Math.sqrt(Math.pow(t2, 2) + Math.pow(e2, 2))) / Math.log(2), Math.atan(e2 / t2) / Math.log(2), r2);
597
+ }, IMPOWER: function(n2, t2) {
598
+ const { unit: e2 } = $(n2), r2 = Math.pow(Q(n2), t2), u2 = Z(n2);
599
+ return q(r2 * Math.cos(t2 * u2), r2 * Math.sin(t2 * u2), e2);
600
+ }, IMPRODUCT: function(...t2) {
601
+ const e2 = t2.length;
602
+ if (0 === e2) return 0;
603
+ let r2 = t2[0];
604
+ $(r2);
605
+ for (let u2 = 1; u2 < e2; u2++) {
606
+ const e3 = t2[u2], o2 = $(r2), a2 = $(e3);
607
+ if (o2.unit !== a2.unit) throw n.BuiltIn.Value;
608
+ const i2 = o2.real, l2 = o2.im, s2 = a2.real, f2 = a2.im;
609
+ r2 = q(i2 * s2 - l2 * f2, i2 * f2 + l2 * s2);
610
+ }
611
+ return r2;
612
+ }, IMREAL: function(n2) {
613
+ return $(n2).real;
614
+ }, IMSEC: function(n2) {
615
+ return tn("1", J(n2));
616
+ }, IMSECH: function(n2) {
617
+ return tn("1", nn(n2));
618
+ }, IMSIN: en, IMSINH: rn, IMSQRT: function(n2) {
619
+ const { unit: t2 } = $(n2), e2 = Math.sqrt(Q(n2)), r2 = Z(n2);
620
+ return q(e2 * Math.cos(r2 / 2), e2 * Math.sin(r2 / 2), t2);
621
+ }, IMSUB: function(t2, e2) {
622
+ const r2 = $(t2), u2 = r2.real, o2 = r2.im, a2 = r2.unit, i2 = $(e2), l2 = i2.real, s2 = i2.im;
623
+ if (a2 !== i2.unit) throw n.BuiltIn.Value;
624
+ return q(u2 - l2, o2 - s2, a2);
625
+ }, IMSUM: function(...t2) {
626
+ let e2, r2 = 0, u2 = 0;
627
+ const o2 = t2.length;
628
+ for (let a2 = 0; a2 < o2; a2++) {
629
+ const o3 = t2[a2], { real: i2, im: l2, unit: s2 } = $(o3);
630
+ if (e2 || (e2 = s2), e2 !== s2) throw n.BuiltIn.Value;
631
+ r2 += i2, u2 += l2;
632
+ }
633
+ return q(r2, u2, e2);
634
+ }, IMTAN: function(n2) {
635
+ return tn(en(n2), J(n2));
636
+ } }, Symbol.toStringTag, { value: "Module" })), on = 1e-7, an = (n2) => {
637
+ const t2 = n2.getCurrencySymbol(), e2 = n2.getNumberGroupSeparator(), r2 = n2.getNumberDecimalSeparator();
638
+ return `${t2}#${e2}##0${r2}00_);[Red](${t2}#${e2}##0${r2}00)`;
639
+ }, ln = (n2, t2) => {
640
+ const e2 = t2.getFullYear() - n2.getFullYear();
641
+ if (e2 > 1) return true;
642
+ if (e2 < 1) return false;
643
+ const r2 = t2.getMonth() - n2.getMonth();
644
+ if (r2 > 0) return true;
645
+ if (r2 < 0) return false;
646
+ return t2.getDate() - n2.getDate() > 0;
647
+ };
648
+ function sn(n2) {
649
+ return !(n2 < 1 || n2 > 4 || 3 === n2);
650
+ }
651
+ function fn(n2) {
652
+ return !(n2 < 0 || n2 >= 2958466);
653
+ }
654
+ function cn(n2) {
655
+ return !(n2 < 0 || n2 > 4);
656
+ }
657
+ function mn(n2, e2, r2, u2 = 0, o2 = 0) {
658
+ let a2;
659
+ if (0 === n2) a2 = u2 + r2 * e2;
660
+ else {
661
+ const t2 = Math.pow(1 + n2, e2);
662
+ a2 = 1 === o2 ? u2 * t2 + r2 * (1 + n2) * (t2 - 1) / n2 : u2 * t2 + r2 * (t2 - 1) / n2;
663
+ }
664
+ return t.formatResults(an(t.getRuntime())), -a2;
665
+ }
666
+ function pn(t2, ...e2) {
667
+ if (e2.length > 254) throw n.BuiltIn.Value;
668
+ let r2 = 0;
669
+ for (let n2 = e2.length - 1; n2 >= 0; n2--) {
670
+ if (r2 += e2[n2], -1 === t2) {
671
+ if (0 === r2) continue;
672
+ return 1 / 0;
673
+ }
674
+ r2 /= 1 + t2;
675
+ }
676
+ return r2;
677
+ }
678
+ function Nn(n2, e2, r2, u2 = 0, o2 = 0) {
679
+ if (0 === n2) return (-r2 - u2) / e2;
680
+ o2 = o2 ? 1 : 0;
681
+ const a2 = Math.pow(1 + n2, e2);
682
+ return t.formatResults(an(t.getRuntime())), (u2 * n2 + r2 * n2 * a2) * (o2 ? 1 / (1 + n2) : 1) / (1 - a2);
683
+ }
684
+ const hn = Object.freeze(Object.defineProperty({ __proto__: null, ACCRINT: function(n2, t2, e2, r2, u2, o2, a2 = 0, i2 = true) {
685
+ return fn(n2) && fn(t2) && fn(e2) && sn(o2) && !cn(a2) ? u2 * r2 * B(n2, e2, a2) : Number.NaN;
686
+ }, ACCRINTM: function(n2, t2, e2, r2, u2 = 0) {
687
+ }, AMORLINC: function(n2, t2, e2, r2, u2, o2, a2 = 0) {
688
+ }, COUPDAYBS: function(n2, t2, e2, r2 = 0) {
689
+ }, COUPDAYS: function(n2, e2, r2, u2 = 0) {
690
+ if (1 === u2) {
691
+ const u3 = function(n3, t2, e3) {
692
+ const r3 = new Date(t2);
693
+ if (r3.setFullYear(n3.getFullYear()), r3 > n3) for (; r3 > n3; ) r3.setMonth(r3.getMonth() - Math.round(12 / e3));
694
+ else {
695
+ const t3 = new Date(r3);
696
+ for (t3.setMonth(t3.getMonth() + Math.round(12 / e3)); t3 <= n3; ) r3.setTime(t3.getTime()), t3.setMonth(t3.getMonth() + Math.round(12 / e3));
697
+ }
698
+ return r3;
699
+ }(t.fromOADate(n2), t.fromOADate(e2), r2), o3 = new Date(u3);
700
+ return o3.setMonth(o3.getMonth() + Math.round(12 / r2)), C(t.toOADate(u3), t.toOADate(o3), "D");
701
+ }
702
+ let o2;
703
+ switch (u2) {
704
+ case 0:
705
+ case 2:
706
+ case 4:
707
+ o2 = 360;
708
+ break;
709
+ case 3:
710
+ o2 = 365;
711
+ break;
712
+ default:
713
+ return Number.NaN;
714
+ }
715
+ return o2 / r2;
716
+ }, COUPNCD: function(n2, t2, e2, r2 = 0) {
717
+ }, COUPNUM: function(n2, t2, e2, r2 = 0) {
718
+ }, COUPPCD: function(n2, t2, e2, r2 = 0) {
719
+ }, CUMIPMT: function(n2, t2, e2, r2, u2, o2) {
720
+ if (!fn(r2) || !fn(u2)) return Number.NaN;
721
+ if (n2 <= 0 || t2 <= 0 || e2 <= 0) return Number.NaN;
722
+ if (r2 < 1 || u2 < 1 || r2 > u2) return Number.NaN;
723
+ if (0 !== o2 && 1 !== o2) return Number.NaN;
724
+ const a2 = Nn(n2, t2, e2, 0, o2);
725
+ let i2 = 0;
726
+ 1 === r2 && (0 === o2 && (i2 = -e2), r2++);
727
+ for (let t3 = r2; t3 <= u2; t3++) i2 += 1 === o2 ? mn(n2, t3 - 2, a2, e2, 1) - a2 : mn(n2, t3 - 1, a2, e2, 0);
728
+ return i2 *= n2, i2;
729
+ }, CUMPRINC: function(n2, t2, e2, r2, u2, o2) {
730
+ if (!fn(r2) || !fn(u2)) return Number.NaN;
731
+ if (r2 > u2) return Number.NaN;
732
+ if (n2 <= 0 || t2 <= 0 || e2 <= 0) return Number.NaN;
733
+ if (r2 < 1 || u2 < 1 || r2 > u2) return Number.NaN;
734
+ if (0 !== o2 && 1 !== o2) return Number.NaN;
735
+ const a2 = Nn(n2, t2, e2, 0, o2);
736
+ let i2 = 0;
737
+ 1 === r2 && (i2 = 0 === o2 ? a2 + e2 * n2 : a2, r2++);
738
+ for (let t3 = r2; t3 <= u2; t3++) i2 += o2 > 0 ? a2 - (mn(n2, t3 - 2, a2, e2, 1) - a2) * n2 : a2 - mn(n2, t3 - 1, a2, e2, 0) * n2;
739
+ return i2;
740
+ }, DB: function(n2, e2, r2, u2, o2 = 12) {
741
+ if (n2 < 0 || e2 < 0 || r2 < 0 || u2 < 0) return Number.NaN;
742
+ if (o2 < 1 || o2 > 12) return Number.NaN;
743
+ if (u2 > r2) return Number.NaN;
744
+ if (e2 >= n2) return 0;
745
+ const a2 = 1 - Math.pow(e2 / n2, 1 / r2), i2 = Math.round(1e3 * a2) / 1e3;
746
+ if (t.formatResults(an(t.getRuntime())), 1 === u2) return n2 * i2 * o2 / 12;
747
+ let l2 = n2 * i2 * o2 / 12;
748
+ for (let t2 = 2; t2 <= u2; t2++) {
749
+ if (t2 === u2 && u2 === r2) return Math.max(0, n2 - l2 - e2);
750
+ const o3 = (n2 - l2) * i2;
751
+ if (t2 === u2) return o3;
752
+ l2 += o3;
753
+ }
754
+ return 0;
755
+ }, DDB: function(n2, t2, e2, r2, u2 = 2) {
756
+ if (n2 < 0 || t2 < 0 || e2 < 0 || r2 < 0 || u2 <= 0) return Number.NaN;
757
+ if (r2 > e2) return Number.NaN;
758
+ if (t2 >= n2) return 0;
759
+ let o2 = 0, a2 = 0;
760
+ for (let i2 = 1; i2 <= r2; i2++) a2 = Math.min(u2 / e2 * (n2 - o2), n2 - t2 - o2), o2 += a2;
761
+ return a2;
762
+ }, DISC: function(t2, e2, r2, u2, o2 = 0) {
763
+ if (!fn(t2) || !fn(e2) || !cn(o2)) return Number.NaN;
764
+ if (r2 <= 0 || u2 <= 0) return Number.NaN;
765
+ if (t2 >= e2) throw n.BuiltIn.Value;
766
+ let a2, i2;
767
+ switch (o2) {
768
+ case 0:
769
+ a2 = 360, i2 = D(t2, e2, false);
770
+ break;
771
+ case 1:
772
+ case 3:
773
+ a2 = 365, i2 = C(t2, e2, "D");
774
+ break;
775
+ case 2:
776
+ a2 = 360, i2 = C(t2, e2, "D");
777
+ break;
778
+ case 4:
779
+ a2 = 360, i2 = D(t2, e2, true);
780
+ break;
781
+ default:
782
+ return Number.NaN;
783
+ }
784
+ return (u2 - r2) / u2 * a2 / i2;
785
+ }, DOLLARDE: function(n2, t2) {
786
+ if ((t2 = Math.trunc(t2)) < 0) return Number.NaN;
787
+ if (t2 < 1) return 1 / 0;
788
+ let e2 = n2;
789
+ e2 += n2 % 1 * Math.pow(10, Math.ceil(Math.log(t2) / Math.LN10)) / t2;
790
+ const r2 = Math.pow(10, Math.ceil(Math.log(t2) / Math.LN2) + 1);
791
+ return e2 = Math.round(e2 * r2) / r2, e2;
792
+ }, DOLLARFR: function(n2, t2) {
793
+ if ((t2 = Math.trunc(t2)) < 0) return Number.NaN;
794
+ if (t2 < 1) return 1 / 0;
795
+ let e2 = n2;
796
+ return e2 += n2 % 1 * Math.pow(10, -Math.ceil(Math.log(t2) / Math.LN10)) * t2, e2;
797
+ }, DURATION: function(n2, t2, e2, r2, u2, o2 = 0) {
798
+ if (!fn(n2) || !fn(t2) || !cn(o2)) return Number.NaN;
799
+ }, EFFECT: function(n2, t2) {
800
+ return t2 = Math.trunc(t2), Math.pow(1 + n2 / t2, t2) - 1;
801
+ }, FV: mn, FVSCHEDULE: function(t2, e2) {
802
+ let r2 = t2;
803
+ for (const t3 of e2.values({ includeMistyped: true })) {
804
+ if ("number" != typeof t3) throw n.BuiltIn.Value;
805
+ r2 *= 1 + t3;
806
+ }
807
+ return r2;
808
+ }, INTRATE: function(n2, e2, r2, u2, o2 = 2) {
809
+ return fn(n2) && fn(e2) && cn(o2) ? r2 <= 0 || u2 <= 0 || n2 >= e2 ? Number.NaN : r2 >= u2 ? 1 / 0 : ln(t.fromOADate(n2), t.fromOADate(e2)) ? Number.NaN : void 0 : Number.NaN;
810
+ }, IPMT: function(n2, t2, e2, r2, u2 = 0, o2 = 0) {
811
+ const a2 = Nn(n2, e2, r2, u2, o2);
812
+ return 1 === t2 ? n2 * (o2 ? 0 : -r2) : n2 * (o2 ? mn(n2, t2 - 2, a2, r2, o2) - a2 : mn(n2, t2 - 1, a2, r2, o2));
813
+ }, IRR: function(n2, t2 = 0.1) {
814
+ }, ISPMT: function(n2, t2, e2, r2) {
815
+ return 0 === e2 ? 1 / 0 : r2 * n2 * (t2 / e2 - 1);
816
+ }, MDURATION: function(n2, t2, e2, r2, u2, o2 = 2) {
817
+ if (!(fn(n2) && fn(t2) && sn(u2) && cn(o2))) return Number.NaN;
818
+ }, MIRR: function(n2, t2, e2) {
819
+ let r2 = false, u2 = false;
820
+ const o2 = [], a2 = [];
821
+ for (const t3 of n2) t3 > 0 ? (r2 = true, o2.push(t3), a2.push(0)) : t3 < 0 ? (u2 = true, a2.push(t3), o2.push(0)) : (a2.push(0), o2.push(0));
822
+ if (!r2 || !u2) return 1 / 0;
823
+ const i2 = pn(e2, ...o2);
824
+ if (i2 === 1 / 0) return i2;
825
+ const l2 = pn(t2, ...a2);
826
+ if (l2 === 1 / 0) return i2;
827
+ const s2 = n2.length;
828
+ return Math.pow(-i2 * Math.pow(1 + e2, s2) / l2 / (1 + t2), 1 / (s2 - 1)) - 1;
829
+ }, NOMINAL: function(n2, t2) {
830
+ return t2 = Math.trunc(t2), (Math.pow(n2 + 1, 1 / t2) - 1) * t2;
831
+ }, NPER: function(n2, t2, e2, r2 = 0, u2 = 0) {
832
+ return 0 === n2 ? 0 === t2 ? 1 / 0 : (-e2 - r2) / t2 : (u2 && (t2 *= 1 + n2), Math.log((t2 - r2 * n2) / (e2 * n2 + t2)) / Math.log(1 + n2));
833
+ }, NPV: pn, ODDFPRICE: function(n2, t2, e2, r2, u2, o2, a2, i2 = 0) {
834
+ if (!(fn(n2) && fn(t2) && fn(e2) && fn(r2) && sn(a2) && cn(i2))) return Number.NaN;
835
+ }, ODDFYIELD: function(n2, t2, e2, r2, u2, o2, a2, i2 = 0) {
836
+ if (!(fn(n2) && fn(t2) && fn(e2) && fn(r2) && sn(a2) && cn(i2))) return Number.NaN;
837
+ }, ODDLPRICE: function(n2, t2, e2, r2, u2, o2, a2, i2 = 0) {
838
+ if (!(fn(n2) && fn(t2) && fn(e2) && sn(a2) && cn(i2))) return Number.NaN;
839
+ }, ODDLYIELD: function(n2, t2, e2, r2, u2, o2, a2, i2 = 0) {
840
+ if (!(fn(n2) && fn(t2) && fn(e2) && sn(a2) && cn(i2))) return Number.NaN;
841
+ }, PDURATION: function(n2, t2, e2) {
842
+ return (Math.log(e2) - Math.log(t2)) / Math.log(1 + n2);
843
+ }, PMT: Nn, PRICE: function(n2, t2, e2, r2, u2, o2, a2 = 0) {
844
+ if (!(fn(n2) && fn(t2) && sn(o2) && cn(a2))) return Number.NaN;
845
+ }, PRICEDISC: function(t2, e2, r2, u2, o2 = 0) {
846
+ if (!fn(t2) || !fn(e2) || !cn(o2)) return Number.NaN;
847
+ if (r2 <= 0 || u2 <= 0) return Number.NaN;
848
+ if (t2 >= e2) throw n.BuiltIn.Value;
849
+ let a2, i2;
850
+ switch (o2) {
851
+ case 0:
852
+ a2 = 360, i2 = D(t2, e2, false);
853
+ break;
854
+ case 1:
855
+ case 3:
856
+ a2 = 365, i2 = C(t2, e2, "D");
857
+ break;
858
+ case 2:
859
+ a2 = 360, i2 = C(t2, e2, "D");
860
+ break;
861
+ case 4:
862
+ a2 = 360, i2 = D(t2, e2, true);
863
+ break;
864
+ default:
865
+ return Number.NaN;
866
+ }
867
+ return u2 - r2 * u2 * i2 / a2;
868
+ }, PRICEMAT: function(n2, t2, e2, r2, u2, o2 = 0) {
869
+ if (!(fn(n2) && fn(t2) && fn(e2) && cn(o2))) return Number.NaN;
870
+ }, PV: function(n2, e2, r2, u2 = 0, o2 = 0) {
871
+ return o2 = o2 ? 1 : 0, -1 === n2 ? 0 === e2 ? Number.NaN : 1 / 0 : (t.formatResults(an(t.getRuntime())), 0 === n2 ? -r2 * e2 - u2 : ((1 - Math.pow(1 + n2, e2)) * r2 * (1 + n2 * o2) / n2 - u2) / Math.pow(1 + n2, e2));
872
+ }, RATE: function(t2, e2, r2, u2 = 0, o2 = 0, a2 = 0.1) {
873
+ if (a2 <= -1) throw n.BuiltIn.Value;
874
+ o2 = o2 ? 1 : 0;
875
+ let i2 = a2;
876
+ 0.1 === i2 && Math.abs(e2) > Math.abs(r2) / 10 && (i2 = 0.2);
877
+ for (let n2 = 0; n2 < 20; n2++) {
878
+ if (i2 <= -1) return Number.NaN;
879
+ let n3 = 0;
880
+ if (Math.abs(i2) < on) n3 = r2 * (1 + t2 * i2) + e2 * (1 + i2 * o2) * t2 + u2;
881
+ else {
882
+ const a4 = Math.pow(1 + i2, t2);
883
+ n3 = r2 * a4 + e2 * (1 / i2 + o2) * (a4 - 1) + u2;
884
+ }
885
+ if (Math.abs(n3) < on) return i2;
886
+ let a3 = 0;
887
+ if (Math.abs(i2) < on) a3 = r2 * t2 + e2 * o2 * t2;
888
+ else {
889
+ const n4 = Math.pow(1 + i2, t2), u3 = t2 * Math.pow(1 + i2, t2 - 1);
890
+ a3 = r2 * u3 + e2 * (1 / i2 + o2) * u3 + e2 * (-1 / (i2 * i2)) * (n4 - 1);
891
+ }
892
+ i2 -= n3 / a3;
893
+ }
894
+ return Number.NaN;
895
+ }, RECEIVED: function(n2, t2, e2, r2, u2 = 0) {
896
+ if (!fn(n2) || !fn(t2) || !cn(u2)) return Number.NaN;
897
+ }, RRI: function(n2, t2, e2) {
898
+ return 0 === t2 || e2 < 0 && t2 > 0 || e2 > 0 && t2 < 0 ? Number.NaN : Math.pow(e2 / e2, 1 / n2) - 1;
899
+ }, SLN: function(n2, t2, e2) {
900
+ return (n2 - t2) / e2;
901
+ }, STOCKHISTORY: function(t2, e2, r2, u2 = 0, o2 = 1, a2 = [0, 1, 2, 3, 4]) {
902
+ if (!fn(e2) || !fn(r2)) throw n.BuiltIn.Num;
903
+ }, SYD: function(n2, t2, e2, r2) {
904
+ return r2 > e2 ? Number.NaN : (n2 - t2) * (e2 - r2 + 1) * 2 / (e2 * (e2 + 1));
905
+ }, TBILLEQ: function(n2, e2, r2) {
906
+ if (!fn(n2) || !fn(e2)) return Number.NaN;
907
+ if ((n2 = Math.round(n2)) >= (e2 = Math.round(e2)) || ln(t.fromOADate(n2), t.fromOADate(e2))) return Number.NaN;
908
+ const u2 = 360 - r2 * (e2 - n2);
909
+ return 0 === u2 ? 0 : u2 < 0 ? Number.NaN : 365 * r2 / u2;
910
+ }, TBILLPRICE: function(n2, e2, r2) {
911
+ if (!fn(n2) || !fn(e2)) return Number.NaN;
912
+ if ((n2 = Math.round(n2)) >= (e2 = Math.round(e2)) || ln(t.fromOADate(n2), t.fromOADate(e2))) return Number.NaN;
913
+ const u2 = 360 - r2 * (e2 - n2);
914
+ return 0 === u2 ? 0 : u2 < 0 ? Number.NaN : 100 * (1 - r2 * (e2 - n2) / 360);
915
+ }, TBILLYIELD: function(n2, e2, r2) {
916
+ return fn(n2) && fn(e2) ? (n2 = Math.round(n2)) >= (e2 = Math.round(e2)) || ln(t.fromOADate(n2), t.fromOADate(e2)) ? Number.NaN : 360 * (100 - r2) / (r2 * (e2 - n2)) : Number.NaN;
917
+ }, VDB: function(n2, t2, e2, r2, u2, o2 = 2, a2 = false) {
918
+ if (!fn(r2) || !fn(u2)) return Number.NaN;
919
+ }, XIRR: function(n2, t2, e2 = 0.1) {
920
+ }, XNPV: function(n2, t2, e2) {
921
+ let r2 = 0;
922
+ const u2 = t2.length;
923
+ for (let o2 = 0; o2 < u2; o2++) r2 += t2[o2] / Math.pow(1 + n2, O(e2[o2], e2[0]) / 365);
924
+ return r2;
925
+ }, YIELD: function(n2, t2, e2, r2, u2, o2, a2 = 0) {
926
+ if (!(fn(n2) && fn(t2) && sn(o2) && cn(a2))) return Number.NaN;
927
+ }, YIELDDISC: function(n2, t2, e2, r2, u2, o2 = 0) {
928
+ if (!(fn(n2) && fn(t2) && sn(u2) && cn(o2))) return Number.NaN;
929
+ }, YIELDMAT: function(n2, t2, e2, r2, u2, o2 = 0) {
930
+ if (!fn(n2) || !fn(t2) || !cn(o2)) return Number.NaN;
931
+ } }, Symbol.toStringTag, { value: "Module" }));
932
+ const En = Object.freeze(Object.defineProperty({ __proto__: null, CELL: function(e2, r2) {
933
+ let u2 = null;
934
+ switch (e2) {
935
+ case "address":
936
+ const e3 = r2.getCoords();
937
+ u2 = t.getAddress({ colIndex: e3.colStart, $colIndex: true, rowIndex: e3.rowStart, $rowIndex: true });
938
+ break;
939
+ case "col":
940
+ case "row":
941
+ u2 = r2.getCoords().colStart + 1;
942
+ break;
943
+ case "contents":
944
+ u2 = r2.getValueAt(0, 0);
945
+ break;
946
+ case "type":
947
+ const o2 = r2.getValueAt(0, 0);
948
+ u2 = null === o2 ? "b" : "string" == typeof o2 ? "l" : "v";
949
+ break;
950
+ default:
951
+ u2 = n.BuiltIn.Value;
952
+ }
953
+ return t.markVolatile(), u2;
954
+ }, ERROR_TYPE: function(t2) {
955
+ return t2.map((t3) => t3 instanceof n.Known ? t3.getCode() : n.BuiltIn.NA).fillEmpty(true);
956
+ }, INFO: function(e2) {
957
+ if ("DIRECTORY" === (e2 = e2.toUpperCase())) {
958
+ try {
959
+ return t.markVolatile(), t.getRuntime().getLocation();
960
+ } catch (n2) {
961
+ }
962
+ return "..";
963
+ }
964
+ if ("NUMFILE" === e2) return "1";
965
+ if ("ORIGIN" === e2) return "$A$1";
966
+ if ("RECALC" === e2) return "1";
967
+ if ("RELEASE" === e2) return t.getRuntime().getVersion();
968
+ if ("OSVERSION" === e2) return "1";
969
+ if ("SYSTEM" === e2) return t.getRuntime().getOS();
970
+ if ("USER" === e2) {
971
+ const n2 = t.getRuntime().getUser();
972
+ return n2 || (t.formatResults("@[Red]"), "Unidentified");
973
+ }
974
+ throw n.BuiltIn.Value;
975
+ }, ISBLANK: function(n2) {
976
+ return n2.map(() => false).fillEmpty(true);
977
+ }, ISERR: function(t2) {
978
+ return t2.map((t3) => t3 instanceof n.Known && !(t3 instanceof n.NA)).fillEmpty(false);
979
+ }, ISERROR: function(t2) {
980
+ return t2.map((t3) => t3 instanceof n.Known).fillEmpty(false);
981
+ }, ISEVEN: function(n2) {
982
+ return n2.map((n3) => "number" == typeof n3 && Math.trunc(n3) % 2 == 0).fillEmpty(false);
983
+ }, ISFORMULA: function(n2) {
984
+ return n2.map((n3, e2) => null !== t.getFormulaAt(e2.rowIndex, e2.colIndex)).fillEmpty(false);
985
+ }, ISLOGICAL: function(n2) {
986
+ return n2.map((n3) => "boolean" == typeof n3).fillEmpty(false);
987
+ }, ISNA: function(t2) {
988
+ return t2.map((t3) => t3 instanceof n.NA).fillEmpty(false);
989
+ }, ISNONTEXT: function(n2) {
990
+ return n2.map((n3) => "string" != typeof n3).fillEmpty(false);
991
+ }, ISNUMBER: function(n2) {
992
+ return n2.map((n3) => "number" == typeof n3).fillEmpty(false);
993
+ }, ISODD: function(n2) {
994
+ return n2.map((n3) => "number" == typeof n3 && Math.trunc(n3) % 2 != 0).fillEmpty(false);
995
+ }, ISOMITTED: function(n2) {
996
+ return void 0 === n2;
997
+ }, ISREF: function(n2) {
998
+ return n2?.isIReferenceRange ?? false;
999
+ }, ISTEXT: function(n2) {
1000
+ return n2.map((n3) => "string" == typeof n3).fillEmpty(false);
1001
+ }, N: function(t2) {
1002
+ const e2 = t2.getValueAt(0, 0), r2 = typeof e2;
1003
+ if ("number" === r2) return e2;
1004
+ if ("boolean" === r2) return Number(e2);
1005
+ if (e2 instanceof n.Known) throw e2;
1006
+ return 0;
1007
+ }, NA: function() {
1008
+ return n.BuiltIn.NA;
1009
+ }, SHEET: function(e2) {
1010
+ const r2 = t.getSheetIndex(e2);
1011
+ return r2 >= 0 ? r2 + 1 : n.BuiltIn.NA;
1012
+ }, SHEETS: function(n2) {
1013
+ return n2 ? 1 : t.getSheetCount();
1014
+ }, TYPE: function(t2) {
1015
+ if (t2.getWidth() > 1 || t2.getHeight() > 1) return 64;
1016
+ const e2 = t2.getValueAt(0, 0), r2 = typeof e2;
1017
+ return "string" === r2 ? 2 : "boolean" === r2 ? 4 : e2 instanceof n.Known ? 16 : 1;
1018
+ } }, Symbol.toStringTag, { value: "Module" }));
1019
+ const gn = { mismatchFill: n.BuiltIn.NA }, In = { type: e.Boolean, coerce: true };
1020
+ const Tn = Object.freeze(Object.defineProperty({ __proto__: null, AND: function(...t2) {
1021
+ let r2 = false;
1022
+ for (const n2 of t2) for (const t3 of n2.values({ type: e.Boolean, coerce: true })) if (r2 = true, !t3) return false;
1023
+ return !!r2 || n.BuiltIn.Value;
1024
+ }, BYCOL: function(n2, t2) {
1025
+ }, BYROW: function(n2, t2) {
1026
+ }, FALSE: function() {
1027
+ return false;
1028
+ }, IF: function(t2, u2, o2) {
1029
+ if (1 === t2.size) {
1030
+ return t2.getValueAt(0, 0, In) ? u2 : o2 ?? t2.empty().replace([[false]]);
1031
+ }
1032
+ const a2 = t2.getWidth(), i2 = t2.getHeight();
1033
+ if (1 === a2 || 1 === i2) {
1034
+ const l3 = 1 === a2 ? r.Orientation.Column : r.Orientation.Row, s3 = 1 === i2, f3 = s3 ? u2.getHeight() : u2.getWidth(), c2 = 1 === (s3 ? u2.getWidth() : u2.getHeight());
1035
+ if (!o2) {
1036
+ const n2 = 1 === i2, e2 = n2 ? u2.getHeight() : u2.getWidth();
1037
+ o2 = t2.empty().fill(false, { colStart: 0, rowStart: 0, colEnd: (n2 ? 1 : e2) - 1, rowEnd: (n2 ? e2 : 1) - 1 });
1038
+ }
1039
+ const m2 = s3 ? o2.getHeight() : o2.getWidth(), p2 = 1 === (s3 ? o2.getWidth() : o2.getHeight()), N2 = Math.max(f3, m2), h2 = t2.empty().fill(n.BuiltIn.Value, { colStart: 0, rowStart: 0, colEnd: (s3 ? o2.getWidth() : N2) - 1, rowEnd: (s3 ? N2 : o2.getHeight()) - 1 }), E2 = [];
1040
+ let g2 = t2.empty();
1041
+ t2.forEach((t3, e2) => {
1042
+ const r2 = true === t3;
1043
+ let a3 = r2 ? u2 : o2;
1044
+ t3 instanceof n.Known && (a3 = h2);
1045
+ let i3 = 0;
1046
+ (r2 && !c2 || !r2 && !p2) && (i3 = s3 ? e2.colIndex : e2.rowIndex);
1047
+ const l4 = s3 ? { colStart: i3, colEnd: i3 } : { rowStart: i3, rowEnd: i3 };
1048
+ a3 = a3.slice(l4), g2 = g2.replace(a3, e2);
1049
+ const f4 = s3 ? a3.getHeight() : a3.getWidth();
1050
+ f4 < N2 && (s3 ? (l4.rowStart = f4, l4.rowEnd = N2 - 1) : (l4.colStart = f4, l4.colEnd = N2 - 1), E2.push(l4));
1051
+ }, { orientation: l3, type: e.Boolean, coerce: true, includeEmpty: true });
1052
+ for (let t3 = 0; t3 < E2.length; t3++) g2 = g2.fill(n.BuiltIn.NA, E2[t3]);
1053
+ return g2;
1054
+ }
1055
+ const l2 = a2 - 1, s2 = i2 - 1;
1056
+ let f2 = u2.broadcast(o2, (e2, r2, u3) => {
1057
+ let o3 = u3.colIndex, a3 = u3.rowIndex;
1058
+ if (o3 > l2 || a3 > s2) return n.BuiltIn.NA;
1059
+ return t2.getValueAt(u3.rowIndex, u3.colIndex, In) ? e2 : r2;
1060
+ }, gn);
1061
+ return f2 = f2.fillEmpty(n.BuiltIn.NA, Math.max(u2.getWidth(), o2.getWidth()), Math.max(u2.getHeight(), o2.getHeight())), f2;
1062
+ }, IFERROR: function(t2, e2) {
1063
+ return t2.broadcast(e2, (t3 = null, e3 = null) => t3 instanceof n.Known ? e3 : t3, { mismatchFill: null });
1064
+ }, IFNA: function(t2, e2) {
1065
+ return t2.broadcast(e2, (t3 = null, e3 = null) => n.BuiltIn.NA.equals(t3) ? e3 : t3, { mismatchFill: null });
1066
+ }, IFS: function(t2, e2, ...r2) {
1067
+ if (r2 && r2.length % 2 != 0) throw new n.NA("IFS expects all arguments after position 0 to be in pairs.");
1068
+ const u2 = [t2, e2, ...r2];
1069
+ for (let n2 = 0; n2 < u2.length / 2; n2++) {
1070
+ const t3 = m.accept(u2[2 * n2], c.BOOLEAN), e3 = m.accept(u2[2 * n2 + 1]);
1071
+ if (t3) return e3;
1072
+ }
1073
+ throw n.BuiltIn.NA;
1074
+ }, LAMDA: function(...n2) {
1075
+ }, LET: function(n2, t2, e2, ...r2) {
1076
+ }, MAKEARRAY: function(n2, t2, e2) {
1077
+ }, MAP: function(n2, ...t2) {
1078
+ }, NOT: function(t2) {
1079
+ return t2.map((t3) => "boolean" == typeof t3 ? !t3 : "number" == typeof t3 ? 0 === t3 : n.BuiltIn.Value).fillEmpty(true);
1080
+ }, OR: function(...t2) {
1081
+ let r2 = false;
1082
+ for (const n2 of t2) for (const t3 of n2.values({ type: e.Boolean, coerce: true })) if (r2 = true, true === t3) return true;
1083
+ return !r2 && n.BuiltIn.Value;
1084
+ }, REDUCE: function(n2, t2, e2) {
1085
+ }, SCAN: function(n2, t2, e2) {
1086
+ }, SWITCH: function(n2, t2, ...e2) {
1087
+ }, TRUE: function() {
1088
+ return false;
1089
+ }, XOR: function(...t2) {
1090
+ let r2 = false, u2 = 0;
1091
+ for (const n2 of t2) for (const t3 of n2.values({ type: e.Boolean, coerce: true })) r2 = true, true === t3 && u2++;
1092
+ return r2 ? u2 % 2 == 1 : n.BuiltIn.Value;
1093
+ } }, Symbol.toStringTag, { value: "Module" })), dn = (n2) => "string" == typeof n2 && /[*?]/.test(n2), bn = (n2, t2) => RegExp(n2.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/([^~]??)[?]/g, "$1.").replace(/([^~]??)[*]/g, "$1.*").replace(/~([?*])/g, "$1"), t2);
1094
+ const Mn = Object.freeze(Object.defineProperty({ __proto__: null, ADDRESS: function(e2, r2, u2 = 1, o2 = true, a2 = "") {
1095
+ if (e2 < 1 || r2 < 1 || u2 < 1 || u2 > 4) throw n.BuiltIn.Value;
1096
+ const i2 = { $colIndex: 1 === u2 || 3 === u2, colIndex: r2 - 1, $rowIndex: 1 === u2 || 2 === u2, rowIndex: e2 - 1, sheetName: a2 };
1097
+ return t.getAddress(i2, !o2);
1098
+ }, AREAS: function(...n2) {
1099
+ return n2.length;
1100
+ }, CHOOSE: function(t2, e2, ...r2) {
1101
+ if (1 === t2) return e2;
1102
+ if (t2 < 1 || t2 > r2.length + 1) throw n.BuiltIn.Value;
1103
+ return r2[t2 - 2];
1104
+ }, CHOOSECOLS: function(t2, e2, ...r2) {
1105
+ const u2 = t2.getValues(), o2 = [e2, ...r2].map((t3) => {
1106
+ if (t3 <= 0) throw n.BuiltIn.Value;
1107
+ if (t3 > u2[0].length) throw n.BuiltIn.Ref;
1108
+ return Math.floor(t3 - 1);
1109
+ }), a2 = [];
1110
+ for (let n2 = 0; n2 < u2.length; n2++) a2[n2] = o2.map((t3) => u2[n2][t3]);
1111
+ return a2;
1112
+ }, CHOOSEROWS: function(t2, e2, ...r2) {
1113
+ const u2 = t2.getValues();
1114
+ return [e2, ...r2].map((t3) => {
1115
+ if (t3 <= 0) throw n.BuiltIn.Value;
1116
+ if (t3 > u2.length) throw n.BuiltIn.Ref;
1117
+ return Math.floor(t3 - 1);
1118
+ }).map((n2) => [...u2[n2]]);
1119
+ }, COLUMN: function(n2) {
1120
+ if (!n2) return [t.getPosition().colIndex + 1];
1121
+ const e2 = [], r2 = n2.getCoords(), u2 = r2.colStart, o2 = r2.colEnd;
1122
+ for (let n3 = u2; n3 <= o2; n3++) e2.push(n3 + 1);
1123
+ return e2;
1124
+ }, COLUMNS: function(n2) {
1125
+ return n2.getWidth();
1126
+ }, DROP: function(n2, t2, e2 = 0) {
1127
+ }, EXPAND: function(t2, e2, r2 = 0, u2 = n.BuiltIn.NA) {
1128
+ }, FIELDVALUE: function(n2, t2) {
1129
+ }, FILTER: function(n2, t2, e2) {
1130
+ }, FORMULATEXT: function(e2) {
1131
+ const r2 = e2.getCoords(), u2 = t.getFormulaAt(r2.rowStart, r2.colStart);
1132
+ if (null === u2) throw n.BuiltIn.NA;
1133
+ return "=" + u2;
1134
+ }, GETPIVOTDATA: function(n2, t2, e2, r2) {
1135
+ }, GROUPBY: function(n2, t2, e2, r2 = null, u2 = 2, o2 = null, a2 = null, i2 = 0) {
1136
+ }, HLOOKUP: function(t2, e2, r2, u2 = true) {
1137
+ if (r2 < 1) return n.BuiltIn.Value;
1138
+ if (r2 > e2.getHeight()) return n.BuiltIn.Ref;
1139
+ if (1 === e2.size) return n.BuiltIn.NA;
1140
+ const o2 = e2.getValues(), a2 = typeof t2, i2 = "string" == typeof t2 ? t2 : String(t2), l2 = dn(i2), s2 = l2 ? bn(i2, "i") : null;
1141
+ if (u2) {
1142
+ let e3 = a2 === typeof o2[0][0] ? o2[0][0] : null;
1143
+ const u3 = o2[0].length;
1144
+ for (let i3 = 1; i3 < u3; i3++) {
1145
+ const u4 = o2[0][i3];
1146
+ if (typeof u4 === a2) {
1147
+ if (e3 > t2 && u4 > t2) throw n.BuiltIn.NA;
1148
+ if (u4 === t2) return o2[r2 - 1][i3];
1149
+ if (null != e3 && u4 > t2 && e3 <= t2) return o2[r2 - 1][i3 - 1];
1150
+ e3 = u4;
1151
+ }
1152
+ }
1153
+ if (null === e3) throw n.BuiltIn.NA;
1154
+ return 1 === o2[0].length ? o2[r2 - 1][0] : e3;
1155
+ }
1156
+ {
1157
+ let e3 = -1;
1158
+ if (e3 = l2 ? o2[0].findIndex((n2) => {
1159
+ const t3 = "string" == typeof n2 ? n2 : String(n2);
1160
+ return s2.test(t3);
1161
+ }) : o2[0].findIndex((n2) => n2 === t2), -1 === e3) throw n.BuiltIn.NA;
1162
+ return o2[r2 - 1][e3];
1163
+ }
1164
+ }, HSTACK: function(n2, ...t2) {
1165
+ }, HYPERLINK: function(n2, t2) {
1166
+ }, IMAGE: function(n2, t2, e2, r2, u2) {
1167
+ }, INDEX: function(t2, e2 = 0, r2 = 0, u2 = 1) {
1168
+ if (e2 < 0 || r2 < 0 || u2 < 0) return n.BuiltIn.Value;
1169
+ if (u2 > t2.length) return n.BuiltIn.Ref;
1170
+ const o2 = t2[u2 - 1];
1171
+ if (0 === e2 && 0 === r2) return o2;
1172
+ if (0 !== e2 && 0 !== r2) return o2.getValueAt(e2 - 1, r2 - 1);
1173
+ const a2 = o2.getHeight(), i2 = o2.getWidth();
1174
+ if (e2 > a2 || r2 > i2) return n.BuiltIn.Ref;
1175
+ if (0 === e2) {
1176
+ const n2 = r2 - 1;
1177
+ return o2.slice({ colStart: n2, rowStart: 0, colEnd: n2, rowEnd: a2 - 1 });
1178
+ }
1179
+ {
1180
+ const n2 = e2 - 1;
1181
+ return o2.slice({ colStart: 0, rowStart: n2, colEnd: i2 - 1, rowEnd: n2 });
1182
+ }
1183
+ }, INDIRECT: function(n2, e2 = true) {
1184
+ return t.getReference(n2, !e2);
1185
+ }, LOOKUP: function(n2, t2, e2) {
1186
+ }, MATCH: function(n2, t2, e2) {
1187
+ }, OFFSET: function(e2, r2, u2, o2, a2) {
1188
+ if (o2 = o2 ?? e2.getHeight(), (a2 = a2 ?? e2.getWidth()) < 0) throw n.BuiltIn.Ref;
1189
+ if (o2 < 0) throw n.BuiltIn.Ref;
1190
+ const i2 = e2.getCoords(), l2 = { rowStart: i2.rowStart + r2, colStart: i2.colStart + u2, rowEnd: i2.rowStart + r2 + o2 - 1, colEnd: i2.colStart + u2 + a2 - 1 };
1191
+ return t.getReference(l2);
1192
+ }, PIVOTBY: function(n2, t2, e2, r2, u2 = null, o2 = 2, a2 = null, i2 = 2, l2 = null, s2 = null, f2 = 0) {
1193
+ }, ROW: function(n2) {
1194
+ if (!n2) return [t.getPosition().rowIndex + 1];
1195
+ const e2 = [], r2 = n2.getCoords(), u2 = r2.rowStart, o2 = r2.rowEnd;
1196
+ for (let n3 = u2; n3 <= o2; n3++) e2.push([n3 + 1]);
1197
+ return e2;
1198
+ }, ROWS: function(n2) {
1199
+ return n2.getHeight();
1200
+ }, RTD: function(n2, t2, ...e2) {
1201
+ }, SORT: function(n2, t2, e2, r2 = false) {
1202
+ }, SORTBY: function(n2, t2, e2) {
1203
+ }, TAKE: function(n2, t2, e2 = 0) {
1204
+ }, TOCOL: function(n2, t2 = 0, e2 = false) {
1205
+ }, TOROW: function(n2, t2 = 0, e2 = false) {
1206
+ }, TRANSPOSE: function(n2) {
1207
+ return n2.transpose();
1208
+ }, TRIMRANGE: function(e2, u2 = 3, o2 = 3) {
1209
+ let a2 = 0, i2 = e2.getHeight() - 1, l2 = 0, s2 = e2.getWidth() - 1;
1210
+ const f2 = e2.isIReferenceRange;
1211
+ if (f2) {
1212
+ const n2 = e2.getCoords();
1213
+ a2 = n2.rowStart, i2 = n2.rowEnd, l2 = n2.colStart, s2 = n2.colEnd;
1214
+ } else a2 = 0, i2 = e2.getHeight() - 1, l2 = 0, s2 = e2.getWidth() - 1;
1215
+ if (1 === u2 || 3 === u2) {
1216
+ const t2 = e2.entries({ orientation: r.Orientation.Row }).next().value;
1217
+ if (!t2) return n.BuiltIn.Ref;
1218
+ a2 = t2.coords.rowIndex;
1219
+ }
1220
+ if (2 === u2 || 3 === u2) {
1221
+ const t2 = e2.entries({ reverse: true, orientation: r.Orientation.Row }).next().value;
1222
+ if (!t2) return n.BuiltIn.Ref;
1223
+ i2 = t2.coords.rowIndex;
1224
+ }
1225
+ if (1 === o2 || 3 === o2) {
1226
+ const t2 = e2.entries({ orientation: r.Orientation.Column }).next().value;
1227
+ if (!t2) return n.BuiltIn.Ref;
1228
+ l2 = t2.coords.colIndex;
1229
+ }
1230
+ if (2 === o2 || 3 === o2) {
1231
+ const t2 = e2.entries({ reverse: true, orientation: r.Orientation.Column }).next().value;
1232
+ if (!t2) return n.BuiltIn.Ref;
1233
+ s2 = t2.coords.colIndex;
1234
+ }
1235
+ let c2;
1236
+ return f2 ? t.getReference({ colStart: l2, rowStart: a2, colEnd: s2, rowEnd: i2 }) : (c2 = e2.slice({ colStart: l2, rowStart: a2, rowEnd: i2, colEnd: s2 }), c2);
1237
+ }, UNIQUE: function(n2, t2 = false, e2 = false) {
1238
+ }, VLOOKUP: function(t2, e2, r2, u2 = true) {
1239
+ if (r2 < 1) return n.BuiltIn.Value;
1240
+ if (r2 > e2.getWidth()) return n.BuiltIn.Ref;
1241
+ if (1 === e2.size) return n.BuiltIn.NA;
1242
+ const o2 = e2.getValues(), a2 = typeof t2, i2 = "string" == typeof t2 ? t2 : String(t2), l2 = dn(i2), s2 = l2 ? bn(i2, "i") : null;
1243
+ if (u2) {
1244
+ let e3 = a2 === typeof o2[0][0] ? o2[0][0] : null;
1245
+ const u3 = o2.length;
1246
+ for (let i3 = 1; i3 < u3; i3++) {
1247
+ const u4 = o2[i3], l3 = o2[i3][0];
1248
+ if (typeof l3 === a2) {
1249
+ if (e3 > t2 && l3 > t2) throw n.BuiltIn.NA;
1250
+ if (l3 === t2) return u4[r2 - 1];
1251
+ if (null != e3 && l3 > t2 && e3 <= t2) return o2[i3 - 1][r2 - 1];
1252
+ e3 = l3;
1253
+ }
1254
+ }
1255
+ if (null === e3) throw n.BuiltIn.NA;
1256
+ return 1 === o2.length ? o2[0][r2 - 1] : e3;
1257
+ }
1258
+ {
1259
+ let e3 = -1;
1260
+ if (e3 = l2 ? o2.findIndex((n2) => s2.test(n2[0])) : o2.findIndex((n2) => n2[0] === t2), -1 === e3) throw n.BuiltIn.NA;
1261
+ return o2[e3][r2 - 1];
1262
+ }
1263
+ }, VSTACK: function(n2, ...t2) {
1264
+ }, WRAPCOLS: function(t2, e2, r2 = n.BuiltIn.NA) {
1265
+ }, WRAPROWS: function(t2, e2, r2 = n.BuiltIn.NA) {
1266
+ }, XLOOKUP: function(n2, t2, e2, r2, u2 = true, o2, a2 = true) {
1267
+ }, XMATCH: function(n2, t2, e2, r2 = true) {
1268
+ } }, Symbol.toStringTag, { value: "Module" })), Sn = [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], An = [], Rn = [];
1269
+ function Cn(n2) {
1270
+ return Math.abs(n2) < 99e-14 ? 0 : n2;
1271
+ }
1272
+ function On(n2) {
1273
+ return n2 <= 100 ? Sn[n2] : An[n2] > 0 ? An[n2] : An[n2] = On(n2 - 1) * n2;
1274
+ }
1275
+ function Dn(n2) {
1276
+ return 1 === n2 || 0 === n2 ? 1 : 2 === n2 ? 2 : Rn[n2] > 0 ? Rn[n2] : Rn[n2] = Dn(n2 - 2) * n2;
1277
+ }
1278
+ function yn(n2) {
1279
+ const t2 = [], e2 = n2.length;
1280
+ for (let r2 = 0; r2 < e2; r2++) {
1281
+ const e3 = n2[r2], u2 = e3.length;
1282
+ for (let n3 = 0; n3 < u2; n3++) t2.push(e3[n3]);
1283
+ }
1284
+ return t2;
1285
+ }
1286
+ const wn = (t2, e2, r2) => {
1287
+ const u2 = yn(t2), o2 = yn(e2);
1288
+ let a2 = 0;
1289
+ if (u2.length !== o2.length) throw n.BuiltIn.NA;
1290
+ const i2 = u2.length;
1291
+ for (let n2 = 0; n2 < i2; n2++) "number" == typeof u2[n2] && "number" == typeof o2[n2] && (a2 = Cn(a2 + r2(u2[n2], o2[n2])));
1292
+ return a2;
1293
+ };
1294
+ function Bn(n2, t2 = void 0) {
1295
+ if (0 === t2) return 0;
1296
+ if (n2 / t2 % 1 == 0) return n2;
1297
+ const e2 = Math.abs(t2), r2 = Math.floor(Math.abs(n2) / e2);
1298
+ if (n2 < 0) {
1299
+ return t2 < 0 ? -e2 * (r2 + 1) : -e2 * r2;
1300
+ }
1301
+ return (r2 + 1) * e2;
1302
+ }
1303
+ function Un(n2, t2 = 1) {
1304
+ return 0 === t2 ? 0 : Bn(n2, Math.abs(t2));
1305
+ }
1306
+ function Ln(n2, t2) {
1307
+ if (n2 < 0 || t2 < 0 || n2 < t2) return Number.NaN;
1308
+ return _n(n2) / _n(t2) / _n(n2 - t2);
1309
+ }
1310
+ function _n(n2) {
1311
+ return (n2 = Math.trunc(n2)) > 170 || n2 < 0 ? Number.NaN : n2 <= 100 ? Sn[n2] : On(n2);
1312
+ }
1313
+ function vn(n2, t2 = void 0) {
1314
+ if (0 === n2) return 0;
1315
+ if (0 === t2) return 1 / 0;
1316
+ if (t2 = t2 ?? (n2 > 0 ? 1 : -1), n2 > 0 && t2 < 0) return Number.NaN;
1317
+ if (n2 / t2 % 1 == 0) return n2;
1318
+ const e2 = Math.abs(t2), r2 = Math.floor(Math.abs(n2) / e2);
1319
+ if (n2 < 0) {
1320
+ return t2 < 0 ? -e2 * r2 : -e2 * (r2 + 1);
1321
+ }
1322
+ return r2 * e2;
1323
+ }
1324
+ function Vn(n2) {
1325
+ return Math.floor(n2);
1326
+ }
1327
+ const Pn = Object.freeze(Object.defineProperty({ __proto__: null, ABS: function(n2) {
1328
+ return Math.abs(n2);
1329
+ }, AGGREGATE: function(n2, t2, e2, r2) {
1330
+ }, ARABIC: function(t2) {
1331
+ if (!/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/.test(t2)) throw new n.Value("Invalid roman numeral in ARABIC evaluation.");
1332
+ let e2 = 0;
1333
+ return t2.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g, (n2) => {
1334
+ 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 }[n2];
1335
+ }), e2;
1336
+ }, BASE: function(n2, t2, e2 = 0) {
1337
+ if (n2 < 0 || n2 >= 2 ** 53) return Number.NaN;
1338
+ if (t2 < 2 || t2 > 36) return Number.NaN;
1339
+ if (e2 < 0) return Number.NaN;
1340
+ const r2 = n2.toString(t2).toUpperCase();
1341
+ return new Array(Math.max(e2 + 1 - r2.length, 0)).join("0") + r2;
1342
+ }, CEILING: Bn, CEILING_MATH: function(n2, t2 = void 0, e2 = 0) {
1343
+ if (0 === (t2 = t2 ?? (n2 > 0 ? 1 : -1))) return 0;
1344
+ if (n2 >= 0) return Bn(n2, t2);
1345
+ const r2 = e2 ? t2 : 0;
1346
+ return Bn(n2, t2) - r2;
1347
+ }, CEILING_PRECISE: Un, COMBIN: Ln, COMBINA: function(n2, t2) {
1348
+ return 0 !== n2 && 1 !== n2 || 0 !== t2 ? n2 < 0 || t2 < 0 ? Number.NaN : Ln(n2 + t2 - 1, n2 - 1) : 1;
1349
+ }, DECIMAL: function(n2, t2) {
1350
+ return (t2 = Math.trunc(t2)) < 2 || t2 > 36 ? Number.NaN : parseInt(n2, t2);
1351
+ }, DEGREES: function(n2) {
1352
+ return n2 * (180 / Math.PI);
1353
+ }, EVEN: function(n2) {
1354
+ return Bn(n2, -2);
1355
+ }, EXP: function(n2) {
1356
+ return Math.exp(n2);
1357
+ }, FACT: _n, FACTDOUBLE: function(n2) {
1358
+ return (n2 = Math.trunc(n2)) < -1 ? Number.NaN : -1 === n2 ? 1 : Dn(n2);
1359
+ }, FLOOR: vn, FLOOR_MATH: function(n2, t2 = void 0, e2 = 0) {
1360
+ return 0 === (t2 = t2 ?? (n2 > 0 ? 1 : -1)) ? 0 : 0 === e2 || n2 >= 0 ? vn(n2, Math.abs(t2)) : vn(n2, t2) + t2;
1361
+ }, FLOOR_PRECISE: function(n2, t2 = 1) {
1362
+ return 0 === t2 ? 0 : vn(n2, Math.abs(t2));
1363
+ }, GCD: function(...n2) {
1364
+ let t2, e2 = n2[0];
1365
+ if (e2 < 0 || e2 > 9007199254740990) return Number.NaN;
1366
+ e2 = Math.abs(Math.abs(Math.trunc(e2)));
1367
+ const r2 = n2.length;
1368
+ for (let u2 = 1; u2 < r2; u2++) {
1369
+ if (t2 = n2[u2], t2 < 0 || t2 > 9007199254740990) return Number.NaN;
1370
+ for (t2 = Math.abs(Math.trunc(t2)); e2 && t2; ) e2 > t2 ? e2 %= t2 : t2 %= e2;
1371
+ e2 += t2;
1372
+ }
1373
+ return e2;
1374
+ }, INT: Vn, ISO_CEILING: function(n2, t2 = void 0) {
1375
+ return Un(n2, t2);
1376
+ }, LCM: function(...n2) {
1377
+ let t2, e2, r2 = n2[0];
1378
+ if (r2 < 0 || r2 > 9007199254740990) return Number.NaN;
1379
+ r2 = Math.abs(Math.trunc(r2));
1380
+ const u2 = n2.length;
1381
+ for (let o2 = 1; o2 < u2; o2++) {
1382
+ const u3 = n2[o2];
1383
+ if (u3 < 0 || u3 > 9007199254740990) return Number.NaN;
1384
+ for (t2 = Math.abs(Math.trunc(u3)), e2 = r2; r2 && t2; ) r2 > t2 ? r2 %= t2 : t2 %= r2;
1385
+ r2 = Math.abs(e2 * u3) / (r2 + t2);
1386
+ }
1387
+ return r2;
1388
+ }, LN: function(n2) {
1389
+ return Math.log(n2);
1390
+ }, LOG: function(n2, t2 = 10) {
1391
+ return Math.log(n2) / Math.log(t2);
1392
+ }, LOG10: function(n2) {
1393
+ return Math.log10(n2);
1394
+ }, MDETERM: function(t2) {
1395
+ if (t2[0].length !== t2.length) throw n.BuiltIn.Value;
1396
+ const e2 = t2.length, r2 = t2[0].length;
1397
+ let u2, o2, a2 = 0;
1398
+ if (1 === e2) return t2[0][0];
1399
+ if (2 === e2) return t2[0][0] * t2[1][1] - t2[0][1] * t2[1][0];
1400
+ for (let n2 = 0; n2 < r2; n2++) {
1401
+ u2 = t2[0][n2], o2 = t2[0][n2];
1402
+ for (let a3 = 1; a3 < e2; a3++) o2 *= t2[a3][((n2 + a3) % r2 + r2) % r2], u2 *= t2[a3][((n2 - a3) % r2 + r2) % r2];
1403
+ a2 += o2 - u2;
1404
+ }
1405
+ return a2;
1406
+ }, MINVERSE: function(n2) {
1407
+ }, MMULT: function(t2, e2) {
1408
+ const r2 = t2.length, u2 = t2[0].length, o2 = e2.length, a2 = e2[0].length;
1409
+ if (u2 !== o2) throw n.BuiltIn.Value;
1410
+ const i2 = new Array(r2);
1411
+ for (let o3 = 0; o3 < r2; o3++) {
1412
+ i2[o3] = new Array(a2);
1413
+ for (let r3 = 0; r3 < a2; r3++) {
1414
+ i2[o3][r3] = 0;
1415
+ for (let a3 = 0; a3 < u2; a3++) {
1416
+ const u3 = t2[o3][a3], l2 = e2[a3][r3];
1417
+ if ("number" != typeof u3 || "number" != typeof l2) throw n.BuiltIn.Value;
1418
+ i2[o3][r3] += t2[o3][a3] * e2[a3][r3];
1419
+ }
1420
+ }
1421
+ }
1422
+ return i2;
1423
+ }, MOD: function(n2, t2) {
1424
+ return 0 === t2 ? 1 / 0 : n2 - t2 * Vn(n2 / t2);
1425
+ }, MROUND: function(n2, t2) {
1426
+ return 0 === t2 ? 0 : n2 > 0 && t2 < 0 || n2 < 0 && t2 > 0 ? Number.NaN : n2 / t2 % 1 == 0 ? n2 : Math.round(n2 / t2) * t2;
1427
+ }, MULTINOMIAL: function(...n2) {
1428
+ let t2 = 0, e2 = 1;
1429
+ for (let r2 = 0; r2 < n2.length; r2++) {
1430
+ const u2 = n2[r2];
1431
+ if (u2 < 0) return Number.NaN;
1432
+ t2 += u2, e2 *= On(u2);
1433
+ }
1434
+ return On(t2) / e2;
1435
+ }, MUNIT: function(n2) {
1436
+ const t2 = [];
1437
+ for (let e2 = 0; e2 < n2; e2++) {
1438
+ const r2 = [];
1439
+ for (let t3 = 0; t3 < n2; t3++) e2 === t3 ? r2.push(1) : r2.push(0);
1440
+ t2.push(r2);
1441
+ }
1442
+ return t2;
1443
+ }, ODD: function(n2) {
1444
+ if (0 === n2) return 1;
1445
+ let t2 = Math.ceil(Math.abs(n2));
1446
+ return t2 = 1 & t2 ? t2 : t2 + 1, n2 > 0 ? t2 : -t2;
1447
+ }, PI: function() {
1448
+ return Math.PI;
1449
+ }, POWER: function(n2, t2) {
1450
+ return n2 ** t2;
1451
+ }, PRODUCT: function(...n2) {
1452
+ let t2 = 1;
1453
+ for (const e2 of n2) for (const n3 of e2.values()) t2 *= n3;
1454
+ return t2;
1455
+ }, QUOTIENT: function(n2, t2) {
1456
+ return Math.trunc(n2 / t2);
1457
+ }, RADIANS: function(n2) {
1458
+ return n2 / 180 * Math.PI;
1459
+ }, RAND: function() {
1460
+ return t.markVolatile(), Math.random();
1461
+ }, RANDARRAY: function(e2 = 1, r2 = 1, u2 = 0, o2 = 1, a2 = false) {
1462
+ if (0 === e2 || 0 === r2) throw n.BuiltIn.Calc;
1463
+ if (e2 < 0 || r2 < 0) throw n.BuiltIn.Value;
1464
+ const i2 = t.getEntireCoords();
1465
+ if (e2 + 1 > i2.rowEnd || r2 + 1 > i2.colEnd) throw n.BuiltIn.Value;
1466
+ if (u2 > o2) throw Number.NaN;
1467
+ const l2 = Math.floor(e2), s2 = Math.floor(r2), f2 = new Array(l2);
1468
+ for (let n2 = 0; n2 < l2; n2++) {
1469
+ const t2 = new Array(s2);
1470
+ for (let n3 = 0; n3 < s2; n3++) {
1471
+ let e3 = u2 + Math.random() * (o2 - u2);
1472
+ a2 && (e3 = Math.floor(e3), e3 > o2 && (e3 = o2)), t2[n3] = e3;
1473
+ }
1474
+ f2[n2] = t2;
1475
+ }
1476
+ return t.markVolatile(), f2;
1477
+ }, RANDBETWEEN: function(n2, e2) {
1478
+ return t.markVolatile(), Math.floor(Math.random() * (e2 - n2 + 1) + n2);
1479
+ }, ROMAN: function(n2, t2 = 0) {
1480
+ if (0 !== t2) throw Error("ROMAN: only allows form=0 (classic form).");
1481
+ 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"];
1482
+ let u2 = "", o2 = 3;
1483
+ for (; o2--; ) u2 = (r2[+e2.pop() + 10 * o2] || "") + u2;
1484
+ return new Array(+e2.join("") + 1).join("M") + u2;
1485
+ }, ROUND: function(n2, t2) {
1486
+ const e2 = Math.pow(10, Math.abs(t2)), r2 = n2 > 0 ? 1 : -1;
1487
+ 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;
1488
+ }, ROUNDDOWN: function(n2, t2) {
1489
+ const e2 = Math.pow(10, Math.abs(t2)), r2 = n2 > 0 ? 1 : -1;
1490
+ if (t2 > 0) {
1491
+ const t3 = 1 / e2 * 0.5;
1492
+ return r2 * Math.round((Math.abs(n2) - t3) * e2) / e2;
1493
+ }
1494
+ if (0 === t2) {
1495
+ const t3 = 0.5;
1496
+ return r2 * Math.round(Math.abs(n2) - t3);
1497
+ }
1498
+ {
1499
+ const t3 = 0.5 * e2;
1500
+ return r2 * Math.round((Math.abs(n2) - t3) / e2) * e2;
1501
+ }
1502
+ }, ROUNDUP: function(n2, t2) {
1503
+ const e2 = Math.pow(10, Math.abs(t2)), r2 = n2 > 0 ? 1 : -1;
1504
+ if (t2 > 0) {
1505
+ const t3 = 1 / e2 * 0.5;
1506
+ return r2 * Math.round((Math.abs(n2) + t3) * e2) / e2;
1507
+ }
1508
+ if (0 === t2) {
1509
+ const t3 = 0.5;
1510
+ return r2 * Math.round(Math.abs(n2) + t3);
1511
+ }
1512
+ {
1513
+ const t3 = 0.5 * e2;
1514
+ return r2 * Math.round((Math.abs(n2) + t3) / e2) * e2;
1515
+ }
1516
+ }, SEQUENCE: function(e2, r2 = 1, u2 = 1, o2 = 1) {
1517
+ if (0 === e2 || 0 === r2) throw n.BuiltIn.Calc;
1518
+ if (e2 < 0 || r2 < 0) throw n.BuiltIn.Value;
1519
+ const a2 = t.getEntireCoords();
1520
+ if (e2 + 1 > a2.rowEnd || r2 + 1 > a2.colEnd) throw n.BuiltIn.Value;
1521
+ const i2 = Math.floor(e2), l2 = Math.floor(r2);
1522
+ let s2 = u2;
1523
+ const f2 = new Array(i2);
1524
+ for (let n2 = 0; n2 < i2; n2++) {
1525
+ const t2 = new Array(l2);
1526
+ for (let n3 = 0; n3 < l2; n3++) t2[n3] = s2, s2 += o2;
1527
+ f2[n2] = t2;
1528
+ }
1529
+ return f2;
1530
+ }, SERIESSUM: function(t2, e2, r2, ...u2) {
1531
+ let o2;
1532
+ for (let a2 = 0; a2 < u2.length; a2++) {
1533
+ const i2 = u2[a2];
1534
+ if ("number" != typeof i2) throw n.BuiltIn.Value;
1535
+ 0 === a2 ? o2 = i2 * Math.pow(t2, e2) : o2 += i2 * Math.pow(t2, e2 + a2 * r2);
1536
+ }
1537
+ return o2;
1538
+ }, SIGN: function(n2) {
1539
+ return n2 > 0 ? 1 : 0 === n2 ? 0 : -1;
1540
+ }, SQRT: function(n2) {
1541
+ return Math.sqrt(n2);
1542
+ }, SQRTPI: function(n2) {
1543
+ return n2 < 0 ? Number.NaN : Math.sqrt(n2 * Math.PI);
1544
+ }, SUBTOTAL: function(n2, ...t2) {
1545
+ }, SUM: function(...n2) {
1546
+ let t2 = 0;
1547
+ for (const e2 of n2) for (const n3 of e2.values()) t2 = Cn(t2 + n3);
1548
+ return t2;
1549
+ }, SUMIF: function(n2, t2, e2) {
1550
+ }, SUMIFS: function(n2, t2, e2) {
1551
+ }, SUMPRODUCT: function(t2, ...e2) {
1552
+ e2.forEach((e3) => {
1553
+ if (t2[0].length !== e3[0].length || t2.length !== e3.length) throw n.BuiltIn.Value;
1554
+ for (let n2 = 0; n2 < t2.length; n2++) for (let r3 = 0; r3 < t2[0].length; r3++) "number" != typeof t2[n2][r3] && (t2[n2][r3] = 0), "number" != typeof e3[n2][r3] && (e3[n2][r3] = 0), t2[n2][r3] *= e3[n2][r3];
1555
+ });
1556
+ let r2 = 0;
1557
+ return t2.forEach((n2) => {
1558
+ n2.forEach((n3) => {
1559
+ r2 = Cn(r2 + n3);
1560
+ });
1561
+ }), r2;
1562
+ }, SUMSQ: function(...n2) {
1563
+ let t2 = 0;
1564
+ for (const r2 of n2) for (const n3 of r2.values({ type: e.Number, includeBoolean: true })) t2 = Cn(t2 + n3 ** 2);
1565
+ return t2;
1566
+ }, SUMX2MY2: function(n2, t2) {
1567
+ return wn(n2, t2, (n3, t3) => n3 ** 2 - t3 ** 2);
1568
+ }, SUMX2PY2: function(n2, t2) {
1569
+ return wn(n2, t2, (n3, t3) => n3 ** 2 + t3 ** 2);
1570
+ }, SUMXMY2: function(n2, t2) {
1571
+ return wn(n2, t2, (n3, t3) => (n3 - t3) ** 2);
1572
+ }, TRUNC: function(n2, t2 = 0) {
1573
+ return Math.trunc(n2);
1574
+ } }, Symbol.toStringTag, { value: "Module" })), Fn = 2 ** 27 - 1;
1575
+ const xn = Object.freeze(Object.defineProperty({ __proto__: null, ACOS: function(n2) {
1576
+ return n2 > 1 || n2 < -1 ? Number.NaN : Math.acos(n2);
1577
+ }, ACOSH: function(n2) {
1578
+ return n2 < 1 ? Number.NaN : Math.acosh(n2);
1579
+ }, ACOT: function(n2) {
1580
+ return Math.PI / 2 - Math.atan(n2);
1581
+ }, ACOTH: function(n2) {
1582
+ return Math.abs(n2) <= 1 ? Number.NaN : Math.atanh(1 / n2);
1583
+ }, ASIN: function(n2) {
1584
+ return n2 > 1 || n2 < -1 ? Number.NaN : Math.asin(n2);
1585
+ }, ASINH: function(n2) {
1586
+ return Math.asinh(n2);
1587
+ }, ATAN: function(n2) {
1588
+ return Math.atan(n2);
1589
+ }, ATAN2: function(n2, t2) {
1590
+ return 0 === t2 && 0 === n2 ? 1 / 0 : Math.atan2(t2, n2);
1591
+ }, ATANH: function(n2) {
1592
+ return Math.abs(n2) > 1 ? Number.NaN : Math.atanh(n2);
1593
+ }, COS: function(n2) {
1594
+ if (Math.abs(n2) > Fn) return Number.NaN;
1595
+ const t2 = Math.cos(n2);
1596
+ return isFinite(t2) ? t2 : Number.NaN;
1597
+ }, COSH: function(n2) {
1598
+ const t2 = Math.cosh(n2);
1599
+ return isFinite(t2) ? t2 : Number.NaN;
1600
+ }, COT: function(n2) {
1601
+ return Math.abs(n2) > Fn ? Number.NaN : 0 === n2 ? 1 / 0 : 1 / Math.tan(n2);
1602
+ }, COTH: function(n2) {
1603
+ return 0 === n2 ? 1 / 0 : 1 / Math.tanh(n2);
1604
+ }, CSC: function(n2) {
1605
+ return Math.abs(n2) > Fn ? Number.NaN : 1 / Math.sin(n2);
1606
+ }, CSCH: function(n2) {
1607
+ return 0 === n2 ? 1 / 0 : 1 / Math.sinh(n2);
1608
+ }, SEC: function(n2) {
1609
+ return Math.abs(n2) > Fn ? Number.NaN : 1 / Math.cos(n2);
1610
+ }, SECH: function(n2) {
1611
+ return 1 / Math.cosh(n2);
1612
+ }, SIN: function(n2) {
1613
+ return Math.abs(n2) > Fn ? Number.NaN : Math.sin(n2);
1614
+ }, SINH: function(n2) {
1615
+ const t2 = Math.sinh(n2);
1616
+ return isFinite(t2) ? t2 : Number.NaN;
1617
+ }, TAN: function(n2) {
1618
+ return Math.abs(n2) > Fn ? Number.NaN : Math.tan(n2);
1619
+ }, TANH: function(n2) {
1620
+ return Math.tanh(n2);
1621
+ } }, Symbol.toStringTag, { value: "Module" }));
1622
+ function Hn(n2, ...t2) {
1623
+ for (const e2 of t2) {
1624
+ const t3 = e2.isLiteral();
1625
+ for (const r2 of e2.values({ coerce: false, includeMistyped: true })) {
1626
+ const e3 = typeof r2;
1627
+ if ("number" !== e3) if ("string" !== e3) if ("boolean" !== e3) {
1628
+ if (r2.isFormulaError) throw r2;
1629
+ } else {
1630
+ if (t3) continue;
1631
+ n2(r2);
1632
+ }
1633
+ else n2(r2);
1634
+ else n2(r2);
1635
+ }
1636
+ }
1637
+ }
1638
+ function Gn(...t2) {
1639
+ let e2 = 0, r2 = 0;
1640
+ for (const n2 of t2) for (const t3 of n2.values()) e2 += t3, r2++;
1641
+ if (0 === r2) throw n.BuiltIn.Div0;
1642
+ return e2 / r2;
1643
+ }
1644
+ function Xn(...n2) {
1645
+ let t2 = 0, e2 = 0;
1646
+ for (const r2 of n2) {
1647
+ const n3 = r2.isLiteral();
1648
+ for (const u2 of r2.values({ coerce: false, includeMistyped: true })) {
1649
+ const r3 = typeof u2;
1650
+ if ("number" !== r3) if ("string" !== r3) if ("boolean" !== r3) {
1651
+ if (u2.isFormulaError) return u2;
1652
+ } else {
1653
+ if (n3) continue;
1654
+ t2 += u2 ? 1 : 0, e2++;
1655
+ }
1656
+ else e2++;
1657
+ else t2 += u2, e2++;
1658
+ }
1659
+ }
1660
+ return t2 / e2;
1661
+ }
1662
+ const Yn = Object.freeze(Object.defineProperty({ __proto__: null, AVEDEV: function(...n2) {
1663
+ let t2 = 0;
1664
+ const e2 = [];
1665
+ for (const r3 of n2) for (const n3 of r3.values()) t2 += n3, e2.push(n3);
1666
+ const r2 = e2.length, u2 = t2 / r2;
1667
+ t2 = 0;
1668
+ for (let n3 = 0; n3 < r2; n3++) t2 += Math.abs(e2[n3] - u2);
1669
+ return t2 / r2;
1670
+ }, AVERAGE: Gn, AVERAGEA: Xn, AVERAGEIF: function(n2, t2, e2) {
1671
+ }, AVERAGEIFS: function(n2, t2, ...e2) {
1672
+ }, COUNT: function(...n2) {
1673
+ let t2 = 0;
1674
+ for (const e2 of n2) for (const n3 of e2.values()) t2++;
1675
+ return t2;
1676
+ }, COUNTA: function(...n2) {
1677
+ let t2 = 0;
1678
+ for (const e2 of n2) {
1679
+ const n3 = e2.isLiteral();
1680
+ for (const r2 of e2.values({ coerce: false, includeMistyped: true })) {
1681
+ const e3 = typeof r2;
1682
+ if ("number" !== e3) if ("string" !== e3) if ("boolean" !== e3) {
1683
+ if (r2.isFormulaError) return r2;
1684
+ } else {
1685
+ if (n3) continue;
1686
+ t2++;
1687
+ }
1688
+ else t2++;
1689
+ else t2++;
1690
+ }
1691
+ }
1692
+ return t2;
1693
+ }, COUNTBLANK: function(n2) {
1694
+ return n2.size;
1695
+ }, COUNTIF: function(n2, t2) {
1696
+ }, COUNTIFS: function(n2, t2) {
1697
+ }, LARGE: function(n2, t2) {
1698
+ if ((t2 = Math.floor(t2)) < 1) return Number.NaN;
1699
+ const e2 = [];
1700
+ for (const t3 of n2.values()) e2.push(t3);
1701
+ return 0 === e2.length || t2 > e2.length ? Number.NaN : (e2.sort((n3, t3) => t3 - n3), e2[t2 - 1]);
1702
+ }, MAX: function(...n2) {
1703
+ let t2 = Number.MIN_SAFE_INTEGER;
1704
+ for (const e2 of n2) for (const n3 of e2.values()) t2 = Math.max(t2, n3);
1705
+ return t2 === Number.MIN_SAFE_INTEGER ? 0 : t2;
1706
+ }, MAXA: function(...n2) {
1707
+ let t2 = 0;
1708
+ return Hn((n3) => {
1709
+ t2 = Math.min(t2, n3);
1710
+ }, ...n2), t2;
1711
+ }, MAXIFS: function(n2, t2, ...e2) {
1712
+ }, MEDIAN: function(...n2) {
1713
+ const t2 = [];
1714
+ for (const e3 of n2) for (const n3 of e3.values()) t2.push(n3);
1715
+ t2.sort((n3, t3) => n3 - t3);
1716
+ const e2 = t2.length;
1717
+ if (e2 % 2 == 0) {
1718
+ const n3 = e2 / 2;
1719
+ return (t2[n3 - 1] + t2[n3]) / 2;
1720
+ }
1721
+ return t2[Math.floor(e2 / 2)];
1722
+ }, MIN: function(...n2) {
1723
+ let t2 = Number.MAX_SAFE_INTEGER;
1724
+ for (const e2 of n2) for (const n3 of e2.values()) t2 = Math.min(t2, n3);
1725
+ return t2 === Number.MAX_SAFE_INTEGER ? 0 : t2;
1726
+ }, MINA: function(...n2) {
1727
+ let t2 = 0;
1728
+ return Hn((n3) => {
1729
+ t2 = Math.min(t2, n3);
1730
+ }, ...n2), t2;
1731
+ }, MINIFS: function(n2, t2, ...e2) {
1732
+ }, PERMUT: function(n2, t2) {
1733
+ }, PERMUTATIONA: function(n2, t2) {
1734
+ }, SMALL: function(n2, t2) {
1735
+ if ((t2 = Math.floor(t2)) < 1) return Number.NaN;
1736
+ const e2 = [];
1737
+ for (const t3 of n2.values()) e2.push(t3);
1738
+ return 0 === e2.length || t2 > e2.length ? Number.NaN : (e2.sort((n3, t3) => n3 - t3), e2[t2 - 1]);
1739
+ } }, Symbol.toStringTag, { value: "Module" }));
1740
+ function kn(t2, e2 = null) {
1741
+ const r2 = t2.size, u2 = new Array(r2);
1742
+ let o2 = new Array(r2), a2 = 0;
1743
+ if (e2) {
1744
+ if (e2.size !== r2) throw n.BuiltIn.Ref;
1745
+ for (const t3 of e2.values({ includeEmpty: true })) {
1746
+ if ("number" != typeof t3) throw n.BuiltIn.Value;
1747
+ o2[a2++] = t3;
1748
+ }
1749
+ } else for (let n2 = 0; n2 < r2; n2++) o2[n2] = n2 + 1;
1750
+ a2 = 0;
1751
+ for (const e3 of t2.values()) {
1752
+ if ("number" != typeof e3) throw n.BuiltIn.Value;
1753
+ u2[a2++] = e3;
1754
+ }
1755
+ return [u2, o2];
1756
+ }
1757
+ function zn(n2, t2, e2, r2, u2 = 0, o2 = 1) {
1758
+ return t2 <= 0 || e2 <= 0 || n2 < u2 || n2 > o2 || u2 === o2 ? Number.NaN : (n2 = (n2 - u2) / (o2 - u2), r2 ? i.beta.cdf(n2, t2, e2) : i.beta.pdf(n2, t2, e2) / (o2 - u2));
1759
+ }
1760
+ function jn(n2, t2, e2, r2 = 0, u2 = 1) {
1761
+ return t2 <= 0 || e2 <= 0 || n2 <= 0 || n2 > 1 ? Number.NaN : i.beta.inv(n2, t2, e2) * (u2 - r2) + r2;
1762
+ }
1763
+ function Wn(n2, t2, e2, r2) {
1764
+ return t2 < 0 || e2 < 0 || e2 > 1 || n2 < 0 || n2 > t2 ? Number.NaN : r2 ? i.binomial.cdf(n2, t2, e2) : i.binomial.pdf(n2, t2, e2);
1765
+ }
1766
+ function Kn(n2, t2, e2 = false) {
1767
+ return n2 < 0 || t2 < 1 || t2 > 10 ** 10 ? Number.NaN : e2 ? i.chisquare.cdf(n2, t2) : i.chisquare.pdf(n2, t2);
1768
+ }
1769
+ function $n(n2, t2) {
1770
+ return t2 = Math.trunc(t2), n2 < 0 || n2 > 1 || t2 < 1 || t2 > 10 ** 10 ? Number.NaN : i.chisquare.inv(n2, t2);
1771
+ }
1772
+ function qn(t2, e2) {
1773
+ if (t2.length !== e2.length || t2[0].length !== e2[0].length || 1 === t2.length && 1 === t2[0].length) throw n.BuiltIn.NA;
1774
+ const r2 = t2.length, u2 = t2[0].length;
1775
+ let o2 = (r2 - 1) * (u2 - 1);
1776
+ o2 = 1 === r2 ? u2 - 1 : r2 - 1;
1777
+ let a2 = 0;
1778
+ for (let n2 = 0; n2 < r2; n2++) for (let r3 = 0; r3 < u2; r3++) if ("number" == typeof t2[n2][r3] && "number" == typeof e2[n2][r3]) {
1779
+ if (0 === e2[n2][r3]) return 1 / 0;
1780
+ a2 += Math.pow(t2[n2][r3] - e2[n2][r3], 2) / e2[n2][r3];
1781
+ }
1782
+ let i2 = Math.exp(-0.5 * a2);
1783
+ o2 % 2 == 1 && (i2 *= Math.sqrt(2 * a2 / Math.PI));
1784
+ let l2 = o2;
1785
+ for (; l2 >= 2; ) i2 = i2 * a2 / l2, l2 -= 2;
1786
+ let s2 = i2, f2 = o2;
1787
+ for (; s2 > 1e-15 * i2; ) f2 += 2, s2 = s2 * a2 / f2, i2 += s2;
1788
+ return 1 - i2;
1789
+ }
1790
+ function Qn(t2, e2) {
1791
+ if (t2.length !== e2.length) throw n.BuiltIn.NA;
1792
+ const r2 = [], u2 = [];
1793
+ for (let n2 = 0; n2 < t2.length; n2++) "number" == typeof t2[n2] && "number" == typeof e2[n2] && (r2.push(t2[n2]), u2.push(e2[n2]));
1794
+ const o2 = i.mean(r2), a2 = i.mean(u2);
1795
+ let l2 = 0;
1796
+ for (let n2 = 0; n2 < r2.length; n2++) l2 += (r2[n2] - o2) * (u2[n2] - a2);
1797
+ return l2 / r2.length;
1798
+ }
1799
+ function Zn(n2, t2, e2) {
1800
+ return n2 < 0 || t2 <= 0 ? Number.NaN : e2 ? i.exponential.cdf(n2, t2) : i.exponential.pdf(n2, t2);
1801
+ }
1802
+ function Jn(n2, t2, e2, r2) {
1803
+ return n2 < 0 || t2 < 1 || e2 < 1 ? Number.NaN : (t2 = Math.trunc(t2), e2 = Math.trunc(e2), r2 ? i.centralF.cdf(n2, t2, e2) : i.centralF.pdf(n2, t2, e2));
1804
+ }
1805
+ function nt(n2, t2, e2) {
1806
+ return n2 < 0 || n2 > 1 || t2 < 1 || e2 < 1 ? Number.NaN : (t2 = Math.trunc(t2), e2 = Math.trunc(e2), i.centralF.inv(n2, t2, e2));
1807
+ }
1808
+ function tt(n2, t2) {
1809
+ const e2 = [], r2 = [];
1810
+ let u2 = 0, o2 = 0;
1811
+ for (let a3 = 0; a3 < Math.max(n2.length, t2.length); a3++) "number" == typeof n2[a3] && (e2.push(n2[a3]), u2 += n2[a3]), "number" == typeof t2[a3] && (r2.push(t2[a3]), o2 += t2[a3]);
1812
+ if (e2.length <= 1 || r2.length <= 1) return 1 / 0;
1813
+ u2 /= e2.length, o2 /= r2.length;
1814
+ let a2 = 0, l2 = 0;
1815
+ for (let n3 = 0; n3 < e2.length; n3++) a2 += (u2 - e2[n3]) ** 2;
1816
+ a2 /= e2.length - 1;
1817
+ for (let n3 = 0; n3 < r2.length; n3++) l2 += (o2 - r2[n3]) ** 2;
1818
+ return l2 /= r2.length - 1, 2 * i.centralF.cdf(a2 / l2, e2.length - 1, r2.length - 1);
1819
+ }
1820
+ function et(t2, e2 = null, r2 = null) {
1821
+ const u2 = e2.length;
1822
+ if (r2.length !== u2) throw n.BuiltIn.NA;
1823
+ const o2 = [], a2 = [];
1824
+ let l2 = true;
1825
+ for (let n2 = 0; n2 < u2; n2++) "number" == typeof e2[n2] && "number" == typeof r2[n2] && (o2.push(e2[n2]), a2.push(r2[n2]), r2[n2] !== r2[0] && (l2 = false));
1826
+ if (l2) return 1 / 0;
1827
+ const s2 = i.mean(o2), f2 = i.mean(a2);
1828
+ let c2 = 0, m2 = 0;
1829
+ const p2 = o2.length;
1830
+ for (let n2 = 0; n2 < p2; n2++) c2 += (a2[n2] - f2) * (o2[n2] - s2), m2 += (a2[n2] - f2) ** 2;
1831
+ const N2 = c2 / m2;
1832
+ return s2 - N2 * f2 + N2 * t2;
1833
+ }
1834
+ function rt(n2, t2 = void 0) {
1835
+ let e2 = [];
1836
+ for (let r2 = 0; r2 < n2.length; r2++) {
1837
+ const u2 = n2[r2];
1838
+ for (let n3 = 0; n3 < u2.length; n3++) {
1839
+ let r3 = u2[n3];
1840
+ null == r3 && (r3 = t2), e2.push(r3);
1841
+ }
1842
+ }
1843
+ return e2;
1844
+ }
1845
+ function ut(n2, t2 = null, e2 = true, r2 = false) {
1846
+ const u2 = n2.size, [o2, a2] = kn(n2, t2), l2 = i.mean(o2), s2 = i.mean(a2);
1847
+ let f2 = 0, c2 = 0;
1848
+ for (let n3 = 0; n3 < u2; n3++) f2 += (a2[n3] - s2) * (o2[n3] - l2), c2 += Math.pow(a2[n3] - s2, 2);
1849
+ const m2 = f2 / c2;
1850
+ return [m2, l2 - m2 * s2];
1851
+ }
1852
+ function ot(n2, t2) {
1853
+ return t2 ? i.normal.cdf(n2, 0, 1) : i.normal.pdf(n2, 0, 1);
1854
+ }
1855
+ function at(...n2) {
1856
+ const t2 = it(...n2);
1857
+ return Math.sqrt(t2);
1858
+ }
1859
+ function it(...n2) {
1860
+ let t2 = 0, r2 = 0;
1861
+ const u2 = Gn(...n2);
1862
+ for (const o2 of n2) for (const n3 of o2.values({ type: e.Number, includeMistyped: true })) "number" == typeof n3 && (t2 += Math.pow(n3 - u2, 2)), r2++;
1863
+ return t2 / (r2 - 1);
1864
+ }
1865
+ const lt = Object.freeze(Object.defineProperty({ __proto__: null, BETADIST: function(n2, t2, e2, r2, u2 = 0, o2 = 1) {
1866
+ return zn(n2, t2, e2, true, u2, o2);
1867
+ }, BETAINV: function(n2, t2, e2, r2 = 0, u2 = 1) {
1868
+ return jn(n2, t2, e2, r2, u2);
1869
+ }, BETA_DIST: zn, BETA_INV: jn, BINOMDIST: function(n2, t2, e2, r2) {
1870
+ return Wn(n2, t2, e2, r2);
1871
+ }, BINOM_DIST: Wn, BINOM_DIST_RANGE: function(n2, t2, e2, r2 = e2) {
1872
+ if (n2 < 0 || t2 < 0 || t2 > 1 || e2 < 0 || e2 > n2 || r2 < e2 || r2 > n2) return Number.NaN;
1873
+ let u2 = 0;
1874
+ for (let o2 = e2; o2 <= r2; o2++) u2 += Ln(n2, o2) * Math.pow(t2, o2) * Math.pow(1 - t2, n2 - o2);
1875
+ return u2;
1876
+ }, BINOM_INV: function(n2, t2, e2) {
1877
+ if (n2 < 0 || t2 < 0 || t2 > 1 || e2 < 0 || e2 > 1) return Number.NaN;
1878
+ let r2 = 0;
1879
+ for (; r2 <= n2; ) {
1880
+ if (i.binomial.cdf(r2, n2, t2) >= e2) return r2;
1881
+ r2++;
1882
+ }
1883
+ }, CHIDIST: function(n2, t2) {
1884
+ return Kn(n2, t2);
1885
+ }, CHIINV: function(n2, t2) {
1886
+ return $n(n2, t2);
1887
+ }, CHISQ_DIST: Kn, CHISQ_DIST_RT: function(n2, t2) {
1888
+ return t2 = Math.trunc(t2), n2 < 0 || t2 < 1 || t2 > 10 ** 10 ? Number.NaN : 1 - i.chisquare.cdf(n2, t2);
1889
+ }, CHISQ_INV: $n, CHISQ_INV_RT: function(n2, t2) {
1890
+ return t2 = Math.trunc(t2), n2 < 0 || n2 > 1 || t2 < 1 || t2 > 10 ** 10 ? Number.NaN : i.chisquare.inv(1 - n2, t2);
1891
+ }, CHISQ_TEST: qn, CHITEST: function(n2, t2) {
1892
+ return qn(n2, t2);
1893
+ }, CONFIDENCE: function(n2, t2, e2, r2) {
1894
+ return r2 = Math.trunc(r2), n2 <= 0 || n2 >= 1 || t2 <= 0 || r2 < 1 ? Number.NaN : i.normalci(e2, n2, t2, r2)[1] - 1;
1895
+ }, CONFIDENCE_NORM: function(n2, t2, e2) {
1896
+ return e2 = Math.trunc(e2), n2 <= 0 || n2 >= 1 || t2 <= 0 || e2 < 1 ? Number.NaN : i.normalci(1, n2, t2, e2)[1] - 1;
1897
+ }, CONFIDENCE_T: function(n2, t2, e2) {
1898
+ return e2 = Math.trunc(e2), n2 <= 0 || n2 >= 1 || t2 <= 0 || e2 < 1 ? Number.NaN : i.tci(1, n2, t2, e2)[1] - 1;
1899
+ }, CORREL: function(t2, e2) {
1900
+ if (t2.length !== e2.length) throw n.BuiltIn.NA;
1901
+ const r2 = [], u2 = [];
1902
+ for (let n2 = 0; n2 < t2.length; n2++) "number" == typeof t2[n2] && "number" == typeof e2[n2] && (r2.push(t2[n2]), u2.push(e2[n2]));
1903
+ return r2.length <= 1 ? 1 / 0 : i.corrcoeff(r2, u2);
1904
+ }, COVARIANCE: function(n2, t2) {
1905
+ return Qn(n2, t2);
1906
+ }, COVARIANCE_P: Qn, COVARIANCE_S: function(t2, e2) {
1907
+ if (t2.length !== e2.length) throw n.BuiltIn.NA;
1908
+ const r2 = [], u2 = [];
1909
+ for (let n2 = 0; n2 < t2.length; n2++) "number" == typeof t2[n2] && "number" == typeof e2[n2] && (r2.push(t2[n2]), u2.push(e2[n2]));
1910
+ return r2.length <= 1 ? 1 / 0 : i.covariance(r2, u2);
1911
+ }, CRITBINOM: function(n2, t2, e2) {
1912
+ }, DEVSQ: function(...n2) {
1913
+ let t2 = 0, e2 = [];
1914
+ for (const r3 of n2) for (const n3 of r3.values()) t2 += n3, e2.push(n3);
1915
+ const r2 = e2.length, u2 = t2 / r2;
1916
+ t2 = 0;
1917
+ for (let n3 = 0; n3 < r2; n3++) t2 += (e2[n3] - u2) ** 2;
1918
+ return t2;
1919
+ }, EXPONDIST: function(n2, t2, e2) {
1920
+ return Zn(n2, t2, e2);
1921
+ }, EXPON_DIST: Zn, FDIST: function(n2, t2, e2) {
1922
+ return Jn(n2, t2, e2, true);
1923
+ }, FINV: function(n2, t2, e2) {
1924
+ return nt(n2, t2, e2);
1925
+ }, FISHER: function(n2) {
1926
+ return n2 <= -1 || n2 >= 1 ? Number.NaN : Math.log((1 + n2) / (1 - n2)) / 2;
1927
+ }, FISHERINV: function(n2) {
1928
+ const t2 = Math.exp(2 * n2);
1929
+ return (t2 - 1) / (t2 + 1);
1930
+ }, FORECAST: et, FORECAST_ETS: function(n2, t2, e2, r2 = 0.95, u2 = 1, o2 = 1) {
1931
+ }, FORECAST_ETS_CONFINT: function(n2, t2, e2, r2 = 0.95, u2 = 0.95, o2 = 1, a2 = 1) {
1932
+ }, FORECAST_ETS_SEASONALITY: function(n2, t2, e2 = 1, r2 = 1) {
1933
+ }, FORECAST_ETS_STAT: function(n2, t2, e2, r2 = 1, u2 = 1, o2 = 1) {
1934
+ }, FORECAST_LINEAR: function(n2, t2, e2 = null) {
1935
+ return et(n2, t2, e2);
1936
+ }, FREQUENCY: function(n2, t2) {
1937
+ let e2 = rt(n2), r2 = rt(t2);
1938
+ const u2 = [];
1939
+ for (let n3 = 0; n3 < r2.length; n3++) "number" == typeof r2[n3] && u2.push(r2[n3]);
1940
+ u2.sort(), u2.push(1 / 0);
1941
+ const o2 = [];
1942
+ for (let n3 = 0; n3 < u2.length; n3++) {
1943
+ o2[n3] = [], o2[n3][0] = 0;
1944
+ for (let t3 = 0; t3 < e2.length; t3++) {
1945
+ if ("number" != typeof e2[t3]) continue;
1946
+ e2[t3] <= u2[n3] && (o2[n3][0]++, e2[t3] = null);
1947
+ }
1948
+ }
1949
+ return o2;
1950
+ }, FTEST: function(n2, t2) {
1951
+ return tt(n2, t2);
1952
+ }, F_DIST: Jn, F_DIST_RT: function(n2, t2, e2) {
1953
+ return n2 < 0 || t2 < 1 || e2 < 1 ? Number.NaN : (t2 = Math.trunc(t2), e2 = Math.trunc(e2), 1 - i.centralF.cdf(n2, t2, e2));
1954
+ }, F_INV: nt, F_INV_RT: function(n2, t2, e2) {
1955
+ 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), i.centralF.inv(1 - n2, t2, e2));
1956
+ }, F_TEST: tt, GAMMA: function(n2) {
1957
+ return 0 === n2 || n2 < 0 && n2 === Math.trunc(n2) ? Number.NaN : i.gammafn(n2);
1958
+ }, GAMMALN: function(n2) {
1959
+ return n2 <= 0 ? Number.NaN : i.gammaln(n2);
1960
+ }, GAMMALN_PRECISE: function(n2) {
1961
+ return n2 <= 0 ? Number.NaN : i.gammaln(n2);
1962
+ }, GAMMA_DIST: function(n2, t2, e2, r2 = false) {
1963
+ return n2 < 0 || t2 <= 0 || e2 <= 0 ? Number.NaN : r2 ? i.gamma.cdf(n2, t2, e2, true) : i.gamma.pdf(n2, t2, e2, false);
1964
+ }, GAMMA_INV: function(n2, t2, e2) {
1965
+ return n2 < 0 || n2 > 1 || t2 <= 0 || e2 <= 0 ? Number.NaN : i.gamma.inv(n2, t2, e2);
1966
+ }, GAUSS: function(n2) {
1967
+ return i.normal.cdf(n2, 0, 1) - 0.5;
1968
+ }, GEOMEAN: function(...n2) {
1969
+ const t2 = [];
1970
+ for (const e2 of n2) for (const n3 of e2.values()) t2.push(n3);
1971
+ return i.geomean(t2);
1972
+ }, GROWTH: function(t2, e2 = null, r2 = null, u2 = true) {
1973
+ const o2 = t2.length;
1974
+ for (let e3 = 0; e3 < o2; e3++) if ("number" != typeof t2[e3]) throw n.BuiltIn.Value;
1975
+ const a2 = null === e2;
1976
+ if (null === e2) {
1977
+ e2 = [];
1978
+ for (let n2 = 1; n2 <= o2; n2++) e2.push(n2);
1979
+ } else {
1980
+ const t3 = e2.length;
1981
+ if (t3 !== o2) throw n.BuiltIn.Ref;
1982
+ for (let r3 = 0; r3 < t3; r3++) if ("number" != typeof e2[r3]) throw n.BuiltIn.Value;
1983
+ }
1984
+ if (null === r2 && a2) {
1985
+ r2 = [];
1986
+ for (let n2 = 1; n2 <= o2; n2++) r2.push(n2);
1987
+ r2 = [r2];
1988
+ } else null === r2 && (r2 = Array.isArray(e2[0]) ? e2 : [e2]);
1989
+ let i2, l2, s2 = 0, f2 = 0, c2 = 0, m2 = 0;
1990
+ for (let n2 = 0; n2 < o2; n2++) {
1991
+ const r3 = e2[n2], u3 = Math.log(t2[n2]);
1992
+ s2 += r3, f2 += u3, c2 += r3 * u3, m2 += r3 * r3;
1993
+ }
1994
+ s2 /= o2, f2 /= o2, c2 /= o2, m2 /= o2, u2 ? (i2 = (c2 - s2 * f2) / (m2 - s2 * s2), l2 = f2 - i2 * s2) : (i2 = c2 / m2, l2 = 0);
1995
+ const p2 = [], N2 = r2.length;
1996
+ for (let t3 = 0; t3 < N2; t3++) {
1997
+ p2[t3] = [];
1998
+ for (let e3 = 0; e3 < r2[0].length; e3++) {
1999
+ if ("number" != typeof r2[t3][e3]) throw n.BuiltIn.Value;
2000
+ p2[t3][e3] = Math.exp(l2 + i2 * r2[t3][e3]);
2001
+ }
2002
+ }
2003
+ return p2;
2004
+ }, HARMEAN: function(...n2) {
2005
+ let t2 = 0, e2 = 0;
2006
+ for (const r2 of n2) for (const n3 of r2.values()) e2 += 1 / n3, t2++;
2007
+ return t2 / e2;
2008
+ }, HYPGEOM_DIST: function(n2, t2, e2, r2, u2) {
2009
+ 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;
2010
+ if (t2 > r2) return Number.NaN;
2011
+ if (e2 > r2) return Number.NaN;
2012
+ if (t2 < n2 || e2 < n2) return Number.NaN;
2013
+ if (n2 < t2 - r2 + e2) return Number.NaN;
2014
+ function o2(n3, t3, e3, r3) {
2015
+ return Ln(e3, n3) * Ln(r3 - e3, t3 - n3) / Ln(r3, t3);
2016
+ }
2017
+ return u2 ? function(n3, t3, e3, r3) {
2018
+ let u3 = 0;
2019
+ for (let a2 = 0; a2 <= n3; a2++) u3 += o2(a2, t3, e3, r3);
2020
+ return u3;
2021
+ }(n2, t2, e2, r2) : o2(n2, t2, e2, r2);
2022
+ }, INTERCEPT: function(t2, e2) {
2023
+ if (e2.length !== t2.length) throw n.BuiltIn.NA;
2024
+ const r2 = [], u2 = [];
2025
+ for (let n2 = 0; n2 < t2.length; n2++) "number" == typeof t2[n2] && "number" == typeof e2[n2] && (r2.push(t2[n2]), u2.push(e2[n2]));
2026
+ if (r2.length <= 1) return 1 / 0;
2027
+ const o2 = i.mean(r2), a2 = i.mean(u2);
2028
+ let l2 = 0, s2 = 0;
2029
+ for (let n2 = 0; n2 < r2.length; n2++) l2 += (u2[n2] - a2) * (r2[n2] - o2), s2 += (u2[n2] - a2) ** 2;
2030
+ return o2 - l2 / s2 * a2;
2031
+ }, KURT: function(...n2) {
2032
+ let t2 = 0;
2033
+ const e2 = [];
2034
+ for (const r3 of n2) for (const n3 of r3.values()) t2 += n3, e2.push(n3);
2035
+ const r2 = e2.length;
2036
+ t2 /= r2;
2037
+ let u2 = 0;
2038
+ for (let n3 = 0; n3 < r2; n3++) u2 += Math.pow(e2[n3] - t2, 4);
2039
+ return u2 /= Math.pow(i.stdev(e2, true), 4), r2 * (r2 + 1) / ((r2 - 1) * (r2 - 2) * (r2 - 3)) * u2 - 3 * (r2 - 1) * (r2 - 1) / ((r2 - 2) * (r2 - 3));
2040
+ }, LINEST: ut, LOGEST: function(n2, t2 = null, e2 = true, r2 = false) {
2041
+ }, LOGNORM_DIST: function(n2, t2, e2, r2) {
2042
+ return n2 <= 0 || e2 <= 0 ? Number.NaN : r2 ? i.lognormal.cdf(n2, t2, e2) : i.lognormal.pdf(n2, t2, e2);
2043
+ }, LOGNORM_INV: function(n2, t2, e2) {
2044
+ return n2 <= 0 || n2 >= 1 || e2 <= 0 ? Number.NaN : i.lognormal.inv(n2, t2, e2);
2045
+ }, MODE_MULT: function(...n2) {
2046
+ }, MODE_SNGL: function(...n2) {
2047
+ }, NEGBINOM_DIST: function(n2, t2, e2, r2) {
2048
+ return n2 = Math.trunc(n2), t2 = Math.trunc(t2), e2 < 0 || e2 > 1 || n2 < 0 || t2 < 1 ? Number.NaN : r2 ? i.negbin.cdf(n2, t2, e2) : i.negbin.pdf(n2, t2, e2);
2049
+ }, NORM_DIST: function(n2, t2, e2, r2) {
2050
+ return e2 <= 0 ? Number.NaN : r2 ? i.normal.cdf(n2, t2, e2) : i.normal.pdf(n2, t2, e2);
2051
+ }, NORM_INV: function(n2, t2, e2) {
2052
+ return n2 <= 0 || n2 >= 1 || e2 <= 0 ? Number.NaN : i.normal.inv(n2, t2, e2);
2053
+ }, NORM_S_DIST: ot, NORM_S_INV: function(n2) {
2054
+ return n2 <= 0 || n2 >= 1 ? Number.NaN : i.normal.inv(n2, 0, 1);
2055
+ }, PEARSON: function(n2, t2) {
2056
+ const e2 = n2.size, [r2, u2] = kn(n2, t2), o2 = i.mean(r2), a2 = i.mean(u2);
2057
+ let l2 = 0, s2 = 0, f2 = 0;
2058
+ for (let n3 = 0; n3 < e2; n3++) l2 += (r2[n3] - o2) * (u2[n3] - a2), s2 += Math.pow(r2[n3] - o2, 2), f2 += Math.pow(u2[n3] - a2, 2);
2059
+ return l2 / Math.sqrt(s2 * f2);
2060
+ }, PERCENTILE_EXC: function(n2, t2) {
2061
+ }, PERCENTILE_INC: function(n2, t2) {
2062
+ }, PERCENTRANK_EXC: function(n2, t2, e2 = 3) {
2063
+ }, PERCENTRANK_INC: function(n2, t2, e2 = 3) {
2064
+ }, PHI: function(n2) {
2065
+ return Math.exp(-0.5 * n2 * n2) / 2.5066282746310002;
2066
+ }, POISSON_DIST: function(n2, t2, e2) {
2067
+ return n2 < 0 || t2 < 0 ? Number.NaN : (n2 = Math.trunc(n2), e2 ? i.poisson.cdf(n2, t2) : i.poisson.pdf(n2, t2));
2068
+ }, PROB: function(n2, t2, e2, r2) {
2069
+ }, QUARTILE_EXC: function(n2, t2) {
2070
+ }, QUARTILE_INC: function(n2, t2) {
2071
+ }, RANK_AVG: function(n2, t2, e2 = 0) {
2072
+ }, RANK_EQ: function(n2, t2, e2 = 0) {
2073
+ }, RSQ: function(n2, t2) {
2074
+ }, SKEW: function(...n2) {
2075
+ }, SKEW_P: function(...n2) {
2076
+ }, SLOPE: function(n2, t2) {
2077
+ return ut(n2, t2)[0];
2078
+ }, STANDARDIZE: function(n2, t2, e2) {
2079
+ return e2 <= 0 ? Number.NaN : (n2 - t2) / e2;
2080
+ }, STDEVA: function(...n2) {
2081
+ }, STDEVPA: function(...n2) {
2082
+ }, STDEV_P: function(...n2) {
2083
+ }, STDEV_S: at, STEYX: function(n2, t2) {
2084
+ }, TREND: function(n2, t2 = null, e2 = null, r2 = true) {
2085
+ }, TRIMMEAN: function(n2, t2) {
2086
+ }, T_DIST: function(n2, t2, e2) {
2087
+ return t2 < 1 ? Number.NaN : e2 ? i.studentt.cdf(n2, t2) : i.studentt.pdf(n2, t2);
2088
+ }, T_DIST_2T: function(n2, t2) {
2089
+ return t2 < 1 || n2 < 0 ? Number.NaN : 2 * (1 - i.studentt.cdf(n2, t2));
2090
+ }, T_DIST_RT: function(n2, t2) {
2091
+ return t2 < 1 ? Number.NaN : 1 - i.studentt.cdf(n2, t2);
2092
+ }, T_INV: function(n2, t2) {
2093
+ return n2 <= 0 || n2 > 1 || t2 < 1 ? Number.NaN : (t2 = t2 % 1 == 0 ? t2 : Math.trunc(t2), i.studentt.inv(n2, t2));
2094
+ }, T_INV_2T: function(n2, t2) {
2095
+ return n2 <= 0 || n2 > 1 || t2 < 1 ? Number.NaN : (t2 = t2 % 1 == 0 ? t2 : Math.trunc(t2), Math.abs(i.studentt.inv(n2 / 2, t2)));
2096
+ }, T_TEST: function(n2, t2, e2, r2) {
2097
+ }, VARA: function(...n2) {
2098
+ let t2 = 0, e2 = 0;
2099
+ const r2 = Xn(...n2);
2100
+ for (const u2 of n2) for (const n3 of u2.values()) t2 += "number" == typeof n3 ? Math.pow(n3 - r2, 2) : true === n3 ? Math.pow(1 - r2, 2) : Math.pow(0 - r2, 2), e2++;
2101
+ return t2 / (e2 - 1);
2102
+ }, VARPA: function(...n2) {
2103
+ const t2 = Xn(...n2);
2104
+ let e2 = 0, r2 = 0;
2105
+ for (const u2 of n2) for (const n3 of u2.values()) r2++, e2 += "number" == typeof n3 ? Math.pow(n3 - t2, 2) : true === n3 ? Math.pow(1 - t2, 2) : Math.pow(0 - t2, 2);
2106
+ return e2 / r2;
2107
+ }, VAR_P: function(...t2) {
2108
+ let e2 = 0, r2 = 0;
2109
+ const u2 = Gn(...t2);
2110
+ for (const n2 of t2) for (const t3 of n2.values()) e2 += Math.pow(t3 - u2, 2), r2++;
2111
+ const o2 = e2 / r2;
2112
+ return isNaN(o2) ? n.BuiltIn.Num : o2;
2113
+ }, VAR_S: it, WEIBULL_DIST: function(n2, t2, e2, r2) {
2114
+ 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);
2115
+ }, Z_TEST: function(n2, t2, e2 = 0) {
2116
+ e2 = e2 || at(n2);
2117
+ const r2 = n2.size;
2118
+ return 1 - ot((Gn(n2) - t2) / (e2 / Math.sqrt(r2)), true);
2119
+ } }, Symbol.toStringTag, { value: "Module" }));
2120
+ globalThis.debugEventTarget ??= new EventTarget();
2121
+ const st = globalThis.debugEventTarget, ft = /* @__PURE__ */ new Map();
2122
+ function ct(n2) {
2123
+ const { inbox: t2, waiters: e2 } = function(n3) {
2124
+ if (ft.has(n3)) return ft.get(n3);
2125
+ const t3 = { inbox: [], waiters: [] };
2126
+ return st.addEventListener(n3, (n4) => {
2127
+ t3.waiters.length ? t3.waiters.shift()(n4.detail) : t3.inbox.push(n4.detail);
2128
+ }), ft.set(n3, t3), t3;
2129
+ }(n2);
2130
+ return t2.length ? Promise.resolve(t2.shift()) : new Promise((n3) => e2.push(n3));
2131
+ }
2132
+ const mt = Object.freeze(Object.defineProperty({ __proto__: null, DELAY: async function(n2, t2, e2 = "No label") {
2133
+ return new Promise((e3) => {
2134
+ setTimeout(() => {
2135
+ e3(t2);
2136
+ }, n2);
2137
+ });
2138
+ }, WAIT: async function(n2, t2) {
2139
+ const e2 = await ct(n2);
2140
+ let r2 = t2?.getValueAt(0, 0) ?? "", u2 = `event["${n2}"`;
2141
+ return void 0 !== e2 && (u2 += `, payload: ${e2}`), "" !== r2 && (u2 += `, input: ${r2}`), u2 += "]", console.log(u2), "" + e2 + r2;
2142
+ } }, Symbol.toStringTag, { value: "Module" }));
2143
+ const pt = Object.freeze(Object.defineProperty({ __proto__: null, BAHTTEXT: function(n2) {
2144
+ try {
2145
+ return l(n2);
2146
+ } catch (n3) {
2147
+ throw Error(`Error in https://github.com/jojoee/bahttext
2148
+ ${n3.toString()}`);
2149
+ }
2150
+ } }, Symbol.toStringTag, { value: "Module" })), Nt = { 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: "¢£¬ ̄¦¥₩ │←↑→↓■○" } }, ht = (n2, t2) => n2[t2 + "RE"] || new RegExp("[" + n2[t2] + "]", "g"), Et = Object.keys(Nt).map((n2) => Nt[n2]), gt = (n2) => Et.reduce((n3, t2) => n3.replace(ht(t2, "half"), /* @__PURE__ */ ((n4) => (t3) => n4.delta ? String.fromCharCode(t3.charCodeAt(0) + n4.delta) : [...n4.full][[...n4.half].indexOf(t3)])(t2)), n2), It = (n2) => Et.reduce((n3, t2) => n3.replace(ht(t2, "full"), /* @__PURE__ */ ((n4) => (t3) => n4.delta ? String.fromCharCode(t3.charCodeAt(0) - n4.delta) : [...n4.half][[...n4.full].indexOf(t3)])(t2)), n2);
2151
+ function Tt(t2) {
2152
+ if (0 === t2.length) throw n.BuiltIn.Value;
2153
+ return t2.charCodeAt(0);
2154
+ }
2155
+ function dt(t2, e2, r2 = 1) {
2156
+ if (r2 < 1 || r2 > e2.length) throw n.BuiltIn.Value;
2157
+ const u2 = e2.indexOf(t2, r2 - 1);
2158
+ if (-1 === u2) throw n.BuiltIn.Value;
2159
+ return u2 + 1;
2160
+ }
2161
+ function bt(t2, e2 = 1) {
2162
+ if (e2 < 0) throw n.BuiltIn.Value;
2163
+ return e2 > t2.length ? t2 : t2.slice(0, e2);
2164
+ }
2165
+ function Mt(t2, e2, r2) {
2166
+ if (e2 > t2.length) return "";
2167
+ if (e2 < 1 || r2 < 1) throw n.BuiltIn.Value;
2168
+ return t2.slice(e2 - 1, e2 + r2 - 1);
2169
+ }
2170
+ function St(n2, t2, e2, r2) {
2171
+ let u2 = n2.split("");
2172
+ return u2.splice(t2 - 1, e2, r2), u2.join("");
2173
+ }
2174
+ function At(t2, e2 = 1) {
2175
+ if (e2 < 0) throw n.BuiltIn.Value;
2176
+ const r2 = t2.length;
2177
+ return e2 > r2 ? t2 : t2.slice(r2 - e2);
2178
+ }
2179
+ function Rt(t2, e2, r2 = 1) {
2180
+ if (r2 < 1 || r2 > e2.length) throw n.BuiltIn.Value;
2181
+ let u2 = dn(t2) ? bn(t2, "i") : t2;
2182
+ const o2 = e2.slice(r2 - 1).search(u2);
2183
+ if (-1 === o2) throw n.BuiltIn.Value;
2184
+ return o2 + r2;
2185
+ }
2186
+ function Ct(t2, e2 = 0) {
2187
+ if (0 !== (e2 = Math.floor(e2)) && 1 !== e2) throw n.BuiltIn.Value;
2188
+ return null !== t2 ? "string" == typeof t2 ? 1 === e2 ? '"' + t2 + '"' : t2 : "boolean" == typeof t2 ? t2 ? "TRUE" : "FALSE" : t2.toString() : "";
2189
+ }
2190
+ const Ot = Object.freeze(Object.defineProperty({ __proto__: null, ARRAYTOTEXT: function(t2, e2 = 0) {
2191
+ if (0 !== (e2 = Math.floor(e2)) && 1 !== e2) throw n.BuiltIn.Value;
2192
+ const u2 = 1 === e2;
2193
+ let o2 = null;
2194
+ if (!u2) {
2195
+ for (const n2 of t2.values({ orientation: r.Orientation.Row })) o2 = null === o2 ? "" : o2 + ", ", o2 += Ct(n2, e2);
2196
+ return o2;
2197
+ }
2198
+ const a2 = t2.getValues();
2199
+ o2 = "{";
2200
+ for (let n2 = 0; n2 < a2.length; n2++) {
2201
+ const t3 = a2[n2];
2202
+ for (let n3 = 0; n3 < t3.length; n3++) o2 += Ct(t3[n3], e2), n3 < t3.length - 1 && (o2 += ",");
2203
+ n2 < a2.length - 1 && (o2 += ";");
2204
+ }
2205
+ return u2 && (o2 += "}"), o2;
2206
+ }, ASC: function(n2) {
2207
+ return It(n2);
2208
+ }, CHAR: function(t2) {
2209
+ if (t2 > 255 || t2 < 1) throw n.BuiltIn.Value;
2210
+ return String.fromCharCode(t2);
2211
+ }, CLEAN: function(n2) {
2212
+ return n2.replace(/[\x00-\x1F]/g, "");
2213
+ }, CODE: Tt, CONCAT: function(...t2) {
2214
+ let u2 = "", o2 = 0;
2215
+ for (const a2 of t2) for (const t3 of a2.values({ type: e.String, coerce: true, orientation: r.Orientation.Row })) {
2216
+ if (o2++ > 254) throw n.Value;
2217
+ u2 += t3;
2218
+ }
2219
+ return u2;
2220
+ }, CONCATENATE: function(...t2) {
2221
+ let r2 = "", u2 = 0;
2222
+ for (const o2 of t2) {
2223
+ const t3 = o2.getValueAt(0, 0, { type: e.String, coerce: true });
2224
+ if (u2++ > 254) throw n.Value;
2225
+ r2 += t3;
2226
+ }
2227
+ return r2;
2228
+ }, DBCS: function(n2) {
2229
+ return gt(n2);
2230
+ }, DETECTLANGUAGE: function(n2) {
2231
+ }, DOLLAR: function(n2, e2 = 2) {
2232
+ const r2 = Array(e2).fill("0").join(""), u2 = t.getRuntime(), o2 = u2.getCurrencySymbol(), a2 = u2.getNumberGroupSeparator(), i2 = u2.getNumberDecimalSeparator(), l2 = `${o2}#${a2}##0${i2}${r2}_);(${o2}#${a2}##0${i2}${r2})`;
2233
+ return t.getNumberFormat(l2, n2).trim();
2234
+ }, EXACT: function(n2, t2) {
2235
+ return n2 === t2;
2236
+ }, FIND: dt, FINDB: function(n2, t2, e2 = 1) {
2237
+ return dt(n2, t2, e2);
2238
+ }, FIXED: function(n2, e2 = 2, r2 = false) {
2239
+ const u2 = Array(e2).fill("0").join(""), o2 = t.getRuntime(), a2 = o2.getNumberGroupSeparator(), i2 = o2.getNumberDecimalSeparator(), l2 = r2 ? "" : `#${a2}`, s2 = `${l2}##0${i2}${u2}_);(${l2}##0${i2}${u2})`;
2240
+ return t.getNumberFormat(s2, n2).trim();
2241
+ }, LEFT: bt, LEFTB: function(n2, t2 = 1) {
2242
+ return bt(n2, t2);
2243
+ }, LEN: function(n2) {
2244
+ return n2.length;
2245
+ }, LENB: function(n2) {
2246
+ return n2.length;
2247
+ }, LOWER: function(n2) {
2248
+ return n2.toLowerCase();
2249
+ }, MID: Mt, MIDB: function(n2, t2, e2) {
2250
+ return Mt(n2, t2, e2);
2251
+ }, NUMBERVALUE: function(t2, e2 = ".", r2 = ",") {
2252
+ if (0 === t2.length) return 0;
2253
+ if (0 === e2.length || 0 === r2.length) throw n.BuiltIn.Value;
2254
+ if ((e2 = e2[0]) === (r2 = r2[0]) || t2.indexOf(e2) < t2.lastIndexOf(r2)) throw n.BuiltIn.Value;
2255
+ const u2 = t2.replace(r2, "").replace(e2, ".").replace(/[^\-0-9.%()]/g, "").match(/([(-]*)([0-9]*[.]*[0-9]+)([)]?)([%]*)/);
2256
+ if (!u2) throw n.BuiltIn.Value;
2257
+ const o2 = u2[1].length, a2 = u2[3].length, i2 = u2[4].length;
2258
+ let l2 = Number(u2[2]);
2259
+ if (o2 > 1 || o2 && !a2 || !o2 && a2 || isNaN(l2)) throw n.BuiltIn.Value;
2260
+ return l2 /= 100 ** i2, o2 ? -l2 : l2;
2261
+ }, PERCENTOF: function(n2, t2) {
2262
+ }, PHONETIC: function(n2) {
2263
+ }, PROPER: function(n2) {
2264
+ return (n2 = (n2 = n2.toLowerCase()).charAt(0).toUpperCase() + n2.slice(1)).replace(/(?:[^a-zA-Z])([a-zA-Z])/g, (n3) => n3.toUpperCase());
2265
+ }, REGEXEXTRACT: function(n2, t2, e2 = 0, r2 = false) {
2266
+ }, REGEXREPLACE: function(n2, t2, e2, r2 = 0, u2 = false) {
2267
+ }, REGEXTEST: function(n2, t2, e2 = false) {
2268
+ }, REPLACE: St, REPLACEB: function(n2, t2, e2, r2) {
2269
+ return St(n2, t2, e2, r2);
2270
+ }, REPT: function(n2, t2) {
2271
+ let e2 = "";
2272
+ for (let r2 = 0; r2 < t2; r2++) e2 += n2;
2273
+ return e2;
2274
+ }, RIGHT: At, RIGHTB: function(n2, t2 = 1) {
2275
+ return At(n2, t2);
2276
+ }, SEARCH: Rt, SEARCHB: function(n2, t2, e2 = 1) {
2277
+ return Rt(n2, t2, e2);
2278
+ }, SUBSTITUTE: function(t2, e2, r2, u2) {
2279
+ if (!t2 || !e2) return t2;
2280
+ if (void 0 === u2) u2 = -1;
2281
+ else if ((u2 = Math.floor(u2)) <= 0) throw new n.Value();
2282
+ let o2 = t2, a2 = 0, i2 = 0;
2283
+ for (; -1 !== (a2 = o2.indexOf(e2, a2)); ) ++i2, i2 !== u2 && -1 !== u2 || (o2 = o2.substring(0, a2) + r2 + o2.substring(a2 + e2.length)), a2 += e2.length;
2284
+ return o2;
2285
+ }, T: function(n2) {
2286
+ return "string" == typeof n2 ? n2 : "";
2287
+ }, TEXT: function(e2, r2) {
2288
+ try {
2289
+ return t.getNumberFormat(r2, e2);
2290
+ } catch (t2) {
2291
+ throw n.BuiltIn.Value;
2292
+ }
2293
+ }, TEXTAFTER: function(t2, e2, r2 = 1, u2 = 0, o2 = 0, a2 = void 0) {
2294
+ if (!t2 || !e2) return n.BuiltIn.Value;
2295
+ if ((r2 = Math.floor(r2)) <= 0) throw n.BuiltIn.Value;
2296
+ let i2 = t2, l2 = e2;
2297
+ 1 === u2 && (i2 = t2.toLowerCase(), l2 = e2.toLowerCase());
2298
+ let s2 = -1, f2 = 0;
2299
+ for (; f2 < r2; ) {
2300
+ if (s2 = i2.indexOf(l2, s2 + 1), -1 === s2) return a2 ?? n.BuiltIn.NA;
2301
+ f2++;
2302
+ }
2303
+ const c2 = t2.substring(s2 + e2.length);
2304
+ return 1 === o2 && 0 === c2.length ? "" : c2;
2305
+ }, TEXTBEFORE: function(t2, e2, r2 = 1, u2 = 0, o2 = 0, a2 = void 0) {
2306
+ if (!t2 || !e2) return n.BuiltIn.Value;
2307
+ if ((r2 = Math.floor(r2)) <= 0) throw n.BuiltIn.Value;
2308
+ let i2 = t2, l2 = e2;
2309
+ 1 === u2 && (i2 = t2.toLowerCase(), l2 = e2.toLowerCase());
2310
+ let s2 = -1, f2 = 0;
2311
+ for (; f2 < r2; ) {
2312
+ if (s2 = i2.indexOf(l2, s2 + 1), -1 === s2) return a2 ?? n.BuiltIn.NA;
2313
+ f2++;
2314
+ }
2315
+ const c2 = t2.substring(0, s2);
2316
+ return 1 === o2 && 0 === c2.length ? "" : c2;
2317
+ }, TEXTJOIN: function(n2, t2, ...u2) {
2318
+ let o2 = "";
2319
+ for (const a2 of u2) for (const u3 of a2.values({ type: e.String, coerce: true, orientation: r.Orientation.Row, includeEmpty: !t2 })) 0 === u3.length && t2 || (o2.length > 0 && (o2 += n2), o2 += u3);
2320
+ return o2;
2321
+ }, TEXTSPLIT: function(t2, e2, r2 = null, u2 = false, o2 = 0, a2 = void 0) {
2322
+ if (!t2) return [[""]];
2323
+ if (0 !== o2 && 1 !== o2) throw n.BuiltIn.Value;
2324
+ const i2 = (n2, t3, e3) => {
2325
+ if (0 === t3.length) return [n2];
2326
+ const r3 = new RegExp(t3.map((n3) => n3.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|"), e3 ? "gi" : "g");
2327
+ return n2.split(r3);
2328
+ };
2329
+ let l2 = [t2];
2330
+ if (r2 && (l2 = i2(t2, r2, 1 === o2)), u2) {
2331
+ const n2 = [];
2332
+ for (let t3 = 0; t3 < l2.length; t3++) {
2333
+ const e3 = l2[t3];
2334
+ e3.length > 0 && n2.push(e3);
2335
+ }
2336
+ l2 = n2;
2337
+ }
2338
+ const s2 = [];
2339
+ let f2 = 0, c2 = Number.MAX_SAFE_INTEGER;
2340
+ for (let n2 = 0; n2 < l2.length; n2++) {
2341
+ let t3 = i2(l2[n2], e2, 1 === o2);
2342
+ if (u2) {
2343
+ const n3 = [];
2344
+ for (let e3 = 0; e3 < t3.length; e3++) {
2345
+ const r3 = t3[e3];
2346
+ r3.length > 0 && n3.push(r3);
2347
+ }
2348
+ t3 = n3;
2349
+ }
2350
+ (t3.length > 0 || !u2) && (s2.push(t3), f2 = Math.max(f2, t3.length), c2 = Math.min(c2, t3.length));
2351
+ }
2352
+ if (s2.length > 0 && c2 !== f2) {
2353
+ const t3 = a2 || n.BuiltIn.NA;
2354
+ for (let n2 = 0; n2 < s2.length; n2++) {
2355
+ const e3 = s2[n2];
2356
+ for (; e3.length < f2; ) e3.push(t3);
2357
+ }
2358
+ }
2359
+ return s2.length > 0 ? s2 : [[""]];
2360
+ }, TRANSLATE: function(n2, t2, e2) {
2361
+ }, TRIM: function(n2) {
2362
+ return n2.replace(/^\s+|\s+$/g, "");
2363
+ }, UNICHAR: function(t2) {
2364
+ if (t2 <= 0) throw n.BuiltIn.Value;
2365
+ return String.fromCharCode(t2);
2366
+ }, UNICODE: function(n2) {
2367
+ return Tt(n2);
2368
+ }, UPPER: function(n2) {
2369
+ return n2.toUpperCase();
2370
+ }, VALUE: function(t2) {
2371
+ const e2 = Number(t2);
2372
+ if (isNaN(e2)) throw n.BuiltIn.Value;
2373
+ return e2;
2374
+ }, VALUETOTEXT: Ct }, Symbol.toStringTag, { value: "Module" }));
2375
+ let Dt = null, yt = null, wt = false;
2376
+ const Bt = Object.freeze(Object.defineProperty({ __proto__: null, FILTERXML: async function(t2, e2) {
2377
+ if (wt) throw n.BuiltIn.Blocked;
2378
+ if (!DOMParser || !yt) try {
2379
+ console.log("Falling back to ESM CDN for XML libraries");
2380
+ const n2 = "https://esm.sh/fontoxpath@3.33.2", t3 = "https://esm.sh/@xmldom/xmldom@0.9.7", [e3, r2] = await Promise.all([import(n2), import(t3)]);
2381
+ yt = e3, DOMParser = r2.DOMParser, Dt = new DOMParser();
2382
+ } catch (n2) {
2383
+ throw console.error("Error loading XML libraries from CDN:", n2), new Error("Failed to load XML libraries");
2384
+ }
2385
+ if (!Dt) throw wt = true, console.warn("Unable to load XML libraries"), n.BuiltIn.Blocked;
2386
+ try {
2387
+ const n2 = Dt.parseFromString(t2, "text/xml");
2388
+ return yt.evaluateXPathToString(e2, n2, null, {});
2389
+ } catch (t3) {
2390
+ throw n.BuiltIn.Value;
2391
+ }
2392
+ } }, Symbol.toStringTag, { value: "Module" }));
2393
+ const Ut = Object.freeze(Object.defineProperty({ __proto__: null, ENCODEURL: function(n2) {
2394
+ return encodeURIComponent(n2);
2395
+ }, WEBSERVICE: async function(t2) {
2396
+ try {
2397
+ const n2 = await fetch(t2, { method: "GET", headers: { Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "User-Agent": "SheetXL-Formula-Function-WEBSERVICE" } });
2398
+ if (!n2.ok) throw new Error(`HTTP error: ${n2.status}`);
2399
+ return await n2.text();
2400
+ } catch (t3) {
2401
+ throw n.BuiltIn.Value;
2402
+ }
2403
+ } }, Symbol.toStringTag, { value: "Module" })), Lt = { 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: "..." }] } }, _t = { 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" }] } }, vt = { 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: "?" }] } }, Vt = { BESSELI: { p: [{ n: "x" }, { n: "n" }] }, BESSELJ: { p: [{ n: "x" }, { n: "n" }] }, BESSELK: { p: [{ n: "x" }, { n: "n" }] }, BESSELY: { p: [{ n: "x" }, { n: "n" }] } }, Pt = { 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: "?" }] } }, Ft = { CONVERT: { p: [{ n: "number" }, { n: "fromUnit", s: "s" }, { n: "toUnit", s: "s" }] } }, xt = { DELTA: { p: [{ n: "number1" }, { n: "number2", m: "?" }] }, GESTEP: { p: [{ n: "number" }, { n: "step", m: "?" }] } }, Ht = { ERF: { p: [{ n: "lowerLimit" }, { n: "upperLimit", m: "?" }] }, "ERF.PRECISE": { fn: "ERF_PRECISE", p: [{ n: "x" }] }, ERFC: { p: [{ n: "x" }] } }, Gt = { 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: "*" }] } }, Xt = { 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: "?" }] } }, Yt = { 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" }] } }, kt = { 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: "?" }] } }, Wt = { 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" }] } }, Kt = { "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: "?" }] } }, $t = { 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" }] } }, qt = { DELAY: { p: [{ n: "time" }, { n: "input", s: "*" }, { n: "label", s: "s", m: "?" }] }, WAIT: { p: [{ n: "type", s: "s" }, { n: "input", r: "l", m: "?" }] } }, Qt = { BAHTTEXT: { p: [{ n: "number" }] } }, Zt = { 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: "?" }] } }, Jt = { FILTERXML: { p: [{ n: "xml", s: "s" }, { n: "xpath", s: "s" }] } }, ne = { ENCODEURL: { p: [{ n: "text", s: "s" }] }, WEBSERVICE: { p: [{ n: "url", s: "s" }] } }, te = () => import("./BoWGCLoCBi99JpFs.mjs"), ee = () => import("./Qib5_XvQHWOPzGrm.mjs"), re = () => import("./DlFgt0KLeXDowatv.mjs"), ue = () => import("./CN45di2IcbM8P0Qu.mjs"), oe = () => import("./DS4xBjO2TN0rQ1lJ.mjs"), ae = () => import("./gTh1PiesKrQblf8O.mjs"), ie = () => import("./ERMewE78C__HUblm.mjs"), le = () => import("./BPqJ7trmE53kA4iD.mjs"), se = () => import("./B_XqbIeKalrEkjs7.mjs"), fe = () => import("./DH_fbhyW3PwE1rYa.mjs"), ce = () => import("./ByxOyRbOjkmiHT8z.mjs"), me = () => import("./CPv7OpinaYcwbA_W.mjs"), pe = () => import("./Cp5ea9Hpxse8B4mC.mjs"), Ne = () => import("./CZd8SSXlusZy49FM.mjs"), he = () => import("./DTM0pK30PrZRsXYw.mjs"), Ee = () => import("./CZw7SgmfxSHhZZe0.mjs"), ge = () => import("./CFw23OkHfPquoVEk.mjs"), Ie = () => import("./B9-WgxZWcZj4jdUC.mjs"), Te = () => import("./g_p1uVDePbDJJ4nX.mjs"), de = () => import("./CVAFJAiy4lznWzaG.mjs"), be = () => import("./CG8a93kgahRemVJe.mjs"), Me = () => import("./70LlV-Ub5gQiHal4.mjs");
2404
+ function Se(n2) {
2405
+ return function(n3, t2) {
2406
+ const e2 = /* @__PURE__ */ new Map();
2407
+ return t2(e2, n3, s, Lt, te, "Cube"), t2(e2, n3, f, _t, ee, "Database"), t2(e2, n3, U, vt, re, "Date & Time"), t2(e2, n3, L, Vt, ue, "Engineering"), t2(e2, n3, G, Pt, oe, "Engineering"), t2(e2, n3, X, Ft, ae, "Engineering"), t2(e2, n3, Y, xt, ie, "Engineering"), t2(e2, n3, k, Ht, le, "Engineering"), t2(e2, n3, un, Gt, se, "Engineering"), t2(e2, n3, hn, Xt, fe, "Financial"), t2(e2, n3, En, Yt, ce, "Information"), t2(e2, n3, Tn, kt, me, "Logical"), t2(e2, n3, Mn, zt, pe, "Lookup & Reference"), t2(e2, n3, Pn, jt, Ne, "Math & Trig"), t2(e2, n3, xn, Wt, he, "Math & Trig"), t2(e2, n3, lt, Kt, Ee, "Statistical"), t2(e2, n3, Yn, $t, ge, "Statistical"), t2(e2, n3, mt, qt, Ie, "Testing"), t2(e2, n3, pt, Qt, Te, "Text"), t2(e2, n3, Ot, Zt, de, "Text"), t2(e2, n3, Bt, Jt, be, "Web"), t2(e2, n3, Ut, ne, Me, "Web"), e2;
2408
+ }(n2, Ae);
2409
+ }
2410
+ const Ae = (n2, t2, r2, a2, i2, l2) => {
2411
+ const s2 = Object.keys(a2);
2412
+ for (const f2 of s2) {
2413
+ const s3 = a2[f2], c2 = f2, m2 = [], p2 = s3.p;
2414
+ if (p2) for (let n3 = 0; n3 < p2.length; n3++) {
2415
+ const t3 = p2[n3];
2416
+ let r3 = null;
2417
+ t3.s ? r3 = t3.s : t3.r || (r3 = e.Number);
2418
+ const o2 = { name: t3.n, scalar: r3, range: t3.r ?? null, arrayDepth: t3.d ?? 0, optional: "?" === t3.m, rest: "..." === t3.m, enums: t3.e ?? u.EmptyArray };
2419
+ delete o2.dim, m2.push(o2);
2420
+ }
2421
+ const N2 = { name: c2, parameters: m2, returnType: null, context: s3.c ? "calculation" : null, behavior: null }, h2 = r2[s3.fn ?? c2];
2422
+ let E2;
2423
+ const g2 = new o(N2, h2, t2, async (n3) => {
2424
+ if (!i2) return null;
2425
+ let t3;
2426
+ if (!E2) {
2427
+ t3 = (await i2()).default, E2 = t3;
2428
+ }
2429
+ const e2 = t3?.[c2];
2430
+ if (!e2) return console.warn(`No descriptor found for built-in function: ${c2}`), null;
2431
+ const r3 = e2.p;
2432
+ let o2 = r3 ? { ...r3 } : u.EmptyObject;
2433
+ const a3 = Object.keys(o2);
2434
+ if (a3.length > 0) for (let n4 = 0; n4 < a3.length; n4++) {
2435
+ const t4 = a3[n4], e3 = r3[t4], u2 = { description: e3.d ?? "", example: e3.e, defaultValue: e3.v };
2436
+ o2[t4] = u2;
2437
+ }
2438
+ return { name: c2, summary: e2.s ?? "", category: e2.c ?? l2 ?? null, parameters: o2, hidden: e2.h ?? false, links: e2.l ?? u.EmptyArray };
2439
+ }, true);
2440
+ n2.set(c2, g2);
2441
+ }
2442
+ };
2443
+ export {
2444
+ Se as initializeBuiltIns
2445
+ };