@coti-io/coti-contracts 1.0.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.sol +260 -0
- package/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.sol +264 -0
- package/contracts/mocks/utils/mpc/Bitwise128BitTestsContract.sol +91 -0
- package/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.sol +91 -0
- package/contracts/mocks/utils/mpc/Comparison128BitTestsContract.sol +158 -0
- package/contracts/mocks/utils/mpc/Comparison256BitTestsContract.sol +158 -0
- package/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.sol +185 -0
- package/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.sol +190 -0
- package/contracts/utils/mpc/MpcCore.sol +2804 -180
- package/hardhat.config.ts +6 -2
- package/package.json +2 -2
- package/test/token/PrivateERC20/PrivateERC20.test.ts +3 -3
- package/test/utils/mpc/Unsigned128BitIntegers.test.ts +945 -0
- package/test/utils/mpc/Unsigned256BitIntegers.test.ts +1124 -0
- package/test/utils/mpc/helpers.ts +77 -0
- package/typechain-types/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.ts +341 -0
- package/typechain-types/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.ts +347 -0
- package/typechain-types/contracts/mocks/utils/mpc/Bitwise128BitTestsContract.ts +186 -0
- package/typechain-types/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.ts +186 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison128BitTestsContract.ts +260 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison256BitTestsContract.ts +260 -0
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +302 -0
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +322 -0
- package/typechain-types/contracts/mocks/utils/mpc/index.ts +8 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +349 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +364 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +182 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +182 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +255 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +255 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +332 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +380 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +8 -0
- package/typechain-types/hardhat.d.ts +144 -0
- package/typechain-types/index.ts +16 -0
- package/contracts/package.json +0 -11
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import {
|
|
5
|
+
Contract,
|
|
6
|
+
ContractFactory,
|
|
7
|
+
ContractTransactionResponse,
|
|
8
|
+
Interface,
|
|
9
|
+
} from "ethers";
|
|
10
|
+
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
|
|
11
|
+
import type { NonPayableOverrides } from "../../../../../common";
|
|
12
|
+
import type {
|
|
13
|
+
Arithmetic256BitTestsContract,
|
|
14
|
+
Arithmetic256BitTestsContractInterface,
|
|
15
|
+
} from "../../../../../contracts/mocks/utils/mpc/Arithmetic256BitTestsContract";
|
|
16
|
+
|
|
17
|
+
const _abi = [
|
|
18
|
+
{
|
|
19
|
+
inputs: [
|
|
20
|
+
{
|
|
21
|
+
internalType: "uint256[]",
|
|
22
|
+
name: "a",
|
|
23
|
+
type: "uint256[]",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
internalType: "uint256[]",
|
|
27
|
+
name: "b",
|
|
28
|
+
type: "uint256[]",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
name: "addTest",
|
|
32
|
+
outputs: [],
|
|
33
|
+
stateMutability: "nonpayable",
|
|
34
|
+
type: "function",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
inputs: [
|
|
38
|
+
{
|
|
39
|
+
internalType: "uint256",
|
|
40
|
+
name: "a",
|
|
41
|
+
type: "uint256",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
internalType: "uint256",
|
|
45
|
+
name: "b",
|
|
46
|
+
type: "uint256",
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
name: "checkedAddTest",
|
|
50
|
+
outputs: [],
|
|
51
|
+
stateMutability: "nonpayable",
|
|
52
|
+
type: "function",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
inputs: [
|
|
56
|
+
{
|
|
57
|
+
internalType: "uint256[]",
|
|
58
|
+
name: "a",
|
|
59
|
+
type: "uint256[]",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
internalType: "uint256[]",
|
|
63
|
+
name: "b",
|
|
64
|
+
type: "uint256[]",
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
name: "checkedAddWithOverflowBitTest",
|
|
68
|
+
outputs: [],
|
|
69
|
+
stateMutability: "nonpayable",
|
|
70
|
+
type: "function",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
inputs: [
|
|
74
|
+
{
|
|
75
|
+
internalType: "uint256",
|
|
76
|
+
name: "a",
|
|
77
|
+
type: "uint256",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
internalType: "uint256",
|
|
81
|
+
name: "b",
|
|
82
|
+
type: "uint256",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
internalType: "enum Arithmetic256BitTestsContract.PrivateInput",
|
|
86
|
+
name: "privateInput",
|
|
87
|
+
type: "uint8",
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
name: "checkedMulTest",
|
|
91
|
+
outputs: [],
|
|
92
|
+
stateMutability: "nonpayable",
|
|
93
|
+
type: "function",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
inputs: [
|
|
97
|
+
{
|
|
98
|
+
internalType: "uint256[]",
|
|
99
|
+
name: "a",
|
|
100
|
+
type: "uint256[]",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
internalType: "uint256[]",
|
|
104
|
+
name: "b",
|
|
105
|
+
type: "uint256[]",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
internalType: "enum Arithmetic256BitTestsContract.PrivateInput",
|
|
109
|
+
name: "privateInput",
|
|
110
|
+
type: "uint8",
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
name: "checkedMulWithOverflowBitTest",
|
|
114
|
+
outputs: [],
|
|
115
|
+
stateMutability: "nonpayable",
|
|
116
|
+
type: "function",
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
inputs: [
|
|
120
|
+
{
|
|
121
|
+
internalType: "uint256",
|
|
122
|
+
name: "a",
|
|
123
|
+
type: "uint256",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
internalType: "uint256",
|
|
127
|
+
name: "b",
|
|
128
|
+
type: "uint256",
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
name: "checkedSubTest",
|
|
132
|
+
outputs: [],
|
|
133
|
+
stateMutability: "nonpayable",
|
|
134
|
+
type: "function",
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
inputs: [
|
|
138
|
+
{
|
|
139
|
+
internalType: "uint256[]",
|
|
140
|
+
name: "a",
|
|
141
|
+
type: "uint256[]",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
internalType: "uint256[]",
|
|
145
|
+
name: "b",
|
|
146
|
+
type: "uint256[]",
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
name: "checkedSubWithOverflowBitTest",
|
|
150
|
+
outputs: [],
|
|
151
|
+
stateMutability: "nonpayable",
|
|
152
|
+
type: "function",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
inputs: [
|
|
156
|
+
{
|
|
157
|
+
internalType: "uint256[]",
|
|
158
|
+
name: "a",
|
|
159
|
+
type: "uint256[]",
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
internalType: "uint256[]",
|
|
163
|
+
name: "b",
|
|
164
|
+
type: "uint256[]",
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
internalType: "enum Arithmetic256BitTestsContract.PrivateInput",
|
|
168
|
+
name: "privateInput",
|
|
169
|
+
type: "uint8",
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
name: "mulTest",
|
|
173
|
+
outputs: [],
|
|
174
|
+
stateMutability: "nonpayable",
|
|
175
|
+
type: "function",
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
inputs: [
|
|
179
|
+
{
|
|
180
|
+
internalType: "uint256",
|
|
181
|
+
name: "",
|
|
182
|
+
type: "uint256",
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
name: "numbers2",
|
|
186
|
+
outputs: [
|
|
187
|
+
{
|
|
188
|
+
internalType: "uint256",
|
|
189
|
+
name: "",
|
|
190
|
+
type: "uint256",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
stateMutability: "view",
|
|
194
|
+
type: "function",
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
inputs: [
|
|
198
|
+
{
|
|
199
|
+
internalType: "uint256",
|
|
200
|
+
name: "",
|
|
201
|
+
type: "uint256",
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
name: "numbersLHS2",
|
|
205
|
+
outputs: [
|
|
206
|
+
{
|
|
207
|
+
internalType: "uint256",
|
|
208
|
+
name: "",
|
|
209
|
+
type: "uint256",
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
stateMutability: "view",
|
|
213
|
+
type: "function",
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
inputs: [
|
|
217
|
+
{
|
|
218
|
+
internalType: "uint256",
|
|
219
|
+
name: "",
|
|
220
|
+
type: "uint256",
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
name: "numbersRHS2",
|
|
224
|
+
outputs: [
|
|
225
|
+
{
|
|
226
|
+
internalType: "uint256",
|
|
227
|
+
name: "",
|
|
228
|
+
type: "uint256",
|
|
229
|
+
},
|
|
230
|
+
],
|
|
231
|
+
stateMutability: "view",
|
|
232
|
+
type: "function",
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
inputs: [
|
|
236
|
+
{
|
|
237
|
+
internalType: "uint256",
|
|
238
|
+
name: "",
|
|
239
|
+
type: "uint256",
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
name: "overflows",
|
|
243
|
+
outputs: [
|
|
244
|
+
{
|
|
245
|
+
internalType: "bool",
|
|
246
|
+
name: "",
|
|
247
|
+
type: "bool",
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
stateMutability: "view",
|
|
251
|
+
type: "function",
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
inputs: [
|
|
255
|
+
{
|
|
256
|
+
internalType: "uint256",
|
|
257
|
+
name: "",
|
|
258
|
+
type: "uint256",
|
|
259
|
+
},
|
|
260
|
+
],
|
|
261
|
+
name: "overflowsLHS",
|
|
262
|
+
outputs: [
|
|
263
|
+
{
|
|
264
|
+
internalType: "bool",
|
|
265
|
+
name: "",
|
|
266
|
+
type: "bool",
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
stateMutability: "view",
|
|
270
|
+
type: "function",
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
inputs: [
|
|
274
|
+
{
|
|
275
|
+
internalType: "uint256",
|
|
276
|
+
name: "",
|
|
277
|
+
type: "uint256",
|
|
278
|
+
},
|
|
279
|
+
],
|
|
280
|
+
name: "overflowsRHS",
|
|
281
|
+
outputs: [
|
|
282
|
+
{
|
|
283
|
+
internalType: "bool",
|
|
284
|
+
name: "",
|
|
285
|
+
type: "bool",
|
|
286
|
+
},
|
|
287
|
+
],
|
|
288
|
+
stateMutability: "view",
|
|
289
|
+
type: "function",
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
inputs: [
|
|
293
|
+
{
|
|
294
|
+
internalType: "uint256[]",
|
|
295
|
+
name: "a",
|
|
296
|
+
type: "uint256[]",
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
internalType: "uint256[]",
|
|
300
|
+
name: "b",
|
|
301
|
+
type: "uint256[]",
|
|
302
|
+
},
|
|
303
|
+
],
|
|
304
|
+
name: "subTest",
|
|
305
|
+
outputs: [],
|
|
306
|
+
stateMutability: "nonpayable",
|
|
307
|
+
type: "function",
|
|
308
|
+
},
|
|
309
|
+
] as const;
|
|
310
|
+
|
|
311
|
+
const _bytecode =
|
|
312
|
+
"0x608060405234801561001057600080fd5b50614797806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806383ee8b0811610097578063c7b20e1211610066578063c7b20e12146101f0578063cadc466414610203578063d9bf2dff14610216578063e7bd89a81461022957600080fd5b806383ee8b08146101a4578063859cc7d6146101b7578063ab2eae7e146101ca578063b24a0743146101dd57600080fd5b80633d35258b116100d35780633d35258b1461014857806346125d481461016b57806350cdee371461017e5780635a5a1a771461019157600080fd5b806320016fbc146100fa57806322f876121461010f57806333e9b8b314610122575b600080fd5b61010d61010836600461448a565b61023c565b005b61010d61011d3660046144f1565b61030a565b61013561013036600461455d565b6105d8565b6040519081526020015b60405180910390f35b61015b61015636600461455d565b6105f9565b604051901515815260200161013f565b61010d61017936600461458a565b61062d565b61010d61018c3660046144f1565b6107dd565b61010d61019f36600461458a565b610a8d565b61010d6101b236600461460b565b610c82565b6101356101c536600461455d565b610d65565b61015b6101d836600461455d565b610d75565b61010d6101eb36600461448a565b610d85565b61015b6101fe36600461455d565b610e1c565b61010d6102113660046144f1565b610e2c565b61013561022436600461455d565b610fba565b61010d6102373660046144f1565b610fca565b6102466001611158565b6000610251836111b7565b9050600061025e836111b7565b905061027261026d83836111ef565b611277565b600360008154811061028657610286614640565b60009182526020909120015561029f61026d85836112ce565b60036000815481106102b3576102b3614640565b9060005260206000200154146102cb576102cb61466f565b6102d861026d838561134d565b60036000815481106102ec576102ec614640565b9060005260206000200154146103045761030461466f565b50505050565b828114610378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d61746368000000000000000000000060448201526064015b60405180910390fd5b6103818361139c565b61038a8361140b565b6103938361147d565b61039c83611158565b6103a5836114f0565b6103ae8361154b565b60008060006103bb6143eb565b6103c36143eb565b6103cb6143eb565b60005b898110156105cb5760006103f98c8c848181106103ed576103ed614640565b905060200201356111b7565b905060006104128b8b858181106103ed576103ed614640565b905061041e82826115a6565b90995095506104458d8d8581811061043857610438614640565b9050602002013582611652565b909850945061046c828c8c8681811061046057610460614640565b905060200201356116f8565b909750935061047a89611759565b6000848154811061048d5761048d614640565b90600052602060002090602091828204019190066101000a81548160ff0219169083151502179055506104bf88611759565b600184815481106104d2576104d2614640565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061050487611759565b6002848154811061051757610517614640565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061054986611277565b6003848154811061055c5761055c614640565b60009182526020909120015561057185611277565b6004848154811061058457610584614640565b60009182526020909120015561059984611277565b600584815481106105ac576105ac614640565b600091825260209091200155506105c49050816146cd565b90506103ce565b5050505050505050505050565b600581815481106105e857600080fd5b600091825260209091200154905081565b6002818154811061060957600080fd5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b838214610696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b61069f84611158565b60005b848110156107d55760006106c18787848181106103ed576103ed614640565b905060006106da8686858181106103ed576103ed614640565b905060008460028111156106f0576106f0614705565b036107265761070261026d83836117ea565b6003848154811061071557610715614640565b6000918252602090912001556107c2565b600184600281111561073a5761073a614705565b036107645761070261026d8388888781811061075857610758614640565b90506020020135611865565b600284600281111561077857610778614705565b036107c2576107a261026d89898681811061079557610795614640565b90506020020135836118dc565b600384815481106107b5576107b5614640565b6000918252602090912001555b5050806107ce906146cd565b90506106a2565b505050505050565b828114610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b61084f8361139c565b6108588361140b565b6108618361147d565b61086a83611158565b610873836114f0565b61087c8361154b565b60008060006108896143eb565b6108916143eb565b6108996143eb565b60005b898110156105cb5760006108bb8c8c848181106103ed576103ed614640565b905060006108d48b8b858181106103ed576103ed614640565b90506108e08282611931565b90995095506109078d8d858181106108fa576108fa614640565b90506020020135826119a8565b909850945061092e828c8c8681811061092257610922614640565b90506020020135611a1d565b909750935061093c89611759565b6000848154811061094f5761094f614640565b90600052602060002090602091828204019190066101000a81548160ff02191690831515021790555061098188611759565b6001848154811061099457610994614640565b90600052602060002090602091828204019190066101000a81548160ff0219169083151502179055506109c687611759565b600284815481106109d9576109d9614640565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550610a0b86611277565b60038481548110610a1e57610a1e614640565b600091825260209091200155610a3385611277565b60048481548110610a4657610a46614640565b600091825260209091200155610a5b84611277565b60058481548110610a6e57610a6e614640565b60009182526020909120015550610a869050816146cd565b905061089c565b838214610af6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b610aff8461139c565b610b0884611158565b6000610b126143eb565b60005b86811015610c78576000610b348989848181106103ed576103ed614640565b90506000610b4d8888858181106103ed576103ed614640565b90506000866002811115610b6357610b63614705565b03610b7c57610b728282611a7f565b9095509350610bf8565b6001866002811115610b9057610b90614705565b03610bb757610b728a8a85818110610baa57610baa614640565b9050602002013582611b6f565b6002866002811115610bcb57610bcb614705565b03610bf857610bf282898986818110610be657610be6614640565b90506020020135611cd0565b90955093505b610c0185611759565b60008481548110610c1457610c14614640565b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550610c4684611277565b60038481548110610c5957610c59614640565b60009182526020909120015550610c719050816146cd565b9050610b15565b5050505050505050565b610c8c6001611158565b6000610c97846111b7565b90506000610ca4846111b7565b90506000836002811115610cba57610cba614705565b03610cf157610ccc61026d8383611ddf565b6003600081548110610ce057610ce0614640565b600091825260209091200155610d5e565b6001836002811115610d0557610d05614705565b03610d1757610ccc61026d8386611ea1565b6002836002811115610d2b57610d2b614705565b03610d5e57610d3d61026d8683611f4b565b6003600081548110610d5157610d51614640565b6000918252602090912001555b5050505050565b600381815481106105e857600080fd5b6001818154811061060957600080fd5b610d8f6001611158565b6000610d9a836111b7565b90506000610da7836111b7565b9050610db661026d8383611fb8565b6003600081548110610dca57610dca614640565b600091825260209091200155610de361026d8583612015565b6003600081548110610df757610df7614640565b906000526020600020015414610e0f57610e0f61466f565b6102d861026d8385612075565b6000818154811061060957600080fd5b828114610e95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b610e9e83611158565b60005b83811015610d5e576000610ec08686848181106103ed576103ed614640565b90506000610ed98585858181106103ed576103ed614640565b9050610ee861026d83836120c3565b60038481548110610efb57610efb614640565b600091825260209091200155610f2c61026d888886818110610f1f57610f1f614640565b9050602002013583612120565b60038481548110610f3f57610f3f614640565b906000526020600020015414610f5757610f5761466f565b610f7c61026d83878787818110610f7057610f70614640565b90506020020135612180565b60038481548110610f8f57610f8f614640565b906000526020600020015414610fa757610fa761466f565b505080610fb3906146cd565b9050610ea1565b600481815481106105e857600080fd5b828114611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d617463680000000000000000000000604482015260640161036f565b61103c83611158565b60005b83811015610d5e57600061105e8686848181106103ed576103ed614640565b905060006110778585858181106103ed576103ed614640565b905061108661026d83836121ce565b6003848154811061109957611099614640565b6000918252602090912001556110ca61026d8888868181106110bd576110bd614640565b9050602002013583612230565b600384815481106110dd576110dd614640565b9060005260206000200154146110f5576110f561466f565b61111a61026d8387878781811061110e5761110e614640565b90506020020135612294565b6003848154811061112d5761112d614640565b9060005260206000200154146111455761114561466f565b505080611151906146cd565b905061103f565b6111646003600061442f565b60005b818110156111b3576003805460018101825560009182527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0155806111ab816146cd565b915050611167565b5050565b6111bf6143eb565b6111c76143eb565b82608081901c6111d6816122e3565b83526111e1826122e3565b602084015250909392505050565b6111f76143eb565b6111ff6143eb565b6112118460200151846020015161232f565b8160200181905250600061122d856020015185602001516123af565b8551855191925061123d916123f6565b80835261126b90829061126661125f83611258846001612486565b885161250e565b6001612567565b61250e565b82525090505b92915050565b60008061128783600001516125ff565b9050600061129884602001516125ff565b9050806fffffffffffffffffffffffffffffffff166080836fffffffffffffffffffffffffffffffff16901b1792505050919050565b6112d66143eb565b6112de6143eb565b6020830151608085901c9085906112f6908290612658565b8360200181905250600061130e8287602001516126e2565b905061131e838760000151612732565b80855261134090829061126661125f83611339846001612486565b8a5161250e565b8452509195945050505050565b6113556143eb565b61135d6143eb565b6020840151608084901c90849061137490826127a8565b8360200181905250600061138c87602001518361281e565b905061131e876000015184612567565b6113a7600080614450565b60005b818110156111b357600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360208204018054601f9092166101000a60ff0219909116905580611403816146cd565b9150506113aa565b61141760016000614450565b60005b818110156111b3576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660208204018054601f9092166101000a60ff0219909116905580611475816146cd565b91505061141a565b61148960026000614450565b60005b818110156111b357600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace60208204018054601f9092166101000a60ff02199091169055806114e8816146cd565b91505061148c565b6114fc6004600061442f565b60005b818110156111b3576004805460018101825560009182527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015580611543816146cd565b9150506114ff565b6115576005600061442f565b60005b818110156111b3576005805460018101825560009182527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001558061159e816146cd565b91505061155a565b60006115b06143eb565b60006115bc6000612863565b90506115c66143eb565b6115d886602001518660200151612908565b60208083018290528701516000916115ef916123af565b90506000806116068960000151896000015161297d565b91509150600080611618836001612a39565b91509150611630858561162b8786612b00565b612b99565b965061163d85848361250e565b865250949650929450505050505b9250929050565b600061165c6143eb565b60006116686000612863565b90506116726143eb565b6020850151608087901c90879061168a908290612c5d565b6020840181905260009061169e908361281e565b90506000806116b1858b60000151612cce565b915091506000806116c3836001612a39565b915091506116d6858561162b8786612b00565b98506116e385848361250e565b885250969b959a509498505050505050505050565b60006117026143eb565b600061170e6000612863565b90506117186143eb565b6020860151608086901c90869061172f9082612486565b6020808501829052890151600091611746916123af565b90506000806116b18b6000015186612a39565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af11580156117bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e19190614734565b15159392505050565b6117f26143eb565b6117fa6143eb565b60008061180f86602001518660200151612d61565b91509150600061182787600001518760200151612d61565b915050600061183e88602001518860000151612d61565b91505061185461184e8584612908565b82612908565b855250506020830152509392505050565b61186d6143eb565b6118756143eb565b6020840151608084901c90849060009081906118919084612eef565b9150915060006118a5896000015185612eef565b91505060006118b88a6020015187612eef565b9150506118c861184e8584612908565b875250506020850152509195945050505050565b6118e46143eb565b6118ec6143eb565b600080608086901c869150915060008061190a838860200151612fcf565b91509150600061191e858960200151612fcf565b91505060006118b8858a60000151612fcf565b600061193b6143eb565b60006119476000612863565b90506119516143eb565b6119638660200151866020015161232f565b8160200181905250600061197f876020015187602001516123af565b9050600080611996896000015189600001516130af565b91509150600080611618836001613151565b60006119b26143eb565b60006119be6000612863565b90506119c86143eb565b6020850151608087901c9087906119e0908290612658565b836020018190525060006119f88289602001516126e2565b9050600080611a0b858b600001516131fa565b915091506000806116c3836001613151565b6000611a276143eb565b6000611a336000612863565b9050611a3d6143eb565b6020860151608086901c908690611a5490826127a8565b83602001819052506000611a6c89602001518361281e565b9050600080611a0b8b6000015186613151565b6000611a896143eb565b611a916143eb565b600080611aa687602001518760200151612d61565b91509150600080611abf89600001518960200151612d61565b91509150600080611ad88b602001518b60000151612d61565b91509150600080611af18d600001518d60000151612d61565b915091506000806000611b048b8961297d565b91509150611b12818761297d565b8d5260208d018b905292506000611b57611b2c8486612b00565b611b52611b4b611b3c8e8d612908565b611b468a8c612908565b612908565b6000613292565b612b00565b9e509b9c505050505050505050505050509250929050565b6000611b796143eb565b611b816143eb565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260008060808f901c8f91509150611c3c818f60200151612fcf565b809b50819a505050611c52828f60200151612fcf565b8f51909950909750611c65908290612fcf565b8f51909750909550611c78908390612fcf565b945092506000915081905080611c8e8a8a61297d565b91509150611c9c818861297d565b8d5260208d018c905292506000611b57611cb68486612b00565b611b52611b4b611cc68d8c612908565b611b468b8b612908565b6000611cda6143eb565b611ce26143eb565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015260008060808e901c8e91509150611d9d8f6020015182612eef565b809b50819a505050611db38f6000015182612eef565b8099508198505050611dc98f6020015183612eef565b8097508196505050611c788f6000015183612eef565b611de76143eb565b611def6143eb565b600080611e0486602001518660200151612d61565b91509150600080611e1d88600001518860200151612d61565b91509150600080611e368a602001518a60000151612d61565b91509150600080611e4f8c600001518c60000151612d61565b91509150611e66611e6089876132d7565b846132d7565b895260208901879052611e906000611e8b611e818988612908565b611b468587612908565b612732565b50979b9a5050505050505050505050565b611ea96143eb565b611eb16143eb565b6020840151608084901c9084906000908190611ecd9084612eef565b91509150600080611ee28a6000015186612eef565b91509150600080611ef78c6020015189612eef565b91509150600080611f0c8e600001518b612eef565b91509150611f1d611e6089876132d7565b8b5260208b01879052611f386000611e8b611e818988612908565b50999d9c50505050505050505050505050565b611f536143eb565b611f5b6143eb565b600080608086901c8691509150600080611f79838860200151612fcf565b91509150600080611f8e868a60200151612fcf565b91509150600080611fa3878c60000151612fcf565b91509150600080611f0c8a8e60000151612fcf565b611fc06143eb565b611fc86143eb565b611fda84602001518460200151612908565b6020808301829052850151600091611ff1916123af565b85518551919250612001916132d7565b80835261126b90829061126681600161334c565b61201d6143eb565b6120256143eb565b6020830151608085901c90859061203d908290612c5d565b60208401819052600090612051908361281e565b90506120618387600001516133d4565b80855261134090829061126681600161334c565b61207d6143eb565b6120856143eb565b6020840151608084901c90849061209c9082612486565b60208085018290528701516000916120b3916123af565b905061206187600001518461334c565b6120cb6143eb565b6120d36143eb565b6120e584602001518460200151612908565b60208083018290528501516000916120fc916123af565b8551855191925061210c91612908565b80835261126b908290611266816001612486565b6121286143eb565b6121306143eb565b6020830151608085901c908590612148908290612c5d565b6020840181905260009061215c908361281e565b905061216c838760000151612c5d565b808552611340908290611266816001612486565b6121886143eb565b6121906143eb565b6020840151608084901c9084906121a79082612486565b60208085018290528701516000916121be916123af565b905061216c876000015184612486565b6121d66143eb565b6121de6143eb565b6121f08460200151846020015161232f565b8160200181905250600061220c856020015185602001516123af565b8551855191925061221c9161232f565b80835261126b9082906112668160016127a8565b6122386143eb565b6122406143eb565b6020830151608085901c908590612258908290612658565b836020018190525060006122708287602001516126e2565b9050612280838760000151612658565b8085526113409082906112668160016127a8565b61229c6143eb565b6122a46143eb565b6020840151608084901c9084906122bb90826127a8565b836020018190525060006122d387602001518361281e565b90506122808760000151846127a8565b604080518082019091526000808252602082015260408051808201909152600080825260208201528267ffffffffffffffff604082901c1661232481613445565b83526111e182613445565b60408051808201909152600080825260208201526040805180820190915260008082526020820152612369846020015184602001516134f4565b816020018181525050600061238685602001518560200151613509565b85518551919250612396916134f4565b80835261126b9082906123aa81600161351e565b6135a8565b6000806123c4846000015184600001516135bd565b90506123ee816123dc86600001518660000151613509565b61162b87602001518760200151613509565b949350505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152612430846020015184602001516134f4565b816020018181525050600061244d85602001518560200151613509565b8551855191925061245d916135d2565b80835261126b9082906123aa61247f836124788460016136a9565b88516135a8565b60016136bf565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506124d38660200151826136a9565b60208085018290528701516000916124ea91613509565b90506124fa8760000151846136a9565b8085526113409082906123aa8160016136a9565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261254985856020015185602001516135a8565b60208201528351835161255d9187916135a8565b8152949350505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506125b486602001518261351e565b83602001818152505060006125cd87602001518361374b565b90506125dd8760000151846136bf565b8085526113409082906123aa61247f836125f88460016136a9565b8a516135a8565b60008061260f8360000151613761565b905060006126208460200151613761565b90508067ffffffffffffffff1660408367ffffffffffffffff166fffffffffffffffffffffffffffffffff16901b1792505050919050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff1686915091506126a58186602001516137bb565b83602001818152505060006126be828760200151613845565b90506126ce8387600001516137bb565b8085526113409082906123aa81600161351e565b805160009067ffffffffffffffff604085901c16908490839061270690849061385b565b90506127288161271a858860000151613845565b61162b858960200151613845565b9695505050505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff16869150915061277f8186602001516137bb565b8360200181815250506000612798828760200151613845565b90506125dd838760000151613871565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506127f586602001518261351e565b836020018181525050600061280e87602001518361374b565b90506126ce87600001518461351e565b815160009067ffffffffffffffff604084901c16908390839061284190846138fd565b90506127288161285588600001518661374b565b61162b89602001518661374b565b60008082612872576000612875565b60015b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081526000600482015260ff9190911660248201819052915060649063d9b60b60906044015b6020604051808303816000875af11580156128dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129019190614734565b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261294284602001518460200151613913565b602080830182905285015160009161295991613509565b8551855191925061296991613913565b80835261126b9082906123aa8160016136a9565b600061299c604051806040016040528060008152602001600081525090565b60006129a86000612863565b90506129c7604051806040016040528060008152602001600081525090565b6129d986602001518660200151613913565b60208083018290528701516000916129f091613509565b9050600080612a0789600001518960000151613928565b91509150600080612a198360016139f6565b91509150612a2c858561162b8786612b00565b965061163d8584836135a8565b6000612a58604051806040016040528060008152602001600081525090565b6000612a646000612863565b9050612a83604051806040016040528060008152602001600081525090565b602086015167ffffffffffffffff604087901c16908690612aa490826136a9565b6020808501829052890151600091612abb91613509565b9050600080612ace8b60000151866139f6565b91509150600080612ae08360016139f6565b91509150612af3858561162b8786612b00565b98506116e38584836135a8565b6000606463fb7da35f612b14838080613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064016020604051808303816000875af11580156128dd573d6000803e3d6000fd5b600060646320cc408d612bad838080613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810187905260448101869052606481018590526084016020604051808303816000875af1158015612c39573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ee9190614734565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff168691509150612caa818660200151613ae0565b60208401819052600090612cbe908361374b565b90506124fa838760000151613ae0565b6000612ced604051806040016040528060008152602001600081525090565b6000612cf96000612863565b9050612d18604051806040016040528060008152602001600081525090565b602085015167ffffffffffffffff604088901c16908790612d3a908290613ae0565b60208401819052600090612d4e908361374b565b9050600080612ace858b60000151613af6565b60408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff906040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526000612def8a87613b83565b90506000612dfe8b6040613bed565b90506000612e0c8b89613b83565b90506000612e1b8c6040613bed565b9050612e278483613d02565b9750612e338482613d02565b9650612e3f8383613d02565b9550612e4b8382613d02565b9450505050506000612e78612e6e612e64876040613bed565b611b46878a613b83565b611b468589613b83565b90506000612e87826040613bed565b90506000612eb1612e9d85611b46896040613bed565b611b46612eab886040613bed565b85612908565b90506000612edb612ec2898b613b83565b612ed6612ecf878d613b83565b6040613d84565b613e69565b919d919c50909a5050505050505050505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff906040805180820190915260008082526020820152604080518082019091526000808252602082015260408051808201909152600080825260208201526000612f7d8a87613b83565b90506000612f8c8b6040613bed565b905067ffffffffffffffff8a81169060408c901c16612fab8483613ebf565b9750612fb78482613ebf565b9650612fc38383613ebf565b9550612e4b8382613ebf565b60408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff9060408051808201909152600080825260208201526040805180820190915260008082526020820152604080518082019091526000808252602082015267ffffffffffffffff8981169060408b901c1660006130708b89613b83565b9050600061307f8c6040613bed565b905061308b8483613f48565b97506130978482613f48565b96506130a38383613f48565b9550612e4b8382613f48565b60006130ce604051806040016040528060008152602001600081525090565b60006130da6000612863565b90506130f9604051806040016040528060008152602001600081525090565b61310b866020015186602001516134f4565b816020018181525050600061312887602001518760200151613509565b905060008061313f89600001518960000151613fd4565b91509150600080612a19836001613fec565b6000613170604051806040016040528060008152602001600081525090565b600061317c6000612863565b905061319b604051806040016040528060008152602001600081525090565b602086015167ffffffffffffffff604087901c169086906131bc908261351e565b83602001818152505060006131d589602001518361374b565b90506000806131e88b6000015186613fec565b91509150600080612ae0836001613fec565b6000613219604051806040016040528060008152602001600081525090565b60006132256000612863565b9050613244604051806040016040528060008152602001600081525090565b602085015167ffffffffffffffff604088901c169087906132669082906137bb565b836020018181525050600061327f828960200151613845565b90506000806131e8858b60000151614005565b815160009067ffffffffffffffff604084901c1690839083906132b590846138fd565b9050612728816132c988600001518661401e565b61162b89602001518661401e565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261331184602001518460200151613913565b602080830182905285015160009161332891613509565b8551855191925061333891614034565b80835261126b9082906123aa81600161404b565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506133998660200151826136a9565b60208085018290528701516000916133b091613509565b90506133c087600001518461404b565b8085526113409082906123aa81600161404b565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff168691509150613421818660200151613ae0565b60208401819052600090613435908361374b565b90506133c0838760000151614063565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044015b6020604051808303816000875af11580156134d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112719190614734565b6000606463371d1bf2612b1460048085613a83565b6000606463dd148693612b1460048085613a83565b6000606463371d1bf26135346004806002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905267ffffffffffffffff851660448201526064016128be565b600060646320cc408d612bad60048085613a83565b60006064637c12a1eb612b1460048085613a83565b60008080606463ce8c713d6135e960048085613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101889052604481018790526064015b60408051808303816000875af115801561366e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613692919061474d565b915091506136a0828261407b565b95945050505050565b60006064638c5d01506135346004806002613a83565b60008080606463ce8c713d6136d76004806002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810188905267ffffffffffffffff87166044820152606401613650565b6000606463dd1486936135346004806002613a83565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b81526004016134b19291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6000606463371d1bf26137d16004806001613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff86166024820152604481018590526064016128be565b6000606463dd1486936137d16004806001613a83565b60006064637c12a1eb6137d16004806001613a83565b60008080606463ce8c713d6138896004806001613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff8816602482015260448101879052606401613650565b60006064637c12a1eb6135346004806002613a83565b60006064638c5d0150612b1460048085613a83565b6000808080606463f581fa2061394060048085613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101899052604481018890526064015b60408051808303816000875af11580156139c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e9919061474d565b9097909650945050505050565b6000808080606463f581fa20613a0f6004806002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810189905267ffffffffffffffff881660448201526064016139a7565b6000816002811115613a9757613a97614705565b60ff166008846004811115613aae57613aae614705565b61ffff16901b61ffff166010866004811115613acc57613acc614705565b62ffffff16901b171760e81b949350505050565b60006064638c5d01506137d16004806001613a83565b6000808080606463f581fa20613b0f6004806001613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff89166024820152604481018890526064016139a7565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff168591509150613bd086602001518261408c565b60208401528551613be1908361408c565b83525090949350505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408360ff1610613c5b57613c2e8460200151846140a2565b508351613c4590613c40604086614771565b6140a2565b6020820152613c546000613445565b8152612901565b60ff831615613ced576000613c71846040614771565b60ff1667ffffffffffffffff8016901c9050613cba613c948660200151866140a2565b613cb5613ca588600001518561408c565b613cb0886040614771565b614126565b61413d565b602083015250835167ffffffffffffffff60ff85161b90613ce590613cdf908361408c565b856140a2565b825250612901565b60208085015190820152835181529392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080613d3f86602001518660200151614152565b915091506000613d5787600001518760200151614152565b9150506000613d6e88602001518860000151614152565b915050611854613d7e8584613913565b82613913565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408360ff1610613de9578351613dc39084614126565b50613dce6000613445565b602080830191909152840151613c5490613cb0604086614771565b60ff831615613ced57602084015167ffffffffffffffff60ff85161c90613e1a90613e14908361408c565b85614126565b6020830152613e2a846040614771565b60ff1667ffffffffffffffff8016901b9050613ce5613e4d866000015186614126565b613cb5613e5e88602001518561408c565b613c40886040614771565b60408051808201909152600080825260208201526040805180820190915260008082526020820152613ea38460200151846020015161413d565b602082015283518351613eb6919061413d565b81529392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152602084015167ffffffffffffffff84811691604086901c909116906000908190613f119085614255565b915091506000613f25896000015186614255565b9150506000613f388a6020015186614255565b9150506118c8613d7e8584613913565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600067ffffffffffffffff80168516905060006040866fffffffffffffffffffffffffffffffff16901c9050600080613fad8488602001516142ba565b915091506000613fc18489602001516142ba565b9150506000613f38868a600001516142ba565b6000808080606463ce8c713d61394060048085613a83565b6000808080606463ce8c713d613a0f6004806002613a83565b6000808080606463ce8c713d613b0f6004806001613a83565b60006064636d82e45e6135346004806002613a83565b60008080606463f581fa206135e960048085613a83565b60008080606463f581fa206136d76004806002613a83565b60008080606463f581fa206138896004806001613a83565b60006140868361431a565b50919050565b6000606463fe9c73d16135346004806002613a83565b600060646339bd1d8d6140b9600460016002613a83565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905260ff851660448201526064016128be565b60006064631135f71a6140b9600460016002613a83565b6000606463fb7da35f612b1460048085613a83565b60008063ffffffff81808080806141698a8761408c565b905060006141788b60206140a2565b905060006141868b8961408c565b905060006141958c60206140a2565b90506141a1848361439b565b97506141ad848261439b565b96506141b9838361439b565b95506141c5838261439b565b94505050505060006141f76141ed6141de8760206140a2565b6141e8878a61408c565b613913565b6141e8858961408c565b905060006142068260206140a2565b9050600061423061421c856141e88960206140a2565b6141e861422a8860206140a2565b85613913565b90506000612edb614241898b61408c565b613cb561424e878d61408c565b6020614126565b60008063ffffffff818080808061426c8a8761408c565b9050600061427b8b60206140a2565b905063ffffffff8a81169060208c901c1661429684836143b0565b97506142a284826143b0565b96506142ae83836143b0565b95506141c583826143b0565b60008063ffffffff8180808088851660208a901c8616826142db8b8961408c565b905060006142ea8c60206140a2565b90506142f684836143c6565b975061430284826143c6565b965061430e83836143c6565b95506141c583826143c6565b6000614325826143dc565b905061433081611759565b15156001146111b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f6f766572666c6f77206572726f72000000000000000000000000000000000000604482015260640161036f565b6000606463f1d21bb4612b1460048085613a83565b6000606463f1d21bb46135346004806002613a83565b6000606463f1d21bb46137d16004806001613a83565b60006064631d79e49a8261376d565b6040805160808101825260009181018281526060820192909252908190815260200161442a604051806040016040528060008152602001600081525090565b905290565b508054600082559060005260206000209081019061444d9190614471565b50565b50805460008255601f01602090049060005260206000209081019061444d91905b5b808211156144865760008155600101614472565b5090565b6000806040838503121561449d57600080fd5b50508035926020909101359150565b60008083601f8401126144be57600080fd5b50813567ffffffffffffffff8111156144d657600080fd5b6020830191508360208260051b850101111561164b57600080fd5b6000806000806040858703121561450757600080fd5b843567ffffffffffffffff8082111561451f57600080fd5b61452b888389016144ac565b9096509450602087013591508082111561454457600080fd5b50614551878288016144ac565b95989497509550505050565b60006020828403121561456f57600080fd5b5035919050565b80356003811061458557600080fd5b919050565b6000806000806000606086880312156145a257600080fd5b853567ffffffffffffffff808211156145ba57600080fd5b6145c689838a016144ac565b909750955060208801359150808211156145df57600080fd5b506145ec888289016144ac565b90945092506145ff905060408701614576565b90509295509295909350565b60008060006060848603121561462057600080fd5b833592506020840135915061463760408501614576565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036146fe576146fe61469e565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561474657600080fd5b5051919050565b6000806040838503121561476057600080fd5b505080516020909101519092909150565b60ff82811682821603908111156112715761127161469e56fea164736f6c6343000813000a";
|
|
313
|
+
|
|
314
|
+
type Arithmetic256BitTestsContractConstructorParams =
|
|
315
|
+
| [signer?: Signer]
|
|
316
|
+
| ConstructorParameters<typeof ContractFactory>;
|
|
317
|
+
|
|
318
|
+
const isSuperArgs = (
|
|
319
|
+
xs: Arithmetic256BitTestsContractConstructorParams
|
|
320
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
321
|
+
|
|
322
|
+
export class Arithmetic256BitTestsContract__factory extends ContractFactory {
|
|
323
|
+
constructor(...args: Arithmetic256BitTestsContractConstructorParams) {
|
|
324
|
+
if (isSuperArgs(args)) {
|
|
325
|
+
super(...args);
|
|
326
|
+
} else {
|
|
327
|
+
super(_abi, _bytecode, args[0]);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
override getDeployTransaction(
|
|
332
|
+
overrides?: NonPayableOverrides & { from?: string }
|
|
333
|
+
): Promise<ContractDeployTransaction> {
|
|
334
|
+
return super.getDeployTransaction(overrides || {});
|
|
335
|
+
}
|
|
336
|
+
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
|
|
337
|
+
return super.deploy(overrides || {}) as Promise<
|
|
338
|
+
Arithmetic256BitTestsContract & {
|
|
339
|
+
deploymentTransaction(): ContractTransactionResponse;
|
|
340
|
+
}
|
|
341
|
+
>;
|
|
342
|
+
}
|
|
343
|
+
override connect(
|
|
344
|
+
runner: ContractRunner | null
|
|
345
|
+
): Arithmetic256BitTestsContract__factory {
|
|
346
|
+
return super.connect(runner) as Arithmetic256BitTestsContract__factory;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
static readonly bytecode = _bytecode;
|
|
350
|
+
static readonly abi = _abi;
|
|
351
|
+
static createInterface(): Arithmetic256BitTestsContractInterface {
|
|
352
|
+
return new Interface(_abi) as Arithmetic256BitTestsContractInterface;
|
|
353
|
+
}
|
|
354
|
+
static connect(
|
|
355
|
+
address: string,
|
|
356
|
+
runner?: ContractRunner | null
|
|
357
|
+
): Arithmetic256BitTestsContract {
|
|
358
|
+
return new Contract(
|
|
359
|
+
address,
|
|
360
|
+
_abi,
|
|
361
|
+
runner
|
|
362
|
+
) as unknown as Arithmetic256BitTestsContract;
|
|
363
|
+
}
|
|
364
|
+
}
|
package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import {
|
|
5
|
+
Contract,
|
|
6
|
+
ContractFactory,
|
|
7
|
+
ContractTransactionResponse,
|
|
8
|
+
Interface,
|
|
9
|
+
} from "ethers";
|
|
10
|
+
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
|
|
11
|
+
import type { NonPayableOverrides } from "../../../../../common";
|
|
12
|
+
import type {
|
|
13
|
+
Bitwise128BitTestsContract,
|
|
14
|
+
Bitwise128BitTestsContractInterface,
|
|
15
|
+
} from "../../../../../contracts/mocks/utils/mpc/Bitwise128BitTestsContract";
|
|
16
|
+
|
|
17
|
+
const _abi = [
|
|
18
|
+
{
|
|
19
|
+
inputs: [
|
|
20
|
+
{
|
|
21
|
+
internalType: "uint128[]",
|
|
22
|
+
name: "a",
|
|
23
|
+
type: "uint128[]",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
internalType: "uint128[]",
|
|
27
|
+
name: "b",
|
|
28
|
+
type: "uint128[]",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
name: "andTest",
|
|
32
|
+
outputs: [],
|
|
33
|
+
stateMutability: "nonpayable",
|
|
34
|
+
type: "function",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
inputs: [
|
|
38
|
+
{
|
|
39
|
+
internalType: "uint256",
|
|
40
|
+
name: "",
|
|
41
|
+
type: "uint256",
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
name: "numbers",
|
|
45
|
+
outputs: [
|
|
46
|
+
{
|
|
47
|
+
internalType: "uint128",
|
|
48
|
+
name: "",
|
|
49
|
+
type: "uint128",
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
stateMutability: "view",
|
|
53
|
+
type: "function",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
inputs: [
|
|
57
|
+
{
|
|
58
|
+
internalType: "uint128[]",
|
|
59
|
+
name: "a",
|
|
60
|
+
type: "uint128[]",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
internalType: "uint128[]",
|
|
64
|
+
name: "b",
|
|
65
|
+
type: "uint128[]",
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
name: "orTest",
|
|
69
|
+
outputs: [],
|
|
70
|
+
stateMutability: "nonpayable",
|
|
71
|
+
type: "function",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
inputs: [
|
|
75
|
+
{
|
|
76
|
+
internalType: "uint128[]",
|
|
77
|
+
name: "a",
|
|
78
|
+
type: "uint128[]",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
internalType: "uint8[]",
|
|
82
|
+
name: "b",
|
|
83
|
+
type: "uint8[]",
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
name: "shlTest",
|
|
87
|
+
outputs: [],
|
|
88
|
+
stateMutability: "nonpayable",
|
|
89
|
+
type: "function",
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
inputs: [
|
|
93
|
+
{
|
|
94
|
+
internalType: "uint128[]",
|
|
95
|
+
name: "a",
|
|
96
|
+
type: "uint128[]",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
internalType: "uint8[]",
|
|
100
|
+
name: "b",
|
|
101
|
+
type: "uint8[]",
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
name: "shrTest",
|
|
105
|
+
outputs: [],
|
|
106
|
+
stateMutability: "nonpayable",
|
|
107
|
+
type: "function",
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
inputs: [
|
|
111
|
+
{
|
|
112
|
+
internalType: "uint128[]",
|
|
113
|
+
name: "a",
|
|
114
|
+
type: "uint128[]",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
internalType: "uint128[]",
|
|
118
|
+
name: "b",
|
|
119
|
+
type: "uint128[]",
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
name: "xorTest",
|
|
123
|
+
outputs: [],
|
|
124
|
+
stateMutability: "nonpayable",
|
|
125
|
+
type: "function",
|
|
126
|
+
},
|
|
127
|
+
] as const;
|
|
128
|
+
|
|
129
|
+
const _bytecode =
|
|
130
|
+
"0x608060405234801561001057600080fd5b50611859806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063d39fa23311610050578063d39fa233146100b2578063e7725688146100ea578063f1b2fa09146100fd57600080fd5b80630f5740d514610077578063bb4e492a1461008c578063d3340fee1461009f575b600080fd5b61008a61008536600461164c565b610110565b005b61008a61009a36600461164c565b610392565b61008a6100ad36600461164c565b6104cb565b6100c56100c03660046116b8565b610604565b6040516fffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61008a6100f836600461164c565b61064a565b61008a61010b36600461164c565b6108a1565b82811461017e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d61746368000000000000000000000060448201526064015b60405180910390fd5b61018783610af8565b60005b8381101561038b5760006101c38686848181106101a9576101a96116d1565b90506020020160208101906101be9190611700565b610b7d565b905060006101dc8585858181106101a9576101a96116d1565b90506101f06101eb8383610bd7565b610c2f565b60008481548110610203576102036116d1565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506102816101eb888886818110610266576102666116d1565b905060200201602081019061027b9190611700565b83610c88565b6fffffffffffffffffffffffffffffffff16600084815481106102a6576102a66116d1565b6000918252602090912060028204015460019091166010026101000a90046fffffffffffffffffffffffffffffffff16146102e3576102e3611732565b6103166101eb838787878181106102fc576102fc6116d1565b90506020020160208101906103119190611700565b610cf3565b6fffffffffffffffffffffffffffffffff166000848154811061033b5761033b6116d1565b6000918252602090912060028204015460019091166010026101000a90046fffffffffffffffffffffffffffffffff161461037857610378611732565b50508061038490611790565b905061018a565b5050505050565b8281146103fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d6174636800000000000000000000006044820152606401610175565b61040483610af8565b60005b8381101561038b5760006104268686848181106101a9576101a96116d1565b905061045b6101eb82868686818110610441576104416116d1565b905060200201602081019061045691906117c8565b610d51565b6000838154811061046e5761046e6116d1565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050806104c490611790565b9050610407565b828114610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d6174636800000000000000000000006044820152606401610175565b61053d83610af8565b60005b8381101561038b57600061055f8686848181106101a9576101a96116d1565b90506105946101eb8286868681811061057a5761057a6116d1565b905060200201602081019061058f91906117c8565b610e6a565b600083815481106105a7576105a76116d1565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050806105fd90611790565b9050610540565b6000818154811061061457600080fd5b9060005260206000209060029182820401919006601002915054906101000a90046fffffffffffffffffffffffffffffffff1681565b8281146106b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d6174636800000000000000000000006044820152606401610175565b6106bc83610af8565b60005b8381101561038b5760006106de8686848181106101a9576101a96116d1565b905060006106f78585858181106101a9576101a96116d1565b90506107066101eb8383610f4c565b60008481548110610719576107196116d1565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506107976101eb88888681811061077c5761077c6116d1565b90506020020160208101906107919190611700565b83610f99565b6fffffffffffffffffffffffffffffffff16600084815481106107bc576107bc6116d1565b6000918252602090912060028204015460019091166010026101000a90046fffffffffffffffffffffffffffffffff16146107f9576107f9611732565b61082c6101eb83878787818110610812576108126116d1565b90506020020160208101906108279190611700565b610ff8565b6fffffffffffffffffffffffffffffffff1660008481548110610851576108516116d1565b6000918252602090912060028204015460019091166010026101000a90046fffffffffffffffffffffffffffffffff161461088e5761088e611732565b50508061089a90611790565b90506106bf565b82811461090a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e707574206c656e677468206d69736d6174636800000000000000000000006044820152606401610175565b61091383610af8565b60005b8381101561038b5760006109358686848181106101a9576101a96116d1565b9050600061094e8585858181106101a9576101a96116d1565b905061095d6101eb8383611056565b60008481548110610970576109706116d1565b90600052602060002090600291828204019190066010026101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506109ee6101eb8888868181106109d3576109d36116d1565b90506020020160208101906109e89190611700565b836110a3565b6fffffffffffffffffffffffffffffffff1660008481548110610a1357610a136116d1565b6000918252602090912060028204015460019091166010026101000a90046fffffffffffffffffffffffffffffffff1614610a5057610a50611732565b610a836101eb83878787818110610a6957610a696116d1565b9050602002016020810190610a7e9190611700565b611102565b6fffffffffffffffffffffffffffffffff1660008481548110610aa857610aa86116d1565b6000918252602090912060028204015460019091166010026101000a90046fffffffffffffffffffffffffffffffff1614610ae557610ae5611732565b505080610af190611790565b9050610916565b610b036000806115bf565b60005b81811015610b795760008054600180820183559180527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56360028204018054929091166010026101000a6fffffffffffffffffffffffffffffffff0219909116905580610b7181611790565b915050610b06565b5050565b604080518082019091526000808252602082015260408051808201909152600080825260208201528267ffffffffffffffff604082901c16610bbe81611160565b8352610bc982611160565b602084015250909392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152610c118460200151846020015161120f565b602082015283518351610c24919061120f565b815290505b92915050565b600080610c3f83600001516112ce565b90506000610c5084602001516112ce565b90508067ffffffffffffffff1660408367ffffffffffffffff166fffffffffffffffffffffffffffffffff16901b1792505050919050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff168691509150610cd5818660200151611335565b60208401528451610ce7908390611335565b83525090949350505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff168591509150610d408660200151826113bf565b60208401528551610ce790836113bf565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408360ff1610610dc2578351610d909084611449565b50610d9b6000611160565b602080830191909152840151610dbb90610db66040866117eb565b611449565b8152610e63565b60ff831615610e5457602084015167ffffffffffffffff60ff85161c90610df390610ded90836114cd565b85611449565b6020830152610e038460406117eb565b60ff1667ffffffffffffffff8016901b9050610e4c610e26866000015186611449565b610e47610e378860200151856114cd565b610e428860406117eb565b6114e3565b61120f565b825250610e63565b60208085015190820152835181525b9392505050565b6040805180820190915260008082526020820152604080518082019091526000808252602082015260408360ff1610610ecc57610eab8460200151846114e3565b508351610ebd90610e426040866117eb565b6020820152610dbb6000611160565b60ff831615610e54576000610ee28460406117eb565b60ff1667ffffffffffffffff8016901c9050610f21610f058660200151866114e3565b610e47610f168860000151856114cd565b610db68860406117eb565b602083015250835167ffffffffffffffff60ff85161b90610e4c90610f4690836114cd565b856114e3565b60408051808201909152600080825260208201526040805180820190915260008082526020820152610f86846020015184602001516114fa565b602082015283518351610c2491906114fa565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff168691509150610fe681866020015161150f565b60208401528451610ce790839061150f565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff1685915091506110458660200151826114cd565b60208401528551610ce790836114cd565b6040805180820190915260008082526020820152604080518082019091526000808252602082015261109084602001518460200151611525565b602082015283518351610c249190611525565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604086901c67ffffffffffffffff1686915091506110f081866020015161153a565b60208401528451610ce790839061153a565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600080604085901c67ffffffffffffffff16859150915061114f866020015182611550565b60208401528551610ce79083611550565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044015b6020604051808303816000875af11580156111eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c299190611833565b6000606463fb7da35f61122460048085611562565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064015b6020604051808303816000875af11580156112aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e639190611833565b6040517f0cfed5610000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015260248101829052600090606490630cfed561906044016111cc565b6000606463fb7da35f61134b6004806001611562565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff861660248201526044810185905260640161128b565b6000606463fb7da35f6113d56004806002611562565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905267ffffffffffffffff8516604482015260640161128b565b60006064631135f71a611460600460016002611562565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905260ff8516604482015260640161128b565b6000606463fe9c73d16113d56004806002611562565b600060646339bd1d8d611460600460016002611562565b6000606463fe9c73d161122460048085611562565b6000606463fe9c73d161134b6004806001611562565b60006064636f962e2c61122460048085611562565b60006064636f962e2c61134b6004806001611562565b60006064636f962e2c6113d560048060025b600081600281111561157657611576611804565b60ff16600884600481111561158d5761158d611804565b61ffff16901b61ffff1660108660048111156115ab576115ab611804565b62ffffff16901b171760e81b949350505050565b5080546000825560010160029004906000526020600020908101906115e491906115e7565b50565b5b808211156115fc57600081556001016115e8565b5090565b60008083601f84011261161257600080fd5b50813567ffffffffffffffff81111561162a57600080fd5b6020830191508360208260051b850101111561164557600080fd5b9250929050565b6000806000806040858703121561166257600080fd5b843567ffffffffffffffff8082111561167a57600080fd5b61168688838901611600565b9096509450602087013591508082111561169f57600080fd5b506116ac87828801611600565b95989497509550505050565b6000602082840312156116ca57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561171257600080fd5b81356fffffffffffffffffffffffffffffffff81168114610e6357600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117c1576117c1611761565b5060010190565b6000602082840312156117da57600080fd5b813560ff81168114610e6357600080fd5b60ff8281168282160390811115610c2957610c29611761565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561184557600080fd5b505191905056fea164736f6c6343000813000a";
|
|
131
|
+
|
|
132
|
+
type Bitwise128BitTestsContractConstructorParams =
|
|
133
|
+
| [signer?: Signer]
|
|
134
|
+
| ConstructorParameters<typeof ContractFactory>;
|
|
135
|
+
|
|
136
|
+
const isSuperArgs = (
|
|
137
|
+
xs: Bitwise128BitTestsContractConstructorParams
|
|
138
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
139
|
+
|
|
140
|
+
export class Bitwise128BitTestsContract__factory extends ContractFactory {
|
|
141
|
+
constructor(...args: Bitwise128BitTestsContractConstructorParams) {
|
|
142
|
+
if (isSuperArgs(args)) {
|
|
143
|
+
super(...args);
|
|
144
|
+
} else {
|
|
145
|
+
super(_abi, _bytecode, args[0]);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
override getDeployTransaction(
|
|
150
|
+
overrides?: NonPayableOverrides & { from?: string }
|
|
151
|
+
): Promise<ContractDeployTransaction> {
|
|
152
|
+
return super.getDeployTransaction(overrides || {});
|
|
153
|
+
}
|
|
154
|
+
override deploy(overrides?: NonPayableOverrides & { from?: string }) {
|
|
155
|
+
return super.deploy(overrides || {}) as Promise<
|
|
156
|
+
Bitwise128BitTestsContract & {
|
|
157
|
+
deploymentTransaction(): ContractTransactionResponse;
|
|
158
|
+
}
|
|
159
|
+
>;
|
|
160
|
+
}
|
|
161
|
+
override connect(
|
|
162
|
+
runner: ContractRunner | null
|
|
163
|
+
): Bitwise128BitTestsContract__factory {
|
|
164
|
+
return super.connect(runner) as Bitwise128BitTestsContract__factory;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
static readonly bytecode = _bytecode;
|
|
168
|
+
static readonly abi = _abi;
|
|
169
|
+
static createInterface(): Bitwise128BitTestsContractInterface {
|
|
170
|
+
return new Interface(_abi) as Bitwise128BitTestsContractInterface;
|
|
171
|
+
}
|
|
172
|
+
static connect(
|
|
173
|
+
address: string,
|
|
174
|
+
runner?: ContractRunner | null
|
|
175
|
+
): Bitwise128BitTestsContract {
|
|
176
|
+
return new Contract(
|
|
177
|
+
address,
|
|
178
|
+
_abi,
|
|
179
|
+
runner
|
|
180
|
+
) as unknown as Bitwise128BitTestsContract;
|
|
181
|
+
}
|
|
182
|
+
}
|