@tktb-tess/util-fns 0.12.0 → 0.12.1
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.
- package/dist/assets/bpsw_worker-B1aaSJNb.js +1 -0
- package/dist/async_worker.d.ts +33 -0
- package/dist/bundle.js +151 -175
- package/dist/bundle.min.js +2 -2
- package/dist/fraction.d.ts +11 -11
- package/dist/leb128.d.ts +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/named_error.d.ts +2 -2
- package/dist/pcg_minimal.d.ts +2 -2
- package/dist/types.d.ts +0 -17
- package/dist/xoshiro_minimal.d.ts +4 -4
- package/package.json +2 -2
- package/dist/assets/bpsw_worker-D0gmU_qc.js +0 -1
- package/dist/worker_stream.d.ts +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(){let e=(e,t)=>{t<0n&&(t*=-1n);let n=e%t;return n<0n?n+t:n},t=(t,n,r)=>{if(r<1n)throw RangeError("`mod` must be positive");if(n<0n)throw RangeError("`power` must not be negative");if(t=e(t,r),r===1n)return 0n;if(t%r===1n||t%r===0n)return t;if(t===r-1n)return n&1n?r-1n:1n;let i=1n;for(;n>0n;)n&1n&&(i=i*t%r),t=t*t%r,n>>=1n;return i},n=(e,t)=>{if(t<1n||t%2n==0n)throw RangeError("`n` is out of range");for(;e<0n;)e+=t;e%=t;let n=1n;for(;e!==0n;){for(;e%2n==0n;){e/=2n;let r=t%8n;(r===3n||r===5n)&&(n*=-1n)}[e,t]=[t,e],e%4n==3n&&t%4n==3n&&(n*=-1n),e%=t}return t===1n?n:0n},r=e=>{if(e<0n)return!1;if(e===0n)return!0;let t=1n,n=e;for(;t+1n<n;){let r=(t+n)/2n;r*r<e?t=r:n=r}return e===t**2n||e===(t+1n)**2n},i=()=>typeof window>`u`&&typeof self<`u`&&`importScripts`in self,a=(e,t)=>{if(!i())throw Error(`this function must be used in Worker`);let n={success:!0,value:e,id:t};self.postMessage(n)},o=(e,t)=>{if(!i())throw Error(`this function must be used in Worker`);let n={success:!1,error:e,id:t};self.postMessage(n)},s=e=>{if(e<=1n)return!1;if(e%2n==0n)return e===2n;let n=e-1n,r=0n;for(;n%2n==0n;)n>>=1n,r+=1n;let[i,a]=[n,r],o=t(2n,i,e);if(o===1n)return!0;for(let t=0n;t<a;t++){if(o===e-1n)return!0;o=o*o%e}return!1},c=e=>{let t=5n,i=n(t,e);for(;i>0n;){if(t=t>0n?t+2n:t-2n,t*=-1n,t===-15n&&r(e))return[0n,0n];i=n(t,e)}return[t,i]},l=(t,n)=>(t&1n)==1n?e(t+n>>1n,n):e(t>>1n,n),u=(t,n,r,i)=>{let a=1n,o=r,s=t.toString(2).slice(1);for(let t of s)[a,o]=[e(a*o,n),l(o*o+i*a*a,n)],t===`1`&&([a,o]=[l(r*a+o,n),l(i*a+r*o,n)]);return[a,o]},d=(n,r,i,a)=>{if(n%2n!=1n)throw RangeError("`n` must be odd");let o=n+1n,s=0n;for(;o%2n==0n;)o>>=1n,s+=1n;let[c,l]=u(o,n,i,r),d=l;if(c===0n)return!0;a=t(a,o,n);for(let r=0n;r<s;r++){if(d===0n)return!0;d=e(d*d-2n*a,n),a=t(a,2n,n)}return!1},f=e=>{if(e<=1n)return!1;if(e%2n==0n)return e===2n;for(let t of[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n,41n,43n,47n,53n,59n,61n,67n,71n,73n,79n,83n,89n,97n,101n,103n,107n,109n,113n,127n,131n,137n,139n,149n,151n,157n,163n,167n,173n,179n,181n,191n,193n,197n,199n,211n,223n,227n,229n,233n,239n,241n,251n,257n,263n,269n,271n,277n,281n,283n,293n,307n,311n,313n,317n,331n,337n,347n,349n,353n,359n,367n,373n,379n,383n,389n,397n,401n,409n,419n,421n,431n,433n,439n,443n,449n,457n,461n,463n,467n,479n,487n,491n,499n])if(e%t===0n)return e===t;if(!s(e))return!1;let[t,n]=c(e);return n===0n?!1:d(e,t,1n,(1n-t)/4n)};globalThis.onmessage=e=>{let{value:t,id:n}=e.data;try{a(f(t),n)}catch(e){o(e,n)}}})();
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
declare const __ID_BRAND__: unique symbol;
|
|
2
|
+
type ID = ReturnType<typeof crypto.randomUUID> & {
|
|
3
|
+
readonly [__ID_BRAND__]: unknown;
|
|
4
|
+
};
|
|
5
|
+
export interface WorkerMessage<T> {
|
|
6
|
+
readonly value: T;
|
|
7
|
+
readonly id: ID;
|
|
8
|
+
}
|
|
9
|
+
interface WorkerResultBase {
|
|
10
|
+
readonly id: ID;
|
|
11
|
+
}
|
|
12
|
+
interface WorkerSucceededResult<T> extends WorkerResultBase {
|
|
13
|
+
readonly success: true;
|
|
14
|
+
readonly value: T;
|
|
15
|
+
}
|
|
16
|
+
interface WorkerFailedResult extends WorkerResultBase {
|
|
17
|
+
readonly success: false;
|
|
18
|
+
readonly error: unknown;
|
|
19
|
+
}
|
|
20
|
+
export type WorkerResult<T> = WorkerSucceededResult<T> | WorkerFailedResult;
|
|
21
|
+
export declare class AsyncWorker<TPost = unknown, TRecv = unknown> {
|
|
22
|
+
#private;
|
|
23
|
+
constructor(w: Worker);
|
|
24
|
+
/**
|
|
25
|
+
* sends a message to the worker, and returns promise resolved by message from worker
|
|
26
|
+
* @param message
|
|
27
|
+
* @param options
|
|
28
|
+
*/
|
|
29
|
+
readonly postMessage: (message: TPost, options?: StructuredSerializeOptions) => Promise<TRecv>;
|
|
30
|
+
}
|
|
31
|
+
export declare const postSuccess: <TRecv>(value: TRecv, id: ID) => void;
|
|
32
|
+
export declare const postFailed: (error: unknown, id: ID) => void;
|
|
33
|
+
export {};
|
package/dist/bundle.js
CHANGED
|
@@ -47,34 +47,32 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
47
47
|
resolve: e,
|
|
48
48
|
reject: t
|
|
49
49
|
};
|
|
50
|
-
}, d = (e) => new Promise((t) => {
|
|
51
|
-
setTimeout(t, e);
|
|
52
|
-
}), f = (e) => Object.prototype.toString.call(e).slice(8, -1), p = (e) => (...t) => () => e(...t), ee = (e) => {
|
|
50
|
+
}, d = (e) => new Promise((t) => setTimeout(t, e)), ee = (e) => Object.prototype.toString.call(e).slice(8, -1), te = (e) => (...t) => () => e(...t), ne = (e) => {
|
|
53
51
|
let t = [], n = [], r = "", i = !1;
|
|
54
52
|
for (let a = 0; a < e.length; a++) {
|
|
55
53
|
let o = e[a];
|
|
56
54
|
o === "\"" && (a === 0 || e[a - 1] !== "\\") ? i = !i : o === "," && !i ? (n.push(r.trim()), r = "") : o === "\n" && !i ? (n.push(r.trim()), t.push(n), n = [], r = "") : r += o;
|
|
57
55
|
}
|
|
58
56
|
return n.push(r.trim()), t.push(n), t;
|
|
59
|
-
},
|
|
57
|
+
}, re = async (e, t) => {
|
|
60
58
|
let n = new TextEncoder().encode(e), r = await crypto.subtle.digest(t, n);
|
|
61
59
|
return new Uint8Array(r);
|
|
62
|
-
},
|
|
60
|
+
}, f = (e) => encodeURIComponent(e).replace(/[!'()*]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}`), p = (e) => {
|
|
63
61
|
if (e.includes("+")) throw URIError("an input string must not include `+`");
|
|
64
62
|
return decodeURIComponent(e);
|
|
65
63
|
}, ie = (e, t) => {
|
|
66
64
|
let n = new Blob([e]).stream().pipeThrough(new CompressionStream(t));
|
|
67
65
|
return new Response(n).bytes();
|
|
68
|
-
},
|
|
66
|
+
}, m = (e, t) => {
|
|
69
67
|
let n = new Blob([e]).stream().pipeThrough(new DecompressionStream(t));
|
|
70
68
|
return new Response(n).bytes();
|
|
71
|
-
},
|
|
69
|
+
}, h = async (e, t) => {
|
|
72
70
|
let n = new Blob([e]).stream().pipeThrough(new CompressionStream(t));
|
|
73
71
|
return i(await new Response(n).bytes());
|
|
74
|
-
},
|
|
72
|
+
}, g = (e, t) => {
|
|
75
73
|
let n = a(e), r = new Blob([n]).stream().pipeThrough(new DecompressionStream(t));
|
|
76
74
|
return new Response(r).text();
|
|
77
|
-
},
|
|
75
|
+
}, _ = (e, t) => new Promise((n, r) => {
|
|
78
76
|
setTimeout(async () => {
|
|
79
77
|
try {
|
|
80
78
|
n(await e());
|
|
@@ -82,42 +80,42 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
82
80
|
r(e);
|
|
83
81
|
}
|
|
84
82
|
}, t);
|
|
85
|
-
}),
|
|
83
|
+
}), v = (e, t) => {
|
|
86
84
|
if (t < -e.length || t >= e.length) throw RangeError("`index` is out of range");
|
|
87
85
|
return e.at(t);
|
|
88
|
-
},
|
|
89
|
-
let n =
|
|
86
|
+
}, ae = (e, t) => {
|
|
87
|
+
let n = v(e, t);
|
|
90
88
|
if (n == null) throw TypeError("value is nullable");
|
|
91
89
|
return n;
|
|
92
|
-
},
|
|
90
|
+
}, oe = (e, t) => Math.floor(Math.random() * (t - e) + e), y = (e, t) => {
|
|
93
91
|
t < 0n && (t *= -1n);
|
|
94
92
|
let n = e % t;
|
|
95
93
|
return n < 0n ? n + t : n;
|
|
96
|
-
},
|
|
94
|
+
}, b = (e, t = !1) => {
|
|
97
95
|
if (!Number.isFinite(e)) throw RangeError("`length` is not a valid number");
|
|
98
96
|
if (e <= 0) throw RangeError("`length` must be positive");
|
|
99
97
|
let n = Math.ceil(e / 8), r = crypto.getRandomValues(new Uint8Array(n)), i = Array.from(r, (e) => e.toString(2).padStart(8, "0")).join("").slice(0, e);
|
|
100
98
|
return t && (i = i.replace(/^\d/, "1")), BigInt("0b" + i);
|
|
101
|
-
},
|
|
99
|
+
}, x = (e, t) => {
|
|
102
100
|
if (e >= t) throw RangeError("`min` must be smaller than `max`");
|
|
103
101
|
let n = t - e, r = n.toString(2).length;
|
|
104
102
|
return e + (() => {
|
|
105
103
|
for (let e = 0; e < 1e5; e++) {
|
|
106
|
-
let e =
|
|
107
|
-
if (e >=
|
|
104
|
+
let e = b(r);
|
|
105
|
+
if (e >= S(2n, BigInt(r), n)) return e % n;
|
|
108
106
|
}
|
|
109
107
|
throw Error("Failed to generate a random bigint");
|
|
110
108
|
})();
|
|
111
|
-
},
|
|
109
|
+
}, S = (e, t, n) => {
|
|
112
110
|
if (n < 1n) throw RangeError("`mod` must be positive");
|
|
113
111
|
if (t < 0n) throw RangeError("`power` must not be negative");
|
|
114
|
-
if (e =
|
|
112
|
+
if (e = y(e, n), n === 1n) return 0n;
|
|
115
113
|
if (e % n === 1n || e % n === 0n) return e;
|
|
116
114
|
if (e === n - 1n) return t & 1n ? n - 1n : 1n;
|
|
117
115
|
let r = 1n;
|
|
118
116
|
for (; t > 0n;) t & 1n && (r = r * e % n), e = e * e % n, t >>= 1n;
|
|
119
117
|
return r;
|
|
120
|
-
},
|
|
118
|
+
}, C = (e, t) => {
|
|
121
119
|
if (e === 0n && t === 0n) return {
|
|
122
120
|
x: 0n,
|
|
123
121
|
y: 0n,
|
|
@@ -160,7 +158,7 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
160
158
|
y: o,
|
|
161
159
|
gcd: s
|
|
162
160
|
};
|
|
163
|
-
},
|
|
161
|
+
}, w = (e, t) => {
|
|
164
162
|
if (e >= t) return 1n;
|
|
165
163
|
let n = BigInt((t - 2n).toString(2).length), r = (t - e) / 2n;
|
|
166
164
|
if (n * r < 63n) {
|
|
@@ -169,20 +167,20 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
169
167
|
return n;
|
|
170
168
|
}
|
|
171
169
|
let i = e + r | 1n;
|
|
172
|
-
return
|
|
173
|
-
},
|
|
170
|
+
return w(e, i) * w(i, t);
|
|
171
|
+
}, se = (e) => {
|
|
174
172
|
let t = 3n, n = 1n, r = 1n, i = BigInt(e.toString(2).length) - 1n;
|
|
175
173
|
for (let a = i - 1n; a > -1n; --a) {
|
|
176
174
|
let i = (e >> a) + 1n | 1n;
|
|
177
|
-
r *=
|
|
175
|
+
r *= w(t, i), t = i, n *= r;
|
|
178
176
|
}
|
|
179
177
|
return n;
|
|
180
|
-
},
|
|
178
|
+
}, ce = (e) => {
|
|
181
179
|
if (e < 0n) throw RangeError("'n' must be non-negative");
|
|
182
180
|
if (e === 0n) return 1n;
|
|
183
181
|
let t = e - BigInt(e.toString(2).match(/1/g)?.length ?? 0);
|
|
184
|
-
return
|
|
185
|
-
},
|
|
182
|
+
return se(e) << t;
|
|
183
|
+
}, T = (e, t) => (e >>> (t & 31) | e << (-t & 31)) >>> 0, E = (e, t) => BigInt.asUintN(64, e >> (t & 63n) | e << (-t & 63n)), D = (e, t) => {
|
|
186
184
|
if (t < 1n || t % 2n == 0n) throw RangeError("`n` is out of range");
|
|
187
185
|
for (; e < 0n;) e += t;
|
|
188
186
|
e %= t;
|
|
@@ -196,7 +194,7 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
196
194
|
[e, t] = [t, e], e % 4n == 3n && t % 4n == 3n && (n *= -1n), e %= t;
|
|
197
195
|
}
|
|
198
196
|
return t === 1n ? n : 0n;
|
|
199
|
-
},
|
|
197
|
+
}, O = (e) => {
|
|
200
198
|
if (e < 0n) return !1;
|
|
201
199
|
if (e === 0n) return !0;
|
|
202
200
|
let t = 1n, n = e;
|
|
@@ -205,42 +203,77 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
205
203
|
r * r < e ? t = r : n = r;
|
|
206
204
|
}
|
|
207
205
|
return e === t ** 2n || e === (t + 1n) ** 2n;
|
|
208
|
-
},
|
|
206
|
+
}, k = class {
|
|
207
|
+
#e;
|
|
208
|
+
constructor(e) {
|
|
209
|
+
this.#e = e;
|
|
210
|
+
}
|
|
211
|
+
postMessage = (e, t) => new Promise((n, r) => {
|
|
212
|
+
let i = crypto.randomUUID(), a = (e) => {
|
|
213
|
+
let t = e.data;
|
|
214
|
+
t.id === i && (this.#e.removeEventListener("message", a), this.#e.removeEventListener("error", o), t.success ? n(t.value) : r(t.error));
|
|
215
|
+
}, o = (e) => {
|
|
216
|
+
this.#e.removeEventListener("message", a), this.#e.removeEventListener("error", o), r(e.error);
|
|
217
|
+
};
|
|
218
|
+
this.#e.addEventListener("message", a), this.#e.addEventListener("error", o);
|
|
219
|
+
let s = {
|
|
220
|
+
value: e,
|
|
221
|
+
id: i
|
|
222
|
+
};
|
|
223
|
+
this.#e.postMessage(s, t);
|
|
224
|
+
});
|
|
225
|
+
}, A = () => typeof window > "u" && typeof self < "u" && "importScripts" in self, j = (e, t) => {
|
|
226
|
+
if (!A()) throw Error("this function must be used in Worker");
|
|
227
|
+
let n = {
|
|
228
|
+
success: !0,
|
|
229
|
+
value: e,
|
|
230
|
+
id: t
|
|
231
|
+
};
|
|
232
|
+
self.postMessage(n);
|
|
233
|
+
}, M = (e, t) => {
|
|
234
|
+
if (!A()) throw Error("this function must be used in Worker");
|
|
235
|
+
let n = {
|
|
236
|
+
success: !1,
|
|
237
|
+
error: e,
|
|
238
|
+
id: t
|
|
239
|
+
};
|
|
240
|
+
self.postMessage(n);
|
|
241
|
+
}, N = (e) => {
|
|
209
242
|
if (e <= 1n) return !1;
|
|
210
243
|
if (e % 2n == 0n) return e === 2n;
|
|
211
244
|
let t = e - 1n, n = 0n;
|
|
212
245
|
for (; t % 2n == 0n;) t >>= 1n, n += 1n;
|
|
213
|
-
let [r, i] = [t, n], a =
|
|
246
|
+
let [r, i] = [t, n], a = S(2n, r, e);
|
|
214
247
|
if (a === 1n) return !0;
|
|
215
248
|
for (let t = 0n; t < i; t++) {
|
|
216
249
|
if (a === e - 1n) return !0;
|
|
217
250
|
a = a * a % e;
|
|
218
251
|
}
|
|
219
252
|
return !1;
|
|
220
|
-
},
|
|
221
|
-
let t = 5n, n =
|
|
253
|
+
}, P = (e) => {
|
|
254
|
+
let t = 5n, n = D(t, e);
|
|
222
255
|
for (; n > 0n;) {
|
|
223
|
-
if (t = t > 0n ? t + 2n : t - 2n, t *= -1n, t === -15n &&
|
|
224
|
-
n =
|
|
256
|
+
if (t = t > 0n ? t + 2n : t - 2n, t *= -1n, t === -15n && O(e)) return [0n, 0n];
|
|
257
|
+
n = D(t, e);
|
|
225
258
|
}
|
|
226
259
|
return [t, n];
|
|
227
|
-
},
|
|
260
|
+
}, F = (e, t) => (e & 1n) == 1n ? y(e + t >> 1n, t) : y(e >> 1n, t), I = (e, t, n, r) => {
|
|
228
261
|
let i = 1n, a = n, o = e.toString(2).slice(1);
|
|
229
|
-
for (let e of o) [i, a] = [
|
|
262
|
+
for (let e of o) [i, a] = [y(i * a, t), F(a * a + r * i * i, t)], e === "1" && ([i, a] = [F(n * i + a, t), F(r * i + n * a, t)]);
|
|
230
263
|
return [i, a];
|
|
231
|
-
},
|
|
264
|
+
}, L = (e, t, n, r) => {
|
|
232
265
|
if (e % 2n != 1n) throw RangeError("`n` must be odd");
|
|
233
266
|
let i = e + 1n, a = 0n;
|
|
234
267
|
for (; i % 2n == 0n;) i >>= 1n, a += 1n;
|
|
235
|
-
let [o, s] =
|
|
268
|
+
let [o, s] = I(i, e, n, t), c = s;
|
|
236
269
|
if (o === 0n) return !0;
|
|
237
|
-
r =
|
|
270
|
+
r = S(r, i, e);
|
|
238
271
|
for (let t = 0n; t < a; t++) {
|
|
239
272
|
if (c === 0n) return !0;
|
|
240
|
-
c =
|
|
273
|
+
c = y(c * c - 2n * r, e), r = S(r, 2n, e);
|
|
241
274
|
}
|
|
242
275
|
return !1;
|
|
243
|
-
},
|
|
276
|
+
}, R = (e) => {
|
|
244
277
|
if (e <= 1n) return !1;
|
|
245
278
|
if (e % 2n == 0n) return e === 2n;
|
|
246
279
|
for (let t of [
|
|
@@ -340,44 +373,31 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
340
373
|
491n,
|
|
341
374
|
499n
|
|
342
375
|
]) if (e % t === 0n) return e === t;
|
|
343
|
-
if (!
|
|
344
|
-
let [t, n] =
|
|
345
|
-
return n === 0n ? !1 :
|
|
346
|
-
},
|
|
376
|
+
if (!N(e)) return !1;
|
|
377
|
+
let [t, n] = P(e);
|
|
378
|
+
return n === 0n ? !1 : L(e, t, 1n, (1n - t) / 4n);
|
|
379
|
+
}, z = (e, t) => {
|
|
347
380
|
if (t < 2n) throw RangeError("`max` must be 2 or larger");
|
|
348
381
|
for (let n = 0; n < 1e5; n++) {
|
|
349
|
-
let n =
|
|
350
|
-
if (
|
|
382
|
+
let n = x(e, t);
|
|
383
|
+
if (R(n)) return n;
|
|
351
384
|
}
|
|
352
|
-
throw Error("
|
|
353
|
-
},
|
|
385
|
+
throw Error("no primes were found");
|
|
386
|
+
}, B = (e, t = !1) => {
|
|
354
387
|
if (e < 2) throw RangeError("`bitLength` must be 2 or larger");
|
|
355
388
|
for (let n = 0; n < 1e5; n++) {
|
|
356
|
-
let n =
|
|
357
|
-
if (
|
|
389
|
+
let n = b(e, t);
|
|
390
|
+
if (R(n)) return n;
|
|
358
391
|
}
|
|
359
|
-
throw Error("
|
|
360
|
-
},
|
|
392
|
+
throw Error("no primes were found");
|
|
393
|
+
}, V, H = () => (V ||= new k(new Worker(new URL(
|
|
361
394
|
/* @vite-ignore */
|
|
362
|
-
"/assets/bpsw_worker-
|
|
395
|
+
"/assets/bpsw_worker-B1aaSJNb.js",
|
|
363
396
|
"" + t.url
|
|
364
|
-
), { type: "module" }),
|
|
365
|
-
let r = z(), i = crypto.randomUUID(), a = (e) => {
|
|
366
|
-
let s = e.data;
|
|
367
|
-
s.id === i && (r.removeEventListener("error", o), r.removeEventListener("message", a), s.success ? t(s.value) : n(s.error));
|
|
368
|
-
}, o = (e) => {
|
|
369
|
-
r.removeEventListener("error", o), r.removeEventListener("message", a), n(e);
|
|
370
|
-
};
|
|
371
|
-
r.addEventListener("message", a), r.addEventListener("error", o);
|
|
372
|
-
let s = {
|
|
373
|
-
id: i,
|
|
374
|
-
value: e
|
|
375
|
-
};
|
|
376
|
-
r.postMessage(s);
|
|
377
|
-
}), V = "Rational", H = class e {
|
|
397
|
+
), { type: "module" })), V), U = (e) => H().postMessage(e), W = "Rational", G = class e {
|
|
378
398
|
#e;
|
|
379
399
|
#t;
|
|
380
|
-
static name =
|
|
400
|
+
static name = W;
|
|
381
401
|
constructor(e, t) {
|
|
382
402
|
t === 0n ? (this.#t = 0n, this.#e = e === 0n ? 0n : e > 0n ? 1n : -1n) : t > 0n ? (this.#e = e, this.#t = t) : (this.#e = -e, this.#t = -t), this.#n();
|
|
383
403
|
}
|
|
@@ -390,7 +410,7 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
390
410
|
if (a === 0) return new e(r ? -i : i, 1n);
|
|
391
411
|
t = 1 / a;
|
|
392
412
|
let [o, s] = [1n, i], [c, l] = [0n, 1n];
|
|
393
|
-
for (; `${l}`.length
|
|
413
|
+
for (; `${l}`.length <= n;) {
|
|
394
414
|
let n = BigInt(Math.floor(t)), i = t - Number(n);
|
|
395
415
|
if ([o, s] = [s, n * s + o], [c, l] = [l, n * l + c], i === 0) return new e(r ? -s : s, l);
|
|
396
416
|
t = 1 / i;
|
|
@@ -398,48 +418,32 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
398
418
|
return new e(r ? -o : o, c);
|
|
399
419
|
}
|
|
400
420
|
#n() {
|
|
401
|
-
let { gcd: e } =
|
|
421
|
+
let { gcd: e } = C(this.#e, this.#t);
|
|
402
422
|
e !== 0n && (this.#e /= e, this.#t /= e);
|
|
403
423
|
}
|
|
404
|
-
minus()
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
inverse() {
|
|
408
|
-
return new e(this.#t, this.#e);
|
|
409
|
-
}
|
|
410
|
-
add(t) {
|
|
424
|
+
minus = () => new e(-this.#e, this.#t);
|
|
425
|
+
inverse = () => new e(this.#t, this.#e);
|
|
426
|
+
add = (t) => {
|
|
411
427
|
let n = this.#t * t.#t;
|
|
412
428
|
return new e(this.#e * t.#t + t.#e * this.#t, n);
|
|
413
|
-
}
|
|
414
|
-
substr(e)
|
|
415
|
-
|
|
416
|
-
}
|
|
417
|
-
multiply(t) {
|
|
429
|
+
};
|
|
430
|
+
substr = (e) => this.add(e.minus());
|
|
431
|
+
multiply = (t) => {
|
|
418
432
|
let n = this.#t * t.#t;
|
|
419
433
|
return new e(this.#e * t.#e, n);
|
|
420
|
-
}
|
|
421
|
-
divide(e)
|
|
422
|
-
|
|
423
|
-
}
|
|
424
|
-
mediant(t) {
|
|
434
|
+
};
|
|
435
|
+
divide = (e) => this.multiply(e.inverse());
|
|
436
|
+
mediant = (t) => {
|
|
425
437
|
let n = this.#t + t.#t;
|
|
426
438
|
return new e(this.#e + t.#e, n);
|
|
427
|
-
}
|
|
428
|
-
toDecimal()
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
return this.toDecimal();
|
|
436
|
-
}
|
|
437
|
-
toJSON() {
|
|
438
|
-
return {
|
|
439
|
-
type: "Rational",
|
|
440
|
-
value: ["0x" + this.#e.toString(16), "0x" + this.#t.toString(16)]
|
|
441
|
-
};
|
|
442
|
-
}
|
|
439
|
+
};
|
|
440
|
+
toDecimal = () => Number(this.#e) / Number(this.#t);
|
|
441
|
+
toString = () => this.#e === 0n && this.#t === 0n ? "NaN" : this.#e === 0n ? "0" : this.#t === 0n ? this.#e < 0n ? "-Infinity" : "Infinity" : this.#t === 1n ? `${this.#e}` : `${this.#e}/${this.#t}`;
|
|
442
|
+
valueOf = () => this.toDecimal();
|
|
443
|
+
toJSON = () => ({
|
|
444
|
+
type: "Rational",
|
|
445
|
+
value: ["0x" + this.#e.toString(16), "0x" + this.#t.toString(16)]
|
|
446
|
+
});
|
|
443
447
|
static fromData(t) {
|
|
444
448
|
return new e(BigInt(t.value[0]), BigInt(t.value[1]));
|
|
445
449
|
}
|
|
@@ -451,19 +455,21 @@ var e = typeof document < "u" ? document.currentScript : null, t = e && e.tagNam
|
|
|
451
455
|
return new e(BigInt(r), BigInt(i));
|
|
452
456
|
}
|
|
453
457
|
};
|
|
454
|
-
Object.defineProperty(
|
|
458
|
+
Object.defineProperty(G.prototype, Symbol.toStringTag, { value: W });
|
|
455
459
|
//#endregion
|
|
456
460
|
//#region lib/named_error.ts
|
|
457
|
-
var
|
|
458
|
-
static name =
|
|
461
|
+
var K = "NamedError", q = class extends Error {
|
|
462
|
+
static name = K;
|
|
459
463
|
errName;
|
|
460
464
|
constructor(e, t, n) {
|
|
461
465
|
super(t, n), this.errName = e;
|
|
462
466
|
}
|
|
463
|
-
toJSON() {
|
|
467
|
+
toJSON = () => {
|
|
464
468
|
let e = (() => {
|
|
465
469
|
let e = this.cause;
|
|
466
|
-
if (e
|
|
470
|
+
if (e == null) return e;
|
|
471
|
+
let t = e.toString();
|
|
472
|
+
return t === "[object Object]" ? JSON.stringify(e) : t;
|
|
467
473
|
})(), { errName: t, message: n, stack: r } = this;
|
|
468
474
|
return {
|
|
469
475
|
name: t,
|
|
@@ -471,29 +477,29 @@ var U = "NamedError", W = class extends Error {
|
|
|
471
477
|
stack: r,
|
|
472
478
|
cause: e
|
|
473
479
|
};
|
|
474
|
-
}
|
|
480
|
+
};
|
|
475
481
|
};
|
|
476
|
-
Object.defineProperty(
|
|
482
|
+
Object.defineProperty(q.prototype, Symbol.toStringTag, { value: K });
|
|
477
483
|
//#endregion
|
|
478
484
|
//#region lib/random.ts
|
|
479
|
-
var
|
|
485
|
+
var J = (e) => {
|
|
480
486
|
if (e === 0n) return 64n;
|
|
481
487
|
let t = 0n;
|
|
482
488
|
for (; e > 0n && !(e & 1n);) ++t, e >>= 1n;
|
|
483
489
|
return BigInt.asUintN(64, t);
|
|
484
|
-
},
|
|
490
|
+
}, Y = (e, t) => {
|
|
485
491
|
let n = 0n, r = e & 2047n, i = 1023n - 1n;
|
|
486
|
-
if (r > 0n) return i -=
|
|
492
|
+
if (r > 0n) return i -= J(r), i;
|
|
487
493
|
i -= 11n;
|
|
488
494
|
for (let e = 0; e < 1e5; ++e) {
|
|
489
495
|
let e = t();
|
|
490
|
-
if (e > 0n) return i -=
|
|
496
|
+
if (e > 0n) return i -= J(e), i;
|
|
491
497
|
if (i -= 64n, i < n) return n;
|
|
492
498
|
}
|
|
493
499
|
throw Error("loop exceeded limit");
|
|
494
|
-
},
|
|
500
|
+
}, le = (e) => {
|
|
495
501
|
let t = () => BigInt.asUintN(64, e()), n = () => {
|
|
496
|
-
let e = t(), n = BigInt.asUintN(52, e >> 11n), r = n === 0n && e >> 63n == 1n ?
|
|
502
|
+
let e = t(), n = BigInt.asUintN(52, e >> 11n), r = n === 0n && e >> 63n == 1n ? Y(e, t) + 1n : Y(e, t), { buffer: i } = BigUint64Array.from([r << 52n | n]), a = new Float64Array(i)[0];
|
|
497
503
|
if (a == null) throw Error("unexpected");
|
|
498
504
|
return a;
|
|
499
505
|
};
|
|
@@ -504,28 +510,26 @@ var G = (e) => {
|
|
|
504
510
|
}
|
|
505
511
|
throw Error("Loop limit exceeded");
|
|
506
512
|
};
|
|
507
|
-
},
|
|
513
|
+
}, ue = [9600629759793949339n, 15726070495360670683n], de = 6364136223846793005n, X = "PCGMinimal", Z = class {
|
|
508
514
|
#e;
|
|
509
|
-
static name =
|
|
515
|
+
static name = X;
|
|
510
516
|
constructor(e) {
|
|
511
517
|
if (e && e[0] != null && e[1] != null) {
|
|
512
518
|
if (this.#e = new BigUint64Array(2), this.#e[0] == null || this.#e[1] == null) throw TypeError("unexpected");
|
|
513
519
|
this.#e[1] = e[1] << 1n | 1n, this.#t(), this.#e[0] += e[0], this.#t();
|
|
514
|
-
} else this.#e = BigUint64Array.from(
|
|
520
|
+
} else this.#e = BigUint64Array.from(ue);
|
|
515
521
|
}
|
|
516
522
|
#t() {
|
|
517
523
|
if (this.#e[0] == null || this.#e[1] == null) throw TypeError("unexpected");
|
|
518
|
-
this.#e[0] = this.#e[0] *
|
|
524
|
+
this.#e[0] = this.#e[0] * de + this.#e[1];
|
|
519
525
|
}
|
|
520
526
|
get #n() {
|
|
521
527
|
if (this.#e[0] == null || this.#e[1] == null) throw TypeError("unexpected");
|
|
522
528
|
let e = this.#e[0], t = Number(e >> 59n);
|
|
523
|
-
return
|
|
524
|
-
}
|
|
525
|
-
getRandU32() {
|
|
526
|
-
return this.#t(), this.#n;
|
|
529
|
+
return T(Number(BigInt.asUintN(32, (e ^ e >> 18n) >> 27n)), t);
|
|
527
530
|
}
|
|
528
|
-
|
|
531
|
+
getRandU32 = () => (this.#t(), this.#n);
|
|
532
|
+
getBoundedRandU32 = (e) => {
|
|
529
533
|
let t = 4294967296;
|
|
530
534
|
if (e > t) throw RangeError("`bound` exceeded limit (2^32)");
|
|
531
535
|
if (e <= 0) throw RangeError("'bound' must be positive");
|
|
@@ -535,49 +539,49 @@ var G = (e) => {
|
|
|
535
539
|
if (t >= n) return t % e;
|
|
536
540
|
}
|
|
537
541
|
throw Error("exceeded loop limit");
|
|
538
|
-
}
|
|
542
|
+
};
|
|
539
543
|
*genRandU32s(e, t) {
|
|
540
544
|
if (e <= 0) throw RangeError("'step' must be positive");
|
|
541
545
|
for (let n = 0; n < e; n++) yield typeof t == "number" ? this.getBoundedRandU32(t) : this.getRandU32();
|
|
542
546
|
}
|
|
543
547
|
};
|
|
544
|
-
Object.defineProperty(
|
|
548
|
+
Object.defineProperty(Z.prototype, Symbol.toStringTag, { value: X });
|
|
545
549
|
//#endregion
|
|
546
550
|
//#region lib/xoshiro_minimal.ts
|
|
547
|
-
var
|
|
551
|
+
var fe = [
|
|
548
552
|
13715198867125970446n,
|
|
549
553
|
3333371893450545919n,
|
|
550
554
|
5627726498316411518n,
|
|
551
555
|
8467276975966080893n
|
|
552
|
-
],
|
|
556
|
+
], Q = "XoshiroMinimal", $ = class {
|
|
553
557
|
bits = 64;
|
|
554
558
|
#e;
|
|
555
|
-
static name =
|
|
559
|
+
static name = Q;
|
|
556
560
|
constructor(e) {
|
|
557
561
|
if (e && e[0] != null && e[1] != null && e[2] != null && e[3] != null) {
|
|
558
562
|
if (this.#e = new BigUint64Array(4), this.#e[0] = e[0], this.#e[1] = e[1], this.#t(), this.#e[2] == null || this.#e[3] == null) throw TypeError("unexpected");
|
|
559
563
|
this.#e[2] += e[2], this.#e[3] += e[3];
|
|
560
|
-
} else this.#e = BigUint64Array.from(
|
|
564
|
+
} else this.#e = BigUint64Array.from(fe);
|
|
561
565
|
}
|
|
562
566
|
#t() {
|
|
563
567
|
if (this.#e[0] == null || this.#e[1] == null || this.#e[2] == null || this.#e[3] == null) throw TypeError("unexpected");
|
|
564
568
|
let e = this.#e[1] << 17n;
|
|
565
|
-
this.#e[2] ^= this.#e[0], this.#e[3] ^= this.#e[1], this.#e[1] ^= this.#e[2], this.#e[0] ^= this.#e[3], this.#e[2] ^= e, this.#e[3] =
|
|
569
|
+
this.#e[2] ^= this.#e[0], this.#e[3] ^= this.#e[1], this.#e[1] ^= this.#e[2], this.#e[0] ^= this.#e[3], this.#e[2] ^= e, this.#e[3] = E(this.#e[3], 45n);
|
|
566
570
|
}
|
|
567
571
|
get value() {
|
|
568
572
|
if (this.#e[0] == null || this.#e[3] == null) throw TypeError("unexpected");
|
|
569
|
-
let e =
|
|
573
|
+
let e = E(this.#e[0] + this.#e[3], 23n) + this.#e[0];
|
|
570
574
|
return BigInt.asUintN(64, e);
|
|
571
575
|
}
|
|
572
|
-
getRandU64() {
|
|
576
|
+
getRandU64 = () => {
|
|
573
577
|
let e = this.value;
|
|
574
578
|
return this.#t(), e;
|
|
575
|
-
}
|
|
576
|
-
getRandU32() {
|
|
579
|
+
};
|
|
580
|
+
getRandU32 = () => {
|
|
577
581
|
let e = BigInt.asUintN(32, this.getRandU64());
|
|
578
582
|
return Number(e);
|
|
579
|
-
}
|
|
580
|
-
getBoundedRandU64(e) {
|
|
583
|
+
};
|
|
584
|
+
getBoundedRandU64 = (e) => {
|
|
581
585
|
let t = 1n << 64n;
|
|
582
586
|
if (e > t) throw RangeError("`bound` exceeded limit");
|
|
583
587
|
if (e <= 0n) throw RangeError("`bound` must be positive");
|
|
@@ -587,13 +591,13 @@ var Y = [
|
|
|
587
591
|
if (t >= n) return t % e;
|
|
588
592
|
}
|
|
589
593
|
throw Error("exceeded loop limit");
|
|
590
|
-
}
|
|
591
|
-
getBoundedRandU32(e) {
|
|
594
|
+
};
|
|
595
|
+
getBoundedRandU32 = (e) => {
|
|
592
596
|
if (e > 2 ** 32) throw RangeError("`bound` exceeded limit");
|
|
593
597
|
if (e <= 0n) throw RangeError("`bound` must be positive");
|
|
594
598
|
let t = this.getBoundedRandU64(BigInt(e));
|
|
595
599
|
return Number(t);
|
|
596
|
-
}
|
|
600
|
+
};
|
|
597
601
|
*genRandU64s(e, t) {
|
|
598
602
|
if (e <= 0) throw RangeError("`step` must be positive");
|
|
599
603
|
for (let n = 0; n < e; ++n) yield t === void 0 ? this.getRandU64() : this.getBoundedRandU64(t);
|
|
@@ -603,50 +607,22 @@ var Y = [
|
|
|
603
607
|
for (let n = 0; n < e; ++n) yield t === void 0 ? this.getRandU32() : this.getBoundedRandU32(t);
|
|
604
608
|
}
|
|
605
609
|
};
|
|
606
|
-
Object.defineProperty(Z.prototype, Symbol.toStringTag, { value: X });
|
|
607
|
-
//#endregion
|
|
608
|
-
//#region lib/worker_stream.ts
|
|
609
|
-
var Q = "WorkerStream", $ = class extends ReadableStream {
|
|
610
|
-
close;
|
|
611
|
-
#e;
|
|
612
|
-
static name = Q;
|
|
613
|
-
constructor(e, t) {
|
|
614
|
-
let n, r, i;
|
|
615
|
-
super({
|
|
616
|
-
start: (t) => {
|
|
617
|
-
n = (e) => {
|
|
618
|
-
t.enqueue(e.data);
|
|
619
|
-
}, r = (i) => {
|
|
620
|
-
e.removeEventListener("message", n), e.removeEventListener("error", r), t.error(Error(i.message, { cause: i.error }));
|
|
621
|
-
}, i = () => {
|
|
622
|
-
e.removeEventListener("message", n), e.removeEventListener("error", r), t.close();
|
|
623
|
-
}, e.addEventListener("message", n), e.addEventListener("error", r);
|
|
624
|
-
},
|
|
625
|
-
cancel: () => {
|
|
626
|
-
e.removeEventListener("message", n), e.removeEventListener("error", r);
|
|
627
|
-
}
|
|
628
|
-
}, t), this.close = i, this.#e = e;
|
|
629
|
-
}
|
|
630
|
-
postMessage = (e, t) => {
|
|
631
|
-
this.#e.postMessage(e, t);
|
|
632
|
-
};
|
|
633
|
-
};
|
|
634
610
|
Object.defineProperty($.prototype, Symbol.toStringTag, { value: Q });
|
|
635
611
|
//#endregion
|
|
636
612
|
//#region lib/leb128.ts
|
|
637
|
-
var
|
|
613
|
+
var pe = (e) => {
|
|
638
614
|
let t = e < 0n;
|
|
639
615
|
t && (e *= -1n);
|
|
640
616
|
let n = e.toString(2).length, r = e === 1n << BigInt(n - 1) && !(n % 7) && t, i = Math.floor(n / 7) + 1;
|
|
641
617
|
return r ? i - 1 : i;
|
|
642
|
-
},
|
|
643
|
-
let t =
|
|
618
|
+
}, me = (e) => {
|
|
619
|
+
let t = pe(e);
|
|
644
620
|
e = BigInt.asUintN(t * 7, e);
|
|
645
621
|
let n = new Uint8Array(t);
|
|
646
622
|
for (let r = 0; r < t - 1; ++r) n[r] = Number(e & 127n) | 128, e >>= 7n;
|
|
647
623
|
let r = Number(e & 127n);
|
|
648
624
|
return n[t - 1] = r, e >>= 7n, n;
|
|
649
|
-
},
|
|
625
|
+
}, he = (e) => {
|
|
650
626
|
let t = e.length, n = 0n;
|
|
651
627
|
for (let [t, r] of e.entries()) {
|
|
652
628
|
let e = BigInt(r & 127);
|
|
@@ -655,4 +631,4 @@ var de = (e) => {
|
|
|
655
631
|
return BigInt.asIntN(7 * t, n);
|
|
656
632
|
};
|
|
657
633
|
//#endregion
|
|
658
|
-
export {
|
|
634
|
+
export { k as AsyncWorker, q as NamedError, Z as PCGMinimal, G as Rational, $ as XoshiroMinimal, R as bailliePSW, U as bailliePSWAsync, ie as compress, h as compressString, he as decodeLEB128, p as decodeRFC3986URIComponent, m as decompress, g as decompressString, me as encodeLEB128, f as encodeRFC3986URIComponent, C as exEuclidean, ce as factorial, le as floatRng, r as fromBase64, a as fromBase64URL, s as fromOct, re as getHash, b as getRandBIByBitLength, x as getRandBIByRange, B as getRandPrimeByBitLength, z as getRandPrimeByRange, oe as getRndInt, ee as getStringTag, l as isDeepStrictEqual, O as isSquare, D as jacobiSymbol, te as lazify, S as modPow, v as nullableStrictAt, ne as parseCSV, M as postFailed, j as postSuccess, y as residue, T as rot32, E as rot64, c as sameValueZero, _ as setTimeoutPromise, d as sleep, ae as strictAt, n as toBase64, i as toBase64URL, o as toOct, u as withResolvers };
|
package/dist/bundle.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var UtilFns=(function(e){var t=typeof document<`u`?document.currentScript:null,n=t&&t.tagName.toUpperCase()===`SCRIPT`&&t.src||new URL(`main.js`,document.baseURI).href;Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r=e=>{let t=Array.from(e,e=>String.fromCharCode(e));return btoa(t.join(``))},i=e=>{let t=atob(e);return Uint8Array.from(t,e=>e.charCodeAt(0))},a=e=>r(e).replaceAll(`+`,`-`).replaceAll(`/`,`_`).replace(/=+$/,``),o=e=>{let t=4-(e.length&3)&3;return i(e.concat(`=`.repeat(t)).replaceAll(`-`,`+`).replaceAll(`_`,`/`))},s=e=>{let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``),n=(6-t.length%6)%6,r=`0`.repeat(n).concat(t).matchAll(/.{6}/g);return Array.from(r,e=>Number.parseInt(e[0],16).toString(8).padStart(8,`0`)).join(``).replace(/^0+/,``)},c=e=>{let t=8-(e.length&7)&7,n=`0`.repeat(t).concat(e).matchAll(/.{8}/g),r=Array.from(n,e=>Number.parseInt(e[0],8).toString(16).padStart(6,`0`)).join(``).matchAll(/.{2}/g);return Uint8Array.from(r,e=>Number.parseInt(e[0],16))},l=(e,t)=>[e].includes(t),u=(e,t)=>{if(typeof e!=typeof t)return!1;let n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(t))return!1;if(typeof e==`string`||typeof e==`bigint`||typeof e==`boolean`||typeof e==`symbol`||e==null)return e===t;if(typeof e==`number`)return e!==e&&t!==t||e===t;if(typeof e==`function`)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!u(e[n],t[n]))return!1;return!0}if(e instanceof Set&&t instanceof Set)return!!u([...e.values()],[...t.values()]);if(e instanceof Map&&t instanceof Map)return!(!u([...e.keys()],[...t.keys()])||!u([...e.values()],[...t.values()]));if(n===`[object Object]`){let n=e,r=t,i=Object.keys(n),a=Object.keys(r);for(let e of i){let t=a.find(t=>t===e);if(t===void 0)return!1;let[i,o]=[n[e],r[t]];if(!u(i,o))return!1}return!0}throw TypeError(`comparing these objects is unavailable: ${e}, ${t}`,{cause:[e,t]})},d=()=>{let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}},
|
|
2
|
-
`&&!i?(n.push(r.trim()),t.push(n),n=[],r=``):r+=o}return n.push(r.trim()),t.push(n),t},m=async(e,t)=>{let n=new TextEncoder().encode(e),r=await crypto.subtle.digest(t,n);return new Uint8Array(r)},h=e=>encodeURIComponent(e).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),g=e=>{if(e.includes(`+`))throw URIError("an input string must not include `+`");return decodeURIComponent(e)},ne=(e,t)=>{let n=new Blob([e]).stream().pipeThrough(new CompressionStream(t));return new Response(n).bytes()},re=(e,t)=>{let n=new Blob([e]).stream().pipeThrough(new DecompressionStream(t));return new Response(n).bytes()},ie=async(e,t)=>{let n=new Blob([e]).stream().pipeThrough(new CompressionStream(t));return a(await new Response(n).bytes())},ae=(e,t)=>{let n=o(e),r=new Blob([n]).stream().pipeThrough(new DecompressionStream(t));return new Response(r).text()},oe=(e,t)=>new Promise((n,r)=>{setTimeout(async()=>{try{n(await e())}catch(e){r(e)}},t)}),_=(e,t)=>{if(t<-e.length||t>=e.length)throw RangeError("`index` is out of range");return e.at(t)},v=(e,t)=>{let n=_(e,t);if(n==null)throw TypeError(`value is nullable`);return n},y=(e,t)=>Math.floor(Math.random()*(t-e)+e),b=(e,t)=>{t<0n&&(t*=-1n);let n=e%t;return n<0n?n+t:n},x=(e,t=!1)=>{if(!Number.isFinite(e))throw RangeError("`length` is not a valid number");if(e<=0)throw RangeError("`length` must be positive");let n=Math.ceil(e/8),r=crypto.getRandomValues(new Uint8Array(n)),i=Array.from(r,e=>e.toString(2).padStart(8,`0`)).join(``).slice(0,e);return t&&(i=i.replace(/^\d/,`1`)),BigInt(`0b`+i)},S=(e,t)=>{if(e>=t)throw RangeError("`min` must be smaller than `max`");let n=t-e,r=n.toString(2).length;return e+(()=>{for(let e=0;e<1e5;e++){let e=x(r);if(e>=C(2n,BigInt(r),n))return e%n}throw Error(`Failed to generate a random bigint`)})()},C=(e,t,n)=>{if(n<1n)throw RangeError("`mod` must be positive");if(t<0n)throw RangeError("`power` must not be negative");if(e=b(e,n),n===1n)return 0n;if(e%n===1n||e%n===0n)return e;if(e===n-1n)return t&1n?n-1n:1n;let r=1n;for(;t>0n;)t&1n&&(r=r*e%n),e=e*e%n,t>>=1n;return r},w=(e,t)=>{if(e===0n&&t===0n)return{x:0n,y:0n,gcd:0n};if(e===0n)return t>0n?{x:0n,y:-1n,gcd:t}:{x:0n,y:1n,gcd:-t};if(t===0n)return e>0n?{x:1n,y:0n,gcd:e}:{x:-1n,y:0n,gcd:-e};let[n,r,i]=[1n,0n,e],[a,o,s]=[0n,-1n,t];for(;;){let e=i/s,t=i-e*s;if(t===0n)break;[n,a]=[a,n-e*a],[r,o]=[o,r-e*o],[i,s]=[s,t]}return s<0n&&(a*=-1n,o*=-1n,s*=-1n),{x:a,y:o,gcd:s}},T=(e,t)=>{if(e>=t)return 1n;let n=BigInt((t-2n).toString(2).length),r=(t-e)/2n;if(n*r<63n){let n=e;for(let r=e+2n;r<t;r+=2n)n*=r;return n}let i=e+r|1n;return T(e,i)*T(i,t)},se=e=>{let t=3n,n=1n,r=1n,i=BigInt(e.toString(2).length)-1n;for(let a=i-1n;a>-1n;--a){let i=(e>>a)+1n|1n;r*=T(t,i),t=i,n*=r}return n},ce=e=>{if(e<0n)throw RangeError(`'n' must be non-negative`);if(e===0n)return 1n;let t=e-BigInt(e.toString(2).match(/1/g)?.length??0);return se(e)<<t},E=(e,t)=>(e>>>(t&31)|e<<(-t&31))>>>0,D=(e,t)=>BigInt.asUintN(64,e>>(t&63n)|e<<(-t&63n)),O=(e,t)=>{if(t<1n||t%2n==0n)throw RangeError("`n` is out of range");for(;e<0n;)e+=t;e%=t;let n=1n;for(;e!==0n;){for(;e%2n==0n;){e/=2n;let r=t%8n;(r===3n||r===5n)&&(n*=-1n)}[e,t]=[t,e],e%4n==3n&&t%4n==3n&&(n*=-1n),e%=t}return t===1n?n:0n},k=e=>{if(e<0n)return!1;if(e===0n)return!0;let t=1n,n=e;for(;t+1n<n;){let r=(t+n)/2n;r*r<e?t=r:n=r}return e===t**2n||e===(t+1n)**2n},A=e=>{if(e<=1n)return!1;if(e%2n==0n)return e===2n;let t=e-1n,n=0n;for(;t%2n==0n;)t>>=1n,n+=1n;let[r,i]=[t,n],a=C(2n,r,e);if(a===1n)return!0;for(let t=0n;t<i;t++){if(a===e-1n)return!0;a=a*a%e}return!1},j=e=>{let t=5n,n=O(t,e);for(;n>0n;){if(t=t>0n?t+2n:t-2n,t*=-1n,t===-15n&&k(e))return[0n,0n];n=O(t,e)}return[t,n]},M=(e,t)=>(e&1n)==1n?b(e+t>>1n,t):b(e>>1n,t),N=(e,t,n,r)=>{let i=1n,a=n,o=e.toString(2).slice(1);for(let e of o)[i,a]=[b(i*a,t),M(a*a+r*i*i,t)],e===`1`&&([i,a]=[M(n*i+a,t),M(r*i+n*a,t)]);return[i,a]},P=(e,t,n,r)=>{if(e%2n!=1n)throw RangeError("`n` must be odd");let i=e+1n,a=0n;for(;i%2n==0n;)i>>=1n,a+=1n;let[o,s]=N(i,e,n,t),c=s;if(o===0n)return!0;r=C(r,i,e);for(let t=0n;t<a;t++){if(c===0n)return!0;c=b(c*c-2n*r,e),r=C(r,2n,e)}return!1},F=e=>{if(e<=1n)return!1;if(e%2n==0n)return e===2n;for(let t of[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n,41n,43n,47n,53n,59n,61n,67n,71n,73n,79n,83n,89n,97n,101n,103n,107n,109n,113n,127n,131n,137n,139n,149n,151n,157n,163n,167n,173n,179n,181n,191n,193n,197n,199n,211n,223n,227n,229n,233n,239n,241n,251n,257n,263n,269n,271n,277n,281n,283n,293n,307n,311n,313n,317n,331n,337n,347n,349n,353n,359n,367n,373n,379n,383n,389n,397n,401n,409n,419n,421n,431n,433n,439n,443n,449n,457n,461n,463n,467n,479n,487n,491n,499n])if(e%t===0n)return e===t;if(!A(e))return!1;let[t,n]=j(e);return n===0n?!1:P(e,t,1n,(1n-t)/4n)},I=(e,t)=>{if(t<2n)throw RangeError("`max` must be 2 or larger");for(let n=0;n<1e5;n++){let n=S(e,t);if(F(n))return n}throw Error(`No primes were found`)},L=(e,t=!1)=>{if(e<2)throw RangeError("`bitLength` must be 2 or larger");for(let n=0;n<1e5;n++){let n=x(e,t);if(F(n))return n}throw Error(`NoPrimesFound`)},R,z=()=>(R||=new Worker(new URL(`/assets/bpsw_worker-D0gmU_qc.js`,``+n.url),{type:`module`}),R),B=async e=>new Promise((t,n)=>{let r=z(),i=crypto.randomUUID(),a=e=>{let s=e.data;s.id===i&&(r.removeEventListener(`error`,o),r.removeEventListener(`message`,a),s.success?t(s.value):n(s.error))},o=e=>{r.removeEventListener(`error`,o),r.removeEventListener(`message`,a),n(e)};r.addEventListener(`message`,a),r.addEventListener(`error`,o);let s={id:i,value:e};r.postMessage(s)}),V=`Rational`,H=class e{#e;#t;static name=V;constructor(e,t){t===0n?(this.#t=0n,this.#e=e===0n?0n:e>0n?1n:-1n):t>0n?(this.#e=e,this.#t=t):(this.#e=-e,this.#t=-t),this.#n()}static fromDecimal(t,n=5){if(Number.isNaN(t))return new e(0n,0n);if(Math.abs(t)===1/0)return new e(t>0?1n:-1n,0n);let r=t<0;r&&(t*=-1);let i=BigInt(Math.floor(t)),a=t-Number(i);if(a===0)return new e(r?-i:i,1n);t=1/a;let[o,s]=[1n,i],[c,l]=[0n,1n];for(;`${l}`.length<n+1;){let n=BigInt(Math.floor(t)),i=t-Number(n);if([o,s]=[s,n*s+o],[c,l]=[l,n*l+c],i===0)return new e(r?-s:s,l);t=1/i}return new e(r?-o:o,c)}#n(){let{gcd:e}=w(this.#e,this.#t);e!==0n&&(this.#e/=e,this.#t/=e)}minus(){return new e(-this.#e,this.#t)}inverse(){return new e(this.#t,this.#e)}add(t){let n=this.#t*t.#t;return new e(this.#e*t.#t+t.#e*this.#t,n)}substr(e){return this.add(e.minus())}multiply(t){let n=this.#t*t.#t;return new e(this.#e*t.#e,n)}divide(e){return this.multiply(e.inverse())}mediant(t){let n=this.#t+t.#t;return new e(this.#e+t.#e,n)}toDecimal(){return Number(this.#e)/Number(this.#t)}toString(){return this.#e===0n&&this.#t===0n?`NaN`:this.#e===0n?`0`:this.#t===0n?this.#e<0n?`-Infinity`:`Infinity`:this.#t===1n?`${this.#e}`:`${this.#e}/${this.#t}`}valueOf(){return this.toDecimal()}toJSON(){return{type:`Rational`,value:[`0x`+this.#e.toString(16),`0x`+this.#t.toString(16)]}}static fromData(t){return new e(BigInt(t.value[0]),BigInt(t.value[1]))}static parse(t){let n=/^\s*(\d+)\s*\/\s*(\d+)\s*$/.exec(t);if(!n)throw Error(`cannot parse`);let r=n.at(1),i=n.at(2);if(!r||!i)throw Error(`cannot parse`);return new e(BigInt(r),BigInt(i))}};Object.defineProperty(H.prototype,Symbol.toStringTag,{value:V});var U=`NamedError`,W=class extends Error{static name=U;errName;constructor(e,t,n){super(t,n),this.errName=e}toJSON(){let e=(()=>{let e=this.cause;if(e!=null)return typeof e==`string`||typeof e==`number`||typeof e==`boolean`?e:typeof e==`bigint`?e.toString():typeof e==`object`?e instanceof Set||e instanceof Map?Object.fromEntries(e):e:void 0})(),{errName:t,message:n,stack:r}=this;return{name:t,message:n,stack:r,cause:e}}};Object.defineProperty(W.prototype,Symbol.toStringTag,{value:U});var G=e=>{if(e===0n)return 64n;let t=0n;for(;e>0n&&!(e&1n);)++t,e>>=1n;return BigInt.asUintN(64,t)},K=(e,t)=>{let n=0n,r=e&2047n,i=1023n-1n;if(r>0n)return i-=G(r),i;i-=11n;for(let e=0;e<1e5;++e){let e=t();if(e>0n)return i-=G(e),i;if(i-=64n,i<n)return n}throw Error(`loop exceeded limit`)},q=e=>{let t=()=>BigInt.asUintN(64,e()),n=()=>{let e=t(),n=BigInt.asUintN(52,e>>11n),r=n===0n&&e>>63n==1n?K(e,t)+1n:K(e,t),{buffer:i}=BigUint64Array.from([r<<52n|n]),a=new Float64Array(i)[0];if(a==null)throw Error(`unexpected`);return a};return()=>{for(let e=0;e<1e5;++e){let e=n();if(e<1)return e}throw Error(`Loop limit exceeded`)}},le=[9600629759793949339n,15726070495360670683n],ue=6364136223846793005n,J=`PCGMinimal`,Y=class{#e;static name=J;constructor(e){if(e&&e[0]!=null&&e[1]!=null){if(this.#e=new BigUint64Array(2),this.#e[0]==null||this.#e[1]==null)throw TypeError(`unexpected`);this.#e[1]=e[1]<<1n|1n,this.#t(),this.#e[0]+=e[0],this.#t()}else this.#e=BigUint64Array.from(le)}#t(){if(this.#e[0]==null||this.#e[1]==null)throw TypeError(`unexpected`);this.#e[0]=this.#e[0]*ue+this.#e[1]}get#n(){if(this.#e[0]==null||this.#e[1]==null)throw TypeError(`unexpected`);let e=this.#e[0],t=Number(e>>59n);return E(Number(BigInt.asUintN(32,(e^e>>18n)>>27n)),t)}getRandU32(){return this.#t(),this.#n}getBoundedRandU32(e){let t=4294967296;if(e>t)throw RangeError("`bound` exceeded limit (2^32)");if(e<=0)throw RangeError(`'bound' must be positive`);let n=t%e;for(let t=0;t<1e5;++t){let t=this.getRandU32();if(t>=n)return t%e}throw Error(`exceeded loop limit`)}*genRandU32s(e,t){if(e<=0)throw RangeError(`'step' must be positive`);for(let n=0;n<e;n++)yield typeof t==`number`?this.getBoundedRandU32(t):this.getRandU32()}};Object.defineProperty(Y.prototype,Symbol.toStringTag,{value:J});var de=[13715198867125970446n,3333371893450545919n,5627726498316411518n,8467276975966080893n],X=`XoshiroMinimal`,Z=class{bits=64;#e;static name=X;constructor(e){if(e&&e[0]!=null&&e[1]!=null&&e[2]!=null&&e[3]!=null){if(this.#e=new BigUint64Array(4),this.#e[0]=e[0],this.#e[1]=e[1],this.#t(),this.#e[2]==null||this.#e[3]==null)throw TypeError(`unexpected`);this.#e[2]+=e[2],this.#e[3]+=e[3]}else this.#e=BigUint64Array.from(de)}#t(){if(this.#e[0]==null||this.#e[1]==null||this.#e[2]==null||this.#e[3]==null)throw TypeError(`unexpected`);let e=this.#e[1]<<17n;this.#e[2]^=this.#e[0],this.#e[3]^=this.#e[1],this.#e[1]^=this.#e[2],this.#e[0]^=this.#e[3],this.#e[2]^=e,this.#e[3]=D(this.#e[3],45n)}get value(){if(this.#e[0]==null||this.#e[3]==null)throw TypeError(`unexpected`);let e=D(this.#e[0]+this.#e[3],23n)+this.#e[0];return BigInt.asUintN(64,e)}getRandU64(){let e=this.value;return this.#t(),e}getRandU32(){let e=BigInt.asUintN(32,this.getRandU64());return Number(e)}getBoundedRandU64(e){let t=1n<<64n;if(e>t)throw RangeError("`bound` exceeded limit");if(e<=0n)throw RangeError("`bound` must be positive");let n=t%e;for(let t=0;t<1e5;++t){let t=this.getRandU64();if(t>=n)return t%e}throw Error(`exceeded loop limit`)}getBoundedRandU32(e){if(e>2**32)throw RangeError("`bound` exceeded limit");if(e<=0n)throw RangeError("`bound` must be positive");let t=this.getBoundedRandU64(BigInt(e));return Number(t)}*genRandU64s(e,t){if(e<=0)throw RangeError("`step` must be positive");for(let n=0;n<e;++n)yield t===void 0?this.getRandU64():this.getBoundedRandU64(t)}*genRandU32s(e,t){if(e<=0)throw RangeError("`step` must be positive");for(let n=0;n<e;++n)yield t===void 0?this.getRandU32():this.getBoundedRandU32(t)}};Object.defineProperty(Z.prototype,Symbol.toStringTag,{value:X});var Q=`WorkerStream`,$=class extends ReadableStream{close;#e;static name=Q;constructor(e,t){let n,r,i;super({start:t=>{n=e=>{t.enqueue(e.data)},r=i=>{e.removeEventListener(`message`,n),e.removeEventListener(`error`,r),t.error(Error(i.message,{cause:i.error}))},i=()=>{e.removeEventListener(`message`,n),e.removeEventListener(`error`,r),t.close()},e.addEventListener(`message`,n),e.addEventListener(`error`,r)},cancel:()=>{e.removeEventListener(`message`,n),e.removeEventListener(`error`,r)}},t),this.close=i,this.#e=e}postMessage=(e,t)=>{this.#e.postMessage(e,t)}};Object.defineProperty($.prototype,Symbol.toStringTag,{value:Q});var fe=e=>{let t=e<0n;t&&(e*=-1n);let n=e.toString(2).length,r=e===1n<<BigInt(n-1)&&!(n%7)&&t,i=Math.floor(n/7)+1;return r?i-1:i};return e.NamedError=W,e.PCGMinimal=Y,e.Rational=H,e.WorkerStream=$,e.XoshiroMinimal=Z,e.bailliePSW=F,e.bailliePSWAsync=B,e.compress=ne,e.compressString=ie,e.decodeLEB128=e=>{let t=e.length,n=0n;for(let[t,r]of e.entries()){let e=BigInt(r&127);n+=e<<BigInt(7*t)}return BigInt.asIntN(7*t,n)},e.decodeRFC3986URIComponent=g,e.decompress=re,e.decompressString=ae,e.encodeLEB128=e=>{let t=fe(e);e=BigInt.asUintN(t*7,e);let n=new Uint8Array(t);for(let r=0;r<t-1;++r)n[r]=Number(e&127n)|128,e>>=7n;let r=Number(e&127n);return n[t-1]=r,e>>=7n,n},e.encodeRFC3986URIComponent=h,e.exEuclidean=w,e.factorial=ce,e.floatRng=q,e.fromBase64=i,e.fromBase64URL=o,e.fromOct=c,e.getHash=m,e.getRandBIByBitLength=x,e.getRandBIByRange=S,e.getRandPrimeByBitLength=L,e.getRandPrimeByRange=I,e.getRndInt=y,e.getStringTag=ee,e.isDeepStrictEqual=u,e.isSquare=k,e.jacobiSymbol=O,e.lazify=te,e.modPow=C,e.nullableStrictAt=_,e.parseCSV=p,e.residue=b,e.rot32=E,e.rot64=D,e.sameValueZero=l,e.setTimeoutPromise=oe,e.sleep=f,e.strictAt=v,e.toBase64=r,e.toBase64URL=a,e.toOct=s,e.withResolvers=d,e})({});
|
|
1
|
+
var UtilFns=(function(e){var t=typeof document<`u`?document.currentScript:null,n=t&&t.tagName.toUpperCase()===`SCRIPT`&&t.src||new URL(`main.js`,document.baseURI).href;Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r=e=>{let t=Array.from(e,e=>String.fromCharCode(e));return btoa(t.join(``))},i=e=>{let t=atob(e);return Uint8Array.from(t,e=>e.charCodeAt(0))},a=e=>r(e).replaceAll(`+`,`-`).replaceAll(`/`,`_`).replace(/=+$/,``),o=e=>{let t=4-(e.length&3)&3;return i(e.concat(`=`.repeat(t)).replaceAll(`-`,`+`).replaceAll(`_`,`/`))},s=e=>{let t=Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``),n=(6-t.length%6)%6,r=`0`.repeat(n).concat(t).matchAll(/.{6}/g);return Array.from(r,e=>Number.parseInt(e[0],16).toString(8).padStart(8,`0`)).join(``).replace(/^0+/,``)},c=e=>{let t=8-(e.length&7)&7,n=`0`.repeat(t).concat(e).matchAll(/.{8}/g),r=Array.from(n,e=>Number.parseInt(e[0],8).toString(16).padStart(6,`0`)).join(``).matchAll(/.{2}/g);return Uint8Array.from(r,e=>Number.parseInt(e[0],16))},l=(e,t)=>[e].includes(t),u=(e,t)=>{if(typeof e!=typeof t)return!1;let n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(t))return!1;if(typeof e==`string`||typeof e==`bigint`||typeof e==`boolean`||typeof e==`symbol`||e==null)return e===t;if(typeof e==`number`)return e!==e&&t!==t||e===t;if(typeof e==`function`)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!u(e[n],t[n]))return!1;return!0}if(e instanceof Set&&t instanceof Set)return!!u([...e.values()],[...t.values()]);if(e instanceof Map&&t instanceof Map)return!(!u([...e.keys()],[...t.keys()])||!u([...e.values()],[...t.values()]));if(n===`[object Object]`){let n=e,r=t,i=Object.keys(n),a=Object.keys(r);for(let e of i){let t=a.find(t=>t===e);if(t===void 0)return!1;let[i,o]=[n[e],r[t]];if(!u(i,o))return!1}return!0}throw TypeError(`comparing these objects is unavailable: ${e}, ${t}`,{cause:[e,t]})},d=()=>{let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}},ee=e=>new Promise(t=>setTimeout(t,e)),te=e=>Object.prototype.toString.call(e).slice(8,-1),ne=e=>(...t)=>()=>e(...t),f=e=>{let t=[],n=[],r=``,i=!1;for(let a=0;a<e.length;a++){let o=e[a];o===`"`&&(a===0||e[a-1]!==`\\`)?i=!i:o===`,`&&!i?(n.push(r.trim()),r=``):o===`
|
|
2
|
+
`&&!i?(n.push(r.trim()),t.push(n),n=[],r=``):r+=o}return n.push(r.trim()),t.push(n),t},p=async(e,t)=>{let n=new TextEncoder().encode(e),r=await crypto.subtle.digest(t,n);return new Uint8Array(r)},re=e=>encodeURIComponent(e).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),ie=e=>{if(e.includes(`+`))throw URIError("an input string must not include `+`");return decodeURIComponent(e)},m=(e,t)=>{let n=new Blob([e]).stream().pipeThrough(new CompressionStream(t));return new Response(n).bytes()},h=(e,t)=>{let n=new Blob([e]).stream().pipeThrough(new DecompressionStream(t));return new Response(n).bytes()},g=async(e,t)=>{let n=new Blob([e]).stream().pipeThrough(new CompressionStream(t));return a(await new Response(n).bytes())},ae=(e,t)=>{let n=o(e),r=new Blob([n]).stream().pipeThrough(new DecompressionStream(t));return new Response(r).text()},oe=(e,t)=>new Promise((n,r)=>{setTimeout(async()=>{try{n(await e())}catch(e){r(e)}},t)}),_=(e,t)=>{if(t<-e.length||t>=e.length)throw RangeError("`index` is out of range");return e.at(t)},se=(e,t)=>{let n=_(e,t);if(n==null)throw TypeError(`value is nullable`);return n},v=(e,t)=>Math.floor(Math.random()*(t-e)+e),y=(e,t)=>{t<0n&&(t*=-1n);let n=e%t;return n<0n?n+t:n},b=(e,t=!1)=>{if(!Number.isFinite(e))throw RangeError("`length` is not a valid number");if(e<=0)throw RangeError("`length` must be positive");let n=Math.ceil(e/8),r=crypto.getRandomValues(new Uint8Array(n)),i=Array.from(r,e=>e.toString(2).padStart(8,`0`)).join(``).slice(0,e);return t&&(i=i.replace(/^\d/,`1`)),BigInt(`0b`+i)},x=(e,t)=>{if(e>=t)throw RangeError("`min` must be smaller than `max`");let n=t-e,r=n.toString(2).length;return e+(()=>{for(let e=0;e<1e5;e++){let e=b(r);if(e>=S(2n,BigInt(r),n))return e%n}throw Error(`Failed to generate a random bigint`)})()},S=(e,t,n)=>{if(n<1n)throw RangeError("`mod` must be positive");if(t<0n)throw RangeError("`power` must not be negative");if(e=y(e,n),n===1n)return 0n;if(e%n===1n||e%n===0n)return e;if(e===n-1n)return t&1n?n-1n:1n;let r=1n;for(;t>0n;)t&1n&&(r=r*e%n),e=e*e%n,t>>=1n;return r},C=(e,t)=>{if(e===0n&&t===0n)return{x:0n,y:0n,gcd:0n};if(e===0n)return t>0n?{x:0n,y:-1n,gcd:t}:{x:0n,y:1n,gcd:-t};if(t===0n)return e>0n?{x:1n,y:0n,gcd:e}:{x:-1n,y:0n,gcd:-e};let[n,r,i]=[1n,0n,e],[a,o,s]=[0n,-1n,t];for(;;){let e=i/s,t=i-e*s;if(t===0n)break;[n,a]=[a,n-e*a],[r,o]=[o,r-e*o],[i,s]=[s,t]}return s<0n&&(a*=-1n,o*=-1n,s*=-1n),{x:a,y:o,gcd:s}},w=(e,t)=>{if(e>=t)return 1n;let n=BigInt((t-2n).toString(2).length),r=(t-e)/2n;if(n*r<63n){let n=e;for(let r=e+2n;r<t;r+=2n)n*=r;return n}let i=e+r|1n;return w(e,i)*w(i,t)},ce=e=>{let t=3n,n=1n,r=1n,i=BigInt(e.toString(2).length)-1n;for(let a=i-1n;a>-1n;--a){let i=(e>>a)+1n|1n;r*=w(t,i),t=i,n*=r}return n},le=e=>{if(e<0n)throw RangeError(`'n' must be non-negative`);if(e===0n)return 1n;let t=e-BigInt(e.toString(2).match(/1/g)?.length??0);return ce(e)<<t},T=(e,t)=>(e>>>(t&31)|e<<(-t&31))>>>0,E=(e,t)=>BigInt.asUintN(64,e>>(t&63n)|e<<(-t&63n)),D=(e,t)=>{if(t<1n||t%2n==0n)throw RangeError("`n` is out of range");for(;e<0n;)e+=t;e%=t;let n=1n;for(;e!==0n;){for(;e%2n==0n;){e/=2n;let r=t%8n;(r===3n||r===5n)&&(n*=-1n)}[e,t]=[t,e],e%4n==3n&&t%4n==3n&&(n*=-1n),e%=t}return t===1n?n:0n},O=e=>{if(e<0n)return!1;if(e===0n)return!0;let t=1n,n=e;for(;t+1n<n;){let r=(t+n)/2n;r*r<e?t=r:n=r}return e===t**2n||e===(t+1n)**2n},k=class{#e;constructor(e){this.#e=e}postMessage=(e,t)=>new Promise((n,r)=>{let i=crypto.randomUUID(),a=e=>{let t=e.data;t.id===i&&(this.#e.removeEventListener(`message`,a),this.#e.removeEventListener(`error`,o),t.success?n(t.value):r(t.error))},o=e=>{this.#e.removeEventListener(`message`,a),this.#e.removeEventListener(`error`,o),r(e.error)};this.#e.addEventListener(`message`,a),this.#e.addEventListener(`error`,o);let s={value:e,id:i};this.#e.postMessage(s,t)})},A=()=>typeof window>`u`&&typeof self<`u`&&`importScripts`in self,j=(e,t)=>{if(!A())throw Error(`this function must be used in Worker`);let n={success:!0,value:e,id:t};self.postMessage(n)},M=(e,t)=>{if(!A())throw Error(`this function must be used in Worker`);let n={success:!1,error:e,id:t};self.postMessage(n)},N=e=>{if(e<=1n)return!1;if(e%2n==0n)return e===2n;let t=e-1n,n=0n;for(;t%2n==0n;)t>>=1n,n+=1n;let[r,i]=[t,n],a=S(2n,r,e);if(a===1n)return!0;for(let t=0n;t<i;t++){if(a===e-1n)return!0;a=a*a%e}return!1},P=e=>{let t=5n,n=D(t,e);for(;n>0n;){if(t=t>0n?t+2n:t-2n,t*=-1n,t===-15n&&O(e))return[0n,0n];n=D(t,e)}return[t,n]},F=(e,t)=>(e&1n)==1n?y(e+t>>1n,t):y(e>>1n,t),I=(e,t,n,r)=>{let i=1n,a=n,o=e.toString(2).slice(1);for(let e of o)[i,a]=[y(i*a,t),F(a*a+r*i*i,t)],e===`1`&&([i,a]=[F(n*i+a,t),F(r*i+n*a,t)]);return[i,a]},L=(e,t,n,r)=>{if(e%2n!=1n)throw RangeError("`n` must be odd");let i=e+1n,a=0n;for(;i%2n==0n;)i>>=1n,a+=1n;let[o,s]=I(i,e,n,t),c=s;if(o===0n)return!0;r=S(r,i,e);for(let t=0n;t<a;t++){if(c===0n)return!0;c=y(c*c-2n*r,e),r=S(r,2n,e)}return!1},R=e=>{if(e<=1n)return!1;if(e%2n==0n)return e===2n;for(let t of[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n,41n,43n,47n,53n,59n,61n,67n,71n,73n,79n,83n,89n,97n,101n,103n,107n,109n,113n,127n,131n,137n,139n,149n,151n,157n,163n,167n,173n,179n,181n,191n,193n,197n,199n,211n,223n,227n,229n,233n,239n,241n,251n,257n,263n,269n,271n,277n,281n,283n,293n,307n,311n,313n,317n,331n,337n,347n,349n,353n,359n,367n,373n,379n,383n,389n,397n,401n,409n,419n,421n,431n,433n,439n,443n,449n,457n,461n,463n,467n,479n,487n,491n,499n])if(e%t===0n)return e===t;if(!N(e))return!1;let[t,n]=P(e);return n===0n?!1:L(e,t,1n,(1n-t)/4n)},z=(e,t)=>{if(t<2n)throw RangeError("`max` must be 2 or larger");for(let n=0;n<1e5;n++){let n=x(e,t);if(R(n))return n}throw Error(`no primes were found`)},B=(e,t=!1)=>{if(e<2)throw RangeError("`bitLength` must be 2 or larger");for(let n=0;n<1e5;n++){let n=b(e,t);if(R(n))return n}throw Error(`no primes were found`)},V,H=()=>(V||=new k(new Worker(new URL(`/assets/bpsw_worker-B1aaSJNb.js`,``+n.url),{type:`module`})),V),U=e=>H().postMessage(e),W=`Rational`,G=class e{#e;#t;static name=W;constructor(e,t){t===0n?(this.#t=0n,this.#e=e===0n?0n:e>0n?1n:-1n):t>0n?(this.#e=e,this.#t=t):(this.#e=-e,this.#t=-t),this.#n()}static fromDecimal(t,n=5){if(Number.isNaN(t))return new e(0n,0n);if(Math.abs(t)===1/0)return new e(t>0?1n:-1n,0n);let r=t<0;r&&(t*=-1);let i=BigInt(Math.floor(t)),a=t-Number(i);if(a===0)return new e(r?-i:i,1n);t=1/a;let[o,s]=[1n,i],[c,l]=[0n,1n];for(;`${l}`.length<=n;){let n=BigInt(Math.floor(t)),i=t-Number(n);if([o,s]=[s,n*s+o],[c,l]=[l,n*l+c],i===0)return new e(r?-s:s,l);t=1/i}return new e(r?-o:o,c)}#n(){let{gcd:e}=C(this.#e,this.#t);e!==0n&&(this.#e/=e,this.#t/=e)}minus=()=>new e(-this.#e,this.#t);inverse=()=>new e(this.#t,this.#e);add=t=>{let n=this.#t*t.#t;return new e(this.#e*t.#t+t.#e*this.#t,n)};substr=e=>this.add(e.minus());multiply=t=>{let n=this.#t*t.#t;return new e(this.#e*t.#e,n)};divide=e=>this.multiply(e.inverse());mediant=t=>{let n=this.#t+t.#t;return new e(this.#e+t.#e,n)};toDecimal=()=>Number(this.#e)/Number(this.#t);toString=()=>this.#e===0n&&this.#t===0n?`NaN`:this.#e===0n?`0`:this.#t===0n?this.#e<0n?`-Infinity`:`Infinity`:this.#t===1n?`${this.#e}`:`${this.#e}/${this.#t}`;valueOf=()=>this.toDecimal();toJSON=()=>({type:`Rational`,value:[`0x`+this.#e.toString(16),`0x`+this.#t.toString(16)]});static fromData(t){return new e(BigInt(t.value[0]),BigInt(t.value[1]))}static parse(t){let n=/^\s*(\d+)\s*\/\s*(\d+)\s*$/.exec(t);if(!n)throw Error(`cannot parse`);let r=n.at(1),i=n.at(2);if(!r||!i)throw Error(`cannot parse`);return new e(BigInt(r),BigInt(i))}};Object.defineProperty(G.prototype,Symbol.toStringTag,{value:W});var K=`NamedError`,q=class extends Error{static name=K;errName;constructor(e,t,n){super(t,n),this.errName=e}toJSON=()=>{let e=(()=>{let e=this.cause;if(e==null)return e;let t=e.toString();return t===`[object Object]`?JSON.stringify(e):t})(),{errName:t,message:n,stack:r}=this;return{name:t,message:n,stack:r,cause:e}}};Object.defineProperty(q.prototype,Symbol.toStringTag,{value:K});var J=e=>{if(e===0n)return 64n;let t=0n;for(;e>0n&&!(e&1n);)++t,e>>=1n;return BigInt.asUintN(64,t)},Y=(e,t)=>{let n=0n,r=e&2047n,i=1023n-1n;if(r>0n)return i-=J(r),i;i-=11n;for(let e=0;e<1e5;++e){let e=t();if(e>0n)return i-=J(e),i;if(i-=64n,i<n)return n}throw Error(`loop exceeded limit`)},ue=e=>{let t=()=>BigInt.asUintN(64,e()),n=()=>{let e=t(),n=BigInt.asUintN(52,e>>11n),r=n===0n&&e>>63n==1n?Y(e,t)+1n:Y(e,t),{buffer:i}=BigUint64Array.from([r<<52n|n]),a=new Float64Array(i)[0];if(a==null)throw Error(`unexpected`);return a};return()=>{for(let e=0;e<1e5;++e){let e=n();if(e<1)return e}throw Error(`Loop limit exceeded`)}},de=[9600629759793949339n,15726070495360670683n],fe=6364136223846793005n,X=`PCGMinimal`,Z=class{#e;static name=X;constructor(e){if(e&&e[0]!=null&&e[1]!=null){if(this.#e=new BigUint64Array(2),this.#e[0]==null||this.#e[1]==null)throw TypeError(`unexpected`);this.#e[1]=e[1]<<1n|1n,this.#t(),this.#e[0]+=e[0],this.#t()}else this.#e=BigUint64Array.from(de)}#t(){if(this.#e[0]==null||this.#e[1]==null)throw TypeError(`unexpected`);this.#e[0]=this.#e[0]*fe+this.#e[1]}get#n(){if(this.#e[0]==null||this.#e[1]==null)throw TypeError(`unexpected`);let e=this.#e[0],t=Number(e>>59n);return T(Number(BigInt.asUintN(32,(e^e>>18n)>>27n)),t)}getRandU32=()=>(this.#t(),this.#n);getBoundedRandU32=e=>{let t=4294967296;if(e>t)throw RangeError("`bound` exceeded limit (2^32)");if(e<=0)throw RangeError(`'bound' must be positive`);let n=t%e;for(let t=0;t<1e5;++t){let t=this.getRandU32();if(t>=n)return t%e}throw Error(`exceeded loop limit`)};*genRandU32s(e,t){if(e<=0)throw RangeError(`'step' must be positive`);for(let n=0;n<e;n++)yield typeof t==`number`?this.getBoundedRandU32(t):this.getRandU32()}};Object.defineProperty(Z.prototype,Symbol.toStringTag,{value:X});var pe=[13715198867125970446n,3333371893450545919n,5627726498316411518n,8467276975966080893n],Q=`XoshiroMinimal`,$=class{bits=64;#e;static name=Q;constructor(e){if(e&&e[0]!=null&&e[1]!=null&&e[2]!=null&&e[3]!=null){if(this.#e=new BigUint64Array(4),this.#e[0]=e[0],this.#e[1]=e[1],this.#t(),this.#e[2]==null||this.#e[3]==null)throw TypeError(`unexpected`);this.#e[2]+=e[2],this.#e[3]+=e[3]}else this.#e=BigUint64Array.from(pe)}#t(){if(this.#e[0]==null||this.#e[1]==null||this.#e[2]==null||this.#e[3]==null)throw TypeError(`unexpected`);let e=this.#e[1]<<17n;this.#e[2]^=this.#e[0],this.#e[3]^=this.#e[1],this.#e[1]^=this.#e[2],this.#e[0]^=this.#e[3],this.#e[2]^=e,this.#e[3]=E(this.#e[3],45n)}get value(){if(this.#e[0]==null||this.#e[3]==null)throw TypeError(`unexpected`);let e=E(this.#e[0]+this.#e[3],23n)+this.#e[0];return BigInt.asUintN(64,e)}getRandU64=()=>{let e=this.value;return this.#t(),e};getRandU32=()=>{let e=BigInt.asUintN(32,this.getRandU64());return Number(e)};getBoundedRandU64=e=>{let t=1n<<64n;if(e>t)throw RangeError("`bound` exceeded limit");if(e<=0n)throw RangeError("`bound` must be positive");let n=t%e;for(let t=0;t<1e5;++t){let t=this.getRandU64();if(t>=n)return t%e}throw Error(`exceeded loop limit`)};getBoundedRandU32=e=>{if(e>2**32)throw RangeError("`bound` exceeded limit");if(e<=0n)throw RangeError("`bound` must be positive");let t=this.getBoundedRandU64(BigInt(e));return Number(t)};*genRandU64s(e,t){if(e<=0)throw RangeError("`step` must be positive");for(let n=0;n<e;++n)yield t===void 0?this.getRandU64():this.getBoundedRandU64(t)}*genRandU32s(e,t){if(e<=0)throw RangeError("`step` must be positive");for(let n=0;n<e;++n)yield t===void 0?this.getRandU32():this.getBoundedRandU32(t)}};Object.defineProperty($.prototype,Symbol.toStringTag,{value:Q});var me=e=>{let t=e<0n;t&&(e*=-1n);let n=e.toString(2).length,r=e===1n<<BigInt(n-1)&&!(n%7)&&t,i=Math.floor(n/7)+1;return r?i-1:i};return e.AsyncWorker=k,e.NamedError=q,e.PCGMinimal=Z,e.Rational=G,e.XoshiroMinimal=$,e.bailliePSW=R,e.bailliePSWAsync=U,e.compress=m,e.compressString=g,e.decodeLEB128=e=>{let t=e.length,n=0n;for(let[t,r]of e.entries()){let e=BigInt(r&127);n+=e<<BigInt(7*t)}return BigInt.asIntN(7*t,n)},e.decodeRFC3986URIComponent=ie,e.decompress=h,e.decompressString=ae,e.encodeLEB128=e=>{let t=me(e);e=BigInt.asUintN(t*7,e);let n=new Uint8Array(t);for(let r=0;r<t-1;++r)n[r]=Number(e&127n)|128,e>>=7n;let r=Number(e&127n);return n[t-1]=r,e>>=7n,n},e.encodeRFC3986URIComponent=re,e.exEuclidean=C,e.factorial=le,e.floatRng=ue,e.fromBase64=i,e.fromBase64URL=o,e.fromOct=c,e.getHash=p,e.getRandBIByBitLength=b,e.getRandBIByRange=x,e.getRandPrimeByBitLength=B,e.getRandPrimeByRange=z,e.getRndInt=v,e.getStringTag=te,e.isDeepStrictEqual=u,e.isSquare=O,e.jacobiSymbol=D,e.lazify=ne,e.modPow=S,e.nullableStrictAt=_,e.parseCSV=f,e.postFailed=M,e.postSuccess=j,e.residue=y,e.rot32=T,e.rot64=E,e.sameValueZero=l,e.setTimeoutPromise=oe,e.sleep=ee,e.strictAt=se,e.toBase64=r,e.toBase64URL=a,e.toOct=s,e.withResolvers=d,e})({});
|
package/dist/fraction.d.ts
CHANGED
|
@@ -22,55 +22,55 @@ export declare class Rational {
|
|
|
22
22
|
* returns a fraction multiplied by -1
|
|
23
23
|
* @returns
|
|
24
24
|
*/
|
|
25
|
-
minus()
|
|
25
|
+
readonly minus: () => Rational;
|
|
26
26
|
/**
|
|
27
27
|
* returns inverse of this fraction
|
|
28
28
|
* @returns
|
|
29
29
|
*/
|
|
30
|
-
inverse()
|
|
30
|
+
readonly inverse: () => Rational;
|
|
31
31
|
/**
|
|
32
32
|
* returns `this + right`
|
|
33
33
|
* @param right
|
|
34
34
|
* @returns
|
|
35
35
|
*/
|
|
36
|
-
add(right: Rational)
|
|
36
|
+
readonly add: (right: Rational) => Rational;
|
|
37
37
|
/**
|
|
38
38
|
* returns `this - right`
|
|
39
39
|
* @param right
|
|
40
40
|
* @returns
|
|
41
41
|
*/
|
|
42
|
-
substr(right: Rational)
|
|
42
|
+
readonly substr: (right: Rational) => Rational;
|
|
43
43
|
/**
|
|
44
44
|
* returns `this * right`
|
|
45
45
|
* @param right
|
|
46
46
|
* @returns
|
|
47
47
|
*/
|
|
48
|
-
multiply(right: Rational)
|
|
48
|
+
readonly multiply: (right: Rational) => Rational;
|
|
49
49
|
/**
|
|
50
50
|
* returns `this / right`
|
|
51
51
|
* @param right
|
|
52
52
|
* @returns
|
|
53
53
|
*/
|
|
54
|
-
divide(right: Rational)
|
|
54
|
+
readonly divide: (right: Rational) => Rational;
|
|
55
55
|
/**
|
|
56
56
|
* returns mediant
|
|
57
57
|
* @param this `a / b`
|
|
58
58
|
* @param right `c / d`
|
|
59
59
|
* @returns `(a + c) / (b + d)`
|
|
60
60
|
*/
|
|
61
|
-
mediant(right: Rational)
|
|
61
|
+
readonly mediant: (right: Rational) => Rational;
|
|
62
62
|
/**
|
|
63
63
|
* returns `number` type decimal
|
|
64
64
|
* @returns decimal
|
|
65
65
|
*/
|
|
66
|
-
toDecimal()
|
|
66
|
+
readonly toDecimal: () => number;
|
|
67
67
|
/**
|
|
68
68
|
* returns `'numerator/denominator'`
|
|
69
69
|
* @returns string form
|
|
70
70
|
*/
|
|
71
|
-
toString()
|
|
72
|
-
valueOf()
|
|
73
|
-
toJSON()
|
|
71
|
+
readonly toString: () => string;
|
|
72
|
+
readonly valueOf: () => number;
|
|
73
|
+
readonly toJSON: () => RationalData;
|
|
74
74
|
/**
|
|
75
75
|
* makes instance from RationalData
|
|
76
76
|
* @param data
|
package/dist/leb128.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const encodeLEB128: (bigint: bigint) => Uint8Array<ArrayBuffer>;
|
|
2
|
-
export declare const decodeLEB128: (
|
|
2
|
+
export declare const decodeLEB128: (LEB128: Uint8Array<ArrayBuffer>) => bigint;
|
package/dist/main.d.ts
CHANGED
package/dist/named_error.d.ts
CHANGED
|
@@ -7,11 +7,11 @@ declare class NamedError<EName extends string> extends Error {
|
|
|
7
7
|
static readonly name = "NamedError";
|
|
8
8
|
readonly errName: EName;
|
|
9
9
|
constructor(errName: EName, message: string, options?: ErrorOptions);
|
|
10
|
-
toJSON()
|
|
10
|
+
readonly toJSON: () => {
|
|
11
11
|
name: EName;
|
|
12
12
|
message: string;
|
|
13
13
|
stack: string | undefined;
|
|
14
|
-
cause: string |
|
|
14
|
+
cause: string | null | undefined;
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
export { NamedError };
|
package/dist/pcg_minimal.d.ts
CHANGED
|
@@ -24,11 +24,11 @@ export declare class PCGMinimal {
|
|
|
24
24
|
*
|
|
25
25
|
* @returns a random 32-bit unsigned integer
|
|
26
26
|
*/
|
|
27
|
-
getRandU32()
|
|
27
|
+
readonly getRandU32: () => number;
|
|
28
28
|
/**
|
|
29
29
|
* @returns a random 32-bit unsigned integer less than `bound`
|
|
30
30
|
*/
|
|
31
|
-
getBoundedRandU32(bound: number)
|
|
31
|
+
readonly getBoundedRandU32: (bound: number) => number;
|
|
32
32
|
/**
|
|
33
33
|
*
|
|
34
34
|
* @param step the number of needed random integers
|
package/dist/types.d.ts
CHANGED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export type UUID = ReturnType<typeof crypto.randomUUID>;
|
|
2
|
-
interface WorkerSuccessedResult<T> {
|
|
3
|
-
readonly id: UUID;
|
|
4
|
-
success: true;
|
|
5
|
-
value: T;
|
|
6
|
-
}
|
|
7
|
-
interface WorkerFailedResult<E = unknown> {
|
|
8
|
-
readonly id: UUID;
|
|
9
|
-
success: false;
|
|
10
|
-
error: E;
|
|
11
|
-
}
|
|
12
|
-
export type WorkerResult<T, E = unknown> = WorkerSuccessedResult<T> | WorkerFailedResult<E>;
|
|
13
|
-
export interface WorkerMessage<T> {
|
|
14
|
-
readonly id: UUID;
|
|
15
|
-
value: T;
|
|
16
|
-
}
|
|
17
|
-
export {};
|
|
@@ -22,10 +22,10 @@ export declare class XoshiroMinimal {
|
|
|
22
22
|
*/
|
|
23
23
|
constructor(seed?: BigUint64Array<ArrayBuffer>);
|
|
24
24
|
get value(): bigint;
|
|
25
|
-
getRandU64()
|
|
26
|
-
getRandU32()
|
|
27
|
-
getBoundedRandU64(bound: bigint)
|
|
28
|
-
getBoundedRandU32(bound: number)
|
|
25
|
+
readonly getRandU64: () => bigint;
|
|
26
|
+
readonly getRandU32: () => number;
|
|
27
|
+
readonly getBoundedRandU64: (bound: bigint) => bigint;
|
|
28
|
+
readonly getBoundedRandU32: (bound: number) => number;
|
|
29
29
|
genRandU64s(step: number, bound?: bigint): Generator<bigint, void, unknown>;
|
|
30
30
|
genRandU32s(step: number, bound?: number): Generator<number, void, unknown>;
|
|
31
31
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tktb-tess/util-fns",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "Utility functions for personal use",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"@types/node": "^25.5.2",
|
|
30
30
|
"typescript": "^6.0.2",
|
|
31
31
|
"unplugin-dts": "1.0.0-beta.6",
|
|
32
|
-
"vite": "^8.0.
|
|
32
|
+
"vite": "^8.0.4",
|
|
33
33
|
"vitest": "^4.1.2"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(function(){let e=(e,t)=>{t<0n&&(t*=-1n);let n=e%t;return n<0n?n+t:n},t=(t,n,r)=>{if(r<1n)throw RangeError("`mod` must be positive");if(n<0n)throw RangeError("`power` must not be negative");if(t=e(t,r),r===1n)return 0n;if(t%r===1n||t%r===0n)return t;if(t===r-1n)return n&1n?r-1n:1n;let i=1n;for(;n>0n;)n&1n&&(i=i*t%r),t=t*t%r,n>>=1n;return i},n=(e,t)=>{if(t<1n||t%2n==0n)throw RangeError("`n` is out of range");for(;e<0n;)e+=t;e%=t;let n=1n;for(;e!==0n;){for(;e%2n==0n;){e/=2n;let r=t%8n;(r===3n||r===5n)&&(n*=-1n)}[e,t]=[t,e],e%4n==3n&&t%4n==3n&&(n*=-1n),e%=t}return t===1n?n:0n},r=e=>{if(e<0n)return!1;if(e===0n)return!0;let t=1n,n=e;for(;t+1n<n;){let r=(t+n)/2n;r*r<e?t=r:n=r}return e===t**2n||e===(t+1n)**2n},i=e=>{if(e<=1n)return!1;if(e%2n==0n)return e===2n;let n=e-1n,r=0n;for(;n%2n==0n;)n>>=1n,r+=1n;let[i,a]=[n,r],o=t(2n,i,e);if(o===1n)return!0;for(let t=0n;t<a;t++){if(o===e-1n)return!0;o=o*o%e}return!1},a=e=>{let t=5n,i=n(t,e);for(;i>0n;){if(t=t>0n?t+2n:t-2n,t*=-1n,t===-15n&&r(e))return[0n,0n];i=n(t,e)}return[t,i]},o=(t,n)=>(t&1n)==1n?e(t+n>>1n,n):e(t>>1n,n),s=(t,n,r,i)=>{let a=1n,s=r,c=t.toString(2).slice(1);for(let t of c)[a,s]=[e(a*s,n),o(s*s+i*a*a,n)],t===`1`&&([a,s]=[o(r*a+s,n),o(i*a+r*s,n)]);return[a,s]},c=(n,r,i,a)=>{if(n%2n!=1n)throw RangeError("`n` must be odd");let o=n+1n,c=0n;for(;o%2n==0n;)o>>=1n,c+=1n;let[l,u]=s(o,n,i,r),d=u;if(l===0n)return!0;a=t(a,o,n);for(let r=0n;r<c;r++){if(d===0n)return!0;d=e(d*d-2n*a,n),a=t(a,2n,n)}return!1},l=e=>{if(e<=1n)return!1;if(e%2n==0n)return e===2n;for(let t of[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n,41n,43n,47n,53n,59n,61n,67n,71n,73n,79n,83n,89n,97n,101n,103n,107n,109n,113n,127n,131n,137n,139n,149n,151n,157n,163n,167n,173n,179n,181n,191n,193n,197n,199n,211n,223n,227n,229n,233n,239n,241n,251n,257n,263n,269n,271n,277n,281n,283n,293n,307n,311n,313n,317n,331n,337n,347n,349n,353n,359n,367n,373n,379n,383n,389n,397n,401n,409n,419n,421n,431n,433n,439n,443n,449n,457n,461n,463n,467n,479n,487n,491n,499n])if(e%t===0n)return e===t;if(!i(e))return!1;let[t,n]=a(e);return n===0n?!1:c(e,t,1n,(1n-t)/4n)};globalThis.onmessage=e=>{let t=e.data;try{let e={success:!0,value:l(t.value),id:t.id};postMessage(e)}catch(e){let n={success:!1,error:e,id:t.id};postMessage(n)}}})();
|
package/dist/worker_stream.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare class WorkerStream<TPost = unknown, TRecv = unknown> extends ReadableStream<TRecv> {
|
|
2
|
-
#private;
|
|
3
|
-
readonly close: () => void;
|
|
4
|
-
static readonly name = "WorkerStream";
|
|
5
|
-
constructor(worker: Worker, strategy?: CountQueuingStrategy);
|
|
6
|
-
postMessage: (message: TPost, options?: StructuredSerializeOptions) => void;
|
|
7
|
-
}
|