@ohtaman/washi 0.1.1 → 0.2.0

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 (97) hide show
  1. package/README.ja.md +124 -22
  2. package/README.md +124 -22
  3. package/README.zh-CN.md +124 -22
  4. package/dist/browser/browser-runtime-D13gHOT5.js +4189 -0
  5. package/dist/browser/highs-worker.js +21 -0
  6. package/dist/{lib/demo → browser}/highs.wasm +0 -0
  7. package/dist/browser/highs.wasm.LICENSE +22 -0
  8. package/dist/browser/loader-CVt4CloI.js +58 -0
  9. package/dist/browser/solvers/glpk.js +1057 -0
  10. package/dist/browser/solvers/glpk.min.js +1 -0
  11. package/dist/browser/solvers/z3-built.js +8245 -0
  12. package/dist/browser/solvers/z3-built.wasm +4 -0
  13. package/dist/browser/solvers/z3.js +7528 -0
  14. package/dist/browser/solvers/z3.min.js +5 -0
  15. package/dist/browser/washi.js +1213 -0
  16. package/dist/browser/washi.min.js +5 -0
  17. package/dist/lib/async-mutex-Duo4jwzn.js +195 -0
  18. package/dist/lib/constraint-XWdn0ID9.js +93 -0
  19. package/dist/lib/highs-assets.js +1 -0
  20. package/dist/lib/highs-browser-runtime.js +4189 -0
  21. package/dist/lib/highs-node-runtime.js +1 -0
  22. package/dist/lib/highs-worker-factory.js +1 -0
  23. package/dist/lib/highs-worker.js +21 -0
  24. package/dist/lib/highs.wasm +0 -0
  25. package/dist/lib/loader-Dti0v9yC.js +50 -0
  26. package/dist/lib/registry-DksqCSjI.js +32 -0
  27. package/dist/lib/solvers/glpk.js +153 -2
  28. package/dist/lib/solvers/z3-assets.js +1 -0
  29. package/dist/lib/solvers/z3-built.js +8245 -0
  30. package/dist/lib/solvers/z3-built.wasm +4 -0
  31. package/dist/lib/solvers/z3.js +451 -2
  32. package/dist/lib/washi.js +388 -78
  33. package/dist/types/index.d.ts +2 -3
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/modeler/index.d.ts +1 -1
  36. package/dist/types/modeler/index.d.ts.map +1 -1
  37. package/dist/types/modeler/model.d.ts +1 -1
  38. package/dist/types/modeler/model.d.ts.map +1 -1
  39. package/dist/types/modeler/solvers/glpk/index.d.ts +3 -0
  40. package/dist/types/modeler/solvers/glpk/index.d.ts.map +1 -0
  41. package/dist/types/modeler/solvers/glpk/loader.d.ts +16 -0
  42. package/dist/types/modeler/solvers/glpk/loader.d.ts.map +1 -0
  43. package/dist/types/modeler/solvers/glpk/solver.d.ts +26 -0
  44. package/dist/types/modeler/solvers/glpk/solver.d.ts.map +1 -0
  45. package/dist/types/modeler/solvers/glpk.d.ts +1 -21
  46. package/dist/types/modeler/solvers/glpk.d.ts.map +1 -1
  47. package/dist/types/modeler/solvers/highs/assets.d.ts +3 -0
  48. package/dist/types/modeler/solvers/highs/assets.d.ts.map +1 -0
  49. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -0
  50. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -0
  51. package/dist/types/modeler/solvers/highs/index.d.ts +6 -0
  52. package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -0
  53. package/dist/types/{highs-loader.d.ts → modeler/solvers/highs/loader.d.ts} +3 -3
  54. package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -0
  55. package/dist/types/modeler/solvers/highs/node-runtime.d.ts +2 -0
  56. package/dist/types/modeler/solvers/highs/node-runtime.d.ts.map +1 -0
  57. package/dist/types/modeler/solvers/highs/solver.d.ts +33 -0
  58. package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -0
  59. package/dist/types/modeler/solvers/highs/worker-client.d.ts +13 -0
  60. package/dist/types/modeler/solvers/highs/worker-client.d.ts.map +1 -0
  61. package/dist/types/modeler/solvers/highs/worker-factory.d.ts +3 -0
  62. package/dist/types/modeler/solvers/highs/worker-factory.d.ts.map +1 -0
  63. package/dist/types/modeler/solvers/highs/worker.d.ts +2 -0
  64. package/dist/types/modeler/solvers/highs/worker.d.ts.map +1 -0
  65. package/dist/types/modeler/solvers/highs.d.ts +1 -25
  66. package/dist/types/modeler/solvers/highs.d.ts.map +1 -1
  67. package/dist/types/modeler/solvers/index.d.ts +0 -2
  68. package/dist/types/modeler/solvers/index.d.ts.map +1 -1
  69. package/dist/types/modeler/solvers/mock.d.ts +1 -0
  70. package/dist/types/modeler/solvers/mock.d.ts.map +1 -1
  71. package/dist/types/modeler/solvers/registry.d.ts +1 -2
  72. package/dist/types/modeler/solvers/registry.d.ts.map +1 -1
  73. package/dist/types/modeler/solvers/types.d.ts +1 -1
  74. package/dist/types/modeler/solvers/types.d.ts.map +1 -1
  75. package/dist/types/modeler/solvers/z3/assets.d.ts +11 -0
  76. package/dist/types/modeler/solvers/z3/assets.d.ts.map +1 -0
  77. package/dist/types/modeler/solvers/z3/index.d.ts +3 -0
  78. package/dist/types/modeler/solvers/z3/index.d.ts.map +1 -0
  79. package/dist/types/modeler/solvers/z3/loader.d.ts +44 -0
  80. package/dist/types/modeler/solvers/z3/loader.d.ts.map +1 -0
  81. package/dist/types/modeler/solvers/z3/solver.d.ts +34 -0
  82. package/dist/types/modeler/solvers/z3/solver.d.ts.map +1 -0
  83. package/dist/types/modeler/solvers/z3.d.ts +1 -36
  84. package/dist/types/modeler/solvers/z3.d.ts.map +1 -1
  85. package/package.json +35 -9
  86. package/dist/lib/assets/highs-worker-DeDWU6KI.js +0 -3
  87. package/dist/lib/glpk-BC32ZaPG.js +0 -126
  88. package/dist/lib/washi-logo.png +0 -0
  89. package/dist/lib/washi-logo.svg +0 -70
  90. package/dist/lib/z3-C8g-PtmP.js +0 -582
  91. package/dist/types/glpk-loader.d.ts +0 -8
  92. package/dist/types/glpk-loader.d.ts.map +0 -1
  93. package/dist/types/highs-loader.d.ts.map +0 -1
  94. package/dist/types/highs-worker-client.d.ts +0 -12
  95. package/dist/types/highs-worker-client.d.ts.map +0 -1
  96. package/dist/types/highs-worker.d.ts +0 -2
  97. package/dist/types/highs-worker.d.ts.map +0 -1
