├── Makefile
├── README.md
├── circuits
├── .DS_Store
└── sha512
│ ├── ch.circom
│ ├── constants.circom
│ ├── maj.circom
│ ├── rotate.circom
│ ├── sha512.circom
│ ├── sha512compression.circom
│ ├── shift.circom
│ ├── sigma.circom
│ ├── sigmaplus.circom
│ ├── t1.circom
│ ├── t2.circom
│ └── xor3.circom
├── package-lock.json
├── package.json
└── test
├── circuits
└── sha512_test1024.circom
└── sha512.js
/Makefile:
--------------------------------------------------------------------------------
1 | clean:
2 | find . -name "*.r1cs" -type f -delete
3 | find . -name "*.sym" -type f -delete
4 | -find . -name "*_js" -type d | xargs rm -r
5 | -find . -name "*_cpp" -type d | xargs rm -r
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SHA512
2 |
3 | A circuit to compute SHA512 hash written in [Circom](https://github.com/iden3/circom).
4 |
5 | ## Installation
6 | ```
7 | npm install
8 | ```
9 |
10 | ## Tests
11 | ```
12 | npm test
13 | ```
14 |
15 | ## Sample Usage
16 |
17 | ```circom
18 | include "sha512/sha512/sha512.circom";
19 | include "circomlib/binsum.circom"; // make sure to include your copy of binsum.circom from circomblib
20 |
21 | var INPUT_BITS = 1024; // number of bits of the input message
22 | component sha512 = Sha512(INPUT_BITS);
23 | for (var i = 0; i < INPUT_BITS; i++) {
24 | sha512.in[i] <== nullifierBits[i];
25 | }
26 | for (var i = 0; i < 512; i++) {
27 | out[i] <== sha512.out[i];
28 | }
29 | ```
30 |
31 | ## Constraint guarantees
32 | The circuit only uses `<==` and doesn't use `<--` thus ensuring that the circuit correctly generates all the constraints.
33 |
--------------------------------------------------------------------------------
/circuits/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Electron-Labs/sha512/be9f01d870c40c3fe4e0ff27c93232d205bc46f7/circuits/.DS_Store
--------------------------------------------------------------------------------
/circuits/sha512/ch.circom:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2018 0KIMS association.
3 |
4 | This file is part of circom (Zero Knowledge Circuit Compiler).
5 |
6 | circom is a free software: you can redistribute it and/or modify it
7 | under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | circom is distributed in the hope that it will be useful, but WITHOUT
12 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 | License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with circom. If not, see .
18 | */
19 |
20 | /* Ch
21 |
22 | 000 0
23 | 001 1
24 | 010 0
25 | 011 1
26 | 100 0
27 | 101 0
28 | 110 1
29 | 111 1
30 |
31 | out = a&b ^ (!a)&c =>
32 |
33 | out = a*(b-c) + c
34 |
35 | */
36 | pragma circom 2.0.0;
37 |
38 | template Ch_t512(n) {
39 | signal input a[n];
40 | signal input b[n];
41 | signal input c[n];
42 | signal output out[n];
43 |
44 | for (var k=0; k.
18 | */
19 | pragma circom 2.0.0;
20 |
21 | template H512(x) {
22 | signal output out[64];
23 | var c[8] = [
24 | 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1,
25 | 0x510e527fade682d1, 0x9b05688c2b3e6c1f, 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179
26 | ];
27 |
28 | for (var i=0; i<64; i++) {
29 | out[i] <== (c[x] >> i) & 1;
30 | }
31 | }
32 |
33 | template K512(x) {
34 | signal output out[64];
35 | var c[80] = [
36 | 0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, 0x3956c25bf348b538,
37 | 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, 0xd807aa98a3030242, 0x12835b0145706fbe,
38 | 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235,
39 | 0xc19bf174cf692694, 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65,
40 | 0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, 0x983e5152ee66dfab,
41 | 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4, 0xc6e00bf33da88fc2, 0xd5a79147930aa725,
42 | 0x06ca6351e003826f, 0x142929670a0e6e70, 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed,
43 | 0x53380d139d95b3df, 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b,
44 | 0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30, 0xd192e819d6ef5218,
45 | 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8, 0x19a4c116b8d2d0c8, 0x1e376c085141ab53,
46 | 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373,
47 | 0x682e6ff3d6b2b8a3, 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec,
48 | 0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b, 0xca273eceea26619c,
49 | 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, 0x06f067aa72176fba, 0x0a637dc5a2c898a6,
50 | 0x113f9804bef90dae, 0x1b710b35131c471b, 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc,
51 | 0x431d67c49c100d4c, 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817
52 | ];
53 |
54 | for (var i=0; i<64; i++) {
55 | out[i] <== (c[x] >> i) & 1;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/circuits/sha512/maj.circom:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2018 0KIMS association.
3 |
4 | This file is part of circom (Zero Knowledge Circuit Compiler).
5 |
6 | circom is a free software: you can redistribute it and/or modify it
7 | under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | circom is distributed in the hope that it will be useful, but WITHOUT
12 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 | License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with circom. If not, see .
18 | */
19 |
20 | /* Maj function for sha256
21 |
22 | out = a&b ^ a&c ^ b&c =>
23 |
24 | out = a*b + a*c + b*c - 2*a*b*c =>
25 |
26 | out = a*( b + c - 2*b*c ) + b*c =>
27 |
28 | mid = b*c
29 | out = a*( b + c - 2*mid ) + mid
30 |
31 | */
32 | pragma circom 2.0.0;
33 |
34 | template Maj_t512(n) {
35 | signal input a[n];
36 | signal input b[n];
37 | signal input c[n];
38 | signal output out[n];
39 | signal mid[n];
40 |
41 | for (var k=0; k.
18 | */
19 | pragma circom 2.0.0;
20 |
21 | template RotR512(n, r) {
22 | signal input in[n];
23 | signal output out[n];
24 |
25 | for (var i=0; i> k)&1;
31 | }
32 |
33 | component ha0 = H512(0);
34 | component hb0 = H512(1);
35 | component hc0 = H512(2);
36 | component hd0 = H512(3);
37 | component he0 = H512(4);
38 | component hf0 = H512(5);
39 | component hg0 = H512(6);
40 | component hh0 = H512(7);
41 |
42 | component sha512compression[nBlocks];
43 |
44 | for (i=0; i.
18 | */
19 | pragma circom 2.0.0;
20 |
21 | include "constants.circom";
22 | include "t1.circom";
23 | include "t2.circom";
24 | include "sigmaplus.circom";
25 |
26 |
27 | template Sha512compression() {
28 | signal input hin[512];
29 | signal input inp[1024];
30 | signal output out[512];
31 | signal a[81][64];
32 | signal b[81][64];
33 | signal c[81][64];
34 | signal d[81][64];
35 | signal e[81][64];
36 | signal f[81][64];
37 | signal g[81][64];
38 | signal h[81][64];
39 | signal w[80][64];
40 |
41 | var i;
42 |
43 | component sigmaPlus[64];
44 | for (i=0; i<64; i++) sigmaPlus[i] = SigmaPlus512();
45 |
46 | component ct_k[80];
47 | for (i=0; i<80; i++) ct_k[i] = K512(i);
48 |
49 | component t1[80];
50 | for (i=0; i<80; i++) t1[i] = T1_512();
51 |
52 | component t2[80];
53 | for (i=0; i<80; i++) t2[i] = T2_512();
54 |
55 | component suma[80];
56 | for (i=0; i<80; i++) suma[i] = BinSum(64, 2);
57 |
58 | component sume[80];
59 | for (i=0; i<80; i++) sume[i] = BinSum(64, 2);
60 |
61 | component fsum[8];
62 | for (i=0; i<8; i++) fsum[i] = BinSum(64, 2);
63 |
64 | var k;
65 | var t;
66 |
67 | for (t=0; t<80; t++) {
68 | if (t<16) {
69 | for (k=0; k<64; k++) {
70 | w[t][k] <== inp[t*64+63-k];
71 | }
72 | } else {
73 | for (k=0; k<64; k++) {
74 | sigmaPlus[t-16].in2[k] <== w[t-2][k];
75 | sigmaPlus[t-16].in7[k] <== w[t-7][k];
76 | sigmaPlus[t-16].in15[k] <== w[t-15][k];
77 | sigmaPlus[t-16].in16[k] <== w[t-16][k];
78 | }
79 |
80 | for (k=0; k<64; k++) {
81 | w[t][k] <== sigmaPlus[t-16].out[k];
82 | }
83 | }
84 | }
85 |
86 | for (k=0; k<64; k++ ) {
87 | a[0][k] <== hin[k];
88 | b[0][k] <== hin[64*1 + k];
89 | c[0][k] <== hin[64*2 + k];
90 | d[0][k] <== hin[64*3 + k];
91 | e[0][k] <== hin[64*4 + k];
92 | f[0][k] <== hin[64*5 + k];
93 | g[0][k] <== hin[64*6 + k];
94 | h[0][k] <== hin[64*7 + k];
95 | }
96 |
97 | for (t = 0; t<80; t++) {
98 | for (k=0; k<64; k++) {
99 | t1[t].h[k] <== h[t][k];
100 | t1[t].e[k] <== e[t][k];
101 | t1[t].f[k] <== f[t][k];
102 | t1[t].g[k] <== g[t][k];
103 | t1[t].k[k] <== ct_k[t].out[k];
104 | t1[t].w[k] <== w[t][k];
105 |
106 | t2[t].a[k] <== a[t][k];
107 | t2[t].b[k] <== b[t][k];
108 | t2[t].c[k] <== c[t][k];
109 | }
110 |
111 | for (k=0; k<64; k++) {
112 | sume[t].in[0][k] <== d[t][k];
113 | sume[t].in[1][k] <== t1[t].out[k];
114 |
115 | suma[t].in[0][k] <== t1[t].out[k];
116 | suma[t].in[1][k] <== t2[t].out[k];
117 | }
118 |
119 | for (k=0; k<64; k++) {
120 | h[t+1][k] <== g[t][k];
121 | g[t+1][k] <== f[t][k];
122 | f[t+1][k] <== e[t][k];
123 | e[t+1][k] <== sume[t].out[k];
124 | d[t+1][k] <== c[t][k];
125 | c[t+1][k] <== b[t][k];
126 | b[t+1][k] <== a[t][k];
127 | a[t+1][k] <== suma[t].out[k];
128 | }
129 | }
130 |
131 | for (k=0; k<64; k++) {
132 | fsum[0].in[0][k] <== hin[64*0+k];
133 | fsum[0].in[1][k] <== a[80][k];
134 | fsum[1].in[0][k] <== hin[64*1+k];
135 | fsum[1].in[1][k] <== b[80][k];
136 | fsum[2].in[0][k] <== hin[64*2+k];
137 | fsum[2].in[1][k] <== c[80][k];
138 | fsum[3].in[0][k] <== hin[64*3+k];
139 | fsum[3].in[1][k] <== d[80][k];
140 | fsum[4].in[0][k] <== hin[64*4+k];
141 | fsum[4].in[1][k] <== e[80][k];
142 | fsum[5].in[0][k] <== hin[64*5+k];
143 | fsum[5].in[1][k] <== f[80][k];
144 | fsum[6].in[0][k] <== hin[64*6+k];
145 | fsum[6].in[1][k] <== g[80][k];
146 | fsum[7].in[0][k] <== hin[64*7+k];
147 | fsum[7].in[1][k] <== h[80][k];
148 | }
149 |
150 | for (k=0; k<64; k++) {
151 | out[63-k] <== fsum[0].out[k];
152 | out[64+63-k] <== fsum[1].out[k];
153 | out[128+63-k] <== fsum[2].out[k];
154 | out[192+63-k] <== fsum[3].out[k];
155 | out[256+63-k] <== fsum[4].out[k];
156 | out[320+63-k] <== fsum[5].out[k];
157 | out[384+63-k] <== fsum[6].out[k];
158 | out[448+63-k] <== fsum[7].out[k];
159 | }
160 | }
161 |
--------------------------------------------------------------------------------
/circuits/sha512/shift.circom:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2018 0KIMS association.
3 |
4 | This file is part of circom (Zero Knowledge Circuit Compiler).
5 |
6 | circom is a free software: you can redistribute it and/or modify it
7 | under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | circom is distributed in the hope that it will be useful, but WITHOUT
12 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 | License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with circom. If not, see .
18 | */
19 | pragma circom 2.0.0;
20 |
21 | template ShR512(n, r) {
22 | signal input in[n];
23 | signal output out[n];
24 |
25 | for (var i=0; i= n) {
27 | out[i] <== 0;
28 | } else {
29 | out[i] <== in[ i+r ];
30 | }
31 | }
32 | }
33 |
34 |
--------------------------------------------------------------------------------
/circuits/sha512/sigma.circom:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2018 0KIMS association.
3 |
4 | This file is part of circom (Zero Knowledge Circuit Compiler).
5 |
6 | circom is a free software: you can redistribute it and/or modify it
7 | under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | circom is distributed in the hope that it will be useful, but WITHOUT
12 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 | License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with circom. If not, see .
18 | */
19 | pragma circom 2.0.0;
20 |
21 | include "xor3.circom";
22 | include "rotate.circom";
23 | include "shift.circom";
24 |
25 | template SmallSigma512(ra, rb, rc) {
26 | signal input in[64];
27 | signal output out[64];
28 | var k;
29 |
30 | component rota = RotR512(64, ra);
31 | component rotb = RotR512(64, rb);
32 | component shrc = ShR512(64, rc);
33 |
34 | for (k=0; k<64; k++) {
35 | rota.in[k] <== in[k];
36 | rotb.in[k] <== in[k];
37 | shrc.in[k] <== in[k];
38 | }
39 |
40 | component xor3 = Xor3_512(64);
41 | for (k=0; k<64; k++) {
42 | xor3.a[k] <== rota.out[k];
43 | xor3.b[k] <== rotb.out[k];
44 | xor3.c[k] <== shrc.out[k];
45 | }
46 |
47 | for (k=0; k<64; k++) {
48 | out[k] <== xor3.out[k];
49 | }
50 | }
51 |
52 | template BigSigma512(ra, rb, rc) {
53 | signal input in[64];
54 | signal output out[64];
55 | var k;
56 |
57 | component rota = RotR512(64, ra);
58 | component rotb = RotR512(64, rb);
59 | component rotc = RotR512(64, rc);
60 | for (k=0; k<64; k++) {
61 | rota.in[k] <== in[k];
62 | rotb.in[k] <== in[k];
63 | rotc.in[k] <== in[k];
64 | }
65 |
66 | component xor3 = Xor3_512(64);
67 |
68 | for (k=0; k<64; k++) {
69 | xor3.a[k] <== rota.out[k];
70 | xor3.b[k] <== rotb.out[k];
71 | xor3.c[k] <== rotc.out[k];
72 | }
73 |
74 | for (k=0; k<64; k++) {
75 | out[k] <== xor3.out[k];
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/circuits/sha512/sigmaplus.circom:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2018 0KIMS association.
3 |
4 | This file is part of circom (Zero Knowledge Circuit Compiler).
5 |
6 | circom is a free software: you can redistribute it and/or modify it
7 | under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | circom is distributed in the hope that it will be useful, but WITHOUT
12 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 | License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with circom. If not, see .
18 | */
19 | pragma circom 2.0.0;
20 |
21 | include "sigma.circom";
22 |
23 | template SigmaPlus512() {
24 | signal input in2[64];
25 | signal input in7[64];
26 | signal input in15[64];
27 | signal input in16[64];
28 | signal output out[64];
29 | var k;
30 |
31 | component sigma1 = SmallSigma512(19,61,6);
32 | component sigma0 = SmallSigma512(1, 8, 7);
33 | for (k=0; k<64; k++) {
34 | sigma1.in[k] <== in2[k];
35 | sigma0.in[k] <== in15[k];
36 | }
37 |
38 | component sum = BinSum(64, 4);
39 | for (k=0; k<64; k++) {
40 | sum.in[0][k] <== sigma1.out[k];
41 | sum.in[1][k] <== in7[k];
42 | sum.in[2][k] <== sigma0.out[k];
43 | sum.in[3][k] <== in16[k];
44 | }
45 |
46 | for (k=0; k<64; k++) {
47 | out[k] <== sum.out[k];
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/circuits/sha512/t1.circom:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2018 0KIMS association.
3 |
4 | This file is part of circom (Zero Knowledge Circuit Compiler).
5 |
6 | circom is a free software: you can redistribute it and/or modify it
7 | under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | circom is distributed in the hope that it will be useful, but WITHOUT
12 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 | License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with circom. If not, see .
18 | */
19 | pragma circom 2.0.0;
20 |
21 | include "sigma.circom";
22 | include "ch.circom";
23 |
24 | template T1_512() {
25 | signal input h[64];
26 | signal input e[64];
27 | signal input f[64];
28 | signal input g[64];
29 | signal input k[64];
30 | signal input w[64];
31 | signal output out[64];
32 |
33 | var ki;
34 |
35 | component ch = Ch_t512(64);
36 | component bigsigma1 = BigSigma512(14, 18, 41);
37 |
38 | for (ki=0; ki<64; ki++) {
39 | bigsigma1.in[ki] <== e[ki];
40 | ch.a[ki] <== e[ki];
41 | ch.b[ki] <== f[ki];
42 | ch.c[ki] <== g[ki];
43 | }
44 |
45 | component sum = BinSum(64, 5);
46 | for (ki=0; ki<64; ki++) {
47 | sum.in[0][ki] <== h[ki];
48 | sum.in[1][ki] <== bigsigma1.out[ki];
49 | sum.in[2][ki] <== ch.out[ki];
50 | sum.in[3][ki] <== k[ki];
51 | sum.in[4][ki] <== w[ki];
52 | }
53 |
54 | for (ki=0; ki<64; ki++) {
55 | out[ki] <== sum.out[ki];
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/circuits/sha512/t2.circom:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2018 0KIMS association.
3 |
4 | This file is part of circom (Zero Knowledge Circuit Compiler).
5 |
6 | circom is a free software: you can redistribute it and/or modify it
7 | under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | circom is distributed in the hope that it will be useful, but WITHOUT
12 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 | License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with circom. If not, see .
18 | */
19 | pragma circom 2.0.0;
20 |
21 | include "sigma.circom";
22 | include "maj.circom";
23 |
24 | template T2_512() {
25 | signal input a[64];
26 | signal input b[64];
27 | signal input c[64];
28 | signal output out[64];
29 | var k;
30 |
31 | component bigsigma0 = BigSigma512(28, 34, 39);
32 | component maj = Maj_t512(64);
33 | for (k=0; k<64; k++) {
34 | bigsigma0.in[k] <== a[k];
35 | maj.a[k] <== a[k];
36 | maj.b[k] <== b[k];
37 | maj.c[k] <== c[k];
38 | }
39 |
40 | component sum = BinSum(64, 2);
41 |
42 | for (k=0; k<64; k++) {
43 | sum.in[0][k] <== bigsigma0.out[k];
44 | sum.in[1][k] <== maj.out[k];
45 | }
46 |
47 | for (k=0; k<64; k++) {
48 | out[k] <== sum.out[k];
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/circuits/sha512/xor3.circom:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2018 0KIMS association.
3 |
4 | This file is part of circom (Zero Knowledge Circuit Compiler).
5 |
6 | circom is a free software: you can redistribute it and/or modify it
7 | under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | circom is distributed in the hope that it will be useful, but WITHOUT
12 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
14 | License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with circom. If not, see .
18 | */
19 |
20 | /* Xor3 function for sha256
21 |
22 | out = a ^ b ^ c =>
23 |
24 | out = a+b+c - 2*a*b - 2*a*c - 2*b*c + 4*a*b*c =>
25 |
26 | out = a*( 1 - 2*b - 2*c + 4*b*c ) + b + c - 2*b*c =>
27 |
28 | mid = b*c
29 | out = a*( 1 - 2*b -2*c + 4*mid ) + b + c - 2 * mid
30 |
31 | */
32 | pragma circom 2.0.0;
33 |
34 | template Xor3_512(n) {
35 | signal input a[n];
36 | signal input b[n];
37 | signal input c[n];
38 | signal output out[n];
39 | signal mid[n];
40 |
41 | for (var k=0; k=6"
52 | }
53 | },
54 | "node_modules/ansi-regex": {
55 | "version": "5.0.1",
56 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
57 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
58 | "dev": true,
59 | "engines": {
60 | "node": ">=8"
61 | }
62 | },
63 | "node_modules/ansi-styles": {
64 | "version": "4.3.0",
65 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
66 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
67 | "dev": true,
68 | "dependencies": {
69 | "color-convert": "^2.0.1"
70 | },
71 | "engines": {
72 | "node": ">=8"
73 | },
74 | "funding": {
75 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
76 | }
77 | },
78 | "node_modules/anymatch": {
79 | "version": "3.1.2",
80 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
81 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
82 | "dev": true,
83 | "dependencies": {
84 | "normalize-path": "^3.0.0",
85 | "picomatch": "^2.0.4"
86 | },
87 | "engines": {
88 | "node": ">= 8"
89 | }
90 | },
91 | "node_modules/argparse": {
92 | "version": "2.0.1",
93 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
94 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
95 | "dev": true
96 | },
97 | "node_modules/assertion-error": {
98 | "version": "1.1.0",
99 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
100 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
101 | "dev": true,
102 | "engines": {
103 | "node": "*"
104 | }
105 | },
106 | "node_modules/async": {
107 | "version": "3.2.3",
108 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
109 | "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==",
110 | "dev": true
111 | },
112 | "node_modules/available-typed-arrays": {
113 | "version": "1.0.5",
114 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
115 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
116 | "dev": true,
117 | "engines": {
118 | "node": ">= 0.4"
119 | },
120 | "funding": {
121 | "url": "https://github.com/sponsors/ljharb"
122 | }
123 | },
124 | "node_modules/b4a": {
125 | "version": "1.3.1",
126 | "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.3.1.tgz",
127 | "integrity": "sha512-ULHjbJGjZcdA5bugDNAAcMA6GWXX/9N10I6AQc14TH+Sr7bMfT+NHuJnOFGPJWLtzYa6Tz+PnFD2D/1bISLLZQ==",
128 | "dev": true
129 | },
130 | "node_modules/balanced-match": {
131 | "version": "1.0.2",
132 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
133 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
134 | "dev": true
135 | },
136 | "node_modules/big-integer": {
137 | "version": "1.6.51",
138 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
139 | "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
140 | "dev": true,
141 | "engines": {
142 | "node": ">=0.6"
143 | }
144 | },
145 | "node_modules/binary-extensions": {
146 | "version": "2.2.0",
147 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
148 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
149 | "dev": true,
150 | "engines": {
151 | "node": ">=8"
152 | }
153 | },
154 | "node_modules/blake2b-wasm": {
155 | "version": "2.4.0",
156 | "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz",
157 | "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==",
158 | "dev": true,
159 | "dependencies": {
160 | "b4a": "^1.0.1",
161 | "nanoassert": "^2.0.0"
162 | }
163 | },
164 | "node_modules/blakejs": {
165 | "version": "1.2.1",
166 | "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
167 | "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==",
168 | "dev": true
169 | },
170 | "node_modules/brace-expansion": {
171 | "version": "1.1.11",
172 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
173 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
174 | "dev": true,
175 | "dependencies": {
176 | "balanced-match": "^1.0.0",
177 | "concat-map": "0.0.1"
178 | }
179 | },
180 | "node_modules/braces": {
181 | "version": "3.0.2",
182 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
183 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
184 | "dev": true,
185 | "dependencies": {
186 | "fill-range": "^7.0.1"
187 | },
188 | "engines": {
189 | "node": ">=8"
190 | }
191 | },
192 | "node_modules/browser-stdout": {
193 | "version": "1.3.1",
194 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
195 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
196 | "dev": true
197 | },
198 | "node_modules/call-bind": {
199 | "version": "1.0.2",
200 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
201 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
202 | "dev": true,
203 | "dependencies": {
204 | "function-bind": "^1.1.1",
205 | "get-intrinsic": "^1.0.2"
206 | },
207 | "funding": {
208 | "url": "https://github.com/sponsors/ljharb"
209 | }
210 | },
211 | "node_modules/camelcase": {
212 | "version": "6.3.0",
213 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
214 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
215 | "dev": true,
216 | "engines": {
217 | "node": ">=10"
218 | },
219 | "funding": {
220 | "url": "https://github.com/sponsors/sindresorhus"
221 | }
222 | },
223 | "node_modules/chai": {
224 | "version": "4.3.6",
225 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
226 | "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==",
227 | "dev": true,
228 | "dependencies": {
229 | "assertion-error": "^1.1.0",
230 | "check-error": "^1.0.2",
231 | "deep-eql": "^3.0.1",
232 | "get-func-name": "^2.0.0",
233 | "loupe": "^2.3.1",
234 | "pathval": "^1.1.1",
235 | "type-detect": "^4.0.5"
236 | },
237 | "engines": {
238 | "node": ">=4"
239 | }
240 | },
241 | "node_modules/chalk": {
242 | "version": "4.1.2",
243 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
244 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
245 | "dev": true,
246 | "dependencies": {
247 | "ansi-styles": "^4.1.0",
248 | "supports-color": "^7.1.0"
249 | },
250 | "engines": {
251 | "node": ">=10"
252 | },
253 | "funding": {
254 | "url": "https://github.com/chalk/chalk?sponsor=1"
255 | }
256 | },
257 | "node_modules/chalk/node_modules/supports-color": {
258 | "version": "7.2.0",
259 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
260 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
261 | "dev": true,
262 | "dependencies": {
263 | "has-flag": "^4.0.0"
264 | },
265 | "engines": {
266 | "node": ">=8"
267 | }
268 | },
269 | "node_modules/check-error": {
270 | "version": "1.0.2",
271 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
272 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
273 | "dev": true,
274 | "engines": {
275 | "node": "*"
276 | }
277 | },
278 | "node_modules/child_process": {
279 | "version": "1.0.2",
280 | "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz",
281 | "integrity": "sha1-sffn/HPSXn/R1FWtyU4UODAYK1o=",
282 | "dev": true
283 | },
284 | "node_modules/chokidar": {
285 | "version": "3.5.3",
286 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
287 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
288 | "dev": true,
289 | "funding": [
290 | {
291 | "type": "individual",
292 | "url": "https://paulmillr.com/funding/"
293 | }
294 | ],
295 | "dependencies": {
296 | "anymatch": "~3.1.2",
297 | "braces": "~3.0.2",
298 | "glob-parent": "~5.1.2",
299 | "is-binary-path": "~2.1.0",
300 | "is-glob": "~4.0.1",
301 | "normalize-path": "~3.0.0",
302 | "readdirp": "~3.6.0"
303 | },
304 | "engines": {
305 | "node": ">= 8.10.0"
306 | },
307 | "optionalDependencies": {
308 | "fsevents": "~2.3.2"
309 | }
310 | },
311 | "node_modules/circom_runtime": {
312 | "version": "0.1.14",
313 | "resolved": "https://registry.npmjs.org/circom_runtime/-/circom_runtime-0.1.14.tgz",
314 | "integrity": "sha512-MLbHHZVkYuWyZiYErLmT5y0qbTRXDD1NhaDyLhQNF0JCb6brx8r/VJDevwne7sT1re7qHpHCQAL5rhqByQ7obQ==",
315 | "dev": true,
316 | "dependencies": {
317 | "ffjavascript": "0.2.39",
318 | "fnv-plus": "^1.3.1"
319 | },
320 | "bin": {
321 | "calcwit": "calcwit.js"
322 | }
323 | },
324 | "node_modules/circom_runtime/node_modules/ffjavascript": {
325 | "version": "0.2.39",
326 | "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.39.tgz",
327 | "integrity": "sha512-9ewb5keKHL1owKTxCK7sDuA34SPJxnznWqdJgwBW51moCvg+wf9L0W5mcxm8qMUxt2OE/KjBQUKmYLaKyNNrPw==",
328 | "dev": true,
329 | "dependencies": {
330 | "big-integer": "^1.6.48",
331 | "wasmcurves": "0.0.14",
332 | "web-worker": "^1.0.0"
333 | }
334 | },
335 | "node_modules/circom_runtime/node_modules/wasmcurves": {
336 | "version": "0.0.14",
337 | "resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.0.14.tgz",
338 | "integrity": "sha512-G1iMkxlRaQSdqQ1JrwHcU+awLmwyH6kFKfT8g9obd8MWe+u5oSdFXrODB0zmSI5aGGvJPG+4cAmqCGYv9R+7qg==",
339 | "dev": true,
340 | "dependencies": {
341 | "big-integer": "^1.6.42",
342 | "blakejs": "^1.1.0"
343 | }
344 | },
345 | "node_modules/circom_tester": {
346 | "version": "0.0.14",
347 | "resolved": "https://registry.npmjs.org/circom_tester/-/circom_tester-0.0.14.tgz",
348 | "integrity": "sha512-LX67XrOsmsAmiuwCf7zjq8mB/MObgfGxa78X7G3gU8u55L2xzoKw4NYDMkHbrSFKuU8DMheuSMw8WN/KrjwBQg==",
349 | "dev": true,
350 | "dependencies": {
351 | "chai": "^4.3.4",
352 | "child_process": "^1.0.2",
353 | "ffjavascript": "^0.2.38",
354 | "fnv-plus": "^1.3.1",
355 | "r1csfile": "0.0.37",
356 | "snarkjs": "0.4.10",
357 | "tmp-promise": "^3.0.2",
358 | "util": "^0.12.4"
359 | }
360 | },
361 | "node_modules/circomlib": {
362 | "version": "2.0.5",
363 | "resolved": "https://registry.npmjs.org/circomlib/-/circomlib-2.0.5.tgz",
364 | "integrity": "sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A==",
365 | "dev": true
366 | },
367 | "node_modules/cliui": {
368 | "version": "7.0.4",
369 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
370 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
371 | "dev": true,
372 | "dependencies": {
373 | "string-width": "^4.2.0",
374 | "strip-ansi": "^6.0.0",
375 | "wrap-ansi": "^7.0.0"
376 | }
377 | },
378 | "node_modules/color-convert": {
379 | "version": "2.0.1",
380 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
381 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
382 | "dev": true,
383 | "dependencies": {
384 | "color-name": "~1.1.4"
385 | },
386 | "engines": {
387 | "node": ">=7.0.0"
388 | }
389 | },
390 | "node_modules/color-name": {
391 | "version": "1.1.4",
392 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
393 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
394 | "dev": true
395 | },
396 | "node_modules/concat-map": {
397 | "version": "0.0.1",
398 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
399 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
400 | "dev": true
401 | },
402 | "node_modules/debug": {
403 | "version": "4.3.4",
404 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
405 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
406 | "dev": true,
407 | "dependencies": {
408 | "ms": "2.1.2"
409 | },
410 | "engines": {
411 | "node": ">=6.0"
412 | },
413 | "peerDependenciesMeta": {
414 | "supports-color": {
415 | "optional": true
416 | }
417 | }
418 | },
419 | "node_modules/debug/node_modules/ms": {
420 | "version": "2.1.2",
421 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
422 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
423 | "dev": true
424 | },
425 | "node_modules/decamelize": {
426 | "version": "4.0.0",
427 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
428 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
429 | "dev": true,
430 | "engines": {
431 | "node": ">=10"
432 | },
433 | "funding": {
434 | "url": "https://github.com/sponsors/sindresorhus"
435 | }
436 | },
437 | "node_modules/deep-eql": {
438 | "version": "3.0.1",
439 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
440 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
441 | "dev": true,
442 | "dependencies": {
443 | "type-detect": "^4.0.0"
444 | },
445 | "engines": {
446 | "node": ">=0.12"
447 | }
448 | },
449 | "node_modules/define-properties": {
450 | "version": "1.1.3",
451 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
452 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
453 | "dev": true,
454 | "dependencies": {
455 | "object-keys": "^1.0.12"
456 | },
457 | "engines": {
458 | "node": ">= 0.4"
459 | }
460 | },
461 | "node_modules/diff": {
462 | "version": "5.0.0",
463 | "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
464 | "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
465 | "dev": true,
466 | "engines": {
467 | "node": ">=0.3.1"
468 | }
469 | },
470 | "node_modules/ejs": {
471 | "version": "3.1.6",
472 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz",
473 | "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==",
474 | "dev": true,
475 | "dependencies": {
476 | "jake": "^10.6.1"
477 | },
478 | "bin": {
479 | "ejs": "bin/cli.js"
480 | },
481 | "engines": {
482 | "node": ">=0.10.0"
483 | }
484 | },
485 | "node_modules/emoji-regex": {
486 | "version": "8.0.0",
487 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
488 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
489 | "dev": true
490 | },
491 | "node_modules/es-abstract": {
492 | "version": "1.19.2",
493 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz",
494 | "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==",
495 | "dev": true,
496 | "dependencies": {
497 | "call-bind": "^1.0.2",
498 | "es-to-primitive": "^1.2.1",
499 | "function-bind": "^1.1.1",
500 | "get-intrinsic": "^1.1.1",
501 | "get-symbol-description": "^1.0.0",
502 | "has": "^1.0.3",
503 | "has-symbols": "^1.0.3",
504 | "internal-slot": "^1.0.3",
505 | "is-callable": "^1.2.4",
506 | "is-negative-zero": "^2.0.2",
507 | "is-regex": "^1.1.4",
508 | "is-shared-array-buffer": "^1.0.1",
509 | "is-string": "^1.0.7",
510 | "is-weakref": "^1.0.2",
511 | "object-inspect": "^1.12.0",
512 | "object-keys": "^1.1.1",
513 | "object.assign": "^4.1.2",
514 | "string.prototype.trimend": "^1.0.4",
515 | "string.prototype.trimstart": "^1.0.4",
516 | "unbox-primitive": "^1.0.1"
517 | },
518 | "engines": {
519 | "node": ">= 0.4"
520 | },
521 | "funding": {
522 | "url": "https://github.com/sponsors/ljharb"
523 | }
524 | },
525 | "node_modules/es-to-primitive": {
526 | "version": "1.2.1",
527 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
528 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
529 | "dev": true,
530 | "dependencies": {
531 | "is-callable": "^1.1.4",
532 | "is-date-object": "^1.0.1",
533 | "is-symbol": "^1.0.2"
534 | },
535 | "engines": {
536 | "node": ">= 0.4"
537 | },
538 | "funding": {
539 | "url": "https://github.com/sponsors/ljharb"
540 | }
541 | },
542 | "node_modules/escalade": {
543 | "version": "3.1.1",
544 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
545 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
546 | "dev": true,
547 | "engines": {
548 | "node": ">=6"
549 | }
550 | },
551 | "node_modules/escape-string-regexp": {
552 | "version": "4.0.0",
553 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
554 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
555 | "dev": true,
556 | "engines": {
557 | "node": ">=10"
558 | },
559 | "funding": {
560 | "url": "https://github.com/sponsors/sindresorhus"
561 | }
562 | },
563 | "node_modules/fastfile": {
564 | "version": "0.0.20",
565 | "resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.20.tgz",
566 | "integrity": "sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA==",
567 | "dev": true
568 | },
569 | "node_modules/ffjavascript": {
570 | "version": "0.2.55",
571 | "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.55.tgz",
572 | "integrity": "sha512-8X0FCIPOWiK6DTWh3pnE3O6D6nIQsirStAXpWMzRDnoDX7SEnDX4I28aVhwjL7L35XS1vy2AU7zc0UCGYxdLjw==",
573 | "dev": true,
574 | "dependencies": {
575 | "big-integer": "^1.6.48",
576 | "wasmbuilder": "^0.0.12",
577 | "wasmcurves": "0.1.0",
578 | "web-worker": "^1.2.0"
579 | }
580 | },
581 | "node_modules/filelist": {
582 | "version": "1.0.2",
583 | "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz",
584 | "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==",
585 | "dev": true,
586 | "dependencies": {
587 | "minimatch": "^3.0.4"
588 | }
589 | },
590 | "node_modules/filelist/node_modules/minimatch": {
591 | "version": "3.1.2",
592 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
593 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
594 | "dev": true,
595 | "dependencies": {
596 | "brace-expansion": "^1.1.7"
597 | },
598 | "engines": {
599 | "node": "*"
600 | }
601 | },
602 | "node_modules/fill-range": {
603 | "version": "7.0.1",
604 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
605 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
606 | "dev": true,
607 | "dependencies": {
608 | "to-regex-range": "^5.0.1"
609 | },
610 | "engines": {
611 | "node": ">=8"
612 | }
613 | },
614 | "node_modules/find-up": {
615 | "version": "5.0.0",
616 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
617 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
618 | "dev": true,
619 | "dependencies": {
620 | "locate-path": "^6.0.0",
621 | "path-exists": "^4.0.0"
622 | },
623 | "engines": {
624 | "node": ">=10"
625 | },
626 | "funding": {
627 | "url": "https://github.com/sponsors/sindresorhus"
628 | }
629 | },
630 | "node_modules/flat": {
631 | "version": "5.0.2",
632 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
633 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
634 | "dev": true,
635 | "bin": {
636 | "flat": "cli.js"
637 | }
638 | },
639 | "node_modules/fnv-plus": {
640 | "version": "1.3.1",
641 | "resolved": "https://registry.npmjs.org/fnv-plus/-/fnv-plus-1.3.1.tgz",
642 | "integrity": "sha512-Gz1EvfOneuFfk4yG458dJ3TLJ7gV19q3OM/vVvvHf7eT02Hm1DleB4edsia6ahbKgAYxO9gvyQ1ioWZR+a00Yw==",
643 | "dev": true
644 | },
645 | "node_modules/foreach": {
646 | "version": "2.0.5",
647 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
648 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
649 | "dev": true
650 | },
651 | "node_modules/fs.realpath": {
652 | "version": "1.0.0",
653 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
654 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
655 | "dev": true
656 | },
657 | "node_modules/fsevents": {
658 | "version": "2.3.2",
659 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
660 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
661 | "dev": true,
662 | "hasInstallScript": true,
663 | "optional": true,
664 | "os": [
665 | "darwin"
666 | ],
667 | "engines": {
668 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
669 | }
670 | },
671 | "node_modules/function-bind": {
672 | "version": "1.1.1",
673 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
674 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
675 | "dev": true
676 | },
677 | "node_modules/get-caller-file": {
678 | "version": "2.0.5",
679 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
680 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
681 | "dev": true,
682 | "engines": {
683 | "node": "6.* || 8.* || >= 10.*"
684 | }
685 | },
686 | "node_modules/get-func-name": {
687 | "version": "2.0.0",
688 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
689 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
690 | "dev": true,
691 | "engines": {
692 | "node": "*"
693 | }
694 | },
695 | "node_modules/get-intrinsic": {
696 | "version": "1.1.1",
697 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
698 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
699 | "dev": true,
700 | "dependencies": {
701 | "function-bind": "^1.1.1",
702 | "has": "^1.0.3",
703 | "has-symbols": "^1.0.1"
704 | },
705 | "funding": {
706 | "url": "https://github.com/sponsors/ljharb"
707 | }
708 | },
709 | "node_modules/get-symbol-description": {
710 | "version": "1.0.0",
711 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
712 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
713 | "dev": true,
714 | "dependencies": {
715 | "call-bind": "^1.0.2",
716 | "get-intrinsic": "^1.1.1"
717 | },
718 | "engines": {
719 | "node": ">= 0.4"
720 | },
721 | "funding": {
722 | "url": "https://github.com/sponsors/ljharb"
723 | }
724 | },
725 | "node_modules/glob": {
726 | "version": "7.2.0",
727 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
728 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
729 | "dev": true,
730 | "dependencies": {
731 | "fs.realpath": "^1.0.0",
732 | "inflight": "^1.0.4",
733 | "inherits": "2",
734 | "minimatch": "^3.0.4",
735 | "once": "^1.3.0",
736 | "path-is-absolute": "^1.0.0"
737 | },
738 | "engines": {
739 | "node": "*"
740 | },
741 | "funding": {
742 | "url": "https://github.com/sponsors/isaacs"
743 | }
744 | },
745 | "node_modules/glob-parent": {
746 | "version": "5.1.2",
747 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
748 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
749 | "dev": true,
750 | "dependencies": {
751 | "is-glob": "^4.0.1"
752 | },
753 | "engines": {
754 | "node": ">= 6"
755 | }
756 | },
757 | "node_modules/glob/node_modules/minimatch": {
758 | "version": "3.1.2",
759 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
760 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
761 | "dev": true,
762 | "dependencies": {
763 | "brace-expansion": "^1.1.7"
764 | },
765 | "engines": {
766 | "node": "*"
767 | }
768 | },
769 | "node_modules/has": {
770 | "version": "1.0.3",
771 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
772 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
773 | "dev": true,
774 | "dependencies": {
775 | "function-bind": "^1.1.1"
776 | },
777 | "engines": {
778 | "node": ">= 0.4.0"
779 | }
780 | },
781 | "node_modules/has-bigints": {
782 | "version": "1.0.1",
783 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
784 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
785 | "dev": true,
786 | "funding": {
787 | "url": "https://github.com/sponsors/ljharb"
788 | }
789 | },
790 | "node_modules/has-flag": {
791 | "version": "4.0.0",
792 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
793 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
794 | "dev": true,
795 | "engines": {
796 | "node": ">=8"
797 | }
798 | },
799 | "node_modules/has-symbols": {
800 | "version": "1.0.3",
801 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
802 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
803 | "dev": true,
804 | "engines": {
805 | "node": ">= 0.4"
806 | },
807 | "funding": {
808 | "url": "https://github.com/sponsors/ljharb"
809 | }
810 | },
811 | "node_modules/has-tostringtag": {
812 | "version": "1.0.0",
813 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
814 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
815 | "dev": true,
816 | "dependencies": {
817 | "has-symbols": "^1.0.2"
818 | },
819 | "engines": {
820 | "node": ">= 0.4"
821 | },
822 | "funding": {
823 | "url": "https://github.com/sponsors/ljharb"
824 | }
825 | },
826 | "node_modules/he": {
827 | "version": "1.2.0",
828 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
829 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
830 | "dev": true,
831 | "bin": {
832 | "he": "bin/he"
833 | }
834 | },
835 | "node_modules/inflight": {
836 | "version": "1.0.6",
837 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
838 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
839 | "dev": true,
840 | "dependencies": {
841 | "once": "^1.3.0",
842 | "wrappy": "1"
843 | }
844 | },
845 | "node_modules/inherits": {
846 | "version": "2.0.4",
847 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
848 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
849 | "dev": true
850 | },
851 | "node_modules/internal-slot": {
852 | "version": "1.0.3",
853 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
854 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
855 | "dev": true,
856 | "dependencies": {
857 | "get-intrinsic": "^1.1.0",
858 | "has": "^1.0.3",
859 | "side-channel": "^1.0.4"
860 | },
861 | "engines": {
862 | "node": ">= 0.4"
863 | }
864 | },
865 | "node_modules/is-arguments": {
866 | "version": "1.1.1",
867 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
868 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
869 | "dev": true,
870 | "dependencies": {
871 | "call-bind": "^1.0.2",
872 | "has-tostringtag": "^1.0.0"
873 | },
874 | "engines": {
875 | "node": ">= 0.4"
876 | },
877 | "funding": {
878 | "url": "https://github.com/sponsors/ljharb"
879 | }
880 | },
881 | "node_modules/is-bigint": {
882 | "version": "1.0.4",
883 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
884 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
885 | "dev": true,
886 | "dependencies": {
887 | "has-bigints": "^1.0.1"
888 | },
889 | "funding": {
890 | "url": "https://github.com/sponsors/ljharb"
891 | }
892 | },
893 | "node_modules/is-binary-path": {
894 | "version": "2.1.0",
895 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
896 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
897 | "dev": true,
898 | "dependencies": {
899 | "binary-extensions": "^2.0.0"
900 | },
901 | "engines": {
902 | "node": ">=8"
903 | }
904 | },
905 | "node_modules/is-boolean-object": {
906 | "version": "1.1.2",
907 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
908 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
909 | "dev": true,
910 | "dependencies": {
911 | "call-bind": "^1.0.2",
912 | "has-tostringtag": "^1.0.0"
913 | },
914 | "engines": {
915 | "node": ">= 0.4"
916 | },
917 | "funding": {
918 | "url": "https://github.com/sponsors/ljharb"
919 | }
920 | },
921 | "node_modules/is-callable": {
922 | "version": "1.2.4",
923 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
924 | "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
925 | "dev": true,
926 | "engines": {
927 | "node": ">= 0.4"
928 | },
929 | "funding": {
930 | "url": "https://github.com/sponsors/ljharb"
931 | }
932 | },
933 | "node_modules/is-date-object": {
934 | "version": "1.0.5",
935 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
936 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
937 | "dev": true,
938 | "dependencies": {
939 | "has-tostringtag": "^1.0.0"
940 | },
941 | "engines": {
942 | "node": ">= 0.4"
943 | },
944 | "funding": {
945 | "url": "https://github.com/sponsors/ljharb"
946 | }
947 | },
948 | "node_modules/is-extglob": {
949 | "version": "2.1.1",
950 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
951 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
952 | "dev": true,
953 | "engines": {
954 | "node": ">=0.10.0"
955 | }
956 | },
957 | "node_modules/is-fullwidth-code-point": {
958 | "version": "3.0.0",
959 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
960 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
961 | "dev": true,
962 | "engines": {
963 | "node": ">=8"
964 | }
965 | },
966 | "node_modules/is-generator-function": {
967 | "version": "1.0.10",
968 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
969 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
970 | "dev": true,
971 | "dependencies": {
972 | "has-tostringtag": "^1.0.0"
973 | },
974 | "engines": {
975 | "node": ">= 0.4"
976 | },
977 | "funding": {
978 | "url": "https://github.com/sponsors/ljharb"
979 | }
980 | },
981 | "node_modules/is-glob": {
982 | "version": "4.0.3",
983 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
984 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
985 | "dev": true,
986 | "dependencies": {
987 | "is-extglob": "^2.1.1"
988 | },
989 | "engines": {
990 | "node": ">=0.10.0"
991 | }
992 | },
993 | "node_modules/is-negative-zero": {
994 | "version": "2.0.2",
995 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
996 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
997 | "dev": true,
998 | "engines": {
999 | "node": ">= 0.4"
1000 | },
1001 | "funding": {
1002 | "url": "https://github.com/sponsors/ljharb"
1003 | }
1004 | },
1005 | "node_modules/is-number": {
1006 | "version": "7.0.0",
1007 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1008 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1009 | "dev": true,
1010 | "engines": {
1011 | "node": ">=0.12.0"
1012 | }
1013 | },
1014 | "node_modules/is-number-object": {
1015 | "version": "1.0.6",
1016 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
1017 | "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
1018 | "dev": true,
1019 | "dependencies": {
1020 | "has-tostringtag": "^1.0.0"
1021 | },
1022 | "engines": {
1023 | "node": ">= 0.4"
1024 | },
1025 | "funding": {
1026 | "url": "https://github.com/sponsors/ljharb"
1027 | }
1028 | },
1029 | "node_modules/is-plain-obj": {
1030 | "version": "2.1.0",
1031 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
1032 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
1033 | "dev": true,
1034 | "engines": {
1035 | "node": ">=8"
1036 | }
1037 | },
1038 | "node_modules/is-regex": {
1039 | "version": "1.1.4",
1040 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
1041 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
1042 | "dev": true,
1043 | "dependencies": {
1044 | "call-bind": "^1.0.2",
1045 | "has-tostringtag": "^1.0.0"
1046 | },
1047 | "engines": {
1048 | "node": ">= 0.4"
1049 | },
1050 | "funding": {
1051 | "url": "https://github.com/sponsors/ljharb"
1052 | }
1053 | },
1054 | "node_modules/is-shared-array-buffer": {
1055 | "version": "1.0.1",
1056 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
1057 | "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
1058 | "dev": true,
1059 | "funding": {
1060 | "url": "https://github.com/sponsors/ljharb"
1061 | }
1062 | },
1063 | "node_modules/is-string": {
1064 | "version": "1.0.7",
1065 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
1066 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
1067 | "dev": true,
1068 | "dependencies": {
1069 | "has-tostringtag": "^1.0.0"
1070 | },
1071 | "engines": {
1072 | "node": ">= 0.4"
1073 | },
1074 | "funding": {
1075 | "url": "https://github.com/sponsors/ljharb"
1076 | }
1077 | },
1078 | "node_modules/is-symbol": {
1079 | "version": "1.0.4",
1080 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
1081 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
1082 | "dev": true,
1083 | "dependencies": {
1084 | "has-symbols": "^1.0.2"
1085 | },
1086 | "engines": {
1087 | "node": ">= 0.4"
1088 | },
1089 | "funding": {
1090 | "url": "https://github.com/sponsors/ljharb"
1091 | }
1092 | },
1093 | "node_modules/is-typed-array": {
1094 | "version": "1.1.8",
1095 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz",
1096 | "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==",
1097 | "dev": true,
1098 | "dependencies": {
1099 | "available-typed-arrays": "^1.0.5",
1100 | "call-bind": "^1.0.2",
1101 | "es-abstract": "^1.18.5",
1102 | "foreach": "^2.0.5",
1103 | "has-tostringtag": "^1.0.0"
1104 | },
1105 | "engines": {
1106 | "node": ">= 0.4"
1107 | },
1108 | "funding": {
1109 | "url": "https://github.com/sponsors/ljharb"
1110 | }
1111 | },
1112 | "node_modules/is-unicode-supported": {
1113 | "version": "0.1.0",
1114 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
1115 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
1116 | "dev": true,
1117 | "engines": {
1118 | "node": ">=10"
1119 | },
1120 | "funding": {
1121 | "url": "https://github.com/sponsors/sindresorhus"
1122 | }
1123 | },
1124 | "node_modules/is-weakref": {
1125 | "version": "1.0.2",
1126 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
1127 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
1128 | "dev": true,
1129 | "dependencies": {
1130 | "call-bind": "^1.0.2"
1131 | },
1132 | "funding": {
1133 | "url": "https://github.com/sponsors/ljharb"
1134 | }
1135 | },
1136 | "node_modules/jake": {
1137 | "version": "10.8.5",
1138 | "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
1139 | "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
1140 | "dev": true,
1141 | "dependencies": {
1142 | "async": "^3.2.3",
1143 | "chalk": "^4.0.2",
1144 | "filelist": "^1.0.1",
1145 | "minimatch": "^3.0.4"
1146 | },
1147 | "bin": {
1148 | "jake": "bin/cli.js"
1149 | },
1150 | "engines": {
1151 | "node": ">=10"
1152 | }
1153 | },
1154 | "node_modules/jake/node_modules/minimatch": {
1155 | "version": "3.1.2",
1156 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1157 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1158 | "dev": true,
1159 | "dependencies": {
1160 | "brace-expansion": "^1.1.7"
1161 | },
1162 | "engines": {
1163 | "node": "*"
1164 | }
1165 | },
1166 | "node_modules/js-sha3": {
1167 | "version": "0.8.0",
1168 | "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
1169 | "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
1170 | "dev": true
1171 | },
1172 | "node_modules/js-yaml": {
1173 | "version": "4.1.0",
1174 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1175 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1176 | "dev": true,
1177 | "dependencies": {
1178 | "argparse": "^2.0.1"
1179 | },
1180 | "bin": {
1181 | "js-yaml": "bin/js-yaml.js"
1182 | }
1183 | },
1184 | "node_modules/locate-path": {
1185 | "version": "6.0.0",
1186 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
1187 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
1188 | "dev": true,
1189 | "dependencies": {
1190 | "p-locate": "^5.0.0"
1191 | },
1192 | "engines": {
1193 | "node": ">=10"
1194 | },
1195 | "funding": {
1196 | "url": "https://github.com/sponsors/sindresorhus"
1197 | }
1198 | },
1199 | "node_modules/log-symbols": {
1200 | "version": "4.1.0",
1201 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
1202 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
1203 | "dev": true,
1204 | "dependencies": {
1205 | "chalk": "^4.1.0",
1206 | "is-unicode-supported": "^0.1.0"
1207 | },
1208 | "engines": {
1209 | "node": ">=10"
1210 | },
1211 | "funding": {
1212 | "url": "https://github.com/sponsors/sindresorhus"
1213 | }
1214 | },
1215 | "node_modules/logplease": {
1216 | "version": "1.2.15",
1217 | "resolved": "https://registry.npmjs.org/logplease/-/logplease-1.2.15.tgz",
1218 | "integrity": "sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA==",
1219 | "dev": true
1220 | },
1221 | "node_modules/loupe": {
1222 | "version": "2.3.4",
1223 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
1224 | "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
1225 | "dev": true,
1226 | "dependencies": {
1227 | "get-func-name": "^2.0.0"
1228 | }
1229 | },
1230 | "node_modules/minimatch": {
1231 | "version": "5.0.1",
1232 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
1233 | "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
1234 | "dev": true,
1235 | "dependencies": {
1236 | "brace-expansion": "^2.0.1"
1237 | },
1238 | "engines": {
1239 | "node": ">=10"
1240 | }
1241 | },
1242 | "node_modules/minimatch/node_modules/brace-expansion": {
1243 | "version": "2.0.1",
1244 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1245 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1246 | "dev": true,
1247 | "dependencies": {
1248 | "balanced-match": "^1.0.0"
1249 | }
1250 | },
1251 | "node_modules/mocha": {
1252 | "version": "10.0.0",
1253 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz",
1254 | "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==",
1255 | "dev": true,
1256 | "dependencies": {
1257 | "@ungap/promise-all-settled": "1.1.2",
1258 | "ansi-colors": "4.1.1",
1259 | "browser-stdout": "1.3.1",
1260 | "chokidar": "3.5.3",
1261 | "debug": "4.3.4",
1262 | "diff": "5.0.0",
1263 | "escape-string-regexp": "4.0.0",
1264 | "find-up": "5.0.0",
1265 | "glob": "7.2.0",
1266 | "he": "1.2.0",
1267 | "js-yaml": "4.1.0",
1268 | "log-symbols": "4.1.0",
1269 | "minimatch": "5.0.1",
1270 | "ms": "2.1.3",
1271 | "nanoid": "3.3.3",
1272 | "serialize-javascript": "6.0.0",
1273 | "strip-json-comments": "3.1.1",
1274 | "supports-color": "8.1.1",
1275 | "workerpool": "6.2.1",
1276 | "yargs": "16.2.0",
1277 | "yargs-parser": "20.2.4",
1278 | "yargs-unparser": "2.0.0"
1279 | },
1280 | "bin": {
1281 | "_mocha": "bin/_mocha",
1282 | "mocha": "bin/mocha.js"
1283 | },
1284 | "engines": {
1285 | "node": ">= 14.0.0"
1286 | },
1287 | "funding": {
1288 | "type": "opencollective",
1289 | "url": "https://opencollective.com/mochajs"
1290 | }
1291 | },
1292 | "node_modules/ms": {
1293 | "version": "2.1.3",
1294 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1295 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1296 | "dev": true
1297 | },
1298 | "node_modules/nanoassert": {
1299 | "version": "2.0.0",
1300 | "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz",
1301 | "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==",
1302 | "dev": true
1303 | },
1304 | "node_modules/nanoid": {
1305 | "version": "3.3.3",
1306 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
1307 | "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
1308 | "dev": true,
1309 | "bin": {
1310 | "nanoid": "bin/nanoid.cjs"
1311 | },
1312 | "engines": {
1313 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1314 | }
1315 | },
1316 | "node_modules/normalize-path": {
1317 | "version": "3.0.0",
1318 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1319 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1320 | "dev": true,
1321 | "engines": {
1322 | "node": ">=0.10.0"
1323 | }
1324 | },
1325 | "node_modules/object-inspect": {
1326 | "version": "1.12.0",
1327 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
1328 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
1329 | "dev": true,
1330 | "funding": {
1331 | "url": "https://github.com/sponsors/ljharb"
1332 | }
1333 | },
1334 | "node_modules/object-keys": {
1335 | "version": "1.1.1",
1336 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1337 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1338 | "dev": true,
1339 | "engines": {
1340 | "node": ">= 0.4"
1341 | }
1342 | },
1343 | "node_modules/object.assign": {
1344 | "version": "4.1.2",
1345 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
1346 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
1347 | "dev": true,
1348 | "dependencies": {
1349 | "call-bind": "^1.0.0",
1350 | "define-properties": "^1.1.3",
1351 | "has-symbols": "^1.0.1",
1352 | "object-keys": "^1.1.1"
1353 | },
1354 | "engines": {
1355 | "node": ">= 0.4"
1356 | },
1357 | "funding": {
1358 | "url": "https://github.com/sponsors/ljharb"
1359 | }
1360 | },
1361 | "node_modules/once": {
1362 | "version": "1.4.0",
1363 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1364 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1365 | "dev": true,
1366 | "dependencies": {
1367 | "wrappy": "1"
1368 | }
1369 | },
1370 | "node_modules/p-limit": {
1371 | "version": "3.1.0",
1372 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
1373 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
1374 | "dev": true,
1375 | "dependencies": {
1376 | "yocto-queue": "^0.1.0"
1377 | },
1378 | "engines": {
1379 | "node": ">=10"
1380 | },
1381 | "funding": {
1382 | "url": "https://github.com/sponsors/sindresorhus"
1383 | }
1384 | },
1385 | "node_modules/p-locate": {
1386 | "version": "5.0.0",
1387 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
1388 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
1389 | "dev": true,
1390 | "dependencies": {
1391 | "p-limit": "^3.0.2"
1392 | },
1393 | "engines": {
1394 | "node": ">=10"
1395 | },
1396 | "funding": {
1397 | "url": "https://github.com/sponsors/sindresorhus"
1398 | }
1399 | },
1400 | "node_modules/path-exists": {
1401 | "version": "4.0.0",
1402 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1403 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1404 | "dev": true,
1405 | "engines": {
1406 | "node": ">=8"
1407 | }
1408 | },
1409 | "node_modules/path-is-absolute": {
1410 | "version": "1.0.1",
1411 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1412 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1413 | "dev": true,
1414 | "engines": {
1415 | "node": ">=0.10.0"
1416 | }
1417 | },
1418 | "node_modules/pathval": {
1419 | "version": "1.1.1",
1420 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
1421 | "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
1422 | "dev": true,
1423 | "engines": {
1424 | "node": "*"
1425 | }
1426 | },
1427 | "node_modules/picomatch": {
1428 | "version": "2.3.1",
1429 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1430 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1431 | "dev": true,
1432 | "engines": {
1433 | "node": ">=8.6"
1434 | },
1435 | "funding": {
1436 | "url": "https://github.com/sponsors/jonschlinkert"
1437 | }
1438 | },
1439 | "node_modules/r1csfile": {
1440 | "version": "0.0.37",
1441 | "resolved": "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.37.tgz",
1442 | "integrity": "sha512-6Yb2SqWU59t7wWUX0/4BvVtWAN7RwkIobFJ90+RD3MB2Y5gb5aBGkFWJxDLqqWQbmQnv3y0ekpfDxbtNNAgrGw==",
1443 | "dev": true,
1444 | "dependencies": {
1445 | "@iden3/bigarray": "0.0.2",
1446 | "@iden3/binfileutils": "0.0.11",
1447 | "fastfile": "0.0.20",
1448 | "ffjavascript": "0.2.55"
1449 | }
1450 | },
1451 | "node_modules/r1csfile/node_modules/@iden3/binfileutils": {
1452 | "version": "0.0.11",
1453 | "resolved": "https://registry.npmjs.org/@iden3/binfileutils/-/binfileutils-0.0.11.tgz",
1454 | "integrity": "sha512-LylnJoZ0CTdgErnKY8OxohvW4K+p6UHD3sxt+3P9AmMyBQjYR4IpoqoYZZ+9aMj89cmCQ21UvdhndAx04er3NA==",
1455 | "dev": true,
1456 | "dependencies": {
1457 | "fastfile": "0.0.20",
1458 | "ffjavascript": "^0.2.48"
1459 | }
1460 | },
1461 | "node_modules/randombytes": {
1462 | "version": "2.1.0",
1463 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
1464 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
1465 | "dev": true,
1466 | "dependencies": {
1467 | "safe-buffer": "^5.1.0"
1468 | }
1469 | },
1470 | "node_modules/readdirp": {
1471 | "version": "3.6.0",
1472 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1473 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1474 | "dev": true,
1475 | "dependencies": {
1476 | "picomatch": "^2.2.1"
1477 | },
1478 | "engines": {
1479 | "node": ">=8.10.0"
1480 | }
1481 | },
1482 | "node_modules/readline": {
1483 | "version": "1.3.0",
1484 | "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
1485 | "integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw=",
1486 | "dev": true
1487 | },
1488 | "node_modules/require-directory": {
1489 | "version": "2.1.1",
1490 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1491 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
1492 | "dev": true,
1493 | "engines": {
1494 | "node": ">=0.10.0"
1495 | }
1496 | },
1497 | "node_modules/rimraf": {
1498 | "version": "3.0.2",
1499 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1500 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1501 | "dev": true,
1502 | "dependencies": {
1503 | "glob": "^7.1.3"
1504 | },
1505 | "bin": {
1506 | "rimraf": "bin.js"
1507 | },
1508 | "funding": {
1509 | "url": "https://github.com/sponsors/isaacs"
1510 | }
1511 | },
1512 | "node_modules/safe-buffer": {
1513 | "version": "5.2.1",
1514 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1515 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1516 | "dev": true,
1517 | "funding": [
1518 | {
1519 | "type": "github",
1520 | "url": "https://github.com/sponsors/feross"
1521 | },
1522 | {
1523 | "type": "patreon",
1524 | "url": "https://www.patreon.com/feross"
1525 | },
1526 | {
1527 | "type": "consulting",
1528 | "url": "https://feross.org/support"
1529 | }
1530 | ]
1531 | },
1532 | "node_modules/serialize-javascript": {
1533 | "version": "6.0.0",
1534 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
1535 | "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
1536 | "dev": true,
1537 | "dependencies": {
1538 | "randombytes": "^2.1.0"
1539 | }
1540 | },
1541 | "node_modules/side-channel": {
1542 | "version": "1.0.4",
1543 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1544 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1545 | "dev": true,
1546 | "dependencies": {
1547 | "call-bind": "^1.0.0",
1548 | "get-intrinsic": "^1.0.2",
1549 | "object-inspect": "^1.9.0"
1550 | },
1551 | "funding": {
1552 | "url": "https://github.com/sponsors/ljharb"
1553 | }
1554 | },
1555 | "node_modules/snarkjs": {
1556 | "version": "0.4.10",
1557 | "resolved": "https://registry.npmjs.org/snarkjs/-/snarkjs-0.4.10.tgz",
1558 | "integrity": "sha512-YWgxso7CGcSfkyDGraVjPuBJtq6GEsZ16YBJj2eD0TFum2D5BxnawvyTo4p/7UpctAT0r05DoHo80zgaWnbIKA==",
1559 | "dev": true,
1560 | "dependencies": {
1561 | "@iden3/binfileutils": "0.0.8",
1562 | "blake2b-wasm": "^2.3.0",
1563 | "circom_runtime": "0.1.14",
1564 | "ejs": "^3.1.6",
1565 | "fastfile": "0.0.19",
1566 | "ffjavascript": "0.2.39",
1567 | "js-sha3": "^0.8.0",
1568 | "logplease": "^1.2.15",
1569 | "r1csfile": "0.0.33",
1570 | "readline": "^1.3.0"
1571 | },
1572 | "bin": {
1573 | "snarkjs": "build/cli.cjs"
1574 | }
1575 | },
1576 | "node_modules/snarkjs/node_modules/fastfile": {
1577 | "version": "0.0.19",
1578 | "resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.19.tgz",
1579 | "integrity": "sha512-tz9nWR5KYb6eR2odFQ7oxqEkx8F3YQZ6NBJoJR92YEG3DqYOqyxMck8PKvTVNKx3uwvOqGnLXNScnqpdHRdHGQ==",
1580 | "dev": true
1581 | },
1582 | "node_modules/snarkjs/node_modules/ffjavascript": {
1583 | "version": "0.2.39",
1584 | "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.39.tgz",
1585 | "integrity": "sha512-9ewb5keKHL1owKTxCK7sDuA34SPJxnznWqdJgwBW51moCvg+wf9L0W5mcxm8qMUxt2OE/KjBQUKmYLaKyNNrPw==",
1586 | "dev": true,
1587 | "dependencies": {
1588 | "big-integer": "^1.6.48",
1589 | "wasmcurves": "0.0.14",
1590 | "web-worker": "^1.0.0"
1591 | }
1592 | },
1593 | "node_modules/snarkjs/node_modules/r1csfile": {
1594 | "version": "0.0.33",
1595 | "resolved": "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.33.tgz",
1596 | "integrity": "sha512-aSZa/Vy6avJ146MOewUNRYdDLJCDINZ7aqSt0Zhw4uVrd4TijOz6gBfmckr7tPILaT3RNp7THVpUzeW0++OlJw==",
1597 | "dev": true,
1598 | "dependencies": {
1599 | "@iden3/bigarray": "0.0.2",
1600 | "@iden3/binfileutils": "0.0.8",
1601 | "fastfile": "0.0.19",
1602 | "ffjavascript": "0.2.39"
1603 | }
1604 | },
1605 | "node_modules/snarkjs/node_modules/wasmcurves": {
1606 | "version": "0.0.14",
1607 | "resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.0.14.tgz",
1608 | "integrity": "sha512-G1iMkxlRaQSdqQ1JrwHcU+awLmwyH6kFKfT8g9obd8MWe+u5oSdFXrODB0zmSI5aGGvJPG+4cAmqCGYv9R+7qg==",
1609 | "dev": true,
1610 | "dependencies": {
1611 | "big-integer": "^1.6.42",
1612 | "blakejs": "^1.1.0"
1613 | }
1614 | },
1615 | "node_modules/string-width": {
1616 | "version": "4.2.3",
1617 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1618 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1619 | "dev": true,
1620 | "dependencies": {
1621 | "emoji-regex": "^8.0.0",
1622 | "is-fullwidth-code-point": "^3.0.0",
1623 | "strip-ansi": "^6.0.1"
1624 | },
1625 | "engines": {
1626 | "node": ">=8"
1627 | }
1628 | },
1629 | "node_modules/string.prototype.trimend": {
1630 | "version": "1.0.4",
1631 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
1632 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
1633 | "dev": true,
1634 | "dependencies": {
1635 | "call-bind": "^1.0.2",
1636 | "define-properties": "^1.1.3"
1637 | },
1638 | "funding": {
1639 | "url": "https://github.com/sponsors/ljharb"
1640 | }
1641 | },
1642 | "node_modules/string.prototype.trimstart": {
1643 | "version": "1.0.4",
1644 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
1645 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
1646 | "dev": true,
1647 | "dependencies": {
1648 | "call-bind": "^1.0.2",
1649 | "define-properties": "^1.1.3"
1650 | },
1651 | "funding": {
1652 | "url": "https://github.com/sponsors/ljharb"
1653 | }
1654 | },
1655 | "node_modules/strip-ansi": {
1656 | "version": "6.0.1",
1657 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1658 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1659 | "dev": true,
1660 | "dependencies": {
1661 | "ansi-regex": "^5.0.1"
1662 | },
1663 | "engines": {
1664 | "node": ">=8"
1665 | }
1666 | },
1667 | "node_modules/strip-json-comments": {
1668 | "version": "3.1.1",
1669 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
1670 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
1671 | "dev": true,
1672 | "engines": {
1673 | "node": ">=8"
1674 | },
1675 | "funding": {
1676 | "url": "https://github.com/sponsors/sindresorhus"
1677 | }
1678 | },
1679 | "node_modules/supports-color": {
1680 | "version": "8.1.1",
1681 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
1682 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
1683 | "dev": true,
1684 | "dependencies": {
1685 | "has-flag": "^4.0.0"
1686 | },
1687 | "engines": {
1688 | "node": ">=10"
1689 | },
1690 | "funding": {
1691 | "url": "https://github.com/chalk/supports-color?sponsor=1"
1692 | }
1693 | },
1694 | "node_modules/tmp": {
1695 | "version": "0.2.1",
1696 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
1697 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
1698 | "dev": true,
1699 | "dependencies": {
1700 | "rimraf": "^3.0.0"
1701 | },
1702 | "engines": {
1703 | "node": ">=8.17.0"
1704 | }
1705 | },
1706 | "node_modules/tmp-promise": {
1707 | "version": "3.0.3",
1708 | "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz",
1709 | "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==",
1710 | "dev": true,
1711 | "dependencies": {
1712 | "tmp": "^0.2.0"
1713 | }
1714 | },
1715 | "node_modules/to-regex-range": {
1716 | "version": "5.0.1",
1717 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1718 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1719 | "dev": true,
1720 | "dependencies": {
1721 | "is-number": "^7.0.0"
1722 | },
1723 | "engines": {
1724 | "node": ">=8.0"
1725 | }
1726 | },
1727 | "node_modules/type-detect": {
1728 | "version": "4.0.8",
1729 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
1730 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
1731 | "dev": true,
1732 | "engines": {
1733 | "node": ">=4"
1734 | }
1735 | },
1736 | "node_modules/unbox-primitive": {
1737 | "version": "1.0.1",
1738 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
1739 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
1740 | "dev": true,
1741 | "dependencies": {
1742 | "function-bind": "^1.1.1",
1743 | "has-bigints": "^1.0.1",
1744 | "has-symbols": "^1.0.2",
1745 | "which-boxed-primitive": "^1.0.2"
1746 | },
1747 | "funding": {
1748 | "url": "https://github.com/sponsors/ljharb"
1749 | }
1750 | },
1751 | "node_modules/util": {
1752 | "version": "0.12.4",
1753 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
1754 | "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
1755 | "dev": true,
1756 | "dependencies": {
1757 | "inherits": "^2.0.3",
1758 | "is-arguments": "^1.0.4",
1759 | "is-generator-function": "^1.0.7",
1760 | "is-typed-array": "^1.1.3",
1761 | "safe-buffer": "^5.1.2",
1762 | "which-typed-array": "^1.1.2"
1763 | }
1764 | },
1765 | "node_modules/wasmbuilder": {
1766 | "version": "0.0.12",
1767 | "resolved": "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.12.tgz",
1768 | "integrity": "sha512-dTMpBgrnLOXrN58i2zakn2ScynsBhq9LfyQIsPz4CyxRF9k1GAORniuqn3xmE9NnI1l7g3iiVCkoB2Cl0/oG8w==",
1769 | "dev": true,
1770 | "dependencies": {
1771 | "big-integer": "^1.6.48"
1772 | }
1773 | },
1774 | "node_modules/wasmcurves": {
1775 | "version": "0.1.0",
1776 | "resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.1.0.tgz",
1777 | "integrity": "sha512-kIlcgbVUAv2uQ6lGsepGz/m5V40+Z6rvTBkqCYn3Y2+OcXst+UaP4filJYLh/xDxjJl62FFjZZeAnpeli1Y5/Q==",
1778 | "dev": true,
1779 | "dependencies": {
1780 | "big-integer": "^1.6.42",
1781 | "blakejs": "^1.1.0"
1782 | }
1783 | },
1784 | "node_modules/web-worker": {
1785 | "version": "1.2.0",
1786 | "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz",
1787 | "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==",
1788 | "dev": true
1789 | },
1790 | "node_modules/which-boxed-primitive": {
1791 | "version": "1.0.2",
1792 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
1793 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
1794 | "dev": true,
1795 | "dependencies": {
1796 | "is-bigint": "^1.0.1",
1797 | "is-boolean-object": "^1.1.0",
1798 | "is-number-object": "^1.0.4",
1799 | "is-string": "^1.0.5",
1800 | "is-symbol": "^1.0.3"
1801 | },
1802 | "funding": {
1803 | "url": "https://github.com/sponsors/ljharb"
1804 | }
1805 | },
1806 | "node_modules/which-typed-array": {
1807 | "version": "1.1.7",
1808 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz",
1809 | "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==",
1810 | "dev": true,
1811 | "dependencies": {
1812 | "available-typed-arrays": "^1.0.5",
1813 | "call-bind": "^1.0.2",
1814 | "es-abstract": "^1.18.5",
1815 | "foreach": "^2.0.5",
1816 | "has-tostringtag": "^1.0.0",
1817 | "is-typed-array": "^1.1.7"
1818 | },
1819 | "engines": {
1820 | "node": ">= 0.4"
1821 | },
1822 | "funding": {
1823 | "url": "https://github.com/sponsors/ljharb"
1824 | }
1825 | },
1826 | "node_modules/workerpool": {
1827 | "version": "6.2.1",
1828 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
1829 | "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
1830 | "dev": true
1831 | },
1832 | "node_modules/wrap-ansi": {
1833 | "version": "7.0.0",
1834 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1835 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1836 | "dev": true,
1837 | "dependencies": {
1838 | "ansi-styles": "^4.0.0",
1839 | "string-width": "^4.1.0",
1840 | "strip-ansi": "^6.0.0"
1841 | },
1842 | "engines": {
1843 | "node": ">=10"
1844 | },
1845 | "funding": {
1846 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1847 | }
1848 | },
1849 | "node_modules/wrappy": {
1850 | "version": "1.0.2",
1851 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1852 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1853 | "dev": true
1854 | },
1855 | "node_modules/y18n": {
1856 | "version": "5.0.8",
1857 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
1858 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
1859 | "dev": true,
1860 | "engines": {
1861 | "node": ">=10"
1862 | }
1863 | },
1864 | "node_modules/yargs": {
1865 | "version": "16.2.0",
1866 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
1867 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
1868 | "dev": true,
1869 | "dependencies": {
1870 | "cliui": "^7.0.2",
1871 | "escalade": "^3.1.1",
1872 | "get-caller-file": "^2.0.5",
1873 | "require-directory": "^2.1.1",
1874 | "string-width": "^4.2.0",
1875 | "y18n": "^5.0.5",
1876 | "yargs-parser": "^20.2.2"
1877 | },
1878 | "engines": {
1879 | "node": ">=10"
1880 | }
1881 | },
1882 | "node_modules/yargs-parser": {
1883 | "version": "20.2.4",
1884 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
1885 | "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
1886 | "dev": true,
1887 | "engines": {
1888 | "node": ">=10"
1889 | }
1890 | },
1891 | "node_modules/yargs-unparser": {
1892 | "version": "2.0.0",
1893 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
1894 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
1895 | "dev": true,
1896 | "dependencies": {
1897 | "camelcase": "^6.0.0",
1898 | "decamelize": "^4.0.0",
1899 | "flat": "^5.0.2",
1900 | "is-plain-obj": "^2.1.0"
1901 | },
1902 | "engines": {
1903 | "node": ">=10"
1904 | }
1905 | },
1906 | "node_modules/yocto-queue": {
1907 | "version": "0.1.0",
1908 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
1909 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
1910 | "dev": true,
1911 | "engines": {
1912 | "node": ">=10"
1913 | },
1914 | "funding": {
1915 | "url": "https://github.com/sponsors/sindresorhus"
1916 | }
1917 | }
1918 | },
1919 | "dependencies": {
1920 | "@iden3/bigarray": {
1921 | "version": "0.0.2",
1922 | "resolved": "https://registry.npmjs.org/@iden3/bigarray/-/bigarray-0.0.2.tgz",
1923 | "integrity": "sha512-Xzdyxqm1bOFF6pdIsiHLLl3HkSLjbhqJHVyqaTxXt3RqXBEnmsUmEW47H7VOi/ak7TdkRpNkxjyK5Zbkm+y52g==",
1924 | "dev": true
1925 | },
1926 | "@iden3/binfileutils": {
1927 | "version": "0.0.8",
1928 | "resolved": "https://registry.npmjs.org/@iden3/binfileutils/-/binfileutils-0.0.8.tgz",
1929 | "integrity": "sha512-/GqTsujUssGuQY+sd/XaLrA+OiCwzm+6yH28C57QQDWCHET2Logry9fGxU10n6XKdhCQBjZ7T/YMQkLwwkpRTQ==",
1930 | "dev": true,
1931 | "requires": {
1932 | "fastfile": "0.0.19",
1933 | "ffjavascript": "^0.2.30"
1934 | },
1935 | "dependencies": {
1936 | "fastfile": {
1937 | "version": "0.0.19",
1938 | "resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.19.tgz",
1939 | "integrity": "sha512-tz9nWR5KYb6eR2odFQ7oxqEkx8F3YQZ6NBJoJR92YEG3DqYOqyxMck8PKvTVNKx3uwvOqGnLXNScnqpdHRdHGQ==",
1940 | "dev": true
1941 | }
1942 | }
1943 | },
1944 | "@ungap/promise-all-settled": {
1945 | "version": "1.1.2",
1946 | "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
1947 | "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
1948 | "dev": true
1949 | },
1950 | "ansi-colors": {
1951 | "version": "4.1.1",
1952 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
1953 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
1954 | "dev": true
1955 | },
1956 | "ansi-regex": {
1957 | "version": "5.0.1",
1958 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1959 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1960 | "dev": true
1961 | },
1962 | "ansi-styles": {
1963 | "version": "4.3.0",
1964 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1965 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1966 | "dev": true,
1967 | "requires": {
1968 | "color-convert": "^2.0.1"
1969 | }
1970 | },
1971 | "anymatch": {
1972 | "version": "3.1.2",
1973 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
1974 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
1975 | "dev": true,
1976 | "requires": {
1977 | "normalize-path": "^3.0.0",
1978 | "picomatch": "^2.0.4"
1979 | }
1980 | },
1981 | "argparse": {
1982 | "version": "2.0.1",
1983 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
1984 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
1985 | "dev": true
1986 | },
1987 | "assertion-error": {
1988 | "version": "1.1.0",
1989 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
1990 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
1991 | "dev": true
1992 | },
1993 | "async": {
1994 | "version": "3.2.3",
1995 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
1996 | "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==",
1997 | "dev": true
1998 | },
1999 | "available-typed-arrays": {
2000 | "version": "1.0.5",
2001 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
2002 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
2003 | "dev": true
2004 | },
2005 | "b4a": {
2006 | "version": "1.3.1",
2007 | "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.3.1.tgz",
2008 | "integrity": "sha512-ULHjbJGjZcdA5bugDNAAcMA6GWXX/9N10I6AQc14TH+Sr7bMfT+NHuJnOFGPJWLtzYa6Tz+PnFD2D/1bISLLZQ==",
2009 | "dev": true
2010 | },
2011 | "balanced-match": {
2012 | "version": "1.0.2",
2013 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
2014 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
2015 | "dev": true
2016 | },
2017 | "big-integer": {
2018 | "version": "1.6.51",
2019 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
2020 | "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
2021 | "dev": true
2022 | },
2023 | "binary-extensions": {
2024 | "version": "2.2.0",
2025 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
2026 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
2027 | "dev": true
2028 | },
2029 | "blake2b-wasm": {
2030 | "version": "2.4.0",
2031 | "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz",
2032 | "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==",
2033 | "dev": true,
2034 | "requires": {
2035 | "b4a": "^1.0.1",
2036 | "nanoassert": "^2.0.0"
2037 | }
2038 | },
2039 | "blakejs": {
2040 | "version": "1.2.1",
2041 | "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
2042 | "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==",
2043 | "dev": true
2044 | },
2045 | "brace-expansion": {
2046 | "version": "1.1.11",
2047 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2048 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2049 | "dev": true,
2050 | "requires": {
2051 | "balanced-match": "^1.0.0",
2052 | "concat-map": "0.0.1"
2053 | }
2054 | },
2055 | "braces": {
2056 | "version": "3.0.2",
2057 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
2058 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
2059 | "dev": true,
2060 | "requires": {
2061 | "fill-range": "^7.0.1"
2062 | }
2063 | },
2064 | "browser-stdout": {
2065 | "version": "1.3.1",
2066 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
2067 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
2068 | "dev": true
2069 | },
2070 | "call-bind": {
2071 | "version": "1.0.2",
2072 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
2073 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
2074 | "dev": true,
2075 | "requires": {
2076 | "function-bind": "^1.1.1",
2077 | "get-intrinsic": "^1.0.2"
2078 | }
2079 | },
2080 | "camelcase": {
2081 | "version": "6.3.0",
2082 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
2083 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
2084 | "dev": true
2085 | },
2086 | "chai": {
2087 | "version": "4.3.6",
2088 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
2089 | "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==",
2090 | "dev": true,
2091 | "requires": {
2092 | "assertion-error": "^1.1.0",
2093 | "check-error": "^1.0.2",
2094 | "deep-eql": "^3.0.1",
2095 | "get-func-name": "^2.0.0",
2096 | "loupe": "^2.3.1",
2097 | "pathval": "^1.1.1",
2098 | "type-detect": "^4.0.5"
2099 | }
2100 | },
2101 | "chalk": {
2102 | "version": "4.1.2",
2103 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
2104 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
2105 | "dev": true,
2106 | "requires": {
2107 | "ansi-styles": "^4.1.0",
2108 | "supports-color": "^7.1.0"
2109 | },
2110 | "dependencies": {
2111 | "supports-color": {
2112 | "version": "7.2.0",
2113 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2114 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2115 | "dev": true,
2116 | "requires": {
2117 | "has-flag": "^4.0.0"
2118 | }
2119 | }
2120 | }
2121 | },
2122 | "check-error": {
2123 | "version": "1.0.2",
2124 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
2125 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
2126 | "dev": true
2127 | },
2128 | "child_process": {
2129 | "version": "1.0.2",
2130 | "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz",
2131 | "integrity": "sha1-sffn/HPSXn/R1FWtyU4UODAYK1o=",
2132 | "dev": true
2133 | },
2134 | "chokidar": {
2135 | "version": "3.5.3",
2136 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
2137 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
2138 | "dev": true,
2139 | "requires": {
2140 | "anymatch": "~3.1.2",
2141 | "braces": "~3.0.2",
2142 | "fsevents": "~2.3.2",
2143 | "glob-parent": "~5.1.2",
2144 | "is-binary-path": "~2.1.0",
2145 | "is-glob": "~4.0.1",
2146 | "normalize-path": "~3.0.0",
2147 | "readdirp": "~3.6.0"
2148 | }
2149 | },
2150 | "circom_runtime": {
2151 | "version": "0.1.14",
2152 | "resolved": "https://registry.npmjs.org/circom_runtime/-/circom_runtime-0.1.14.tgz",
2153 | "integrity": "sha512-MLbHHZVkYuWyZiYErLmT5y0qbTRXDD1NhaDyLhQNF0JCb6brx8r/VJDevwne7sT1re7qHpHCQAL5rhqByQ7obQ==",
2154 | "dev": true,
2155 | "requires": {
2156 | "ffjavascript": "0.2.39",
2157 | "fnv-plus": "^1.3.1"
2158 | },
2159 | "dependencies": {
2160 | "ffjavascript": {
2161 | "version": "0.2.39",
2162 | "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.39.tgz",
2163 | "integrity": "sha512-9ewb5keKHL1owKTxCK7sDuA34SPJxnznWqdJgwBW51moCvg+wf9L0W5mcxm8qMUxt2OE/KjBQUKmYLaKyNNrPw==",
2164 | "dev": true,
2165 | "requires": {
2166 | "big-integer": "^1.6.48",
2167 | "wasmcurves": "0.0.14",
2168 | "web-worker": "^1.0.0"
2169 | }
2170 | },
2171 | "wasmcurves": {
2172 | "version": "0.0.14",
2173 | "resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.0.14.tgz",
2174 | "integrity": "sha512-G1iMkxlRaQSdqQ1JrwHcU+awLmwyH6kFKfT8g9obd8MWe+u5oSdFXrODB0zmSI5aGGvJPG+4cAmqCGYv9R+7qg==",
2175 | "dev": true,
2176 | "requires": {
2177 | "big-integer": "^1.6.42",
2178 | "blakejs": "^1.1.0"
2179 | }
2180 | }
2181 | }
2182 | },
2183 | "circom_tester": {
2184 | "version": "0.0.14",
2185 | "resolved": "https://registry.npmjs.org/circom_tester/-/circom_tester-0.0.14.tgz",
2186 | "integrity": "sha512-LX67XrOsmsAmiuwCf7zjq8mB/MObgfGxa78X7G3gU8u55L2xzoKw4NYDMkHbrSFKuU8DMheuSMw8WN/KrjwBQg==",
2187 | "dev": true,
2188 | "requires": {
2189 | "chai": "^4.3.4",
2190 | "child_process": "^1.0.2",
2191 | "ffjavascript": "^0.2.38",
2192 | "fnv-plus": "^1.3.1",
2193 | "r1csfile": "0.0.37",
2194 | "snarkjs": "0.4.10",
2195 | "tmp-promise": "^3.0.2",
2196 | "util": "^0.12.4"
2197 | }
2198 | },
2199 | "circomlib": {
2200 | "version": "2.0.5",
2201 | "resolved": "https://registry.npmjs.org/circomlib/-/circomlib-2.0.5.tgz",
2202 | "integrity": "sha512-O7NQ8OS+J4eshBuoy36z/TwQU0YHw8W3zxZcs4hVwpEll3e4hDm3mgkIPqItN8FDeLEKZFK3YeT/+k8TiLF3/A==",
2203 | "dev": true
2204 | },
2205 | "cliui": {
2206 | "version": "7.0.4",
2207 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
2208 | "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
2209 | "dev": true,
2210 | "requires": {
2211 | "string-width": "^4.2.0",
2212 | "strip-ansi": "^6.0.0",
2213 | "wrap-ansi": "^7.0.0"
2214 | }
2215 | },
2216 | "color-convert": {
2217 | "version": "2.0.1",
2218 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2219 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2220 | "dev": true,
2221 | "requires": {
2222 | "color-name": "~1.1.4"
2223 | }
2224 | },
2225 | "color-name": {
2226 | "version": "1.1.4",
2227 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2228 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2229 | "dev": true
2230 | },
2231 | "concat-map": {
2232 | "version": "0.0.1",
2233 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2234 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
2235 | "dev": true
2236 | },
2237 | "debug": {
2238 | "version": "4.3.4",
2239 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2240 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2241 | "dev": true,
2242 | "requires": {
2243 | "ms": "2.1.2"
2244 | },
2245 | "dependencies": {
2246 | "ms": {
2247 | "version": "2.1.2",
2248 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2249 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2250 | "dev": true
2251 | }
2252 | }
2253 | },
2254 | "decamelize": {
2255 | "version": "4.0.0",
2256 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
2257 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
2258 | "dev": true
2259 | },
2260 | "deep-eql": {
2261 | "version": "3.0.1",
2262 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
2263 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
2264 | "dev": true,
2265 | "requires": {
2266 | "type-detect": "^4.0.0"
2267 | }
2268 | },
2269 | "define-properties": {
2270 | "version": "1.1.3",
2271 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
2272 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
2273 | "dev": true,
2274 | "requires": {
2275 | "object-keys": "^1.0.12"
2276 | }
2277 | },
2278 | "diff": {
2279 | "version": "5.0.0",
2280 | "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
2281 | "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
2282 | "dev": true
2283 | },
2284 | "ejs": {
2285 | "version": "3.1.6",
2286 | "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz",
2287 | "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==",
2288 | "dev": true,
2289 | "requires": {
2290 | "jake": "^10.6.1"
2291 | }
2292 | },
2293 | "emoji-regex": {
2294 | "version": "8.0.0",
2295 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2296 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2297 | "dev": true
2298 | },
2299 | "es-abstract": {
2300 | "version": "1.19.2",
2301 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz",
2302 | "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==",
2303 | "dev": true,
2304 | "requires": {
2305 | "call-bind": "^1.0.2",
2306 | "es-to-primitive": "^1.2.1",
2307 | "function-bind": "^1.1.1",
2308 | "get-intrinsic": "^1.1.1",
2309 | "get-symbol-description": "^1.0.0",
2310 | "has": "^1.0.3",
2311 | "has-symbols": "^1.0.3",
2312 | "internal-slot": "^1.0.3",
2313 | "is-callable": "^1.2.4",
2314 | "is-negative-zero": "^2.0.2",
2315 | "is-regex": "^1.1.4",
2316 | "is-shared-array-buffer": "^1.0.1",
2317 | "is-string": "^1.0.7",
2318 | "is-weakref": "^1.0.2",
2319 | "object-inspect": "^1.12.0",
2320 | "object-keys": "^1.1.1",
2321 | "object.assign": "^4.1.2",
2322 | "string.prototype.trimend": "^1.0.4",
2323 | "string.prototype.trimstart": "^1.0.4",
2324 | "unbox-primitive": "^1.0.1"
2325 | }
2326 | },
2327 | "es-to-primitive": {
2328 | "version": "1.2.1",
2329 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
2330 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
2331 | "dev": true,
2332 | "requires": {
2333 | "is-callable": "^1.1.4",
2334 | "is-date-object": "^1.0.1",
2335 | "is-symbol": "^1.0.2"
2336 | }
2337 | },
2338 | "escalade": {
2339 | "version": "3.1.1",
2340 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2341 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
2342 | "dev": true
2343 | },
2344 | "escape-string-regexp": {
2345 | "version": "4.0.0",
2346 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
2347 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
2348 | "dev": true
2349 | },
2350 | "fastfile": {
2351 | "version": "0.0.20",
2352 | "resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.20.tgz",
2353 | "integrity": "sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA==",
2354 | "dev": true
2355 | },
2356 | "ffjavascript": {
2357 | "version": "0.2.55",
2358 | "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.55.tgz",
2359 | "integrity": "sha512-8X0FCIPOWiK6DTWh3pnE3O6D6nIQsirStAXpWMzRDnoDX7SEnDX4I28aVhwjL7L35XS1vy2AU7zc0UCGYxdLjw==",
2360 | "dev": true,
2361 | "requires": {
2362 | "big-integer": "^1.6.48",
2363 | "wasmbuilder": "^0.0.12",
2364 | "wasmcurves": "0.1.0",
2365 | "web-worker": "^1.2.0"
2366 | }
2367 | },
2368 | "filelist": {
2369 | "version": "1.0.2",
2370 | "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz",
2371 | "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==",
2372 | "dev": true,
2373 | "requires": {
2374 | "minimatch": "^3.0.4"
2375 | },
2376 | "dependencies": {
2377 | "minimatch": {
2378 | "version": "3.1.2",
2379 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2380 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2381 | "dev": true,
2382 | "requires": {
2383 | "brace-expansion": "^1.1.7"
2384 | }
2385 | }
2386 | }
2387 | },
2388 | "fill-range": {
2389 | "version": "7.0.1",
2390 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
2391 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
2392 | "dev": true,
2393 | "requires": {
2394 | "to-regex-range": "^5.0.1"
2395 | }
2396 | },
2397 | "find-up": {
2398 | "version": "5.0.0",
2399 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
2400 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
2401 | "dev": true,
2402 | "requires": {
2403 | "locate-path": "^6.0.0",
2404 | "path-exists": "^4.0.0"
2405 | }
2406 | },
2407 | "flat": {
2408 | "version": "5.0.2",
2409 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
2410 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
2411 | "dev": true
2412 | },
2413 | "fnv-plus": {
2414 | "version": "1.3.1",
2415 | "resolved": "https://registry.npmjs.org/fnv-plus/-/fnv-plus-1.3.1.tgz",
2416 | "integrity": "sha512-Gz1EvfOneuFfk4yG458dJ3TLJ7gV19q3OM/vVvvHf7eT02Hm1DleB4edsia6ahbKgAYxO9gvyQ1ioWZR+a00Yw==",
2417 | "dev": true
2418 | },
2419 | "foreach": {
2420 | "version": "2.0.5",
2421 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
2422 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
2423 | "dev": true
2424 | },
2425 | "fs.realpath": {
2426 | "version": "1.0.0",
2427 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2428 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2429 | "dev": true
2430 | },
2431 | "fsevents": {
2432 | "version": "2.3.2",
2433 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
2434 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
2435 | "dev": true,
2436 | "optional": true
2437 | },
2438 | "function-bind": {
2439 | "version": "1.1.1",
2440 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
2441 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
2442 | "dev": true
2443 | },
2444 | "get-caller-file": {
2445 | "version": "2.0.5",
2446 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
2447 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
2448 | "dev": true
2449 | },
2450 | "get-func-name": {
2451 | "version": "2.0.0",
2452 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
2453 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
2454 | "dev": true
2455 | },
2456 | "get-intrinsic": {
2457 | "version": "1.1.1",
2458 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
2459 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
2460 | "dev": true,
2461 | "requires": {
2462 | "function-bind": "^1.1.1",
2463 | "has": "^1.0.3",
2464 | "has-symbols": "^1.0.1"
2465 | }
2466 | },
2467 | "get-symbol-description": {
2468 | "version": "1.0.0",
2469 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
2470 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
2471 | "dev": true,
2472 | "requires": {
2473 | "call-bind": "^1.0.2",
2474 | "get-intrinsic": "^1.1.1"
2475 | }
2476 | },
2477 | "glob": {
2478 | "version": "7.2.0",
2479 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
2480 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
2481 | "dev": true,
2482 | "requires": {
2483 | "fs.realpath": "^1.0.0",
2484 | "inflight": "^1.0.4",
2485 | "inherits": "2",
2486 | "minimatch": "^3.0.4",
2487 | "once": "^1.3.0",
2488 | "path-is-absolute": "^1.0.0"
2489 | },
2490 | "dependencies": {
2491 | "minimatch": {
2492 | "version": "3.1.2",
2493 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2494 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2495 | "dev": true,
2496 | "requires": {
2497 | "brace-expansion": "^1.1.7"
2498 | }
2499 | }
2500 | }
2501 | },
2502 | "glob-parent": {
2503 | "version": "5.1.2",
2504 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
2505 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
2506 | "dev": true,
2507 | "requires": {
2508 | "is-glob": "^4.0.1"
2509 | }
2510 | },
2511 | "has": {
2512 | "version": "1.0.3",
2513 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
2514 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
2515 | "dev": true,
2516 | "requires": {
2517 | "function-bind": "^1.1.1"
2518 | }
2519 | },
2520 | "has-bigints": {
2521 | "version": "1.0.1",
2522 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
2523 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
2524 | "dev": true
2525 | },
2526 | "has-flag": {
2527 | "version": "4.0.0",
2528 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2529 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2530 | "dev": true
2531 | },
2532 | "has-symbols": {
2533 | "version": "1.0.3",
2534 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
2535 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
2536 | "dev": true
2537 | },
2538 | "has-tostringtag": {
2539 | "version": "1.0.0",
2540 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
2541 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
2542 | "dev": true,
2543 | "requires": {
2544 | "has-symbols": "^1.0.2"
2545 | }
2546 | },
2547 | "he": {
2548 | "version": "1.2.0",
2549 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
2550 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
2551 | "dev": true
2552 | },
2553 | "inflight": {
2554 | "version": "1.0.6",
2555 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2556 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2557 | "dev": true,
2558 | "requires": {
2559 | "once": "^1.3.0",
2560 | "wrappy": "1"
2561 | }
2562 | },
2563 | "inherits": {
2564 | "version": "2.0.4",
2565 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2566 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2567 | "dev": true
2568 | },
2569 | "internal-slot": {
2570 | "version": "1.0.3",
2571 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
2572 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
2573 | "dev": true,
2574 | "requires": {
2575 | "get-intrinsic": "^1.1.0",
2576 | "has": "^1.0.3",
2577 | "side-channel": "^1.0.4"
2578 | }
2579 | },
2580 | "is-arguments": {
2581 | "version": "1.1.1",
2582 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
2583 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
2584 | "dev": true,
2585 | "requires": {
2586 | "call-bind": "^1.0.2",
2587 | "has-tostringtag": "^1.0.0"
2588 | }
2589 | },
2590 | "is-bigint": {
2591 | "version": "1.0.4",
2592 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
2593 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
2594 | "dev": true,
2595 | "requires": {
2596 | "has-bigints": "^1.0.1"
2597 | }
2598 | },
2599 | "is-binary-path": {
2600 | "version": "2.1.0",
2601 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
2602 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
2603 | "dev": true,
2604 | "requires": {
2605 | "binary-extensions": "^2.0.0"
2606 | }
2607 | },
2608 | "is-boolean-object": {
2609 | "version": "1.1.2",
2610 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
2611 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
2612 | "dev": true,
2613 | "requires": {
2614 | "call-bind": "^1.0.2",
2615 | "has-tostringtag": "^1.0.0"
2616 | }
2617 | },
2618 | "is-callable": {
2619 | "version": "1.2.4",
2620 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
2621 | "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
2622 | "dev": true
2623 | },
2624 | "is-date-object": {
2625 | "version": "1.0.5",
2626 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
2627 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
2628 | "dev": true,
2629 | "requires": {
2630 | "has-tostringtag": "^1.0.0"
2631 | }
2632 | },
2633 | "is-extglob": {
2634 | "version": "2.1.1",
2635 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2636 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2637 | "dev": true
2638 | },
2639 | "is-fullwidth-code-point": {
2640 | "version": "3.0.0",
2641 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2642 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2643 | "dev": true
2644 | },
2645 | "is-generator-function": {
2646 | "version": "1.0.10",
2647 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
2648 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
2649 | "dev": true,
2650 | "requires": {
2651 | "has-tostringtag": "^1.0.0"
2652 | }
2653 | },
2654 | "is-glob": {
2655 | "version": "4.0.3",
2656 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2657 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
2658 | "dev": true,
2659 | "requires": {
2660 | "is-extglob": "^2.1.1"
2661 | }
2662 | },
2663 | "is-negative-zero": {
2664 | "version": "2.0.2",
2665 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
2666 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
2667 | "dev": true
2668 | },
2669 | "is-number": {
2670 | "version": "7.0.0",
2671 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2672 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2673 | "dev": true
2674 | },
2675 | "is-number-object": {
2676 | "version": "1.0.6",
2677 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
2678 | "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
2679 | "dev": true,
2680 | "requires": {
2681 | "has-tostringtag": "^1.0.0"
2682 | }
2683 | },
2684 | "is-plain-obj": {
2685 | "version": "2.1.0",
2686 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
2687 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
2688 | "dev": true
2689 | },
2690 | "is-regex": {
2691 | "version": "1.1.4",
2692 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
2693 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
2694 | "dev": true,
2695 | "requires": {
2696 | "call-bind": "^1.0.2",
2697 | "has-tostringtag": "^1.0.0"
2698 | }
2699 | },
2700 | "is-shared-array-buffer": {
2701 | "version": "1.0.1",
2702 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
2703 | "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
2704 | "dev": true
2705 | },
2706 | "is-string": {
2707 | "version": "1.0.7",
2708 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
2709 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
2710 | "dev": true,
2711 | "requires": {
2712 | "has-tostringtag": "^1.0.0"
2713 | }
2714 | },
2715 | "is-symbol": {
2716 | "version": "1.0.4",
2717 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
2718 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
2719 | "dev": true,
2720 | "requires": {
2721 | "has-symbols": "^1.0.2"
2722 | }
2723 | },
2724 | "is-typed-array": {
2725 | "version": "1.1.8",
2726 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz",
2727 | "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==",
2728 | "dev": true,
2729 | "requires": {
2730 | "available-typed-arrays": "^1.0.5",
2731 | "call-bind": "^1.0.2",
2732 | "es-abstract": "^1.18.5",
2733 | "foreach": "^2.0.5",
2734 | "has-tostringtag": "^1.0.0"
2735 | }
2736 | },
2737 | "is-unicode-supported": {
2738 | "version": "0.1.0",
2739 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
2740 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
2741 | "dev": true
2742 | },
2743 | "is-weakref": {
2744 | "version": "1.0.2",
2745 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
2746 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
2747 | "dev": true,
2748 | "requires": {
2749 | "call-bind": "^1.0.2"
2750 | }
2751 | },
2752 | "jake": {
2753 | "version": "10.8.5",
2754 | "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz",
2755 | "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==",
2756 | "dev": true,
2757 | "requires": {
2758 | "async": "^3.2.3",
2759 | "chalk": "^4.0.2",
2760 | "filelist": "^1.0.1",
2761 | "minimatch": "^3.0.4"
2762 | },
2763 | "dependencies": {
2764 | "minimatch": {
2765 | "version": "3.1.2",
2766 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2767 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2768 | "dev": true,
2769 | "requires": {
2770 | "brace-expansion": "^1.1.7"
2771 | }
2772 | }
2773 | }
2774 | },
2775 | "js-sha3": {
2776 | "version": "0.8.0",
2777 | "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
2778 | "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
2779 | "dev": true
2780 | },
2781 | "js-yaml": {
2782 | "version": "4.1.0",
2783 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
2784 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
2785 | "dev": true,
2786 | "requires": {
2787 | "argparse": "^2.0.1"
2788 | }
2789 | },
2790 | "locate-path": {
2791 | "version": "6.0.0",
2792 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
2793 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
2794 | "dev": true,
2795 | "requires": {
2796 | "p-locate": "^5.0.0"
2797 | }
2798 | },
2799 | "log-symbols": {
2800 | "version": "4.1.0",
2801 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
2802 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
2803 | "dev": true,
2804 | "requires": {
2805 | "chalk": "^4.1.0",
2806 | "is-unicode-supported": "^0.1.0"
2807 | }
2808 | },
2809 | "logplease": {
2810 | "version": "1.2.15",
2811 | "resolved": "https://registry.npmjs.org/logplease/-/logplease-1.2.15.tgz",
2812 | "integrity": "sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA==",
2813 | "dev": true
2814 | },
2815 | "loupe": {
2816 | "version": "2.3.4",
2817 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
2818 | "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
2819 | "dev": true,
2820 | "requires": {
2821 | "get-func-name": "^2.0.0"
2822 | }
2823 | },
2824 | "minimatch": {
2825 | "version": "5.0.1",
2826 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
2827 | "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
2828 | "dev": true,
2829 | "requires": {
2830 | "brace-expansion": "^2.0.1"
2831 | },
2832 | "dependencies": {
2833 | "brace-expansion": {
2834 | "version": "2.0.1",
2835 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
2836 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
2837 | "dev": true,
2838 | "requires": {
2839 | "balanced-match": "^1.0.0"
2840 | }
2841 | }
2842 | }
2843 | },
2844 | "mocha": {
2845 | "version": "10.0.0",
2846 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz",
2847 | "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==",
2848 | "dev": true,
2849 | "requires": {
2850 | "@ungap/promise-all-settled": "1.1.2",
2851 | "ansi-colors": "4.1.1",
2852 | "browser-stdout": "1.3.1",
2853 | "chokidar": "3.5.3",
2854 | "debug": "4.3.4",
2855 | "diff": "5.0.0",
2856 | "escape-string-regexp": "4.0.0",
2857 | "find-up": "5.0.0",
2858 | "glob": "7.2.0",
2859 | "he": "1.2.0",
2860 | "js-yaml": "4.1.0",
2861 | "log-symbols": "4.1.0",
2862 | "minimatch": "5.0.1",
2863 | "ms": "2.1.3",
2864 | "nanoid": "3.3.3",
2865 | "serialize-javascript": "6.0.0",
2866 | "strip-json-comments": "3.1.1",
2867 | "supports-color": "8.1.1",
2868 | "workerpool": "6.2.1",
2869 | "yargs": "16.2.0",
2870 | "yargs-parser": "20.2.4",
2871 | "yargs-unparser": "2.0.0"
2872 | }
2873 | },
2874 | "ms": {
2875 | "version": "2.1.3",
2876 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2877 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2878 | "dev": true
2879 | },
2880 | "nanoassert": {
2881 | "version": "2.0.0",
2882 | "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz",
2883 | "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==",
2884 | "dev": true
2885 | },
2886 | "nanoid": {
2887 | "version": "3.3.3",
2888 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
2889 | "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
2890 | "dev": true
2891 | },
2892 | "normalize-path": {
2893 | "version": "3.0.0",
2894 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2895 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
2896 | "dev": true
2897 | },
2898 | "object-inspect": {
2899 | "version": "1.12.0",
2900 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
2901 | "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
2902 | "dev": true
2903 | },
2904 | "object-keys": {
2905 | "version": "1.1.1",
2906 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
2907 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
2908 | "dev": true
2909 | },
2910 | "object.assign": {
2911 | "version": "4.1.2",
2912 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
2913 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
2914 | "dev": true,
2915 | "requires": {
2916 | "call-bind": "^1.0.0",
2917 | "define-properties": "^1.1.3",
2918 | "has-symbols": "^1.0.1",
2919 | "object-keys": "^1.1.1"
2920 | }
2921 | },
2922 | "once": {
2923 | "version": "1.4.0",
2924 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2925 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2926 | "dev": true,
2927 | "requires": {
2928 | "wrappy": "1"
2929 | }
2930 | },
2931 | "p-limit": {
2932 | "version": "3.1.0",
2933 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2934 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2935 | "dev": true,
2936 | "requires": {
2937 | "yocto-queue": "^0.1.0"
2938 | }
2939 | },
2940 | "p-locate": {
2941 | "version": "5.0.0",
2942 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
2943 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
2944 | "dev": true,
2945 | "requires": {
2946 | "p-limit": "^3.0.2"
2947 | }
2948 | },
2949 | "path-exists": {
2950 | "version": "4.0.0",
2951 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
2952 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
2953 | "dev": true
2954 | },
2955 | "path-is-absolute": {
2956 | "version": "1.0.1",
2957 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2958 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2959 | "dev": true
2960 | },
2961 | "pathval": {
2962 | "version": "1.1.1",
2963 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
2964 | "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
2965 | "dev": true
2966 | },
2967 | "picomatch": {
2968 | "version": "2.3.1",
2969 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2970 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2971 | "dev": true
2972 | },
2973 | "r1csfile": {
2974 | "version": "0.0.37",
2975 | "resolved": "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.37.tgz",
2976 | "integrity": "sha512-6Yb2SqWU59t7wWUX0/4BvVtWAN7RwkIobFJ90+RD3MB2Y5gb5aBGkFWJxDLqqWQbmQnv3y0ekpfDxbtNNAgrGw==",
2977 | "dev": true,
2978 | "requires": {
2979 | "@iden3/bigarray": "0.0.2",
2980 | "@iden3/binfileutils": "0.0.11",
2981 | "fastfile": "0.0.20",
2982 | "ffjavascript": "0.2.55"
2983 | },
2984 | "dependencies": {
2985 | "@iden3/binfileutils": {
2986 | "version": "0.0.11",
2987 | "resolved": "https://registry.npmjs.org/@iden3/binfileutils/-/binfileutils-0.0.11.tgz",
2988 | "integrity": "sha512-LylnJoZ0CTdgErnKY8OxohvW4K+p6UHD3sxt+3P9AmMyBQjYR4IpoqoYZZ+9aMj89cmCQ21UvdhndAx04er3NA==",
2989 | "dev": true,
2990 | "requires": {
2991 | "fastfile": "0.0.20",
2992 | "ffjavascript": "^0.2.48"
2993 | }
2994 | }
2995 | }
2996 | },
2997 | "randombytes": {
2998 | "version": "2.1.0",
2999 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
3000 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
3001 | "dev": true,
3002 | "requires": {
3003 | "safe-buffer": "^5.1.0"
3004 | }
3005 | },
3006 | "readdirp": {
3007 | "version": "3.6.0",
3008 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
3009 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
3010 | "dev": true,
3011 | "requires": {
3012 | "picomatch": "^2.2.1"
3013 | }
3014 | },
3015 | "readline": {
3016 | "version": "1.3.0",
3017 | "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
3018 | "integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw=",
3019 | "dev": true
3020 | },
3021 | "require-directory": {
3022 | "version": "2.1.1",
3023 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3024 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
3025 | "dev": true
3026 | },
3027 | "rimraf": {
3028 | "version": "3.0.2",
3029 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
3030 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
3031 | "dev": true,
3032 | "requires": {
3033 | "glob": "^7.1.3"
3034 | }
3035 | },
3036 | "safe-buffer": {
3037 | "version": "5.2.1",
3038 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
3039 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
3040 | "dev": true
3041 | },
3042 | "serialize-javascript": {
3043 | "version": "6.0.0",
3044 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
3045 | "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
3046 | "dev": true,
3047 | "requires": {
3048 | "randombytes": "^2.1.0"
3049 | }
3050 | },
3051 | "side-channel": {
3052 | "version": "1.0.4",
3053 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
3054 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
3055 | "dev": true,
3056 | "requires": {
3057 | "call-bind": "^1.0.0",
3058 | "get-intrinsic": "^1.0.2",
3059 | "object-inspect": "^1.9.0"
3060 | }
3061 | },
3062 | "snarkjs": {
3063 | "version": "0.4.10",
3064 | "resolved": "https://registry.npmjs.org/snarkjs/-/snarkjs-0.4.10.tgz",
3065 | "integrity": "sha512-YWgxso7CGcSfkyDGraVjPuBJtq6GEsZ16YBJj2eD0TFum2D5BxnawvyTo4p/7UpctAT0r05DoHo80zgaWnbIKA==",
3066 | "dev": true,
3067 | "requires": {
3068 | "@iden3/binfileutils": "0.0.8",
3069 | "blake2b-wasm": "^2.3.0",
3070 | "circom_runtime": "0.1.14",
3071 | "ejs": "^3.1.6",
3072 | "fastfile": "0.0.19",
3073 | "ffjavascript": "0.2.39",
3074 | "js-sha3": "^0.8.0",
3075 | "logplease": "^1.2.15",
3076 | "r1csfile": "0.0.33",
3077 | "readline": "^1.3.0"
3078 | },
3079 | "dependencies": {
3080 | "fastfile": {
3081 | "version": "0.0.19",
3082 | "resolved": "https://registry.npmjs.org/fastfile/-/fastfile-0.0.19.tgz",
3083 | "integrity": "sha512-tz9nWR5KYb6eR2odFQ7oxqEkx8F3YQZ6NBJoJR92YEG3DqYOqyxMck8PKvTVNKx3uwvOqGnLXNScnqpdHRdHGQ==",
3084 | "dev": true
3085 | },
3086 | "ffjavascript": {
3087 | "version": "0.2.39",
3088 | "resolved": "https://registry.npmjs.org/ffjavascript/-/ffjavascript-0.2.39.tgz",
3089 | "integrity": "sha512-9ewb5keKHL1owKTxCK7sDuA34SPJxnznWqdJgwBW51moCvg+wf9L0W5mcxm8qMUxt2OE/KjBQUKmYLaKyNNrPw==",
3090 | "dev": true,
3091 | "requires": {
3092 | "big-integer": "^1.6.48",
3093 | "wasmcurves": "0.0.14",
3094 | "web-worker": "^1.0.0"
3095 | }
3096 | },
3097 | "r1csfile": {
3098 | "version": "0.0.33",
3099 | "resolved": "https://registry.npmjs.org/r1csfile/-/r1csfile-0.0.33.tgz",
3100 | "integrity": "sha512-aSZa/Vy6avJ146MOewUNRYdDLJCDINZ7aqSt0Zhw4uVrd4TijOz6gBfmckr7tPILaT3RNp7THVpUzeW0++OlJw==",
3101 | "dev": true,
3102 | "requires": {
3103 | "@iden3/bigarray": "0.0.2",
3104 | "@iden3/binfileutils": "0.0.8",
3105 | "fastfile": "0.0.19",
3106 | "ffjavascript": "0.2.39"
3107 | }
3108 | },
3109 | "wasmcurves": {
3110 | "version": "0.0.14",
3111 | "resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.0.14.tgz",
3112 | "integrity": "sha512-G1iMkxlRaQSdqQ1JrwHcU+awLmwyH6kFKfT8g9obd8MWe+u5oSdFXrODB0zmSI5aGGvJPG+4cAmqCGYv9R+7qg==",
3113 | "dev": true,
3114 | "requires": {
3115 | "big-integer": "^1.6.42",
3116 | "blakejs": "^1.1.0"
3117 | }
3118 | }
3119 | }
3120 | },
3121 | "string-width": {
3122 | "version": "4.2.3",
3123 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3124 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3125 | "dev": true,
3126 | "requires": {
3127 | "emoji-regex": "^8.0.0",
3128 | "is-fullwidth-code-point": "^3.0.0",
3129 | "strip-ansi": "^6.0.1"
3130 | }
3131 | },
3132 | "string.prototype.trimend": {
3133 | "version": "1.0.4",
3134 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
3135 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
3136 | "dev": true,
3137 | "requires": {
3138 | "call-bind": "^1.0.2",
3139 | "define-properties": "^1.1.3"
3140 | }
3141 | },
3142 | "string.prototype.trimstart": {
3143 | "version": "1.0.4",
3144 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
3145 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
3146 | "dev": true,
3147 | "requires": {
3148 | "call-bind": "^1.0.2",
3149 | "define-properties": "^1.1.3"
3150 | }
3151 | },
3152 | "strip-ansi": {
3153 | "version": "6.0.1",
3154 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3155 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3156 | "dev": true,
3157 | "requires": {
3158 | "ansi-regex": "^5.0.1"
3159 | }
3160 | },
3161 | "strip-json-comments": {
3162 | "version": "3.1.1",
3163 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
3164 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
3165 | "dev": true
3166 | },
3167 | "supports-color": {
3168 | "version": "8.1.1",
3169 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
3170 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
3171 | "dev": true,
3172 | "requires": {
3173 | "has-flag": "^4.0.0"
3174 | }
3175 | },
3176 | "tmp": {
3177 | "version": "0.2.1",
3178 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
3179 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
3180 | "dev": true,
3181 | "requires": {
3182 | "rimraf": "^3.0.0"
3183 | }
3184 | },
3185 | "tmp-promise": {
3186 | "version": "3.0.3",
3187 | "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz",
3188 | "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==",
3189 | "dev": true,
3190 | "requires": {
3191 | "tmp": "^0.2.0"
3192 | }
3193 | },
3194 | "to-regex-range": {
3195 | "version": "5.0.1",
3196 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3197 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3198 | "dev": true,
3199 | "requires": {
3200 | "is-number": "^7.0.0"
3201 | }
3202 | },
3203 | "type-detect": {
3204 | "version": "4.0.8",
3205 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
3206 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
3207 | "dev": true
3208 | },
3209 | "unbox-primitive": {
3210 | "version": "1.0.1",
3211 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
3212 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
3213 | "dev": true,
3214 | "requires": {
3215 | "function-bind": "^1.1.1",
3216 | "has-bigints": "^1.0.1",
3217 | "has-symbols": "^1.0.2",
3218 | "which-boxed-primitive": "^1.0.2"
3219 | }
3220 | },
3221 | "util": {
3222 | "version": "0.12.4",
3223 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
3224 | "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
3225 | "dev": true,
3226 | "requires": {
3227 | "inherits": "^2.0.3",
3228 | "is-arguments": "^1.0.4",
3229 | "is-generator-function": "^1.0.7",
3230 | "is-typed-array": "^1.1.3",
3231 | "safe-buffer": "^5.1.2",
3232 | "which-typed-array": "^1.1.2"
3233 | }
3234 | },
3235 | "wasmbuilder": {
3236 | "version": "0.0.12",
3237 | "resolved": "https://registry.npmjs.org/wasmbuilder/-/wasmbuilder-0.0.12.tgz",
3238 | "integrity": "sha512-dTMpBgrnLOXrN58i2zakn2ScynsBhq9LfyQIsPz4CyxRF9k1GAORniuqn3xmE9NnI1l7g3iiVCkoB2Cl0/oG8w==",
3239 | "dev": true,
3240 | "requires": {
3241 | "big-integer": "^1.6.48"
3242 | }
3243 | },
3244 | "wasmcurves": {
3245 | "version": "0.1.0",
3246 | "resolved": "https://registry.npmjs.org/wasmcurves/-/wasmcurves-0.1.0.tgz",
3247 | "integrity": "sha512-kIlcgbVUAv2uQ6lGsepGz/m5V40+Z6rvTBkqCYn3Y2+OcXst+UaP4filJYLh/xDxjJl62FFjZZeAnpeli1Y5/Q==",
3248 | "dev": true,
3249 | "requires": {
3250 | "big-integer": "^1.6.42",
3251 | "blakejs": "^1.1.0"
3252 | }
3253 | },
3254 | "web-worker": {
3255 | "version": "1.2.0",
3256 | "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz",
3257 | "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==",
3258 | "dev": true
3259 | },
3260 | "which-boxed-primitive": {
3261 | "version": "1.0.2",
3262 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
3263 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
3264 | "dev": true,
3265 | "requires": {
3266 | "is-bigint": "^1.0.1",
3267 | "is-boolean-object": "^1.1.0",
3268 | "is-number-object": "^1.0.4",
3269 | "is-string": "^1.0.5",
3270 | "is-symbol": "^1.0.3"
3271 | }
3272 | },
3273 | "which-typed-array": {
3274 | "version": "1.1.7",
3275 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz",
3276 | "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==",
3277 | "dev": true,
3278 | "requires": {
3279 | "available-typed-arrays": "^1.0.5",
3280 | "call-bind": "^1.0.2",
3281 | "es-abstract": "^1.18.5",
3282 | "foreach": "^2.0.5",
3283 | "has-tostringtag": "^1.0.0",
3284 | "is-typed-array": "^1.1.7"
3285 | }
3286 | },
3287 | "workerpool": {
3288 | "version": "6.2.1",
3289 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
3290 | "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
3291 | "dev": true
3292 | },
3293 | "wrap-ansi": {
3294 | "version": "7.0.0",
3295 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
3296 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
3297 | "dev": true,
3298 | "requires": {
3299 | "ansi-styles": "^4.0.0",
3300 | "string-width": "^4.1.0",
3301 | "strip-ansi": "^6.0.0"
3302 | }
3303 | },
3304 | "wrappy": {
3305 | "version": "1.0.2",
3306 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3307 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
3308 | "dev": true
3309 | },
3310 | "y18n": {
3311 | "version": "5.0.8",
3312 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
3313 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
3314 | "dev": true
3315 | },
3316 | "yargs": {
3317 | "version": "16.2.0",
3318 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
3319 | "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
3320 | "dev": true,
3321 | "requires": {
3322 | "cliui": "^7.0.2",
3323 | "escalade": "^3.1.1",
3324 | "get-caller-file": "^2.0.5",
3325 | "require-directory": "^2.1.1",
3326 | "string-width": "^4.2.0",
3327 | "y18n": "^5.0.5",
3328 | "yargs-parser": "^20.2.2"
3329 | }
3330 | },
3331 | "yargs-parser": {
3332 | "version": "20.2.4",
3333 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
3334 | "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
3335 | "dev": true
3336 | },
3337 | "yargs-unparser": {
3338 | "version": "2.0.0",
3339 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
3340 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
3341 | "dev": true,
3342 | "requires": {
3343 | "camelcase": "^6.0.0",
3344 | "decamelize": "^4.0.0",
3345 | "flat": "^5.0.2",
3346 | "is-plain-obj": "^2.1.0"
3347 | }
3348 | },
3349 | "yocto-queue": {
3350 | "version": "0.1.0",
3351 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
3352 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
3353 | "dev": true
3354 | }
3355 | }
3356 | }
3357 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@electron-labs/sha512",
3 | "version": "1.0.4",
4 | "description": "Sha512 circuit for circom",
5 | "main": "index.js",
6 | "directories": {
7 | "test": "test"
8 | },
9 | "scripts": {
10 | "test": "mocha --max-old-space-size=4000 --timeout 150000",
11 | "clean": "rm -rf node_modules && make clean && npm i",
12 | "publish-npm": "npm publish --access public --ignore-scripts --@OWNER:registry='https://registry.npmjs.org'",
13 | "publish-github": "npm publish --access public --ignore-scripts --@electron-labs:registry='https://npm.pkg.github.com'"
14 | },
15 | "keywords": [
16 | "sha512",
17 | "ethereum",
18 | "circuit",
19 | "circom",
20 | "zksnark"
21 | ],
22 | "repository": {
23 | "type": "git",
24 | "url": "git+https://github.com/Electron-Labs/sha512.git"
25 | },
26 | "author": "rahulghangas, BakerStreetPhantom",
27 | "license": "GPL-3.0",
28 | "devDependencies": {
29 | "circom_tester": "0.0.14",
30 | "circomlib": "^2.0.3",
31 | "mocha": "^10.0.0"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/test/circuits/sha512_test1024.circom:
--------------------------------------------------------------------------------
1 | pragma circom 2.0.0;
2 |
3 | include "../../circuits/sha512/sha512.circom";
4 | include "../../node_modules/circomlib/circuits/binsum.circom";
5 |
6 | component main = Sha512(1024);
7 |
--------------------------------------------------------------------------------
/test/sha512.js:
--------------------------------------------------------------------------------
1 | const chai = require("chai");
2 | const path = require("path");
3 | const crypto = require("crypto");
4 |
5 | const assert = chai.assert;
6 |
7 | const wasm_tester = require("circom_tester").wasm;
8 |
9 |
10 | function buffer2bitArray(b) {
11 | const res = [];
12 | for (let i = 0; i < b.length; i++) {
13 | for (let j = 0; j < 8; j++) {
14 | res.push((b[i] >> (7 - j) & 1));
15 | }
16 | }
17 | return res;
18 | }
19 |
20 | function bitArray2buffer(a) {
21 | const len = Math.floor((a.length - 1) / 8) + 1;
22 | const b = new Buffer.alloc(len);
23 |
24 | for (let i = 0; i < a.length; i++) {
25 | const p = Math.floor(i / 8);
26 | b[p] = b[p] | (Number(a[i]) << (7 - (i % 8)));
27 | }
28 | return b;
29 | }
30 |
31 |
32 | describe("SHA512 test", function () {
33 | this.timeout(100000);
34 |
35 | it("Should work bits to array and array to bits", async () => {
36 | const b = new Buffer.alloc(128);
37 | for (let i = 0; i < 128; i++) {
38 | b[i] = i + 1;
39 | }
40 | const a = buffer2bitArray(b);
41 | const b2 = bitArray2buffer(a);
42 |
43 | assert.equal(b.toString("hex"), b2.toString("hex"), true);
44 | });
45 |
46 | it("Should calculate a hash of 2 compressor", async () => {
47 | const cir = await wasm_tester(path.join(__dirname, "circuits", "sha512_test1024.circom"));
48 |
49 | const b = new Buffer.alloc(128);
50 | for (let i = 0; i < 128; i++) {
51 | b[i] = i + 1;
52 | }
53 |
54 | const hash = crypto.createHash("sha512")
55 | .update(b)
56 | .digest("hex");
57 |
58 | const arrIn = buffer2bitArray(b);
59 | const witness = await cir.calculateWitness({ "in": arrIn }, true);
60 |
61 | const arrOut = witness.slice(1, 513);
62 | const hash2 = bitArray2buffer(arrOut).toString("hex");
63 |
64 | assert.equal(hash, hash2);
65 |
66 | });
67 |
68 | });
69 |
--------------------------------------------------------------------------------