@coti-io/coti-contracts 0.1.0 → 1.0.2
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/.github/workflows/npm-publish.yml +2 -1
- package/CONTRIBUTING.md +2 -2
- package/LICENSE +1 -1
- package/README.md +18 -35
- package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +3 -115
- package/contracts/mocks/README.md +1 -1
- package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +257 -280
- package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +93 -187
- package/contracts/mocks/utils/mpc/{Comparison1Tests.Contract.sol → Comparison1TestsContract.sol} +67 -115
- package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +76 -116
- package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +69 -164
- package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +103 -56
- package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +270 -0
- package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +127 -0
- package/contracts/mocks/utils/mpc/README.md +12 -12
- package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +54 -211
- package/contracts/mocks/utils/mpc/TransferTestsContract.sol +165 -640
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.sol +222 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.sol +222 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol +223 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.sol +222 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.sol +265 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol +281 -0
- package/contracts/onboard/AccountOnboard.sol +3 -3
- package/contracts/token/PrivateERC20/PrivateERC20.sol +1 -1
- package/contracts/token/PrivateERC721/IERC721Errors.sol +57 -0
- package/contracts/token/PrivateERC721/PrivateERC721.sol +1 -1
- package/contracts/utils/mpc/MpcCore.sol +2835 -988
- package/contracts/utils/mpc/MpcInterface.sol +6 -4
- package/hardhat.config.ts +17 -6
- package/package.json +20 -4
- package/test/token/PrivateERC20/PrivateERC20.test.ts +2 -2
- package/test/utils/accounts.ts +1 -1
- package/test/utils/mpc/Precompile.test.ts +42 -39
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.ts +96 -10
- package/typechain-types/contracts/mocks/utils/mpc/BitwiseTestsContract.ts +45 -5
- package/typechain-types/contracts/mocks/utils/mpc/Comparison1TestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison2TestsContract.ts +45 -5
- package/typechain-types/contracts/mocks/utils/mpc/MinMaxTestsContract.ts +25 -5
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.ts +62 -0
- package/typechain-types/contracts/mocks/utils/mpc/MiscellaneousTestsContract.ts +396 -0
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.ts +251 -0
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract.ts +11 -8
- package/typechain-types/contracts/mocks/utils/mpc/TransferScalarTestsContract.ts +15 -15
- package/typechain-types/contracts/mocks/utils/mpc/TransferTestsContract.ts +15 -15
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract.ts +251 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract.ts +250 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.ts +389 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.ts +306 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract.ts +125 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract.ts +125 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.ts +296 -0
- package/typechain-types/contracts/mocks/utils/mpc/index.ts +9 -6
- package/typechain-types/contracts/onboard/AccountOnboard.ts +9 -4
- package/typechain-types/contracts/token/PrivateERC721/IERC721Errors.ts +69 -0
- package/typechain-types/contracts/token/PrivateERC721/index.ts +1 -0
- package/typechain-types/contracts/utils/mpc/MpcCore.ts +84 -0
- package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +81 -40
- package/typechain-types/contracts/utils/mpc/index.ts +1 -0
- package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract__factory.ts +387 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract__factory.ts +388 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +92 -7
- package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +38 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +387 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +38 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +15 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +66 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +424 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +285 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract__factory.ts +19 -3
- package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +4 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +4 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract__factory.ts +294 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +292 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract__factory.ts +720 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +507 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract__factory.ts +150 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +150 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +434 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +9 -4
- package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +8 -2
- package/typechain-types/factories/contracts/token/PrivateERC721/IERC721Errors__factory.ts +128 -0
- package/typechain-types/factories/contracts/token/PrivateERC721/index.ts +1 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +77 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +124 -61
- package/typechain-types/factories/contracts/utils/mpc/index.ts +1 -0
- package/typechain-types/hardhat.d.ts +152 -26
- package/typechain-types/index.ts +20 -8
- package/contracts/access/DataPrivacyFramework/README.md +0 -68
- package/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.sol +0 -448
- package/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol +0 -81
- package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +0 -311
- package/contracts/token/PrivateERC20/README.md +0 -104
- package/contracts/token/PrivateERC721/README.md +0 -282
- package/contracts/utils/mpc/README.md +0 -82
package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts
CHANGED
|
@@ -39,6 +39,78 @@ const _abi = [
|
|
|
39
39
|
stateMutability: "nonpayable",
|
|
40
40
|
type: "function",
|
|
41
41
|
},
|
|
42
|
+
{
|
|
43
|
+
inputs: [
|
|
44
|
+
{
|
|
45
|
+
internalType: "uint8",
|
|
46
|
+
name: "a",
|
|
47
|
+
type: "uint8",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
internalType: "uint8",
|
|
51
|
+
name: "b",
|
|
52
|
+
type: "uint8",
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
name: "checkedAddTest",
|
|
56
|
+
outputs: [
|
|
57
|
+
{
|
|
58
|
+
internalType: "uint8",
|
|
59
|
+
name: "",
|
|
60
|
+
type: "uint8",
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
stateMutability: "nonpayable",
|
|
64
|
+
type: "function",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
inputs: [
|
|
68
|
+
{
|
|
69
|
+
internalType: "uint8",
|
|
70
|
+
name: "a",
|
|
71
|
+
type: "uint8",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
internalType: "uint8",
|
|
75
|
+
name: "b",
|
|
76
|
+
type: "uint8",
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
name: "checkedMulTest",
|
|
80
|
+
outputs: [
|
|
81
|
+
{
|
|
82
|
+
internalType: "uint8",
|
|
83
|
+
name: "",
|
|
84
|
+
type: "uint8",
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
stateMutability: "nonpayable",
|
|
88
|
+
type: "function",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
inputs: [
|
|
92
|
+
{
|
|
93
|
+
internalType: "uint8",
|
|
94
|
+
name: "a",
|
|
95
|
+
type: "uint8",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
internalType: "uint8",
|
|
99
|
+
name: "b",
|
|
100
|
+
type: "uint8",
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
name: "checkedSubTest",
|
|
104
|
+
outputs: [
|
|
105
|
+
{
|
|
106
|
+
internalType: "uint8",
|
|
107
|
+
name: "",
|
|
108
|
+
type: "uint8",
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
stateMutability: "nonpayable",
|
|
112
|
+
type: "function",
|
|
113
|
+
},
|
|
42
114
|
{
|
|
43
115
|
inputs: [
|
|
44
116
|
{
|
|
@@ -179,7 +251,7 @@ const _abi = [
|
|
|
179
251
|
},
|
|
180
252
|
{
|
|
181
253
|
inputs: [],
|
|
182
|
-
name: "
|
|
254
|
+
name: "getAddResult",
|
|
183
255
|
outputs: [
|
|
184
256
|
{
|
|
185
257
|
internalType: "uint8",
|
|
@@ -192,12 +264,25 @@ const _abi = [
|
|
|
192
264
|
},
|
|
193
265
|
{
|
|
194
266
|
inputs: [],
|
|
195
|
-
name: "
|
|
267
|
+
name: "getMulResult",
|
|
196
268
|
outputs: [
|
|
197
269
|
{
|
|
198
|
-
internalType: "
|
|
270
|
+
internalType: "uint8",
|
|
199
271
|
name: "",
|
|
200
|
-
type: "
|
|
272
|
+
type: "uint8",
|
|
273
|
+
},
|
|
274
|
+
],
|
|
275
|
+
stateMutability: "view",
|
|
276
|
+
type: "function",
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
inputs: [],
|
|
280
|
+
name: "getSubResult",
|
|
281
|
+
outputs: [
|
|
282
|
+
{
|
|
283
|
+
internalType: "uint8",
|
|
284
|
+
name: "",
|
|
285
|
+
type: "uint8",
|
|
201
286
|
},
|
|
202
287
|
],
|
|
203
288
|
stateMutability: "view",
|
|
@@ -219,9 +304,9 @@ const _abi = [
|
|
|
219
304
|
name: "mulTest",
|
|
220
305
|
outputs: [
|
|
221
306
|
{
|
|
222
|
-
internalType: "
|
|
307
|
+
internalType: "uint8",
|
|
223
308
|
name: "",
|
|
224
|
-
type: "
|
|
309
|
+
type: "uint8",
|
|
225
310
|
},
|
|
226
311
|
],
|
|
227
312
|
stateMutability: "nonpayable",
|
|
@@ -319,7 +404,7 @@ const _abi = [
|
|
|
319
404
|
] as const;
|
|
320
405
|
|
|
321
406
|
const _bytecode =
|
|
322
|
-
"0x608060405234801561001057600080fd5b50615d7580620000216000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637bfd4300116100665780637bfd43001461015857806380f937bc14610176578063acb38169146101a6578063de292789146101d6578063ebb571fd146101f457610093565b8063202cdc8f146100985780632e544aa0146100c85780634f5941bc146100f85780635e60e5c014610128575b600080fd5b6100b260048036038101906100ad9190614ab5565b610210565b6040516100bf9190614b12565b60405180910390f35b6100e260048036038101906100dd9190614c58565b61096b565b6040516100ef9190614b12565b60405180910390f35b610112600480360381019061010d9190614ab5565b6109fb565b60405161011f9190614c94565b60405180910390f35b610142600480360381019061013d9190614ab5565b610fda565b60405161014f9190614c94565b60405180910390f35b6101606115b9565b60405161016d9190614b12565b60405180910390f35b610190600480360381019061018b9190614d8f565b6115d0565b60405161019d9190614ddf565b60405180910390f35b6101c060048036038101906101bb9190614eb2565b611724565b6040516101cd9190614efe565b60405180910390f35b6101de611802565b6040516101eb9190614c94565b60405180910390f35b61020e6004803603810190610209919061500f565b611818565b005b600061021a61494b565b610222614990565b61022a6149b1565b6102326149e0565b61023d848888611818565b610257610252856000015186602001516118bf565b611956565b600060016101000a81548161ffff021916908361ffff160217905550610285846040015185606001516119f4565b8360000181815250506102a084600001518560600151611a8b565b8360200181815250506102bb84604001518560200151611b23565b8360400181815250506102d18360000151611bbb565b63ffffffff16600060019054906101000a900461ffff1661ffff1614801561031e57506103018360200151611bbb565b63ffffffff16600060019054906101000a900461ffff1661ffff16145b801561034f57506103328360400151611bbb565b63ffffffff16600060019054906101000a900461ffff1661ffff16145b61038e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610385906150c2565b60405180910390fd5b6103a084608001518560a00151611c59565b8260000181815250506103bb84600001518560a00151611cf0565b8260200181815250506103d684608001518560200151611d88565b8260400181815250506103f184604001518560a00151611e20565b82606001818152505061040c84608001518560600151611eb8565b8260800181815250506104228260000151611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff1614801561047757506104568260200151611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff16145b80156104ac575061048b8260400151611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff16145b80156104e157506104c08260800151611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff16145b801561051657506104f58260600151611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff16145b610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c9061512e565b60405180910390fd5b6105678460c001518560e00151611fed565b81600001818152505061058284600001518560e00151612084565b81602001818152505061059d8460c00151856020015161211c565b8160400181815250506105b884604001518560e001516121b4565b8160600181815250506105d38460c00151856060015161224c565b8160800181815250506105ee84608001518560e001516122e4565b8160a00181815250506106098460c001518560a0015161237c565b8160c0018181525050600061061d826115d0565b90508067ffffffffffffffff16600060019054906101000a900461ffff1661ffff161461067f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106769061519a565b60405180910390fd5b610695610690898760200151612414565b611956565b61ffff16600060019054906101000a900461ffff1661ffff161480156106e757506106cc6106c78660000151896124ae565b611956565b61ffff16600060019054906101000a900461ffff1661ffff16145b610726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071d9061522c565b60405180910390fd5b61073f61073a8960ff168760600151612548565b611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff1614801561079c575061077f61077a86604001518960ff166125e3565b611bbb565b63ffffffff16600060019054906101000a900461ffff1661ffff16145b6107db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d2906152be565b60405180910390fd5b6107f46107ef8960ff168760a0015161267e565b611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff16148015610855575061083461082f86608001518960ff1661271b565b611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff16145b610894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088b90615350565b60405180910390fd5b6108ad6108a88960ff168760e001516127b8565b611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff1614801561090e57506108ed6108e88660c001518960ff16612859565b611f50565b67ffffffffffffffff16600060019054906101000a900461ffff1661ffff16145b61094d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610944906153e2565b60405180910390fd5b600060019054906101000a900461ffff169550505050505092915050565b60008061097b8360000151611956565b905061098a8360200151611956565b61ffff168161ffff161480156109b357506109a88360400151611956565b61ffff168161ffff16145b6109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e99061549a565b60405180910390fd5b80915050919050565b6000610a0561494b565b610a0d614a1d565b610a15614a3e565b610a1d6149e0565b610a28848888611818565b610a42610a3d856000015186602001516128fa565b612991565b6000806101000a81548160ff021916908360ff160217905550610a6d84604001518560600151612a2f565b836000018181525050610a8884600001518560600151612ac6565b836020018181525050610aa384604001518560200151612b5e565b8360400181815250506000610ab78461096b565b905060008054906101000a900460ff1660ff168161ffff1614610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0690615506565b60405180910390fd5b610b2185608001518660a00151612bf6565b836000018181525050610b3c85600001518660a00151612c8d565b836020018181525050610b5785608001518660200151612d25565b836040018181525050610b7285604001518660a00151612dbd565b836060018181525050610b8d85608001518660600151612e55565b8360800181815250506000610ba184611724565b90508063ffffffff1660008054906101000a900460ff1660ff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290615572565b60405180910390fd5b610c0d8660c001518760e00151612eed565b836000018181525050610c2886600001518760e00151612f84565b836020018181525050610c438660c00151876020015161301c565b836040018181525050610c5e86604001518760e001516130b4565b836060018181525050610c798660c00151876060015161314c565b836080018181525050610c9486608001518760e001516131e4565b8360a0018181525050610caf8660c001518760a0015161327c565b8360c00181815250506000610cc3846115d0565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff1614610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d18906155de565b60405180910390fd5b610d37610d328b8960200151613314565b612991565b60ff1660008054906101000a900460ff1660ff16148015610d7f5750610d69610d6488600001518b6133ae565b612991565b60ff1660008054906101000a900460ff1660ff16145b610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590615670565b60405180910390fd5b610dd7610dd28b60ff168960600151613448565b611956565b61ffff1660008054906101000a900460ff1660ff16148015610e245750610e0d610e0888604001518b60ff166134e3565b611956565b61ffff1660008054906101000a900460ff1660ff16145b610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a90615702565b60405180910390fd5b610e7c610e778b60ff168960a0015161357e565b611bbb565b63ffffffff1660008054906101000a900460ff1660ff16148015610ecd5750610eb4610eaf88608001518b60ff1661361b565b611bbb565b63ffffffff1660008054906101000a900460ff1660ff16145b610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390615794565b60405180910390fd5b610f25610f208b60ff168960e001516136b8565b611f50565b67ffffffffffffffff1660008054906101000a900460ff1660ff16148015610f7e5750610f61610f5c8860c001518b60ff16613759565b611f50565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490615826565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000610fe461494b565b610fec614a1d565b610ff4614a3e565b610ffc6149e0565b611007848888611818565b61102161101c856000015186602001516137fa565b612991565b6000806101000a81548160ff021916908360ff16021790555061104c84604001518560600151613891565b83600001818152505061106784600001518560600151613928565b836020018181525050611082846040015185602001516139c0565b83604001818152505060006110968461096b565b905060008054906101000a900460ff1660ff168161ffff16146110ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e590615892565b60405180910390fd5b61110085608001518660a00151613a58565b83600001818152505061111b85600001518660a00151613aef565b83602001818152505061113685608001518660200151613b87565b83604001818152505061115185604001518660a00151613c1f565b83606001818152505061116c85608001518660600151613cb7565b836080018181525050600061118084611724565b90508063ffffffff1660008054906101000a900460ff1660ff16146111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d1906158fe565b60405180910390fd5b6111ec8660c001518760e00151613d4f565b83600001818152505061120786600001518760e00151613de6565b8360200181815250506112228660c001518760200151613e7e565b83604001818152505061123d86604001518760e00151613f16565b8360600181815250506112588660c001518760600151613fae565b83608001818152505061127386608001518760e00151614046565b8360a001818152505061128e8660c001518760a001516140de565b8360c001818152505060006112a2846115d0565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff1614611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f79061596a565b60405180910390fd5b6113166113118b8960200151614176565b612991565b60ff1660008054906101000a900460ff1660ff1614801561135e575061134861134388600001518b614210565b612991565b60ff1660008054906101000a900460ff1660ff16145b61139d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611394906159fc565b60405180910390fd5b6113b66113b18b60ff1689606001516142aa565b611956565b61ffff1660008054906101000a900460ff1660ff1614801561140357506113ec6113e788604001518b60ff16614345565b611956565b61ffff1660008054906101000a900460ff1660ff16145b611442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143990615a8e565b60405180910390fd5b61145b6114568b60ff168960a001516143e0565b611bbb565b63ffffffff1660008054906101000a900460ff1660ff161480156114ac575061149361148e88608001518b60ff1661447d565b611bbb565b63ffffffff1660008054906101000a900460ff1660ff16145b6114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e290615b20565b60405180910390fd5b6115046114ff8b60ff168960e0015161451a565b611f50565b67ffffffffffffffff1660008054906101000a900460ff1660ff1614801561155d575061154061153b8860c001518b60ff166145bb565b611f50565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b61159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390615bb2565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b60008060019054906101000a900461ffff16905090565b6000806115e08360000151611f50565b90506115ef8360200151611f50565b67ffffffffffffffff168167ffffffffffffffff1614801561163057506116198360400151611f50565b67ffffffffffffffff168167ffffffffffffffff16145b801561165b57506116448360800151611f50565b67ffffffffffffffff168167ffffffffffffffff16145b8015611686575061166f8360600151611f50565b67ffffffffffffffff168167ffffffffffffffff16145b80156116b1575061169a8360c00151611f50565b67ffffffffffffffff168167ffffffffffffffff16145b80156116dc57506116c58360a00151611f50565b67ffffffffffffffff168167ffffffffffffffff16145b61171b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117129061549a565b60405180910390fd5b80915050919050565b6000806117348360000151611bbb565b90506117438360200151611bbb565b63ffffffff168163ffffffff1614801561177457506117658360400151611bbb565b63ffffffff168163ffffffff16145b801561179757506117888360800151611bbb565b63ffffffff168163ffffffff16145b80156117ba57506117ab8360600151611bbb565b63ffffffff168163ffffffff16145b6117f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f09061549a565b60405180910390fd5b80915050919050565b60008060009054906101000a900460ff16905090565b6118218261465c565b8360000181815250506118338161465c565b8360200181815250506118488260ff166146fd565b83604001818152505061185d8160ff166146fd565b8360600181815250506118728260ff1661479f565b8360800181815250506118878160ff1661479f565b8360a001818152505061189c8260ff16614843565b8360c00181815250506118b18160ff16614843565b8360e0018181525050505050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46118eb60018060006148ea565b85856040518463ffffffff1660e01b815260040161190b93929190615c1c565b6020604051808303816000875af115801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616002600481111561198957611988615cac565b5b60f81b846040518363ffffffff1660e01b81526004016119aa929190615d16565b6020604051808303816000875af11580156119c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ed9190615c7f565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611a2060028060006148ea565b85856040518463ffffffff1660e01b8152600401611a4093929190615c1c565b6020604051808303816000875af1158015611a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a839190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611ab86001600260006148ea565b85856040518463ffffffff1660e01b8152600401611ad893929190615c1c565b6020604051808303816000875af1158015611af7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1b9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611b506002600160006148ea565b85856040518463ffffffff1660e01b8152600401611b7093929190615c1c565b6020604051808303816000875af1158015611b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb39190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160036004811115611bee57611bed615cac565b5b60f81b846040518363ffffffff1660e01b8152600401611c0f929190615d16565b6020604051808303816000875af1158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615c7f565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611c8560038060006148ea565b85856040518463ffffffff1660e01b8152600401611ca593929190615c1c565b6020604051808303816000875af1158015611cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce89190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611d1d6001600360006148ea565b85856040518463ffffffff1660e01b8152600401611d3d93929190615c1c565b6020604051808303816000875af1158015611d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d809190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611db56003600160006148ea565b85856040518463ffffffff1660e01b8152600401611dd593929190615c1c565b6020604051808303816000875af1158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611e4d6002600360006148ea565b85856040518463ffffffff1660e01b8152600401611e6d93929190615c1c565b6020604051808303816000875af1158015611e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb09190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb4611ee56003600260006148ea565b85856040518463ffffffff1660e01b8152600401611f0593929190615c1c565b6020604051808303816000875af1158015611f24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f489190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600480811115611f8257611f81615cac565b5b60f81b846040518363ffffffff1660e01b8152600401611fa3929190615d16565b6020604051808303816000875af1158015611fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe69190615c7f565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461201960048060006148ea565b85856040518463ffffffff1660e01b815260040161203993929190615c1c565b6020604051808303816000875af1158015612058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207c9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46120b16001600460006148ea565b85856040518463ffffffff1660e01b81526004016120d193929190615c1c565b6020604051808303816000875af11580156120f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121149190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46121496004600160006148ea565b85856040518463ffffffff1660e01b815260040161216993929190615c1c565b6020604051808303816000875af1158015612188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ac9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46121e16002600460006148ea565b85856040518463ffffffff1660e01b815260040161220193929190615c1c565b6020604051808303816000875af1158015612220573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122449190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46122796004600260006148ea565b85856040518463ffffffff1660e01b815260040161229993929190615c1c565b6020604051808303816000875af11580156122b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122dc9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46123116003600460006148ea565b85856040518463ffffffff1660e01b815260040161233193929190615c1c565b6020604051808303816000875af1158015612350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123749190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46123a96004600360006148ea565b85856040518463ffffffff1660e01b81526004016123c993929190615c1c565b6020604051808303816000875af11580156123e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240c9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461244060018060016148ea565b8560ff16856040518463ffffffff1660e01b815260040161246393929190615c1c565b6020604051808303816000875af1158015612482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a69190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46124da60018060026148ea565b858560ff166040518463ffffffff1660e01b81526004016124fd93929190615c1c565b6020604051808303816000875af115801561251c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125409190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461257460028060016148ea565b8561ffff16856040518463ffffffff1660e01b815260040161259893929190615c1c565b6020604051808303816000875af11580156125b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125db9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461260f60018060026148ea565b858561ffff166040518463ffffffff1660e01b815260040161263393929190615c1c565b6020604051808303816000875af1158015612652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126769190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46126aa60038060016148ea565b8563ffffffff16856040518463ffffffff1660e01b81526004016126d093929190615c1c565b6020604051808303816000875af11580156126ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127139190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461274760038060026148ea565b858563ffffffff166040518463ffffffff1660e01b815260040161276d93929190615c1c565b6020604051808303816000875af115801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb46127e460048060016148ea565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161280e93929190615c1c565b6020604051808303816000875af115801561282d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128519190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663f1d21bb461288560048060026148ea565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016128af93929190615c1c565b6020604051808303816000875af11580156128ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f29190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261292660018060006148ea565b85856040518463ffffffff1660e01b815260040161294693929190615c1c565b6020604051808303816000875af1158015612965573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129899190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600160048111156129c4576129c3615cac565b5b60f81b846040518363ffffffff1660e01b81526004016129e5929190615d16565b6020604051808303816000875af1158015612a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a289190615c7f565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612a5b60028060006148ea565b85856040518463ffffffff1660e01b8152600401612a7b93929190615c1c565b6020604051808303816000875af1158015612a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abe9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612af36001600260006148ea565b85856040518463ffffffff1660e01b8152600401612b1393929190615c1c565b6020604051808303816000875af1158015612b32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b569190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612b8b6002600160006148ea565b85856040518463ffffffff1660e01b8152600401612bab93929190615c1c565b6020604051808303816000875af1158015612bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bee9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612c2260038060006148ea565b85856040518463ffffffff1660e01b8152600401612c4293929190615c1c565b6020604051808303816000875af1158015612c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c859190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612cba6001600360006148ea565b85856040518463ffffffff1660e01b8152600401612cda93929190615c1c565b6020604051808303816000875af1158015612cf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d1d9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612d526003600160006148ea565b85856040518463ffffffff1660e01b8152600401612d7293929190615c1c565b6020604051808303816000875af1158015612d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db59190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612dea6002600360006148ea565b85856040518463ffffffff1660e01b8152600401612e0a93929190615c1c565b6020604051808303816000875af1158015612e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e4d9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612e826003600260006148ea565b85856040518463ffffffff1660e01b8152600401612ea293929190615c1c565b6020604051808303816000875af1158015612ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee59190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612f1960048060006148ea565b85856040518463ffffffff1660e01b8152600401612f3993929190615c1c565b6020604051808303816000875af1158015612f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7c9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf2612fb16001600460006148ea565b85856040518463ffffffff1660e01b8152600401612fd193929190615c1c565b6020604051808303816000875af1158015612ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130149190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26130496004600160006148ea565b85856040518463ffffffff1660e01b815260040161306993929190615c1c565b6020604051808303816000875af1158015613088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ac9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26130e16002600460006148ea565b85856040518463ffffffff1660e01b815260040161310193929190615c1c565b6020604051808303816000875af1158015613120573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131449190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26131796004600260006148ea565b85856040518463ffffffff1660e01b815260040161319993929190615c1c565b6020604051808303816000875af11580156131b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131dc9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26132116003600460006148ea565b85856040518463ffffffff1660e01b815260040161323193929190615c1c565b6020604051808303816000875af1158015613250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132749190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26132a96004600360006148ea565b85856040518463ffffffff1660e01b81526004016132c993929190615c1c565b6020604051808303816000875af11580156132e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330c9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261334060018060016148ea565b8560ff16856040518463ffffffff1660e01b815260040161336393929190615c1c565b6020604051808303816000875af1158015613382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133a69190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26133da60018060026148ea565b858560ff166040518463ffffffff1660e01b81526004016133fd93929190615c1c565b6020604051808303816000875af115801561341c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134409190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261347460028060016148ea565b8561ffff16856040518463ffffffff1660e01b815260040161349893929190615c1c565b6020604051808303816000875af11580156134b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134db9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261350f60018060026148ea565b858561ffff166040518463ffffffff1660e01b815260040161353393929190615c1c565b6020604051808303816000875af1158015613552573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135769190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26135aa60038060016148ea565b8563ffffffff16856040518463ffffffff1660e01b81526004016135d093929190615c1c565b6020604051808303816000875af11580156135ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136139190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261364760038060026148ea565b858563ffffffff166040518463ffffffff1660e01b815260040161366d93929190615c1c565b6020604051808303816000875af115801561368c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b09190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf26136e460048060016148ea565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161370e93929190615c1c565b6020604051808303816000875af115801561372d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137519190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663371d1bf261378560048060026148ea565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016137af93929190615c1c565b6020604051808303816000875af11580156137ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137f29190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061382660018060006148ea565b85856040518463ffffffff1660e01b815260040161384693929190615c1c565b6020604051808303816000875af1158015613865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138899190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506138bd60028060006148ea565b85856040518463ffffffff1660e01b81526004016138dd93929190615c1c565b6020604051808303816000875af11580156138fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139209190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506139556001600260006148ea565b85856040518463ffffffff1660e01b815260040161397593929190615c1c565b6020604051808303816000875af1158015613994573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139b89190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506139ed6002600160006148ea565b85856040518463ffffffff1660e01b8152600401613a0d93929190615c1c565b6020604051808303816000875af1158015613a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a509190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613a8460038060006148ea565b85856040518463ffffffff1660e01b8152600401613aa493929190615c1c565b6020604051808303816000875af1158015613ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae79190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613b1c6001600360006148ea565b85856040518463ffffffff1660e01b8152600401613b3c93929190615c1c565b6020604051808303816000875af1158015613b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b7f9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613bb46003600160006148ea565b85856040518463ffffffff1660e01b8152600401613bd493929190615c1c565b6020604051808303816000875af1158015613bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c179190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613c4c6002600360006148ea565b85856040518463ffffffff1660e01b8152600401613c6c93929190615c1c565b6020604051808303816000875af1158015613c8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613caf9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613ce46003600260006148ea565b85856040518463ffffffff1660e01b8152600401613d0493929190615c1c565b6020604051808303816000875af1158015613d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d479190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613d7b60048060006148ea565b85856040518463ffffffff1660e01b8152600401613d9b93929190615c1c565b6020604051808303816000875af1158015613dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dde9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613e136001600460006148ea565b85856040518463ffffffff1660e01b8152600401613e3393929190615c1c565b6020604051808303816000875af1158015613e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e769190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613eab6004600160006148ea565b85856040518463ffffffff1660e01b8152600401613ecb93929190615c1c565b6020604051808303816000875af1158015613eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f0e9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613f436002600460006148ea565b85856040518463ffffffff1660e01b8152600401613f6393929190615c1c565b6020604051808303816000875af1158015613f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fa69190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d0150613fdb6004600260006148ea565b85856040518463ffffffff1660e01b8152600401613ffb93929190615c1c565b6020604051808303816000875af115801561401a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061403e9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506140736003600460006148ea565b85856040518463ffffffff1660e01b815260040161409393929190615c1c565b6020604051808303816000875af11580156140b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140d69190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061410b6004600360006148ea565b85856040518463ffffffff1660e01b815260040161412b93929190615c1c565b6020604051808303816000875af115801561414a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416e9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506141a260018060016148ea565b8560ff16856040518463ffffffff1660e01b81526004016141c593929190615c1c565b6020604051808303816000875af11580156141e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142089190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061423c60018060026148ea565b858560ff166040518463ffffffff1660e01b815260040161425f93929190615c1c565b6020604051808303816000875af115801561427e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a29190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506142d660028060016148ea565b8561ffff16856040518463ffffffff1660e01b81526004016142fa93929190615c1c565b6020604051808303816000875af1158015614319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061433d9190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061437160028060026148ea565b858561ffff166040518463ffffffff1660e01b815260040161439593929190615c1c565b6020604051808303816000875af11580156143b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143d89190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061440c60038060016148ea565b8563ffffffff16856040518463ffffffff1660e01b815260040161443293929190615c1c565b6020604051808303816000875af1158015614451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144759190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506144a960038060026148ea565b858563ffffffff166040518463ffffffff1660e01b81526004016144cf93929190615c1c565b6020604051808303816000875af11580156144ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145129190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d015061454660048060016148ea565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161457093929190615c1c565b6020604051808303816000875af115801561458f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145b39190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16638c5d01506145e760048060026148ea565b858567ffffffffffffffff166040518463ffffffff1660e01b815260040161461193929190615c1c565b6020604051808303816000875af1158015614630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146549190615c7f565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606001600481111561468f5761468e615cac565b5b60f81b8460ff166040518363ffffffff1660e01b81526004016146b3929190615d16565b6020604051808303816000875af11580156146d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146f69190615c7f565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600260048111156147305761472f615cac565b5b60f81b8461ffff166040518363ffffffff1660e01b8152600401614755929190615d16565b6020604051808303816000875af1158015614774573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147989190615c7f565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600360048111156147d2576147d1615cac565b5b60f81b8463ffffffff166040518363ffffffff1660e01b81526004016147f9929190615d16565b6020604051808303816000875af1158015614818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061483c9190615c7f565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561487557614874615cac565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016148a0929190615d16565b6020604051808303816000875af11580156148bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148e39190615c7f565b9050919050565b60008160028111156148ff576148fe615cac565b5b60ff16600884600481111561491757614916615cac565b5b61ffff16901b61ffff16601086600481111561493657614935615cac565b5b62ffffff16901b171760e81b90509392505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600060ff82169050919050565b614a9281614a7c565b8114614a9d57600080fd5b50565b600081359050614aaf81614a89565b92915050565b60008060408385031215614acc57614acb614a77565b5b6000614ada85828601614aa0565b9250506020614aeb85828601614aa0565b9150509250929050565b600061ffff82169050919050565b614b0c81614af5565b82525050565b6000602082019050614b276000830184614b03565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614b7b82614b32565b810181811067ffffffffffffffff82111715614b9a57614b99614b43565b5b80604052505050565b6000614bad614a6d565b9050614bb98282614b72565b919050565b6000819050919050565b614bd181614bbe565b8114614bdc57600080fd5b50565b600081359050614bee81614bc8565b92915050565b600060608284031215614c0a57614c09614b2d565b5b614c146060614ba3565b90506000614c2484828501614bdf565b6000830152506020614c3884828501614bdf565b6020830152506040614c4c84828501614bdf565b60408301525092915050565b600060608284031215614c6e57614c6d614a77565b5b6000614c7c84828501614bf4565b91505092915050565b614c8e81614a7c565b82525050565b6000602082019050614ca96000830184614c85565b92915050565b614cb881614bbe565b8114614cc357600080fd5b50565b600081359050614cd581614caf565b92915050565b600060e08284031215614cf157614cf0614b2d565b5b614cfb60e0614ba3565b90506000614d0b84828501614cc6565b6000830152506020614d1f84828501614cc6565b6020830152506040614d3384828501614cc6565b6040830152506060614d4784828501614cc6565b6060830152506080614d5b84828501614cc6565b60808301525060a0614d6f84828501614cc6565b60a08301525060c0614d8384828501614cc6565b60c08301525092915050565b600060e08284031215614da557614da4614a77565b5b6000614db384828501614cdb565b91505092915050565b600067ffffffffffffffff82169050919050565b614dd981614dbc565b82525050565b6000602082019050614df46000830184614dd0565b92915050565b614e0381614bbe565b8114614e0e57600080fd5b50565b600081359050614e2081614dfa565b92915050565b600060a08284031215614e3c57614e3b614b2d565b5b614e4660a0614ba3565b90506000614e5684828501614e11565b6000830152506020614e6a84828501614e11565b6020830152506040614e7e84828501614e11565b6040830152506060614e9284828501614e11565b6060830152506080614ea684828501614e11565b60808301525092915050565b600060a08284031215614ec857614ec7614a77565b5b6000614ed684828501614e26565b91505092915050565b600063ffffffff82169050919050565b614ef881614edf565b82525050565b6000602082019050614f136000830184614eef565b92915050565b614f2281614bbe565b8114614f2d57600080fd5b50565b600081359050614f3f81614f19565b92915050565b60006101008284031215614f5c57614f5b614b2d565b5b614f67610100614ba3565b90506000614f7784828501614f30565b6000830152506020614f8b84828501614f30565b6020830152506040614f9f84828501614bdf565b6040830152506060614fb384828501614bdf565b6060830152506080614fc784828501614e11565b60808301525060a0614fdb84828501614e11565b60a08301525060c0614fef84828501614cc6565b60c08301525060e061500384828501614cc6565b60e08301525092915050565b6000806000610140848603121561502957615028614a77565b5b600061503786828701614f45565b93505061010061504986828701614aa0565b92505061012061505b86828701614aa0565b9150509250925092565b600082825260208201905092915050565b7f6d756c546573743a2063617374203136206661696c6564000000000000000000600082015250565b60006150ac601783615065565b91506150b782615076565b602082019050919050565b600060208201905081810360008301526150db8161509f565b9050919050565b7f6d756c546573743a2063617374203332206661696c6564000000000000000000600082015250565b6000615118601783615065565b9150615123826150e2565b602082019050919050565b600060208201905081810360008301526151478161510b565b9050919050565b7f6d756c546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000615184601783615065565b915061518f8261514e565b602082019050919050565b600060208201905081810360008301526151b381615177565b9050919050565b7f6d756c546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000615216602783615065565b9150615221826151ba565b604082019050919050565b6000602082019050818103600083015261524581615209565b9050919050565b7f6d756c546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006152a8602883615065565b91506152b38261524c565b604082019050919050565b600060208201905081810360008301526152d78161529b565b9050919050565b7f6d756c546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061533a602883615065565b9150615345826152de565b604082019050919050565b600060208201905081810360008301526153698161532d565b9050919050565b7f6d756c546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006153cc602883615065565b91506153d782615370565b604082019050919050565b600060208201905081810360008301526153fb816153bf565b9050919050565b7f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960008201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260208201527f6573756c74730000000000000000000000000000000000000000000000000000604082015250565b6000615484604683615065565b915061548f82615402565b606082019050919050565b600060208201905081810360008301526154b381615477565b9050919050565b7f737562546573743a2063617374203136206661696c6564000000000000000000600082015250565b60006154f0601783615065565b91506154fb826154ba565b602082019050919050565b6000602082019050818103600083015261551f816154e3565b9050919050565b7f737562546573743a2063617374203332206661696c6564000000000000000000600082015250565b600061555c601783615065565b915061556782615526565b602082019050919050565b6000602082019050818103600083015261558b8161554f565b9050919050565b7f737562546573743a2063617374203634206661696c6564000000000000000000600082015250565b60006155c8601783615065565b91506155d382615592565b602082019050919050565b600060208201905081810360008301526155f7816155bb565b9050919050565b7f737562546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b600061565a602783615065565b9150615665826155fe565b604082019050919050565b600060208201905081810360008301526156898161564d565b9050919050565b7f737562546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006156ec602883615065565b91506156f782615690565b604082019050919050565b6000602082019050818103600083015261571b816156df565b9050919050565b7f737562546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061577e602883615065565b915061578982615722565b604082019050919050565b600060208201905081810360008301526157ad81615771565b9050919050565b7f737562546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615810602883615065565b915061581b826157b4565b604082019050919050565b6000602082019050818103600083015261583f81615803565b9050919050565b7f616464546573743a2063617374203136206661696c6564000000000000000000600082015250565b600061587c601783615065565b915061588782615846565b602082019050919050565b600060208201905081810360008301526158ab8161586f565b9050919050565b7f616464546573743a2063617374203332206661696c6564000000000000000000600082015250565b60006158e8601783615065565b91506158f3826158b2565b602082019050919050565b60006020820190508181036000830152615917816158db565b9050919050565b7f616464546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000615954601783615065565b915061595f8261591e565b602082019050919050565b6000602082019050818103600083015261598381615947565b9050919050565b7f616464546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b60006159e6602783615065565b91506159f18261598a565b604082019050919050565b60006020820190508181036000830152615a15816159d9565b9050919050565b7f616464546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615a78602883615065565b9150615a8382615a1c565b604082019050919050565b60006020820190508181036000830152615aa781615a6b565b9050919050565b7f616464546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615b0a602883615065565b9150615b1582615aae565b604082019050919050565b60006020820190508181036000830152615b3981615afd565b9050919050565b7f616464546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615b9c602883615065565b9150615ba782615b40565b604082019050919050565b60006020820190508181036000830152615bcb81615b8f565b9050919050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b615c0781615bd2565b82525050565b615c1681614bbe565b82525050565b6000606082019050615c316000830186615bfe565b615c3e6020830185615c0d565b615c4b6040830184615c0d565b949350505050565b615c5c81614bbe565b8114615c6757600080fd5b50565b600081519050615c7981615c53565b92915050565b600060208284031215615c9557615c94614a77565b5b6000615ca384828501615c6a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b615d1081615cdb565b82525050565b6000604082019050615d2b6000830185615d07565b615d386020830184615c0d565b939250505056fea26469706673582212203b298bd31f413b95437387420b618b938befb55d7b96889d1a8add32386fa8f064736f6c63430008140033";
|
|
407
|
+
"0x608060405234801561001057600080fd5b5061495f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806380f937bc1161008c578063acb3816911610066578063acb38169146101c7578063d3e4744d146101ef578063e1a1936e14610200578063ebb571fd1461021357600080fd5b806380f937bc14610178578063971bbe6f146101a45780639bc8bbb1146101b457600080fd5b80632e544aa0116100bd5780632e544aa01461012c5780634f5941bc146101525780635e60e5c01461016557600080fd5b80630d1d0635146100e4578063202cdc8f1461010e57806324ad7b3014610121575b600080fd5b6100f76100f23660046145d1565b610228565b60405160ff90911681526020015b60405180910390f35b6100f761011c3660046145d1565b6108be565b60005460ff166100f7565b61013f61013a366004614655565b610fa5565b60405161ffff9091168152602001610105565b6100f76101603660046145d1565b61108b565b6100f76101733660046145d1565b6116fd565b61018b6101863660046146d8565b611cfe565b60405167ffffffffffffffff9091168152602001610105565b600054610100900460ff166100f7565b6100f76101c23660046145d1565b611ea1565b6101da6101d5366004614783565b6124a6565b60405163ffffffff9091168152602001610105565b60005462010000900460ff166100f7565b6100f761020e3660046145d1565b6125d3565b61022661022136600461481a565b612c27565b005b600061027260405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61029660405180606001604052806000815260200160008152602001600081525090565b6102c86040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6103086040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610313848888612c27565b600061032f61032a86600001518760200151612cae565b612d85565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff83161790556040860151606087015191925061037291612e22565b8452845160608601516103859190612e39565b8460200181815250506103a085604001518660200151612e51565b604085015260006103b085610fa5565b90508160ff168161ffff161461040d5760405162461bcd60e51b815260206004820152601760248201527f616464546573743a2063617374203136206661696c656400000000000000000060448201526064015b60405180910390fd5b61041f86608001518760a00151612e69565b8452855160a08701516104329190612e80565b84602001818152505061044d86608001518760200151612e98565b84604001818152505061046886604001518760a00151612eb0565b84606001818152505061048386608001518760600151612ec8565b60808501526000610493856124a6565b90508063ffffffff168360ff16146104ed5760405162461bcd60e51b815260206004820152601760248201527f616464546573743a2063617374203332206661696c65640000000000000000006044820152606401610404565b6104ff8760c001518860e00151612ee0565b8452865160e08801516105129190612ef7565b84602001818152505061052d8760c001518860200151612f0f565b84604001818152505061054887604001518860e00151612f27565b8460600181815250506105638760c001518860600151612f3f565b84608001818152505061057e87608001518860e00151612f57565b8460a00181815250506105998760c001518860a00151612f6f565b60c085015260006105a985611cfe565b90508067ffffffffffffffff168460ff16146106075760405162461bcd60e51b815260206004820152601760248201527f616464546573743a2063617374203634206661696c65640000000000000000006044820152606401610404565b61061861032a8c8a60200151612f87565b60ff168460ff16148015610641575061063861032a89600001518c61300b565b60ff168460ff16145b6106b35760405162461bcd60e51b815260206004820152602760248201527f616464546573743a2074657374203820626974732077697468207363616c617260448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610404565b6106cc6106c78c60ff168a60600151613090565b613116565b61ffff168460ff161480156106fa57506106f06106c789604001518c60ff16613126565b61ffff168460ff16145b6107575760405162461bcd60e51b815260206004820152602860248201527f616464546573743a207465737420313620626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b61077061076b8c60ff168a60a001516131ab565b613233565b63ffffffff168460ff161480156107a2575061079661076b89608001518c60ff16613243565b63ffffffff168460ff16145b6107ff5760405162461bcd60e51b815260206004820152602860248201527f616464546573743a207465737420333220626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b6108186108138c60ff168a60e001516132cb565b613357565b67ffffffffffffffff168460ff1614801561085257506108426108138960c001518c60ff16613367565b67ffffffffffffffff168460ff16145b6108af5760405162461bcd60e51b815260206004820152602860248201527f616464546573743a207465737420363420626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b50919998505050505050505050565b600061090860405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61092c60405180606001604052806000815260200160008152602001600081525090565b61095e6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b61099e6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6109a9848888612c27565b6109be61032a856000015186602001516133f3565b600060026101000a81548160ff021916908360ff1602179055506109ea846040015185606001516134b9565b8352835160608501516109fd91906134ce565b836020018181525050610a18846040015185602001516134e4565b60408401526000610a2884610fa5565b60005490915060ff620100009091041661ffff821614610a8a5760405162461bcd60e51b815260206004820152601760248201527f6d756c546573743a2063617374203136206661696c65640000000000000000006044820152606401610404565b610a9c85608001518660a001516134fa565b8352845160a0860151610aaf919061350f565b836020018181525050610aca85608001518660200151613525565b836040018181525050610ae585604001518660a0015161353b565b836060018181525050610b0085608001518660600151613551565b60808401526000610b10846124a6565b60005490915060ff620100009091041663ffffffff821614610b745760405162461bcd60e51b815260206004820152601760248201527f6d756c546573743a2063617374203332206661696c65640000000000000000006044820152606401610404565b610b868660c001518760e00151613567565b8352855160e0870151610b99919061357c565b836020018181525050610bb48660c001518760200151613592565b836040018181525050610bcf86604001518760e001516135a8565b836060018181525050610bea8660c0015187606001516135be565b836080018181525050610c0586608001518760e001516135d4565b8360a0018181525050610c208660c001518760a001516135ea565b60c08401526000610c3084611cfe565b60005490915060ff620100009091041667ffffffffffffffff821614610c985760405162461bcd60e51b815260206004820152601760248201527f6d756c546573743a2063617374203634206661696c65640000000000000000006044820152606401610404565b610ca961032a8b8960200151613600565b60005462010000900460ff9081169116148015610ce45750610cd261032a88600001518b613682565b60005462010000900460ff9081169116145b610d565760405162461bcd60e51b815260206004820152602760248201527f6d756c546573743a2074657374203820626974732077697468207363616c617260448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610404565b610d6a6106c78b60ff168960600151613705565b60005460ff620100009091041661ffff91909116148015610db05750610d9a6106c788604001518b60ff16613789565b60005460ff620100009091041661ffff91909116145b610e0d5760405162461bcd60e51b815260206004820152602860248201527f6d756c546573743a207465737420313620626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b610e2161076b8b60ff168960a0015161380c565b60005460ff620100009091041663ffffffff91909116148015610e6b5750610e5361076b88608001518b60ff16613892565b60005460ff620100009091041663ffffffff91909116145b610ec85760405162461bcd60e51b815260206004820152602860248201527f6d756c546573743a207465737420333220626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b610edc6108138b60ff168960e00151613918565b60005460ff620100009091041667ffffffffffffffff91909116148015610f2e5750610f126108138860c001518b60ff166139a2565b60005460ff620100009091041667ffffffffffffffff91909116145b610f8b5760405162461bcd60e51b815260206004820152602860248201527f6d756c546573743a207465737420363420626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b505060005462010000900460ff1698975050505050505050565b600080610fb58360000151613116565b9050610fc48360200151613116565b61ffff168161ffff16148015610fed5750610fe28360400151613116565b61ffff168161ffff16145b6110855760405162461bcd60e51b815260206004820152604660248201527f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960448201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260648201527f6573756c74730000000000000000000000000000000000000000000000000000608482015260a401610404565b92915050565b60006110d560405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6110f960405180606001604052806000815260200160008152602001600081525090565b61112b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b61116b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b611176848888612c27565b600061118d61032a86600001518760200151613a2c565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff841602179055604086015160608701519192506111d491613a41565b8452845160608601516111e79190613a56565b84602001818152505061120285604001518660200151613a6c565b6040850152600061121285610fa5565b90508160ff168161ffff161461126a5760405162461bcd60e51b815260206004820152601760248201527f737562546573743a2063617374203136206661696c65640000000000000000006044820152606401610404565b61127c86608001518760a00151613a82565b8452855160a087015161128f9190613a97565b8460200181815250506112aa86608001518760200151613aad565b8460400181815250506112c586604001518760a00151613ac3565b8460600181815250506112e086608001518760600151613ad9565b608085015260006112f0856124a6565b90508063ffffffff168360ff161461134a5760405162461bcd60e51b815260206004820152601760248201527f737562546573743a2063617374203332206661696c65640000000000000000006044820152606401610404565b61135c8760c001518860e00151613aef565b8452865160e088015161136f9190613b04565b84602001818152505061138a8760c001518860200151613b1a565b8460400181815250506113a587604001518860e00151613b30565b8460600181815250506113c08760c001518860600151613b46565b8460800181815250506113db87608001518860e00151613b5c565b8460a00181815250506113f68760c001518860a00151613b72565b60c0850152600061140685611cfe565b90508067ffffffffffffffff168460ff16146114645760405162461bcd60e51b815260206004820152601760248201527f737562546573743a2063617374203634206661696c65640000000000000000006044820152606401610404565b61147561032a8c8a60200151613b88565b60ff168460ff1614801561149e575061149561032a89600001518c613b9d565b60ff168460ff16145b6115105760405162461bcd60e51b815260206004820152602760248201527f737562546573743a2074657374203820626974732077697468207363616c617260448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610404565b6115246106c78c60ff168a60600151613bb3565b61ffff168460ff1614801561155257506115486106c789604001518c60ff16613bc9565b61ffff168460ff16145b6115af5760405162461bcd60e51b815260206004820152602860248201527f737562546573743a207465737420313620626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b6115c361076b8c60ff168a60a00151613bde565b63ffffffff168460ff161480156115f557506115e961076b89608001518c60ff16613bf4565b63ffffffff168460ff16145b6116525760405162461bcd60e51b815260206004820152602860248201527f737562546573743a207465737420333220626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b6116666108138c60ff168a60e00151613c0a565b67ffffffffffffffff168460ff161480156116a057506116906108138960c001518c60ff16613c20565b67ffffffffffffffff168460ff16145b6108af5760405162461bcd60e51b815260206004820152602860248201527f737562546573743a207465737420363420626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b600061174760405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61176b60405180606001604052806000815260200160008152602001600081525090565b61179d6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6117dd6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6117e8848888612c27565b60006117ff61032a86600001518760200151613c36565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff83161790556040860151606087015191925061184291613c4b565b8452845160608601516118559190613c60565b84602001818152505061187085604001518660200151613c76565b6040850152600061188085610fa5565b90508160ff168161ffff16146118d85760405162461bcd60e51b815260206004820152601760248201527f616464546573743a2063617374203136206661696c65640000000000000000006044820152606401610404565b6118ea86608001518760a00151613c8c565b8452855160a08701516118fd9190613ca1565b84602001818152505061191886608001518760200151613cb7565b84604001818152505061193386604001518760a00151613ccd565b84606001818152505061194e86608001518760600151613ce3565b6080850152600061195e856124a6565b90508063ffffffff168360ff16146119b85760405162461bcd60e51b815260206004820152601760248201527f616464546573743a2063617374203332206661696c65640000000000000000006044820152606401610404565b6119ca8760c001518860e00151613cf9565b8452865160e08801516119dd9190613d0e565b8460200181815250506119f88760c001518860200151613d24565b846040018181525050611a1387604001518860e00151613d3a565b846060018181525050611a2e8760c001518860600151613d50565b846080018181525050611a4987608001518860e00151613d66565b8460a0018181525050611a648760c001518860a00151613d7c565b60c08501526000611a7485611cfe565b90508067ffffffffffffffff168460ff1614611ad25760405162461bcd60e51b815260206004820152601760248201527f616464546573743a2063617374203634206661696c65640000000000000000006044820152606401610404565b611ae361032a8c8a60200151613d92565b60ff168460ff16148015611b0c5750611b0361032a89600001518c613da7565b60ff168460ff16145b611b7e5760405162461bcd60e51b815260206004820152602760248201527f616464546573743a2074657374203820626974732077697468207363616c617260448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610404565b611b926106c78c60ff168a60600151613dbd565b61ffff168460ff16148015611bc05750611bb66106c789604001518c60ff16613dd3565b61ffff168460ff16145b611c1d5760405162461bcd60e51b815260206004820152602860248201527f616464546573743a207465737420313620626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b611c3161076b8c60ff168a60a00151613de8565b63ffffffff168460ff16148015611c635750611c5761076b89608001518c60ff16613dfe565b63ffffffff168460ff16145b611cc05760405162461bcd60e51b815260206004820152602860248201527f616464546573743a207465737420333220626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b611cd46108138c60ff168a60e00151613e14565b67ffffffffffffffff168460ff1614801561085257506108426108138960c001518c60ff16613e2a565b600080611d0e8360000151613357565b9050611d1d8360200151613357565b67ffffffffffffffff168167ffffffffffffffff16148015611d5e5750611d478360400151613357565b67ffffffffffffffff168167ffffffffffffffff16145b8015611d895750611d728360800151613357565b67ffffffffffffffff168167ffffffffffffffff16145b8015611db45750611d9d8360600151613357565b67ffffffffffffffff168167ffffffffffffffff16145b8015611ddf5750611dc88360c00151613357565b67ffffffffffffffff168167ffffffffffffffff16145b8015610fed5750611df38360a00151613357565b67ffffffffffffffff168167ffffffffffffffff16146110855760405162461bcd60e51b815260206004820152604660248201527f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960448201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260648201527f6573756c74730000000000000000000000000000000000000000000000000000608482015260a401610404565b6000611eeb60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b611f0f60405180606001604052806000815260200160008152602001600081525090565b611f416040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b611f816040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b611f8c848888612c27565b6000611fa361032a86600001518760200151613e40565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff84160217905560408601516060870151919250611fea91613e57565b845284516060860151611ffd9190613e6e565b84602001818152505061201885604001518660200151613e86565b6040850152600061202885610fa5565b90508160ff168161ffff16146120805760405162461bcd60e51b815260206004820152601760248201527f737562546573743a2063617374203136206661696c65640000000000000000006044820152606401610404565b61209286608001518760a00151613e9e565b8452855160a08701516120a59190613eb5565b8460200181815250506120c086608001518760200151613ecd565b8460400181815250506120db86604001518760a00151613ee5565b8460600181815250506120f686608001518760600151613efd565b60808501526000612106856124a6565b90508063ffffffff168360ff16146121605760405162461bcd60e51b815260206004820152601760248201527f737562546573743a2063617374203332206661696c65640000000000000000006044820152606401610404565b6121728760c001518860e00151613f15565b8452865160e08801516121859190613f2c565b8460200181815250506121a08760c001518860200151613f44565b8460400181815250506121bb87604001518860e00151613f5c565b8460600181815250506121d68760c001518860600151613f74565b8460800181815250506121f187608001518860e00151613f8c565b8460a001818152505061220c8760c001518860a00151613fa4565b60c0850152600061221c85611cfe565b90508067ffffffffffffffff168460ff161461227a5760405162461bcd60e51b815260206004820152601760248201527f737562546573743a2063617374203634206661696c65640000000000000000006044820152606401610404565b61228b61032a8c8a60200151613fbc565b60ff168460ff161480156122b457506122ab61032a89600001518c613fd3565b60ff168460ff16145b6123265760405162461bcd60e51b815260206004820152602760248201527f737562546573743a2074657374203820626974732077697468207363616c617260448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610404565b61233a6106c78c60ff168a60600151613feb565b61ffff168460ff16148015612368575061235e6106c789604001518c60ff16614003565b61ffff168460ff16145b6123c55760405162461bcd60e51b815260206004820152602860248201527f737562546573743a207465737420313620626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b6123d961076b8c60ff168a60a0015161401a565b63ffffffff168460ff1614801561240b57506123ff61076b89608001518c60ff16614032565b63ffffffff168460ff16145b6124685760405162461bcd60e51b815260206004820152602860248201527f737562546573743a207465737420333220626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b61247c6108138c60ff168a60e0015161404a565b67ffffffffffffffff168460ff161480156116a057506116906108138960c001518c60ff16614062565b6000806124b68360000151613233565b90506124c58360200151613233565b63ffffffff168163ffffffff161480156124f657506124e78360400151613233565b63ffffffff168163ffffffff16145b8015612519575061250a8360800151613233565b63ffffffff168163ffffffff16145b8015610fed575061252d8360600151613233565b63ffffffff168163ffffffff16146110855760405162461bcd60e51b815260206004820152604660248201527f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960448201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260648201527f6573756c74730000000000000000000000000000000000000000000000000000608482015260a401610404565b600061261d60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61264160405180606001604052806000815260200160008152602001600081525090565b6126736040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6126b36040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6126be848888612c27565b6126d361032a8560000151866020015161407a565b600060026101000a81548160ff021916908360ff1602179055506126ff84604001518560600151614091565b83528351606085015161271291906140a8565b83602001818152505061272d846040015185602001516140c0565b6040840152600061273d84610fa5565b60005490915060ff620100009091041661ffff82161461279f5760405162461bcd60e51b815260206004820152601760248201527f6d756c546573743a2063617374203136206661696c65640000000000000000006044820152606401610404565b6127b185608001518660a001516140d8565b8352845160a08601516127c491906140ef565b8360200181815250506127df85608001518660200151614107565b8360400181815250506127fa85604001518660a0015161411f565b83606001818152505061281585608001518660600151614137565b60808401526000612825846124a6565b60005490915060ff620100009091041663ffffffff8216146128895760405162461bcd60e51b815260206004820152601760248201527f6d756c546573743a2063617374203332206661696c65640000000000000000006044820152606401610404565b61289b8660c001518760e0015161414f565b8352855160e08701516128ae9190614166565b8360200181815250506128c98660c00151876020015161417e565b8360400181815250506128e486604001518760e00151614196565b8360600181815250506128ff8660c0015187606001516141ae565b83608001818152505061291a86608001518760e001516141c6565b8360a00181815250506129358660c001518760a001516141de565b60c0840152600061294584611cfe565b60005490915060ff620100009091041667ffffffffffffffff8216146129ad5760405162461bcd60e51b815260206004820152601760248201527f6d756c546573743a2063617374203634206661696c65640000000000000000006044820152606401610404565b6129be61032a8b89602001516141f6565b60005462010000900460ff90811691161480156129f957506129e761032a88600001518b61420d565b60005462010000900460ff9081169116145b612a6b5760405162461bcd60e51b815260206004820152602760248201527f6d756c546573743a2074657374203820626974732077697468207363616c617260448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610404565b612a7f6106c78b60ff168960600151614225565b60005460ff620100009091041661ffff91909116148015612ac55750612aaf6106c788604001518b60ff1661423d565b60005460ff620100009091041661ffff91909116145b612b225760405162461bcd60e51b815260206004820152602860248201527f6d756c546573743a207465737420313620626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b612b3661076b8b60ff168960a00151614254565b60005460ff620100009091041663ffffffff91909116148015612b805750612b6861076b88608001518b60ff1661426c565b60005460ff620100009091041663ffffffff91909116145b612bdd5760405162461bcd60e51b815260206004820152602860248201527f6d756c546573743a207465737420333220626974732077697468207363616c616044820152671c8819985a5b195960c21b6064820152608401610404565b612bf16108138b60ff168960e00151614284565b60005460ff620100009091041667ffffffffffffffff91909116148015610f2e5750610f126108138860c001518b60ff1661429c565b612c30826142b4565b8352612c3b816142b4565b6020840152612c4c60ff831661431d565b6040840152612c5d60ff821661431d565b6060840152612c6e60ff8316614387565b6080840152612c7f60ff8216614387565b60a0840152612c9060ff83166143f3565b60c0840152612ca160ff82166143f3565b60e0909301929092525050565b60008080606463f581fa20612cc560018085614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101889052604481018790526064015b60408051808303816000875af1158015612d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6e91906148bd565b91509150612d7c82826144c0565b95945050505050565b60006064630cfed56160015b60f81b846040518363ffffffff1660e01b8152600401612ddf9291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015612dfe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190614910565b60008080606463f581fa20612cc560028085614463565b60008080606463f581fa20612cc56001600285614463565b60008080606463f581fa20612cc56002600185614463565b60008080606463f581fa20612cc560038085614463565b60008080606463f581fa20612cc56001600385614463565b60008080606463f581fa20612cc56003600185614463565b60008080606463f581fa20612cc56002600385614463565b60008080606463f581fa20612cc56003600285614463565b60008080606463f581fa20612cc560048085614463565b60008080606463f581fa20612cc56001600485614463565b60008080606463f581fa20612cc56004600185614463565b60008080606463f581fa20612cc56002600485614463565b60008080606463f581fa20612cc56004600285614463565b60008080606463f581fa20612cc56003600485614463565b60008080606463f581fa20612cc56004600385614463565b60008080606463f581fa20612f9e60018080614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260ff8816602482015260448101879052606401612d2c565b60008080606463f581fa206130236001806002614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810188905260ff87166044820152606401612d2c565b60008080606463f581fa206130a86002806001614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015261ffff8816602482015260448101879052606401612d2c565b60006064630cfed5616002612d91565b60008080606463f581fa2061313d60028080614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810188905261ffff87166044820152606401612d2c565b60008080606463f581fa206131c36003806001614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015263ffffffff8816602482015260448101879052606401612d2c565b60006064630cfed5616003612d91565b60008080606463f581fa2061325b6003806002614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810188905263ffffffff87166044820152606401612d2c565b60008080606463f581fa206132e36004806001614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff8816602482015260448101879052606401612d2c565b60006064630cfed5616004612d91565b60008080606463f581fa2061337f6004806002614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810188905267ffffffffffffffff87166044820152606401612d2c565b6000606463f1d21bb461340860018085614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064015b6020604051808303816000875af115801561348e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b29190614910565b9392505050565b6000606463f1d21bb461340860028085614463565b6000606463f1d21bb46134086001600285614463565b6000606463f1d21bb46134086002600185614463565b6000606463f1d21bb461340860038085614463565b6000606463f1d21bb46134086001600385614463565b6000606463f1d21bb46134086003600185614463565b6000606463f1d21bb46134086002600385614463565b6000606463f1d21bb46134086003600285614463565b6000606463f1d21bb461340860048085614463565b6000606463f1d21bb46134086001600485614463565b6000606463f1d21bb46134086004600185614463565b6000606463f1d21bb46134086002600485614463565b6000606463f1d21bb46134086004600285614463565b6000606463f1d21bb46134086003600485614463565b6000606463f1d21bb46134086004600385614463565b6000606463f1d21bb461361560018080614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260ff861660248201526044810185905260640161346f565b6000606463f1d21bb46136986001806002614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905260ff8516604482015260640161346f565b6000606463f1d21bb461371b6002806001614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015261ffff861660248201526044810185905260640161346f565b6000606463f1d21bb461379e60028080614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905261ffff8516604482015260640161346f565b6000606463f1d21bb46138226003806001614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015263ffffffff861660248201526044810185905260640161346f565b6000606463f1d21bb46138a86003806002614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905263ffffffff8516604482015260640161346f565b6000606463f1d21bb461392e6004806001614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff861660248201526044810185905260640161346f565b6000606463f1d21bb46139b86004806002614463565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905267ffffffffffffffff8516604482015260640161346f565b6000606463371d1bf261340860018085614463565b6000606463371d1bf261340860028085614463565b6000606463371d1bf26134086001600285614463565b6000606463371d1bf26134086002600185614463565b6000606463371d1bf261340860038085614463565b6000606463371d1bf26134086001600385614463565b6000606463371d1bf26134086003600185614463565b6000606463371d1bf26134086002600385614463565b6000606463371d1bf26134086003600285614463565b6000606463371d1bf261340860048085614463565b6000606463371d1bf26134086001600485614463565b6000606463371d1bf26134086004600185614463565b6000606463371d1bf26134086002600485614463565b6000606463371d1bf26134086004600285614463565b6000606463371d1bf26134086003600485614463565b6000606463371d1bf26134086004600385614463565b6000606463371d1bf261361560018080614463565b6000606463371d1bf26136986001806002614463565b6000606463371d1bf261371b6002806001614463565b6000606463371d1bf261379e60028080614463565b6000606463371d1bf26138226003806001614463565b6000606463371d1bf26138a86003806002614463565b6000606463371d1bf261392e6004806001614463565b6000606463371d1bf26139b86004806002614463565b60006064638c5d015061340860018085614463565b60006064638c5d015061340860028085614463565b60006064638c5d01506134086001600285614463565b60006064638c5d01506134086002600185614463565b60006064638c5d015061340860038085614463565b60006064638c5d01506134086001600385614463565b60006064638c5d01506134086003600185614463565b60006064638c5d01506134086002600385614463565b60006064638c5d01506134086003600285614463565b60006064638c5d015061340860048085614463565b60006064638c5d01506134086001600485614463565b60006064638c5d01506134086004600185614463565b60006064638c5d01506134086002600485614463565b60006064638c5d01506134086004600285614463565b60006064638c5d01506134086003600485614463565b60006064638c5d01506134086004600385614463565b60006064638c5d015061361560018080614463565b60006064638c5d01506136986001806002614463565b60006064638c5d015061371b6002806001614463565b60006064638c5d015061379e60028080614463565b60006064638c5d01506138226003806001614463565b60006064638c5d01506138a86003806002614463565b60006064638c5d015061392e6004806001614463565b60006064638c5d01506139b86004806002614463565b60008080606463ce8c713d612cc560018085614463565b60008080606463ce8c713d612cc560028085614463565b60008080606463ce8c713d612cc56001600285614463565b60008080606463ce8c713d612cc56002600185614463565b60008080606463ce8c713d612cc560038085614463565b60008080606463ce8c713d612cc56001600385614463565b60008080606463ce8c713d612cc56003600185614463565b60008080606463ce8c713d612cc56002600385614463565b60008080606463ce8c713d612cc56003600285614463565b60008080606463ce8c713d612cc560048085614463565b60008080606463ce8c713d612cc56001600485614463565b60008080606463ce8c713d612cc56004600185614463565b60008080606463ce8c713d612cc56002600485614463565b60008080606463ce8c713d612cc56004600285614463565b60008080606463ce8c713d612cc56003600485614463565b60008080606463ce8c713d612cc56004600385614463565b60008080606463ce8c713d612f9e60018080614463565b60008080606463ce8c713d6130236001806002614463565b60008080606463ce8c713d6130a86002806001614463565b60008080606463ce8c713d61313d60028080614463565b60008080606463ce8c713d6131c36003806001614463565b60008080606463ce8c713d61325b6003806002614463565b60008080606463ce8c713d6132e36004806001614463565b60008080606463ce8c713d61337f6004806002614463565b600080806064630915497f612cc560018085614463565b600080806064630915497f612cc560028085614463565b600080806064630915497f612cc56001600285614463565b600080806064630915497f612cc56002600185614463565b600080806064630915497f612cc560038085614463565b600080806064630915497f612cc56001600385614463565b600080806064630915497f612cc56003600185614463565b600080806064630915497f612cc56002600385614463565b600080806064630915497f612cc56003600285614463565b600080806064630915497f612cc560048085614463565b600080806064630915497f612cc56001600485614463565b600080806064630915497f612cc56004600185614463565b600080806064630915497f612cc56002600485614463565b600080806064630915497f612cc56004600285614463565b600080806064630915497f612cc56003600485614463565b600080806064630915497f612cc56004600385614463565b600080806064630915497f612f9e60018080614463565b600080806064630915497f6130236001806002614463565b600080806064630915497f6130a86002806001614463565b600080806064630915497f61313d60028080614463565b600080806064630915497f6131c36003806001614463565b600080806064630915497f61325b6003806002614463565b600080806064630915497f6132e36004806001614463565b600080806064630915497f61337f6004806002614463565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401612ddf565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401612ddf565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401612ddf565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401612ddf565b6000816002811115614477576144776148e1565b60ff16600884600481111561448e5761448e6148e1565b61ffff16901b61ffff1660108660048111156144ac576144ac6148e1565b62ffffff16901b171760e81b949350505050565b60006144cb836144d1565b50919050565b6144da8161452a565b156145275760405162461bcd60e51b815260206004820152600e60248201527f6f766572666c6f77206572726f720000000000000000000000000000000000006044820152606401610404565b50565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af115801561458e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145b29190614910565b15159392505050565b803560ff811681146145cc57600080fd5b919050565b600080604083850312156145e457600080fd5b6145ed836145bb565b91506145fb602084016145bb565b90509250929050565b604051610100810167ffffffffffffffff8111828210171561464f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b60006060828403121561466757600080fd5b6040516060810181811067ffffffffffffffff821117156146b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80604052508235815260208301356020820152604083013560408201528091505092915050565b600060e082840312156146ea57600080fd5b60405160e0810181811067ffffffffffffffff82111715614734577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c08201528091505092915050565b600060a0828403121561479557600080fd5b60405160a0810181811067ffffffffffffffff821117156147df577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b600080600083850361014081121561483157600080fd5b6101008082121561484157600080fd5b614849614604565b9150853582526020860135602083015260408601356040830152606086013560608301526080860135608083015260a086013560a083015260c086013560c083015260e086013560e08301528194506148a38187016145bb565b935050506148b461012085016145bb565b90509250925092565b600080604083850312156148d057600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561492257600080fd5b505191905056fea26469706673582212208eefd214f71795546d3917e4f1c36ea93feee04dcfdeda5ddb3b2db708b7ef3164736f6c63430008130033";
|
|
323
408
|
|
|
324
409
|
type ArithmeticTestsContractConstructorParams =
|
|
325
410
|
| [signer?: Signer]
|
package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts
CHANGED
|
@@ -179,7 +179,33 @@ const _abi = [
|
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
inputs: [],
|
|
182
|
-
name: "
|
|
182
|
+
name: "getAndResult",
|
|
183
|
+
outputs: [
|
|
184
|
+
{
|
|
185
|
+
internalType: "uint8",
|
|
186
|
+
name: "",
|
|
187
|
+
type: "uint8",
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
stateMutability: "view",
|
|
191
|
+
type: "function",
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
inputs: [],
|
|
195
|
+
name: "getOrResult",
|
|
196
|
+
outputs: [
|
|
197
|
+
{
|
|
198
|
+
internalType: "uint8",
|
|
199
|
+
name: "",
|
|
200
|
+
type: "uint8",
|
|
201
|
+
},
|
|
202
|
+
],
|
|
203
|
+
stateMutability: "view",
|
|
204
|
+
type: "function",
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
inputs: [],
|
|
208
|
+
name: "getXorResult",
|
|
183
209
|
outputs: [
|
|
184
210
|
{
|
|
185
211
|
internalType: "uint8",
|
|
@@ -218,6 +244,16 @@ const _abi = [
|
|
|
218
244
|
inputs: [
|
|
219
245
|
{
|
|
220
246
|
components: [
|
|
247
|
+
{
|
|
248
|
+
internalType: "gtBool",
|
|
249
|
+
name: "aBool_s",
|
|
250
|
+
type: "uint256",
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
internalType: "gtBool",
|
|
254
|
+
name: "bBool_s",
|
|
255
|
+
type: "uint256",
|
|
256
|
+
},
|
|
221
257
|
{
|
|
222
258
|
internalType: "gtUint8",
|
|
223
259
|
name: "a8_s",
|
|
@@ -306,7 +342,7 @@ const _abi = [
|
|
|
306
342
|
] as const;
|
|
307
343
|
|
|
308
344
|
const _bytecode =
|
|
309
|
-
"0x608060405234801561001057600080fd5b50615b6980620000216000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063acb381691161005b578063acb381691461014d578063de2927891461017d578063ebb571fd1461019b578063f3367ccb146101b757610088565b80631e9773211461008d5780632e544aa0146100bd57806380f937bc146100ed578063991e65321461011d575b600080fd5b6100a760048036038101906100a291906148a9565b6101e7565b6040516100b491906148f8565b60405180910390f35b6100d760048036038101906100d29190614a3e565b6107c6565b6040516100e49190614a88565b60405180910390f35b61010760048036038101906101029190614b83565b610856565b6040516101149190614bd3565b60405180910390f35b610137600480360381019061013291906148a9565b6109aa565b60405161014491906148f8565b60405180910390f35b61016760048036038101906101629190614ca6565b610f89565b6040516101749190614cf2565b60405180910390f35b610185611067565b60405161019291906148f8565b60405180910390f35b6101b560048036038101906101b09190614e03565b61107d565b005b6101d160048036038101906101cc91906148a9565b611124565b6040516101de91906148f8565b60405180910390f35b60006101f161478f565b6101f96147d4565b6102016147f5565b610209614824565b61021484888861107d565b61022e61022985600001518660200151611703565b61179a565b6000806101000a81548160ff021916908360ff16021790555061025984604001518560600151611838565b836000018181525050610274846000015185606001516118cf565b83602001818152505061028f84604001518560200151611967565b83604001818152505060006102a3846107c6565b905060008054906101000a900460ff1660ff168161ffff16146102fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f290614eb6565b60405180910390fd5b61030d85608001518660a001516119ff565b83600001818152505061032885600001518660a00151611a96565b83602001818152505061034385608001518660200151611b2e565b83604001818152505061035e85604001518660a00151611bc6565b83606001818152505061037985608001518660600151611c5e565b836080018181525050600061038d84610f89565b90508063ffffffff1660008054906101000a900460ff1660ff16146103e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103de90614f22565b60405180910390fd5b6103f98660c001518760e00151611cf6565b83600001818152505061041486600001518760e00151611d8d565b83602001818152505061042f8660c001518760200151611e25565b83604001818152505061044a86604001518760e00151611ebd565b8360600181815250506104658660c001518760600151611f55565b83608001818152505061048086608001518760e00151611fed565b8360a001818152505061049b8660c001518760a00151612085565b8360c001818152505060006104af84610856565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff161461050d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050490614f8e565b60405180910390fd5b61052361051e8b896020015161211d565b61179a565b60ff1660008054906101000a900460ff1660ff1614801561056b575061055561055088600001518b6121b7565b61179a565b60ff1660008054906101000a900460ff1660ff16145b6105aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a190615020565b60405180910390fd5b6105c36105be8b60ff168960600151612251565b6122ec565b61ffff1660008054906101000a900460ff1660ff1614801561061057506105f96105f488604001518b60ff1661238a565b6122ec565b61ffff1660008054906101000a900460ff1660ff16145b61064f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610646906150b2565b60405180910390fd5b6106686106638b60ff168960a00151612425565b6124c2565b63ffffffff1660008054906101000a900460ff1660ff161480156106b957506106a061069b88608001518b60ff16612560565b6124c2565b63ffffffff1660008054906101000a900460ff1660ff16145b6106f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ef90615144565b60405180910390fd5b61071161070c8b60ff168960e001516125fd565b61269e565b67ffffffffffffffff1660008054906101000a900460ff1660ff1614801561076a575061074d6107488860c001518b60ff1661273b565b61269e565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b6107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906151d6565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000806107d683600001516122ec565b90506107e583602001516122ec565b61ffff168161ffff1614801561080e575061080383604001516122ec565b61ffff168161ffff16145b61084d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108449061528e565b60405180910390fd5b80915050919050565b600080610866836000015161269e565b9050610875836020015161269e565b67ffffffffffffffff168167ffffffffffffffff161480156108b6575061089f836040015161269e565b67ffffffffffffffff168167ffffffffffffffff16145b80156108e157506108ca836080015161269e565b67ffffffffffffffff168167ffffffffffffffff16145b801561090c57506108f5836060015161269e565b67ffffffffffffffff168167ffffffffffffffff16145b801561093757506109208360c0015161269e565b67ffffffffffffffff168167ffffffffffffffff16145b8015610962575061094b8360a0015161269e565b67ffffffffffffffff168167ffffffffffffffff16145b6109a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109989061528e565b60405180910390fd5b80915050919050565b60006109b461478f565b6109bc6147d4565b6109c46147f5565b6109cc614824565b6109d784888861107d565b6109f16109ec856000015186602001516127dc565b61179a565b6000806101000a81548160ff021916908360ff160217905550610a1c84604001518560600151612873565b836000018181525050610a378460000151856060015161290a565b836020018181525050610a52846040015185602001516129a2565b8360400181815250506000610a66846107c6565b905060008054906101000a900460ff1660ff168161ffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab5906152fa565b60405180910390fd5b610ad085608001518660a00151612a3a565b836000018181525050610aeb85600001518660a00151612ad1565b836020018181525050610b0685608001518660200151612b69565b836040018181525050610b2185604001518660a00151612c01565b836060018181525050610b3c85608001518660600151612c99565b8360800181815250506000610b5084610f89565b90508063ffffffff1660008054906101000a900460ff1660ff1614610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba190615366565b60405180910390fd5b610bbc8660c001518760e00151612d31565b836000018181525050610bd786600001518760e00151612dc8565b836020018181525050610bf28660c001518760200151612e60565b836040018181525050610c0d86604001518760e00151612ef8565b836060018181525050610c288660c001518760600151612f90565b836080018181525050610c4386608001518760e00151613028565b8360a0018181525050610c5e8660c001518760a001516130c0565b8360c00181815250506000610c7284610856565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff1614610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc7906153d2565b60405180910390fd5b610ce6610ce18b8960200151613158565b61179a565b60ff1660008054906101000a900460ff1660ff16148015610d2e5750610d18610d1388600001518b6131f2565b61179a565b60ff1660008054906101000a900460ff1660ff16145b610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490615464565b60405180910390fd5b610d86610d818b60ff16896060015161328c565b6122ec565b61ffff1660008054906101000a900460ff1660ff16148015610dd35750610dbc610db788604001518b60ff16613327565b6122ec565b61ffff1660008054906101000a900460ff1660ff16145b610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e09906154f6565b60405180910390fd5b610e2b610e268b60ff168960a001516133c2565b6124c2565b63ffffffff1660008054906101000a900460ff1660ff16148015610e7c5750610e63610e5e88608001518b60ff1661345f565b6124c2565b63ffffffff1660008054906101000a900460ff1660ff16145b610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb290615588565b60405180910390fd5b610ed4610ecf8b60ff168960e001516134fc565b61269e565b67ffffffffffffffff1660008054906101000a900460ff1660ff16148015610f2d5750610f10610f0b8860c001518b60ff1661359d565b61269e565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b610f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f639061561a565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b600080610f9983600001516124c2565b9050610fa883602001516124c2565b63ffffffff168163ffffffff16148015610fd95750610fca83604001516124c2565b63ffffffff168163ffffffff16145b8015610ffc5750610fed83608001516124c2565b63ffffffff168163ffffffff16145b801561101f575061101083606001516124c2565b63ffffffff168163ffffffff16145b61105e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110559061528e565b60405180910390fd5b80915050919050565b60008060009054906101000a900460ff16905090565b6110868261363e565b8360000181815250506110988161363e565b8360200181815250506110ad8260ff166136df565b8360400181815250506110c28160ff166136df565b8360600181815250506110d78260ff16613781565b8360800181815250506110ec8160ff16613781565b8360a00181815250506111018260ff16613825565b8360c00181815250506111168160ff16613825565b8360e0018181525050505050565b600061112e61478f565b6111366147d4565b61113e6147f5565b611146614824565b61115184888861107d565b61116b611166856000015186602001516138cc565b61179a565b6000806101000a81548160ff021916908360ff16021790555061119684604001518560600151613963565b8360000181815250506111b1846000015185606001516139fa565b8360200181815250506111cc84604001518560200151613a92565b83604001818152505060006111e0846107c6565b905060008054906101000a900460ff1660ff168161ffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90615686565b60405180910390fd5b61124a85608001518660a00151613b2a565b83600001818152505061126585600001518660a00151613bc1565b83602001818152505061128085608001518660200151613c59565b83604001818152505061129b85604001518660a00151613cf1565b8360600181815250506112b685608001518660600151613d89565b83608001818152505060006112ca84610f89565b90508063ffffffff1660008054906101000a900460ff1660ff1614611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b906156f2565b60405180910390fd5b6113368660c001518760e00151613e21565b83600001818152505061135186600001518760e00151613eb8565b83602001818152505061136c8660c001518760200151613f50565b83604001818152505061138786604001518760e00151613fe8565b8360600181815250506113a28660c001518760600151614080565b8360800181815250506113bd86608001518760e00151614118565b8360a00181815250506113d88660c001518760a001516141b0565b8360c001818152505060006113ec84610856565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff161461144a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114419061575e565b60405180910390fd5b61146061145b8b8960200151614248565b61179a565b60ff1660008054906101000a900460ff1660ff161480156114a8575061149261148d88600001518b6142e2565b61179a565b60ff1660008054906101000a900460ff1660ff16145b6114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de906157f0565b60405180910390fd5b6115006114fb8b60ff16896060015161437c565b6122ec565b61ffff1660008054906101000a900460ff1660ff1614801561154d575061153661153188604001518b60ff16614417565b6122ec565b61ffff1660008054906101000a900460ff1660ff16145b61158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390615882565b60405180910390fd5b6115a56115a08b60ff168960a001516144b2565b6124c2565b63ffffffff1660008054906101000a900460ff1660ff161480156115f657506115dd6115d888608001518b60ff1661454f565b6124c2565b63ffffffff1660008054906101000a900460ff1660ff16145b611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162c90615914565b60405180910390fd5b61164e6116498b60ff168960e001516145ec565b61269e565b67ffffffffffffffff1660008054906101000a900460ff1660ff161480156116a7575061168a6116858860c001518b60ff1661468d565b61269e565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b6116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd906159a6565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f61172f600180600061472e565b85856040518463ffffffff1660e01b815260040161174f93929190615a10565b6020604051808303816000875af115801561176e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117929190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600160048111156117cd576117cc615aa0565b5b60f81b846040518363ffffffff1660e01b81526004016117ee929190615b0a565b6020604051808303816000875af115801561180d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118319190615a73565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611864600280600061472e565b85856040518463ffffffff1660e01b815260040161188493929190615a10565b6020604051808303816000875af11580156118a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c79190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f6118fc60016002600061472e565b85856040518463ffffffff1660e01b815260040161191c93929190615a10565b6020604051808303816000875af115801561193b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195f9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f61199460026001600061472e565b85856040518463ffffffff1660e01b81526004016119b493929190615a10565b6020604051808303816000875af11580156119d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f79190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611a2b600380600061472e565b85856040518463ffffffff1660e01b8152600401611a4b93929190615a10565b6020604051808303816000875af1158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611ac360016003600061472e565b85856040518463ffffffff1660e01b8152600401611ae393929190615a10565b6020604051808303816000875af1158015611b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b269190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611b5b60036001600061472e565b85856040518463ffffffff1660e01b8152600401611b7b93929190615a10565b6020604051808303816000875af1158015611b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bbe9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611bf360026003600061472e565b85856040518463ffffffff1660e01b8152600401611c1393929190615a10565b6020604051808303816000875af1158015611c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c569190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611c8b60036002600061472e565b85856040518463ffffffff1660e01b8152600401611cab93929190615a10565b6020604051808303816000875af1158015611cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cee9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611d22600480600061472e565b85856040518463ffffffff1660e01b8152600401611d4293929190615a10565b6020604051808303816000875af1158015611d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d859190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611dba60016004600061472e565b85856040518463ffffffff1660e01b8152600401611dda93929190615a10565b6020604051808303816000875af1158015611df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1d9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611e5260046001600061472e565b85856040518463ffffffff1660e01b8152600401611e7293929190615a10565b6020604051808303816000875af1158015611e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb59190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611eea60026004600061472e565b85856040518463ffffffff1660e01b8152600401611f0a93929190615a10565b6020604051808303816000875af1158015611f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4d9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f611f8260046002600061472e565b85856040518463ffffffff1660e01b8152600401611fa293929190615a10565b6020604051808303816000875af1158015611fc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe59190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f61201a60036004600061472e565b85856040518463ffffffff1660e01b815260040161203a93929190615a10565b6020604051808303816000875af1158015612059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207d9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f6120b260046003600061472e565b85856040518463ffffffff1660e01b81526004016120d293929190615a10565b6020604051808303816000875af11580156120f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121159190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f612149600180600161472e565b8560ff16856040518463ffffffff1660e01b815260040161216c93929190615a10565b6020604051808303816000875af115801561218b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121af9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f6121e3600180600261472e565b858560ff166040518463ffffffff1660e01b815260040161220693929190615a10565b6020604051808303816000875af1158015612225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122499190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f61227d600280600161472e565b8561ffff16856040518463ffffffff1660e01b81526004016122a193929190615a10565b6020604051808303816000875af11580156122c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e49190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616002600481111561231f5761231e615aa0565b5b60f81b846040518363ffffffff1660e01b8152600401612340929190615b0a565b6020604051808303816000875af115801561235f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123839190615a73565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f6123b6600180600261472e565b858561ffff166040518463ffffffff1660e01b81526004016123da93929190615a10565b6020604051808303816000875af11580156123f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241d9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f612451600380600161472e565b8563ffffffff16856040518463ffffffff1660e01b815260040161247793929190615a10565b6020604051808303816000875af1158015612496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ba9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600360048111156124f5576124f4615aa0565b5b60f81b846040518363ffffffff1660e01b8152600401612516929190615b0a565b6020604051808303816000875af1158015612535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125599190615a73565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f61258c600380600261472e565b858563ffffffff166040518463ffffffff1660e01b81526004016125b293929190615a10565b6020604051808303816000875af11580156125d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f59190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f612629600480600161472e565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161265393929190615a10565b6020604051808303816000875af1158015612672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126969190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616004808111156126d0576126cf615aa0565b5b60f81b846040518363ffffffff1660e01b81526004016126f1929190615b0a565b6020604051808303816000875af1158015612710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127349190615a73565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fb7da35f612767600480600261472e565b858567ffffffffffffffff166040518463ffffffff1660e01b815260040161279193929190615a10565b6020604051808303816000875af11580156127b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d49190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612808600180600061472e565b85856040518463ffffffff1660e01b815260040161282893929190615a10565b6020604051808303816000875af1158015612847573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286b9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c61289f600280600061472e565b85856040518463ffffffff1660e01b81526004016128bf93929190615a10565b6020604051808303816000875af11580156128de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129029190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c61293760016002600061472e565b85856040518463ffffffff1660e01b815260040161295793929190615a10565b6020604051808303816000875af1158015612976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299a9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c6129cf60026001600061472e565b85856040518463ffffffff1660e01b81526004016129ef93929190615a10565b6020604051808303816000875af1158015612a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a329190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612a66600380600061472e565b85856040518463ffffffff1660e01b8152600401612a8693929190615a10565b6020604051808303816000875af1158015612aa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac99190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612afe60016003600061472e565b85856040518463ffffffff1660e01b8152600401612b1e93929190615a10565b6020604051808303816000875af1158015612b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b619190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612b9660036001600061472e565b85856040518463ffffffff1660e01b8152600401612bb693929190615a10565b6020604051808303816000875af1158015612bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bf99190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612c2e60026003600061472e565b85856040518463ffffffff1660e01b8152600401612c4e93929190615a10565b6020604051808303816000875af1158015612c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c919190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612cc660036002600061472e565b85856040518463ffffffff1660e01b8152600401612ce693929190615a10565b6020604051808303816000875af1158015612d05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d299190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612d5d600480600061472e565b85856040518463ffffffff1660e01b8152600401612d7d93929190615a10565b6020604051808303816000875af1158015612d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc09190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612df560016004600061472e565b85856040518463ffffffff1660e01b8152600401612e1593929190615a10565b6020604051808303816000875af1158015612e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e589190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612e8d60046001600061472e565b85856040518463ffffffff1660e01b8152600401612ead93929190615a10565b6020604051808303816000875af1158015612ecc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef09190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612f2560026004600061472e565b85856040518463ffffffff1660e01b8152600401612f4593929190615a10565b6020604051808303816000875af1158015612f64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f889190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c612fbd60046002600061472e565b85856040518463ffffffff1660e01b8152600401612fdd93929190615a10565b6020604051808303816000875af1158015612ffc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130209190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c61305560036004600061472e565b85856040518463ffffffff1660e01b815260040161307593929190615a10565b6020604051808303816000875af1158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b89190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c6130ed60046003600061472e565b85856040518463ffffffff1660e01b815260040161310d93929190615a10565b6020604051808303816000875af115801561312c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131509190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c613184600180600161472e565b8560ff16856040518463ffffffff1660e01b81526004016131a793929190615a10565b6020604051808303816000875af11580156131c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ea9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c61321e600180600261472e565b858560ff166040518463ffffffff1660e01b815260040161324193929190615a10565b6020604051808303816000875af1158015613260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132849190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c6132b8600280600161472e565b8561ffff16856040518463ffffffff1660e01b81526004016132dc93929190615a10565b6020604051808303816000875af11580156132fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061331f9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c613353600180600261472e565b858561ffff166040518463ffffffff1660e01b815260040161337793929190615a10565b6020604051808303816000875af1158015613396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ba9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c6133ee600380600161472e565b8563ffffffff16856040518463ffffffff1660e01b815260040161341493929190615a10565b6020604051808303816000875af1158015613433573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134579190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c61348b600380600261472e565b858563ffffffff166040518463ffffffff1660e01b81526004016134b193929190615a10565b6020604051808303816000875af11580156134d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134f49190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c613528600480600161472e565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161355293929190615a10565b6020604051808303816000875af1158015613571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135959190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16636f962e2c6135c9600480600261472e565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016135f393929190615a10565b6020604051808303816000875af1158015613612573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136369190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606001600481111561367157613670615aa0565b5b60f81b8460ff166040518363ffffffff1660e01b8152600401613695929190615b0a565b6020604051808303816000875af11580156136b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d89190615a73565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606002600481111561371257613711615aa0565b5b60f81b8461ffff166040518363ffffffff1660e01b8152600401613737929190615b0a565b6020604051808303816000875af1158015613756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377a9190615a73565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600360048111156137b4576137b3615aa0565b5b60f81b8463ffffffff166040518363ffffffff1660e01b81526004016137db929190615b0a565b6020604051808303816000875af11580156137fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061381e9190615a73565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561385757613856615aa0565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b8152600401613882929190615b0a565b6020604051808303816000875af11580156138a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c59190615a73565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d16138f8600180600061472e565b85856040518463ffffffff1660e01b815260040161391893929190615a10565b6020604051808303816000875af1158015613937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395b9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d161398f600280600061472e565b85856040518463ffffffff1660e01b81526004016139af93929190615a10565b6020604051808303816000875af11580156139ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f29190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613a2760016002600061472e565b85856040518463ffffffff1660e01b8152600401613a4793929190615a10565b6020604051808303816000875af1158015613a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a8a9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613abf60026001600061472e565b85856040518463ffffffff1660e01b8152600401613adf93929190615a10565b6020604051808303816000875af1158015613afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b229190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613b56600380600061472e565b85856040518463ffffffff1660e01b8152600401613b7693929190615a10565b6020604051808303816000875af1158015613b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb99190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613bee60016003600061472e565b85856040518463ffffffff1660e01b8152600401613c0e93929190615a10565b6020604051808303816000875af1158015613c2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c519190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613c8660036001600061472e565b85856040518463ffffffff1660e01b8152600401613ca693929190615a10565b6020604051808303816000875af1158015613cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ce99190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613d1e60026003600061472e565b85856040518463ffffffff1660e01b8152600401613d3e93929190615a10565b6020604051808303816000875af1158015613d5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d819190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613db660036002600061472e565b85856040518463ffffffff1660e01b8152600401613dd693929190615a10565b6020604051808303816000875af1158015613df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e199190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613e4d600480600061472e565b85856040518463ffffffff1660e01b8152600401613e6d93929190615a10565b6020604051808303816000875af1158015613e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb09190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613ee560016004600061472e565b85856040518463ffffffff1660e01b8152600401613f0593929190615a10565b6020604051808303816000875af1158015613f24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f489190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1613f7d60046001600061472e565b85856040518463ffffffff1660e01b8152600401613f9d93929190615a10565b6020604051808303816000875af1158015613fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fe09190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d161401560026004600061472e565b85856040518463ffffffff1660e01b815260040161403593929190615a10565b6020604051808303816000875af1158015614054573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140789190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d16140ad60046002600061472e565b85856040518463ffffffff1660e01b81526004016140cd93929190615a10565b6020604051808303816000875af11580156140ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141109190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d161414560036004600061472e565b85856040518463ffffffff1660e01b815260040161416593929190615a10565b6020604051808303816000875af1158015614184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141a89190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d16141dd60046003600061472e565b85856040518463ffffffff1660e01b81526004016141fd93929190615a10565b6020604051808303816000875af115801561421c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142409190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1614274600180600161472e565b8560ff16856040518463ffffffff1660e01b815260040161429793929190615a10565b6020604051808303816000875af11580156142b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142da9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d161430e600180600261472e565b858560ff166040518463ffffffff1660e01b815260040161433193929190615a10565b6020604051808303816000875af1158015614350573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143749190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d16143a8600280600161472e565b8561ffff16856040518463ffffffff1660e01b81526004016143cc93929190615a10565b6020604051808303816000875af11580156143eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061440f9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1614443600180600261472e565b858561ffff166040518463ffffffff1660e01b815260040161446793929190615a10565b6020604051808303816000875af1158015614486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144aa9190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d16144de600380600161472e565b8563ffffffff16856040518463ffffffff1660e01b815260040161450493929190615a10565b6020604051808303816000875af1158015614523573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145479190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d161457b600380600261472e565b858563ffffffff166040518463ffffffff1660e01b81526004016145a193929190615a10565b6020604051808303816000875af11580156145c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e49190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d1614618600480600161472e565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161464293929190615a10565b6020604051808303816000875af1158015614661573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146859190615a73565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663fe9c73d16146b9600480600261472e565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016146e393929190615a10565b6020604051808303816000875af1158015614702573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147269190615a73565b905092915050565b600081600281111561474357614742615aa0565b5b60ff16600884600481111561475b5761475a615aa0565b5b61ffff16901b61ffff16601086600481111561477a57614779615aa0565b5b62ffffff16901b171760e81b90509392505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600060ff82169050919050565b61488681614870565b811461489157600080fd5b50565b6000813590506148a38161487d565b92915050565b600080604083850312156148c0576148bf61486b565b5b60006148ce85828601614894565b92505060206148df85828601614894565b9150509250929050565b6148f281614870565b82525050565b600060208201905061490d60008301846148e9565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61496182614918565b810181811067ffffffffffffffff821117156149805761497f614929565b5b80604052505050565b6000614993614861565b905061499f8282614958565b919050565b6000819050919050565b6149b7816149a4565b81146149c257600080fd5b50565b6000813590506149d4816149ae565b92915050565b6000606082840312156149f0576149ef614913565b5b6149fa6060614989565b90506000614a0a848285016149c5565b6000830152506020614a1e848285016149c5565b6020830152506040614a32848285016149c5565b60408301525092915050565b600060608284031215614a5457614a5361486b565b5b6000614a62848285016149da565b91505092915050565b600061ffff82169050919050565b614a8281614a6b565b82525050565b6000602082019050614a9d6000830184614a79565b92915050565b614aac816149a4565b8114614ab757600080fd5b50565b600081359050614ac981614aa3565b92915050565b600060e08284031215614ae557614ae4614913565b5b614aef60e0614989565b90506000614aff84828501614aba565b6000830152506020614b1384828501614aba565b6020830152506040614b2784828501614aba565b6040830152506060614b3b84828501614aba565b6060830152506080614b4f84828501614aba565b60808301525060a0614b6384828501614aba565b60a08301525060c0614b7784828501614aba565b60c08301525092915050565b600060e08284031215614b9957614b9861486b565b5b6000614ba784828501614acf565b91505092915050565b600067ffffffffffffffff82169050919050565b614bcd81614bb0565b82525050565b6000602082019050614be86000830184614bc4565b92915050565b614bf7816149a4565b8114614c0257600080fd5b50565b600081359050614c1481614bee565b92915050565b600060a08284031215614c3057614c2f614913565b5b614c3a60a0614989565b90506000614c4a84828501614c05565b6000830152506020614c5e84828501614c05565b6020830152506040614c7284828501614c05565b6040830152506060614c8684828501614c05565b6060830152506080614c9a84828501614c05565b60808301525092915050565b600060a08284031215614cbc57614cbb61486b565b5b6000614cca84828501614c1a565b91505092915050565b600063ffffffff82169050919050565b614cec81614cd3565b82525050565b6000602082019050614d076000830184614ce3565b92915050565b614d16816149a4565b8114614d2157600080fd5b50565b600081359050614d3381614d0d565b92915050565b60006101008284031215614d5057614d4f614913565b5b614d5b610100614989565b90506000614d6b84828501614d24565b6000830152506020614d7f84828501614d24565b6020830152506040614d93848285016149c5565b6040830152506060614da7848285016149c5565b6060830152506080614dbb84828501614c05565b60808301525060a0614dcf84828501614c05565b60a08301525060c0614de384828501614aba565b60c08301525060e0614df784828501614aba565b60e08301525092915050565b60008060006101408486031215614e1d57614e1c61486b565b5b6000614e2b86828701614d39565b935050610100614e3d86828701614894565b925050610120614e4f86828701614894565b9150509250925092565b600082825260208201905092915050565b7f6f72546573743a2063617374203136206661696c656400000000000000000000600082015250565b6000614ea0601683614e59565b9150614eab82614e6a565b602082019050919050565b60006020820190508181036000830152614ecf81614e93565b9050919050565b7f6f72546573743a2063617374203332206661696c656400000000000000000000600082015250565b6000614f0c601683614e59565b9150614f1782614ed6565b602082019050919050565b60006020820190508181036000830152614f3b81614eff565b9050919050565b7f6f72546573743a2063617374203634206661696c656400000000000000000000600082015250565b6000614f78601683614e59565b9150614f8382614f42565b602082019050919050565b60006020820190508181036000830152614fa781614f6b565b9050919050565b7f6f72546573743a2074657374203820626974732077697468207363616c61722060008201527f6661696c65640000000000000000000000000000000000000000000000000000602082015250565b600061500a602683614e59565b915061501582614fae565b604082019050919050565b6000602082019050818103600083015261503981614ffd565b9050919050565b7f6f72546573743a207465737420313620626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b600061509c602783614e59565b91506150a782615040565b604082019050919050565b600060208201905081810360008301526150cb8161508f565b9050919050565b7f6f72546573743a207465737420333220626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b600061512e602783614e59565b9150615139826150d2565b604082019050919050565b6000602082019050818103600083015261515d81615121565b9050919050565b7f6f72546573743a207465737420363420626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b60006151c0602783614e59565b91506151cb82615164565b604082019050919050565b600060208201905081810360008301526151ef816151b3565b9050919050565b7f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960008201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260208201527f6573756c74730000000000000000000000000000000000000000000000000000604082015250565b6000615278604683614e59565b9150615283826151f6565b606082019050919050565b600060208201905081810360008301526152a78161526b565b9050919050565b7f786f72546573743a2063617374203136206661696c6564000000000000000000600082015250565b60006152e4601783614e59565b91506152ef826152ae565b602082019050919050565b60006020820190508181036000830152615313816152d7565b9050919050565b7f786f72546573743a2063617374203332206661696c6564000000000000000000600082015250565b6000615350601783614e59565b915061535b8261531a565b602082019050919050565b6000602082019050818103600083015261537f81615343565b9050919050565b7f786f72546573743a2063617374203634206661696c6564000000000000000000600082015250565b60006153bc601783614e59565b91506153c782615386565b602082019050919050565b600060208201905081810360008301526153eb816153af565b9050919050565b7f786f72546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b600061544e602783614e59565b9150615459826153f2565b604082019050919050565b6000602082019050818103600083015261547d81615441565b9050919050565b7f786f72546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006154e0602883614e59565b91506154eb82615484565b604082019050919050565b6000602082019050818103600083015261550f816154d3565b9050919050565b7f786f72546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615572602883614e59565b915061557d82615516565b604082019050919050565b600060208201905081810360008301526155a181615565565b9050919050565b7f786f72546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615604602883614e59565b915061560f826155a8565b604082019050919050565b60006020820190508181036000830152615633816155f7565b9050919050565b7f616e64546573743a2063617374203136206661696c6564000000000000000000600082015250565b6000615670601783614e59565b915061567b8261563a565b602082019050919050565b6000602082019050818103600083015261569f81615663565b9050919050565b7f616e64546573743a2063617374203332206661696c6564000000000000000000600082015250565b60006156dc601783614e59565b91506156e7826156a6565b602082019050919050565b6000602082019050818103600083015261570b816156cf565b9050919050565b7f616e64546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000615748601783614e59565b915061575382615712565b602082019050919050565b600060208201905081810360008301526157778161573b565b9050919050565b7f616e64546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b60006157da602783614e59565b91506157e58261577e565b604082019050919050565b60006020820190508181036000830152615809816157cd565b9050919050565b7f616e64546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061586c602883614e59565b915061587782615810565b604082019050919050565b6000602082019050818103600083015261589b8161585f565b9050919050565b7f616e64546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006158fe602883614e59565b9150615909826158a2565b604082019050919050565b6000602082019050818103600083015261592d816158f1565b9050919050565b7f616e64546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615990602883614e59565b915061599b82615934565b604082019050919050565b600060208201905081810360008301526159bf81615983565b9050919050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b6159fb816159c6565b82525050565b615a0a816149a4565b82525050565b6000606082019050615a2560008301866159f2565b615a326020830185615a01565b615a3f6040830184615a01565b949350505050565b615a50816149a4565b8114615a5b57600080fd5b50565b600081519050615a6d81615a47565b92915050565b600060208284031215615a8957615a8861486b565b5b6000615a9784828501615a5e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b615b0481615acf565b82525050565b6000604082019050615b1f6000830185615afb565b615b2c6020830184615a01565b939250505056fea2646970667358221220ee941a9ba895210937b54f17c0b3738f4280f5262ecba9d2f5af680b63ee407f64736f6c63430008140033";
|
|
345
|
+
"0x608060405234801561001057600080fd5b50612ccb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80636b04608f11610076578063991e65321161005b578063991e653214610180578063acb3816914610193578063f3367ccb146101bb57600080fd5b80636b04608f1461013f57806380f937bc1461015457600080fd5b80632e544aa0116100a75780632e544aa0146100fd578063535e40d114610123578063538301e81461012e57600080fd5b80631e977321146100c357806325a3b580146100ed575b600080fd5b6100d66100d1366004612949565b6101ce565b60405160ff90911681526020015b60405180910390f35b600054610100900460ff166100d6565b61011061010b3660046129cd565b6108d1565b60405161ffff90911681526020016100e4565b60005460ff166100d6565b60005462010000900460ff166100d6565b61015261014d366004612a50565b6109b7565b005b610167610162366004612b0b565b610a6c565b60405167ffffffffffffffff90911681526020016100e4565b6100d661018e366004612949565b610c0f565b6101a66101a1366004612bb6565b6112e6565b60405163ffffffff90911681526020016100e4565b6100d66101c9366004612949565b611413565b6000610226604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61024a60405180606001604052806000815260200160008152602001600081525090565b61027c6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6102bc6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6102c78488886109b7565b6102e16102dc85600001518660200151611ae5565b611baa565b5060006102fe6102f986604001518760600151611c3b565b611c50565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff841602179055608086015160a087015191925061034591611ced565b8452604085015160a086015161035b9190611d02565b6020850152608085015160608601516103749190611d18565b60408501526000610384856108d1565b90508160ff168161ffff16146103e15760405162461bcd60e51b815260206004820152601660248201527f6f72546573743a2063617374203136206661696c65640000000000000000000060448201526064015b60405180910390fd5b6103f38660c001518760e00151611d2e565b8452604086015160e08701516104099190611d43565b602085015260c086015160608701516104229190611d59565b6040850152608086015160e087015161043b9190611d6f565b606085015260c086015160a08701516104549190611d85565b60808501526000610464856112e6565b90508063ffffffff168360ff16146104be5760405162461bcd60e51b815260206004820152601660248201527f6f72546573743a2063617374203332206661696c65640000000000000000000060448201526064016103d8565b6104d2876101000151886101200151611d9b565b845260408701516101208801516104e99190611db0565b602085015261010087015160608801516105039190611dc6565b6040850152608087015161012088015161051d9190611ddc565b606085015261010087015160a08801516105379190611df2565b608085015260c08701516101208801516105519190611e08565b60a085015261010087015160e088015161056b9190611e1e565b60c0850152600061057b85610a6c565b90508067ffffffffffffffff168460ff16146105d95760405162461bcd60e51b815260206004820152601660248201527f6f72546573743a2063617374203634206661696c65640000000000000000000060448201526064016103d8565b6105ea6102f98c8a60600151611e34565b60ff168460ff16148015610613575061060a6102f989604001518c611eb6565b60ff168460ff16145b6106855760405162461bcd60e51b815260206004820152602660248201527f6f72546573743a2074657374203820626974732077697468207363616c61722060448201527f6661696c6564000000000000000000000000000000000000000000000000000060648201526084016103d8565b61069e6106998c60ff168a60a00151611f39565b611fbd565b61ffff168460ff161480156106cc57506106c261069989608001518c60ff16611fcd565b61ffff168460ff16145b61073e5760405162461bcd60e51b815260206004820152602760248201527f6f72546573743a207465737420313620626974732077697468207363616c617260448201527f206661696c65640000000000000000000000000000000000000000000000000060648201526084016103d8565b6107576107528c60ff168a60e00151612050565b6120d6565b63ffffffff168460ff16148015610789575061077d6107528960c001518c60ff166120e6565b63ffffffff168460ff16145b6107fb5760405162461bcd60e51b815260206004820152602760248201527f6f72546573743a207465737420333220626974732077697468207363616c617260448201527f206661696c65640000000000000000000000000000000000000000000000000060648201526084016103d8565b6108156108108c60ff168a610120015161216c565b6121f6565b67ffffffffffffffff168460ff1614801561085057506108406108108961010001518c60ff16612206565b67ffffffffffffffff168460ff16145b6108c25760405162461bcd60e51b815260206004820152602760248201527f6f72546573743a207465737420363420626974732077697468207363616c617260448201527f206661696c65640000000000000000000000000000000000000000000000000060648201526084016103d8565b50919998505050505050505050565b6000806108e18360000151611fbd565b90506108f08360200151611fbd565b61ffff168161ffff16148015610919575061090e8360400151611fbd565b61ffff168161ffff16145b6109b15760405162461bcd60e51b815260206004820152604660248201527f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960448201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260648201527f6573756c74730000000000000000000000000000000000000000000000000000608482015260a4016103d8565b92915050565b6109c88160ff168360ff1611612290565b83526109db60ff80841690831611612290565b60208401526109e9826122ef565b60408401526109f7816122ef565b6060840152610a0860ff8316612358565b6080840152610a1960ff8216612358565b60a0840152610a2a60ff83166123c2565b60c0840152610a3b60ff82166123c2565b60e0840152610a4c60ff831661242e565b610100840152610a5e60ff821661242e565b610120909301929092525050565b600080610a7c83600001516121f6565b9050610a8b83602001516121f6565b67ffffffffffffffff168167ffffffffffffffff16148015610acc5750610ab583604001516121f6565b67ffffffffffffffff168167ffffffffffffffff16145b8015610af75750610ae083608001516121f6565b67ffffffffffffffff168167ffffffffffffffff16145b8015610b225750610b0b83606001516121f6565b67ffffffffffffffff168167ffffffffffffffff16145b8015610b4d5750610b368360c001516121f6565b67ffffffffffffffff168167ffffffffffffffff16145b80156109195750610b618360a001516121f6565b67ffffffffffffffff168167ffffffffffffffff16146109b15760405162461bcd60e51b815260206004820152604660248201527f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960448201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260648201527f6573756c74730000000000000000000000000000000000000000000000000000608482015260a4016103d8565b6000610c67604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610c8b60405180606001604052806000815260200160008152602001600081525090565b610cbd6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b610cfd6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610d088488886109b7565b610d1d6102dc8560000151866020015161249e565b506000610d356102f9866040015187606001516124b2565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff166201000060ff841602179055608086015160a0870151919250610d7d916124c7565b8452604085015160a0860151610d9391906124dc565b602085015260808501516060860151610dac91906124f2565b60408501526000610dbc856108d1565b90508160ff168161ffff1614610e145760405162461bcd60e51b815260206004820152601760248201527f786f72546573743a2063617374203136206661696c656400000000000000000060448201526064016103d8565b610e268660c001518760e00151612508565b8452604086015160e0870151610e3c919061251d565b602085015260c08601516060870151610e559190612533565b6040850152608086015160e0870151610e6e9190612549565b606085015260c086015160a0870151610e87919061255f565b60808501526000610e97856112e6565b90508063ffffffff168360ff1614610ef15760405162461bcd60e51b815260206004820152601760248201527f786f72546573743a2063617374203332206661696c656400000000000000000060448201526064016103d8565b610f05876101000151886101200151612575565b84526040870151610120880151610f1c919061258a565b60208501526101008701516060880151610f3691906125a0565b60408501526080870151610120880151610f5091906125b6565b606085015261010087015160a0880151610f6a91906125cc565b608085015260c0870151610120880151610f8491906125e2565b60a085015261010087015160e0880151610f9e91906125f8565b60c08501526000610fae85610a6c565b90508067ffffffffffffffff168460ff161461100c5760405162461bcd60e51b815260206004820152601760248201527f786f72546573743a2063617374203634206661696c656400000000000000000060448201526064016103d8565b61101d6102f98c8a6060015161260e565b60ff168460ff16148015611046575061103d6102f989604001518c612623565b60ff168460ff16145b6110b85760405162461bcd60e51b815260206004820152602760248201527f786f72546573743a2074657374203820626974732077697468207363616c617260448201527f206661696c65640000000000000000000000000000000000000000000000000060648201526084016103d8565b6110cc6106998c60ff168a60a00151612639565b61ffff168460ff161480156110fa57506110f061069989608001518c60ff1661264f565b61ffff168460ff16145b61116c5760405162461bcd60e51b815260206004820152602860248201527f786f72546573743a207465737420313620626974732077697468207363616c6160448201527f72206661696c656400000000000000000000000000000000000000000000000060648201526084016103d8565b6111806107528c60ff168a60e00151612664565b63ffffffff168460ff161480156111b257506111a66107528960c001518c60ff1661267a565b63ffffffff168460ff16145b6112245760405162461bcd60e51b815260206004820152602860248201527f786f72546573743a207465737420333220626974732077697468207363616c6160448201527f72206661696c656400000000000000000000000000000000000000000000000060648201526084016103d8565b6112396108108c60ff168a6101200151612690565b67ffffffffffffffff168460ff1614801561127457506112646108108961010001518c60ff166126a6565b67ffffffffffffffff168460ff16145b6108c25760405162461bcd60e51b815260206004820152602860248201527f786f72546573743a207465737420363420626974732077697468207363616c6160448201527f72206661696c656400000000000000000000000000000000000000000000000060648201526084016103d8565b6000806112f683600001516120d6565b905061130583602001516120d6565b63ffffffff168163ffffffff16148015611336575061132783604001516120d6565b63ffffffff168163ffffffff16145b8015611359575061134a83608001516120d6565b63ffffffff168163ffffffff16145b8015610919575061136d83606001516120d6565b63ffffffff168163ffffffff16146109b15760405162461bcd60e51b815260206004820152604660248201527f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960448201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260648201527f6573756c74730000000000000000000000000000000000000000000000000000608482015260a4016103d8565b600061146b604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61148f60405180606001604052806000815260200160008152602001600081525090565b6114c16040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6115016040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61150c8488886109b7565b6115216102dc856000015186602001516126bc565b5060006115396102f9866040015187606001516126d0565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8316179055608086015160a087015191925061157c916126e5565b8452604085015160a086015161159291906126fa565b6020850152608085015160608601516115ab9190612710565b604085015260006115bb856108d1565b90508160ff168161ffff16146116135760405162461bcd60e51b815260206004820152601760248201527f616e64546573743a2063617374203136206661696c656400000000000000000060448201526064016103d8565b6116258660c001518760e00151612726565b8452604086015160e087015161163b919061273b565b602085015260c086015160608701516116549190612751565b6040850152608086015160e087015161166d9190612767565b606085015260c086015160a0870151611686919061277d565b60808501526000611696856112e6565b90508063ffffffff168360ff16146116f05760405162461bcd60e51b815260206004820152601760248201527f616e64546573743a2063617374203332206661696c656400000000000000000060448201526064016103d8565b611704876101000151886101200151612793565b8452604087015161012088015161171b91906127a8565b6020850152610100870151606088015161173591906127be565b6040850152608087015161012088015161174f91906127d4565b606085015261010087015160a088015161176991906127ea565b608085015260c08701516101208801516117839190612800565b60a085015261010087015160e088015161179d9190612816565b60c085015260006117ad85610a6c565b90508067ffffffffffffffff168460ff161461180b5760405162461bcd60e51b815260206004820152601760248201527f616e64546573743a2063617374203634206661696c656400000000000000000060448201526064016103d8565b61181c6102f98c8a6060015161282c565b60ff168460ff16148015611845575061183c6102f989604001518c612841565b60ff168460ff16145b6118b75760405162461bcd60e51b815260206004820152602760248201527f616e64546573743a2074657374203820626974732077697468207363616c617260448201527f206661696c65640000000000000000000000000000000000000000000000000060648201526084016103d8565b6118cb6106998c60ff168a60a00151612857565b61ffff168460ff161480156118f957506118ef61069989608001518c60ff1661286d565b61ffff168460ff16145b61196b5760405162461bcd60e51b815260206004820152602860248201527f616e64546573743a207465737420313620626974732077697468207363616c6160448201527f72206661696c656400000000000000000000000000000000000000000000000060648201526084016103d8565b61197f6107528c60ff168a60e00151612882565b63ffffffff168460ff161480156119b157506119a56107528960c001518c60ff16612898565b63ffffffff168460ff16145b611a235760405162461bcd60e51b815260206004820152602860248201527f616e64546573743a207465737420333220626974732077697468207363616c6160448201527f72206661696c656400000000000000000000000000000000000000000000000060648201526084016103d8565b611a386108108c60ff168a61012001516128ae565b67ffffffffffffffff168460ff16148015611a735750611a636108108961010001518c60ff166128c4565b67ffffffffffffffff168460ff16145b6108c25760405162461bcd60e51b815260206004820152602860248201527f616e64546573743a207465737420363420626974732077697468207363616c6160448201527f72206661696c656400000000000000000000000000000000000000000000000060648201526084016103d8565b6000606463fb7da35f611af98380806128d6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260248101869052604481018590526064015b6020604051808303816000875af1158015611b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba39190612c4d565b9392505050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c329190612c4d565b15159392505050565b6000606463fb7da35f611af9600180856128d6565b60006064630cfed56160015b60f81b846040518363ffffffff1660e01b8152600401611caa9291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015611cc9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b19190612c4d565b6000606463fb7da35f611af9600280856128d6565b6000606463fb7da35f611af960016002856128d6565b6000606463fb7da35f611af960026001856128d6565b6000606463fb7da35f611af9600380856128d6565b6000606463fb7da35f611af960016003856128d6565b6000606463fb7da35f611af960036001856128d6565b6000606463fb7da35f611af960026003856128d6565b6000606463fb7da35f611af960036002856128d6565b6000606463fb7da35f611af9600480856128d6565b6000606463fb7da35f611af960016004856128d6565b6000606463fb7da35f611af960046001856128d6565b6000606463fb7da35f611af960026004856128d6565b6000606463fb7da35f611af960046002856128d6565b6000606463fb7da35f611af960036004856128d6565b6000606463fb7da35f611af960046003856128d6565b6000606463fb7da35f611e49600180806128d6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015260ff8616602482015260448101859052606401611b60565b6000606463fb7da35f611ecc60018060026128d6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905260ff85166044820152606401611b60565b6000606463fb7da35f611f4f60028060016128d6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015261ffff8616602482015260448101859052606401611b60565b60006064630cfed5616002611c5c565b6000606463fb7da35f611fe2600280806128d6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905261ffff85166044820152606401611b60565b6000606463fb7da35f61206660038060016128d6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015263ffffffff8616602482015260448101859052606401611b60565b60006064630cfed5616003611c5c565b6000606463fb7da35f6120fc60038060026128d6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905263ffffffff85166044820152606401611b60565b6000606463fb7da35f61218260048060016128d6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff0000000000000000000000000000000000000000000000000000000000909116600482015267ffffffffffffffff8616602482015260448101859052606401611b60565b60006064630cfed5616004611c5c565b6000606463fb7da35f61221c60048060026128d6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffff000000000000000000000000000000000000000000000000000000000090911660048201526024810186905267ffffffffffffffff85166044820152606401611b60565b6000808261229f5760006122a2565b60015b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081526000600482015260ff9190911660248201819052915060649063d9b60b6090604401611b60565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401611caa565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401611caa565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401611caa565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401611caa565b60006064636f962e2c611af98380806128d6565b60006064636f962e2c611af9600180856128d6565b60006064636f962e2c611af9600280856128d6565b60006064636f962e2c611af960016002856128d6565b60006064636f962e2c611af960026001856128d6565b60006064636f962e2c611af9600380856128d6565b60006064636f962e2c611af960016003856128d6565b60006064636f962e2c611af960036001856128d6565b60006064636f962e2c611af960026003856128d6565b60006064636f962e2c611af960036002856128d6565b60006064636f962e2c611af9600480856128d6565b60006064636f962e2c611af960016004856128d6565b60006064636f962e2c611af960046001856128d6565b60006064636f962e2c611af960026004856128d6565b60006064636f962e2c611af960046002856128d6565b60006064636f962e2c611af960036004856128d6565b60006064636f962e2c611af960046003856128d6565b60006064636f962e2c611e49600180806128d6565b60006064636f962e2c611ecc60018060026128d6565b60006064636f962e2c611f4f60028060016128d6565b60006064636f962e2c611fe2600280806128d6565b60006064636f962e2c61206660038060016128d6565b60006064636f962e2c6120fc60038060026128d6565b60006064636f962e2c61218260048060016128d6565b60006064636f962e2c61221c60048060026128d6565b6000606463fe9c73d1611af98380806128d6565b6000606463fe9c73d1611af9600180856128d6565b6000606463fe9c73d1611af9600280856128d6565b6000606463fe9c73d1611af960016002856128d6565b6000606463fe9c73d1611af960026001856128d6565b6000606463fe9c73d1611af9600380856128d6565b6000606463fe9c73d1611af960016003856128d6565b6000606463fe9c73d1611af960036001856128d6565b6000606463fe9c73d1611af960026003856128d6565b6000606463fe9c73d1611af960036002856128d6565b6000606463fe9c73d1611af9600480856128d6565b6000606463fe9c73d1611af960016004856128d6565b6000606463fe9c73d1611af960046001856128d6565b6000606463fe9c73d1611af960026004856128d6565b6000606463fe9c73d1611af960046002856128d6565b6000606463fe9c73d1611af960036004856128d6565b6000606463fe9c73d1611af960046003856128d6565b6000606463fe9c73d1611e49600180806128d6565b6000606463fe9c73d1611ecc60018060026128d6565b6000606463fe9c73d1611f4f60028060016128d6565b6000606463fe9c73d1611fe2600280806128d6565b6000606463fe9c73d161206660038060016128d6565b6000606463fe9c73d16120fc60038060026128d6565b6000606463fe9c73d161218260048060016128d6565b6000606463fe9c73d161221c60048060025b60008160028111156128ea576128ea612c66565b60ff16600884600481111561290157612901612c66565b61ffff16901b61ffff16601086600481111561291f5761291f612c66565b62ffffff16901b171760e81b949350505050565b803560ff8116811461294457600080fd5b919050565b6000806040838503121561295c57600080fd5b61296583612933565b915061297360208401612933565b90509250929050565b604051610140810167ffffffffffffffff811182821017156129c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b6000606082840312156129df57600080fd5b6040516060810181811067ffffffffffffffff82111715612a29577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80604052508235815260208301356020820152604083013560408201528091505092915050565b6000806000838503610180811215612a6757600080fd5b61014080821215612a7757600080fd5b612a7f61297c565b9150853582526020860135602083015260408601356040830152606086013560608301526080860135608083015260a086013560a083015260c086013560c083015260e086013560e0830152610100808701358184015250610120808701358184015250819450612af1818701612933565b93505050612b026101608501612933565b90509250925092565b600060e08284031215612b1d57600080fd5b60405160e0810181811067ffffffffffffffff82111715612b67577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8060405250823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c08201528091505092915050565b600060a08284031215612bc857600080fd5b60405160a0810181811067ffffffffffffffff82111715612c12577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b600060208284031215612c5f57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea264697066735822122066b98a9cec7adde360a7fda723228f62506ae8b8b1fc2e3c358ec0c95b80d3af64736f6c63430008130033";
|
|
310
346
|
|
|
311
347
|
type BitwiseTestsContractConstructorParams =
|
|
312
348
|
| [signer?: Signer]
|