@@ -0,0 +1,4189 @@
1
+ //#region \0rolldown/runtime.js
2
+ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), s = (e, i, o, s) => {
3
+ if (i && typeof i == "object" || typeof i == "function") for (var c = r(i), l = 0, u = c.length, d; l < u; l++) d = c[l], !a.call(e, d) && d !== o && t(e, d, {
4
+ get: ((e) => i[e]).bind(null, d),
5
+ enumerable: !(s = n(i, d)) || s.enumerable
6
+ });
7
+ return e;
8
+ }, c = (/* @__PURE__ */ ((n, r, o) => (o = n == null ? {} : e(i(n)), s(r || !n || !n.__esModule || !a.call(n, "default") ? t(o, "default", {
9
+ value: n,
10
+ enumerable: !0
11
+ }) : o, n)))((/* @__PURE__ */ o(((e, t) => {
12
+ var n = (() => {
13
+ var e = globalThis.document?.currentScript?.src;
14
+ return async function(t = {}) {
15
+ var n = t, r = !!globalThis.window, i = !!globalThis.WorkerGlobalScope;
16
+ let a = n.print, o = n.printErr;
17
+ n.print = (e) => {
18
+ a && a(e);
19
+ }, n.printErr = (e) => {
20
+ o && o(e);
21
+ };
22
+ var s = "./this.program", c = (e, t) => {
23
+ throw t;
24
+ };
25
+ i && (e = self.location.href);
26
+ var l = "";
27
+ function u(e) {
28
+ return n.locateFile ? n.locateFile(e, l) : l + e;
29
+ }
30
+ var d, f;
31
+ if (r || i) {
32
+ try {
33
+ l = new URL(".", e).href;
34
+ } catch {}
35
+ i && (f = (e) => {
36
+ var t = new XMLHttpRequest();
37
+ return t.open("GET", e, !1), t.responseType = "arraybuffer", t.send(null), new Uint8Array(t.response);
38
+ }), d = async (e) => {
39
+ if (v(e)) return new Promise((t, n) => {
40
+ var r = new XMLHttpRequest();
41
+ r.open("GET", e, !0), r.responseType = "arraybuffer", r.onload = () => {
42
+ if (r.status == 200 || r.status == 0 && r.response) {
43
+ t(r.response);
44
+ return;
45
+ }
46
+ n(r.status);
47
+ }, r.onerror = n, r.send(null);
48
+ });
49
+ var t = await fetch(e, { credentials: "same-origin" });
50
+ if (t.ok) return t.arrayBuffer();
51
+ throw Error(t.status + " : " + t.url);
52
+ };
53
+ }
54
+ var p = console.log.bind(console), m = console.error.bind(console), h, g = !1, _, v = (e) => e.startsWith("file://");
55
+ function y() {
56
+ return Zt.buffer;
57
+ }
58
+ function b() {
59
+ if (!I?.buffer?.resizable) {
60
+ var e = y();
61
+ I = new Int8Array(e), N = new Int16Array(e), re = new Uint8Array(e), te = new Uint16Array(e), P = new Int32Array(e), z = new Uint32Array(e), L = new Float32Array(e), R = new Float64Array(e), F = new BigInt64Array(e), ne = new BigUint64Array(e);
62
+ }
63
+ }
64
+ function x() {
65
+ var e = n.preRun;
66
+ e && (typeof e == "function" && (e = [e]), B.push(...e)), ie(B);
67
+ }
68
+ function S() {
69
+ !n.noFSInit && !Q.initialized && Q.init(), Y.init(), nn.v(), Q.ignorePermissions = !1;
70
+ }
71
+ function C() {
72
+ var e = n.postRun;
73
+ e && (typeof e == "function" && (e = [e]), ae.push(...e)), ie(ae);
74
+ }
75
+ function w(e) {
76
+ throw n.onAbort?.(e), e = `Aborted(${e})`, m(e), g = !0, e += ". Build with -sASSERTIONS for more info.", new WebAssembly.RuntimeError(e);
77
+ }
78
+ var T;
79
+ function E() {
80
+ return u("highs.wasm");
81
+ }
82
+ function ee(e) {
83
+ if (f) return f(e);
84
+ throw "both async and sync fetching of the wasm failed";
85
+ }
86
+ async function D(e) {
87
+ if (!h) try {
88
+ var t = await d(e);
89
+ return new Uint8Array(t);
90
+ } catch {}
91
+ return ee(e);
92
+ }
93
+ async function O(e, t) {
94
+ try {
95
+ var n = await D(e);
96
+ return await WebAssembly.instantiate(n, t);
97
+ } catch (e) {
98
+ m(`failed to asynchronously prepare wasm: ${e}`), w(e);
99
+ }
100
+ }
101
+ async function k(e, t, n) {
102
+ if (!e && !v(t)) try {
103
+ var r = fetch(t, { credentials: "same-origin" });
104
+ return await WebAssembly.instantiateStreaming(r, n);
105
+ } catch (e) {
106
+ m(`wasm streaming compile failed: ${e}`), m("falling back to ArrayBuffer instantiation");
107
+ }
108
+ return O(t, n);
109
+ }
110
+ function A() {
111
+ return { a: en };
112
+ }
113
+ async function j() {
114
+ function e(e) {
115
+ return nn = e.exports, $t(nn), b(), nn;
116
+ }
117
+ function t(t) {
118
+ return e(t.instance);
119
+ }
120
+ var r = A(), i = n.instantiateWasm;
121
+ return i ? new Promise((t) => {
122
+ i(r, (n) => t(e(n)));
123
+ }) : (T ??= E(), t(await k(h, T, r)));
124
+ }
125
+ class M {
126
+ name = "ExitStatus";
127
+ constructor(e) {
128
+ this.message = `Program terminated with exit(${e})`, this.status = e;
129
+ }
130
+ }
131
+ var N, P, F, I, L, R, te, z, ne, re, ie = (e) => {
132
+ for (; e.length > 0;) e.shift()(n);
133
+ }, ae = [], B = [], V = !0, H = (e) => Jt(e), oe = () => Xt();
134
+ class se {
135
+ constructor(e) {
136
+ this.excPtr = e, this.ptr = e - 24;
137
+ }
138
+ set_type(e) {
139
+ z[this.ptr + 4 >> 2] = e;
140
+ }
141
+ get_type() {
142
+ return z[this.ptr + 4 >> 2];
143
+ }
144
+ set_destructor(e) {
145
+ z[this.ptr + 8 >> 2] = e;
146
+ }
147
+ get_destructor() {
148
+ return z[this.ptr + 8 >> 2];
149
+ }
150
+ set_caught(e) {
151
+ e = +!!e, I[this.ptr + 12] = e;
152
+ }
153
+ get_caught() {
154
+ return I[this.ptr + 12] != 0;
155
+ }
156
+ set_rethrown(e) {
157
+ e = +!!e, I[this.ptr + 13] = e;
158
+ }
159
+ get_rethrown() {
160
+ return I[this.ptr + 13] != 0;
161
+ }
162
+ init(e, t) {
163
+ this.set_adjusted_ptr(0), this.set_type(e), this.set_destructor(t);
164
+ }
165
+ set_adjusted_ptr(e) {
166
+ z[this.ptr + 16 >> 2] = e;
167
+ }
168
+ get_adjusted_ptr() {
169
+ return z[this.ptr + 16 >> 2];
170
+ }
171
+ }
172
+ var ce = 0, le = (e, t, n) => {
173
+ new se(e).init(t, n), ce++, w();
174
+ }, U = () => {
175
+ var e = P[$.varargs >> 2];
176
+ return $.varargs += 4, e;
177
+ }, W = U, G = {
178
+ isAbs: (e) => e.charAt(0) === "/",
179
+ splitPath: (e) => /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),
180
+ normalizeArray: (e, t) => {
181
+ for (var n = 0, r = e.length - 1; r >= 0; r--) {
182
+ var i = e[r];
183
+ i === "." ? e.splice(r, 1) : i === ".." ? (e.splice(r, 1), n++) : n && (e.splice(r, 1), n--);
184
+ }
185
+ if (t) for (; n; n--) e.unshift("..");
186
+ return e;
187
+ },
188
+ normalize: (e) => {
189
+ var t = G.isAbs(e), n = e.slice(-1) === "/";
190
+ return e = G.normalizeArray(e.split("/").filter((e) => !!e), !t).join("/"), !e && !t && (e = "."), e && n && (e += "/"), (t ? "/" : "") + e;
191
+ },
192
+ dirname: (e) => {
193
+ var t = G.splitPath(e), n = t[0], r = t[1];
194
+ return !n && !r ? "." : (r &&= r.slice(0, -1), n + r);
195
+ },
196
+ basename: (e) => e && e.match(/([^\/]+|\/)\/*$/)[1],
197
+ join: (...e) => G.normalize(e.join("/")),
198
+ join2: (e, t) => G.normalize(e + "/" + t)
199
+ }, ue = () => (e) => (crypto.getRandomValues(e), 0), de = (e) => (de = ue())(e), K = {
200
+ resolve: (...e) => {
201
+ for (var t = "", n = !1, r = e.length - 1; r >= -1 && !n; r--) {
202
+ var i = r >= 0 ? e[r] : Q.cwd();
203
+ if (typeof i != "string") throw TypeError("Arguments to path.resolve must be strings");
204
+ if (!i) return "";
205
+ t = i + "/" + t, n = G.isAbs(i);
206
+ }
207
+ return t = G.normalizeArray(t.split("/").filter((e) => !!e), !n).join("/"), (n ? "/" : "") + t || ".";
208
+ },
209
+ relative: (e, t) => {
210
+ e = K.resolve(e).slice(1), t = K.resolve(t).slice(1);
211
+ function n(e) {
212
+ for (var t = 0; t < e.length && e[t] === ""; t++);
213
+ for (var n = e.length - 1; n >= 0 && e[n] === ""; n--);
214
+ return t > n ? [] : e.slice(t, n - t + 1);
215
+ }
216
+ for (var r = n(e.split("/")), i = n(t.split("/")), a = Math.min(r.length, i.length), o = a, s = 0; s < a; s++) if (r[s] !== i[s]) {
217
+ o = s;
218
+ break;
219
+ }
220
+ for (var c = [], s = o; s < r.length; s++) c.push("..");
221
+ return c = c.concat(i.slice(o)), c.join("/");
222
+ }
223
+ }, q = globalThis.TextDecoder && new TextDecoder(), fe = (e, t, n, r) => {
224
+ var i = t + n;
225
+ if (r) return i;
226
+ for (; e[t] && !(t >= i);) ++t;
227
+ return t;
228
+ }, pe = (e, t = 0, n, r) => {
229
+ var i = fe(e, t, n, r);
230
+ if (i - t > 16 && e.buffer && q) return q.decode(e.subarray(t, i));
231
+ for (var a = ""; t < i;) {
232
+ var o = e[t++];
233
+ if (!(o & 128)) {
234
+ a += String.fromCharCode(o);
235
+ continue;
236
+ }
237
+ var s = e[t++] & 63;
238
+ if ((o & 224) == 192) {
239
+ a += String.fromCharCode((o & 31) << 6 | s);
240
+ continue;
241
+ }
242
+ var c = e[t++] & 63;
243
+ if (o = (o & 240) == 224 ? (o & 15) << 12 | s << 6 | c : (o & 7) << 18 | s << 12 | c << 6 | e[t++] & 63, o < 65536) a += String.fromCharCode(o);
244
+ else {
245
+ var l = o - 65536;
246
+ a += String.fromCharCode(55296 | l >> 10, 56320 | l & 1023);
247
+ }
248
+ }
249
+ return a;
250
+ }, me = [], he = (e) => {
251
+ for (var t = 0, n = 0; n < e.length; ++n) {
252
+ var r = e.charCodeAt(n);
253
+ r <= 127 ? t++ : r <= 2047 ? t += 2 : r >= 55296 && r <= 57343 ? (t += 4, ++n) : t += 3;
254
+ }
255
+ return t;
256
+ }, ge = (e, t, n, r) => {
257
+ if (!(r > 0)) return 0;
258
+ for (var i = n, a = n + r - 1, o = 0; o < e.length; ++o) {
259
+ var s = e.codePointAt(o);
260
+ if (s <= 127) {
261
+ if (n >= a) break;
262
+ t[n++] = s;
263
+ } else if (s <= 2047) {
264
+ if (n + 1 >= a) break;
265
+ t[n++] = 192 | s >> 6, t[n++] = 128 | s & 63;
266
+ } else if (s <= 65535) {
267
+ if (n + 2 >= a) break;
268
+ t[n++] = 224 | s >> 12, t[n++] = 128 | s >> 6 & 63, t[n++] = 128 | s & 63;
269
+ } else {
270
+ if (n + 3 >= a) break;
271
+ t[n++] = 240 | s >> 18, t[n++] = 128 | s >> 12 & 63, t[n++] = 128 | s >> 6 & 63, t[n++] = 128 | s & 63, o++;
272
+ }
273
+ }
274
+ return t[n] = 0, n - i;
275
+ }, J = (e, t, n) => {
276
+ var r = n > 0 ? n : he(e) + 1, i = Array(r), a = ge(e, i, 0, i.length);
277
+ return t && (i.length = a), i;
278
+ }, _e = () => {
279
+ if (!me.length) {
280
+ var e = null;
281
+ if (globalThis.window?.prompt && (e = window.prompt("Input: "), e !== null && (e += "\n")), !e) return null;
282
+ me = J(e, !0);
283
+ }
284
+ return me.shift();
285
+ }, Y = {
286
+ ttys: [],
287
+ init() {},
288
+ shutdown() {},
289
+ register(e, t) {
290
+ Y.ttys[e] = {
291
+ input: [],
292
+ output: [],
293
+ ops: t
294
+ }, Q.registerDevice(e, Y.stream_ops);
295
+ },
296
+ stream_ops: {
297
+ open(e) {
298
+ var t = Y.ttys[e.node.rdev];
299
+ if (!t) throw new Q.ErrnoError(43);
300
+ e.tty = t, e.seekable = !1;
301
+ },
302
+ close(e) {
303
+ e.tty.ops.fsync(e.tty);
304
+ },
305
+ fsync(e) {
306
+ e.tty.ops.fsync(e.tty);
307
+ },
308
+ read(e, t, n, r, i) {
309
+ if (!e.tty || !e.tty.ops.get_char) throw new Q.ErrnoError(60);
310
+ for (var a = 0, o = 0; o < r; o++) {
311
+ var s;
312
+ try {
313
+ s = e.tty.ops.get_char(e.tty);
314
+ } catch {
315
+ throw new Q.ErrnoError(29);
316
+ }
317
+ if (s === void 0 && a === 0) throw new Q.ErrnoError(6);
318
+ if (s == null) break;
319
+ a++, t[n + o] = s;
320
+ }
321
+ return a && (e.node.atime = Date.now()), a;
322
+ },
323
+ write(e, t, n, r, i) {
324
+ if (!e.tty || !e.tty.ops.put_char) throw new Q.ErrnoError(60);
325
+ try {
326
+ for (var a = 0; a < r; a++) e.tty.ops.put_char(e.tty, t[n + a]);
327
+ } catch {
328
+ throw new Q.ErrnoError(29);
329
+ }
330
+ return r && (e.node.mtime = e.node.ctime = Date.now()), a;
331
+ }
332
+ },
333
+ default_tty_ops: {
334
+ get_char(e) {
335
+ return _e();
336
+ },
337
+ put_char(e, t) {
338
+ t === null || t === 10 ? (p(pe(e.output)), e.output = []) : t != 0 && e.output.push(t);
339
+ },
340
+ fsync(e) {
341
+ e.output?.length > 0 && (p(pe(e.output)), e.output = []);
342
+ },
343
+ ioctl_tcgets(e) {
344
+ return {
345
+ c_iflag: 25856,
346
+ c_oflag: 5,
347
+ c_cflag: 191,
348
+ c_lflag: 35387,
349
+ c_cc: [
350
+ 3,
351
+ 28,
352
+ 127,
353
+ 21,
354
+ 4,
355
+ 0,
356
+ 1,
357
+ 0,
358
+ 17,
359
+ 19,
360
+ 26,
361
+ 0,
362
+ 18,
363
+ 15,
364
+ 23,
365
+ 22,
366
+ 0,
367
+ 0,
368
+ 0,
369
+ 0,
370
+ 0,
371
+ 0,
372
+ 0,
373
+ 0,
374
+ 0,
375
+ 0,
376
+ 0,
377
+ 0,
378
+ 0,
379
+ 0,
380
+ 0,
381
+ 0
382
+ ]
383
+ };
384
+ },
385
+ ioctl_tcsets(e, t, n) {
386
+ return 0;
387
+ },
388
+ ioctl_tiocgwinsz(e) {
389
+ return [24, 80];
390
+ }
391
+ },
392
+ default_tty1_ops: {
393
+ put_char(e, t) {
394
+ t === null || t === 10 ? (m(pe(e.output)), e.output = []) : t != 0 && e.output.push(t);
395
+ },
396
+ fsync(e) {
397
+ e.output?.length > 0 && (m(pe(e.output)), e.output = []);
398
+ }
399
+ }
400
+ }, ve = (e) => {
401
+ w();
402
+ }, X = {
403
+ ops_table: null,
404
+ mount(e) {
405
+ return X.createNode(null, "/", 16895, 0);
406
+ },
407
+ createNode(e, t, n, r) {
408
+ if (Q.isBlkdev(n) || Q.isFIFO(n)) throw new Q.ErrnoError(63);
409
+ X.ops_table ||= {
410
+ dir: {
411
+ node: {
412
+ getattr: X.node_ops.getattr,
413
+ setattr: X.node_ops.setattr,
414
+ lookup: X.node_ops.lookup,
415
+ mknod: X.node_ops.mknod,
416
+ rename: X.node_ops.rename,
417
+ unlink: X.node_ops.unlink,
418
+ rmdir: X.node_ops.rmdir,
419
+ readdir: X.node_ops.readdir,
420
+ symlink: X.node_ops.symlink
421
+ },
422
+ stream: { llseek: X.stream_ops.llseek }
423
+ },
424
+ file: {
425
+ node: {
426
+ getattr: X.node_ops.getattr,
427
+ setattr: X.node_ops.setattr
428
+ },
429
+ stream: {
430
+ llseek: X.stream_ops.llseek,
431
+ read: X.stream_ops.read,
432
+ write: X.stream_ops.write,
433
+ mmap: X.stream_ops.mmap,
434
+ msync: X.stream_ops.msync
435
+ }
436
+ },
437
+ link: {
438
+ node: {
439
+ getattr: X.node_ops.getattr,
440
+ setattr: X.node_ops.setattr,
441
+ readlink: X.node_ops.readlink
442
+ },
443
+ stream: {}
444
+ },
445
+ chrdev: {
446
+ node: {
447
+ getattr: X.node_ops.getattr,
448
+ setattr: X.node_ops.setattr
449
+ },
450
+ stream: Q.chrdev_stream_ops
451
+ }
452
+ };
453
+ var i = Q.createNode(e, t, n, r);
454
+ return Q.isDir(i.mode) ? (i.node_ops = X.ops_table.dir.node, i.stream_ops = X.ops_table.dir.stream, i.contents = {}) : Q.isFile(i.mode) ? (i.node_ops = X.ops_table.file.node, i.stream_ops = X.ops_table.file.stream, i.usedBytes = 0, i.contents = X.emptyFileContents ??= /* @__PURE__ */ new Uint8Array()) : Q.isLink(i.mode) ? (i.node_ops = X.ops_table.link.node, i.stream_ops = X.ops_table.link.stream) : Q.isChrdev(i.mode) && (i.node_ops = X.ops_table.chrdev.node, i.stream_ops = X.ops_table.chrdev.stream), i.atime = i.mtime = i.ctime = Date.now(), e && (e.contents[t] = i, e.atime = e.mtime = e.ctime = i.atime), i;
455
+ },
456
+ getFileDataAsTypedArray(e) {
457
+ return e.contents.subarray(0, e.usedBytes);
458
+ },
459
+ expandFileStorage(e, t) {
460
+ var n = e.contents.length;
461
+ if (!(n >= t)) {
462
+ t = Math.max(t, n * (n < 1048576 ? 2 : 1.125) >>> 0), n && (t = Math.max(t, 256));
463
+ var r = X.getFileDataAsTypedArray(e);
464
+ e.contents = new Uint8Array(t), e.contents.set(r);
465
+ }
466
+ },
467
+ resizeFileStorage(e, t) {
468
+ if (e.usedBytes != t) {
469
+ var n = e.contents;
470
+ e.contents = new Uint8Array(t), e.contents.set(n.subarray(0, Math.min(t, e.usedBytes))), e.usedBytes = t;
471
+ }
472
+ },
473
+ node_ops: {
474
+ getattr(e) {
475
+ var t = {};
476
+ return t.dev = Q.isChrdev(e.mode) ? e.id : 1, t.ino = e.id, t.mode = e.mode, t.nlink = 1, t.uid = 0, t.gid = 0, t.rdev = e.rdev, t.size = Q.isDir(e.mode) ? 4096 : Q.isFile(e.mode) ? e.usedBytes : Q.isLink(e.mode) ? e.link.length : 0, t.atime = new Date(e.atime), t.mtime = new Date(e.mtime), t.ctime = new Date(e.ctime), t.blksize = 4096, t.blocks = Math.ceil(t.size / t.blksize), t;
477
+ },
478
+ setattr(e, t) {
479
+ for (let n of [
480
+ "mode",
481
+ "atime",
482
+ "mtime",
483
+ "ctime"
484
+ ]) t[n] != null && (e[n] = t[n]);
485
+ t.size !== void 0 && X.resizeFileStorage(e, t.size);
486
+ },
487
+ lookup(e, t) {
488
+ throw X.doesNotExistError || (X.doesNotExistError = new Q.ErrnoError(44), X.doesNotExistError.stack = "<generic error, no stack>"), X.doesNotExistError;
489
+ },
490
+ mknod(e, t, n, r) {
491
+ return X.createNode(e, t, n, r);
492
+ },
493
+ rename(e, t, n) {
494
+ var r;
495
+ try {
496
+ r = Q.lookupNode(t, n);
497
+ } catch {}
498
+ if (r) {
499
+ if (Q.isDir(e.mode)) for (var i in r.contents) throw new Q.ErrnoError(55);
500
+ Q.hashRemoveNode(r);
501
+ }
502
+ delete e.parent.contents[e.name], t.contents[n] = e, e.name = n, t.ctime = t.mtime = e.parent.ctime = e.parent.mtime = Date.now();
503
+ },
504
+ unlink(e, t) {
505
+ delete e.contents[t], e.ctime = e.mtime = Date.now();
506
+ },
507
+ rmdir(e, t) {
508
+ for (var n in Q.lookupNode(e, t).contents) throw new Q.ErrnoError(55);
509
+ delete e.contents[t], e.ctime = e.mtime = Date.now();
510
+ },
511
+ readdir(e) {
512
+ return [
513
+ ".",
514
+ "..",
515
+ ...Object.keys(e.contents)
516
+ ];
517
+ },
518
+ symlink(e, t, n) {
519
+ var r = X.createNode(e, t, 41471, 0);
520
+ return r.link = n, r;
521
+ },
522
+ readlink(e) {
523
+ if (!Q.isLink(e.mode)) throw new Q.ErrnoError(28);
524
+ return e.link;
525
+ }
526
+ },
527
+ stream_ops: {
528
+ read(e, t, n, r, i) {
529
+ var a = e.node.contents;
530
+ if (i >= e.node.usedBytes) return 0;
531
+ var o = Math.min(e.node.usedBytes - i, r);
532
+ return t.set(a.subarray(i, i + o), n), o;
533
+ },
534
+ write(e, t, n, r, i, a) {
535
+ if (t.buffer === I.buffer && (a = !1), !r) return 0;
536
+ var o = e.node;
537
+ return o.mtime = o.ctime = Date.now(), a ? (o.contents = t.subarray(n, n + r), o.usedBytes = r) : o.usedBytes === 0 && i === 0 ? (o.contents = t.slice(n, n + r), o.usedBytes = r) : (X.expandFileStorage(o, i + r), o.contents.set(t.subarray(n, n + r), i), o.usedBytes = Math.max(o.usedBytes, i + r)), r;
538
+ },
539
+ llseek(e, t, n) {
540
+ var r = t;
541
+ if (n === 1 ? r += e.position : n === 2 && Q.isFile(e.node.mode) && (r += e.node.usedBytes), r < 0) throw new Q.ErrnoError(28);
542
+ return r;
543
+ },
544
+ mmap(e, t, n, r, i) {
545
+ if (!Q.isFile(e.node.mode)) throw new Q.ErrnoError(43);
546
+ var a, o, s = e.node.contents;
547
+ if (!(i & 2) && s.buffer === I.buffer) o = !1, a = s.byteOffset;
548
+ else {
549
+ if (o = !0, a = ve(t), !a) throw new Q.ErrnoError(48);
550
+ s && ((n > 0 || n + t < s.length) && (s = s.subarray ? s.subarray(n, n + t) : Array.prototype.slice.call(s, n, n + t)), I.set(s, a));
551
+ }
552
+ return {
553
+ ptr: a,
554
+ allocated: o
555
+ };
556
+ },
557
+ msync(e, t, n, r, i) {
558
+ return X.stream_ops.write(e, t, 0, r, n, !1), 0;
559
+ }
560
+ }
561
+ }, ye = (e) => {
562
+ if (typeof e != "string") return e;
563
+ var t = {
564
+ r: 0,
565
+ "r+": 2,
566
+ w: 577,
567
+ "w+": 578,
568
+ a: 1089,
569
+ "a+": 1090
570
+ }[e];
571
+ if (t === void 0) throw Error(`Unknown file open mode: ${e}`);
572
+ return t;
573
+ }, be = (e) => (typeof e == "string" && (e = J(e, !0)), e.subarray || (e = new Uint8Array(e)), e), xe = (e, t) => {
574
+ var n = 0;
575
+ return e && (n |= 365), t && (n |= 146), n;
576
+ }, Se = async (e) => {
577
+ var t = await d(e);
578
+ return new Uint8Array(t);
579
+ }, Ce = (...e) => Q.createDataFile(...e), we = (e) => e, Z = null, Te = async () => Z, Ee = 0, De = null, Oe = (e) => {
580
+ Ee--, n.monitorRunDependencies?.(Ee), Ee || De();
581
+ }, ke = (e) => {
582
+ Ee || (Z = new Promise((e) => De = e)), Ee++, n.monitorRunDependencies?.(Ee);
583
+ }, Ae = [], je = async (e, t) => {
584
+ typeof Browser < "u" && Browser.init();
585
+ for (var n of Ae) if (n.canHandle(t)) return n.handle(e, t);
586
+ return e;
587
+ }, Me = async (e, t, n, r, i, a, o, s) => {
588
+ var c = t ? K.resolve(G.join2(e, t)) : e, l = we(`cp ${c}`);
589
+ ke(l);
590
+ try {
591
+ var u = n;
592
+ typeof n == "string" && (u = await Se(n)), u = await je(u, c), s?.(), a || Ce(e, t, u, r, i, o);
593
+ } finally {
594
+ Oe(l);
595
+ }
596
+ }, Ne = (e, t, n, r, i, a, o, s, c, l) => {
597
+ Me(e, t, n, r, i, s, c, l).then(a).catch(o);
598
+ }, Q = {
599
+ root: null,
600
+ mounts: [],
601
+ devices: {},
602
+ streams: [],
603
+ nextInode: 1,
604
+ nameTable: null,
605
+ currentPath: "/",
606
+ initialized: !1,
607
+ ignorePermissions: !0,
608
+ filesystems: null,
609
+ syncFSRequests: 0,
610
+ ErrnoError: class {
611
+ name = "ErrnoError";
612
+ constructor(e) {
613
+ this.errno = e;
614
+ }
615
+ },
616
+ FSStream: class {
617
+ shared = {};
618
+ get object() {
619
+ return this.node;
620
+ }
621
+ set object(e) {
622
+ this.node = e;
623
+ }
624
+ get isRead() {
625
+ return (this.flags & 2097155) != 1;
626
+ }
627
+ get isWrite() {
628
+ return !!(this.flags & 2097155);
629
+ }
630
+ get isAppend() {
631
+ return this.flags & 1024;
632
+ }
633
+ get flags() {
634
+ return this.shared.flags;
635
+ }
636
+ set flags(e) {
637
+ this.shared.flags = e;
638
+ }
639
+ get position() {
640
+ return this.shared.position;
641
+ }
642
+ set position(e) {
643
+ this.shared.position = e;
644
+ }
645
+ },
646
+ FSNode: class {
647
+ node_ops = {};
648
+ stream_ops = {};
649
+ readMode = 365;
650
+ writeMode = 146;
651
+ mounted = null;
652
+ constructor(e, t, n, r) {
653
+ e ||= this, this.parent = e, this.mount = e.mount, this.id = Q.nextInode++, this.name = t, this.mode = n, this.rdev = r, this.atime = this.mtime = this.ctime = Date.now();
654
+ }
655
+ get read() {
656
+ return (this.mode & this.readMode) === this.readMode;
657
+ }
658
+ set read(e) {
659
+ e ? this.mode |= this.readMode : this.mode &= ~this.readMode;
660
+ }
661
+ get write() {
662
+ return (this.mode & this.writeMode) === this.writeMode;
663
+ }
664
+ set write(e) {
665
+ e ? this.mode |= this.writeMode : this.mode &= ~this.writeMode;
666
+ }
667
+ get isFolder() {
668
+ return Q.isDir(this.mode);
669
+ }
670
+ get isDevice() {
671
+ return Q.isChrdev(this.mode);
672
+ }
673
+ addListener(e, t = !1) {
674
+ var n = {
675
+ cb: e,
676
+ exclusive: t
677
+ }, r = this.listeners ??= /* @__PURE__ */ new Set();
678
+ return r.add(n), {
679
+ listeners: r,
680
+ entry: n
681
+ };
682
+ }
683
+ notifyListeners(e) {
684
+ if (this.listeners) {
685
+ var t;
686
+ for (var n of this.listeners) n.exclusive ? (t ||= []).push(n) : n.cb(e);
687
+ if (t) {
688
+ var r = (this.exclTurn || 0) % t.length;
689
+ this.exclTurn = r + 1, t[r].cb(e);
690
+ }
691
+ }
692
+ }
693
+ },
694
+ lookupPath(e, t = {}) {
695
+ if (!e) throw new Q.ErrnoError(44);
696
+ t.follow_mount ??= !0, G.isAbs(e) || (e = Q.cwd() + "/" + e);
697
+ linkloop: for (var n = 0; n < 40; n++) {
698
+ for (var r = e.split("/").filter((e) => !!e), i = Q.root, a = "/", o = 0; o < r.length; o++) {
699
+ var s = o === r.length - 1;
700
+ if (s && t.parent) break;
701
+ if (r[o] !== ".") {
702
+ if (r[o] === "..") {
703
+ if (a = G.dirname(a), Q.isRoot(i)) {
704
+ e = a + "/" + r.slice(o + 1).join("/"), n--;
705
+ continue linkloop;
706
+ }
707
+ i = i.parent;
708
+ continue;
709
+ }
710
+ a = G.join2(a, r[o]);
711
+ try {
712
+ i = Q.lookupNode(i, r[o]);
713
+ } catch (e) {
714
+ if (e?.errno === 44 && s && t.noent_okay) return { path: a };
715
+ throw e;
716
+ }
717
+ if (Q.isMountpoint(i) && (!s || t.follow_mount) && (i = i.mounted.root), Q.isLink(i.mode) && (!s || t.follow)) {
718
+ if (!i.node_ops.readlink) throw new Q.ErrnoError(52);
719
+ var c = i.node_ops.readlink(i);
720
+ G.isAbs(c) || (c = G.dirname(a) + "/" + c), e = c + "/" + r.slice(o + 1).join("/");
721
+ continue linkloop;
722
+ }
723
+ }
724
+ }
725
+ return {
726
+ path: a,
727
+ node: i
728
+ };
729
+ }
730
+ throw new Q.ErrnoError(32);
731
+ },
732
+ getPath(e) {
733
+ for (var t;;) {
734
+ if (Q.isRoot(e)) {
735
+ var n = e.mount.mountpoint;
736
+ return t ? n[n.length - 1] === "/" ? n + t : `${n}/${t}` : n;
737
+ }
738
+ t = t ? `${e.name}/${t}` : e.name, e = e.parent;
739
+ }
740
+ },
741
+ hashName(e, t) {
742
+ for (var n = 0, r = 0; r < t.length; r++) n = (n << 5) - n + t.charCodeAt(r) | 0;
743
+ return (e + n >>> 0) % Q.nameTable.length;
744
+ },
745
+ hashAddNode(e) {
746
+ var t = Q.hashName(e.parent.id, e.name);
747
+ e.name_next = Q.nameTable[t], Q.nameTable[t] = e;
748
+ },
749
+ hashRemoveNode(e) {
750
+ var t = Q.hashName(e.parent.id, e.name);
751
+ if (Q.nameTable[t] === e) Q.nameTable[t] = e.name_next;
752
+ else for (var n = Q.nameTable[t]; n;) {
753
+ if (n.name_next === e) {
754
+ n.name_next = e.name_next;
755
+ break;
756
+ }
757
+ n = n.name_next;
758
+ }
759
+ },
760
+ lookupNode(e, t) {
761
+ var n = Q.mayLookup(e);
762
+ if (n) throw new Q.ErrnoError(n);
763
+ for (var r = Q.hashName(e.id, t), i = Q.nameTable[r]; i; i = i.name_next) {
764
+ var a = i.name;
765
+ if (i.parent.id === e.id && a === t) return i;
766
+ }
767
+ return Q.lookup(e, t);
768
+ },
769
+ createNode(e, t, n, r) {
770
+ var i = new Q.FSNode(e, t, n, r);
771
+ return Q.hashAddNode(i), i;
772
+ },
773
+ destroyNode(e) {
774
+ Q.hashRemoveNode(e);
775
+ },
776
+ isRoot(e) {
777
+ return e === e.parent;
778
+ },
779
+ isMountpoint(e) {
780
+ return !!e.mounted;
781
+ },
782
+ isFile(e) {
783
+ return (e & 61440) == 32768;
784
+ },
785
+ isDir(e) {
786
+ return (e & 61440) == 16384;
787
+ },
788
+ isLink(e) {
789
+ return (e & 61440) == 40960;
790
+ },
791
+ isChrdev(e) {
792
+ return (e & 61440) == 8192;
793
+ },
794
+ isBlkdev(e) {
795
+ return (e & 61440) == 24576;
796
+ },
797
+ isFIFO(e) {
798
+ return (e & 61440) == 4096;
799
+ },
800
+ isSocket(e) {
801
+ return (e & 49152) == 49152;
802
+ },
803
+ flagsToPermissionString(e) {
804
+ var t = [
805
+ "r",
806
+ "w",
807
+ "rw"
808
+ ][e & 3];
809
+ return e & 512 && (t += "w"), t;
810
+ },
811
+ nodePermissions(e, t) {
812
+ return Q.ignorePermissions ? 0 : t.includes("r") && !(e.mode & 292) || t.includes("w") && !(e.mode & 146) || t.includes("x") && !(e.mode & 73) ? 2 : 0;
813
+ },
814
+ mayLookup(e) {
815
+ return Q.isDir(e.mode) ? Q.nodePermissions(e, "x") || (e.node_ops.lookup ? 0 : 2) : 54;
816
+ },
817
+ mayCreate(e, t) {
818
+ if (!Q.isDir(e.mode)) return 54;
819
+ try {
820
+ return Q.lookupNode(e, t), 20;
821
+ } catch {}
822
+ return Q.nodePermissions(e, "wx");
823
+ },
824
+ mayDelete(e, t, n) {
825
+ var r;
826
+ try {
827
+ r = Q.lookupNode(e, t);
828
+ } catch (e) {
829
+ return e.errno;
830
+ }
831
+ var i = Q.nodePermissions(e, "wx");
832
+ if (i) return i;
833
+ if (n) {
834
+ if (!Q.isDir(r.mode)) return 54;
835
+ if (Q.isRoot(r) || Q.getPath(r) === Q.cwd()) return 10;
836
+ } else if (Q.isDir(r.mode)) return 31;
837
+ return 0;
838
+ },
839
+ mayOpen(e, t) {
840
+ if (!e) return 44;
841
+ if (Q.isLink(e.mode)) return 32;
842
+ var n = Q.flagsToPermissionString(t);
843
+ return Q.isDir(e.mode) && (n !== "r" || t & 576) ? 31 : Q.nodePermissions(e, n);
844
+ },
845
+ checkOpExists(e, t) {
846
+ if (!e) throw new Q.ErrnoError(t);
847
+ return e;
848
+ },
849
+ MAX_OPEN_FDS: 4096,
850
+ nextfd() {
851
+ for (var e = 0; e <= Q.MAX_OPEN_FDS; e++) if (!Q.streams[e]) return e;
852
+ throw new Q.ErrnoError(33);
853
+ },
854
+ getStreamChecked(e) {
855
+ var t = Q.getStream(e);
856
+ if (!t) throw new Q.ErrnoError(8);
857
+ return t;
858
+ },
859
+ getStream: (e) => Q.streams[e],
860
+ createStream(e, t = -1) {
861
+ return e = Object.assign(new Q.FSStream(), e), t == -1 && (t = Q.nextfd()), e.fd = t, Q.streams[t] = e, e;
862
+ },
863
+ closeStream(e) {
864
+ Q.streams[e] = null;
865
+ },
866
+ dupStream(e, t = -1) {
867
+ var n = Q.createStream(e, t);
868
+ return n.stream_ops?.dup?.(n), n;
869
+ },
870
+ doSetAttr(e, t, n) {
871
+ var r = e?.stream_ops.setattr, i = r ? e : t;
872
+ r ??= t.node_ops.setattr, Q.checkOpExists(r, 63);
873
+ try {
874
+ r(i, n);
875
+ } catch (e) {
876
+ throw e instanceof RangeError ? new Q.ErrnoError(22) : e;
877
+ }
878
+ },
879
+ chrdev_stream_ops: {
880
+ open(e) {
881
+ e.stream_ops = Q.getDevice(e.node.rdev).stream_ops, e.stream_ops.open?.(e);
882
+ },
883
+ llseek() {
884
+ throw new Q.ErrnoError(70);
885
+ }
886
+ },
887
+ major: (e) => e >> 8,
888
+ minor: (e) => e & 255,
889
+ makedev: (e, t) => e << 8 | t,
890
+ registerDevice(e, t) {
891
+ Q.devices[e] = { stream_ops: t };
892
+ },
893
+ getDevice: (e) => Q.devices[e],
894
+ getMounts(e) {
895
+ for (var t = [], n = [e]; n.length;) {
896
+ var r = n.pop();
897
+ t.push(r), n.push(...r.mounts);
898
+ }
899
+ return t;
900
+ },
901
+ syncfs(e, t) {
902
+ typeof e == "function" && (t = e, e = !1), Q.syncFSRequests++, Q.syncFSRequests > 1 && m(`warning: ${Q.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);
903
+ var n = Q.getMounts(Q.root.mount), r = 0;
904
+ function i(e) {
905
+ return Q.syncFSRequests--, t(e);
906
+ }
907
+ function a(e) {
908
+ if (e) return a.errored ? void 0 : (a.errored = !0, i(e));
909
+ ++r >= n.length && i(null);
910
+ }
911
+ for (var o of n) o.type.syncfs ? o.type.syncfs(o, e, a) : a(null);
912
+ },
913
+ mount(e, t, n) {
914
+ var r = n === "/", i = !n, a;
915
+ if (r && Q.root) throw new Q.ErrnoError(10);
916
+ if (!r && !i) {
917
+ var o = Q.lookupPath(n, { follow_mount: !1 });
918
+ if (n = o.path, a = o.node, Q.isMountpoint(a)) throw new Q.ErrnoError(10);
919
+ if (!Q.isDir(a.mode)) throw new Q.ErrnoError(54);
920
+ }
921
+ var s = {
922
+ type: e,
923
+ opts: t,
924
+ mountpoint: n,
925
+ mounts: []
926
+ }, c = e.mount(s);
927
+ return c.mount = s, s.root = c, r ? Q.root = c : a && (a.mounted = s, a.mount && a.mount.mounts.push(s)), c;
928
+ },
929
+ unmount(e) {
930
+ var t = Q.lookupPath(e, { follow_mount: !1 });
931
+ if (!Q.isMountpoint(t.node)) throw new Q.ErrnoError(28);
932
+ var n = t.node, r = n.mounted, i = Q.getMounts(r);
933
+ for (var [a, o] of Object.entries(Q.nameTable)) for (; o;) {
934
+ var s = o.name_next;
935
+ i.includes(o.mount) && Q.destroyNode(o), o = s;
936
+ }
937
+ n.mounted = null;
938
+ var c = n.mount.mounts.indexOf(r);
939
+ n.mount.mounts.splice(c, 1);
940
+ },
941
+ lookup(e, t) {
942
+ return e.node_ops.lookup(e, t);
943
+ },
944
+ mknod(e, t, n) {
945
+ var r = Q.lookupPath(e, { parent: !0 }).node, i = G.basename(e);
946
+ if (!i) throw new Q.ErrnoError(28);
947
+ if (i === "." || i === "..") throw new Q.ErrnoError(20);
948
+ var a = Q.mayCreate(r, i);
949
+ if (a) throw new Q.ErrnoError(a);
950
+ if (!r.node_ops.mknod) throw new Q.ErrnoError(63);
951
+ return r.node_ops.mknod(r, i, t, n);
952
+ },
953
+ statfs(e) {
954
+ return Q.statfsNode(Q.lookupPath(e, { follow: !0 }).node);
955
+ },
956
+ statfsStream(e) {
957
+ return Q.statfsNode(e.node);
958
+ },
959
+ statfsNode(e) {
960
+ var t = {
961
+ bsize: 4096,
962
+ frsize: 4096,
963
+ blocks: 1e6,
964
+ bfree: 5e5,
965
+ bavail: 5e5,
966
+ files: Q.nextInode,
967
+ ffree: Q.nextInode - 1,
968
+ fsid: 42,
969
+ flags: 2,
970
+ namelen: 255
971
+ };
972
+ return e.node_ops.statfs && Object.assign(t, e.node_ops.statfs(e.mount.opts.root)), t;
973
+ },
974
+ create(e, t = 438) {
975
+ return t &= 4095, t |= 32768, Q.mknod(e, t, 0);
976
+ },
977
+ mkdir(e, t = 511) {
978
+ return t &= 1023, t |= 16384, Q.mknod(e, t, 0);
979
+ },
980
+ mkdirTree(e, t) {
981
+ var n = e.split("/"), r = "";
982
+ for (var i of n) if (i) {
983
+ (r || G.isAbs(e)) && (r += "/"), r += i;
984
+ try {
985
+ Q.mkdir(r, t);
986
+ } catch (e) {
987
+ if (e.errno != 20) throw e;
988
+ }
989
+ }
990
+ },
991
+ mkdev(e, t, n) {
992
+ return n === void 0 && (n = t, t = 438), t |= 8192, Q.mknod(e, t, n);
993
+ },
994
+ symlink(e, t) {
995
+ if (!K.resolve(e)) throw new Q.ErrnoError(44);
996
+ var n = Q.lookupPath(t, { parent: !0 }).node;
997
+ if (!n) throw new Q.ErrnoError(44);
998
+ var r = G.basename(t), i = Q.mayCreate(n, r);
999
+ if (i) throw new Q.ErrnoError(i);
1000
+ if (!n.node_ops.symlink) throw new Q.ErrnoError(63);
1001
+ return n.node_ops.symlink(n, r, e);
1002
+ },
1003
+ link(e, t, n) {
1004
+ var r = Q.lookupPath(t, { parent: !0 }).node;
1005
+ if (!r) throw new Q.ErrnoError(44);
1006
+ var i = G.basename(t), a = Q.mayCreate(r, i);
1007
+ if (a) throw new Q.ErrnoError(a);
1008
+ if (!r.node_ops.link) throw new Q.ErrnoError(34);
1009
+ return r.node_ops.link(r, i, e, n);
1010
+ },
1011
+ rename(e, t) {
1012
+ var n = G.dirname(e), r = G.dirname(t), i = G.basename(e), a = G.basename(t), o = Q.lookupPath(e, { parent: !0 }), s = o.node, c;
1013
+ if (o = Q.lookupPath(t, { parent: !0 }), c = o.node, !s || !c) throw new Q.ErrnoError(44);
1014
+ if (s.mount !== c.mount) throw new Q.ErrnoError(75);
1015
+ var l = Q.lookupNode(s, i), u = K.relative(e, r);
1016
+ if (u.charAt(0) !== ".") throw new Q.ErrnoError(28);
1017
+ if (u = K.relative(t, n), u.charAt(0) !== ".") throw new Q.ErrnoError(55);
1018
+ var d;
1019
+ try {
1020
+ d = Q.lookupNode(c, a);
1021
+ } catch {}
1022
+ if (l !== d) {
1023
+ var f = Q.isDir(l.mode), p = Q.mayDelete(s, i, f);
1024
+ if (p || (p = d ? Q.mayDelete(c, a, f) : Q.mayCreate(c, a), p)) throw new Q.ErrnoError(p);
1025
+ if (!s.node_ops.rename) throw new Q.ErrnoError(63);
1026
+ if (Q.isMountpoint(l) || d && Q.isMountpoint(d)) throw new Q.ErrnoError(10);
1027
+ if (c !== s && (p = Q.nodePermissions(s, "w"), p)) throw new Q.ErrnoError(p);
1028
+ Q.hashRemoveNode(l);
1029
+ try {
1030
+ s.node_ops.rename(l, c, a), l.parent = c;
1031
+ } catch (e) {
1032
+ throw e;
1033
+ } finally {
1034
+ Q.hashAddNode(l);
1035
+ }
1036
+ }
1037
+ },
1038
+ rmdir(e) {
1039
+ var t = Q.lookupPath(e, { parent: !0 }).node, n = G.basename(e), r = Q.lookupNode(t, n), i = Q.mayDelete(t, n, !0);
1040
+ if (i) throw new Q.ErrnoError(i);
1041
+ if (!t.node_ops.rmdir) throw new Q.ErrnoError(63);
1042
+ if (Q.isMountpoint(r)) throw new Q.ErrnoError(10);
1043
+ t.node_ops.rmdir(t, n), Q.destroyNode(r);
1044
+ },
1045
+ readdir(e) {
1046
+ var t = Q.lookupPath(e, { follow: !0 }).node;
1047
+ return Q.checkOpExists(t.node_ops.readdir, 54)(t);
1048
+ },
1049
+ unlink(e) {
1050
+ var t = Q.lookupPath(e, { parent: !0 }).node;
1051
+ if (!t) throw new Q.ErrnoError(44);
1052
+ var n = G.basename(e), r = Q.lookupNode(t, n), i = Q.mayDelete(t, n, !1);
1053
+ if (i) throw new Q.ErrnoError(i);
1054
+ if (!t.node_ops.unlink) throw new Q.ErrnoError(63);
1055
+ if (Q.isMountpoint(r)) throw new Q.ErrnoError(10);
1056
+ t.node_ops.unlink(t, n), Q.destroyNode(r);
1057
+ },
1058
+ readlink(e) {
1059
+ var t = Q.lookupPath(e).node;
1060
+ if (!t) throw new Q.ErrnoError(44);
1061
+ if (!t.node_ops.readlink) throw new Q.ErrnoError(28);
1062
+ return t.node_ops.readlink(t);
1063
+ },
1064
+ stat(e, t) {
1065
+ var n = Q.lookupPath(e, { follow: !t }).node;
1066
+ return Q.checkOpExists(n.node_ops.getattr, 63)(n);
1067
+ },
1068
+ fstat(e) {
1069
+ var t = Q.getStreamChecked(e), n = t.node, r = t.stream_ops.getattr, i = r ? t : n;
1070
+ return r ??= n.node_ops.getattr, Q.checkOpExists(r, 63), r(i);
1071
+ },
1072
+ lstat(e) {
1073
+ return Q.stat(e, !0);
1074
+ },
1075
+ doChmod(e, t, n, r) {
1076
+ Q.doSetAttr(e, t, {
1077
+ mode: n & 4095 | t.mode & -4096,
1078
+ ctime: Date.now(),
1079
+ dontFollow: r
1080
+ });
1081
+ },
1082
+ chmod(e, t, n) {
1083
+ var r = typeof e == "string" ? Q.lookupPath(e, { follow: !n }).node : e;
1084
+ Q.doChmod(null, r, t, n);
1085
+ },
1086
+ lchmod(e, t) {
1087
+ Q.chmod(e, t, !0);
1088
+ },
1089
+ fchmod(e, t) {
1090
+ var n = Q.getStreamChecked(e);
1091
+ Q.doChmod(n, n.node, t, !1);
1092
+ },
1093
+ doChown(e, t, n) {
1094
+ Q.doSetAttr(e, t, {
1095
+ timestamp: Date.now(),
1096
+ dontFollow: n
1097
+ });
1098
+ },
1099
+ chown(e, t, n, r) {
1100
+ var i = typeof e == "string" ? Q.lookupPath(e, { follow: !r }).node : e;
1101
+ Q.doChown(null, i, r);
1102
+ },
1103
+ lchown(e, t, n) {
1104
+ Q.chown(e, t, n, !0);
1105
+ },
1106
+ fchown(e, t, n) {
1107
+ var r = Q.getStreamChecked(e);
1108
+ Q.doChown(r, r.node, !1);
1109
+ },
1110
+ doTruncate(e, t, n) {
1111
+ if (Q.isDir(t.mode)) throw new Q.ErrnoError(31);
1112
+ if (!Q.isFile(t.mode)) throw new Q.ErrnoError(28);
1113
+ var r = Q.nodePermissions(t, "w");
1114
+ if (r) throw new Q.ErrnoError(r);
1115
+ Q.doSetAttr(e, t, {
1116
+ size: n,
1117
+ timestamp: Date.now()
1118
+ });
1119
+ },
1120
+ truncate(e, t) {
1121
+ if (t < 0) throw new Q.ErrnoError(28);
1122
+ var n = typeof e == "string" ? Q.lookupPath(e, { follow: !0 }).node : e;
1123
+ Q.doTruncate(null, n, t);
1124
+ },
1125
+ ftruncate(e, t) {
1126
+ var n = Q.getStreamChecked(e);
1127
+ if (t < 0 || !(n.flags & 2097155)) throw new Q.ErrnoError(28);
1128
+ Q.doTruncate(n, n.node, t);
1129
+ },
1130
+ utime(e, t, n, r) {
1131
+ var i = Q.lookupPath(e, { follow: !r });
1132
+ Q.doSetAttr(null, i.node, {
1133
+ atime: t,
1134
+ mtime: n,
1135
+ dontFollow: r
1136
+ });
1137
+ },
1138
+ open(e, t, n = 438) {
1139
+ if (e === "") throw new Q.ErrnoError(44);
1140
+ t = ye(t), n = t & 64 ? n & 4095 | 32768 : 0;
1141
+ var r, i;
1142
+ if (typeof e == "object") r = e;
1143
+ else {
1144
+ i = e.endsWith("/");
1145
+ var a = Q.lookupPath(e, {
1146
+ follow: !(t & 131072),
1147
+ noent_okay: !0
1148
+ });
1149
+ r = a.node, e = a.path;
1150
+ }
1151
+ var o = !1;
1152
+ if (t & 64) {
1153
+ if (r) {
1154
+ if (t & 128) throw new Q.ErrnoError(20);
1155
+ } else if (i) throw new Q.ErrnoError(31);
1156
+ else r = Q.mknod(e, n | 511, 0), o = !0;
1157
+ }
1158
+ if (!r) throw new Q.ErrnoError(44);
1159
+ if (Q.isChrdev(r.mode) && (t &= -513), t & 65536 && !Q.isDir(r.mode)) throw new Q.ErrnoError(54);
1160
+ if (!o) {
1161
+ var s = Q.mayOpen(r, t);
1162
+ if (s) throw new Q.ErrnoError(s);
1163
+ }
1164
+ t & 512 && !o && Q.truncate(r, 0), t &= -131713;
1165
+ var c = Q.createStream({
1166
+ node: r,
1167
+ path: Q.getPath(r),
1168
+ flags: t,
1169
+ seekable: !0,
1170
+ position: 0,
1171
+ stream_ops: r.stream_ops,
1172
+ ungotten: [],
1173
+ error: !1
1174
+ });
1175
+ return c.stream_ops.open && c.stream_ops.open(c), o && Q.chmod(r, n & 511), c;
1176
+ },
1177
+ close(e) {
1178
+ if (Q.isClosed(e)) throw new Q.ErrnoError(8);
1179
+ e.getdents &&= null, e.node?.notifyListeners(32);
1180
+ try {
1181
+ e.stream_ops.close && e.stream_ops.close(e);
1182
+ } catch (e) {
1183
+ throw e;
1184
+ } finally {
1185
+ Q.closeStream(e.fd);
1186
+ }
1187
+ e.fd = null;
1188
+ },
1189
+ isClosed(e) {
1190
+ return e.fd === null;
1191
+ },
1192
+ llseek(e, t, n) {
1193
+ if (Q.isClosed(e)) throw new Q.ErrnoError(8);
1194
+ if (!e.seekable || !e.stream_ops.llseek) throw new Q.ErrnoError(70);
1195
+ if (n != 0 && n != 1 && n != 2) throw new Q.ErrnoError(28);
1196
+ return e.position = e.stream_ops.llseek(e, t, n), e.ungotten = [], e.position;
1197
+ },
1198
+ read(e, t, n, r, i) {
1199
+ if (r < 0 || i < 0) throw new Q.ErrnoError(28);
1200
+ if (Q.isClosed(e) || (e.flags & 2097155) == 1) throw new Q.ErrnoError(8);
1201
+ if (Q.isDir(e.node.mode)) throw new Q.ErrnoError(31);
1202
+ if (!e.stream_ops.read) throw new Q.ErrnoError(28);
1203
+ var a = i !== void 0;
1204
+ if (!a) i = e.position;
1205
+ else if (!e.seekable) throw new Q.ErrnoError(70);
1206
+ var o = e.stream_ops.read(e, t, n, r, i);
1207
+ return a || (e.position += o), o;
1208
+ },
1209
+ write(e, t, n, r, i, a) {
1210
+ if (r < 0 || i < 0) throw new Q.ErrnoError(28);
1211
+ if (Q.isClosed(e) || !(e.flags & 2097155)) throw new Q.ErrnoError(8);
1212
+ if (Q.isDir(e.node.mode)) throw new Q.ErrnoError(31);
1213
+ if (!e.stream_ops.write) throw new Q.ErrnoError(28);
1214
+ e.seekable && e.flags & 1024 && Q.llseek(e, 0, 2);
1215
+ var o = i !== void 0;
1216
+ if (!o) i = e.position;
1217
+ else if (!e.seekable) throw new Q.ErrnoError(70);
1218
+ var s = e.stream_ops.write(e, t, n, r, i, a);
1219
+ return o || (e.position += s), s;
1220
+ },
1221
+ mmap(e, t, n, r, i) {
1222
+ if (r & 2 && !(i & 2) && (e.flags & 2097155) != 2 || (e.flags & 2097155) == 1) throw new Q.ErrnoError(2);
1223
+ if (!e.stream_ops.mmap) throw new Q.ErrnoError(43);
1224
+ if (!t) throw new Q.ErrnoError(28);
1225
+ return e.stream_ops.mmap(e, t, n, r, i);
1226
+ },
1227
+ msync(e, t, n, r, i) {
1228
+ return e.stream_ops.msync ? e.stream_ops.msync(e, t, n, r, i) : 0;
1229
+ },
1230
+ ioctl(e, t, n) {
1231
+ if (!e.stream_ops.ioctl) throw new Q.ErrnoError(59);
1232
+ return e.stream_ops.ioctl(e, t, n);
1233
+ },
1234
+ readFile(e, t = {}) {
1235
+ t.flags = t.flags ?? 0, t.encoding = t.encoding ?? "binary", t.encoding !== "utf8" && t.encoding !== "binary" && w(`Invalid encoding type "${t.encoding}"`);
1236
+ var n = Q.open(e, t.flags), r = Q.stat(e).size, i = new Uint8Array(r);
1237
+ return Q.read(n, i, 0, r, 0), t.encoding === "utf8" && (i = pe(i)), Q.close(n), i;
1238
+ },
1239
+ writeFile(e, t, n = {}) {
1240
+ n.flags = n.flags ?? 577;
1241
+ var r = Q.open(e, n.flags, n.mode);
1242
+ t = be(t), Q.write(r, t, 0, t.byteLength, void 0, n.canOwn), Q.close(r);
1243
+ },
1244
+ cwd: () => Q.currentPath,
1245
+ chdir(e) {
1246
+ var t = Q.lookupPath(e, { follow: !0 });
1247
+ if (t.node === null) throw new Q.ErrnoError(44);
1248
+ if (!Q.isDir(t.node.mode)) throw new Q.ErrnoError(54);
1249
+ var n = Q.nodePermissions(t.node, "x");
1250
+ if (n) throw new Q.ErrnoError(n);
1251
+ Q.currentPath = t.path;
1252
+ },
1253
+ createDefaultDirectories() {
1254
+ Q.mkdir("/tmp"), Q.mkdir("/home"), Q.mkdir("/home/web_user");
1255
+ },
1256
+ createDefaultDevices() {
1257
+ Q.mkdir("/dev"), Q.registerDevice(Q.makedev(1, 3), {
1258
+ read: () => 0,
1259
+ write: (e, t, n, r, i) => r,
1260
+ llseek: () => 0
1261
+ }), Q.mkdev("/dev/null", Q.makedev(1, 3)), Y.register(Q.makedev(5, 0), Y.default_tty_ops), Y.register(Q.makedev(6, 0), Y.default_tty1_ops), Q.mkdev("/dev/tty", Q.makedev(5, 0)), Q.mkdev("/dev/tty1", Q.makedev(6, 0));
1262
+ var e = /* @__PURE__ */ new Uint8Array(1024), t = 0, n = () => (t === 0 && (de(e), t = e.byteLength), e[--t]);
1263
+ Q.createDevice("/dev", "random", n), Q.createDevice("/dev", "urandom", n), Q.mkdir("/dev/shm"), Q.mkdir("/dev/shm/tmp");
1264
+ },
1265
+ createSpecialDirectories() {
1266
+ Q.mkdir("/proc");
1267
+ var e = Q.mkdir("/proc/self");
1268
+ Q.mkdir("/proc/self/fd"), Q.mount({ mount() {
1269
+ var t = Q.createNode(e, "fd", 16895, 73);
1270
+ return t.stream_ops = { llseek: X.stream_ops.llseek }, t.node_ops = {
1271
+ lookup(e, t) {
1272
+ var n = +t, r = Q.getStreamChecked(n), i = {
1273
+ parent: null,
1274
+ mount: { mountpoint: "fake" },
1275
+ node_ops: { readlink: () => r.path },
1276
+ id: n + 1
1277
+ };
1278
+ return i.parent = i, i;
1279
+ },
1280
+ readdir() {
1281
+ return Array.from(Q.streams.entries()).filter(([e, t]) => t).map(([e, t]) => e.toString());
1282
+ }
1283
+ }, t;
1284
+ } }, {}, "/proc/self/fd");
1285
+ },
1286
+ createStandardStreams(e, t, n) {
1287
+ e ? Q.createDevice("/dev", "stdin", e) : Q.symlink("/dev/tty", "/dev/stdin"), t ? Q.createDevice("/dev", "stdout", null, t) : Q.symlink("/dev/tty", "/dev/stdout"), n ? Q.createDevice("/dev", "stderr", null, n) : Q.symlink("/dev/tty1", "/dev/stderr"), Q.open("/dev/stdin", 0), Q.open("/dev/stdout", 1), Q.open("/dev/stderr", 1);
1288
+ },
1289
+ staticInit() {
1290
+ Q.nameTable = Array(4096), Q.mount(X, {}, "/"), Q.createDefaultDirectories(), Q.createDefaultDevices(), Q.createSpecialDirectories(), Q.filesystems = { MEMFS: X };
1291
+ },
1292
+ init(e, t, r) {
1293
+ Q.initialized = !0, e ??= n.stdin, t ??= n.stdout, r ??= n.stderr, Q.createStandardStreams(e, t, r);
1294
+ },
1295
+ quit() {
1296
+ Q.initialized = !1;
1297
+ for (var e of Q.streams) e && Q.close(e);
1298
+ },
1299
+ findObject(e, t) {
1300
+ var n = Q.analyzePath(e, t);
1301
+ return n.exists ? n.object : null;
1302
+ },
1303
+ analyzePath(e, t) {
1304
+ try {
1305
+ var n = Q.lookupPath(e, { follow: !t });
1306
+ e = n.path;
1307
+ } catch {}
1308
+ var r = {
1309
+ isRoot: !1,
1310
+ exists: !1,
1311
+ error: 0,
1312
+ name: null,
1313
+ path: null,
1314
+ object: null,
1315
+ parentExists: !1,
1316
+ parentPath: null,
1317
+ parentObject: null
1318
+ };
1319
+ try {
1320
+ var n = Q.lookupPath(e, { parent: !0 });
1321
+ r.parentExists = !0, r.parentPath = n.path, r.parentObject = n.node, r.name = G.basename(e), n = Q.lookupPath(e, { follow: !t }), r.exists = !0, r.path = n.path, r.object = n.node, r.name = n.node.name, r.isRoot = n.path === "/";
1322
+ } catch (e) {
1323
+ r.error = e.errno;
1324
+ }
1325
+ return r;
1326
+ },
1327
+ createPath(e, t, n, r) {
1328
+ e = typeof e == "string" ? e : Q.getPath(e);
1329
+ for (var i = t.split("/").reverse(); i.length;) {
1330
+ var a = i.pop();
1331
+ if (a) {
1332
+ var o = G.join2(e, a);
1333
+ try {
1334
+ Q.mkdir(o);
1335
+ } catch (e) {
1336
+ if (e.errno != 20) throw e;
1337
+ }
1338
+ e = o;
1339
+ }
1340
+ }
1341
+ return o;
1342
+ },
1343
+ createFile(e, t, n, r, i) {
1344
+ var a = G.join2(typeof e == "string" ? e : Q.getPath(e), t), o = xe(r, i);
1345
+ return Q.create(a, o);
1346
+ },
1347
+ createDataFile(e, t, n, r, i, a) {
1348
+ var o = t;
1349
+ e && (e = typeof e == "string" ? e : Q.getPath(e), o = t ? G.join2(e, t) : e);
1350
+ var s = xe(r, i), c = Q.create(o, s);
1351
+ if (n) {
1352
+ n = be(n), Q.chmod(c, s | 146);
1353
+ var l = Q.open(c, 577);
1354
+ Q.write(l, n, 0, n.length, 0, a), Q.close(l), Q.chmod(c, s);
1355
+ }
1356
+ },
1357
+ createDevice(e, t, n, r) {
1358
+ var i = G.join2(typeof e == "string" ? e : Q.getPath(e), t), a = xe(!!n, !!r);
1359
+ Q.createDevice.major ??= 64;
1360
+ var o = Q.makedev(Q.createDevice.major++, 0);
1361
+ return Q.registerDevice(o, {
1362
+ open(e) {
1363
+ e.seekable = !1;
1364
+ },
1365
+ close(e) {
1366
+ r?.buffer?.length && r(10);
1367
+ },
1368
+ read(e, t, r, i, a) {
1369
+ for (var o = 0, s = 0; s < i; s++) {
1370
+ var c;
1371
+ try {
1372
+ c = n();
1373
+ } catch {
1374
+ throw new Q.ErrnoError(29);
1375
+ }
1376
+ if (c === void 0 && o === 0) throw new Q.ErrnoError(6);
1377
+ if (c == null) break;
1378
+ o++, t[r + s] = c;
1379
+ }
1380
+ return o && (e.node.atime = Date.now()), o;
1381
+ },
1382
+ write(e, t, n, i, a) {
1383
+ for (var o = 0; o < i; o++) try {
1384
+ r(t[n + o]);
1385
+ } catch {
1386
+ throw new Q.ErrnoError(29);
1387
+ }
1388
+ return i && (e.node.mtime = e.node.ctime = Date.now()), o;
1389
+ }
1390
+ }), Q.mkdev(i, a, o);
1391
+ },
1392
+ forceLoadFile(e) {
1393
+ if (e.isDevice || e.isFolder || e.link || e.contents) return !0;
1394
+ if (globalThis.XMLHttpRequest) w("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
1395
+ else try {
1396
+ e.contents = f(e.url);
1397
+ } catch {
1398
+ throw new Q.ErrnoError(29);
1399
+ }
1400
+ },
1401
+ createLazyFile(e, t, n, r, a) {
1402
+ class o {
1403
+ lengthKnown = !1;
1404
+ chunks = [];
1405
+ get(e) {
1406
+ if (!(e > this.length - 1 || e < 0)) {
1407
+ var t = e % this.chunkSize, n = e / this.chunkSize | 0;
1408
+ return this.getter(n)[t];
1409
+ }
1410
+ }
1411
+ setDataGetter(e) {
1412
+ this.getter = e;
1413
+ }
1414
+ cacheLength() {
1415
+ var e = new XMLHttpRequest();
1416
+ e.open("HEAD", n, !1), e.send(null), e.status >= 200 && e.status < 300 || e.status === 304 || w("Couldn't load " + n + ". Status: " + e.status);
1417
+ var t = Number(e.getResponseHeader("Content-length")), r, i = (r = e.getResponseHeader("Accept-Ranges")) && r === "bytes", a = (r = e.getResponseHeader("Content-Encoding")) && r === "gzip", o = 1048576;
1418
+ i || (o = t);
1419
+ var s = (e, r) => {
1420
+ e > r && w(`invalid range (${e}, ${r}) or no bytes requested!`), r > t - 1 && w(`only ${t} bytes available! programmer error!`);
1421
+ var i = new XMLHttpRequest();
1422
+ return i.open("GET", n, !1), t !== o && i.setRequestHeader("Range", "bytes=" + e + "-" + r), i.responseType = "arraybuffer", i.overrideMimeType && i.overrideMimeType("text/plain; charset=x-user-defined"), i.send(null), i.status >= 200 && i.status < 300 || i.status === 304 || w("Couldn't load " + n + ". Status: " + i.status), i.response === void 0 ? J(i.responseText ?? "", !0) : new Uint8Array(i.response || []);
1423
+ }, c = this;
1424
+ c.setDataGetter((e) => {
1425
+ var n = e * o, r = (e + 1) * o - 1;
1426
+ return r = Math.min(r, t - 1), c.chunks[e] === void 0 && (c.chunks[e] = s(n, r)), c.chunks[e] === void 0 && w("doXHR failed!"), c.chunks[e];
1427
+ }), (a || !t) && (o = t = 1, t = this.getter(0).length, o = t, p("LazyFiles on gzip forces download of the whole file when length is accessed")), this._length = t, this._chunkSize = o, this.lengthKnown = !0;
1428
+ }
1429
+ get length() {
1430
+ return this.lengthKnown || this.cacheLength(), this._length;
1431
+ }
1432
+ get chunkSize() {
1433
+ return this.lengthKnown || this.cacheLength(), this._chunkSize;
1434
+ }
1435
+ }
1436
+ if (globalThis.XMLHttpRequest) {
1437
+ i || w("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");
1438
+ var s = {
1439
+ isDevice: !1,
1440
+ contents: new o()
1441
+ };
1442
+ } else var s = {
1443
+ isDevice: !1,
1444
+ url: n
1445
+ };
1446
+ var c = Q.createFile(e, t, s, r, a);
1447
+ s.contents ? c.contents = s.contents : s.url && (c.contents = null, c.url = s.url), Object.defineProperties(c, { usedBytes: { get: function() {
1448
+ return this.contents.length;
1449
+ } } });
1450
+ var l = {};
1451
+ for (let [e, t] of Object.entries(c.stream_ops)) l[e] = (...e) => (Q.forceLoadFile(c), t(...e));
1452
+ function u(e, t, n, r, i) {
1453
+ var a = e.node.contents;
1454
+ if (i >= a.length) return 0;
1455
+ var o = Math.min(a.length - i, r);
1456
+ if (a.slice) for (var s = 0; s < o; s++) t[n + s] = a[i + s];
1457
+ else for (var s = 0; s < o; s++) t[n + s] = a.get(i + s);
1458
+ return o;
1459
+ }
1460
+ return l.read = (e, t, n, r, i) => (Q.forceLoadFile(c), u(e, t, n, r, i)), l.mmap = (e, t, n, r, i) => {
1461
+ Q.forceLoadFile(c);
1462
+ var a = ve(t);
1463
+ if (!a) throw new Q.ErrnoError(48);
1464
+ return u(e, I, a, t, n), {
1465
+ ptr: a,
1466
+ allocated: !0
1467
+ };
1468
+ }, c.stream_ops = l, c;
1469
+ }
1470
+ }, Pe = (e, t, n) => e ? pe(re, e, t, n) : "", $ = {
1471
+ currentUmask: 18,
1472
+ calculateAt(e, t, n) {
1473
+ if (G.isAbs(t)) return t;
1474
+ var r = e === -100 ? Q.cwd() : $.getStreamFromFD(e).path;
1475
+ if (t.length == 0) {
1476
+ if (!n) throw new Q.ErrnoError(44);
1477
+ return r;
1478
+ }
1479
+ return r + "/" + t;
1480
+ },
1481
+ writeStat(e, t) {
1482
+ z[e >> 2] = t.dev, z[e + 4 >> 2] = t.mode, z[e + 8 >> 2] = t.nlink, z[e + 12 >> 2] = t.uid, z[e + 16 >> 2] = t.gid, z[e + 20 >> 2] = t.rdev, F[e + 24 >> 3] = BigInt(t.size), P[e + 32 >> 2] = 4096, P[e + 36 >> 2] = t.blocks;
1483
+ var n = t.atime.getTime(), r = t.mtime.getTime(), i = t.ctime.getTime();
1484
+ return F[e + 40 >> 3] = BigInt(Math.floor(n / 1e3)), z[e + 48 >> 2] = n % 1e3 * 1e3 * 1e3, F[e + 56 >> 3] = BigInt(Math.floor(r / 1e3)), z[e + 64 >> 2] = r % 1e3 * 1e3 * 1e3, F[e + 72 >> 3] = BigInt(Math.floor(i / 1e3)), z[e + 80 >> 2] = i % 1e3 * 1e3 * 1e3, F[e + 88 >> 3] = BigInt(t.ino), 0;
1485
+ },
1486
+ writeStatFs(e, t) {
1487
+ z[e + 4 >> 2] = t.bsize, z[e + 60 >> 2] = t.bsize, F[e + 8 >> 3] = BigInt(t.blocks), F[e + 16 >> 3] = BigInt(t.bfree), F[e + 24 >> 3] = BigInt(t.bavail), F[e + 32 >> 3] = BigInt(t.files), F[e + 40 >> 3] = BigInt(t.ffree), z[e + 48 >> 2] = t.fsid, z[e + 64 >> 2] = t.flags, z[e + 56 >> 2] = t.namelen;
1488
+ },
1489
+ doMsync(e, t, n, r, i) {
1490
+ if (!Q.isFile(t.node.mode)) throw new Q.ErrnoError(43);
1491
+ if (r & 2) return 0;
1492
+ var a = re.subarray(e, e + n);
1493
+ Q.msync(t, a, i, n, r);
1494
+ },
1495
+ getStreamFromFD(e) {
1496
+ return Q.getStreamChecked(e);
1497
+ },
1498
+ varargs: void 0,
1499
+ getStr(e) {
1500
+ return Pe(e);
1501
+ }
1502
+ };
1503
+ function Fe(e, t, n) {
1504
+ $.varargs = n;
1505
+ try {
1506
+ var r = $.getStreamFromFD(e);
1507
+ switch (t) {
1508
+ case 0:
1509
+ var i = U();
1510
+ if (i < 0) return -28;
1511
+ for (; Q.streams[i];) i++;
1512
+ return Q.dupStream(r, i).fd;
1513
+ case 1:
1514
+ case 2: return 0;
1515
+ case 3: return r.flags;
1516
+ case 4:
1517
+ var i = U(), a = 289792;
1518
+ return r.flags = r.flags & ~a | i & a, 0;
1519
+ case 12:
1520
+ var i = W(), o = 0;
1521
+ return N[i + o >> 1] = 2, 0;
1522
+ case 13:
1523
+ case 14: return 0;
1524
+ }
1525
+ return -28;
1526
+ } catch (e) {
1527
+ if (Q === void 0 || e.name !== "ErrnoError") throw e;
1528
+ return -e.errno;
1529
+ }
1530
+ }
1531
+ function Ie(e, t, n) {
1532
+ $.varargs = n;
1533
+ try {
1534
+ var r = $.getStreamFromFD(e);
1535
+ switch (t) {
1536
+ case 21509: return r.tty ? 0 : -59;
1537
+ case 21505:
1538
+ if (!r.tty) return -59;
1539
+ if (r.tty.ops.ioctl_tcgets) {
1540
+ var i = r.tty.ops.ioctl_tcgets(r), a = W();
1541
+ P[a >> 2] = i.c_iflag || 0, P[a + 4 >> 2] = i.c_oflag || 0, P[a + 8 >> 2] = i.c_cflag || 0, P[a + 12 >> 2] = i.c_lflag || 0;
1542
+ for (var o = 0; o < 32; o++) I[a + o + 17] = i.c_cc[o] || 0;
1543
+ return 0;
1544
+ }
1545
+ return 0;
1546
+ case 21510:
1547
+ case 21511:
1548
+ case 21512: return r.tty ? 0 : -59;
1549
+ case 21506:
1550
+ case 21507:
1551
+ case 21508:
1552
+ if (!r.tty) return -59;
1553
+ if (r.tty.ops.ioctl_tcsets) {
1554
+ for (var a = W(), s = P[a >> 2], c = P[a + 4 >> 2], l = P[a + 8 >> 2], u = P[a + 12 >> 2], d = [], o = 0; o < 32; o++) d.push(I[a + o + 17]);
1555
+ return r.tty.ops.ioctl_tcsets(r.tty, t, {
1556
+ c_iflag: s,
1557
+ c_oflag: c,
1558
+ c_cflag: l,
1559
+ c_lflag: u,
1560
+ c_cc: d
1561
+ });
1562
+ }
1563
+ return 0;
1564
+ case 21519:
1565
+ if (!r.tty) return -59;
1566
+ var a = W();
1567
+ return P[a >> 2] = 0, 0;
1568
+ case 21520: return r.tty ? -28 : -59;
1569
+ case 21537:
1570
+ case 21531:
1571
+ var a = W();
1572
+ return Q.ioctl(r, t, a);
1573
+ case 21523:
1574
+ if (!r.tty) return -59;
1575
+ if (r.tty.ops.ioctl_tiocgwinsz) {
1576
+ var f = r.tty.ops.ioctl_tiocgwinsz(r.tty), a = W();
1577
+ N[a >> 1] = f[0], N[a + 2 >> 1] = f[1];
1578
+ }
1579
+ return 0;
1580
+ case 21524: return r.tty ? 0 : -59;
1581
+ case 21515: return r.tty ? 0 : -59;
1582
+ default: return -28;
1583
+ }
1584
+ } catch (e) {
1585
+ if (Q === void 0 || e.name !== "ErrnoError") throw e;
1586
+ return -e.errno;
1587
+ }
1588
+ }
1589
+ function Le(e, t, n, r) {
1590
+ $.varargs = r;
1591
+ try {
1592
+ t = $.getStr(t), t = $.calculateAt(e, t);
1593
+ var i = r ? U() : 0;
1594
+ return n & 64 && (i &= ~$.currentUmask), Q.open(t, n, i).fd;
1595
+ } catch (e) {
1596
+ if (Q === void 0 || e.name !== "ErrnoError") throw e;
1597
+ return -e.errno;
1598
+ }
1599
+ }
1600
+ var Re = () => w(""), ze = 0, Be = () => {
1601
+ V = !1, ze = 0;
1602
+ }, Ve = {}, He = (e) => {
1603
+ if (e instanceof M || e == "unwind") return _;
1604
+ c(1, e);
1605
+ }, Ue = () => V || ze > 0, We = (e) => {
1606
+ _ = e, Ue() || (n.onExit?.(e), g = !0), c(e, new M(e));
1607
+ }, Ge = (e, t) => {
1608
+ _ = e, We(e);
1609
+ }, Ke = () => {
1610
+ if (!Ue()) try {
1611
+ Ge(_);
1612
+ } catch (e) {
1613
+ He(e);
1614
+ }
1615
+ }, qe = (e) => {
1616
+ if (!g) try {
1617
+ return e();
1618
+ } catch (e) {
1619
+ He(e);
1620
+ } finally {
1621
+ Ke();
1622
+ }
1623
+ }, Je = () => performance.now(), Ye = (e, t) => (Ve[e] && (clearTimeout(Ve[e].id), delete Ve[e]), t && (Ve[e] = {
1624
+ id: setTimeout(() => {
1625
+ delete Ve[e], qe(() => qt(e, Je()));
1626
+ }, t),
1627
+ timeout_ms: t
1628
+ }), 0), Xe = (e, t, n) => ge(e, re, t, n), Ze = (e, t, n, r) => {
1629
+ var i = (/* @__PURE__ */ new Date()).getFullYear(), a = new Date(i, 0, 1), o = new Date(i, 6, 1), s = a.getTimezoneOffset(), c = o.getTimezoneOffset(), l = Math.max(s, c);
1630
+ z[e >> 2] = l * 60, P[t >> 2] = Number(s != c);
1631
+ var u = (e) => {
1632
+ var t = e >= 0 ? "-" : "+", n = Math.abs(e);
1633
+ return `UTC${t}${String(Math.floor(n / 60)).padStart(2, "0")}${String(n % 60).padStart(2, "0")}`;
1634
+ }, d = u(s), f = u(c);
1635
+ c < s ? (Xe(d, n, 17), Xe(f, r, 17)) : (Xe(d, r, 17), Xe(f, n, 17));
1636
+ }, Qe = () => Date.now(), $e = 1, et = (e) => e >= 0 && e <= 3, tt = 9007199254740992, nt = -9007199254740992, rt = (e) => e < nt || e > tt ? NaN : Number(e);
1637
+ function it(e, t, n) {
1638
+ if (t = rt(t), !et(e)) return 28;
1639
+ var r;
1640
+ if (e === 0) r = Qe();
1641
+ else if ($e) r = Je();
1642
+ else return 52;
1643
+ var i = Math.round(r * 1e3 * 1e3);
1644
+ return F[n >> 3] = BigInt(i), 0;
1645
+ }
1646
+ var at = () => 2147483648, ot = (e, t) => Math.ceil(e / t) * t, st = (e) => {
1647
+ var t = (e - Zt.buffer.byteLength + 65535) / 65536 | 0;
1648
+ try {
1649
+ return Zt.grow(t), b(), 1;
1650
+ } catch {}
1651
+ }, ct = (e) => {
1652
+ var t = re.length;
1653
+ e >>>= 0;
1654
+ var n = at();
1655
+ if (e > n) return !1;
1656
+ for (var r = 1; r <= 4; r *= 2) {
1657
+ var i = t * (1 + .2 / r);
1658
+ if (i = Math.min(i, e + 100663296), st(Math.min(n, ot(Math.max(e, i), 65536)))) return !0;
1659
+ }
1660
+ return !1;
1661
+ }, lt = {}, ut = () => s, dt = () => {
1662
+ if (!dt.strings) {
1663
+ var e = {
1664
+ USER: "web_user",
1665
+ LOGNAME: "web_user",
1666
+ PATH: "/",
1667
+ PWD: "/",
1668
+ HOME: "/home/web_user",
1669
+ LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8",
1670
+ _: ut()
1671
+ };
1672
+ for (var t in lt) lt[t] === void 0 ? delete e[t] : e[t] = lt[t];
1673
+ var n = [];
1674
+ for (var t in e) n.push(`${t}=${e[t]}`);
1675
+ dt.strings = n;
1676
+ }
1677
+ return dt.strings;
1678
+ }, ft = (e, t) => {
1679
+ var n = 0, r = 0;
1680
+ for (var i of dt()) {
1681
+ var a = t + n;
1682
+ z[e + r >> 2] = a, n += Xe(i, a, Infinity) + 1, r += 4;
1683
+ }
1684
+ return 0;
1685
+ }, pt = (e, t) => {
1686
+ var n = dt();
1687
+ z[e >> 2] = n.length;
1688
+ var r = 0;
1689
+ for (var i of n) r += he(i) + 1;
1690
+ return z[t >> 2] = r, 0;
1691
+ };
1692
+ function mt(e) {
1693
+ try {
1694
+ var t = $.getStreamFromFD(e);
1695
+ return Q.close(t), 0;
1696
+ } catch (e) {
1697
+ if (Q === void 0 || e.name !== "ErrnoError") throw e;
1698
+ return e.errno;
1699
+ }
1700
+ }
1701
+ var ht = (e, t, n, r) => {
1702
+ for (var i = 0, a = 0; a < n; a++) {
1703
+ var o = z[t >> 2], s = z[t + 4 >> 2];
1704
+ t += 8;
1705
+ try {
1706
+ var c = Q.read(e, I, o, s, r);
1707
+ } catch (e) {
1708
+ if (i > 0 && e instanceof Q.ErrnoError && (e.errno == 6 || e.errno == 6)) break;
1709
+ throw e;
1710
+ }
1711
+ if (c < 0) return -1;
1712
+ if (i += c, c < s) break;
1713
+ r !== void 0 && (r += c);
1714
+ }
1715
+ return i;
1716
+ };
1717
+ function gt(e, t, n, r) {
1718
+ try {
1719
+ var i = ht($.getStreamFromFD(e), t, n);
1720
+ return z[r >> 2] = i, 0;
1721
+ } catch (e) {
1722
+ if (Q === void 0 || e.name !== "ErrnoError") throw e;
1723
+ return e.errno;
1724
+ }
1725
+ }
1726
+ function _t(e, t, n, r) {
1727
+ t = rt(t);
1728
+ try {
1729
+ if (isNaN(t)) return 22;
1730
+ var i = $.getStreamFromFD(e);
1731
+ return Q.llseek(i, t, n), F[r >> 3] = BigInt(i.position), i.getdents && t === 0 && n === 0 && (i.getdents = null), 0;
1732
+ } catch (e) {
1733
+ if (Q === void 0 || e.name !== "ErrnoError") throw e;
1734
+ return e.errno;
1735
+ }
1736
+ }
1737
+ var vt = (e, t, n, r) => {
1738
+ if (n == 1) return Q.write(e, I, z[t >> 2], z[t + 4 >> 2], r);
1739
+ for (var i = 0, a = 0, o = t; a < n; a++, o += 8) i += z[o + 4 >> 2];
1740
+ for (var s = new Uint8Array(i), c = 0, a = 0; a < n; a++, t += 8) {
1741
+ var l = z[t >> 2], u = z[t + 4 >> 2];
1742
+ s.set(re.subarray(l, l + u), c), c += u;
1743
+ }
1744
+ return Q.write(e, s, 0, i, r);
1745
+ };
1746
+ function yt(e, t, n, r) {
1747
+ try {
1748
+ var i = vt($.getStreamFromFD(e), t, n);
1749
+ return z[r >> 2] = i, 0;
1750
+ } catch (e) {
1751
+ if (Q === void 0 || e.name !== "ErrnoError") throw e;
1752
+ return e.errno;
1753
+ }
1754
+ }
1755
+ var bt = (e) => n["_" + e], xt = (e, t) => {
1756
+ I.set(e, t);
1757
+ }, St = (e) => Yt(e), Ct = (e) => {
1758
+ var t = he(e) + 1, n = St(t);
1759
+ return Xe(e, n, t), n;
1760
+ }, wt = (e, t, n, r, i) => {
1761
+ var a = {
1762
+ string: (e) => {
1763
+ var t = 0;
1764
+ return e != null && e !== 0 && (t = Ct(e)), t;
1765
+ },
1766
+ array: (e) => {
1767
+ var t = St(e.length);
1768
+ return xt(e, t), t;
1769
+ }
1770
+ };
1771
+ function o(e) {
1772
+ return t === "string" ? Pe(e) : t === "boolean" ? !!e : e;
1773
+ }
1774
+ var s = bt(e), c = [], l = 0;
1775
+ if (r) for (var u = 0; u < r.length; u++) {
1776
+ var d = a[n[u]];
1777
+ d ? (l === 0 && (l = oe()), c[u] = d(r[u])) : c[u] = r[u];
1778
+ }
1779
+ var f = s(...c);
1780
+ function p(e) {
1781
+ return l !== 0 && H(l), o(e);
1782
+ }
1783
+ return f = p(f), f;
1784
+ }, Tt = (e, t, n, r) => {
1785
+ var i = !n || n.every((e) => e === "number" || e === "boolean");
1786
+ return t !== "string" && i && !r ? bt(e) : (...i) => wt(e, t, n, i, r);
1787
+ }, Et = [], Dt = (e) => {
1788
+ var t = Et[e];
1789
+ return t || (Et[e] = t = Qt.get(e)), t;
1790
+ }, Ot = (e, t) => {
1791
+ if (kt) for (var n = e; n < e + t; n++) {
1792
+ var r = Dt(n);
1793
+ r && kt.set(r, n);
1794
+ }
1795
+ }, kt, At = (e) => (kt || (kt = /* @__PURE__ */ new WeakMap(), Ot(0, Qt.length)), kt.get(e) || 0), jt = [], Mt = () => jt.length ? jt.pop() : Qt.grow(1), Nt = (e, t) => {
1796
+ Qt.set(e, t), Et[e] = Qt.get(e);
1797
+ }, Pt = (e) => {
1798
+ let t = e.length;
1799
+ return [
1800
+ t % 128 | 128,
1801
+ t >> 7,
1802
+ ...e
1803
+ ];
1804
+ }, Ft = {
1805
+ i: 127,
1806
+ p: 127,
1807
+ j: 126,
1808
+ f: 125,
1809
+ d: 124,
1810
+ e: 111
1811
+ }, It = (e) => Pt(Array.from(e, (e) => Ft[e])), Lt = (e, t) => {
1812
+ var n = Uint8Array.of(0, 97, 115, 109, 1, 0, 0, 0, 1, ...Pt([
1813
+ 1,
1814
+ 96,
1815
+ ...It(t.slice(1)),
1816
+ ...It(t[0] === "v" ? "" : t[0])
1817
+ ]), 2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0), r = new WebAssembly.Module(n);
1818
+ return new WebAssembly.Instance(r, { e: { f: e } }).exports.f;
1819
+ }, Rt = (e, t) => {
1820
+ var n = At(e);
1821
+ if (n) return n;
1822
+ var r = Mt();
1823
+ try {
1824
+ Nt(r, e);
1825
+ } catch (n) {
1826
+ if (!(n instanceof TypeError)) throw n;
1827
+ Nt(r, Lt(e, t));
1828
+ }
1829
+ return kt.set(e, r), r;
1830
+ }, zt = (e) => {
1831
+ kt.delete(Dt(e)), Nt(e, null), jt.push(e);
1832
+ };
1833
+ Q.createPreloadedFile = Ne, Q.preloadFile = Me, Q.staticInit(), n.noExitRuntime && (V = n.noExitRuntime), n.print && (p = n.print), n.printErr && (m = n.printErr), n.arguments && n.arguments, n.thisProgram && (s = n.thisProgram);
1834
+ var Bt = n.preInit;
1835
+ if (Bt) for (typeof Bt == "function" && (n.preInit = Bt = [Bt]); Bt.length > 0;) Bt.shift()();
1836
+ n.cwrap = Tt, n.addFunction = Rt, n.removeFunction = zt, n.UTF8ToString = Pe;
1837
+ var Vt, Ht, Ut, Wt, Gt, Kt, qt, Jt, Yt, Xt, Zt, Qt;
1838
+ function $t(e) {
1839
+ n._Highs_js_getColName = e.w, n._Highs_js_getRowName = e.x, n._Highs_js_getPresolvedColName = e.y, n._Highs_js_getPresolvedRowName = e.z, n._Highs_js_setCallback = e.A, n._Highs_js_getCallbackMipSolutionSize = e.B, n._Highs_lpCall = e.C, n._Highs_mipCall = e.D, n._Highs_qpCall = e.E, Vt = n._Highs_create = e.F, Ht = n._Highs_destroy = e.G, n._Highs_version = e.H, n._Highs_versionMajor = e.I, n._Highs_versionMinor = e.J, n._Highs_versionPatch = e.K, n._Highs_githash = e.L, n._Highs_presolve = e.M, Ut = n._Highs_run = e.N, n._Highs_postsolve = e.O, n._Highs_readModel = e.P, n._Highs_writeModel = e.Q, n._Highs_writePresolvedModel = e.R, n._Highs_writeSolution = e.S, n._Highs_writeSolutionPretty = e.T, n._Highs_passLp = e.U, n._Highs_passMip = e.V, n._Highs_passModel = e.W, n._Highs_passHessian = e.X, n._Highs_passLinearObjectives = e.Y, n._Highs_clearLinearObjectives = e.Z, n._Highs_getNumCol = e._, n._Highs_addLinearObjective = e.$, n._Highs_passRowName = e.aa, n._Highs_passColName = e.ba, n._Highs_passModelName = e.ca, n._Highs_readOptions = e.da, n._Highs_clear = e.ea, n._Highs_clearModel = e.fa, n._Highs_clearSolver = e.ga, n._Highs_releaseMemory = e.ha, n._Highs_setBoolOptionValue = e.ia, n._Highs_setIntOptionValue = e.ja, n._Highs_setDoubleOptionValue = e.ka, n._Highs_setStringOptionValue = e.la, n._Highs_getNumOptions = e.ma, n._Highs_getOptionName = e.na, n._Highs_getBoolOptionValue = e.oa, n._Highs_getBoolOptionValues = e.pa, n._Highs_getIntOptionValue = e.qa, n._Highs_getIntOptionValues = e.ra, n._Highs_getDoubleOptionValue = e.sa, n._Highs_getDoubleOptionValues = e.ta, n._Highs_getStringOptionValue = e.ua, n._Highs_getStringOptionValues = e.va, n._Highs_getOptionType = e.wa, n._Highs_resetOptions = e.xa, n._Highs_writeOptions = e.ya, n._Highs_writeOptionsDeviations = e.za, n._Highs_getIntInfoValue = e.Aa, n._Highs_getDoubleInfoValue = e.Ba, n._Highs_getInt64InfoValue = e.Ca, n._Highs_getInfoType = e.Da, n._Highs_getSolution = e.Ea, n._Highs_getBasis = e.Fa, Wt = n._Highs_getModelStatus = e.Ga, n._Highs_getDualRay = e.Ha, n._Highs_getDualUnboundednessDirection = e.Ia, n._Highs_getPrimalRay = e.Ja, n._Highs_getObjectiveValue = e.Ka, n._Highs_getBasicVariables = e.La, n._Highs_getBasisInverseRow = e.Ma, n._Highs_getBasisInverseCol = e.Na, n._Highs_getBasisSolve = e.Oa, n._Highs_getBasisTransposeSolve = e.Pa, n._Highs_getReducedRow = e.Qa, n._Highs_getReducedColumn = e.Ra, n._Highs_setBasis = e.Sa, n._Highs_getNumRow = e.Ta, n._Highs_setLogicalBasis = e.Ua, n._Highs_setSolution = e.Va, n._Highs_setSparseSolution = e.Wa, n._Highs_setCallback = e.Xa, n._Highs_startCallback = e.Ya, n._Highs_stopCallback = e.Za, n._Highs_getRunTime = e._a, n._Highs_zeroAllClocks = e.$a, n._Highs_addCol = e.ab, n._Highs_addCols = e.bb, n._Highs_addVar = e.cb, n._Highs_addVars = e.db, n._Highs_addRow = e.eb, n._Highs_addRows = e.fb, n._Highs_ensureColwise = e.gb, n._Highs_ensureRowwise = e.hb, n._Highs_changeObjectiveSense = e.ib, n._Highs_changeObjectiveOffset = e.jb, n._Highs_changeColIntegrality = e.kb, n._Highs_changeColsIntegralityByRange = e.lb, n._Highs_changeColsIntegralityBySet = e.mb, n._Highs_changeColsIntegralityByMask = e.nb, n._Highs_clearIntegrality = e.ob, n._Highs_changeColCost = e.pb, n._Highs_changeColsCostByRange = e.qb, n._Highs_changeColsCostBySet = e.rb, n._Highs_changeColsCostByMask = e.sb, n._Highs_changeColBounds = e.tb, n._Highs_changeColsBoundsByRange = e.ub, n._Highs_changeColsBoundsBySet = e.vb, n._Highs_changeColsBoundsByMask = e.wb, n._Highs_changeRowBounds = e.xb, n._Highs_changeRowsBoundsByRange = e.yb, n._Highs_changeRowsBoundsBySet = e.zb, n._Highs_changeRowsBoundsByMask = e.Ab, n._Highs_changeCoeff = e.Bb, n._Highs_getObjectiveSense = e.Cb, n._Highs_getObjectiveOffset = e.Db, n._Highs_getColsByRange = e.Eb, n._Highs_getColsBySet = e.Fb, n._Highs_getColsByMask = e.Gb, n._Highs_getRowsByRange = e.Hb, n._Highs_getRowsBySet = e.Ib, n._Highs_getRowsByMask = e.Jb, n._Highs_getRowName = e.Kb, n._Highs_getRowByName = e.Lb, n._Highs_getColName = e.Mb, n._Highs_getColByName = e.Nb, n._Highs_getColIntegrality = e.Ob, n._Highs_deleteColsByRange = e.Pb, n._Highs_deleteColsBySet = e.Qb, n._Highs_deleteColsByMask = e.Rb, n._Highs_deleteRowsByRange = e.Sb, n._Highs_deleteRowsBySet = e.Tb, n._Highs_deleteRowsByMask = e.Ub, n._Highs_scaleCol = e.Vb, n._Highs_scaleRow = e.Wb, n._Highs_getInfinity = e.Xb, n._Highs_getSizeofHighsInt = e.Yb, n._Highs_getNumNz = e.Zb, n._Highs_getHessianNumNz = e._b, n._Highs_getPresolvedNumCol = e.$b, n._Highs_getPresolvedNumRow = e.ac, n._Highs_getPresolvedNumNz = e.bc, n._Highs_getModel = e.cc, n._Highs_getLp = e.dc, n._Highs_getFixedLp = e.ec, n._Highs_getPresolvedLp = e.fc, n._Highs_getPresolvedColName = e.gc, n._Highs_getPresolvedRowName = e.hc, n._Highs_getIis = e.ic, n._Highs_getIisLp = e.jc, n._Highs_crossover = e.kc, n._Highs_getRanging = e.lc, n._Highs_feasibilityRelaxation = e.mc, n._Highs_getCallbackDataOutItem = e.nc, n._Highs_setCallbackSolution = e.oc, n._Highs_setCallbackSparseSolution = e.pc, n._Highs_repairCallbackSolution = e.qc, n._Highs_call = e.rc, Gt = n._free = e.tc, Kt = n._malloc = e.uc, qt = e.vc, Jt = e.wc, Yt = e.xc, Xt = e.yc, Zt = e.u, Qt = e.sc;
1840
+ }
1841
+ var en = {
1842
+ a: le,
1843
+ e: Fe,
1844
+ h: Ie,
1845
+ i: Le,
1846
+ k: Re,
1847
+ s: Be,
1848
+ l: Ye,
1849
+ m: Ze,
1850
+ p: it,
1851
+ j: Qe,
1852
+ c: Je,
1853
+ q: ct,
1854
+ n: ft,
1855
+ o: pt,
1856
+ b: Ge,
1857
+ d: mt,
1858
+ g: gt,
1859
+ t: _t,
1860
+ f: yt,
1861
+ r: We
1862
+ };
1863
+ async function tn() {
1864
+ x(), Ee && await Te();
1865
+ var e = n.setStatus;
1866
+ e && (e("Running..."), await new Promise((e) => setTimeout(e, 1)), setTimeout(e, 1, "")), !g && (S(), n.onRuntimeInitialized?.(), C());
1867
+ }
1868
+ var nn = await j();
1869
+ await tn();
1870
+ let rn = 0;
1871
+ n.Highs_readModel = n.cwrap("Highs_readModel", "number", ["number", "string"]);
1872
+ let an = n.cwrap("Highs_setIntOptionValue", "number", [
1873
+ "number",
1874
+ "string",
1875
+ "number"
1876
+ ]), on = n.cwrap("Highs_setDoubleOptionValue", "number", [
1877
+ "number",
1878
+ "string",
1879
+ "number"
1880
+ ]), sn = n.cwrap("Highs_setStringOptionValue", "number", [
1881
+ "number",
1882
+ "string",
1883
+ "string"
1884
+ ]), cn = n.cwrap("Highs_setBoolOptionValue", "number", [
1885
+ "number",
1886
+ "string",
1887
+ "number"
1888
+ ]), ln = n.cwrap("Highs_getOptionType", "number", [
1889
+ "number",
1890
+ "string",
1891
+ "number"
1892
+ ]), un = n.cwrap("Highs_getNumCol", "number", ["number"]), dn = n.cwrap("Highs_getNumRow", "number", ["number"]), fn = n.cwrap("Highs_getObjectiveValue", "number", ["number"]), pn = n.cwrap("Highs_getInfinity", "number", []), mn = n.cwrap("Highs_getSolution", "number", [
1893
+ "number",
1894
+ "number",
1895
+ "number",
1896
+ "number",
1897
+ "number"
1898
+ ]), hn = n.cwrap("Highs_getBasis", "number", [
1899
+ "number",
1900
+ "number",
1901
+ "number"
1902
+ ]), gn = n.cwrap("Highs_getColsByRange", "number", [
1903
+ "number",
1904
+ "number",
1905
+ "number",
1906
+ "number",
1907
+ "number",
1908
+ "number",
1909
+ "number",
1910
+ "number",
1911
+ "number",
1912
+ "number",
1913
+ "number"
1914
+ ]), _n = n.cwrap("Highs_getRowsByRange", "number", [
1915
+ "number",
1916
+ "number",
1917
+ "number",
1918
+ "number",
1919
+ "number",
1920
+ "number",
1921
+ "number",
1922
+ "number",
1923
+ "number",
1924
+ "number"
1925
+ ]), vn = n.cwrap("Highs_getColIntegrality", "number", [
1926
+ "number",
1927
+ "number",
1928
+ "number"
1929
+ ]), yn = n.cwrap("Highs_js_getColName", "number", [
1930
+ "number",
1931
+ "number",
1932
+ "number",
1933
+ "number",
1934
+ "number"
1935
+ ]), bn = n.cwrap("Highs_js_getRowName", "number", [
1936
+ "number",
1937
+ "number",
1938
+ "number",
1939
+ "number",
1940
+ "number"
1941
+ ]), xn = {
1942
+ 0: "Not Set",
1943
+ 1: "Load error",
1944
+ 2: "Model error",
1945
+ 3: "Presolve error",
1946
+ 4: "Solve error",
1947
+ 5: "Postsolve error",
1948
+ 6: "Empty",
1949
+ 7: "Optimal",
1950
+ 8: "Infeasible",
1951
+ 9: "Primal infeasible or unbounded",
1952
+ 10: "Unbounded",
1953
+ 11: "Bound on objective reached",
1954
+ 12: "Target for objective reached",
1955
+ 13: "Time limit reached",
1956
+ 14: "Iteration limit reached",
1957
+ 15: "Unknown"
1958
+ };
1959
+ var Vt, Ut, Ht, Wt, Q;
1960
+ let Sn = {
1961
+ 0: "LB",
1962
+ 1: "BS",
1963
+ 2: "UB",
1964
+ 3: "FX"
1965
+ };
1966
+ function Cn(e, t, n) {
1967
+ return e === 3 || e === 2 && t === n ? "FX" : Sn[e] || "";
1968
+ }
1969
+ let wn = /* @__PURE__ */ new Set([
1970
+ "Not Set",
1971
+ "Load error",
1972
+ "Model error",
1973
+ "Presolve error",
1974
+ "Solve error",
1975
+ "Postsolve error",
1976
+ "Empty",
1977
+ "Infeasible",
1978
+ "Unknown"
1979
+ ]);
1980
+ n.solve = function(e, t) {
1981
+ let r = `highs-model-${++rn}.lp`, i, a = [];
1982
+ function o(e) {
1983
+ let t = Kt(e);
1984
+ if (!t) throw Error("malloc failed");
1985
+ return a.push(t), t;
1986
+ }
1987
+ function s(e, t) {
1988
+ let n = o(Int32Array.BYTES_PER_ELEMENT), r = yn(e, t, 0, 0, n);
1989
+ if (r !== 0 && r !== 1) return "";
1990
+ let i = P[n >> 2];
1991
+ if (i <= 0) return "";
1992
+ let s = Kt(i);
1993
+ return a.push(s), r = yn(e, t, s, i, n), r !== 0 && r !== 1 ? "" : Pe(s);
1994
+ }
1995
+ function c(e, t) {
1996
+ let n = o(Int32Array.BYTES_PER_ELEMENT), r = bn(e, t, 0, 0, n);
1997
+ if (r !== 0 && r !== 1) return "";
1998
+ let i = P[n >> 2];
1999
+ if (i <= 0) return "";
2000
+ let s = Kt(i);
2001
+ return a.push(s), r = bn(e, t, s, i, n), r !== 0 && r !== 1 ? "" : Pe(s);
2002
+ }
2003
+ try {
2004
+ if (Q.writeFile(r, e), i = Vt(), !i) throw Error("Unable to create the HiGHS solver");
2005
+ En(() => n.Highs_readModel(i, r), "read LP model (see http://web.mit.edu/lpsolve/doc/CPLEX-format.htm)");
2006
+ let a = t || {};
2007
+ for (let e in a) {
2008
+ let t = a[e], n = typeof t, r;
2009
+ if (n === "number") r = Tn;
2010
+ else if (n === "boolean") r = cn;
2011
+ else if (n === "string") r = sn;
2012
+ else throw Error(`Unsupported option value type ${t} for '${e}'`);
2013
+ En(() => r(i, e, t), `set option '${e}'`);
2014
+ }
2015
+ En(() => Ut(i), "solve the problem");
2016
+ let l = Wt(i), u = xn[l] || "Unknown";
2017
+ if (u === "Empty") return {
2018
+ Columns: {},
2019
+ Rows: [],
2020
+ ObjectiveValue: 0,
2021
+ Status: "Empty"
2022
+ };
2023
+ let d = un(i), f = dn(i), p = pn(), m = fn(i);
2024
+ Math.abs(m) >= p * .5 && (m = m > 0 ? Infinity : -Infinity);
2025
+ let h = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0, g = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0, _ = f > 0 ? o(f * Float64Array.BYTES_PER_ELEMENT) : 0, v = f > 0 ? o(f * Float64Array.BYTES_PER_ELEMENT) : 0;
2026
+ En(() => mn(i, h, g, _, v), "get solution");
2027
+ let y = d > 0 ? o(d * Int32Array.BYTES_PER_ELEMENT) : 0, b = f > 0 ? o(f * Int32Array.BYTES_PER_ELEMENT) : 0, x = !1, S = hn(i, y, b);
2028
+ (S === 0 || S === 1) && (x = !0);
2029
+ let C = o(Int32Array.BYTES_PER_ELEMENT), w = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0, T = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0, E = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0;
2030
+ gn(i, 0, d - 1, C, w, T, E, 0, 0, 0, 0);
2031
+ let ee = o(Int32Array.BYTES_PER_ELEMENT), D = f > 0 ? o(f * Float64Array.BYTES_PER_ELEMENT) : 0, O = f > 0 ? o(f * Float64Array.BYTES_PER_ELEMENT) : 0;
2032
+ _n(i, 0, f - 1, ee, D, O, 0, 0, 0, 0);
2033
+ let k = o(Int32Array.BYTES_PER_ELEMENT), A = !wn.has(u), j = !1;
2034
+ for (let e = 0; e < d && !j; e++) vn(i, e, k), P[k >> 2] !== 0 && (j = !0);
2035
+ let M = {};
2036
+ for (let e = 0; e < d; e++) {
2037
+ let t = {
2038
+ Index: e,
2039
+ Lower: R[(T >> 3) + e],
2040
+ Upper: R[(E >> 3) + e]
2041
+ };
2042
+ if (vn(i, e, k), t.Type = P[k >> 2] === 1 ? "Integer" : "Continuous", A && (t.Primal = R[(h >> 3) + e]), x && A && !j) {
2043
+ let n = P[(y >> 2) + e];
2044
+ t.Status = Cn(n, t.Lower, t.Upper), t.Dual = R[(g >> 3) + e];
2045
+ }
2046
+ t.Name = s(i, e), M[t.Name] = t;
2047
+ }
2048
+ let N = [];
2049
+ for (let e = 0; e < f; e++) {
2050
+ let t = {
2051
+ Index: e,
2052
+ Name: c(i, e),
2053
+ Lower: R[(D >> 3) + e],
2054
+ Upper: R[(O >> 3) + e]
2055
+ };
2056
+ if (A && (t.Primal = R[(_ >> 3) + e]), x && A && !j) {
2057
+ let n = P[(b >> 2) + e];
2058
+ t.Status = Cn(n, t.Lower, t.Upper), t.Dual = R[(v >> 3) + e];
2059
+ }
2060
+ N.push(t);
2061
+ }
2062
+ return {
2063
+ Status: u,
2064
+ ObjectiveValue: m,
2065
+ Columns: M,
2066
+ Rows: N
2067
+ };
2068
+ } finally {
2069
+ i && Ht(i);
2070
+ try {
2071
+ Q.unlink(r);
2072
+ } catch {}
2073
+ for (let e = a.length - 1; e >= 0; e--) try {
2074
+ Gt(a[e]);
2075
+ } catch {}
2076
+ }
2077
+ };
2078
+ function Tn(e, t, n) {
2079
+ let r = Kt(Int32Array.BYTES_PER_ELEMENT);
2080
+ if (!r) return -1;
2081
+ try {
2082
+ let i = ln(e, t, r);
2083
+ if (i !== 0 && i !== 1) return i;
2084
+ let a = P[r >> 2];
2085
+ return a === 1 ? !Number.isSafeInteger(n) || n < -2147483648 || n > 2147483647 ? -1 : an(e, t, n) : a === 2 ? on(e, t, n) : -1;
2086
+ } finally {
2087
+ Gt(r);
2088
+ }
2089
+ }
2090
+ function En(e, t) {
2091
+ let n;
2092
+ try {
2093
+ n = e();
2094
+ } catch (e) {
2095
+ n = e;
2096
+ }
2097
+ if (n !== 0 && n !== 1) throw Error("Unable to " + t + ". HiGHS error " + n);
2098
+ }
2099
+ var Dn = this && this.__classPrivateFieldSet || function(e, t, n, r, i) {
2100
+ if (r === "m") throw TypeError("Private method is not writable");
2101
+ if (r === "a" && !i) throw TypeError("Private accessor was defined without a setter");
2102
+ if (typeof t == "function" ? e !== t || !i : !t.has(e)) throw TypeError("Cannot write private member to an object whose class did not declare it");
2103
+ return r === "a" ? i.call(e, n) : i ? i.value = n : t.set(e, n), n;
2104
+ }, On = this && this.__classPrivateFieldGet || function(e, t, n, r) {
2105
+ if (n === "a" && !r) throw TypeError("Private accessor was defined without a getter");
2106
+ if (typeof t == "function" ? e !== t || !r : !t.has(e)) throw TypeError("Cannot read private member from an object whose class did not declare it");
2107
+ return n === "m" ? r : n === "a" ? r.call(e) : r ? r.value : t.get(e);
2108
+ };
2109
+ return (function(e) {
2110
+ var t, n;
2111
+ let r = {
2112
+ csc: 1,
2113
+ csr: 2
2114
+ }, i = {
2115
+ triangular: 1,
2116
+ square: 2
2117
+ }, a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = 1, l = 1, u = 0;
2118
+ class d extends Error {
2119
+ constructor(e, t) {
2120
+ super(e), this.status = -1, this.name = "HighsError", this.operation = t;
2121
+ }
2122
+ }
2123
+ class f extends d {
2124
+ constructor() {
2125
+ super("Cannot use this HiGHS model after disposal; create a new model or keep the work inside highs.withModel()", "dispose"), this.name = "HighsDisposedError";
2126
+ }
2127
+ }
2128
+ class p extends d {
2129
+ constructor(e) {
2130
+ super(e, "validate"), this.name = "HighsValidationError";
2131
+ }
2132
+ }
2133
+ class m extends d {
2134
+ constructor() {
2135
+ super("Only callback control methods may be called while HiGHS is executing a callback", "callback"), this.name = "HighsReentrancyError";
2136
+ }
2137
+ }
2138
+ class h extends d {
2139
+ constructor(e) {
2140
+ super("Option '" + e + "' is not supported by the single-threaded data-only API", "setOptionValue"), this.name = "HighsUnsupportedOptionError", this.option = e;
2141
+ }
2142
+ }
2143
+ function g(t, n, r) {
2144
+ let i = t + ":" + n + ":" + r.join(","), a = s.get(i);
2145
+ if (!a) {
2146
+ let c = e.cwrap(t, n, r);
2147
+ a = function(...e) {
2148
+ let t = c.apply(null, e), n = o.get(e[0]);
2149
+ return n && n._throwCallbackError(), t;
2150
+ }, s.set(i, a);
2151
+ }
2152
+ return a;
2153
+ }
2154
+ function _(e, t, n = "number") {
2155
+ return g(e, n, Array(t).fill("number"));
2156
+ }
2157
+ function v(e, t, n, r = "number") {
2158
+ return g(e, r, Array(t || 0).fill("number").concat(["string"], Array(n || 0).fill("number")));
2159
+ }
2160
+ function y() {
2161
+ return re;
2162
+ }
2163
+ function b() {
2164
+ return P;
2165
+ }
2166
+ function x() {
2167
+ return R;
2168
+ }
2169
+ function S(e) {
2170
+ return e ? Pe(e) : "";
2171
+ }
2172
+ function C(e) {
2173
+ return new p(e);
2174
+ }
2175
+ function w() {
2176
+ return new f();
2177
+ }
2178
+ function T(e) {
2179
+ return new d(e + " failed with HiGHS status -1", e);
2180
+ }
2181
+ function E(e) {
2182
+ return new h(e);
2183
+ }
2184
+ function ee() {
2185
+ return new m();
2186
+ }
2187
+ function D(e) {
2188
+ return { status: e };
2189
+ }
2190
+ function O(e, t) {
2191
+ return e === -1 ? { status: e } : {
2192
+ status: e,
2193
+ value: t
2194
+ };
2195
+ }
2196
+ function k(e, t) {
2197
+ if (e === -1) throw T(t);
2198
+ return {
2199
+ status: e,
2200
+ warnings: e === 1 ? [t + " completed with a HiGHS warning"] : []
2201
+ };
2202
+ }
2203
+ function A(e, t, n = 0) {
2204
+ if (!Number.isSafeInteger(e) || e < (n || 0) || e > 2147483647) throw C(t + " must be a 32-bit non-negative integer");
2205
+ return e;
2206
+ }
2207
+ function j(e, t) {
2208
+ if (!Number.isSafeInteger(e) || e < -2147483648 || e > 2147483647) throw C(t + " must be a signed 32-bit integer");
2209
+ return e;
2210
+ }
2211
+ function M(e, t) {
2212
+ if (e == null || typeof e.length != "number") throw C(t + " must be an array or typed array");
2213
+ return e;
2214
+ }
2215
+ function N(e, t, n) {
2216
+ if (M(e, n), e.length !== t) throw C(n + " must contain " + t + " values; got " + e.length);
2217
+ return e;
2218
+ }
2219
+ function F(e, t) {
2220
+ if (typeof e != "number" || Number.isNaN(e)) throw C(t + " must be a number");
2221
+ return e;
2222
+ }
2223
+ function I(e, t, n) {
2224
+ N(e, t, n);
2225
+ for (let t = 0; t < e.length; t++) F(e[t], n + "[" + t + "]");
2226
+ return e;
2227
+ }
2228
+ function L(e, t, n, r) {
2229
+ t == null ? M(e, n) : N(e, t, n);
2230
+ for (let t = 0; t < e.length; t++) {
2231
+ let i = e[t];
2232
+ if (A(i, n + "[" + t + "]", 0), r != null && i >= r) throw C(n + "[" + t + "] is outside the model");
2233
+ }
2234
+ return e;
2235
+ }
2236
+ function te(e, t, n, r) {
2237
+ if (!e || e.format !== "csc" && e.format !== "csr") throw C(r + ".format must be 'csc' or 'csr'");
2238
+ if (e.numRows !== t || e.numCols !== n) throw C(r + " dimensions do not match the model");
2239
+ let i = e.format === "csc" ? n : t;
2240
+ if (L(e.starts, i + 1, r + ".starts"), e.starts[0] !== 0) throw C(r + ".starts must begin with zero");
2241
+ for (let t = 1; t < e.starts.length; t++) if (e.starts[t] < e.starts[t - 1]) throw C(r + ".starts must be monotonic");
2242
+ let a = e.starts[i];
2243
+ return L(e.indices, a, r + ".indices", e.format === "csc" ? t : n), I(e.values, a, r + ".values"), a;
2244
+ }
2245
+ function z(e, t, n) {
2246
+ if (!e || !(e.format in i)) throw C(n + ".format must be 'triangular' or 'square'");
2247
+ if (e.dimension !== t) throw C(n + ".dimension must equal numCols");
2248
+ if (L(e.starts, t + 1, n + ".starts"), e.starts[0] !== 0) throw C(n + ".starts must begin with zero");
2249
+ for (let t = 1; t < e.starts.length; t++) if (e.starts[t] < e.starts[t - 1]) throw C(n + ".starts must be monotonic");
2250
+ let r = e.starts[t];
2251
+ return L(e.indices, r, n + ".indices", t), I(e.values, r, n + ".values"), r;
2252
+ }
2253
+ function ne(e) {
2254
+ if (!e || typeof e != "object") throw C("model must be an object");
2255
+ let t = A(e.numCols, "numCols", 0), n = A(e.numRows, "numRows", 0);
2256
+ I(e.colCost, t, "colCost"), I(e.colLower, t, "colLower"), I(e.colUpper, t, "colUpper"), I(e.rowLower, n, "rowLower"), I(e.rowUpper, n, "rowUpper");
2257
+ let r = te(e.matrix, n, t, "matrix");
2258
+ if (e.integrality != null) {
2259
+ L(e.integrality, t, "integrality");
2260
+ for (let n = 0; n < t; n++) if (e.integrality[n] > 4) throw C("integrality values must be between 0 and 4");
2261
+ }
2262
+ let i = e.hessian ? z(e.hessian, t, "hessian") : 0, a = e.sense == null ? 1 : e.sense;
2263
+ if (a !== 1 && a !== -1) throw C("sense must be 1 (minimize) or -1 (maximize)");
2264
+ if (F(e.offset == null ? 0 : e.offset, "offset"), e.modelName != null && typeof e.modelName != "string") throw C("modelName must be a string");
2265
+ for (let [r, i, a] of [[
2266
+ e.colNames,
2267
+ t,
2268
+ "colNames"
2269
+ ], [
2270
+ e.rowNames,
2271
+ n,
2272
+ "rowNames"
2273
+ ]]) if (r != null) {
2274
+ N(r, i, a);
2275
+ for (let e = 0; e < r.length; e++) if (typeof r[e] != "string") throw C(a + "[" + e + "] must be a string");
2276
+ }
2277
+ return {
2278
+ numCols: t,
2279
+ numRows: n,
2280
+ numNonzeros: r,
2281
+ hessianNonzeros: i,
2282
+ sense: a
2283
+ };
2284
+ }
2285
+ function ie(e, t, n) {
2286
+ if (!e || typeof e != "object") throw C(n + " must be an object");
2287
+ F(e.weight, n + ".weight"), F(e.offset, n + ".offset"), I(e.coefficients, t, n + ".coefficients"), F(e.absoluteTolerance, n + ".absoluteTolerance"), F(e.relativeTolerance, n + ".relativeTolerance"), j(e.priority, n + ".priority");
2288
+ }
2289
+ class ae {
2290
+ constructor() {
2291
+ this.pointers = [];
2292
+ }
2293
+ bytes(e) {
2294
+ A(e, "allocation size", 0);
2295
+ let t = Kt(Math.max(1, e));
2296
+ if (!t) throw RangeError("Unable to allocate WebAssembly memory");
2297
+ return this.pointers.push(t), t;
2298
+ }
2299
+ ints(e) {
2300
+ let t = this.bytes(e.length * 4);
2301
+ return b().set(e, t >> 2), t;
2302
+ }
2303
+ doubles(e) {
2304
+ let t = this.bytes(e.length * 8);
2305
+ return x().set(e, t >> 3), t;
2306
+ }
2307
+ pack(e) {
2308
+ let t = [], n = 0;
2309
+ for (let r of e) {
2310
+ let e = r.type === "f64" ? 8 : 4;
2311
+ n = Math.ceil(n / e) * e, t.push(n), n += r.values.length * e;
2312
+ }
2313
+ let r = this.bytes(n);
2314
+ return e.forEach((e, n) => {
2315
+ let i = r + t[n];
2316
+ e.type === "f64" ? x().set(e.values, i >> 3) : b().set(e.values, i >> 2);
2317
+ }), t.map((e) => r + e);
2318
+ }
2319
+ outInts(e) {
2320
+ let t = this.bytes(e * 4);
2321
+ return b().fill(0, t >> 2, (t >> 2) + e), t;
2322
+ }
2323
+ outDoubles(e) {
2324
+ let t = this.bytes(e * 8);
2325
+ return x().fill(0, t >> 3, (t >> 3) + e), t;
2326
+ }
2327
+ free() {
2328
+ for (let e = this.pointers.length - 1; e >= 0; e--) Gt(this.pointers[e]);
2329
+ this.pointers.length = 0;
2330
+ }
2331
+ }
2332
+ function B(e) {
2333
+ let t = new ae();
2334
+ try {
2335
+ return e(t);
2336
+ } finally {
2337
+ t.free();
2338
+ }
2339
+ }
2340
+ function V(e, t) {
2341
+ return b().slice(e >> 2, (e >> 2) + t);
2342
+ }
2343
+ function H(e, t) {
2344
+ return x().slice(e >> 3, (e >> 3) + t);
2345
+ }
2346
+ function oe(e) {
2347
+ return new BigInt64Array(y().buffer, e, 1)[0];
2348
+ }
2349
+ function se(e) {
2350
+ return "/tmp/highs-js-" + l++ + "." + e;
2351
+ }
2352
+ function ce(e, t) {
2353
+ if (!e || e.format !== "lp" && e.format !== "mps") throw C("format must be 'lp' or 'mps'");
2354
+ if (!(typeof e.data == "string" || ArrayBuffer.isView(e.data))) throw C("model data must be a string or Uint8Array");
2355
+ let n = se(e.format);
2356
+ try {
2357
+ return Q.writeFile(n, e.data), t(n);
2358
+ } finally {
2359
+ try {
2360
+ Q.unlink(n);
2361
+ } catch {}
2362
+ }
2363
+ }
2364
+ function le(e, t, n) {
2365
+ if (typeof e != "string") throw C("data must be a string");
2366
+ let r = se(t);
2367
+ try {
2368
+ return Q.writeFile(r, e), n(r);
2369
+ } finally {
2370
+ try {
2371
+ Q.unlink(r);
2372
+ } catch {}
2373
+ }
2374
+ }
2375
+ function U(e, t, n) {
2376
+ let r = se(e);
2377
+ try {
2378
+ let e = n(r);
2379
+ return e === -1 ? O(e) : O(e, Q.readFile(r, t === "utf8" ? { encoding: "utf8" } : void 0));
2380
+ } finally {
2381
+ try {
2382
+ Q.unlink(r);
2383
+ } catch {}
2384
+ }
2385
+ }
2386
+ function W(e) {
2387
+ return /thread|parallel|concurr/i.test(e) || /(^|_)(log_file|read_.*_file|write_.*_file|solution_file|.*_file)$/.test(e) || /^write_.*_to_file$/.test(e);
2388
+ }
2389
+ function G(e) {
2390
+ if (typeof e != "string" || !e) throw C("option name is required");
2391
+ if (W(e)) throw E(e);
2392
+ }
2393
+ function ue(e) {
2394
+ if (typeof e != "string" || !e) throw C("option name is required");
2395
+ return !W(e);
2396
+ }
2397
+ function de(e) {
2398
+ if (typeof e != "string") throw C("option data must be a string");
2399
+ for (let t of e.split(/\r?\n/)) {
2400
+ let e = /^\s*([A-Za-z][A-Za-z0-9_]*)\b/.exec(t);
2401
+ e && !t.trimStart().startsWith("#") && G(e[1]);
2402
+ }
2403
+ }
2404
+ function K(e, t, n, r) {
2405
+ if (!e || typeof e != "object") throw C(r + " selection must be tagged");
2406
+ if (e.kind === "range") {
2407
+ let n = A(e.from, r + ".from", 0), i = A(e.to, r + ".to", 0);
2408
+ if (i < n || i >= t) throw C(r + " range is outside the model");
2409
+ return {
2410
+ suffix: "ByRange",
2411
+ prefix: [n, i],
2412
+ count: i - n + 1
2413
+ };
2414
+ }
2415
+ if (e.kind === "set") {
2416
+ L(e.indices, null, r + ".indices", t);
2417
+ for (let t = 1; t < e.indices.length; t++) if (e.indices[t] <= e.indices[t - 1]) throw C(r + " set indices must increase strictly");
2418
+ return {
2419
+ suffix: "BySet",
2420
+ prefix: [e.indices.length, n.ints(e.indices)],
2421
+ count: e.indices.length
2422
+ };
2423
+ }
2424
+ if (e.kind === "mask") {
2425
+ N(e.mask, t, r + ".mask");
2426
+ let i = new Int32Array(t), a = 0;
2427
+ for (let n = 0; n < t; n++) {
2428
+ if (e.mask[n] !== !1 && e.mask[n] !== !0 && e.mask[n] !== 0 && e.mask[n] !== 1) throw C(r + ".mask values must be boolean, 0, or 1");
2429
+ i[n] = +!!e.mask[n], a += i[n];
2430
+ }
2431
+ return {
2432
+ suffix: "ByMask",
2433
+ prefix: [n.ints(i)],
2434
+ count: a
2435
+ };
2436
+ }
2437
+ throw C(r + ".kind must be 'range', 'set', or 'mask'");
2438
+ }
2439
+ function q(e) {
2440
+ return {
2441
+ numCols: _("Highs_getNumCol", 1)(e),
2442
+ numRows: _("Highs_getNumRow", 1)(e),
2443
+ numNonzeros: _("Highs_getNumNz", 1)(e),
2444
+ hessianNonzeros: _("Highs_getHessianNumNz", 1)(e)
2445
+ };
2446
+ }
2447
+ function fe(e) {
2448
+ return {
2449
+ numCols: _("Highs_getPresolvedNumCol", 1)(e),
2450
+ numRows: _("Highs_getPresolvedNumRow", 1)(e),
2451
+ numNonzeros: _("Highs_getPresolvedNumNz", 1)(e)
2452
+ };
2453
+ }
2454
+ class pe {
2455
+ constructor(e) {
2456
+ t.set(this, void 0), n.set(this, void 0), this._callbackNumCols = 0, Dn(this, t, e, "f"), Dn(this, n, !1, "f"), this._callbackDepth = 0, this._callbackId = 0, this._callbackError = void 0, this._callbackErrorPending = !1, o.set(e, this);
2457
+ }
2458
+ get disposed() {
2459
+ return On(this, n, "f");
2460
+ }
2461
+ _require(e = !1) {
2462
+ if (On(this, n, "f")) throw w();
2463
+ if (this._callbackDepth && !e) throw ee();
2464
+ return On(this, t, "f");
2465
+ }
2466
+ _rememberCallbackError(e) {
2467
+ this._callbackErrorPending ||= (this._callbackError = e, !0);
2468
+ }
2469
+ _throwCallbackError() {
2470
+ if (!this._callbackErrorPending) return;
2471
+ let e = this._callbackError;
2472
+ throw this._callbackError = void 0, this._callbackErrorPending = !1, e;
2473
+ }
2474
+ clear() {
2475
+ return this._simple("Highs_clear");
2476
+ }
2477
+ clearSolver() {
2478
+ return this._simple("Highs_clearSolver");
2479
+ }
2480
+ presolve() {
2481
+ return this._simple("Highs_presolve");
2482
+ }
2483
+ getRunTime() {
2484
+ return _("Highs_getRunTime", 1)(this._require(!1));
2485
+ }
2486
+ readModel(e) {
2487
+ let t = this._require(!1);
2488
+ return D(ce(e, function(e) {
2489
+ return v("Highs_readModel", 1, 0)(t, e);
2490
+ }));
2491
+ }
2492
+ exportPresolvedModel(e) {
2493
+ let t = this._require(!1);
2494
+ if (e !== "lp" && e !== "mps") throw C("format must be 'lp' or 'mps'");
2495
+ return U(e, e === "lp" ? "utf8" : void 0, function(e) {
2496
+ return v("Highs_writePresolvedModel", 1, 0)(t, e);
2497
+ });
2498
+ }
2499
+ passModel(e) {
2500
+ let t = this._require(!1), n = B(function(n) {
2501
+ let r = he(e, n);
2502
+ return _("Highs_passModel", 21).apply(null, [t].concat(r.values));
2503
+ }), r = n === -1 ? n : ge(t, e);
2504
+ return D(n === -1 || r === -1 ? -1 : Math.max(n, r));
2505
+ }
2506
+ passMip(e) {
2507
+ let t = this._require(!1), n = B(function(n) {
2508
+ let i = ne(e), a = e.matrix;
2509
+ if (!e.integrality) throw C("passMip requires an integrality vector");
2510
+ let o = me(e, n, !0);
2511
+ return _("Highs_passMip", 16)(t, i.numCols, i.numRows, i.numNonzeros, r[a.format], i.sense, e.offset == null ? 0 : e.offset, ...o);
2512
+ }), i = n === -1 ? n : ge(t, e);
2513
+ return D(n === -1 || i === -1 ? -1 : Math.max(n, i));
2514
+ }
2515
+ passHessian(e) {
2516
+ let t = this._require(!1), n = q(t).numCols;
2517
+ return D(B(function(r) {
2518
+ let a = z(e, n, "hessian");
2519
+ return _("Highs_passHessian", 7)(t, n, a, i[e.format], r.ints(Array.prototype.slice.call(e.starts, 0, -1)), r.ints(e.indices), r.doubles(e.values));
2520
+ }));
2521
+ }
2522
+ addLinearObjective(e) {
2523
+ let t = this._require(!1), n = q(t).numCols;
2524
+ return ie(e, n, "objective"), D(B(function(n) {
2525
+ return _("Highs_addLinearObjective", 7)(t, e.weight, e.offset, n.doubles(e.coefficients), e.absoluteTolerance, e.relativeTolerance, j(e.priority, "priority"));
2526
+ }));
2527
+ }
2528
+ passRowName(e, t) {
2529
+ let n = this._require(!1);
2530
+ if (A(e, "row", 0), typeof t != "string") throw C("name must be a string");
2531
+ return D(v("Highs_passRowName", 2, 0)(n, e, t));
2532
+ }
2533
+ passModelName(e) {
2534
+ if (typeof e != "string") throw C("name must be a string");
2535
+ return D(v("Highs_passModelName", 1, 0)(this._require(!1), e));
2536
+ }
2537
+ getOptionType(e) {
2538
+ let t = this._require(!1);
2539
+ return ue(e) ? B(function(n) {
2540
+ let r = n.outInts(1);
2541
+ return O(v("Highs_getOptionType", 1, 1)(t, e, r), [
2542
+ "boolean",
2543
+ "integer",
2544
+ "double",
2545
+ "string"
2546
+ ][b()[r >> 2]]);
2547
+ }) : O(-1);
2548
+ }
2549
+ resetOptions() {
2550
+ return this._simple("Highs_resetOptions");
2551
+ }
2552
+ exportOptions(e) {
2553
+ let t = this._require(!1), n = U("options", "utf8", function(n) {
2554
+ return v(e ? "Highs_writeOptionsDeviations" : "Highs_writeOptions", 1, 0)(t, n);
2555
+ });
2556
+ return n.status !== -1 && (n.value = n.value.split(/\r?\n/).filter(function(e) {
2557
+ let t = /^\s*([A-Za-z][A-Za-z0-9_]*)\b/.exec(e);
2558
+ return !t || !W(t[1]);
2559
+ }).join("\n")), n;
2560
+ }
2561
+ getOptionName(e) {
2562
+ let t = this._require(!1);
2563
+ return A(e, "option index", 0), B(function(n) {
2564
+ let r = n.outInts(1), i = _("Highs_getOptionName", 3)(t, e, r), a = b()[r >> 2] >>> 0;
2565
+ if (!a) return O(i, "");
2566
+ try {
2567
+ return O(i, S(a));
2568
+ } finally {
2569
+ Gt(a);
2570
+ }
2571
+ });
2572
+ }
2573
+ getInfoType(e) {
2574
+ let t = this._require(!1);
2575
+ if (typeof e != "string" || !e) throw C("info name is required");
2576
+ return B(function(n) {
2577
+ let r = n.outInts(1), i = v("Highs_getInfoType", 1, 1)(t, e, r), a = b()[r >> 2];
2578
+ return O(i, a === -1 ? "int64" : a === 1 ? "integer" : a === 2 ? "double" : void 0);
2579
+ });
2580
+ }
2581
+ getDimensions() {
2582
+ return q(this._require(!1));
2583
+ }
2584
+ getInfinity() {
2585
+ return _("Highs_getInfinity", 1)(this._require(!1));
2586
+ }
2587
+ getModelStatus() {
2588
+ return _("Highs_getModelStatus", 1)(this._require(!1));
2589
+ }
2590
+ getSolution() {
2591
+ let e = this._require(!1), t = this.getModelStatus();
2592
+ if (t === 0 || t === 6) throw new d("The model has not been solved", "getSolution");
2593
+ let n = q(e);
2594
+ return B(function(t) {
2595
+ let r = t.outDoubles(n.numCols), i = t.outDoubles(n.numCols), a = t.outDoubles(n.numRows), o = t.outDoubles(n.numRows);
2596
+ return O(_("Highs_getSolution", 5)(e, r, i, a, o), {
2597
+ colValue: H(r, n.numCols),
2598
+ rowValue: H(a, n.numRows),
2599
+ colDual: H(i, n.numCols),
2600
+ rowDual: H(o, n.numRows)
2601
+ });
2602
+ });
2603
+ }
2604
+ setSolution(e) {
2605
+ let t = this._require(!1), n = q(t);
2606
+ return D(B(function(r) {
2607
+ function i(e, t, n) {
2608
+ return e == null ? 0 : (I(e, t, n), r.doubles(e));
2609
+ }
2610
+ return _("Highs_setSolution", 5)(t, i(e.colValue, n.numCols, "colValue"), i(e.rowValue, n.numRows, "rowValue"), i(e.colDual, n.numCols, "colDual"), i(e.rowDual, n.numRows, "rowDual"));
2611
+ }));
2612
+ }
2613
+ setBasis(e) {
2614
+ let t = this._require(!1), n = q(t);
2615
+ if (!e) throw C("basis is required");
2616
+ return L(e.colStatus, n.numCols, "colStatus"), L(e.rowStatus, n.numRows, "rowStatus"), D(B(function(n) {
2617
+ return _("Highs_setBasis", 3)(t, n.ints(e.colStatus), n.ints(e.rowStatus));
2618
+ }));
2619
+ }
2620
+ postsolve(e) {
2621
+ let t = this._require(!1), n = fe(t);
2622
+ if (!e || e.colValue == null) throw C("postsolve requires colValue");
2623
+ return I(e.colValue, n.numCols, "colValue"), e.colDual != null && I(e.colDual, n.numCols, "colDual"), e.rowDual != null && I(e.rowDual, n.numRows, "rowDual"), D(B(function(n) {
2624
+ return _("Highs_postsolve", 4)(t, n.doubles(e.colValue), e.colDual ? n.doubles(e.colDual) : 0, e.rowDual ? n.doubles(e.rowDual) : 0);
2625
+ }));
2626
+ }
2627
+ getObjectiveOffset() {
2628
+ let e = this._require(!1);
2629
+ return B(function(t) {
2630
+ let n = t.outDoubles(1);
2631
+ return O(_("Highs_getObjectiveOffset", 2)(e, n), x()[n >> 3]);
2632
+ });
2633
+ }
2634
+ getModel(e) {
2635
+ return J(this, "Highs_getModel", e, !0);
2636
+ }
2637
+ getPresolvedLp(e) {
2638
+ return J(this, "Highs_getPresolvedLp", e, !1);
2639
+ }
2640
+ getFixedLp(e) {
2641
+ let t = J(this, "Highs_getFixedLp", e, !1);
2642
+ return t.status !== -1 && t.value && t.value.integrality.fill(0), t;
2643
+ }
2644
+ ensureRowwise() {
2645
+ return this._simple("Highs_ensureRowwise");
2646
+ }
2647
+ addVars(e, t) {
2648
+ let n = this._require(!1);
2649
+ return M(e, "lower"), I(t, e.length, "upper"), I(e, e.length, "lower"), D(B(function(r) {
2650
+ return _("Highs_addVars", 4)(n, e.length, r.doubles(e), r.doubles(t));
2651
+ }));
2652
+ }
2653
+ addCol(e, t, n, r) {
2654
+ let i = this._require(!1);
2655
+ return F(e, "cost"), F(t, "lower"), F(n, "upper"), _e(r, q(i).numRows), D(B(function(a) {
2656
+ return _("Highs_addCol", 7)(i, e, t, n, r.indices.length, a.ints(r.indices), a.doubles(r.values));
2657
+ }));
2658
+ }
2659
+ addCols(e) {
2660
+ let t = this._require(!1), n = q(t).numRows;
2661
+ if (!e || !e.matrix) throw C("column data and matrix are required");
2662
+ let r = e.cost.length;
2663
+ if (I(e.cost, r, "cost"), I(e.lower, r, "lower"), I(e.upper, r, "upper"), e.matrix.format !== "csc") throw C("addCols requires a csc matrix");
2664
+ let i = te(e.matrix, n, r, "matrix");
2665
+ return D(B(function(n) {
2666
+ return _("Highs_addCols", 9)(t, r, n.doubles(e.cost), n.doubles(e.lower), n.doubles(e.upper), i, n.ints(Array.prototype.slice.call(e.matrix.starts, 0, -1)), n.ints(e.matrix.indices), n.doubles(e.matrix.values));
2667
+ }));
2668
+ }
2669
+ changeObjectiveSense(e) {
2670
+ if (e !== 1 && e !== -1) throw C("sense must be 1 or -1");
2671
+ return D(_("Highs_changeObjectiveSense", 2)(this._require(!1), e));
2672
+ }
2673
+ changeColIntegrality(e, t) {
2674
+ if (A(e, "column", 0), A(t, "integrality", 0), t > 4) throw C("integrality must be between 0 and 4");
2675
+ return D(_("Highs_changeColIntegrality", 3)(this._require(!1), e, t));
2676
+ }
2677
+ changeColCost(e, t) {
2678
+ return A(e, "column", 0), F(t, "cost"), D(_("Highs_changeColCost", 3)(this._require(!1), e, t));
2679
+ }
2680
+ changeRowBounds(e, t, n) {
2681
+ return A(e, "row", 0), F(t, "lower"), F(n, "upper"), D(_("Highs_changeRowBounds", 4)(this._require(!1), e, t, n));
2682
+ }
2683
+ changeColsIntegrality(e, t) {
2684
+ let n = q(this._require(!1)).numCols;
2685
+ return Y(this, "changeColsIntegrality", e, [], [t], n, "columns");
2686
+ }
2687
+ changeColsBounds(e, t, n) {
2688
+ let r = q(this._require(!1)).numCols;
2689
+ return Y(this, "changeColsBounds", e, [t, n], [], r, "columns");
2690
+ }
2691
+ deleteCols(e) {
2692
+ return ve(this, "Cols", e, q(this._require(!1)).numCols);
2693
+ }
2694
+ scaleCol(e, t) {
2695
+ return A(e, "column", 0), F(t, "factor"), D(_("Highs_scaleCol", 3)(this._require(!1), e, t));
2696
+ }
2697
+ getCols(e) {
2698
+ return X(this, "Cols", e);
2699
+ }
2700
+ getColName(e) {
2701
+ return ye(this, "Highs_js_getColName", e);
2702
+ }
2703
+ getPresolvedColName(e) {
2704
+ return ye(this, "Highs_js_getPresolvedColName", e);
2705
+ }
2706
+ getColByName(e) {
2707
+ return be(this, "Col", e);
2708
+ }
2709
+ getColIntegrality(e) {
2710
+ let t = this._require(!1);
2711
+ return A(e, "column", 0), B(function(n) {
2712
+ let r = n.outInts(1);
2713
+ return O(_("Highs_getColIntegrality", 3)(t, e, r), b()[r >> 2]);
2714
+ });
2715
+ }
2716
+ getPrimalRay() {
2717
+ return xe(this, "Highs_getPrimalRay", q(this._require(!1)).numCols);
2718
+ }
2719
+ getDualUnboundednessDirection() {
2720
+ return xe(this, "Highs_getDualUnboundednessDirection", q(this._require(!1)).numCols);
2721
+ }
2722
+ getBasisInverseRow(e, t) {
2723
+ return Se(this, "Highs_getBasisInverseRow", e, q(this._require(!1)).numRows, t);
2724
+ }
2725
+ getBasisSolve(e, t) {
2726
+ return Ce(this, "Highs_getBasisSolve", e, t);
2727
+ }
2728
+ getReducedRow(e, t) {
2729
+ let n = this._require(!1), r = q(n);
2730
+ return A(e, "row", 0), B(function(i) {
2731
+ let a = i.outDoubles(r.numCols), o = i.outInts(1), s = i.outInts(r.numCols), c = _("Highs_getReducedRow", 5)(n, e, a, o, s), l = { values: H(a, r.numCols) };
2732
+ return t && (l.nonzeroIndices = V(s, b()[o >> 2])), O(c, l);
2733
+ });
2734
+ }
2735
+ crossover(e) {
2736
+ let t = this._require(!1), n = q(t);
2737
+ if (!e || e.colValue == null) throw C("crossover requires colValue");
2738
+ if (I(e.colValue, n.numCols, "colValue"), e.colDual == null != (e.rowDual == null)) throw C("colDual and rowDual must be supplied together");
2739
+ return e.colDual && I(e.colDual, n.numCols, "colDual"), e.rowDual && I(e.rowDual, n.numRows, "rowDual"), D(B(function(r) {
2740
+ return _("Highs_crossover", 6)(t, n.numCols, n.numRows, r.doubles(e.colValue), e.colDual ? r.doubles(e.colDual) : 0, e.rowDual ? r.doubles(e.rowDual) : 0);
2741
+ }));
2742
+ }
2743
+ getRanging() {
2744
+ let e = this._require(!1), t = q(e);
2745
+ return B(function(n) {
2746
+ let r = we(n, t.numCols), i = we(n, t.numCols), a = we(n, t.numCols), o = we(n, t.numCols), s = we(n, t.numRows), c = we(n, t.numRows), l = [
2747
+ r,
2748
+ i,
2749
+ a,
2750
+ o,
2751
+ s,
2752
+ c
2753
+ ], u = [e];
2754
+ return l.forEach(function(e) {
2755
+ u.push(e.valuePointer, e.objectivePointer, e.inPointer, e.outPointer);
2756
+ }), O(_("Highs_getRanging", u.length).apply(null, u), {
2757
+ colCostUp: r.detach(),
2758
+ colCostDown: i.detach(),
2759
+ colBoundUp: a.detach(),
2760
+ colBoundDown: o.detach(),
2761
+ rowBoundUp: s.detach(),
2762
+ rowBoundDown: c.detach()
2763
+ });
2764
+ });
2765
+ }
2766
+ setCallback(e) {
2767
+ let t = this._require(!1);
2768
+ if (e != null && typeof e != "function") throw C("callback must be a function or undefined");
2769
+ let n = this._callbackId;
2770
+ if (!e) {
2771
+ let e = _("Highs_js_setCallback", 3)(t, 0, 0);
2772
+ return e !== -1 && (n && a.delete(n), this._callbackId = 0), D(e);
2773
+ }
2774
+ let r = c++;
2775
+ a.set(r, {
2776
+ raw: this,
2777
+ callback: e
2778
+ });
2779
+ let i = _("Highs_js_setCallback", 3)(t, Oe(), r);
2780
+ return i === -1 ? a.delete(r) : (n && a.delete(n), this._callbackId = r), D(i);
2781
+ }
2782
+ startCallback(e) {
2783
+ return ke(e), D(_("Highs_startCallback", 2)(this._require(!1), e));
2784
+ }
2785
+ dispose() {
2786
+ if (On(this, n, "f")) return;
2787
+ let e = this._require(!1);
2788
+ this._callbackId && a.delete(this._callbackId), o.delete(e), _("Highs_destroy", 1, null)(e), Dn(this, t, 0, "f"), Dn(this, n, !0, "f");
2789
+ }
2790
+ _simple(e) {
2791
+ return D(_(e, 1)(this._require(!1)));
2792
+ }
2793
+ clearModel() {
2794
+ return this._simple("Highs_clearModel");
2795
+ }
2796
+ releaseMemory() {
2797
+ return this._simple("Highs_releaseMemory");
2798
+ }
2799
+ zeroAllClocks() {
2800
+ return this._simple("Highs_zeroAllClocks");
2801
+ }
2802
+ run() {
2803
+ let e = this._require(!1);
2804
+ return this._callbackNumCols = q(e).numCols, D(_("Highs_run", 1)(e));
2805
+ }
2806
+ exportModel(e) {
2807
+ let t = this._require(!1);
2808
+ if (e !== "lp" && e !== "mps") throw C("format must be 'lp' or 'mps'");
2809
+ return U(e, e === "lp" ? "utf8" : void 0, function(e) {
2810
+ return v("Highs_writeModel", 1, 0)(t, e);
2811
+ });
2812
+ }
2813
+ exportSolution(e) {
2814
+ let t = this._require(!1);
2815
+ return U("sol", "utf8", function(n) {
2816
+ return v(e ? "Highs_writeSolutionPretty" : "Highs_writeSolution", 1, 0)(t, n);
2817
+ });
2818
+ }
2819
+ passLp(e) {
2820
+ let t = this._require(!1), n = B(function(n) {
2821
+ let i = ne(e), a = e.matrix, o = me(e, n, !1);
2822
+ return _("Highs_passLp", 15)(t, i.numCols, i.numRows, i.numNonzeros, r[a.format], i.sense, e.offset == null ? 0 : e.offset, ...o);
2823
+ }), i = n === -1 ? n : ge(t, e);
2824
+ return D(n === -1 || i === -1 ? -1 : Math.max(n, i));
2825
+ }
2826
+ passLinearObjectives(e) {
2827
+ let t = this._require(!1), n = q(t).numCols;
2828
+ return M(e, "objectives"), D(B(function(r) {
2829
+ let i = e.length, a = new Float64Array(i), o = new Float64Array(i), s = new Float64Array(i * n), c = new Float64Array(i), l = new Float64Array(i), u = new Int32Array(i);
2830
+ for (let t = 0; t < i; t++) {
2831
+ let r = e[t];
2832
+ ie(r, n, "objectives[" + t + "]"), a[t] = r.weight, o[t] = r.offset, s.set(r.coefficients, t * n), c[t] = r.absoluteTolerance, l[t] = r.relativeTolerance, u[t] = j(r.priority, "objectives[" + t + "].priority");
2833
+ }
2834
+ return _("Highs_passLinearObjectives", 8)(t, i, r.doubles(a), r.doubles(o), r.doubles(s), r.doubles(c), r.doubles(l), r.ints(u));
2835
+ }));
2836
+ }
2837
+ clearLinearObjectives() {
2838
+ return this._simple("Highs_clearLinearObjectives");
2839
+ }
2840
+ passColName(e, t) {
2841
+ let n = this._require(!1);
2842
+ if (A(e, "column", 0), typeof t != "string") throw C("name must be a string");
2843
+ return D(v("Highs_passColName", 2, 0)(n, e, t));
2844
+ }
2845
+ setOptionValue(e, t) {
2846
+ let n = this._require(!1);
2847
+ if (!ue(e)) return D(-1);
2848
+ let r = typeof t, i;
2849
+ if (r === "boolean") i = v("Highs_setBoolOptionValue", 1, 1)(n, e, +!!t);
2850
+ else if (r === "string") i = g("Highs_setStringOptionValue", "number", [
2851
+ "number",
2852
+ "string",
2853
+ "string"
2854
+ ])(n, e, t);
2855
+ else if (r === "number") {
2856
+ if (!Number.isFinite(t)) throw C("numeric option values must be finite");
2857
+ Number.isSafeInteger(t) && t >= -2147483648 && t <= 2147483647 ? (i = v("Highs_setIntOptionValue", 1, 1)(n, e, t), i === -1 && (i = v("Highs_setDoubleOptionValue", 1, 1)(n, e, t))) : i = v("Highs_setDoubleOptionValue", 1, 1)(n, e, t);
2858
+ } else throw C("option values must be boolean, number, or string");
2859
+ return D(i);
2860
+ }
2861
+ getOptionValue(e) {
2862
+ let t = this._require(!1);
2863
+ if (!ue(e)) return O(-1);
2864
+ let n = this.getOptionType(e);
2865
+ return n.status === -1 ? O(-1) : B(function(r) {
2866
+ if (n.value === "string") {
2867
+ let n = r.bytes(512);
2868
+ return O(v("Highs_getStringOptionValue", 1, 1)(t, e, n), S(n));
2869
+ }
2870
+ if (n.value === "double") {
2871
+ let n = r.outDoubles(1);
2872
+ return O(v("Highs_getDoubleOptionValue", 1, 1)(t, e, n), x()[n >> 3]);
2873
+ }
2874
+ let i = r.outInts(1), a = v(n.value === "boolean" ? "Highs_getBoolOptionValue" : "Highs_getIntOptionValue", 1, 1)(t, e, i), o = b()[i >> 2];
2875
+ return O(a, n.value === "boolean" ? !!o : o);
2876
+ });
2877
+ }
2878
+ readOptions(e) {
2879
+ let t = this._require(!1);
2880
+ if (typeof e != "string") throw C("option data must be a string");
2881
+ for (let t of e.split(/\r?\n/)) {
2882
+ let e = /^\s*([A-Za-z][A-Za-z0-9_]*)\b/.exec(t);
2883
+ if (e && !t.trimStart().startsWith("#") && !ue(e[1])) return D(-1);
2884
+ }
2885
+ return D(le(e, "options", function(e) {
2886
+ return v("Highs_readOptions", 1, 0)(t, e);
2887
+ }));
2888
+ }
2889
+ getNumOptions() {
2890
+ return _("Highs_getNumOptions", 1)(this._require(!1));
2891
+ }
2892
+ getOptionValues(e) {
2893
+ let t = this._require(!1);
2894
+ if (!ue(e)) return O(-1);
2895
+ let n = this.getOptionType(e);
2896
+ return n.status === -1 ? O(-1) : B(function(r) {
2897
+ let i = n.value;
2898
+ if (i === "boolean") {
2899
+ let n = r.outInts(1), a = r.outInts(1);
2900
+ return O(v("Highs_getBoolOptionValues", 1, 2)(t, e, n, a), {
2901
+ name: e,
2902
+ type: i,
2903
+ current: !!b()[n >> 2],
2904
+ default: !!b()[a >> 2]
2905
+ });
2906
+ }
2907
+ if (i === "integer") {
2908
+ let n = r.outInts(1), a = r.outInts(1), o = r.outInts(1), s = r.outInts(1);
2909
+ return O(v("Highs_getIntOptionValues", 1, 4)(t, e, n, a, o, s), {
2910
+ name: e,
2911
+ type: i,
2912
+ current: b()[n >> 2],
2913
+ default: b()[s >> 2],
2914
+ minimum: b()[a >> 2],
2915
+ maximum: b()[o >> 2]
2916
+ });
2917
+ }
2918
+ if (i === "double") {
2919
+ let n = r.outDoubles(1), a = r.outDoubles(1), o = r.outDoubles(1), s = r.outDoubles(1);
2920
+ return O(v("Highs_getDoubleOptionValues", 1, 4)(t, e, n, a, o, s), {
2921
+ name: e,
2922
+ type: i,
2923
+ current: x()[n >> 3],
2924
+ default: x()[s >> 3],
2925
+ minimum: x()[a >> 3],
2926
+ maximum: x()[o >> 3]
2927
+ });
2928
+ }
2929
+ let a = r.bytes(512), o = r.bytes(512);
2930
+ return O(v("Highs_getStringOptionValues", 1, 2)(t, e, a, o), {
2931
+ name: e,
2932
+ type: i,
2933
+ current: S(a),
2934
+ default: S(o)
2935
+ });
2936
+ });
2937
+ }
2938
+ getInfoValue(e) {
2939
+ let t = this._require(!1), n = this.getInfoType(e);
2940
+ return n.status === -1 ? O(-1) : B(function(r) {
2941
+ if (n.value === "double") {
2942
+ let n = r.outDoubles(1);
2943
+ return O(v("Highs_getDoubleInfoValue", 1, 1)(t, e, n), x()[n >> 3]);
2944
+ }
2945
+ if (n.value === "int64") {
2946
+ let n = r.bytes(8);
2947
+ return O(v("Highs_getInt64InfoValue", 1, 1)(t, e, n), oe(n));
2948
+ }
2949
+ let i = r.outInts(1);
2950
+ return O(v("Highs_getIntInfoValue", 1, 1)(t, e, i), b()[i >> 2]);
2951
+ });
2952
+ }
2953
+ getPresolvedDimensions() {
2954
+ return fe(this._require(!1));
2955
+ }
2956
+ getSizeofHighsInt() {
2957
+ return _("Highs_getSizeofHighsInt", 1)(this._require(!1));
2958
+ }
2959
+ getObjectiveValue() {
2960
+ return _("Highs_getObjectiveValue", 1)(this._require(!1));
2961
+ }
2962
+ getBasis() {
2963
+ let e = this._require(!1), t = this.getModelStatus();
2964
+ if (t === 0 || t === 6) throw new d("The model has not been solved", "getBasis");
2965
+ let n = q(e);
2966
+ return B(function(t) {
2967
+ let r = t.outInts(n.numCols), i = t.outInts(n.numRows);
2968
+ return O(_("Highs_getBasis", 3)(e, r, i), {
2969
+ colStatus: V(r, n.numCols),
2970
+ rowStatus: V(i, n.numRows)
2971
+ });
2972
+ });
2973
+ }
2974
+ setSparseSolution(e) {
2975
+ let t = this._require(!1);
2976
+ if (!e) throw C("solution is required");
2977
+ let n = e.indices.length;
2978
+ return L(e.indices, null, "indices", q(t).numCols), I(e.values, n, "values"), D(B(function(r) {
2979
+ return _("Highs_setSparseSolution", 4)(t, n, r.ints(e.indices), r.doubles(e.values));
2980
+ }));
2981
+ }
2982
+ setLogicalBasis() {
2983
+ return this._simple("Highs_setLogicalBasis");
2984
+ }
2985
+ getObjectiveSense() {
2986
+ let e = this._require(!1);
2987
+ return B(function(t) {
2988
+ let n = t.outInts(1);
2989
+ return O(_("Highs_getObjectiveSense", 2)(e, n), b()[n >> 2]);
2990
+ });
2991
+ }
2992
+ getLp(e) {
2993
+ return J(this, "Highs_getLp", e, !1);
2994
+ }
2995
+ getIisLp(e) {
2996
+ return J(this, "Highs_getIisLp", e, !1);
2997
+ }
2998
+ ensureColwise() {
2999
+ return this._simple("Highs_ensureColwise");
3000
+ }
3001
+ addVar(e, t) {
3002
+ return F(e, "lower"), F(t, "upper"), D(_("Highs_addVar", 3)(this._require(!1), e, t));
3003
+ }
3004
+ addRow(e, t, n) {
3005
+ let r = this._require(!1);
3006
+ return F(e, "lower"), F(t, "upper"), _e(n, q(r).numCols), D(B(function(i) {
3007
+ return _("Highs_addRow", 6)(r, e, t, n.indices.length, i.ints(n.indices), i.doubles(n.values));
3008
+ }));
3009
+ }
3010
+ addRows(e) {
3011
+ let t = this._require(!1), n = q(t).numCols;
3012
+ if (!e || !e.matrix) throw C("row data and matrix are required");
3013
+ let r = e.lower.length;
3014
+ if (I(e.lower, r, "lower"), I(e.upper, r, "upper"), e.matrix.format !== "csr") throw C("addRows requires a csr matrix");
3015
+ let i = te(e.matrix, r, n, "matrix");
3016
+ return D(B(function(n) {
3017
+ return _("Highs_addRows", 8)(t, r, n.doubles(e.lower), n.doubles(e.upper), i, n.ints(Array.prototype.slice.call(e.matrix.starts, 0, -1)), n.ints(e.matrix.indices), n.doubles(e.matrix.values));
3018
+ }));
3019
+ }
3020
+ changeObjectiveOffset(e) {
3021
+ return F(e, "offset"), D(_("Highs_changeObjectiveOffset", 2)(this._require(!1), e));
3022
+ }
3023
+ clearIntegrality() {
3024
+ return this._simple("Highs_clearIntegrality");
3025
+ }
3026
+ changeColBounds(e, t, n) {
3027
+ return A(e, "column", 0), F(t, "lower"), F(n, "upper"), D(_("Highs_changeColBounds", 4)(this._require(!1), e, t, n));
3028
+ }
3029
+ changeCoeff(e, t, n) {
3030
+ return A(e, "row", 0), A(t, "column", 0), F(n, "value"), D(_("Highs_changeCoeff", 4)(this._require(!1), e, t, n));
3031
+ }
3032
+ changeColsCost(e, t) {
3033
+ let n = q(this._require(!1)).numCols;
3034
+ return Y(this, "changeColsCost", e, [t], [], n, "columns");
3035
+ }
3036
+ changeRowsBounds(e, t, n) {
3037
+ let r = q(this._require(!1)).numRows;
3038
+ return Y(this, "changeRowsBounds", e, [t, n], [], r, "rows");
3039
+ }
3040
+ deleteRows(e) {
3041
+ return ve(this, "Rows", e, q(this._require(!1)).numRows);
3042
+ }
3043
+ scaleRow(e, t) {
3044
+ return A(e, "row", 0), F(t, "factor"), D(_("Highs_scaleRow", 3)(this._require(!1), e, t));
3045
+ }
3046
+ getRows(e) {
3047
+ return X(this, "Rows", e);
3048
+ }
3049
+ getRowName(e) {
3050
+ return ye(this, "Highs_js_getRowName", e);
3051
+ }
3052
+ getPresolvedRowName(e) {
3053
+ return ye(this, "Highs_js_getPresolvedRowName", e);
3054
+ }
3055
+ getRowByName(e) {
3056
+ return be(this, "Row", e);
3057
+ }
3058
+ getDualRay() {
3059
+ return xe(this, "Highs_getDualRay", q(this._require(!1)).numRows);
3060
+ }
3061
+ getBasicVariables() {
3062
+ let e = this._require(!1), t = q(e).numRows;
3063
+ return B(function(n) {
3064
+ let r = n.outInts(t);
3065
+ return O(_("Highs_getBasicVariables", 2)(e, r), V(r, t));
3066
+ });
3067
+ }
3068
+ getBasisInverseCol(e, t) {
3069
+ return Se(this, "Highs_getBasisInverseCol", e, q(this._require(!1)).numRows, t);
3070
+ }
3071
+ getBasisTransposeSolve(e, t) {
3072
+ return Ce(this, "Highs_getBasisTransposeSolve", e, t);
3073
+ }
3074
+ getReducedColumn(e, t) {
3075
+ return Se(this, "Highs_getReducedColumn", e, q(this._require(!1)).numRows, t);
3076
+ }
3077
+ feasibilityRelaxation(e) {
3078
+ let t = this._require(!1), n = q(t);
3079
+ if (!e) throw C("relaxation input is required");
3080
+ return F(e.globalLowerPenalty, "globalLowerPenalty"), F(e.globalUpperPenalty, "globalUpperPenalty"), F(e.globalRowPenalty, "globalRowPenalty"), D(B(function(r) {
3081
+ function i(e, t, n) {
3082
+ return e == null ? 0 : (I(e, t, n), r.doubles(e));
3083
+ }
3084
+ return _("Highs_feasibilityRelaxation", 7)(t, e.globalLowerPenalty, e.globalUpperPenalty, e.globalRowPenalty, i(e.localLowerPenalty, n.numCols, "localLowerPenalty"), i(e.localUpperPenalty, n.numCols, "localUpperPenalty"), i(e.localRowPenalty, n.numRows, "localRowPenalty"));
3085
+ }));
3086
+ }
3087
+ getIis() {
3088
+ let e = this._require(!1), t = q(e);
3089
+ return B(function(n) {
3090
+ let r = n.outInts(1), i = n.outInts(1), a = n.outInts(t.numCols), o = n.outInts(t.numRows), s = n.outInts(t.numCols), c = n.outInts(t.numRows), l = n.outInts(t.numCols), u = n.outInts(t.numRows), d = _("Highs_getIis", 9)(e, r, i, a, o, s, c, l, u);
3091
+ if (d === -1) return O(d);
3092
+ let f = b()[r >> 2], p = b()[i >> 2];
3093
+ if (f < 0 || f > t.numCols || p < 0 || p > t.numRows) throw RangeError("HiGHS returned invalid IIS dimensions");
3094
+ return O(d, {
3095
+ colIndex: V(a, f),
3096
+ rowIndex: V(o, p),
3097
+ colBound: V(s, f),
3098
+ rowBound: V(c, p),
3099
+ colStatus: V(l, t.numCols),
3100
+ rowStatus: V(u, t.numRows)
3101
+ });
3102
+ });
3103
+ }
3104
+ stopCallback(e) {
3105
+ return ke(e), D(_("Highs_stopCallback", 2)(this._require(!1), e));
3106
+ }
3107
+ }
3108
+ t = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap();
3109
+ function me(e, t, n) {
3110
+ let r = e.matrix;
3111
+ return t.pack([
3112
+ {
3113
+ type: "f64",
3114
+ values: e.colCost
3115
+ },
3116
+ {
3117
+ type: "f64",
3118
+ values: e.colLower
3119
+ },
3120
+ {
3121
+ type: "f64",
3122
+ values: e.colUpper
3123
+ },
3124
+ {
3125
+ type: "f64",
3126
+ values: e.rowLower
3127
+ },
3128
+ {
3129
+ type: "f64",
3130
+ values: e.rowUpper
3131
+ },
3132
+ {
3133
+ type: "i32",
3134
+ values: Array.prototype.slice.call(r.starts, 0, -1)
3135
+ },
3136
+ {
3137
+ type: "i32",
3138
+ values: r.indices
3139
+ },
3140
+ {
3141
+ type: "f64",
3142
+ values: r.values
3143
+ },
3144
+ ...n ? [{
3145
+ type: "i32",
3146
+ values: e.integrality
3147
+ }] : []
3148
+ ]);
3149
+ }
3150
+ function he(e, t) {
3151
+ let n = ne(e), a = e.matrix, o = e.hessian, s = t.pack([
3152
+ {
3153
+ type: "f64",
3154
+ values: e.colCost
3155
+ },
3156
+ {
3157
+ type: "f64",
3158
+ values: e.colLower
3159
+ },
3160
+ {
3161
+ type: "f64",
3162
+ values: e.colUpper
3163
+ },
3164
+ {
3165
+ type: "f64",
3166
+ values: e.rowLower
3167
+ },
3168
+ {
3169
+ type: "f64",
3170
+ values: e.rowUpper
3171
+ },
3172
+ {
3173
+ type: "i32",
3174
+ values: Array.prototype.slice.call(a.starts, 0, -1)
3175
+ },
3176
+ {
3177
+ type: "i32",
3178
+ values: a.indices
3179
+ },
3180
+ {
3181
+ type: "f64",
3182
+ values: a.values
3183
+ },
3184
+ ...o ? [
3185
+ {
3186
+ type: "i32",
3187
+ values: Array.prototype.slice.call(o.starts, 0, -1)
3188
+ },
3189
+ {
3190
+ type: "i32",
3191
+ values: o.indices
3192
+ },
3193
+ {
3194
+ type: "f64",
3195
+ values: o.values
3196
+ }
3197
+ ] : [],
3198
+ ...e.integrality ? [{
3199
+ type: "i32",
3200
+ values: e.integrality
3201
+ }] : []
3202
+ ]), c = 0, l = s[c++], u = s[c++], d = s[c++], f = s[c++], p = s[c++], m = s[c++], h = s[c++], g = s[c++], _ = o ? s[c++] : 0, v = o ? s[c++] : 0, y = o ? s[c++] : 0, b = e.integrality ? s[c] : 0;
3203
+ return {
3204
+ shape: n,
3205
+ values: [
3206
+ n.numCols,
3207
+ n.numRows,
3208
+ n.numNonzeros,
3209
+ n.hessianNonzeros,
3210
+ r[a.format],
3211
+ o ? i[o.format] : 1,
3212
+ n.sense,
3213
+ e.offset == null ? 0 : e.offset,
3214
+ l,
3215
+ u,
3216
+ d,
3217
+ f,
3218
+ p,
3219
+ m,
3220
+ h,
3221
+ g,
3222
+ _,
3223
+ v,
3224
+ y,
3225
+ b
3226
+ ]
3227
+ };
3228
+ }
3229
+ function ge(e, t) {
3230
+ let n = 0;
3231
+ if (t.modelName != null && (n = Math.max(n, v("Highs_passModelName", 1, 0)(e, String(t.modelName)))), t.colNames != null) {
3232
+ N(t.colNames, t.numCols, "colNames");
3233
+ for (let r = 0; r < t.colNames.length; r++) {
3234
+ let i = v("Highs_passColName", 2, 0)(e, r, String(t.colNames[r]));
3235
+ if (i === -1) return i;
3236
+ n = Math.max(n, i);
3237
+ }
3238
+ }
3239
+ if (t.rowNames != null) {
3240
+ N(t.rowNames, t.numRows, "rowNames");
3241
+ for (let r = 0; r < t.rowNames.length; r++) {
3242
+ let i = v("Highs_passRowName", 2, 0)(e, r, String(t.rowNames[r]));
3243
+ if (i === -1) return i;
3244
+ n = Math.max(n, i);
3245
+ }
3246
+ }
3247
+ return n;
3248
+ }
3249
+ function J(e, t, n, i) {
3250
+ let a = e._require(!1), o = t !== "Highs_getFixedLp", s = n ?? "csc";
3251
+ if (!(s in r)) throw C("format must be 'csc' or 'csr'");
3252
+ let c = t === "Highs_getModel" || t === "Highs_getLp" ? q(a) : t === "Highs_getPresolvedLp" ? fe(a) : t === "Highs_getFixedLp" ? q(a) : void 0;
3253
+ return B(function(e) {
3254
+ let n = e.outInts(1), l = e.outInts(1), u = e.outInts(1), d = i ? e.outInts(1) : 0, f = e.outInts(1), p = e.outDoubles(1), m = i ? 21 : o ? 16 : 15, h = 0, g = c?.numCols ?? 0, v = c?.numRows ?? 0, y = c?.numNonzeros ?? 0, S = i ? c?.hessianNonzeros ?? 0 : 0;
3255
+ if (!c) {
3256
+ let e = i ? [
3257
+ a,
3258
+ r[s],
3259
+ 1,
3260
+ n,
3261
+ l,
3262
+ u,
3263
+ d,
3264
+ f,
3265
+ p
3266
+ ] : [
3267
+ a,
3268
+ r[s],
3269
+ n,
3270
+ l,
3271
+ u,
3272
+ f,
3273
+ p
3274
+ ], c = i ? Array(12).fill(0) : Array(o ? 9 : 8).fill(0);
3275
+ if (h = _(t, m).apply(null, e.concat(c)), h === -1) return O(h);
3276
+ g = b()[n >> 2], v = b()[l >> 2], y = b()[u >> 2], S = i ? b()[d >> 2] : 0;
3277
+ }
3278
+ let C = s === "csc" ? g : v, w = e.outDoubles(g), T = e.outDoubles(g), E = e.outDoubles(g), ee = e.outDoubles(v), D = e.outDoubles(v), k = e.outInts(C), A = e.outInts(y), j = e.outDoubles(y), M = o ? e.outInts(g) : 0, N = i ? e.outInts(g) : 0, P = i ? e.outInts(S) : 0, F = i ? e.outDoubles(S) : 0, I = i ? [
3279
+ a,
3280
+ r[s],
3281
+ 1,
3282
+ n,
3283
+ l,
3284
+ u,
3285
+ d,
3286
+ f,
3287
+ p,
3288
+ w,
3289
+ T,
3290
+ E,
3291
+ ee,
3292
+ D,
3293
+ k,
3294
+ A,
3295
+ j,
3296
+ N,
3297
+ P,
3298
+ F,
3299
+ M
3300
+ ] : [
3301
+ a,
3302
+ r[s],
3303
+ n,
3304
+ l,
3305
+ u,
3306
+ f,
3307
+ p,
3308
+ w,
3309
+ T,
3310
+ E,
3311
+ ee,
3312
+ D,
3313
+ k,
3314
+ A,
3315
+ j
3316
+ ].concat(o ? [M] : []);
3317
+ if (h = _(t, m).apply(null, I), h === -1) return O(h);
3318
+ let L = new Int32Array(C + 1);
3319
+ L.set(V(k, C)), L[C] = y;
3320
+ let R = {
3321
+ numCols: g,
3322
+ numRows: v,
3323
+ sense: b()[f >> 2],
3324
+ offset: x()[p >> 3],
3325
+ colCost: H(w, g),
3326
+ colLower: H(T, g),
3327
+ colUpper: H(E, g),
3328
+ rowLower: H(ee, v),
3329
+ rowUpper: H(D, v),
3330
+ matrix: {
3331
+ format: s,
3332
+ numRows: v,
3333
+ numCols: g,
3334
+ starts: L,
3335
+ indices: V(A, y),
3336
+ values: H(j, y)
3337
+ },
3338
+ integrality: o ? V(M, g) : new Int32Array(g)
3339
+ };
3340
+ if (i && S) {
3341
+ let e = new Int32Array(g + 1);
3342
+ e.set(V(N, g)), e[g] = S, R.hessian = {
3343
+ format: "triangular",
3344
+ dimension: g,
3345
+ starts: e,
3346
+ indices: V(P, S),
3347
+ values: H(F, S)
3348
+ };
3349
+ }
3350
+ return O(h, R);
3351
+ });
3352
+ }
3353
+ function _e(e, t) {
3354
+ if (!e) throw C("entries are required");
3355
+ L(e.indices, null, "entries.indices", t), I(e.values, e.indices.length, "entries.values");
3356
+ }
3357
+ function Y(e, t, n, r, i, a, o) {
3358
+ let s = e._require(!1);
3359
+ return D(B(function(e) {
3360
+ let c = K(n, a, e, o), l = c.suffix === "ByMask" ? a : c.count, u = r.map(function(t, n) {
3361
+ return I(t, l, o + " values " + n), e.doubles(t);
3362
+ }), d = i.map(function(t, n) {
3363
+ return L(t, l, o + " integer values " + n), e.ints(t);
3364
+ }), f = [s].concat(c.prefix, u, d);
3365
+ return _("Highs_" + t + c.suffix, f.length).apply(null, f);
3366
+ }));
3367
+ }
3368
+ function ve(e, t, n, r) {
3369
+ let i = e._require(!1);
3370
+ return D(B(function(e) {
3371
+ let a = K(n, r, e, t.toLowerCase()), o = [i].concat(a.prefix);
3372
+ return _("Highs_delete" + t + a.suffix, o.length).apply(null, o);
3373
+ }));
3374
+ }
3375
+ function X(e, t, n) {
3376
+ let r = e._require(!1), i = q(r), a = t === "Cols", o = a ? i.numCols : i.numRows;
3377
+ return B(function(e) {
3378
+ let s = K(n, o, e, t.toLowerCase()), c = e.outInts(1), l = e.outInts(1), u = a ? 3 : 2, d = [r].concat(s.prefix, [c], Array(u).fill(0), [
3379
+ l,
3380
+ 0,
3381
+ 0,
3382
+ 0
3383
+ ]), f = "Highs_get" + t + s.suffix, p = _(f, d.length).apply(null, d);
3384
+ if (p === -1) return O(p);
3385
+ let m = b()[c >> 2], h = b()[l >> 2], g = a ? e.outDoubles(m) : 0, v = e.outDoubles(m), y = e.outDoubles(m), x = e.outInts(m), S = e.outInts(h), C = e.outDoubles(h), w = [r].concat(s.prefix, [c], a ? [
3386
+ g,
3387
+ v,
3388
+ y
3389
+ ] : [v, y], [
3390
+ l,
3391
+ x,
3392
+ S,
3393
+ C
3394
+ ]);
3395
+ if (p = _(f, w.length).apply(null, w), p === -1) return O(p);
3396
+ let T = new Int32Array(m + 1);
3397
+ T.set(V(x, m)), T[m] = h;
3398
+ let E = {
3399
+ format: a ? "csc" : "csr",
3400
+ numRows: a ? i.numRows : m,
3401
+ numCols: a ? m : i.numCols,
3402
+ starts: T,
3403
+ indices: V(S, h),
3404
+ values: H(C, h)
3405
+ };
3406
+ return O(p, a ? {
3407
+ count: m,
3408
+ cost: H(g, m),
3409
+ lower: H(v, m),
3410
+ upper: H(y, m),
3411
+ matrix: E
3412
+ } : {
3413
+ count: m,
3414
+ lower: H(v, m),
3415
+ upper: H(y, m),
3416
+ matrix: E
3417
+ });
3418
+ });
3419
+ }
3420
+ function ye(e, t, n) {
3421
+ let r = e._require(!1);
3422
+ return A(n, "index", 0), B(function(e) {
3423
+ let i = e.outInts(1), a = _(t, 5)(r, n, 0, 0, i);
3424
+ if (a === -1) return O(a);
3425
+ let o = b()[i >> 2];
3426
+ if (o <= 0) return O(a, "");
3427
+ let s = e.bytes(o);
3428
+ return a = _(t, 5)(r, n, s, o, i), O(a, S(s));
3429
+ });
3430
+ }
3431
+ function be(e, t, n) {
3432
+ let r = e._require(!1);
3433
+ if (typeof n != "string") throw C("name must be a string");
3434
+ return B(function(e) {
3435
+ let i = e.outInts(1);
3436
+ return O(v("Highs_get" + t + "ByName", 1, 1)(r, n, i), b()[i >> 2]);
3437
+ });
3438
+ }
3439
+ function xe(e, t, n) {
3440
+ let r = e._require(!1);
3441
+ return B(function(e) {
3442
+ let i = e.outInts(1), a = e.outDoubles(n);
3443
+ return O(_(t, 3)(r, i, a), b()[i >> 2] ? { values: H(a, n) } : void 0);
3444
+ });
3445
+ }
3446
+ function Se(e, t, n, r, i) {
3447
+ let a = e._require(!1);
3448
+ return B(function(e) {
3449
+ let o = e.outDoubles(r), s = e.outInts(1), c = e.outInts(r);
3450
+ if (n == null) throw C("an index is required");
3451
+ A(n, "index", 0);
3452
+ let l = [
3453
+ a,
3454
+ n,
3455
+ o,
3456
+ s,
3457
+ c
3458
+ ], u = _(t, l.length).apply(null, l), d = { values: H(o, r) };
3459
+ return i && (d.nonzeroIndices = V(c, b()[s >> 2])), O(u, d);
3460
+ });
3461
+ }
3462
+ function Ce(e, t, n, r) {
3463
+ let i = e._require(!1), a = q(i).numRows;
3464
+ return I(n, a, "rhs"), B(function(e) {
3465
+ let o = e.outDoubles(a), s = e.outInts(1), c = e.outInts(a), l = _(t, 5)(i, e.doubles(n), o, s, c), u = { values: H(o, a) };
3466
+ return r && (u.nonzeroIndices = V(c, b()[s >> 2])), O(l, u);
3467
+ });
3468
+ }
3469
+ function we(e, t) {
3470
+ return {
3471
+ valuePointer: e.outDoubles(t),
3472
+ objectivePointer: e.outDoubles(t),
3473
+ inPointer: e.outInts(t),
3474
+ outPointer: e.outInts(t),
3475
+ detach: function() {
3476
+ return {
3477
+ value: H(this.valuePointer, t),
3478
+ objective: H(this.objectivePointer, t),
3479
+ inVariable: V(this.inPointer, t),
3480
+ outVariable: V(this.outPointer, t)
3481
+ };
3482
+ }
3483
+ };
3484
+ }
3485
+ function Z(e, t) {
3486
+ return v("Highs_getCallbackDataOutItem", 1, 0)(e, t);
3487
+ }
3488
+ function Te(e, t, n) {
3489
+ let r = Z(e, t);
3490
+ if (r) return n === "double" ? x()[r >> 3] : n === "int64" ? oe(r) : b()[r >> 2];
3491
+ }
3492
+ let Ee = [
3493
+ ["running_time", "double"],
3494
+ ["objective_function_value", "double"],
3495
+ ["mip_node_count", "int64"],
3496
+ ["mip_total_lp_iterations", "int64"],
3497
+ ["mip_primal_bound", "double"],
3498
+ ["mip_dual_bound", "double"],
3499
+ ["mip_gap", "double"]
3500
+ ];
3501
+ function De(e, t, n, r, i) {
3502
+ let o = a.get(i);
3503
+ if (!o) return;
3504
+ let s = o.raw, c = o.callback, l = !0;
3505
+ function u() {
3506
+ if (!l) throw C("callback controls expire when the callback returns");
3507
+ }
3508
+ s._callbackDepth += 1;
3509
+ try {
3510
+ let i = { numCols: s._callbackNumCols }, a = {};
3511
+ if ((e === 0 ? [["log_type", "int"]] : e === 1 ? [["simplex_iteration_count", "int"]] : e === 2 ? [["ipm_iteration_count", "int"]] : e >= 3 && e <= 9 ? Ee : []).forEach(function(e) {
3512
+ let t = Te(n, e[0], e[1]);
3513
+ t !== void 0 && (a[e[0]] = t);
3514
+ }), e === 3 || e === 4) {
3515
+ let e = Z(n, "mip_solution"), t = _("Highs_js_getCallbackMipSolutionSize", 1)(n);
3516
+ if (t < 0) throw RangeError("HiGHS returned an invalid MIP solution size");
3517
+ if (e) a.mip_solution = H(e, t);
3518
+ else if (t) throw RangeError("HiGHS returned a null MIP solution");
3519
+ }
3520
+ if (e === 7) {
3521
+ let e = Te(n, "cutpool_num_cut", "int"), t = Te(n, "cutpool_num_nz", "int"), r = Te(n, "cutpool_num_col", "int");
3522
+ if (typeof e == "number" && typeof t == "number" && typeof r == "number" && e >= 0 && t >= 0) {
3523
+ let i = Z(n, "cutpool_start"), o = Z(n, "cutpool_index"), s = Z(n, "cutpool_value"), c = Z(n, "cutpool_lower"), l = Z(n, "cutpool_upper");
3524
+ i && o && s && c && l && (a.cut_pool = {
3525
+ numCols: r,
3526
+ numCuts: e,
3527
+ starts: V(i, e + 1),
3528
+ indices: V(o, t),
3529
+ values: H(s, t),
3530
+ lower: H(c, e),
3531
+ upper: H(l, e)
3532
+ });
3533
+ }
3534
+ }
3535
+ let o = {
3536
+ type: e,
3537
+ message: S(t),
3538
+ data: a
3539
+ };
3540
+ e === 9 ? (o.setSolution = function(e) {
3541
+ u();
3542
+ try {
3543
+ return e && e.indices ? (L(e.indices, null, "indices", i.numCols), I(e.values, e.indices.length, "values"), D(B(function(t) {
3544
+ return _("Highs_setCallbackSparseSolution", 4)(r, e.indices.length, t.ints(e.indices), t.doubles(e.values));
3545
+ }))) : (I(e, i.numCols, "solution"), D(B(function(t) {
3546
+ return _("Highs_setCallbackSolution", 3)(r, i.numCols, t.doubles(e));
3547
+ })));
3548
+ } catch (e) {
3549
+ return s._rememberCallbackError(e), D(-1);
3550
+ }
3551
+ }, o.repairSolution = function() {
3552
+ return u(), D(_("Highs_repairCallbackSolution", 1)(r));
3553
+ }) : (e === 1 || e === 2 || e === 6) && (o.interrupt = function() {
3554
+ u(), b()[r >> 2] = 1;
3555
+ });
3556
+ let l = c(o);
3557
+ if (l && (typeof l == "object" || typeof l == "function") && typeof l.then == "function") throw Promise.resolve(l).catch(function() {}), C("callbacks must be synchronous and return undefined");
3558
+ } catch (t) {
3559
+ s._rememberCallbackError(t), (e === 1 || e === 2 || e === 6) && r && (b()[r >> 2] = 1);
3560
+ } finally {
3561
+ l = !1, --s._callbackDepth;
3562
+ }
3563
+ }
3564
+ function Oe() {
3565
+ return u ||= Rt(De, "viiiii"), u;
3566
+ }
3567
+ function ke(e) {
3568
+ if (A(e, "callback type", 0), e === 8 || e > 9) throw C("callback type must be one of 0..7 or 9");
3569
+ }
3570
+ function Ae(e, t, n = void 0) {
3571
+ if (e.status === -1) throw T(t);
3572
+ return n && n._setLast(e.status, t), e.value;
3573
+ }
3574
+ class je {
3575
+ constructor(e) {
3576
+ this.raw = e, this.lastCall = {
3577
+ status: 0,
3578
+ warnings: []
3579
+ }, this.options = new Me(this), this.info = new Ne(this);
3580
+ }
3581
+ get disposed() {
3582
+ return this.raw.disposed;
3583
+ }
3584
+ _setLast(e, t) {
3585
+ return this.lastCall = k(e, t), this.lastCall;
3586
+ }
3587
+ _value(e, t = []) {
3588
+ return Ae(this.raw[e].apply(this.raw, t || []), e, this);
3589
+ }
3590
+ exportModel(e) {
3591
+ return this._value("exportModel", [e]);
3592
+ }
3593
+ exportSolution(e) {
3594
+ return this._value("exportSolution", [e]);
3595
+ }
3596
+ getPresolvedDimensions() {
3597
+ return this.raw.getPresolvedDimensions();
3598
+ }
3599
+ getModelStatus() {
3600
+ return this.raw.getModelStatus();
3601
+ }
3602
+ setSolution(e) {
3603
+ if (e == null) throw C("solution is required");
3604
+ return this._status(e.indices ? "setSparseSolution" : "setSolution", [e]);
3605
+ }
3606
+ setLogicalBasis() {
3607
+ return this._status("setLogicalBasis");
3608
+ }
3609
+ dispose() {
3610
+ this.raw.dispose();
3611
+ }
3612
+ _status(e, t = []) {
3613
+ let n = this.raw[e].apply(this.raw, t || []);
3614
+ return this._setLast(n.status, e);
3615
+ }
3616
+ exportPresolvedModel(e) {
3617
+ return this._value("exportPresolvedModel", [e]);
3618
+ }
3619
+ getDimensions() {
3620
+ return this.raw.getDimensions();
3621
+ }
3622
+ getRunTime() {
3623
+ return this.raw.getRunTime();
3624
+ }
3625
+ getObjectiveValue() {
3626
+ return this.raw.getObjectiveValue();
3627
+ }
3628
+ getObjectiveSense() {
3629
+ return this._value("getObjectiveSense");
3630
+ }
3631
+ getObjectiveOffset() {
3632
+ return this._value("getObjectiveOffset");
3633
+ }
3634
+ setBasis(e) {
3635
+ return e == null ? this._status("setLogicalBasis") : this._status("setBasis", [e]);
3636
+ }
3637
+ run(e) {
3638
+ let t = this.raw, n = [], r = !1;
3639
+ try {
3640
+ if (e && Object.keys(e).length) {
3641
+ if (t._callbackId) throw C("run callbacks cannot replace a callback registered through model.raw");
3642
+ if (t.setCallback(function(t) {
3643
+ let n = e[t.type];
3644
+ if (n) return n(t);
3645
+ }).status === -1) throw T("setCallback");
3646
+ r = !0, Object.keys(e).forEach(function(e) {
3647
+ let r = Number(e);
3648
+ if (ke(r), t.startCallback(r).status === -1) throw T("startCallback");
3649
+ n.push(r);
3650
+ });
3651
+ }
3652
+ let i = t.run(), a = this._setLast(i.status, "run");
3653
+ return {
3654
+ status: a.status,
3655
+ warnings: a.warnings,
3656
+ modelStatus: t.getModelStatus()
3657
+ };
3658
+ } finally {
3659
+ try {
3660
+ for (let e = 0; e < n.length; e++) t.stopCallback(n[e]);
3661
+ } finally {
3662
+ r && t.setCallback(void 0);
3663
+ }
3664
+ }
3665
+ }
3666
+ clear(...e) {
3667
+ return this._status("clear", e);
3668
+ }
3669
+ clearModel(...e) {
3670
+ return this._status("clearModel", e);
3671
+ }
3672
+ clearSolver(...e) {
3673
+ return this._status("clearSolver", e);
3674
+ }
3675
+ releaseMemory(...e) {
3676
+ return this._status("releaseMemory", e);
3677
+ }
3678
+ readModel(...e) {
3679
+ return this._status("readModel", e);
3680
+ }
3681
+ passModel(...e) {
3682
+ return this._status("passModel", e);
3683
+ }
3684
+ passHessian(...e) {
3685
+ return this._status("passHessian", e);
3686
+ }
3687
+ passLinearObjectives(...e) {
3688
+ return this._status("passLinearObjectives", e);
3689
+ }
3690
+ addLinearObjective(...e) {
3691
+ return this._status("addLinearObjective", e);
3692
+ }
3693
+ clearLinearObjectives(...e) {
3694
+ return this._status("clearLinearObjectives", e);
3695
+ }
3696
+ presolve(...e) {
3697
+ return this._status("presolve", e);
3698
+ }
3699
+ postsolve(...e) {
3700
+ return this._status("postsolve", e);
3701
+ }
3702
+ zeroAllClocks(...e) {
3703
+ return this._status("zeroAllClocks", e);
3704
+ }
3705
+ addVar(...e) {
3706
+ return this._status("addVar", e);
3707
+ }
3708
+ addVars(...e) {
3709
+ return this._status("addVars", e);
3710
+ }
3711
+ addCol(...e) {
3712
+ return this._status("addCol", e);
3713
+ }
3714
+ addCols(...e) {
3715
+ return this._status("addCols", e);
3716
+ }
3717
+ addRow(...e) {
3718
+ return this._status("addRow", e);
3719
+ }
3720
+ addRows(...e) {
3721
+ return this._status("addRows", e);
3722
+ }
3723
+ ensureColwise(...e) {
3724
+ return this._status("ensureColwise", e);
3725
+ }
3726
+ ensureRowwise(...e) {
3727
+ return this._status("ensureRowwise", e);
3728
+ }
3729
+ changeObjectiveSense(...e) {
3730
+ return this._status("changeObjectiveSense", e);
3731
+ }
3732
+ changeObjectiveOffset(...e) {
3733
+ return this._status("changeObjectiveOffset", e);
3734
+ }
3735
+ changeColIntegrality(...e) {
3736
+ return this._status("changeColIntegrality", e);
3737
+ }
3738
+ changeColsIntegrality(...e) {
3739
+ return this._status("changeColsIntegrality", e);
3740
+ }
3741
+ clearIntegrality(...e) {
3742
+ return this._status("clearIntegrality", e);
3743
+ }
3744
+ changeColCost(...e) {
3745
+ return this._status("changeColCost", e);
3746
+ }
3747
+ changeColsCost(...e) {
3748
+ return this._status("changeColsCost", e);
3749
+ }
3750
+ changeColBounds(...e) {
3751
+ return this._status("changeColBounds", e);
3752
+ }
3753
+ changeColsBounds(...e) {
3754
+ return this._status("changeColsBounds", e);
3755
+ }
3756
+ changeRowBounds(...e) {
3757
+ return this._status("changeRowBounds", e);
3758
+ }
3759
+ changeRowsBounds(...e) {
3760
+ return this._status("changeRowsBounds", e);
3761
+ }
3762
+ deleteCols(...e) {
3763
+ return this._status("deleteCols", e);
3764
+ }
3765
+ deleteRows(...e) {
3766
+ return this._status("deleteRows", e);
3767
+ }
3768
+ scaleCol(...e) {
3769
+ return this._status("scaleCol", e);
3770
+ }
3771
+ scaleRow(...e) {
3772
+ return this._status("scaleRow", e);
3773
+ }
3774
+ passColName(...e) {
3775
+ return this._status("passColName", e);
3776
+ }
3777
+ passRowName(...e) {
3778
+ return this._status("passRowName", e);
3779
+ }
3780
+ passModelName(...e) {
3781
+ return this._status("passModelName", e);
3782
+ }
3783
+ crossover(...e) {
3784
+ return this._status("crossover", e);
3785
+ }
3786
+ feasibilityRelaxation(...e) {
3787
+ return this._status("feasibilityRelaxation", e);
3788
+ }
3789
+ changeCoefficient(...e) {
3790
+ return this._status("changeCoeff", e);
3791
+ }
3792
+ getSolution(...e) {
3793
+ return this._value("getSolution", e);
3794
+ }
3795
+ getBasis(...e) {
3796
+ return this._value("getBasis", e);
3797
+ }
3798
+ getPrimalRay(...e) {
3799
+ return this._value("getPrimalRay", e);
3800
+ }
3801
+ getDualRay(...e) {
3802
+ return this._value("getDualRay", e);
3803
+ }
3804
+ getDualUnboundednessDirection(...e) {
3805
+ return this._value("getDualUnboundednessDirection", e);
3806
+ }
3807
+ getModel(...e) {
3808
+ return this._value("getModel", e);
3809
+ }
3810
+ getLp(...e) {
3811
+ return this._value("getLp", e);
3812
+ }
3813
+ getPresolvedLp(...e) {
3814
+ return this._value("getPresolvedLp", e);
3815
+ }
3816
+ getIisLp(...e) {
3817
+ return this._value("getIisLp", e);
3818
+ }
3819
+ getFixedLp(...e) {
3820
+ return this._value("getFixedLp", e);
3821
+ }
3822
+ getCols(...e) {
3823
+ return this._value("getCols", e);
3824
+ }
3825
+ getRows(...e) {
3826
+ return this._value("getRows", e);
3827
+ }
3828
+ getColName(...e) {
3829
+ return this._value("getColName", e);
3830
+ }
3831
+ getRowName(...e) {
3832
+ return this._value("getRowName", e);
3833
+ }
3834
+ getPresolvedColName(...e) {
3835
+ return this._value("getPresolvedColName", e);
3836
+ }
3837
+ getPresolvedRowName(...e) {
3838
+ return this._value("getPresolvedRowName", e);
3839
+ }
3840
+ getColByName(...e) {
3841
+ return this._value("getColByName", e);
3842
+ }
3843
+ getRowByName(...e) {
3844
+ return this._value("getRowByName", e);
3845
+ }
3846
+ getColIntegrality(...e) {
3847
+ return this._value("getColIntegrality", e);
3848
+ }
3849
+ getBasicVariables(...e) {
3850
+ return this._value("getBasicVariables", e);
3851
+ }
3852
+ getBasisInverseRow(...e) {
3853
+ return this._value("getBasisInverseRow", e);
3854
+ }
3855
+ getBasisInverseCol(...e) {
3856
+ return this._value("getBasisInverseCol", e);
3857
+ }
3858
+ getBasisSolve(...e) {
3859
+ return this._value("getBasisSolve", e);
3860
+ }
3861
+ getBasisTransposeSolve(...e) {
3862
+ return this._value("getBasisTransposeSolve", e);
3863
+ }
3864
+ getReducedRow(...e) {
3865
+ return this._value("getReducedRow", e);
3866
+ }
3867
+ getReducedColumn(...e) {
3868
+ return this._value("getReducedColumn", e);
3869
+ }
3870
+ getRanging(...e) {
3871
+ return this._value("getRanging", e);
3872
+ }
3873
+ getIis(...e) {
3874
+ return this._value("getIis", e);
3875
+ }
3876
+ }
3877
+ class Me {
3878
+ constructor(e) {
3879
+ this._model = e;
3880
+ }
3881
+ set(e, t) {
3882
+ if (typeof e == "object" && e) {
3883
+ Object.keys(e).forEach(G);
3884
+ let t = 0;
3885
+ return Object.keys(e).forEach(function(n) {
3886
+ let r = this._model.raw.setOptionValue(n, e[n]);
3887
+ if (r.status === -1) throw T("setOptionValue");
3888
+ t = Math.max(t, r.status);
3889
+ }.bind(this)), this._model._setLast(t, "setOptionValue");
3890
+ }
3891
+ return G(e), this._model._status("setOptionValue", [e, t]);
3892
+ }
3893
+ describe(e) {
3894
+ return G(e), this._model._value("getOptionValues", [e]);
3895
+ }
3896
+ reset() {
3897
+ return this._model._status("resetOptions");
3898
+ }
3899
+ export(e) {
3900
+ return this._model._value("exportOptions", [e]);
3901
+ }
3902
+ get(e) {
3903
+ return G(e), this._model._value("getOptionValue", [e]);
3904
+ }
3905
+ names() {
3906
+ let e = this._model.raw.getNumOptions(), t = [];
3907
+ for (let n = 0; n < e; n++) {
3908
+ let e = this._model.raw.getOptionName(n);
3909
+ if (e.status === -1) throw T("getOptionName");
3910
+ W(e.value) || t.push(e.value);
3911
+ }
3912
+ return t;
3913
+ }
3914
+ read(e) {
3915
+ return de(e), this._model._status("readOptions", [e]);
3916
+ }
3917
+ }
3918
+ class Ne {
3919
+ constructor(e) {
3920
+ this._model = e;
3921
+ }
3922
+ get(e) {
3923
+ return this._model._value("getInfoValue", [e]);
3924
+ }
3925
+ type(e) {
3926
+ return this._model._value("getInfoType", [e]);
3927
+ }
3928
+ }
3929
+ function $() {
3930
+ let e = _("Highs_create", 0)();
3931
+ if (!e) throw Error("Highs_create failed");
3932
+ let t = Ie(new pe(e));
3933
+ return v("Highs_setIntOptionValue", 1, 1)(e, "threads", 1), g("Highs_setStringOptionValue", "number", [
3934
+ "number",
3935
+ "string",
3936
+ "string"
3937
+ ])(e, "parallel", "off"), t;
3938
+ }
3939
+ function Fe(e) {
3940
+ let t = Ie(new je($()));
3941
+ try {
3942
+ return e && (e.format === "lp" || e.format === "mps" ? t.readModel(e) : t.passModel(e)), t;
3943
+ } catch (e) {
3944
+ throw t.dispose(), e;
3945
+ }
3946
+ }
3947
+ function Ie(e) {
3948
+ let t = Symbol.dispose;
3949
+ return t !== void 0 && Object.defineProperty(e, t, {
3950
+ configurable: !0,
3951
+ writable: !0,
3952
+ value: e.dispose
3953
+ }), e;
3954
+ }
3955
+ function Le(e) {
3956
+ return e !== null && (typeof e == "object" || typeof e == "function") && typeof e.then == "function";
3957
+ }
3958
+ function Re(e, t = void 0) {
3959
+ let n = typeof e != "function", r = n ? e : void 0, i = n ? t : e;
3960
+ if (typeof i != "function") throw C("withModel requires a callback");
3961
+ let a = Fe(r);
3962
+ try {
3963
+ let e = i(a);
3964
+ return Le(e) ? Promise.resolve(e).finally(function() {
3965
+ a.dispose();
3966
+ }) : (a.dispose(), e);
3967
+ } catch (e) {
3968
+ throw a.dispose(), e;
3969
+ }
3970
+ }
3971
+ function ze(e, t) {
3972
+ let n = ne(t);
3973
+ return B(function(a) {
3974
+ let o = t.matrix, s = e === "Highs_mipCall", c = a.outDoubles(n.numCols), l = s ? 0 : a.outDoubles(n.numCols), u = a.outDoubles(n.numRows), d = s ? 0 : a.outDoubles(n.numRows), f = s ? 0 : a.outInts(n.numCols), p = s ? 0 : a.outInts(n.numRows), m = a.outInts(1), h = me(t, a, s), g = [
3975
+ n.numCols,
3976
+ n.numRows,
3977
+ n.numNonzeros,
3978
+ r[o.format],
3979
+ n.sense,
3980
+ t.offset == null ? 0 : t.offset,
3981
+ ...h.slice(0, 8)
3982
+ ], v;
3983
+ if (e === "Highs_mipCall") {
3984
+ if (!t.integrality) throw C("mipCall requires integrality");
3985
+ v = g.concat([
3986
+ h[8],
3987
+ c,
3988
+ u,
3989
+ m
3990
+ ]);
3991
+ } else if (e === "Highs_qpCall") {
3992
+ if (!t.hessian) throw C("qpCall requires hessian");
3993
+ let e = t.hessian;
3994
+ v = g.slice(0, 3).concat([
3995
+ n.hessianNonzeros,
3996
+ r[o.format],
3997
+ i[e.format],
3998
+ n.sense,
3999
+ t.offset == null ? 0 : t.offset,
4000
+ ...h.slice(0, 8),
4001
+ a.ints(Array.prototype.slice.call(e.starts, 0, -1)),
4002
+ a.ints(e.indices),
4003
+ a.doubles(e.values),
4004
+ c,
4005
+ l,
4006
+ u,
4007
+ d,
4008
+ f,
4009
+ p,
4010
+ m
4011
+ ]);
4012
+ } else v = g.concat([
4013
+ c,
4014
+ l,
4015
+ u,
4016
+ d,
4017
+ f,
4018
+ p,
4019
+ m
4020
+ ]);
4021
+ let y = _(e, v.length).apply(null, v);
4022
+ return s ? O(y, {
4023
+ modelStatus: b()[m >> 2],
4024
+ solution: {
4025
+ colValue: H(c, n.numCols),
4026
+ rowValue: H(u, n.numRows)
4027
+ }
4028
+ }) : O(y, {
4029
+ modelStatus: b()[m >> 2],
4030
+ solution: {
4031
+ colValue: H(c, n.numCols),
4032
+ rowValue: H(u, n.numRows),
4033
+ colDual: H(l, n.numCols),
4034
+ rowDual: H(d, n.numRows)
4035
+ },
4036
+ basis: {
4037
+ colStatus: V(f, n.numCols),
4038
+ rowStatus: V(p, n.numRows)
4039
+ }
4040
+ });
4041
+ });
4042
+ }
4043
+ let Be = Object.freeze({
4044
+ major: _("Highs_versionMajor", 0)(),
4045
+ minor: _("Highs_versionMinor", 0)(),
4046
+ patch: _("Highs_versionPatch", 0)(),
4047
+ string: g("Highs_version", "string", [])(),
4048
+ gitHash: g("Highs_githash", "string", [])()
4049
+ }), Ve = Object.freeze({
4050
+ status: Object.freeze({
4051
+ error: -1,
4052
+ ok: 0,
4053
+ warning: 1
4054
+ }),
4055
+ variableType: Object.freeze({
4056
+ continuous: 0,
4057
+ integer: 1,
4058
+ semiContinuous: 2,
4059
+ semiInteger: 3,
4060
+ implicitInteger: 4
4061
+ }),
4062
+ objectiveSense: Object.freeze({
4063
+ minimize: 1,
4064
+ maximize: -1
4065
+ }),
4066
+ matrixFormat: Object.freeze({
4067
+ columnWise: 1,
4068
+ rowWise: 2
4069
+ }),
4070
+ hessianFormat: Object.freeze({
4071
+ triangular: 1,
4072
+ square: 2
4073
+ }),
4074
+ optionType: Object.freeze({
4075
+ boolean: 0,
4076
+ integer: 1,
4077
+ double: 2,
4078
+ string: 3
4079
+ }),
4080
+ infoType: Object.freeze({
4081
+ int64: -1,
4082
+ integer: 1,
4083
+ double: 2
4084
+ }),
4085
+ solutionStatus: Object.freeze({
4086
+ none: 0,
4087
+ infeasible: 1,
4088
+ feasible: 2
4089
+ }),
4090
+ basisValidity: Object.freeze({
4091
+ invalid: 0,
4092
+ valid: 1
4093
+ }),
4094
+ basisStatus: Object.freeze({
4095
+ lower: 0,
4096
+ basic: 1,
4097
+ upper: 2,
4098
+ zero: 3,
4099
+ nonbasic: 4
4100
+ }),
4101
+ callbackType: Object.freeze({
4102
+ logging: 0,
4103
+ simplexInterrupt: 1,
4104
+ ipmInterrupt: 2,
4105
+ mipSolution: 3,
4106
+ mipImprovingSolution: 4,
4107
+ mipLogging: 5,
4108
+ mipInterrupt: 6,
4109
+ mipCutPool: 7,
4110
+ mipUserSolution: 9
4111
+ }),
4112
+ presolveStatus: Object.freeze({
4113
+ notPresolved: -1,
4114
+ notReduced: 0,
4115
+ infeasible: 1,
4116
+ unboundedOrInfeasible: 2,
4117
+ reduced: 3,
4118
+ reducedToEmpty: 4,
4119
+ timeout: 5,
4120
+ nullError: 6,
4121
+ optionsError: 7,
4122
+ outOfMemory: 8
4123
+ }),
4124
+ modelStatus: Object.freeze({
4125
+ notSet: 0,
4126
+ loadError: 1,
4127
+ modelError: 2,
4128
+ presolveError: 3,
4129
+ solveError: 4,
4130
+ postsolveError: 5,
4131
+ empty: 6,
4132
+ optimal: 7,
4133
+ infeasible: 8,
4134
+ unboundedOrInfeasible: 9,
4135
+ unbounded: 10,
4136
+ objectiveBound: 11,
4137
+ objectiveTarget: 12,
4138
+ timeLimit: 13,
4139
+ iterationLimit: 14,
4140
+ unknown: 15,
4141
+ solutionLimit: 16,
4142
+ interrupted: 17
4143
+ }),
4144
+ iis: Object.freeze({
4145
+ strategyLight: 0,
4146
+ strategyRowPriority: 6,
4147
+ strategyColPriority: 14,
4148
+ boundFree: 1,
4149
+ boundLower: 2,
4150
+ boundUpper: 3,
4151
+ boundBoxed: 4,
4152
+ notInConflict: -1,
4153
+ maybeInConflict: 0,
4154
+ inConflict: 1
4155
+ })
4156
+ }), He = $(), Ue = He.getInfinity(), We = He.getSizeofHighsInt();
4157
+ if (He.dispose(), We !== 4) throw Error("This highs-js runtime requires a 32-bit HighsInt build; received " + We * 8 + " bits");
4158
+ e.version = Be, e.infinity = Ue, e.intBytes = We, e.intBits = We * 8, Object.defineProperty(e, "memoryBytes", {
4159
+ enumerable: !0,
4160
+ get: function() {
4161
+ return y().buffer.byteLength;
4162
+ }
4163
+ }), e.constants = Ve, e.errors = Object.freeze({
4164
+ HighsError: d,
4165
+ HighsDisposedError: f,
4166
+ HighsValidationError: p,
4167
+ HighsReentrancyError: m,
4168
+ HighsUnsupportedOptionError: h
4169
+ }), e.createModel = Fe, e.withModel = Re, e.raw = Object.freeze({
4170
+ version: function() {
4171
+ return Be;
4172
+ },
4173
+ lpCall: function(e) {
4174
+ return ze("Highs_lpCall", e);
4175
+ },
4176
+ mipCall: function(e) {
4177
+ return ze("Highs_mipCall", e);
4178
+ },
4179
+ qpCall: function(e) {
4180
+ return ze("Highs_qpCall", e);
4181
+ },
4182
+ createModel: $
4183
+ });
4184
+ })(n), n;
4185
+ };
4186
+ })();
4187
+ typeof e == "object" && typeof t == "object" ? (t.exports = n, t.exports.default = n) : typeof define == "function" && define.amd && define([], () => n);
4188
+ })))(), 1)).default;
4189
+ export { c as default };