@semaphore-protocol/identity 4.0.0-beta.2 → 4.0.0-beta.4

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.
@@ -1,1075 +0,0 @@
1
- /**
2
- * @module @semaphore-protocol/identity
3
- * @version 4.0.0-beta.2
4
- * @file A library to create Semaphore identities.
5
- * @copyright Ethereum Foundation 2024
6
- * @license MIT
7
- * @see [Github]{@link https://github.com/semaphore-protocol/semaphore/tree/main/packages/identity}
8
- */
9
- /**
10
- * @module @zk-kit/utils
11
- * @version 0.3.0
12
- * @file Essential zero-knowledge utility library for JavaScript developers.
13
- * @copyright Ethereum Foundation 2024
14
- * @license MIT
15
- * @see [Github]{@link https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/utils}
16
- */
17
- function isZero(a) {
18
- return !a;
19
- }
20
- function isOdd(a) {
21
- return (a & BigInt(1)) === BigInt(1);
22
- }
23
- function shiftRight(a, n) {
24
- return a >> n;
25
- }
26
- function mul(a, b) {
27
- return a * b;
28
- }
29
- function gt(a, b) {
30
- return a > b;
31
- }
32
- function bits(n) {
33
- const res = [];
34
- let E = n;
35
- while (E) {
36
- if (E & BigInt(1)) {
37
- res.push(1);
38
- }
39
- else {
40
- res.push(0);
41
- }
42
- E >>= BigInt(1);
43
- }
44
- return res;
45
- }
46
- var scalar = Object.freeze({
47
- __proto__: null,
48
- bits: bits,
49
- gt: gt,
50
- isOdd: isOdd,
51
- isZero: isZero,
52
- mul: mul,
53
- shiftRight: shiftRight
54
- });
55
- class F1Field {
56
- constructor(order) {
57
- this.one = BigInt(1);
58
- this.zero = BigInt(0);
59
- this._order = order;
60
- this._half = order >> this.one;
61
- this._negone = this._order - this.one;
62
- }
63
- e(res) {
64
- if (res < 0) {
65
- let nres = -res;
66
- if (nres >= this._order) {
67
- nres %= this._order;
68
- }
69
- return this._order - nres;
70
- }
71
- return res >= this._order ? res % this._order : res;
72
- }
73
- mul(a, b) {
74
- return (a * b) % this._order;
75
- }
76
- sub(a, b) {
77
- return a >= b ? a - b : this._order - b + a;
78
- }
79
- add(a, b) {
80
- const res = a + b;
81
- return res >= this._order ? res - this._order : res;
82
- }
83
- inv(a) {
84
- let t = this.zero;
85
- let r = this._order;
86
- let newt = this.one;
87
- let newr = a % this._order;
88
- while (newr) {
89
- const q = r / newr;
90
- [t, newt] = [newt, t - q * newt];
91
- [r, newr] = [newr, r - q * newr];
92
- }
93
- if (t < this.zero) {
94
- t += this._order;
95
- }
96
- return t;
97
- }
98
- div(a, b) {
99
- return this.mul(a, this.inv(b));
100
- }
101
- eq(a, b) {
102
- return a === b;
103
- }
104
- square(a) {
105
- return (a * a) % this._order;
106
- }
107
- lt(a, b) {
108
- const aa = a > this._half ? a - this._order : a;
109
- const bb = b > this._half ? b - this._order : b;
110
- return aa < bb;
111
- }
112
- geq(a, b) {
113
- const aa = a > this._half ? a - this._order : a;
114
- const bb = b > this._half ? b - this._order : b;
115
- return aa >= bb;
116
- }
117
- neg(a) {
118
- return a ? this._order - a : a;
119
- }
120
- isZero(a) {
121
- return a === this.zero;
122
- }
123
- pow(base, e) {
124
- if (isZero(e)) {
125
- return this.one;
126
- }
127
- const n = bits(e);
128
- if (n.length === 0) {
129
- return this.one;
130
- }
131
- let res = base;
132
- for (let i = n.length - 2; i >= 0; i -= 1) {
133
- res = this.square(res);
134
- if (n[i]) {
135
- res = this.mul(res, base);
136
- }
137
- }
138
- return res;
139
- }
140
- }
141
- function isStringifiedBigint(s) {
142
- try {
143
- BigInt(s);
144
- return true;
145
- }
146
- catch (e) {
147
- return false;
148
- }
149
- }
150
- function isHexadecimal(s) {
151
- return /^(0x|0X)[0-9a-fA-F]+$/.test(s);
152
- }
153
- function isBigNumberish(value) {
154
- return (typeof value === "number" ||
155
- typeof value === "bigint" ||
156
- (typeof value === "string" && isStringifiedBigint(value)) ||
157
- (typeof value === "string" && isHexadecimal(value)) ||
158
- Buffer.isBuffer(value));
159
- }
160
- function bigintToHexadecimal(n) {
161
- let hex = n.toString(16);
162
- if (hex.length % 2 !== 0) {
163
- hex = `0${hex}`;
164
- }
165
- return hex;
166
- }
167
- function bigNumberishToBuffer(value) {
168
- if (typeof value === "number" ||
169
- typeof value === "bigint" ||
170
- (typeof value === "string" && isStringifiedBigint(value))) {
171
- const hex = bigintToHexadecimal(BigInt(value));
172
- return Buffer.from(hex, "hex");
173
- }
174
- return value;
175
- }
176
- function bufferToBigint(buffer) {
177
- return BigInt(`0x${buffer.toString("hex")}`);
178
- }
179
- function bigNumberishToBigint(value) {
180
- if (typeof value === "number" ||
181
- typeof value === "bigint" ||
182
- (typeof value === "string" && isStringifiedBigint(value)) ||
183
- (typeof value === "string" && isHexadecimal(value))) {
184
- return BigInt(value);
185
- }
186
- return bufferToBigint(value);
187
- }
188
- function leBufferToBigint(buffer) {
189
- return BigInt(`0x${Buffer.from(buffer).reverse().toString("hex")}`);
190
- }
191
- function leBigintToBuffer(n) {
192
- const hex = bigintToHexadecimal(n);
193
- const buffer = Buffer.alloc(32, 0);
194
- const fromHex = Buffer.from(hex, "hex").reverse();
195
- fromHex.copy(buffer, 0);
196
- return buffer;
197
- }
198
-
199
- /**
200
- * @module @zk-kit/baby-jubjub
201
- * @version 0.2.0
202
- * @file A JavaScript library for adding points to the curve.
203
- * @copyright Ethereum Foundation 2024
204
- * @license MIT
205
- * @see [Github]{@link https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/baby-jubjub}
206
- */
207
- /**
208
- * Constants and curve parameters for BabyJubJub elliptic curve operations.
209
- * See: {@link https://eips.ethereum.org/EIPS/eip-2494}
210
- */
211
- const r = BigInt("21888242871839275222246405745257275088548364400416034343698204186575808495617");
212
- const Fr = new F1Field(r);
213
- const Base8 = [
214
- Fr.e(BigInt("5299619240641551281634865583518297030282874472190772894086521144482721001553")),
215
- Fr.e(BigInt("16950150798460657717958625567821834550301663161624707787222815936182638968203"))
216
- ];
217
- const a = Fr.e(BigInt("168700"));
218
- const d = Fr.e(BigInt("168696"));
219
- const order = BigInt("21888242871839275222246405745257275088614511777268538073601725287587578984328");
220
- const subOrder = scalar.shiftRight(order, BigInt(3));
221
- /**
222
- * Performs point addition on the Baby Jubjub elliptic curve,
223
- * calculating a third point from two given points.
224
- * Let P1 = (x1, y1) and P2 = (x2, y2) be two arbitrary points of the curve.
225
- * Then P1 + P2 = (x3, y3) is calculated in the following way:
226
- * x3 = (x1*y2 + y1*x2)/(1 + d*x1*x2*y1*y2)
227
- * y3 = (y1*y2 - a*x1*x2)/(1 - d*x1*x2*y1*y2)
228
- * @param p1 First point on the curve.
229
- * @param p2 Second point on the curve.
230
- * @returns Resultant third point on the curve.
231
- */
232
- function addPoint(p1, p2) {
233
- const beta = Fr.mul(p1[0], p2[1]);
234
- const gamma = Fr.mul(p1[1], p2[0]);
235
- const delta = Fr.mul(Fr.sub(p1[1], Fr.mul(a, p1[0])), Fr.add(p2[0], p2[1]));
236
- const tau = Fr.mul(beta, gamma);
237
- const dtau = Fr.mul(d, tau);
238
- const p3x = Fr.div(Fr.add(beta, gamma), Fr.add(Fr.one, dtau));
239
- const p3y = Fr.div(Fr.add(delta, Fr.sub(Fr.mul(a, beta), gamma)), Fr.sub(Fr.one, dtau));
240
- return [p3x, p3y];
241
- }
242
- /**
243
- * Performs a scalar multiplication by starting from the 'base' point and 'adding'
244
- * it to itself 'e' times.
245
- * @param base The base point used as a starting point.
246
- * @param e A secret number representing the private key.
247
- * @returns The resulting point representing the public key.
248
- */
249
- function mulPointEscalar(base, e) {
250
- let res = [Fr.e(BigInt(0)), Fr.e(BigInt(1))];
251
- let rem = e;
252
- let exp = base;
253
- while (!scalar.isZero(rem)) {
254
- if (scalar.isOdd(rem)) {
255
- res = addPoint(res, exp);
256
- }
257
- exp = addPoint(exp, exp);
258
- rem = scalar.shiftRight(rem, BigInt(1));
259
- }
260
- return res;
261
- }
262
- /**
263
- * Determines if a given point lies on the Baby Jubjub elliptic curve by verifying the curve equation.
264
- * This function checks if the point satisfies the curve equation `ax^2 + y^2 = 1 + dx^2y^2`.
265
- * @param p The point to check, represented as a pair of bigint values.
266
- * @returns True if the point is on the curve, otherwise false.
267
- */
268
- function inCurve(p) {
269
- const x1 = BigInt(p[0]);
270
- const y1 = BigInt(p[1]);
271
- const x2 = Fr.square(x1);
272
- const y2 = Fr.square(y1);
273
- return Fr.eq(Fr.add(Fr.mul(a, x2), y2), Fr.add(Fr.one, Fr.mul(Fr.mul(x2, y2), d)));
274
- }
275
-
276
- /**
277
- * @module @zk-kit/eddsa-poseidon
278
- * @version 0.6.0
279
- * @file A JavaScript EdDSA library for secure signing and verification using Poseidon the Baby Jubjub elliptic curve.
280
- * @copyright Ethereum Foundation 2024
281
- * @license MIT
282
- * @see [Github]{@link https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/eddsa-poseidon}
283
- */
284
- function getDefaultExportFromCjs$1 (x) {
285
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
286
- }
287
- var poseidon5$1 = {};
288
- const F$1 = BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617');
289
- const N_ROUNDS_F$1 = 8;
290
- const N_ROUNDS_P$1 = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
291
- const pow5$1 = v => {
292
- let o = v * v;
293
- return v * o * o % F$1;
294
- };
295
- function mix$1(state, M) {
296
- const out = [];
297
- for (let x = 0; x < state.length; x++) {
298
- let o = 0n;
299
- for (let y = 0; y < state.length; y++) {
300
- o = o + M[x][y] * state[y];
301
- }
302
- out.push(o % F$1);
303
- }
304
- return out;
305
- }
306
- function poseidon$1(_inputs, opt) {
307
- const inputs = _inputs.map(i => BigInt(i));
308
- if (inputs.length <= 0) {
309
- throw new Error('poseidon-lite: Not enough inputs');
310
- }
311
- if (inputs.length > N_ROUNDS_P$1.length) {
312
- throw new Error('poseidon-lite: Too many inputs');
313
- }
314
- const t = inputs.length + 1;
315
- const nRoundsF = N_ROUNDS_F$1;
316
- const nRoundsP = N_ROUNDS_P$1[t - 2];
317
- const {
318
- C,
319
- M
320
- } = opt;
321
- if (M.length !== t) {
322
- throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
323
- }
324
- let state = [0n, ...inputs];
325
- for (let x = 0; x < nRoundsF + nRoundsP; x++) {
326
- for (let y = 0; y < state.length; y++) {
327
- state[y] = state[y] + C[x * t + y];
328
- if (x < nRoundsF / 2 || x >= nRoundsF / 2 + nRoundsP) state[y] = pow5$1(state[y]);else if (y === 0) state[y] = pow5$1(state[y]);
329
- }
330
- state = mix$1(state, M);
331
- }
332
- return state[0];
333
- }
334
- var poseidon_1$1 = poseidon$1;
335
- getDefaultExportFromCjs$1(poseidon_1$1);
336
- var unstringify$1 = {};
337
- Object.defineProperty(unstringify$1, "__esModule", {
338
- value: true
339
- });
340
- unstringify$1.default = unstringifyBigInts$1;
341
- function unstringifyBigInts$1(o) {
342
- if (Array.isArray(o)) {
343
- return o.map(unstringifyBigInts$1);
344
- } else if (typeof o == 'object') {
345
- const res = {};
346
- for (const [key, val] of Object.entries(o)) {
347
- res[key] = unstringifyBigInts$1(val);
348
- }
349
- return res;
350
- }
351
- const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
352
- const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
353
- return BigInt(`0x${hex}`);
354
- }
355
- var _5 = {};
356
- Object.defineProperty(_5, "__esModule", {
357
- value: true
358
- });
359
- _5.default = void 0;
360
- var _default$1 = {
361
- C: ['FEhhRZjgD5jnrn3qRfvYO9loZT74OQzeLoa3Bq1AxlE=', 'CreykTiOXJ5DwNwfWR+4Ps22UCLhtwr0O4p7QMHf98M=', 'K3y7IXiW9SyajAiOZUryHoTN51SjzvWxXE1UZmEtat8=', 'K8aw3b4dcBtlcEKL3Byhvw2ln/O7u5X8K8ccDG5nplw=', 'EjpVoxmAOE89ILLOy8RO1gw4wR99IOknHvq5qQXu/Tw=', 'A3UBzIydyBkwmnafTfCY5YiwGFi8jrfieeKIO+n7jFM=', 'HCEW5H4DqGuxFpWwpfbatrmkYLHrlRqwHCWeyj/UfVE=', 'LBghNIkDLoWpyMuOmmWDm/rtE+V7wPrknb2uv1T1b5M=', 'Luj+09TSxxoEKer9jl2xcY8p4iJ5hf3yrYcDyDW54DE=', 'KMZNj17XqsAEySAp2em/kbqUNtHM6UuTFtERxwoMFxQ=', 'GKAdn/t0euDePoPHB/iyT2gshPFav1cbNCVKA0eGZeA=', 'HCHZK+8ZfnOyNOR3e2DbFOZCpWzucVFdVOGscc3nK9M=', 'CtQEzLyx4ZWJfLYMgJgeu51mpmd9u+2ti2RV/mLYB7E=', 'Cptt6DMGT5O2rbma9sAFlFy2VMt70UyLl6+LYMwfs4c=', 'ExKeP5MK7W1HaQMx/wncUWDvpY3c4sPmGA1FvsOqOm8=', 'DXphTImRUIqxzkiVgTuxyC8Yv3v8nigMzKGAeYOTh/E=', 'BTL37DbjAEGwSGmGh1yROkm93y9a9f6+jDHy9AlP/qU=', 'BrvLjo4YAgEpPnEvSVDxsLvugIydZCY8hNnYrhVcuJI=', 'D1WKTbGjrAf2Hi5r7pR/c1hr9A8hHOtPaHylZ4qdyzM=', 'K+FApgtbXy+O3XioGKlpsgxkPkGbzwtXfCSg0Oes/pg=', 'HEnEuanwn3ua1fdOusxxBRK46Ge6zifLDeoG6JuW9jE=', 'FwwacychsSzefzPkdqOaGqd6gcBuLqxQOEewDVl2Uts=', 'GcJ9DlL2XKNPTjGgaOSTMca/w52SQfnUwwIEFhXPJ/E=', 'LxvcUlT5Igwacx/FJ2lk2rJrOF+kC2sEvtmWDiVDugg=', 'BbQtL7zL9NOdK+kznKvp0Nxtkh6FXNkRVLY50o1KHPA=', 'EiAEBxWkGtWfT0EODAWkLF/TKsUv6dBviBiNcfYeCTU=', 'JflSZSYVW4OUZgn3u5UH3Ukl74cd7pFtkUTrtOzhNDw=', 'AXv+QoQpmud0C20OIElR4xSopdBFJBkUeXipWzR0JEQ=', 'Kl1HZAIcpx14qWdMtnCPFYjSzq81eMQRHPizWe7wic8=', 'F/Atq3RfvjwIEyH+XO+EXnuNBwslFNKbKnt9icwIFdo=', 'GdpiYm23GZtl9K3PV/pKPbqhdkp70VVwjubzeMie8BM=', 'D4jilfou2BtCbJH6aTZqc+33Xzm/GGNM0mbsQDiCngU=', 'H+McVUhUbHlI/k7hvXQS4ygO/30gywmqhfSfJ2YUgBc=', 'EP3BYTvb9n84vd5WGy+R5MxItZ+Y1kNjj9wK+tv+Em4=', 'HyYYwuvpV0UIucUvAADjPr/drRoD/da8pu9/AJMSe+8=', 'Ep/n/D76xqirI9um2IbzlNoR9ZU8+Y4oJpoNuip0XdM=', 'Fa/UzfHk+CDBYx1KuFykujuvz+5yvq3p+uYFIxAkSOM=', 'Hyx0ulw2fjcNco5x4VsmiFGnu4tFUoy3NJVgeayZsBI=', 'ETDhhy128vk2nPWble35zhnwH6icnDaybgne9nhtrTw=', 'E1I9Fz9+a623O2P8HJu9vuJCxhvGhlZJMydTOlwbHco=', 'FNpA0K9CemXxhBta3JZThlM2j3JUy1Zn3a27rXpXTNQ=', 'AJH5ZADkKX6oW7GGwXswToJjjlf9Yx/2MVl24aXdi4Y=', 'MDMpv5AxxVFbmjTUmmS7agJnvHtUoN7KXEUCd6ACzcs=', 'FO1H5VwdocLwXTwaGy5sGFCfyDNuz+nbc3kW4oP6ghs=', 'EWHxCzV3ddgQrVO8xKINWt0rAyUcdH3rBO6UxWXljWs=', 'F6ilCucs5wfyK8Bw65koUcqRTrlMxo6vu4qWpxTrgiE=', 'Gmxh15Xbr2L5klCzfsXfiGRaHBU3kdtjErky3CUOT2I=', 'H4vSq4qoQGZMTu4ZjEaE3EsFdyuyoIadpnIrFfRHoTM=', 'H/y4UqTwAnqXmfExzXS5jM+4y8BjSdj+/MYvEMj7Pi8=', 'A150LsUvGbNtSJxyD0Z/+td81TvC213dskayMCH3nxg=', 'Hfqu5BvflNeDqin8Yrfse1VnOqgY0wX9QtF1oF8uPYY=', 'KCE3hHegLplQBaVjUIhUCUW9Mz8tFFXwOKIZuMR5azo=', 'HbSk0PI4pXCxBhxu7IHALzH/3Up8GedjF08jjQSJdCE=', 'FL94iUV7ILehNns0o6U4IX1pO1JCav9ApLtyiTsXhMo=', 'LO1Swr8pb4fldBDD7JqUg6eW0WT2BJEnEJ/w06nAhGU=', 'Hd6sWAWn9K2k0EQe0QjjFJ1M5lhPSa5b39RtZ2buozQ=', 'Lja05enJe0YjBOjitfnciOHJ8hYboEBnP5ERI/BCrnA=', 'DGhA0csGZtxZ6JsYZSddihZLRHxe1kNHyu5jUCwjjV4=', 'E34uPonnHUYfTJvD6PEhgyYqTR21XFibLK6qwBI49Yw=', 'JQky57CtzyyE7Uv7YKNra4LlWqlHURV7HUV5Swgciq0=', 'FwpykvVjTAbdO/CatcnE7NSwDVzi81+XK0VVOR8WtC0=', 'DWjLvnconnjVy/UdcPG3W6IV30570BSdELLFDypPO4E=', 'DK90VjuQUl9kWm0gNuzRMG+h3GgLSdnOTtJMl0mXMXg=', 'IKfRwKJ/zOeP/jcvTFgwaxZvlFbtRs3rJV45W30w1Co=', 'BiPzImtUcLJ4m4pTBA5ERDOF6Wuc+gvk01AVFYpGhGU=', 'FjIwhojCXnkPV9aKU1AkEkKlYwU0feSlAJzka4zcuR8=', 'LeR5Om+ZzRTj9mQiEfTQt7z6NhWXxUT/y1pWfpB29H8=', 'HU0G0Z6hsJyteQhtUb3hFyWlVPqZVZyi8J87tz1yjGY=', 'BIDnR5pmp82ephyLKJdDiZCDUKvEqvwYzXXjPdEwwUQ=', 'MEMLAzaOvKqRJGlgSQvPkX14aBRj4ufXRL+0QzXawk0=', 'C1ezcyASfUxQ8mkSSw29yysfE1IkGl0SEDKD4InAx0I=', 'LPSJBlDSckDhlfYKT2mO2iSbjdYUsjN2tQF40t9tK48=', 'HiIcVSaJi/0S3oaFGg2XA3UaLyOQCKtfm307aRHGQYQ=', 'KOB0ha19mS7RpY8ynKEq3OTsaT6927KVLlTTOfLuvaU=', 'L0TWT4TeFtxnvV6tUe+x3IOByEUgwShU3V7zoHms1OA=', 'BQp2vDLr0d/ivjMPME7ces5xZ6t7oVFvQCHGLPDU+sI=', 'L1jEXl1lmmfXgTZyQfbDXYy0Y2HZeyiUfSlCHCcFlKk=', 'JejamuDkLoQOBLIwNw54K9tnU0hEMlujb8fl4WDGanQ=', 'L+xzTaIP4yAD6gTxJ/hEck84o2i6EMKVRCUr55YED38=', 'KIpnePOoOYio7Rcn8V6TtMsU9OOju7kd1tH6yv/9Xu8=', 'INzGx1/Yklm+f0BnULPbZ5olqM0nFdJFuRdTkKySLIQ=', 'F/QroQlC3yXLilQXgqGLb9Mc+WXREXjHsErEW03qXdM=', 'Ao7rhdEVqQQCDgxhSO7GYD6c7avGZKvudkqv1FWYa6U=', 'Cx187POnmyrT+imPbOp66V2AwCmezJGOn4ycPTjVnUA=', 'BEAznJdkzsecFu/bg0omJh244/Es4c9yLSPA4R/0zwc=', 'BspkfClyfBlioAIXfaLVBPSwel9+tXx5uI5reru9rVw=', 'LqEgqGT1xAk90ali6PATx7jvd4sE0rpb/DyrKGGbqeM=', 'K7c3VGxK7nwMwrqHwRV+KnfEeev7Xcdq27Oc+Gl2M/0=', 'DjDaZJBiXTPnnNUBdvVo+aLCjC9EmivVGiXRVoaAOpM=', 'DffKcnihNlC5GdhUl7LrsPcQNafCBDDUEx2QOrf1dSE=', 'J8xYn1v1hXlKus5Yn7inSi94TAmQuA/KppRAl/hw4tU=', 'IlXDajjIc13kXO30Uq+oQjMtMwQveOYMQ8dFVCGzJb8=', 'Ez2WAr0zeNafaBwnsFvf/Ji32GzKY9c6YMrtSFeE0Ic=', 'DhVI6UKunT4mhgaZuTcnyBeplIYWyT70rM2YGx3D14o=', 'DyDw5V2TaJ/gnsMS9q9HYnSC5L3goWAqjiyNboTopq4=', 'LlIyhIPLW3/y605FsS5RsmIyybwXtykpVMCp9r+lG7k=', 'ArIWLVM+BZpu2iq7dHEu2zp4YL7qld2KSr/JV2YIBPQ=', 'GeCSdxXRzG04lCmUf7Nzfa1zOXTGsuE+Wz1DJRlRbHQ=', 'DTqABFfXd4VjYwO4uU8X3P/LRgSIcqyfdO9/J+5XNwU=', 'LJdNGVJVehqsX3uuSZZhbaYZtz9EHE5QTcj+nPtVnjI=', 'B2a/7u3izPNwjhtP8wcUwiwdQ0zb6PVVFLq8LdXZe+8=', 'I9rI6lQIL8Ex4XOuVeRjDNTKfIcbKgpHnB505/GR5iw=', 'F9X7bCyzcBDj41irLVdTdocO0zGGuOrkmtO0fjQKjX8=', 'F13Kx22KgSYTm1g644hTKQJG5D54P6aQPsgAfxeMACM=', 'DE/Qj+3l0iGtt6v1SYmMkeW+foW/H9KmEb8YLMLnFlU=', 'J3k0uQnnLTo0dbsex2arejitWbEoMD/FAC8Cplvf5yk=', 'Dog0mZjf5wPxsYRST5w5TWAEzKz5y5UolujP2wsHi2g=', 'HxsgeLYLD84Hgk4qK8jK6O5nNRSwBwqLRXEMx4y7mUI=', 'LrFVlWbFNt28MW9kgtUfo0BVdldwD1uKhG6BKg7TNNE=', 'HE29wzXPZ2Q1Ugi0ydJD00VB1iPGad7Cw7oGa76vZ3M=', 'I3SmstpvjKuOXP6NgF3Tot/KHot+ul3IV0Ah/RJB47Q=', 'Gd00JTPMxgOplzjj+1pWm5TvcbPkn5D7h09hYXMwcvQ=', 'IX1m22x/s+/6UIgAWH0us8bQPYOFEy8vzOfzXycFzM8=', 'CBX7hZH+AQOM06OziyNvnvynfGGNO/xsKn+okpbH5k8=', 'K7lDtAwr1FamwXhTscqI6w/zb1l0sv+aX1CT6b9joW8=', 'EaUVP85llRPufLmXSubLpYHjtM0UVwxXCf7D2NP8guk=', 'G3K/0HY12FAbLv+HhaJJW650x2U8+Q5tXJ8URCaDbfQ=', 'FJAsBwDuyJeuF4uoyvhQ15Px2HUSvqDs6jnPax/uIz0=', 'CcE4xuCmFqSf+Q1DprBD87dFt4hlhW3EwaReL9hMs/Q=', 'BbWKPc5XsoGicdaYlQUtiHRYpxV4PoMX4CSmGjXsELw=', 'K+jSlSXAz91eazEl473jv1WOVfvoZ/AkRXqWdlR00Dc=', 'Bh1y948bqdxrTX93hCJdaoG9/Bta1sJDafnAVgUj2a0=', 'C/GK78rP+r30ES7drcphRXOLSAOzYUW7lRbbUBoGkuk=', 'LnPdEF+osuyTHYzfKexnnjqYAakwcafV6jBlklXwO8Y=', 'D4RA72Z8mugTN7pdjJJ6U0fecpaGCyEcrR7L+101mO8=', 'AE0wOy3qYnsnMb6D+TrDTn0U0XihOABVjKc5Y5XrEY8=', 'I0VBrXIECnDaKZajUmkjDJRpnu8xOk1IBQgAjLw9N8E=', 'DRI/HnLSa5K92P1z0UKGwxKtTCOstGsuCMFXEEQJ4XQ=', 'L7Ngd28N551wmO56pBI8Be5rBai+Rgp3TzoEjhOFRbs=', 'A2hcB5Q04WcnbFfTzHlwO339xBwVbqHot/mbaValUyY=', 'Jgrw4P/8yXcsFjGxeTRFZrR6qto2geuQNMb3XDcFwcc=', 'KGK0E3T4m2lSdLM7dz8lVJFuK/+f9nJUX8L0lWP2J2c=', 'AqmRL+FwMQInGJ6h5pHQNi8Ys4tACw7/GSyllRPrqNU=', 'COUTreaUoNisHz6/GpZEDTLHE9UFjhIk4HA0jCgfSm8=', 'FApKQx4u55QA7XRll42EdzITxigmT/gPIax6a2c9Cas=', 'KWr00BnLXffZWbKdVJw/BxICtOuotT3F7pee0UM3eSc=', 'AYMuKEp/TIFhSIK2k5/A8YVXO9ICPj5QV2VHC7gSs0k=', 'GoTVame/3T2WWr3NMpqnjU/pNDRJby0QOGH9GdZtcmA=', 'BAy4KEd3OSfSrv3AdIkDep0fdjHsp1yfsN2gy5294UM=', 'AQ3PCEzCnLfK7PJqpjO85O0rAZ8oh87nsaePidP6vi8=', 'B+3CKgkR6iFEJe9UK3dtsjsP5YF4ENQMcsqYqr2a+oM=', 'LupKsIrsd18hSEeeo2+7lpNtpYuki9HS06zUgXOqq+c=', 'HkDA6CV/5KYQBc3PrRSM9/R9G1z936oIJzhpVRgkXxk=', 'I6J4CVg70epR9DbeVEPhCPadRM31HcHwPiGUi0mAuHY=', 'LkZSsETb/kDmO2sjL81fPzmr+9IFHuaK3HVAgNSSUKk=', 'Eeer227Lr8Ln2M3v6ce5xQR160dds8LK9/fWf0hXdfI=', 'GZ1SNQzDDoxzgh+AIJbw5UehNVGye/a4mTlvY6xc+Oc=', 'D1ddbuZ8vs2YNFYk4DKjfIWafL7zCz/dyUnNCXhIQQE=', 'HEtvmiritBjmJlrLqclrBhhNBwKOX7eE80da53cv8Fc=', 'Lctc+Ilt458ijhV8DFWT9GJvubwiUgY4PbIDYKvwySU=', 'E0CrufThExhr3CbL30vMpQtTGhB/hjylRFdePPhw+OE=', 'I2jmkrcnh8uIcOqIjnFOAG9Z0rRGDPt0xIqMxzsdGls=', 'H6ua3ZuqSk9W8jFld1xvLZIqdjKpT5Y3S33IUnVvVLY=', 'DH97gjANPGzj+JV7oeSt1UxMAV4g2XZdIgVxwWq4aA8=', 'FdY+hr6s2Txgg2iOXZyPPGlHkp+fH5mrV4pMOpIu/wM=', 'C+hDrl+bB+UlcheK99ro7QXTaxLAYHhikpNV6nQCPZ4=', 'EzJ0nFI2lMtpNeCWOgfoGwWWfOHZUMC3MQWOySp6DJo=', 'JUOUCIEOB0wL3UWYuYFf7okruVylECns8Am/+lubloI=', 'BX6NGd2ZmpGNopsJQLODup/RXbCw9kmW3/Z/61X5p0I=', 'HgFON+mxF887SHDZmfK1XTU00Ka+mOnjV/pD8B5wop0=', 'Gk7STm4DrrzWvbEAUz3JZll6/hXIUbS4Y/boiQhMZHk=', 'JTQgAHCD8aqGOtR2CQXBA57UERyfBT8ncQRS+DzjapA=', 'InahRBlxcJr/5tKpkyAAHsRexyFVxXXd7srA4ydZqwY=', 'KJV90SGOp5n9NBHrGTJYU633rorhKB91MwL+fTHfp7A=', 'L9klcmq3lMiL11eWqj5/HmaS8pFM+AImfd8B43kCoAg=', 'HPilycdqhLFHyCONklPNVbR8DEPYKWbEY2ooZ0cF/Zo=', 'A3PLvDBuG6uecHc2hxXmIwtLLi5KHbnGdLjDWaQekQg=', 'BgKD0v5/I9/1E9kRCz3GJEi8SPUxzgweq1kgvyMpCkA=', 'DatGXW2RB0DzPvbMDq3HG/gRm9/Vo1J9yLv636pAJjw=', 'DLp7y8giSyqOSroXl3IwpobNZCHcDKU0bzRGtiQ5xMM=', 'HkNl2weQycT0RbBlPEZv8h25bDi0B2uovWi8tN6mkR0=', 'G7LbohmamrO8hu9fnef2xcoT1g6rQs7WjemPxkOACo0=', 'CtPBhwxtbvQO661SEjzRopE9nWLoC/usroEuCCAh+co=', 'AbCYyR57DLtcNFiAd8Dd+VMA3fYUk1YwwM46JickUwg=', 'Gf1cDqwU+udZi9TO6jseKZiwwWhJO21yrkG1duVbnD8=', 'DUdJ15zBY/FxEKQEpG/kJ8ZDTz/me357TM+mq5W9fhg=', 'Hrv+gRSkG7gJ4LMzmSQSMuuUCthyjIpRbUCtpEDb/c8=', 'JwTlthM9l2TW0/F9SdgzIj45N/gOufrqu/upuvS0wbg=', 'IWXhyAJzBbGuDjI1cWNeXVQNE9cQw/mjkLaRPxTQNeM=', 'LjSX5NNf2llsBq+mO8Og8uVdTuukrOtg5lCBrWOqi4o=', 'Ax2kNF7s1ttsD3sHx4Fdet0f4FRtc49NeatcV6qEHt8=', 'CJ7OVOR6pckI5D5fCHN8FDaWcIkAasqxyc0Z6sSiCHY=', 'L1PBXire0zxH9VoHBIPmzH84Ifv4qkBnfQVS7Z0Q2Ec=', 'FCqjT0suitDfeiGz45wAyLCqKFcJSAHqr9cr7+0Hf5M=', 'F66k2kx7zw11iLAU64tAl53Scl7aTmrOMxmCRnx/8r8=', 'DpcMGdGXSNjEZRBNjwIgA2P5pBeG8C8YJ3QrINwNFyc=', 'BLytnlU3lWQvWbr3FKa9tDL8RaCgt38aujqYI0dt+bk=', 'JCwL+82qdvcV29S6glxx/P7WccGxkB+khMh/gQMV0M4=', 'JdsTQ8JBBAcQI/tu002ZCQeDEeHv6FrwoRsZEU+p55A=', 'L/5NnEIKWenNx8Masr81GHyhR8uJijlC3rNnd4YDaoA=', 'EluwOvPizxi75vW1kOs7+NDRumO+aWSD6Y8oO8fNB6M=', 'CBa+QnRbfbtM7/5bjiTqYP2LcZ3rpQA3rHt1lIdFxrw=', 'ERFg+az27DYNG2pxIxOg28viPmRCAFVHHS7kxd7bNdQ=', 'E3eXjhsfaokl+o57eUG9+PtZq5VCNCQZKD2CA0Nck5E=', 'De/B2IghZu88zeU6TyNvuoPThGIZN87lfkIaUT0NM5c=', 'L4+lx4xwbjpdSgPyp6OVMEbX6Uy4in7zUOZ7W6Dw3r8=', 'GiqVfsCnI9phwhNLqwvxe+sA5tzYRpDCMNy55Y2pSCc=', 'HN+HEJlfXgNBK0p/aZUy+f0B8OoWeo38Hd834oBa3e8=', 'Jv0xRxgow2rjbCe3SAVLDAxP5SObMBaZ43Ze6+zBiUY=', 'B3XZlswsRFbzA6LB+QB2R+Eakh2f6j97kmFDuZ0voL4=', 'AW+5M3cIymOM39qRvQ2uprlyJO97IGJnKt3RvRi7iQA=', 'LDkvvn0/3kL8pPlHi7Q5MxJYJVNW8YSvb3bxGQVBF9c=', 'GHoqO/eaafo+UInvnx/Vb9tHxV7s53qiKKo94bSGvLE=', 'AnGoY6KAoyZB/6M1ELLt0njJhjA1lTLz5Qaydf1dIM4=', 'FVdFnJx0yUqgDlr2mh4xEvtpU3zol+wMcYlY2WUW8qs=', 'Ko4myo1kfZpjiFFuqdz/iQg9U55YFowqUMba4w8QnyE=', 'Ict1IZTPQ/O1GULrAEDrqd4rz7HCo/rpeSS3EPJoMs0=', 'LCba+Za+JHrNbdSsrWDTi1pHHmMiGI0CwTfny0hDd+w=', 'AkAXbuDnmC7r6Spo0+OjjCaCGswPXQWM+ME3vKLSbxs=', 'JjbglzyGXBvZdN142qqNCoTNr2vhrUfs8qDRjxFzGPI=', 'GehPTyWnmUlgQWYdxdl1toH24GdEzuibe+XZ/eF0SsA=', 'Dr+JBko68kfKHzb281cBiOJx4LMmxPsmZk6J4UVMoRA=', 'Jcfpe0db4A6LVZo4xFI2T0ycUx/suKxpj3/XPOIucew=', 'BETJnlkjU+WuyqMCrdkBwU2MVScKFgr+1EKe9VmK108=', 'E424iHgwVl8mk9Dg8C5OeeFEln8LpTsDUZq6dktcmUo=', 'JNQPRiEU/p7gKq/PdLT8ok4a42XcdcO1K7E8u7LyHt0=', 'IeZdbY7kN2C8pA5zC130xM86inMtsUj0spUbTGHWjow=', 'JI3XlmnsCdvwNQoV1sdcapvarO/KFNUTAJePE9GrbRw=', 'K4I4wVSPnL4p/TXPkee0jw69p+Y57faf6NWrp5JNU2I=', 'JDn9I5JX84GBx7489RPxv3I166lPa4lCqUy93s9vYvc=', 'IAlYI1KBphuixL4KoygqGMdLbSYvXefC4z0rs+iT3+w=', 'Dh7KXfiO5fYM+n4f5b77txn62CEfqbLQL8wjMZDBfxI=', 'JrU0J/mz6ix2nZxmD8YIgaFpwScy0AG3FY7ksbhCyiQ=', 'IPOz9Kyv6fivPgZmGzqPd4+igSUiudcKZ0As/42ysbQ=', 'IR5dKznWJSCnpifs6MrLrJ+XUG3vTsKGkoumwn1GOxc=', 'C7dD7jSAISnFVnMa7Z0wLc0IUxPOVy9iQtE4MuU2tLQ=', 'I8smYbSI7nHkx1P/I65L0l2KRAlPZrZTKXfiIUDrpcs=', 'A6NaoxI5Ec20U1uu0zWfX2pSBbnJPvMdNTI6R4B7i8k=', 'J4A4SKCu2WqT+pQ7ZjXkUCF+E39K3nSmLXkXMicUtpc=', 'DLN4OcLJp/95iEy+x19B6b5eR8dtYVOCMb2BYpltb2c=', 'HwAm0L8fjh3VQjzC/sH7XNqh7NxMPLIY287vd8ANL5M=', 'AqfXu5cLim7S7mb6u7qVa22jsQD1tfuSju9C+XCCc8k=', 'DP1/QhXkNMjaF+wyWLC8YFrRqy6QqklDUeTuQLvEkfo=', 'GAsRtyBiKhVoSdxvf25/VxZZvmloIjDF7ZrDOXAKfN4=', 'BOlqllvOPToKJKSkV8lRWCyHE0nOfu4aq/5XipTGUBE=', 'FZMfeCtF9/tlbyzb0fdwXDU6I/4dMKWkahUi7RYN860=', 'LiluV8l6Uwms0m/r9VrJY6VETBxfcDrYig17l7ndOLE=', 'JhV7zreOhGu7Ji+aHgbUJxveWlvOjwQZlS+X/9E+rKg=', 'IZTriYR9aw8Yl/Z18ZwMVrYbEySO/zyjbjT7nRx57kM=', 'I1C/NUd2VomRUa193pbqeFfhVQFEcAjatrPSfI/6J08=', 'GkhvCuWRys2vCcWKScTReVQFQ1NAgZ4APwRp0RC3dSs=', 'G1bc92+yPMSoNNRVpAZeEzVxQCt98wnVm8MQXUKowwE=', 'GnSdeWSvC3ICkT7yBMZT8rS/tlzqt7aFIzq1nOO7aSU=', 'GK5ZAHP5aWlq92L/pOjw67+X+Mx4fjfN3R8yG+O+rbs=', 'IcR7J12C3eZGDV52mplCEUSxxanaWSlK3py7MXED8kk=', 'BHPdvVLnN+UnNk6OtjIHl1w41f1swysnIQKwgs0VGPs=', 'CxL6yVttOogdiSZXyEJOZFrE5rAFFfkC1ZRXQwKybgI=', 'CK52FqJgz2ZX+Pc6woRYjSxfB/9CXYN6p83O9j4+IQM=', 'A52vaHYoC4Doc78qMv0oNKg8aXV7rdWKiI74Gekmzig=', 'Jeex10cKPHXxPwtWVGyOCfLY7+/wbvdm+ceDyoadEw0=', 'Ho/TY0w/92QYTQNDX5hYSxG1sVrrnHUmLaPx6iwqnno=', 'JB3MUaw3gIpBXdHjwoHwWv8ReJ3Ayv3XejVITgmT+aQ=', 'H/wxU8Vu+XVZMs6ivgVzdJva/hxPoHgaS4tAeM6ddUc=', 'F2MNYtmj5RDIik1Dw2D5K8D6ALZgMa3sKb2VQ/06F+4=', 'KYBADt0ddOPWnbVFjSzNX6vbI27BaoKkMBoKtZ6kpuk=', 'MDT7JDZhI+xtyvytNXJtv7FhlMA23NZI+mlDm/zQDNQ=', 'Gqfo9Bicqd/z2yq3ZIvgojkplc5GBB4EaA3KitcjLfA=', 'H6GV+DSmnmI3L2DrSX2hZ2RurhQVPYA7OdxdEfXXgAs=', 'DyPxx01fv2GVrVpq7l5WmTxUd+hFP1uToNe6/TMwNtM=', 'AWVW+sk0inNatQqgiclxUbPKrwogo0+52TcFBaFRVyk=', 'I9kreTZIEQ/Fru8GM/DHfKyw27yhh5uKb25d9EXl9ws=', 'LkwQ7F5l4vI5u8Q8EwMd8mhqtA/XmjBLBdYRuCPyO3M=', 'EkGLv9d7Y61eFoZK2cMv+/xaPdm3jsK3kyn+XgqNKVM=', 'HkqKrOFavB1bdqnoSEMdLAanj3K2vrsSk+bFjlGFaW0=', 'Dz6WEH3s29aHLCDqCaz5LN8Xo+4dEzFIgJLZYXbet1U=', 'ASw3gCB/OVzCHesKvZUWge6jJJjdumzol6j58MI1cGc=', 'E+qxtOZyuhscG7kBdpMB8eVlnQPqEMYd4kd/8KwiFCE=', 'INxmSrsgt0VsBmKc43oeyxonpOiyTjG0i5xGNaowMj4=', 'LGseLP6njiw2eF52qM+xsFfpRx8k9bORF1w97LAeAA8=', 'GIySYlX1t689qWNVcpwqhnCrTCxwQASBsqyQN0Dgxas=', 'L5kTII4J49bp5vumOE/QdquJ8mYpduPjDghwuzDrVPI=', 'KzOAPZCIlwbnFPcgtWKNJvtgtUWh8+nOSaaukSsCQIY=', 'JsyrwQ6wQyfLXMPd4quzbwlwhsl+c4wTPJ9XB350iwk=', 'GxauDXxUQIy3X9kx8kZ1HysMPcINeegqJTG3bCK01d8=', 'EdC7RhvYryhE9J8PhAyU75UYslETRHQtH1Q4/j1BWuQ=', 'IzAxhHtHa+rQEY09szjokTPsQg1nPlBK1kclnfZVVx4=', 'H4TpeJW+5DjrPJLcmxhGya0pwWQ4ewautu0YQe2MTco=', 'J39/m1QvDCu19FvtBU8JYkU2AQw8+UUtInMZMyf4AdY=', 'HvyckGnlBouqwT0uZkVkG30n6A/CMHcWFTXERoLuV6k=', 'DW7Ed3YeLvusTxSzvz1SV6meZMPyX+EE+vmIsg/l/0Q=', 'Dg59fFUBmZt9Fhc7WbfK4fIDvvIa6/ACUYgUOcz5MBM=', 'IXvvL08SxtzJHCBYojORy3feU8puRNzcbqPTb+oybqY=', 'BXgMiK3wFTG1D4F+P+RER9KbNaqKOJxx6M8SJqzvaLo=', 'GHM4h6ays7TJDY5JkBluI0ReR9fqWTnr+4mj7j1ntL0=', 'ILrOY6z8rgscnyvuJLjp2oW6WX03sJBXIMTxXbIxsHo=', 'Fm6llTdaZ4asUn7p7O1z7Wv1UIdqvK86yStCyAiwDY8=', 'MEJiqe/0BArPQ+Mi1vUmdq4vhT7C56gNsAxIjPkXx04=', 'ImuscFAWbl9tt4zQsS028wW26MmgVRFK13Ceb1ckW2s=', 'JrL1OcVzgp9qypG6qVRQW8XD604d8dY4WCcX+98jiMw=', 'BqD79M1S6Tul5MbEr2XbAu6WKX+K0gDy8c/yUudptVE=', 'LLnCQRLTU0Gs6siDYPtSiSTli27KwyG5+ynmqjNo/yM=', 'IOiKTWB1Jt0H/gijVSpEZpEp64f8wLE6rI/or9kwFSE=', 'FURkmivXPjunLzlt+R3WVAHdj69R3jJfuu251TatlPw=', 'GYAHdFeZVxLETafhdxMljj+Os1S/2A7Z6vPsuvaWAQU=', 'JdHSL/E+dwXTwIX5f8Tk9pFLgv+qXSCR7GTaxCN2Xvc=', 'L+yZDvVW7+EDWkZP9VgedAZ0Rc1Uq8r2uMA5n+DSTPw=', 'G9lWNQbZVE7z5IMOE1RQEsV5N5wtzBMwQWxK5JvE7GE=', 'AK/80XumADxW36hVcfwpc3siWoDUgOfdft7AHxTyMBA=', 'I2cNuu+WaIHwf5GaLYgxKMeyPPdnpHeysuB2K8DbwYs=', 'H5OlMpFzlMfiL9F6vupjicZv164t2fAvhg9tlpR/Dt0=', 'LeQun1N7fWGwITdxwOdPVVUSvge2pQk0c04sW+tAvjc=', 'JcVX9FuZeBzTfTuyKTFmKmf3izd4LIhbRWu5bVXohAQ=', 'IHTItwlwXJiIU4p/ijxK/2R3Mb0W+OJU+nTqnyvnZiw=', 'Jzg1WVYpgTiUnkQhcdak5LdO8gZXQNt8/DoLYP1XOss=', 'E9Nq0KTr64GWl3hkllnGXLfQxBzFGYcf23Gp6moMqlY=', 'CKLBi6QTgTSMGs+/lhdxaAa0YqFpG8LjQ7ebgIXjdrA=', 'BZCS/Dla7ShYB7v1V62aEEH1nAeYIrEIhFeIL+57YSw=', 'FhkkFRtaWtLYysEZUiqZGpBvFehTHccFZ/ayg3HMJOM=', 'HGjKj3qhdlkHVAXvY0G45popi5pNcvO7hUswnkuoehs=', 'J/XQO8ocggf3I5pLLPc65VmhWqN+e93fOqsF7sXOVZI=', 'Dsv/SEaWKpddNH6pqPxGX7RoYVV2IvLCVkp+Y5gzwWk=', 'J3xN4jY9i1tFbPxaf/jkb/LsjapZhV9a1kvAUh86xWc=', 'GxGGLFKs01G3pGR5P0+7V/7Jn4MrYyJvldF1yNL8CLI=', 'BqcZxYTHT/vdchjrVly0yL2GyS49+zxz4VJyAapRI04=', 'Iw5K3uy3mYd/fOmljINrmdUzWEoZXB13oxOr4cfRJr0=', 'ELEJuGSAnEdnoTPM5sutbIhigXO46lHozKhYMMp95SI=', 'DiEReXDc+9SxUmslNjbzd1ONO0+q61qLJL9iANFMxZE=', 'Jmc0mXhAE2L2sXk57rDmT/VWB+vbNccHHbRrs+e6R3g=', 'BQAPpf2lBeApoTv+MEwmew2GxywDm6v20/8C7iRr4C4=', 'Jk2eCUrtX0GmAkIiCjSihAiQh7JDapv86BdMyb6MLiA=', 'CAdvnEdD3mEw/2Is9AHt0skvJL/hFPPF5ySJF0YxXEc=', 'EyNwq927Cx3VfypSDCUza9fO3pS5W79cIVHW2I5kG2Q=', 'CP8RFreiJ7/f1EZaZ4kIgrYVyMTBfyjY0klY7fYC3cs=', 'K8sLDbi54+ArfpwclGD92cbNmFYjMuZI2KPgq5RZdSA=', 'EupozmiBvsrX+KaxF7A6uXb3q9WX+QOwvyMNINIalDo=', 'J0OcmKdmiAZ6CXsZtv3X141fiOJ04Nj+peprdAb92n8=', 'AvQNCtBfVlLjHvlECtcevIQZ45NJOTfwXwBJnQKpnjY=', 'L78EKEMn7k9oDwa9OQ4wnQ0TrMdLnFsUtjBZuMx6v/U=', 'G+aG1T4qitV6gosGUUJc/Gl4xwJ+2/JH9rZyPCHfhuc=', 'JoO0JehaUI+WhS8UtCIPz+n3rYsXv+/A40jEfKeLtX8=', 'FtrOmy6AEuMdscfr5nLYa75hoao+FpPg7d/A3gqd2VE=', 'J6Mh+MfTyQIuli9/7y48hItFOdu3WqE58wQw/lRbzts=', 'BszXIQ3uHWsOIreeEtGQgtgHi3iNcQB7leendO2GplE=', 'CkHdQiIWU3Ur7zUPbXSpF7bLsf12o6EhZvTQvpeOQCY=', 'IgoCiB5NR6yU2VDN+DhidNF4LifL0NhFl43uyRKY8WU=', 'DiFVpUX+Xzy7Y5dgZYnqwZzZJjkznGsBcpikrTQItLk=', 'Dw8ZxikeUVRqJnxgzHdOX7nQiLrFMHgtiR7Br0uEcHM=', 'DpJbzRxt20o6HGfsje771AxTwNM+eu7xtGeVrtWUPJ0=', 'KtAAsXSKu4Es1uVBEoa5/z7wpb09JZo25F7wW561vus=', 'CmWqIy0y7W6N5j0c3/68Lz+mFkZcJ6r5fozT3P9khlI=', 'AmPYRwq0scYddNjoliQvTyYdyxZ6OgaSOJPXyyyT1qE=', 'KQHZRq3clLBA/VgATZpfjNGSZUDHqGEs7BxYy2DCs6U=', 'GInPqCCfSVLfkCLbncWDtXF6BpbaQc7mSTfQzWMh5pM=', 'I2Bk1xy2xkyEdHrCX8+NiBUC5fA7/4dWG4WhFrHzmso=', 'L/ehdP/Owphi4E9dvcc+vzZhVwAzV2KQwMH2zYztJ64=', 'GeckoddCyrEDRV8AQO33RaJpanEITJPjInFUUN1Nb1s=', 'A+7TiStvDmxdoQWcXzeTmFg1qig1AKgSmQSpTIfxYb8=', 'COK4Jzv6MMGshQMG2R5Gip6NBQkq7ky8gMaHJIRjujA=', 'B63Mp22DN3KIOaG2rDs+1Cr7h9cq+Y9S9Bby7FiyjOw=', 'Fx7zeJa64rECCgpYOb1ReEzhG7QjfVSMFxFp0y+hm0A=', 'IP/fy4b00AUGTtvClpGMMy0y++/xcp3lBWomq7w6Nfo=', 'COzXpvFzXu2GuqCU5gj0iPONuzmPz+1LmUODoMqORkc=', 'HD9dhuWSH96YkBifHYxhh1QohgDmkovBgqxNXkyfDMs=', 'KcYRhO2dRg8zdVihr2Oap+PAl15AFO2OvK1KJdUeq/M=', 'De/UWyiVhygiituy29rval6bGmSQKnNPQCuM77irO1Y=', 'CnTqItigkzYGBhAXmsHYL/+pSS33be7U6mDgEzsIEag=', 'A6N78S2vFADSl6xKwTuiTBfcJi2xbIUj3u5ODM3ppoA=', 'Ef4XkNWrv1k1/yIxjk9//mmWatovkTa1T4MOrLCmU2g=', 'AYFlhC9AY3XyNGaGkVr7FL8f4FZMiFjuO94Kuj3l9o8=', 'Jh2yXnz/Wp+3LydrH5JgtmcwD7fTYbUP1cDotplbBfk=', 'KjrDMUsrZueW++Nt93jF5GlyMgzEPsgHBIgmtnBLp8Q=', 'I8qkuA7PqZ6dP+orvB2782nRv8iTfQPQdAYcMP2M12s=', 'J9smAIXiJImN8UXyP2NfIGbY5OEk5YHoxiYZKbHf4Qc=', 'J09sX9NKeE1rkV7wXUJO5sC6u/Np55qxOLgWe1YY7H8=', 'LDop4TqE0moJEckona8apM9YQKraBwHVfiPfx5babaE=', 'HqIQ8gAaM00+gB9OUycNQtp6rzF6VTtCgqp46qIoLm0=', 'JU2+tSiEtpnBun+g1ugNYQkDsYo+UJw2NRzMOwJJRuM=', 'BZ54HWWJbr4OS6JtwvKZB/R7ze2kososcT2FBeox/V0=', 'C1sc7GPULV5hXcJpuIWiTO8wPseMly3RfNuz6RXMT/s=', 'KnwBXpw7LFfKi30m05obzIXW/6y32fvWbSqPHWTtDJI=', 'Kbc2uRHXGnnPY9im94bxG9Wr7iQWHcVnp8hR6uHkO1E=', 'KFdFqQp/49Ca9agIcEvGnG8XAeVzkS31zB4mXVlsQUE=', 'LZAbgZXDyWyMNuuZ/sATTsK4MEroEL0w2lVOMICCZxU=', 'GQXTUYNV6rp4WbWR7XuMnCU5gPBFDb31TXp3groFg5I=', 'I+gTAm/AuABk0ZtcVCiUL99+/qgL+o7ECVJyv9t7TJ8=', 'I8ChmiUsh+axwcIbGnmAAgDD+/8+MwDn5VaAcd6e+4E=', 'EcSuYHuuSSQTv2LNqiwoaO0f7G3AYxsGfKYPqxJbnio=', 'LNBV67fuRoY2XepFDwRv9iQF+uGxr8n7AXB8+B2g47k=', 'BTyf7y4CH6miD62iL96hUFtYoxWbu0czfb95GyFbFFI=', 'CjW9dOh8urqr6JrRMZ0snoY7TGMcIZOMmlOVv5eHKp8=', 'HBFQVlOc4gzVoE0aXEPisA++g7JZAb429d3EZm/Dg/4=', 'JClUBH5Xcv073tWQ7IvrTFQvLiZMjD4oTNxHNQXFGpA=', 'Diq9MVtHwNyThJwM3yZ+gRy9vbIApufCtn7ffLAXQhQ=', 'KCs3AgwIkNdRw/12lQ2AaGaOHf6uYh3VUtLeiH2i6nU=', 'KJM4UiZrUtnqa1u5I9nZTy5aW+XHeOdeB5QsI0tkO9k=', 'CZq2dlUFuhGY7xQOd7eVTU++eaBWznK6zjnASMANo88=', 'KvIR2OCsLY/af4SbjyKaIlxhhrVXYsensq4tHdhcV8s=', 'DNBw8jQBSigJq5DHHB2mHpipYyL+3Zm2qq4coQTz+s8=', 'Jnk+KryNPDDGBib7qhWPJjWH1r0Vgz1EixFiZLkwJWo=', 'IlvjbtDuheH4Ra2oTldIpWaZFSET/2G1BWtti95gwZ0=', 'AhdPSe2wLVFU0r7KLckrnMWVOD2h/ejwnkte4+paBl4=', 'D2SJHCyLAg5Gw1lMt1jwvdzb0JvQMIgW+0FzSoaYcsM=', 'GSqEyi+Z02mR4tKx3v85idHBVsI54Q6fVhQOGFRXYGc=', 'Kd/Ne2PwWr8nU6jDQda3pgxiQ7BMmhuLMyC7oEpNR4c=', 'HuJ61rm1qGdzOvxhorPnalK6PkvV5let6R/AOIGduls=', 'CrR3PxUMP4rTvJU49DzsOVp+NzGulz/v62I6CSF+ZMc=', 'E8NSoC9ZUYYgLLC5n6WMVUKrZ/m206Cv0QPe7/bYD0E=', 'KpfPLBDEv7/SmfZ8UqFp+SwFt9rFakHE3U/ofIJGzhQ=', 'AL7LtHBCvX+Mn2u0IhYtGu0ImihIL3/RarBqEyhf5wI=', 'AI5E2iHXOGkbiBdX7zftKcW9n3pEUPz1MpCpLMLKIXY=', 'KyBai21LcGPZMfO7XTRkBThD/n++S4PBeIP4ZSeIKhg=', 'LZ4yp8kFVv4QjSVawB513zOPzWOyv4TBkoDUJymIY/w=', 'KaMiqEwlvS3fbi5CACKNlavWNJoCJmrB27pSBzjOypc=', 'BnjJv8by3wEvT+VeM7torBTO0d8NAhUnkgidBG2CjEM=', 'D6/zpedCV5T+IKfg62FbixdgOUt/IwQoajrkAJEk2yM=', 'H49bYRr5/rnOqGwIQFgSBVPkBBA67iE/WkHR0CVBwNM=', 'Fgh12EeWAvlvQKzC0ELuUsFYi2op3kKEllptxskw6gc=', 'Fth6UYOjFqHXCvyVHv4s1mfHcyj8/aRYy/X+MEX0bZ4='],
362
- M: [['EkZm+AVh7VkW8vBwsb0kjG1T9E0nPZVqDIe5F2kqTRg=', 'EZJPAv0ZsJJVqqHPRuoFGOPXv+70dCFglJEBHbC9CwI=', 'JH+n8CIwShmU/1BUVsIgHvm3FzaUmNP/zkRmAe2d+EU=', 'A/17Ge8shh8i93/4EPVOJ3vJTrdsAtedmGvj3N8FHD8=', 'GL1BI5w+cVeaZ3RD7P+9VVqB7u6mk1Kmi2fIVjwMKgY=', 'LXjDpdKN6f81vwoldjUZblcwyn9ASTJ3B4zXXai069w='], ['ClFKXCJ/TOyV36Ap6N0STDSJWqRrsnwJEfN4DVAVVAo=', 'GS4W0X2VayV7haZS7v3y7glYnqxb6AkVd1cj0ssdoG0=', 'KYzgweMRO7k1xwWOd3K1M7GqnbDAkmvciRflYFyjrBA=', 'CUy06DYhr9Jx5BvHFyfwFY69YSI5rJ1pixf+S+Bbf8g=', 'A9iAOVvpPCfWSa9f0ULnazORjLiEHVooFzvVz30yh5E=', 'KO6ua1hmrWjkQ7uvkWgNt9fiswN+OP72G0LLzP/OyoE='], ['J4u0mntORK6kbrD4gstpKAGm5g/dW1wjxjzWXMzk/go=', 'Bj7ewb7YMfUGr422SNb96hRTRYh+i9z/EJA1odm2dNc=', 'G67xy1UJtSakIGH7U2V/mbMjJQDoVRksvoyUDgaMR18=', 'EyRWSse9+eIhZOmFjX+o42ixZerqPa9Otn7lnA3y5dQ=', 'AFdhuMauyxqMpOpN/CyDdgZKSoAEzu2iEKVSQFYt3BM=', 'EMnigxWdWMtMsuNf3oOjuh/cKAAu2ZY9KpnxhheKFI0='], ['DDmen2eqQHB6ID/u+wuVi72tzsXKNJAdJT0CaiQZ9qI=', 'CD8N8/GgNR0DMOw/9gLKjMNTt/bnYscQcYTNe0I0SfY=', 'Gmdk1ZQ/xKcgtMChn9uMcRmEMHKHpYubX59dWCEssmM=', 'ARpjom/qv4f6Zr3mbMJakiyWOC12xqf/SPFTe+rtaDo=', 'CMp7ZGV8NUjzK+9bY60kKIpBwLJRCZrSf5Q0MH4+ZNQ=', 'AZmCcEcek2GVVEawzbi+qRXsBnXxzWSN3LBDA1B6RIk='], ['HWs9X26jacJvgl0jYpM+qjHqNewKd8H72eAcoVI+RDI=', 'EZ7xiLs90NMjBpdsGZQehmS+aH56aWkton2iFabwbUA=', 'LZ4KtcBok9/f0DSBOBuoa25ikt9WCdcfLGSy2aefgJ4=', 'JfFmMb93Bg9+o0CHwCW/E1eEMZ7wjNouMUGe4KUp5lg=', 'FEx6EdpafF2rrj8z+9A8rYbRi8WUx5pJfsuYlO21VPE=', 'D5cRYmJ3I/P+rayyiwwQTLj3TeUIdS+o18DbKvE96O4='], ['JL5RAJVDYgbdCr0LDLuVyIOrMEqlJZixppMG7JgaaI0=', 'IRYQ4q1KN3Qm+t9waLDBpsKZoWTBwaYD6u2USHDQubk=', 'FaZ9mBBBsfbwnz+evv2GTnedOvCBV3hqwHdQXlDsefw=', 'BJMn+nnSjBKiyCQGlH938Gd1sCh0aLMTaHdwHb58lZg=', 'IwlA3MUjJlj/nClpej/UFtFw6MmY8aqF3qDELXn5Uao=', 'GxIcBJzRFZ4okAfgydqZlcxLq0wm+4iOw5cqii5laWQ=']]
363
- };
364
- _5.default = _default$1;
365
- Object.defineProperty(poseidon5$1, "__esModule", {
366
- value: true
367
- });
368
- var poseidon5_2 = poseidon5$1.poseidon5 = poseidon5;
369
- var _poseidon$1 = _interopRequireDefault$1(poseidon_1$1);
370
- var _unstringify$1 = _interopRequireDefault$1(unstringify$1);
371
- var _$1 = _interopRequireDefault$1(_5);
372
- function _interopRequireDefault$1(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
373
- const c$1 = (0, _unstringify$1.default)(_$1.default);
374
- function poseidon5(inputs) {
375
- return (0, _poseidon$1.default)(inputs, c$1);
376
- }
377
- let Blake$2 = class Blake {
378
- _lengthCarry (arr) {
379
- for (let j = 0; j < arr.length; ++j) {
380
- if (arr[j] < 0x0100000000) break
381
- arr[j] -= 0x0100000000;
382
- arr[j + 1] += 1;
383
- }
384
- }
385
- update (data) {
386
- const block = this._block;
387
- let offset = 0;
388
- while (this._blockOffset + data.length - offset >= block.length) {
389
- for (let i = this._blockOffset; i < block.length;) block[i++] = data[offset++];
390
- this._length[0] += block.length * 8;
391
- this._lengthCarry(this._length);
392
- this._compress();
393
- this._blockOffset = 0;
394
- }
395
- while (offset < data.length) block[this._blockOffset++] = data[offset++];
396
- }
397
- };
398
- Blake$2.sigma = [
399
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
400
- [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],
401
- [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4],
402
- [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8],
403
- [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13],
404
- [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9],
405
- [12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11],
406
- [13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10],
407
- [6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5],
408
- [10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0],
409
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
410
- [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],
411
- [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4],
412
- [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8],
413
- [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13],
414
- [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9]
415
- ];
416
- Blake$2.u256 = [
417
- 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
418
- 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
419
- 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
420
- 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917
421
- ];
422
- Blake$2.u512 = [
423
- 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
424
- 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
425
- 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
426
- 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
427
- 0x9216d5d9, 0x8979fb1b, 0xd1310ba6, 0x98dfb5ac,
428
- 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96,
429
- 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7,
430
- 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69
431
- ];
432
- Blake$2.padding = Buffer.from([
433
- 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
434
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
435
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
436
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
437
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
438
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
439
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
440
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
441
- ]);
442
- var blake = Blake$2;
443
- getDefaultExportFromCjs$1(blake);
444
- const Blake$1 = blake;
445
- const zo$3 = Buffer.from([0x01]);
446
- const oo$3 = Buffer.from([0x81]);
447
- const rot$1 = (x, n) => ((x << (32 - n)) | (x >>> n)) >>> 0;
448
- function g$1 (v, m, i, a, b, c, d, e) {
449
- const sigma = Blake$1.sigma;
450
- const u256 = Blake$1.u256;
451
- v[a] = (v[a] + ((m[sigma[i][e]] ^ u256[sigma[i][e + 1]]) >>> 0) + v[b]) >>> 0;
452
- v[d] = rot$1(v[d] ^ v[a], 16);
453
- v[c] = (v[c] + v[d]) >>> 0;
454
- v[b] = rot$1(v[b] ^ v[c], 12);
455
- v[a] = (v[a] + ((m[sigma[i][e + 1]] ^ u256[sigma[i][e]]) >>> 0) + v[b]) >>> 0;
456
- v[d] = rot$1(v[d] ^ v[a], 8);
457
- v[c] = (v[c] + v[d]) >>> 0;
458
- v[b] = rot$1(v[b] ^ v[c], 7);
459
- }
460
- var blake256 = class Blake256 extends Blake$1 {
461
- constructor () {
462
- super();
463
- this._h = [
464
- 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
465
- 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
466
- ];
467
- this._s = [0, 0, 0, 0];
468
- this._block = Buffer.alloc(64);
469
- this._blockOffset = 0;
470
- this._length = [0, 0];
471
- this._nullt = false;
472
- this._zo = zo$3;
473
- this._oo = oo$3;
474
- }
475
- _compress () {
476
- const u256 = Blake$1.u256;
477
- const v = new Array(16);
478
- const m = new Array(16);
479
- let i;
480
- for (i = 0; i < 16; ++i) m[i] = this._block.readUInt32BE(i * 4);
481
- for (i = 0; i < 8; ++i) v[i] = this._h[i] >>> 0;
482
- for (i = 8; i < 12; ++i) v[i] = (this._s[i - 8] ^ u256[i - 8]) >>> 0;
483
- for (i = 12; i < 16; ++i) v[i] = u256[i - 8];
484
- if (!this._nullt) {
485
- v[12] = (v[12] ^ this._length[0]) >>> 0;
486
- v[13] = (v[13] ^ this._length[0]) >>> 0;
487
- v[14] = (v[14] ^ this._length[1]) >>> 0;
488
- v[15] = (v[15] ^ this._length[1]) >>> 0;
489
- }
490
- for (i = 0; i < 14; ++i) {
491
- g$1(v, m, i, 0, 4, 8, 12, 0);
492
- g$1(v, m, i, 1, 5, 9, 13, 2);
493
- g$1(v, m, i, 2, 6, 10, 14, 4);
494
- g$1(v, m, i, 3, 7, 11, 15, 6);
495
- g$1(v, m, i, 0, 5, 10, 15, 8);
496
- g$1(v, m, i, 1, 6, 11, 12, 10);
497
- g$1(v, m, i, 2, 7, 8, 13, 12);
498
- g$1(v, m, i, 3, 4, 9, 14, 14);
499
- }
500
- for (i = 0; i < 16; ++i) this._h[i % 8] = (this._h[i % 8] ^ v[i]) >>> 0;
501
- for (i = 0; i < 8; ++i) this._h[i] = (this._h[i] ^ this._s[i % 4]) >>> 0;
502
- }
503
- _padding () {
504
- let lo = this._length[0] + this._blockOffset * 8;
505
- let hi = this._length[1];
506
- if (lo >= 0x0100000000) {
507
- lo -= 0x0100000000;
508
- hi += 1;
509
- }
510
- const msglen = Buffer.alloc(8);
511
- msglen.writeUInt32BE(hi, 0);
512
- msglen.writeUInt32BE(lo, 4);
513
- if (this._blockOffset === 55) {
514
- this._length[0] -= 8;
515
- this.update(this._oo);
516
- } else {
517
- if (this._blockOffset < 55) {
518
- if (this._blockOffset === 0) this._nullt = true;
519
- this._length[0] -= (55 - this._blockOffset) * 8;
520
- this.update(Blake$1.padding.slice(0, 55 - this._blockOffset));
521
- } else {
522
- this._length[0] -= (64 - this._blockOffset) * 8;
523
- this.update(Blake$1.padding.slice(0, 64 - this._blockOffset));
524
- this._length[0] -= 55 * 8;
525
- this.update(Blake$1.padding.slice(1, 1 + 55));
526
- this._nullt = true;
527
- }
528
- this.update(this._zo);
529
- this._length[0] -= 8;
530
- }
531
- this._length[0] -= 64;
532
- this.update(msglen);
533
- }
534
- digest () {
535
- this._padding();
536
- const buffer = Buffer.alloc(32);
537
- for (let i = 0; i < 8; ++i) buffer.writeUInt32BE(this._h[i], i * 4);
538
- return buffer
539
- }
540
- };
541
- getDefaultExportFromCjs$1(blake256);
542
- const Blake256 = blake256;
543
- const zo$2 = Buffer.from([0x00]);
544
- const oo$2 = Buffer.from([0x80]);
545
- var blake224 = class Blake224 extends Blake256 {
546
- constructor () {
547
- super();
548
- this._h = [
549
- 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
550
- 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
551
- ];
552
- this._zo = zo$2;
553
- this._oo = oo$2;
554
- }
555
- digest () {
556
- this._padding();
557
- const buffer = Buffer.alloc(28);
558
- for (let i = 0; i < 7; ++i) buffer.writeUInt32BE(this._h[i], i * 4);
559
- return buffer
560
- }
561
- };
562
- getDefaultExportFromCjs$1(blake224);
563
- const Blake = blake;
564
- const zo$1 = Buffer.from([0x01]);
565
- const oo$1 = Buffer.from([0x81]);
566
- function rot (v, i, j, n) {
567
- let hi = v[i * 2] ^ v[j * 2];
568
- let lo = v[i * 2 + 1] ^ v[j * 2 + 1];
569
- if (n >= 32) {
570
- lo = lo ^ hi;
571
- hi = lo ^ hi;
572
- lo = lo ^ hi;
573
- n -= 32;
574
- }
575
- if (n === 0) {
576
- v[i * 2] = hi >>> 0;
577
- v[i * 2 + 1] = lo >>> 0;
578
- } else {
579
- v[i * 2] = ((hi >>> n) | (lo << (32 - n))) >>> 0;
580
- v[i * 2 + 1] = ((lo >>> n) | (hi << (32 - n))) >>> 0;
581
- }
582
- }
583
- function g (v, m, i, a, b, c, d, e) {
584
- const sigma = Blake.sigma;
585
- const u512 = Blake.u512;
586
- let lo;
587
- lo = v[a * 2 + 1] + ((m[sigma[i][e] * 2 + 1] ^ u512[sigma[i][e + 1] * 2 + 1]) >>> 0) + v[b * 2 + 1];
588
- v[a * 2] = (v[a * 2] + ((m[sigma[i][e] * 2] ^ u512[sigma[i][e + 1] * 2]) >>> 0) + v[b * 2] + ~~(lo / 0x0100000000)) >>> 0;
589
- v[a * 2 + 1] = lo >>> 0;
590
- rot(v, d, a, 32);
591
- lo = v[c * 2 + 1] + v[d * 2 + 1];
592
- v[c * 2] = (v[c * 2] + v[d * 2] + ~~(lo / 0x0100000000)) >>> 0;
593
- v[c * 2 + 1] = lo >>> 0;
594
- rot(v, b, c, 25);
595
- lo = v[a * 2 + 1] + ((m[sigma[i][e + 1] * 2 + 1] ^ u512[sigma[i][e] * 2 + 1]) >>> 0) + v[b * 2 + 1];
596
- v[a * 2] = (v[a * 2] + ((m[sigma[i][e + 1] * 2] ^ u512[sigma[i][e] * 2]) >>> 0) + v[b * 2] + ~~(lo / 0x0100000000)) >>> 0;
597
- v[a * 2 + 1] = lo >>> 0;
598
- rot(v, d, a, 16);
599
- lo = v[c * 2 + 1] + v[d * 2 + 1];
600
- v[c * 2] = (v[c * 2] + v[d * 2] + ~~(lo / 0x0100000000)) >>> 0;
601
- v[c * 2 + 1] = lo >>> 0;
602
- rot(v, b, c, 11);
603
- }
604
- var blake512 = class Blake512 extends Blake {
605
- constructor () {
606
- super();
607
- this._h = [
608
- 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b,
609
- 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,
610
- 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f,
611
- 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179
612
- ];
613
- this._s = [0, 0, 0, 0, 0, 0, 0, 0];
614
- this._block = Buffer.alloc(128);
615
- this._blockOffset = 0;
616
- this._length = [0, 0, 0, 0];
617
- this._nullt = false;
618
- this._zo = zo$1;
619
- this._oo = oo$1;
620
- }
621
- _compress () {
622
- const u512 = Blake.u512;
623
- const v = new Array(32);
624
- const m = new Array(32);
625
- let i;
626
- for (i = 0; i < 32; ++i) m[i] = this._block.readUInt32BE(i * 4);
627
- for (i = 0; i < 16; ++i) v[i] = this._h[i] >>> 0;
628
- for (i = 16; i < 24; ++i) v[i] = (this._s[i - 16] ^ u512[i - 16]) >>> 0;
629
- for (i = 24; i < 32; ++i) v[i] = u512[i - 16];
630
- if (!this._nullt) {
631
- v[24] = (v[24] ^ this._length[1]) >>> 0;
632
- v[25] = (v[25] ^ this._length[0]) >>> 0;
633
- v[26] = (v[26] ^ this._length[1]) >>> 0;
634
- v[27] = (v[27] ^ this._length[0]) >>> 0;
635
- v[28] = (v[28] ^ this._length[3]) >>> 0;
636
- v[29] = (v[29] ^ this._length[2]) >>> 0;
637
- v[30] = (v[30] ^ this._length[3]) >>> 0;
638
- v[31] = (v[31] ^ this._length[2]) >>> 0;
639
- }
640
- for (i = 0; i < 16; ++i) {
641
- g(v, m, i, 0, 4, 8, 12, 0);
642
- g(v, m, i, 1, 5, 9, 13, 2);
643
- g(v, m, i, 2, 6, 10, 14, 4);
644
- g(v, m, i, 3, 7, 11, 15, 6);
645
- g(v, m, i, 0, 5, 10, 15, 8);
646
- g(v, m, i, 1, 6, 11, 12, 10);
647
- g(v, m, i, 2, 7, 8, 13, 12);
648
- g(v, m, i, 3, 4, 9, 14, 14);
649
- }
650
- for (i = 0; i < 16; ++i) {
651
- this._h[(i % 8) * 2] = (this._h[(i % 8) * 2] ^ v[i * 2]) >>> 0;
652
- this._h[(i % 8) * 2 + 1] = (this._h[(i % 8) * 2 + 1] ^ v[i * 2 + 1]) >>> 0;
653
- }
654
- for (i = 0; i < 8; ++i) {
655
- this._h[i * 2] = (this._h[i * 2] ^ this._s[(i % 4) * 2]) >>> 0;
656
- this._h[i * 2 + 1] = (this._h[i * 2 + 1] ^ this._s[(i % 4) * 2 + 1]) >>> 0;
657
- }
658
- }
659
- _padding () {
660
- const len = this._length.slice();
661
- len[0] += this._blockOffset * 8;
662
- this._lengthCarry(len);
663
- const msglen = Buffer.alloc(16);
664
- for (let i = 0; i < 4; ++i) msglen.writeUInt32BE(len[3 - i], i * 4);
665
- if (this._blockOffset === 111) {
666
- this._length[0] -= 8;
667
- this.update(this._oo);
668
- } else {
669
- if (this._blockOffset < 111) {
670
- if (this._blockOffset === 0) this._nullt = true;
671
- this._length[0] -= (111 - this._blockOffset) * 8;
672
- this.update(Blake.padding.slice(0, 111 - this._blockOffset));
673
- } else {
674
- this._length[0] -= (128 - this._blockOffset) * 8;
675
- this.update(Blake.padding.slice(0, 128 - this._blockOffset));
676
- this._length[0] -= 111 * 8;
677
- this.update(Blake.padding.slice(1, 1 + 111));
678
- this._nullt = true;
679
- }
680
- this.update(this._zo);
681
- this._length[0] -= 8;
682
- }
683
- this._length[0] -= 128;
684
- this.update(msglen);
685
- }
686
- digest () {
687
- this._padding();
688
- const buffer = Buffer.alloc(64);
689
- for (let i = 0; i < 16; ++i) buffer.writeUInt32BE(this._h[i], i * 4);
690
- return buffer
691
- }
692
- };
693
- getDefaultExportFromCjs$1(blake512);
694
- const Blake512 = blake512;
695
- const zo = Buffer.from([0x00]);
696
- const oo = Buffer.from([0x80]);
697
- var blake384 = class Blake384 extends Blake512 {
698
- constructor () {
699
- super();
700
- this._h = [
701
- 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507,
702
- 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,
703
- 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511,
704
- 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4
705
- ];
706
- this._zo = zo;
707
- this._oo = oo;
708
- }
709
- digest () {
710
- this._padding();
711
- const buffer = Buffer.alloc(48);
712
- for (let i = 0; i < 12; ++i) buffer.writeUInt32BE(this._h[i], i * 4);
713
- return buffer
714
- }
715
- };
716
- getDefaultExportFromCjs$1(blake384);
717
- var lib = {
718
- Blake224: blake224,
719
- Blake256: blake256,
720
- Blake384: blake384,
721
- Blake512: blake512
722
- };
723
- getDefaultExportFromCjs$1(lib);
724
- function hash(message) {
725
- const engine = new lib.Blake512();
726
- engine.update(message);
727
- return engine.digest();
728
- }
729
- function pruneBuffer(buff) {
730
- buff[0] &= 0xf8;
731
- buff[31] &= 0x7f;
732
- buff[31] |= 0x40;
733
- return buff;
734
- }
735
- function isPoint(point) {
736
- return Array.isArray(point) && point.length === 2 && isStringifiedBigint(point[0]) && isStringifiedBigint(point[1]);
737
- }
738
- function isSignature(signature) {
739
- return (typeof signature === "object" &&
740
- Object.prototype.hasOwnProperty.call(signature, "R8") &&
741
- Object.prototype.hasOwnProperty.call(signature, "S") &&
742
- isPoint(signature.R8) &&
743
- isStringifiedBigint(signature.S));
744
- }
745
- function checkPrivateKey(privateKey) {
746
- if (isBigNumberish(privateKey)) {
747
- return bigNumberishToBuffer(privateKey);
748
- }
749
- if (typeof privateKey !== "string") {
750
- throw TypeError("Invalid private key type. Supported types: number, bigint, buffer, string.");
751
- }
752
- return Buffer.from(privateKey);
753
- }
754
- function checkMessage(message) {
755
- if (isBigNumberish(message)) {
756
- return bigNumberishToBigint(message);
757
- }
758
- if (typeof message !== "string") {
759
- throw TypeError("Invalid message type. Supported types: number, bigint, buffer, string.");
760
- }
761
- return bufferToBigint(Buffer.from(message));
762
- }
763
- /**
764
- * Hashes the 32-byte private key using Blake1, prunes the lower 32 bytes
765
- * of the buffer and converts it to a little-endian integer.
766
- * This function is used to obtain the secret scalar to be used as
767
- * the input of the private key in the circuits, since the circuit only
768
- * performs a fixed-base scalar multiplication.
769
- * For more info about these steps: {@link https://datatracker.ietf.org/doc/html/rfc8032#section-5.1.5}.
770
- * @param privateKey - The private key used for generating the public key.
771
- * @returns The secret scalar to be used to calculate public key.
772
- */
773
- function deriveSecretScalar(privateKey) {
774
- privateKey = checkPrivateKey(privateKey);
775
- let hash$1 = hash(privateKey);
776
- hash$1 = hash$1.slice(0, 32);
777
- hash$1 = pruneBuffer(hash$1);
778
- return scalar.shiftRight(leBufferToBigint(hash$1), BigInt(3)).toString();
779
- }
780
- /**
781
- * Derives a public key from a given private key using the
782
- * {@link https://eips.ethereum.org/EIPS/eip-2494|Baby Jubjub} elliptic curve.
783
- * This function utilizes the Baby Jubjub elliptic curve for cryptographic operations.
784
- * The private key should be securely stored and managed, and it should never be exposed
785
- * or transmitted in an unsecured manner.
786
- * @param privateKey - The private key used for generating the public key.
787
- * @returns The derived public key.
788
- */
789
- function derivePublicKey(privateKey) {
790
- const s = deriveSecretScalar(privateKey);
791
- const publicKey = mulPointEscalar(Base8, BigInt(s));
792
- return [publicKey[0].toString(), publicKey[1].toString()];
793
- }
794
- /**
795
- * Signs a message using the provided private key, employing Poseidon hashing and
796
- * EdDSA with the Baby Jubjub elliptic curve.
797
- * @param privateKey - The private key used to sign the message.
798
- * @param message - The message to be signed.
799
- * @returns The signature object, containing properties relevant to EdDSA signatures, such as 'R8' and 'S' values.
800
- */
801
- function signMessage(privateKey, message) {
802
- privateKey = checkPrivateKey(privateKey);
803
- message = checkMessage(message);
804
- const hash$1 = hash(privateKey);
805
- const sBuff = pruneBuffer(hash$1.slice(0, 32));
806
- const s = leBufferToBigint(sBuff);
807
- const A = mulPointEscalar(Base8, scalar.shiftRight(s, BigInt(3)));
808
- const msgBuff = leBigintToBuffer(message);
809
- const rBuff = hash(Buffer.concat([hash$1.slice(32, 64), msgBuff]));
810
- const Fr = new F1Field(subOrder);
811
- const r = Fr.e(leBufferToBigint(rBuff));
812
- const R8 = mulPointEscalar(Base8, r);
813
- const hm = poseidon5_2([R8[0], R8[1], A[0], A[1], message]);
814
- const S = Fr.add(r, Fr.mul(hm, s));
815
- return {
816
- R8: [R8[0].toString(), R8[1].toString()],
817
- S: S.toString()
818
- };
819
- }
820
- /**
821
- * Verifies an EdDSA signature using the Baby Jubjub elliptic curve and Poseidon hash function.
822
- * @param message - The original message that was be signed.
823
- * @param signature - The EdDSA signature to be verified.
824
- * @param publicKey - The public key associated with the private key used to sign the message.
825
- * @returns Returns true if the signature is valid and corresponds to the message and public key, false otherwise.
826
- */
827
- function verifySignature(message, signature, publicKey) {
828
- if (!isPoint(publicKey) ||
829
- !isSignature(signature) ||
830
- !inCurve(signature.R8) ||
831
- !inCurve(publicKey) ||
832
- BigInt(signature.S) >= subOrder) {
833
- return false;
834
- }
835
- message = checkMessage(message);
836
- const _signature = {
837
- R8: [BigInt(signature.R8[0]), BigInt(signature.R8[1])],
838
- S: BigInt(signature.S)
839
- };
840
- const _publicKey = [BigInt(publicKey[0]), BigInt(publicKey[1])];
841
- const hm = poseidon5_2([signature.R8[0], signature.R8[1], publicKey[0], publicKey[1], message]);
842
- const pLeft = mulPointEscalar(Base8, BigInt(signature.S));
843
- let pRight = mulPointEscalar(_publicKey, scalar.mul(hm, BigInt(8)));
844
- pRight = addPoint(_signature.R8, pRight);
845
- return Fr.eq(BigInt(pLeft[0]), pRight[0]) && Fr.eq(pLeft[1], pRight[1]);
846
- }
847
-
848
- function getDefaultExportFromCjs (x) {
849
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
850
- }
851
-
852
- var poseidon2$1 = {};
853
-
854
- const F = BigInt('21888242871839275222246405745257275088548364400416034343698204186575808495617');
855
- const N_ROUNDS_F = 8;
856
- const N_ROUNDS_P = [56, 57, 56, 60, 60, 63, 64, 63, 60, 66, 60, 65, 70, 60, 64, 68];
857
- const pow5 = v => {
858
- let o = v * v;
859
- return v * o * o % F;
860
- };
861
- function mix(state, M) {
862
- const out = [];
863
- for (let x = 0; x < state.length; x++) {
864
- let o = 0n;
865
- for (let y = 0; y < state.length; y++) {
866
- o = o + M[x][y] * state[y];
867
- }
868
- out.push(o % F);
869
- }
870
- return out;
871
- }
872
- function poseidon(_inputs, opt) {
873
- const inputs = _inputs.map(i => BigInt(i));
874
- if (inputs.length <= 0) {
875
- throw new Error('poseidon-lite: Not enough inputs');
876
- }
877
- if (inputs.length > N_ROUNDS_P.length) {
878
- throw new Error('poseidon-lite: Too many inputs');
879
- }
880
- const t = inputs.length + 1;
881
- const nRoundsF = N_ROUNDS_F;
882
- const nRoundsP = N_ROUNDS_P[t - 2];
883
- const {
884
- C,
885
- M
886
- } = opt;
887
- if (M.length !== t) {
888
- throw new Error(`poseidon-lite: Incorrect M length, expected ${t} got ${M.length}`);
889
- }
890
- let state = [0n, ...inputs];
891
- for (let x = 0; x < nRoundsF + nRoundsP; x++) {
892
- for (let y = 0; y < state.length; y++) {
893
- state[y] = state[y] + C[x * t + y];
894
- if (x < nRoundsF / 2 || x >= nRoundsF / 2 + nRoundsP) state[y] = pow5(state[y]);else if (y === 0) state[y] = pow5(state[y]);
895
- }
896
- state = mix(state, M);
897
- }
898
- return state[0];
899
- }
900
- var poseidon_1 = poseidon;
901
- getDefaultExportFromCjs(poseidon_1);
902
-
903
- var unstringify = {};
904
-
905
- Object.defineProperty(unstringify, "__esModule", {
906
- value: true
907
- });
908
- unstringify.default = unstringifyBigInts;
909
- function unstringifyBigInts(o) {
910
- if (Array.isArray(o)) {
911
- return o.map(unstringifyBigInts);
912
- } else if (typeof o == 'object') {
913
- const res = {};
914
- for (const [key, val] of Object.entries(o)) {
915
- res[key] = unstringifyBigInts(val);
916
- }
917
- return res;
918
- }
919
- const byteArray = Uint8Array.from(atob(o), c => c.charCodeAt(0));
920
- const hex = [...byteArray].map(x => x.toString(16).padStart(2, '0')).join('');
921
- return BigInt(`0x${hex}`);
922
- }
923
-
924
- var _2 = {};
925
-
926
- Object.defineProperty(_2, "__esModule", {
927
- value: true
928
- });
929
- _2.default = void 0;
930
- var _default = {
931
- C: ['DumlkrqalRjQWYbWVvQMIRTEmTwRuymTjSHUcwTNjm4=', 'APFEUjXyFIxZhlhxafwbzYh7CNTQCGjfVpb/9AlW6GQ=', 'CN/zSH6KyZ4fKaBY0PqAuTDHKHMLerNs6HnziQ7Pc/U=', 'Lye+aQ/a7kbDzij3UysTyFbDU0LIS9puIJZjEPrcAdA=', 'KyrhrPaLe40kFr6/PU9iNLdj/gS4BD7ki4MnvryhbPI=', 'AxnQYgcr737MperAb5fU1VlSwXWrawPq5ktEx9vxHPo=', 'KIE9yuuuqoKKN234evSmO8i3vyetScYpjvezh78oUm0=', 'JydnOyzLyQPxgb844cHUDSAzhlIAw1K8FQkord35y3g=', 'I07EXKJ3J8LnSr0rKhSUzW771D40BYfWuPueMeZcxjI=', 'FbUlNAMa4Y9/hiyyz3z3YKsQqBUKM3sczZn/boeX1Cg=', 'Dcj61tnks19e2aPRhrec444Oio0bWLEy1wHU7s9o0fY=', 'G82V/8IR+8pgD3BfrT+1Z+pOs3j2Lh/sl4BVGKR+TZw=', 'EFILCrchyt/p7/gbAW/DTcdto2wleJN4F8uXjQad5Vk=', 'H21IFJuOf32bJX2O1fu69CkySYB1/tCs6IqeuB9WJ/Y=', 'HZZV9lIwkBTSngDvNaIIm//43ByBbw3JyjS9tUYMhwU=', 'BN9aVv+VvK+wUfexzUOpm6cx/2fkcDIFj+PUGFaXzH0=', 'BnLZlfj/9kAVGz0pDO2vFIaQoQqMhCSn9uwoK25L6Cg=', 'CZlStBSIRFSyEgDX/6/dXwyancwG8nCOn8HYIJtcdbk=', 'BSy6IlXf0Ax8SDFDuo1GlEjkNYaptM2Rg/0OhDprn6Y=', 'C4ut7mkK246wvXRxK3mZr4LeVXByUa13Fgd8uTxGTdw=', 'EZsVkPEzB69aHuZRAgwHx0nBXWBoOoBQuWPQqOSyvdE=', 'AxULfNbV0XslKdNr4PZ7gyxKz8iE707lzhW+C/tKjQk=', 'LMYYLF4UVG488ZUfFzkSNVN077g9gImKvmnLMXyepWU=', 'AFAyVR5jeMRQz+EppASzdkIYyt7awU4rktLNcxEb8Pk=', 'IzI34yibqjS7FH6XLry5UWRpw5n8wGn7iPnaLMKCdrU=', 'Bcj09OvUpuPJgNMWdL++YyMDfyGzSuWk6AwtTCTWAoA=', 'CnsdsTBC05a6BdgYoxnyUlK8817zru2R7h8JslkPxls=', 'KnO3H5shDPWxQpZXLJ0y2/FW4rCG/0fcXfVCNlpATsA=', 'GsmwQXq8yaGTUQfp/8kdw+wY8sTb5/Ipdqdgu1xQxGA=', 'EsAzmuCDdII/q7B2cH70eSafPk1ssQQ0kBXuBG3JP8A=', 'C3R1sQKhZa1/WxjbTh5wT1KQCqMlO6rGgkZoLlbpoo4=', 'A3woSeGRyj7bHF5J9ui4kXyEPjeTZvLqMqs6qI1/hEg=', 'BaaBH4VW8BTpJnRmHiF+m9UgbFyToH3BRf2xdqcWNG8=', 'KaeV59mAKJRulHt11U6fBEB26Hp7KIO0e2de9fOL1m4=', 'IEOaDISzIutFo4V6/Bj1gm6Mc4LIoVhcUHvhmZgf0i8=', 'Lguo2U2ez0qU7CBQxzcf8btQ8neZqEttSipvKgmCyIc=', 'FD/RFc4I+yfKOOt8zoIrRReCLNIQkEjS5tDdzKF9ccg=', 'DGTL7LHHNLhXlo273PgTzfhhFlkyPby/yEMjYjvpyvE=', 'AoowWEfGg/ZG/KklwWP/WudPNI1iwrZw8UJs75QD2lM=', 'Lk71EP8Lb9pfqUCrTEOA8mpry2TYlCe4JNZ1W1254ww=', 'AIHJW8QzhOZj15JwyVbOO4kltPbQM7B4uWOE9QV5QA4=', 'LtXwyRy9l0kYfi+t5ofgXuJJGzScA5oLuoqfQCOguzg=', 'MFCZkfiNo1BLvzdO1ari8DRIoix2I0yMmQ8B8zpzUgY=', 'HD8g/VVAmlMiG3xNSaNWufChEZ+yBntBp1KQlEJOxq0=', 'ELTn86td8AMElRRFm24Y7sRrsiE+jhMeFwiHtH3cuWw=', 'KhmCl5w/9/Q93VQ9iRwqvd2A+ATAd9d1A5qjUC5Dre8=', 'HHTuZPFeHbb+3b6tVtbVXbpDHrw5bJr5XK0PExW9XJE=', 'B1M+yFC6f5jquTA8rOAbS55PLouCcIz6nC/kWgrhRqA=', 'IVdrQ45QBEmhUeTurxexVChcaPQtQsGAihGr83ZMB1A=', 'LxfAVZuP55YIrVyhk9YvELzoOEyBXwkGdD1pMINtSp4=', 'LUd+OGLQdwinnoqulGFwvJd1pCATGEdK5mWwsbficw4=', 'Fi9SQ5ZwZMOQ4JVXeYTyka+6ImbDj1q82Jvg9bJ0fqs=', 'K0yyM+3pukgmTs0siuUNGteoWWqH8p+Kd3enAJI5MxE=', 'LI+8st2Fc9wduvj0YihUd22y7s5thcTPQlTnw14DsHo=', 'HW80dyXkgWry/0U/DNVrGZ4bYen2Aemt5eiNuHCUnak=', 'IEsMOX9OvnHrwtiz31uRPfnmrAK2jTEyTNSa9cRWVSk=', 'DEy53DxP2BdPEUmzxjw8L57LgnzX3CVTT/j7dbx5xQI=', 'F0rWGhRIyJmiVBZHT0kwMB5cSUdSeeBjmmFt3EW8e1Q=', 'GpYXe89NjYn3Wd9OwvPN4uqqKMF3zA+hOpgW1Jo40u8=', 'Bm0EskMx1xzQ74BUvGDE/wUgLBJqIzwagkKs42C4owo=', 'KkxPxuwLDPUhlXgoccbdOzgcxl9y4CrVJwN6Yqob2AQ=', 'E6stE2zPN9RH6fLhSnztyV5yf4RG9tnX5Vr8ASGf1kk=', 'ESFVL8omBhYZ0k2EPcgnacGwT87Cb1UZTC4+hprMapo=', 'AO9lMyKxPWyIm8gXFcN9d6bNJn1ZXEqJCaVUbHyXz/E=', 'DiVIPkWmZSCLJh2Lp0BR5kAMd21lJZXZhFrKNdijl9M=', 'KfU23LnddoIkUmRlnhXYjjlaw9Td6S2MRkSNuXnuuok=', 'KlbvnyxT/rrf2jNXXb29iFoSTieAu+oXDkVrqs4Ppb4=', 'HINhx461z13s+3otF7XECfKuKZmkZ2Lo7kFiQKjLmvE=', 'FRr/XziyCg/ARzCJqvAga4Po5op2RQe/09CrS+dDGcU=', 'BMYYfkHtiB3BsjnIj3+dQ6n1L8jIts3R525HYVtR8QA=', 'E7N72A9NJ/sQ2EMx9vttU0uBxh7RV3ZEnoAbfdycKWc=', 'AaXFNic8LZ31eL+9MsF7eizjZkwqUgMskyHOscToqOQ=', 'KrNWGDTKc4Na0F9desuVC0qaLGZrlybagyI5Blt8OwI=', 'HU2OwpHnINsgD+bWhsDWE6yvavTpXTv2n37VFqWXtkY=', 'BBKU0sxITSKPV4T+eRn9K7klNRJAoEtxFRTJyAtlrx0=', 'FUrJjgFwjGEcT6cVmR8ASJj1eTnRJuOSBClx3ZDoH8Y=', 'CzOdisyn1Pg+7dhAk671EFCzaEyI+LCwRSRWO8bqTaQ=', 'CVXknmYQyUJUpPhM+6s0RZjw5x6v9Kfdge2VtQg5yC4=', 'BnRqYVbrpUQmueIiBvFavKmm9B5vU1xvNSVAHqBlRiY=', 'Dxj1oOzRQjxJbzggxUnCeDjleQ4r0KGWrJF8f/Mgd/s=', 'BPbuyhdR9zCKxZ7/W+smHku1Y1g+3nvJKnOCI9b3bhM=', 'K1aXM2TExPXBo+xNo83OA4gR6xFvs+RbwXaNJvwLN1g=', 'Ejdp3UnVsFTc12uJgEsby44TkrOFcWpdg/62XUN/Ke8=', 'IUe0JPxIyAqI7lK5EWmqzqmJ9kRkcRUJlCV7L7AcY+k=', 'D9wfWFSLhXAabFUF6jMqKWR+bzStQkPC6lStiXzr5U0=', 'Ejc6glH+oATfaKvPD3eG1Lzv8oxdu+DDlE9oXMCgsfI=', 'IeT06l81+FutfqUv90LJ6KZCdWtq9EID3YofNcGpADU=', 'FiQ5FtadLKPftHIiJNTEYrVzZkkvRekNioGTTxvDsUc=', 'HvvkbdeleLT2b5rbyItDeKvCFWbhoEU8oTpBWcrASsI=', 'B+pehTfPXdCIhgIOI6fzh9Ro1VJb5m+FO2csyWqIlpo=', 'BajE+ZaLiqO3tHijD5pbY2UPGadefOEcqf4WwLdsALw=', 'IPBXcSzCFlT7/lm9NF6NrD94GMcBuceILZ1Xtyoy6D8=', 'BKEu3tqd/WiWcvjGf+4xY23NjojQHUkBm9kLM+sz22k=', 'J+iNjBXzfc7kTx5UJaUd7L0TbOUJGmdn5J7JVEzNEBo=', 'L+7Re4QoXtm4pcjF6VpB9m4JZhmncDIjF2xB7kM95NE=', 'HtfMdu30XHxAQkFCD3Kc85TllCkRMSoNaXK4vVOv8rg=', 'FXQumbm/oyMVf/jFhvVmDqxng0dhRM3K3yh0vkVGaxo=', 'GqwoU4f2XoLIlfxoh930BXcQdFTG7AMXKE8DPyfQx4U=', 'JYUcPIRdR5D53a29tgVzV4MuLnpJd19x7HWpZVTWfHc=', 'FaWCFWXMLsLOeEV9sZft81O367osVSM3DdzMPZ8Uamc=', 'JBHVekgTuZgO+n4xodtZZtz2TzYEQndQLxVIXyjHFyc=', 'AC5vjWUgzUcT4zW4wLbS5kfpqY4S9M0lWIKLXvbLTJs=', 'L/e8j0OAzemX2gC2FrD80a+PDpHi/h7XOYg0YJ4DFdI=', 'ALmDG5SFJVle4CckRxvNGC6VIfa3u2jx6Tvk/rsNPL4=', 'Ci9TdouOv2qGkTsOV8BOARykCGSKR0OofXetvwycNRI=', 'ACSBVhQv0Dc6R5+R/yOelg9Zn/fpS+abfyopAwXhGY0=', 'Fx1WILh7+xMoz4wCqz8MmjlxlqpqVCwjUOtRKisrzak=', 'FwpPVVNvfclwCHx8ENb612DJUhct1U3ZnRBF5Ow0qAg=', 'KaujP3mf5mwu8xNK6gQzbsw344wc0hG6SC7KF+Lb+uE=', 'HpvBeaT911j90bsZRQiNR+cNEUoD9qDotbplA2nmSXM=', 'HdJpeZtmD61Y9/SJLfsLWv6q2GmpxLRPnJ4cQ72vjwk=', 'Is28i3ARetFAEYHQLhVFnnzNQm/oacfJXR3Syw8krzg=', 'DvBC5FR3HFM6n1elXFA/zv0xUPUu2Up81bqTucfazv0=', 'EWCeBq1sj+Lyh/MDYDfohRMY6LCKA1mgOzBP/KYugoQ=', 'EWbZ5VRhbbqedT7qQnwXt/7NWMB23+QnCLCPW3g6qa8=', 'LeUpiUMahZWTQTAmNUQT2xd/v0zSrAtW+FWoiDV+5GY=', 'MAbrT/x6hYGabaSS86isHfUa7lsXuOiddL8Bz19x6a0=', 'KvQfu2G6ioD9z2//nj9vQimT/o8KRjn5YjRMgiUUUIY=', 'EZ5oTeR2FV/lprQajryF24cYqyeInoXngbIUus5IJ8M=', 'GDW3huLokl4Yi+pZrjY1N7USSMI4KPBHz/eEuXs/2AA=', 'KCAaNMWU36NNeUmWxkM6INFSusKnkFySbEDihasy7rY=', 'CD79eifRdRCU6A/vr3iwAIZMgutXEYdySnYfiMIsxOc=', 'C2+Io1dxmVJhWOYc7qJ76BHBbfd3TdhRngeVZPYf0Ts=', 'Dsho5tFeUdlkT2bh1kcalFiVEcoA0p4QFDkObuQlT1s=', 'KvM+P4ZncScawMmz7S4RQuzT50uTnNQNANk3q4TJhZE=', 'C1ICEfkEtefQm12WHGrOdzRWjFR91oWLNkzl5HlR8Xg=', 'Cy1yLQkZoarY21jxAGKpLqDFasQnDoIsyiKGIBiKHUA=', 'H3kNTX+M8JTZgM6zfCRT6Ve1SpmRyji74AYdHtblYtQ=', 'AXHrld+/fR6uqXzThfeAFQiFwWI1oqao2pLOsB5QQjM=', 'DC0OO1/VdUkym/aIXaZrm3kLQN79LIZQdiMFOBsWiHM=', 'EWL7KGicJxVOWoIotOcrN3y8r6WJ4oPDXTgDBUQHoY0=', 'LxRZtl3uRBtkrThqkegxDygsWpKonhmSFiPvgklxG8A=', 'Hm/zIWtojD2ZbXQ2fVzUwbxInUZ1TrcSwkP3DRtTz7s=', 'AcqL5zgyuNBoFIfSfRV4AtdBpvNs3CoFdogfkyZHiHU=', 'H3c1cG/+n8WG+XbVvfIj3GgChggLEM6gC5td4xX5ZQ4=', 'JSK2D06jMHZAoMLc4EH7qSGsEKPV8JbvR0XKg4KF8Bk=', 'I/C+4AGxAp1SVQdd3JV/gzQYytT1K2w/jOFsI1VyV1s=', 'K8Gui43buB/KrC1EVV7VaF0UJjPp35BfZtlAEJMILVk=', 'D5QGuCllZKNzBFB7jbo+0WI3EnOgex/JgBH81q1yIF8=', 'I2Co6wzH3vpntymY3pBxThfnWxdKUu5KyxJsjNmV8Kg=', 'FYcaXN3q2XaATIA8uu8lXrSBWl6W34sAbcu8J2f4iUg=', 'GTpWdmmY7p4KhlLdLzsdoDYvT1T3I3lUT5V8ze77Qg8=', 'KjlKQ5NPhpgvm+Vv9PqxcDsuY8itM0g05DCYBed3rg8=', 'GFmVTP64aV8+i2NdyzRRkoks0RIjRDuntBZuiHbA0UI=', 'BOEYF2MFDlgBNETby5nxkCsRvCXZC73KQI04GfT+0ys=', 'D9slPe6Dhp1AwzXqZN6MW7EOuC2wi16LH15VUr/QXyM=', 'BYy+ippQJ72qTvtiOt6tYnXwhobxwImEqdfFuum08cA=', 'E4Ltzplx4YZJfq2xrrH1KyO0uDvvAjqw0VIotMzspZo=', 'A0ZJkPBFxu4IGcpR/RGwvn9huOuZ8Ut34eZjRgHZ6LU=', 'I/e/yHINwpb/8ztB+Y/4PG/KtGBdsutaqlvBN663Clg=', 'ClmhWOPuwhF+bpTn8OnezxjD/9XhUxqSGWNhWLuvYvI=', 'BuxUyAOBwFK1i/I7MS/9POLE66BlQgr49MI+0Adf0Hs=', 'EYhy3IMuDrVHa1ZkjoZ+yLCTQPenvLG0li8P+e0fnQE=', 'E9afoSfYNBZa1cfLp61Z7VLgsPDkLX/qleGQa1IJIbE=', 'FpoXf2PqaBJwscaHenPSG94UOUL7cdxV/YpJ8Z8Qx3s=', 'BO9RWRxurZfvQvKHrc5A2Tq+sDK5IvZv+36aWnRQVE0=', 'JW4XWh3AeTkOzXynA/suOxnsYYBdTwPO1fRe5t0Paew=', 'MBAtKGNqvV/l8q9BL/YAT3XMNg0yBd0toAKBPT4s7rI=', 'EJmOQt/NO78cBxS8c+sb9ARDo/qZvvSjH9Mb4YL8x5I=', 'GT7djp/PPXYl+n0ktZih2J8zYur01YLv7K12+HnjaGA=', 'GBaK/TTy2RXQNozoC3szR9HHpWHOYRQl8mZNeqUfC10=', 'KTg8AevTtqsMAXZW6+ZYtqMo7He8M2JuKeLpWzPqYRE=', 'EGRtLyYD3jmh9K5ed3GmSnAttuhvt2q2AL9XP5AQxxE=', 'C+teB9GycUX1dfE5WlW/Ey+QwltA2ns4ZNAkLcsRF/s=', 'FtaFJSB4wTPcDT7K1itciDD5W7LlS1mr3/vwGNlvozY=', 'Cmq9HYM5OPM8dBVOBAS0tApVW7vsId36/Wct1iBH8Bo=', 'GmefXTbre1yOoSpMLe3I/rEt/+7EUDFycKbxmzTPGGA=', 'CYD7IzvUVsI5dNUODr/eRyakI+raTo9v+8dZLj8bk9Y=', 'FhtCIy5huEy/GBCvk6OPwM7OPVYoySggA+ustcMSxys=', 'CtoQqQx/BSCVD31Hpg1eakk/CXh/FWTl0JID20feGgs=', 'GnMNNyMQuoIyA0WimsQjjtPweoorThIbtQ3bmvQH9FE=', 'LIEg8mjvBU+BcGTDad2n6pCDd/6rpcTf+9oQ71joxVY=', 'HHyIJPdYdT+lfAB4nGhCF7kw6VMTvLc+bnuGSaSWj3A=', 'LNntMfX4aRyOOeQHenT6oPQArYtJHrP3tHsn+j/Rz3c=', 'I/9PnUaBNFfPYNkvV2GDmaXgIqwyHKVQhUriORiiLuo=', 'CZRaXRR6T2bO7OZAXd3Z0K9aLFEDUpQH3/HqWPGAQm0=', 'GI2cUoAl1MK2dmDGt3G5D3x9puqinT8mim3SI+xvxjA=', 'MFDjeZZZa3+B9oMRQx2HNNun2SbTYzWV4MDY3fTw9H8=', 'Fa8RaTloMKkWAMqBAsNcQmzq5UYeP5XYnYKVGNMK/Xg=', 'HabQmIVDLqmgbZ83+HPZhdrpM+NRRmspBChNozINisw=', 'J5bqkNJpryn1+KzzOSESTk5PrT2+ZYlF5UbuQR3aqcs=', 'IC190doPa0sDJcizMHdC8B4VYS7I6TBKfLAxngHTLWA=', 'CW1nkNBbt1kVapUromPWcqLX+ceI9Mgxop2s5MD4vl8=', 'BU76H2Ww/OKDgIllJ12He0ONojzlsT4ZY3mMsUR9JaQ=', 'GxYvg9kX6T7bMwjCmALeudiqaQETsuFIZMz24Y5BZfE=', 'IeUkHhJWTdb9nxzdKg3jnu3+/BRmzFaOxc63RaBQbtw=', 'HPtWYujPWskiaoDuF7Nqvstzq1+H4WGSe0NJ4Q5L3wg=', 'DyEXfjAqdxu65tjR7LNztiyZrzRiIKwBKcU/Zm6yQQA=', 'FnFSI3RgaZKv+w3X9xsSvsQjau3mKQVGvO9+H1FcIyA=', 'D6PsW5SIJZwutM8kUBv62b4uyeQsXMjM1BnSppLK2HA=', 'GTwOBOC9KYNXyyZsFQYIDtNu3OhcZIzAhejFexq1S7o=', 'ECrfjvdHNaJ+kSgwbcvDyZ9vcpHNQGV4zhTqKtq6aPg=', 'D+CveFjkmFnipU1vGtlFsTFqokv73SOuQKbQy3DD6rE=', 'IW9nF7vH3tsIU2oiIIQ/Ti2l8dqp69796KXqc0R5jSI=', 'HaVcyQDw0h9KPmlDkZGKGzwjsqx3PGs++I4uQigyUWE='],
932
- M: [['EJt/QRug5MmytwyvXDansZS+fBGtJDeL/ttoWSuoEYs=', 'Fu1B4Tu5wMZq4RlCT928vJMU3J/b3upV1sZFQ9xJA+A=', 'K5C7oA/KBYn2F+fcv+guDfcGq2QM6yR7eRqTt042c20='], ['KWnyfu0xpIC5w2x2Q3nbyizI/dFBXD3e1ilAvN4L13E=', 'LiQZ+ewC7DlMmHHIMpY9wbiddDyMe5ZAKbIxFoex/iM=', 'EBBx8AMjebaXMVh2aQ8FPRSNThCfX7BlyKrMVaD4m/o='], ['FDAh7GhqPzMNX55lRjgGXObNeeKMWzdTMmJE7mWhsac=', 'F2zAKWla0CWCpw7/CKb9mdBX4S5Y59e2sWzfq8juKRE=', 'GaP8ClZwK/QXun/uOAJZP6ZERwMHBD93cyec1x0l1eA=']]
933
- };
934
- _2.default = _default;
935
-
936
- Object.defineProperty(poseidon2$1, "__esModule", {
937
- value: true
938
- });
939
- var poseidon2_2 = poseidon2$1.poseidon2 = poseidon2;
940
- var _poseidon = _interopRequireDefault(poseidon_1);
941
- var _unstringify = _interopRequireDefault(unstringify);
942
- var _ = _interopRequireDefault(_2);
943
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
944
- const c = (0, _unstringify.default)(_.default);
945
- function poseidon2(inputs) {
946
- return (0, _poseidon.default)(inputs, c);
947
- }
948
-
949
- function bytesToBigint(bytes) {
950
- var hex = "0x";
951
- for (var i = 0; i < bytes.length; i += 1) {
952
- hex += bytes[i].toString(16).padStart(2, "0");
953
- }
954
- return BigInt(hex);
955
- }
956
-
957
- /* istanbul ignore file */
958
- function randomNumber() {
959
- var bytes = crypto.getRandomValues(new Uint8Array(32));
960
- return bytesToBigint(bytes);
961
- }
962
-
963
- /**
964
- * The Semaphore identity is essentially an {@link https://www.rfc-editor.org/rfc/rfc8032 | EdDSA}
965
- * public/private key pair. The {@link https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/eddsa-poseidon | EdDSA implementation}
966
- * in this library uses {@link https://eips.ethereum.org/EIPS/eip-2494 | Baby Jubjub} for public key generation
967
- * and {@link https://www.poseidon-hash.info | Poseidon} for signatures.
968
- * In addition, the commitment, i.e. the hash of the public key, is used to represent
969
- * Semaphore identities in groups, adding an additional layer of privacy and security.
970
- */
971
- var Identity = /** @class */ (function () {
972
- /**
973
- * Initializes the class attributes based on a given private key.
974
- * If the private key is not passed as a parameter, a random key is generated.
975
- * The constructor calculates the secret scalar and public key from the private key,
976
- * and computes a commitment of the public key using a hash function (Poseidon).
977
- *
978
- * @example
979
- * // Generates an identity.
980
- * const { privateKey, publicKey, commitment } = new Identity("private-key")
981
- * @example
982
- * // Generates an identity with a random private key.
983
- * const { privateKey, publicKey, commitment } = new Identity()
984
- *
985
- * @param privateKey The private key used to derive the public key.
986
- */
987
- function Identity(privateKey) {
988
- if (privateKey === void 0) { privateKey = randomNumber().toString(); }
989
- this._privateKey = privateKey;
990
- this._secretScalar = deriveSecretScalar(privateKey);
991
- this._publicKey = derivePublicKey(privateKey);
992
- this._commitment = poseidon2_2(this._publicKey).toString();
993
- }
994
- Object.defineProperty(Identity.prototype, "privateKey", {
995
- /**
996
- * Returns the private key.
997
- * @returns The private key as a {@link https://zkkit.pse.dev/types/_zk_kit_utils.BigNumberish.html | BigNumberish}.
998
- */
999
- get: function () {
1000
- return this._privateKey;
1001
- },
1002
- enumerable: false,
1003
- configurable: true
1004
- });
1005
- Object.defineProperty(Identity.prototype, "secretScalar", {
1006
- /**
1007
- * Returns the secret scalar.
1008
- * @returns The secret scalar as a string.
1009
- */
1010
- get: function () {
1011
- return this._secretScalar;
1012
- },
1013
- enumerable: false,
1014
- configurable: true
1015
- });
1016
- Object.defineProperty(Identity.prototype, "publicKey", {
1017
- /**
1018
- * Returns the public key as a Baby Jubjub {@link https://zkkit.pse.dev/types/_zk_kit_baby_jubjub.Point.html | Point}.
1019
- * @returns The public key as a point.
1020
- */
1021
- get: function () {
1022
- return this._publicKey;
1023
- },
1024
- enumerable: false,
1025
- configurable: true
1026
- });
1027
- Object.defineProperty(Identity.prototype, "commitment", {
1028
- /**
1029
- * Returns the commitment hash of the public key.
1030
- * @returns The commitment as a string.
1031
- */
1032
- get: function () {
1033
- return this._commitment;
1034
- },
1035
- enumerable: false,
1036
- configurable: true
1037
- });
1038
- /**
1039
- * Generates a signature for a given message using the private key.
1040
- * This method demonstrates how to sign a message and could be used
1041
- * for authentication or data integrity.
1042
- *
1043
- * @example
1044
- * const identity = new Identity()
1045
- * const signature = identity.signMessage("message")
1046
- *
1047
- * @param message The message to be signed.
1048
- * @returns A {@link https://zkkit.pse.dev/types/_zk_kit_eddsa_poseidon.Signature.html | Signature} object containing the signature components.
1049
- */
1050
- Identity.prototype.signMessage = function (message) {
1051
- return signMessage(this.privateKey, message);
1052
- };
1053
- /**
1054
- * Verifies a signature against a given message and public key.
1055
- * This static method allows for the verification of signatures without needing
1056
- * an instance of the Identity class. It's useful for cases where you only have
1057
- * the public key, the message and a signature, and need to verify if they match.
1058
- *
1059
- * @example
1060
- * const identity = new Identity()
1061
- * const signature = identity.signMessage("message")
1062
- * Identity.verifySignature("message", signature, identity.publicKey)
1063
- *
1064
- * @param message The message that was signed.
1065
- * @param signature The signature to verify.
1066
- * @param publicKey The public key to use for verification.
1067
- * @returns A boolean indicating whether the signature is valid.
1068
- */
1069
- Identity.verifySignature = function (message, signature, publicKey) {
1070
- return verifySignature(message, signature, publicKey);
1071
- };
1072
- return Identity;
1073
- }());
1074
-
1075
- export { Identity };