@cofhe/mock-contracts 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,264 +1,266 @@
1
1
  // This file is auto-generated by build-artifacts.ts
2
- import { type MocksArtifact } from './index';
2
+ import { type MockArtifact } from './types';
3
3
 
4
4
  export const MockZkVerifierArtifact = {
5
- "contractName": "MockZkVerifier",
6
- "fixedAddress": "0x0000000000000000000000000000000000000100",
7
- "abi": [
5
+ contractName: 'MockZkVerifier',
6
+ isFixed: true,
7
+ fixedAddress: '0x0000000000000000000000000000000000005001',
8
+ abi: [
8
9
  {
9
- "type": "function",
10
- "name": "exists",
11
- "inputs": [],
12
- "outputs": [
10
+ type: 'function',
11
+ name: 'exists',
12
+ inputs: [],
13
+ outputs: [
13
14
  {
14
- "name": "",
15
- "type": "bool",
16
- "internalType": "bool"
17
- }
15
+ name: '',
16
+ type: 'bool',
17
+ internalType: 'bool',
18
+ },
18
19
  ],
19
- "stateMutability": "pure"
20
+ stateMutability: 'pure',
20
21
  },
21
22
  {
22
- "type": "function",
23
- "name": "insertCtHash",
24
- "inputs": [
23
+ type: 'function',
24
+ name: 'insertCtHash',
25
+ inputs: [
25
26
  {
26
- "name": "ctHash",
27
- "type": "uint256",
28
- "internalType": "uint256"
27
+ name: 'ctHash',
28
+ type: 'uint256',
29
+ internalType: 'uint256',
29
30
  },
30
31
  {
31
- "name": "value",
32
- "type": "uint256",
33
- "internalType": "uint256"
34
- }
32
+ name: 'value',
33
+ type: 'uint256',
34
+ internalType: 'uint256',
35
+ },
35
36
  ],
36
- "outputs": [],
37
- "stateMutability": "nonpayable"
37
+ outputs: [],
38
+ stateMutability: 'nonpayable',
38
39
  },
39
40
  {
40
- "type": "function",
41
- "name": "insertPackedCtHashes",
42
- "inputs": [
41
+ type: 'function',
42
+ name: 'insertPackedCtHashes',
43
+ inputs: [
43
44
  {
44
- "name": "ctHashes",
45
- "type": "uint256[]",
46
- "internalType": "uint256[]"
45
+ name: 'ctHashes',
46
+ type: 'uint256[]',
47
+ internalType: 'uint256[]',
47
48
  },
48
49
  {
49
- "name": "values",
50
- "type": "uint256[]",
51
- "internalType": "uint256[]"
52
- }
50
+ name: 'values',
51
+ type: 'uint256[]',
52
+ internalType: 'uint256[]',
53
+ },
53
54
  ],
54
- "outputs": [],
55
- "stateMutability": "nonpayable"
55
+ outputs: [],
56
+ stateMutability: 'nonpayable',
56
57
  },
57
58
  {
58
- "type": "function",
59
- "name": "zkVerify",
60
- "inputs": [
59
+ type: 'function',
60
+ name: 'zkVerify',
61
+ inputs: [
61
62
  {
62
- "name": "value",
63
- "type": "uint256",
64
- "internalType": "uint256"
63
+ name: 'value',
64
+ type: 'uint256',
65
+ internalType: 'uint256',
65
66
  },
66
67
  {
67
- "name": "utype",
68
- "type": "uint8",
69
- "internalType": "uint8"
68
+ name: 'utype',
69
+ type: 'uint8',
70
+ internalType: 'uint8',
70
71
  },
71
72
  {
72
- "name": "user",
73
- "type": "address",
74
- "internalType": "address"
73
+ name: 'user',
74
+ type: 'address',
75
+ internalType: 'address',
75
76
  },
76
77
  {
77
- "name": "securityZone",
78
- "type": "uint8",
79
- "internalType": "uint8"
78
+ name: 'securityZone',
79
+ type: 'uint8',
80
+ internalType: 'uint8',
80
81
  },
81
82
  {
82
- "name": "",
83
- "type": "uint256",
84
- "internalType": "uint256"
85
- }
83
+ name: '',
84
+ type: 'uint256',
85
+ internalType: 'uint256',
86
+ },
86
87
  ],
87
- "outputs": [
88
+ outputs: [
88
89
  {
89
- "name": "",
90
- "type": "tuple",
91
- "internalType": "struct EncryptedInput",
92
- "components": [
90
+ name: '',
91
+ type: 'tuple',
92
+ internalType: 'struct EncryptedInput',
93
+ components: [
93
94
  {
94
- "name": "ctHash",
95
- "type": "uint256",
96
- "internalType": "uint256"
95
+ name: 'ctHash',
96
+ type: 'uint256',
97
+ internalType: 'uint256',
97
98
  },
98
99
  {
99
- "name": "securityZone",
100
- "type": "uint8",
101
- "internalType": "uint8"
100
+ name: 'securityZone',
101
+ type: 'uint8',
102
+ internalType: 'uint8',
102
103
  },
103
104
  {
104
- "name": "utype",
105
- "type": "uint8",
106
- "internalType": "uint8"
105
+ name: 'utype',
106
+ type: 'uint8',
107
+ internalType: 'uint8',
107
108
  },
108
109
  {
109
- "name": "signature",
110
- "type": "bytes",
111
- "internalType": "bytes"
112
- }
113
- ]
114
- }
110
+ name: 'signature',
111
+ type: 'bytes',
112
+ internalType: 'bytes',
113
+ },
114
+ ],
115
+ },
115
116
  ],
116
- "stateMutability": "nonpayable"
117
+ stateMutability: 'nonpayable',
117
118
  },
118
119
  {
119
- "type": "function",
120
- "name": "zkVerifyCalcCtHash",
121
- "inputs": [
120
+ type: 'function',
121
+ name: 'zkVerifyCalcCtHash',
122
+ inputs: [
122
123
  {
123
- "name": "value",
124
- "type": "uint256",
125
- "internalType": "uint256"
124
+ name: 'value',
125
+ type: 'uint256',
126
+ internalType: 'uint256',
126
127
  },
127
128
  {
128
- "name": "utype",
129
- "type": "uint8",
130
- "internalType": "uint8"
129
+ name: 'utype',
130
+ type: 'uint8',
131
+ internalType: 'uint8',
131
132
  },
132
133
  {
133
- "name": "user",
134
- "type": "address",
135
- "internalType": "address"
134
+ name: 'user',
135
+ type: 'address',
136
+ internalType: 'address',
136
137
  },
137
138
  {
138
- "name": "securityZone",
139
- "type": "uint8",
140
- "internalType": "uint8"
139
+ name: 'securityZone',
140
+ type: 'uint8',
141
+ internalType: 'uint8',
141
142
  },
142
143
  {
143
- "name": "",
144
- "type": "uint256",
145
- "internalType": "uint256"
146
- }
144
+ name: '',
145
+ type: 'uint256',
146
+ internalType: 'uint256',
147
+ },
147
148
  ],
148
- "outputs": [
149
+ outputs: [
149
150
  {
150
- "name": "ctHash",
151
- "type": "uint256",
152
- "internalType": "uint256"
153
- }
151
+ name: 'ctHash',
152
+ type: 'uint256',
153
+ internalType: 'uint256',
154
+ },
154
155
  ],
155
- "stateMutability": "view"
156
+ stateMutability: 'view',
156
157
  },
157
158
  {
158
- "type": "function",
159
- "name": "zkVerifyCalcCtHashesPacked",
160
- "inputs": [
159
+ type: 'function',
160
+ name: 'zkVerifyCalcCtHashesPacked',
161
+ inputs: [
161
162
  {
162
- "name": "values",
163
- "type": "uint256[]",
164
- "internalType": "uint256[]"
163
+ name: 'values',
164
+ type: 'uint256[]',
165
+ internalType: 'uint256[]',
165
166
  },
166
167
  {
167
- "name": "utypes",
168
- "type": "uint8[]",
169
- "internalType": "uint8[]"
168
+ name: 'utypes',
169
+ type: 'uint8[]',
170
+ internalType: 'uint8[]',
170
171
  },
171
172
  {
172
- "name": "user",
173
- "type": "address",
174
- "internalType": "address"
173
+ name: 'user',
174
+ type: 'address',
175
+ internalType: 'address',
175
176
  },
176
177
  {
177
- "name": "securityZone",
178
- "type": "uint8",
179
- "internalType": "uint8"
178
+ name: 'securityZone',
179
+ type: 'uint8',
180
+ internalType: 'uint8',
180
181
  },
181
182
  {
182
- "name": "chainId",
183
- "type": "uint256",
184
- "internalType": "uint256"
185
- }
183
+ name: 'chainId',
184
+ type: 'uint256',
185
+ internalType: 'uint256',
186
+ },
186
187
  ],
187
- "outputs": [
188
+ outputs: [
188
189
  {
189
- "name": "ctHashes",
190
- "type": "uint256[]",
191
- "internalType": "uint256[]"
192
- }
190
+ name: 'ctHashes',
191
+ type: 'uint256[]',
192
+ internalType: 'uint256[]',
193
+ },
193
194
  ],
194
- "stateMutability": "view"
195
+ stateMutability: 'view',
195
196
  },
196
197
  {
197
- "type": "function",
198
- "name": "zkVerifyPacked",
199
- "inputs": [
198
+ type: 'function',
199
+ name: 'zkVerifyPacked',
200
+ inputs: [
200
201
  {
201
- "name": "values",
202
- "type": "uint256[]",
203
- "internalType": "uint256[]"
202
+ name: 'values',
203
+ type: 'uint256[]',
204
+ internalType: 'uint256[]',
204
205
  },
205
206
  {
206
- "name": "utypes",
207
- "type": "uint8[]",
208
- "internalType": "uint8[]"
207
+ name: 'utypes',
208
+ type: 'uint8[]',
209
+ internalType: 'uint8[]',
209
210
  },
210
211
  {
211
- "name": "user",
212
- "type": "address",
213
- "internalType": "address"
212
+ name: 'user',
213
+ type: 'address',
214
+ internalType: 'address',
214
215
  },
215
216
  {
216
- "name": "securityZone",
217
- "type": "uint8",
218
- "internalType": "uint8"
217
+ name: 'securityZone',
218
+ type: 'uint8',
219
+ internalType: 'uint8',
219
220
  },
220
221
  {
221
- "name": "chainId",
222
- "type": "uint256",
223
- "internalType": "uint256"
224
- }
222
+ name: 'chainId',
223
+ type: 'uint256',
224
+ internalType: 'uint256',
225
+ },
225
226
  ],
226
- "outputs": [
227
+ outputs: [
227
228
  {
228
- "name": "inputs",
229
- "type": "tuple[]",
230
- "internalType": "struct EncryptedInput[]",
231
- "components": [
229
+ name: 'inputs',
230
+ type: 'tuple[]',
231
+ internalType: 'struct EncryptedInput[]',
232
+ components: [
232
233
  {
233
- "name": "ctHash",
234
- "type": "uint256",
235
- "internalType": "uint256"
234
+ name: 'ctHash',
235
+ type: 'uint256',
236
+ internalType: 'uint256',
236
237
  },
237
238
  {
238
- "name": "securityZone",
239
- "type": "uint8",
240
- "internalType": "uint8"
239
+ name: 'securityZone',
240
+ type: 'uint8',
241
+ internalType: 'uint8',
241
242
  },
242
243
  {
243
- "name": "utype",
244
- "type": "uint8",
245
- "internalType": "uint8"
244
+ name: 'utype',
245
+ type: 'uint8',
246
+ internalType: 'uint8',
246
247
  },
247
248
  {
248
- "name": "signature",
249
- "type": "bytes",
250
- "internalType": "bytes"
251
- }
252
- ]
253
- }
249
+ name: 'signature',
250
+ type: 'bytes',
251
+ internalType: 'bytes',
252
+ },
253
+ ],
254
+ },
254
255
  ],
255
- "stateMutability": "nonpayable"
256
+ stateMutability: 'nonpayable',
256
257
  },
257
258
  {
258
- "type": "error",
259
- "name": "InvalidInputs",
260
- "inputs": []
261
- }
259
+ type: 'error',
260
+ name: 'InvalidInputs',
261
+ inputs: [],
262
+ },
262
263
  ],
263
- "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061007b575f3560e01c8063772de59611610059578063772de596146100e9578063a2616ba914610119578063a9f046cd14610149578063d2a0693e146101655761007b565b8063267c4ae41461007f5780635946761f1461009d57806366dfcfc6146100cd575b5f5ffd5b610087610195565b6040516100949190610750565b60405180910390f35b6100b760048036038101906100b29190610a4d565b61019d565b6040516100c49190610c95565b60405180910390f35b6100e760048036038101906100e29190610cb5565b6102b5565b005b61010360048036038101906100fe9190610a4d565b61034d565b6040516101109190610d9b565b60405180910390f35b610133600480360381019061012e9190610dbb565b61045b565b6040516101409190610e92565b60405180910390f35b610163600480360381019061015e9190610eb2565b6104bd565b005b61017f600480360381019061017a9190610dbb565b61051b565b60405161018c9190610f37565b60405180910390f35b5f6001905090565b606085518551146101da576040517ff34cfab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff8111156101f5576101f461078e565b5b60405190808252806020026020018201604052801561022e57816020015b61021b61070b565b8152602001906001900390816102135790505b5090505f5f90505b85518110156102ab5761028087828151811061025557610254610f50565b5b60200260200101518783815181106102705761026f610f50565b5b602002602001015187878761045b565b82828151811061029357610292610f50565b5b60200260200101819052508080600101915050610236565b5095945050505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166315a486fe83836040518363ffffffff1660e01b8152600401610304929190610f7d565b5f604051808303815f87803b15801561031b575f5ffd5b505af115801561032d573d5f5f3e3d5ffd5b5050505060015f5f8282546103429190610fd1565b925050819055505050565b6060855185511461038a576040517ff34cfab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff8111156103a5576103a461078e565b5b6040519080825280602002602001820160405280156103d35781602001602082028036833780820191505090505b5090505f5f90505b8551811015610451576104258782815181106103fa576103f9610f50565b5b602002602001015187838151811061041557610414610f50565b5b602002602001015187878761051b565b82828151811061043857610437610f50565b5b60200260200101818152505080806001019150506103db565b5095945050505050565b61046361070b565b5f6104708587868a610533565b905061047c81886102b5565b60405180608001604052808281526020018560ff1681526020018760ff16815260200160405180602001604052805f81525081525091505095945050505050565b5f5f90505b8251811015610516576105098382815181106104e1576104e0610f50565b5b60200260200101518383815181106104fc576104fb610f50565b5b60200260200101516102b5565b80806001019150506104c2565b505050565b5f61052884868589610533565b905095945050505050565b5f5f61053e83610611565b60405160200161054e919061103e565b60405160208183030381529060405290508061057f8773ffffffffffffffffffffffffffffffffffffffff16610611565b604051602001610590929190611054565b6040516020818303038152906040529050805f546040516020016105b49190611097565b604051602081830303815290604052805190602001206040516020016105db9291906110da565b60405160208183030381529060405290505f81805190602001209050610605815f1c86885f610673565b92505050949350505050565b60605f602067ffffffffffffffff81111561062f5761062e61078e565b5b6040519080825280601f01601f1916602001820160405280156106615781602001600182028036833780820191505090505b50905082602082015280915050919050565b5f61ffff80167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6106a49190611101565b851690505f8460ff1660086106b985876106cc565b901b179050808217915050949350505050565b5f600160ff8016901c60ff168260ff1616836106e8575f610702565b600160ff8016901c60ff1660ff80166107019190611101565b5b17905092915050565b60405180608001604052805f81526020015f60ff1681526020015f60ff168152602001606081525090565b5f8115159050919050565b61074a81610736565b82525050565b5f6020820190506107635f830184610741565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107c48261077e565b810181811067ffffffffffffffff821117156107e3576107e261078e565b5b80604052505050565b5f6107f5610769565b905061080182826107bb565b919050565b5f67ffffffffffffffff8211156108205761081f61078e565b5b602082029050602081019050919050565b5f5ffd5b5f819050919050565b61084781610835565b8114610851575f5ffd5b50565b5f813590506108628161083e565b92915050565b5f61087a61087584610806565b6107ec565b9050808382526020820190506020840283018581111561089d5761089c610831565b5b835b818110156108c657806108b28882610854565b84526020840193505060208101905061089f565b5050509392505050565b5f82601f8301126108e4576108e361077a565b5b81356108f4848260208601610868565b91505092915050565b5f67ffffffffffffffff8211156109175761091661078e565b5b602082029050602081019050919050565b5f60ff82169050919050565b61093d81610928565b8114610947575f5ffd5b50565b5f8135905061095881610934565b92915050565b5f61097061096b846108fd565b6107ec565b9050808382526020820190506020840283018581111561099357610992610831565b5b835b818110156109bc57806109a8888261094a565b845260208401935050602081019050610995565b5050509392505050565b5f82601f8301126109da576109d961077a565b5b81356109ea84826020860161095e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a1c826109f3565b9050919050565b610a2c81610a12565b8114610a36575f5ffd5b50565b5f81359050610a4781610a23565b92915050565b5f5f5f5f5f60a08688031215610a6657610a65610772565b5b5f86013567ffffffffffffffff811115610a8357610a82610776565b5b610a8f888289016108d0565b955050602086013567ffffffffffffffff811115610ab057610aaf610776565b5b610abc888289016109c6565b9450506040610acd88828901610a39565b9350506060610ade8882890161094a565b9250506080610aef88828901610854565b9150509295509295909350565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610b2e81610835565b82525050565b610b3d81610928565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610b7582610b43565b610b7f8185610b4d565b9350610b8f818560208601610b5d565b610b988161077e565b840191505092915050565b5f608083015f830151610bb85f860182610b25565b506020830151610bcb6020860182610b34565b506040830151610bde6040860182610b34565b5060608301518482036060860152610bf68282610b6b565b9150508091505092915050565b5f610c0e8383610ba3565b905092915050565b5f602082019050919050565b5f610c2c82610afc565b610c368185610b06565b935083602082028501610c4885610b16565b805f5b85811015610c835784840389528151610c648582610c03565b9450610c6f83610c16565b925060208a01995050600181019050610c4b565b50829750879550505050505092915050565b5f6020820190508181035f830152610cad8184610c22565b905092915050565b5f5f60408385031215610ccb57610cca610772565b5b5f610cd885828601610854565b9250506020610ce985828601610854565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f610d278383610b25565b60208301905092915050565b5f602082019050919050565b5f610d4982610cf3565b610d538185610cfd565b9350610d5e83610d0d565b805f5b83811015610d8e578151610d758882610d1c565b9750610d8083610d33565b925050600181019050610d61565b5085935050505092915050565b5f6020820190508181035f830152610db38184610d3f565b905092915050565b5f5f5f5f5f60a08688031215610dd457610dd3610772565b5b5f610de188828901610854565b9550506020610df28882890161094a565b9450506040610e0388828901610a39565b9350506060610e148882890161094a565b9250506080610e2588828901610854565b9150509295509295909350565b5f608083015f830151610e475f860182610b25565b506020830151610e5a6020860182610b34565b506040830151610e6d6040860182610b34565b5060608301518482036060860152610e858282610b6b565b9150508091505092915050565b5f6020820190508181035f830152610eaa8184610e32565b905092915050565b5f5f60408385031215610ec857610ec7610772565b5b5f83013567ffffffffffffffff811115610ee557610ee4610776565b5b610ef1858286016108d0565b925050602083013567ffffffffffffffff811115610f1257610f11610776565b5b610f1e858286016108d0565b9150509250929050565b610f3181610835565b82525050565b5f602082019050610f4a5f830184610f28565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f604082019050610f905f830185610f28565b610f9d6020830184610f28565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fdb82610835565b9150610fe683610835565b9250828201905080821115610ffe57610ffd610fa4565b5b92915050565b5f81905092915050565b5f61101882610b43565b6110228185611004565b9350611032818560208601610b5d565b80840191505092915050565b5f611049828461100e565b915081905092915050565b5f61105f828561100e565b915061106b828461100e565b91508190509392505050565b5f819050919050565b61109161108c82610835565b611077565b82525050565b5f6110a28284611080565b60208201915081905092915050565b5f819050919050565b5f819050919050565b6110d46110cf826110b1565b6110ba565b82525050565b5f6110e5828561100e565b91506110f182846110c3565b6020820191508190509392505050565b5f61110b82610835565b915061111683610835565b925082820390508181111561112e5761112d610fa4565b5b9291505056fea26469706673582212209a9372bb7df7f6afcb2bce5c7034e71dcd36cd9afbe95c69abed265154e8332564736f6c634300081e0033"
264
- } satisfies MocksArtifact;
264
+ deployedBytecode:
265
+ '0x608060405234801561000f575f5ffd5b506004361061007b575f3560e01c8063772de59611610059578063772de596146100e9578063a2616ba914610119578063a9f046cd14610149578063d2a0693e146101655761007b565b8063267c4ae41461007f5780635946761f1461009d57806366dfcfc6146100cd575b5f5ffd5b610087610195565b6040516100949190610750565b60405180910390f35b6100b760048036038101906100b29190610a4d565b61019d565b6040516100c49190610c95565b60405180910390f35b6100e760048036038101906100e29190610cb5565b6102b5565b005b61010360048036038101906100fe9190610a4d565b61034d565b6040516101109190610d9b565b60405180910390f35b610133600480360381019061012e9190610dbb565b61045b565b6040516101409190610e92565b60405180910390f35b610163600480360381019061015e9190610eb2565b6104bd565b005b61017f600480360381019061017a9190610dbb565b61051b565b60405161018c9190610f37565b60405180910390f35b5f6001905090565b606085518551146101da576040517ff34cfab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff8111156101f5576101f461078e565b5b60405190808252806020026020018201604052801561022e57816020015b61021b61070b565b8152602001906001900390816102135790505b5090505f5f90505b85518110156102ab5761028087828151811061025557610254610f50565b5b60200260200101518783815181106102705761026f610f50565b5b602002602001015187878761045b565b82828151811061029357610292610f50565b5b60200260200101819052508080600101915050610236565b5095945050505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166315a486fe83836040518363ffffffff1660e01b8152600401610304929190610f7d565b5f604051808303815f87803b15801561031b575f5ffd5b505af115801561032d573d5f5f3e3d5ffd5b5050505060015f5f8282546103429190610fd1565b925050819055505050565b6060855185511461038a576040517ff34cfab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff8111156103a5576103a461078e565b5b6040519080825280602002602001820160405280156103d35781602001602082028036833780820191505090505b5090505f5f90505b8551811015610451576104258782815181106103fa576103f9610f50565b5b602002602001015187838151811061041557610414610f50565b5b602002602001015187878761051b565b82828151811061043857610437610f50565b5b60200260200101818152505080806001019150506103db565b5095945050505050565b61046361070b565b5f6104708587868a610533565b905061047c81886102b5565b60405180608001604052808281526020018560ff1681526020018760ff16815260200160405180602001604052805f81525081525091505095945050505050565b5f5f90505b8251811015610516576105098382815181106104e1576104e0610f50565b5b60200260200101518383815181106104fc576104fb610f50565b5b60200260200101516102b5565b80806001019150506104c2565b505050565b5f61052884868589610533565b905095945050505050565b5f5f61053e83610611565b60405160200161054e919061103e565b60405160208183030381529060405290508061057f8773ffffffffffffffffffffffffffffffffffffffff16610611565b604051602001610590929190611054565b6040516020818303038152906040529050805f546040516020016105b49190611097565b604051602081830303815290604052805190602001206040516020016105db9291906110da565b60405160208183030381529060405290505f81805190602001209050610605815f1c86885f610673565b92505050949350505050565b60605f602067ffffffffffffffff81111561062f5761062e61078e565b5b6040519080825280601f01601f1916602001820160405280156106615781602001600182028036833780820191505090505b50905082602082015280915050919050565b5f61ffff80167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6106a49190611101565b851690505f8460ff1660086106b985876106cc565b901b179050808217915050949350505050565b5f600160ff8016901c60ff168260ff1616836106e8575f610702565b600160ff8016901c60ff1660ff80166107019190611101565b5b17905092915050565b60405180608001604052805f81526020015f60ff1681526020015f60ff168152602001606081525090565b5f8115159050919050565b61074a81610736565b82525050565b5f6020820190506107635f830184610741565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107c48261077e565b810181811067ffffffffffffffff821117156107e3576107e261078e565b5b80604052505050565b5f6107f5610769565b905061080182826107bb565b919050565b5f67ffffffffffffffff8211156108205761081f61078e565b5b602082029050602081019050919050565b5f5ffd5b5f819050919050565b61084781610835565b8114610851575f5ffd5b50565b5f813590506108628161083e565b92915050565b5f61087a61087584610806565b6107ec565b9050808382526020820190506020840283018581111561089d5761089c610831565b5b835b818110156108c657806108b28882610854565b84526020840193505060208101905061089f565b5050509392505050565b5f82601f8301126108e4576108e361077a565b5b81356108f4848260208601610868565b91505092915050565b5f67ffffffffffffffff8211156109175761091661078e565b5b602082029050602081019050919050565b5f60ff82169050919050565b61093d81610928565b8114610947575f5ffd5b50565b5f8135905061095881610934565b92915050565b5f61097061096b846108fd565b6107ec565b9050808382526020820190506020840283018581111561099357610992610831565b5b835b818110156109bc57806109a8888261094a565b845260208401935050602081019050610995565b5050509392505050565b5f82601f8301126109da576109d961077a565b5b81356109ea84826020860161095e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a1c826109f3565b9050919050565b610a2c81610a12565b8114610a36575f5ffd5b50565b5f81359050610a4781610a23565b92915050565b5f5f5f5f5f60a08688031215610a6657610a65610772565b5b5f86013567ffffffffffffffff811115610a8357610a82610776565b5b610a8f888289016108d0565b955050602086013567ffffffffffffffff811115610ab057610aaf610776565b5b610abc888289016109c6565b9450506040610acd88828901610a39565b9350506060610ade8882890161094a565b9250506080610aef88828901610854565b9150509295509295909350565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610b2e81610835565b82525050565b610b3d81610928565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610b7582610b43565b610b7f8185610b4d565b9350610b8f818560208601610b5d565b610b988161077e565b840191505092915050565b5f608083015f830151610bb85f860182610b25565b506020830151610bcb6020860182610b34565b506040830151610bde6040860182610b34565b5060608301518482036060860152610bf68282610b6b565b9150508091505092915050565b5f610c0e8383610ba3565b905092915050565b5f602082019050919050565b5f610c2c82610afc565b610c368185610b06565b935083602082028501610c4885610b16565b805f5b85811015610c835784840389528151610c648582610c03565b9450610c6f83610c16565b925060208a01995050600181019050610c4b565b50829750879550505050505092915050565b5f6020820190508181035f830152610cad8184610c22565b905092915050565b5f5f60408385031215610ccb57610cca610772565b5b5f610cd885828601610854565b9250506020610ce985828601610854565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f610d278383610b25565b60208301905092915050565b5f602082019050919050565b5f610d4982610cf3565b610d538185610cfd565b9350610d5e83610d0d565b805f5b83811015610d8e578151610d758882610d1c565b9750610d8083610d33565b925050600181019050610d61565b5085935050505092915050565b5f6020820190508181035f830152610db38184610d3f565b905092915050565b5f5f5f5f5f60a08688031215610dd457610dd3610772565b5b5f610de188828901610854565b9550506020610df28882890161094a565b9450506040610e0388828901610a39565b9350506060610e148882890161094a565b9250506080610e2588828901610854565b9150509295509295909350565b5f608083015f830151610e475f860182610b25565b506020830151610e5a6020860182610b34565b506040830151610e6d6040860182610b34565b5060608301518482036060860152610e858282610b6b565b9150508091505092915050565b5f6020820190508181035f830152610eaa8184610e32565b905092915050565b5f5f60408385031215610ec857610ec7610772565b5b5f83013567ffffffffffffffff811115610ee557610ee4610776565b5b610ef1858286016108d0565b925050602083013567ffffffffffffffff811115610f1257610f11610776565b5b610f1e858286016108d0565b9150509250929050565b610f3181610835565b82525050565b5f602082019050610f4a5f830184610f28565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f604082019050610f905f830185610f28565b610f9d6020830184610f28565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fdb82610835565b9150610fe683610835565b9250828201905080821115610ffe57610ffd610fa4565b5b92915050565b5f81905092915050565b5f61101882610b43565b6110228185611004565b9350611032818560208601610b5d565b80840191505092915050565b5f611049828461100e565b915081905092915050565b5f61105f828561100e565b915061106b828461100e565b91508190509392505050565b5f819050919050565b61109161108c82610835565b611077565b82525050565b5f6110a28284611080565b60208201915081905092915050565b5f819050919050565b5f819050919050565b6110d46110cf826110b1565b6110ba565b82525050565b5f6110e5828561100e565b91506110f182846110c3565b6020820191508190509392505050565b5f61110b82610835565b915061111683610835565b925082820390508181111561112e5761112d610fa4565b5b9291505056fea26469706673582212204ba923043ce29591b7adc03799bc10ed8ad01de2292597489dc1f8fb79510c4864736f6c63430008210033',
266
+ } satisfies MockArtifact;