@aztec/l1-artifacts 0.61.0 → 0.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/{NomismatokopioAbi.d.ts → CoinIssuerAbi.d.ts} +4 -4
- package/dest/CoinIssuerAbi.d.ts.map +1 -0
- package/dest/{NomismatokopioAbi.js → CoinIssuerAbi.js} +4 -4
- package/dest/CoinIssuerBytecode.d.ts +9 -0
- package/dest/CoinIssuerBytecode.d.ts.map +1 -0
- package/dest/CoinIssuerBytecode.js +9 -0
- package/dest/FeeJuicePortalAbi.d.ts +9 -0
- package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
- package/dest/FeeJuicePortalAbi.js +12 -1
- package/dest/FeeJuicePortalBytecode.d.ts +1 -1
- package/dest/FeeJuicePortalBytecode.d.ts.map +1 -1
- package/dest/FeeJuicePortalBytecode.js +2 -2
- package/dest/{ApellaAbi.d.ts → GovernanceAbi.d.ts} +105 -44
- package/dest/{ApellaAbi.d.ts.map → GovernanceAbi.d.ts.map} +1 -1
- package/dest/{ApellaAbi.js → GovernanceAbi.js} +128 -48
- package/dest/GovernanceBytecode.d.ts +9 -0
- package/dest/GovernanceBytecode.d.ts.map +1 -0
- package/dest/GovernanceBytecode.js +9 -0
- package/dest/{GerousiaAbi.d.ts → GovernanceProposerAbi.d.ts} +21 -21
- package/dest/GovernanceProposerAbi.d.ts.map +1 -0
- package/dest/{GerousiaAbi.js → GovernanceProposerAbi.js} +21 -21
- package/dest/GovernanceProposerBytecode.d.ts +9 -0
- package/dest/GovernanceProposerBytecode.d.ts.map +1 -0
- package/dest/GovernanceProposerBytecode.js +9 -0
- package/dest/InboxAbi.d.ts +4 -0
- package/dest/InboxAbi.d.ts.map +1 -1
- package/dest/InboxAbi.js +6 -1
- package/dest/InboxBytecode.d.ts +1 -1
- package/dest/InboxBytecode.d.ts.map +1 -1
- package/dest/InboxBytecode.js +2 -2
- package/dest/MockVerifierBytecode.d.ts +1 -1
- package/dest/MockVerifierBytecode.js +1 -1
- package/dest/{NewGerousiaPayloadAbi.d.ts → NewGovernanceProposerPayloadAbi.d.ts} +4 -4
- package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -0
- package/dest/{NewGerousiaPayloadAbi.js → NewGovernanceProposerPayloadAbi.js} +4 -4
- package/dest/NewGovernanceProposerPayloadBytecode.d.ts +9 -0
- package/dest/NewGovernanceProposerPayloadBytecode.d.ts.map +1 -0
- package/dest/NewGovernanceProposerPayloadBytecode.js +9 -0
- package/dest/OutboxBytecode.d.ts +1 -1
- package/dest/OutboxBytecode.js +1 -1
- package/dest/ProofCommitmentEscrowAbi.d.ts +18 -0
- package/dest/ProofCommitmentEscrowAbi.d.ts.map +1 -1
- package/dest/ProofCommitmentEscrowAbi.js +24 -1
- package/dest/ProofCommitmentEscrowBytecode.d.ts +1 -1
- package/dest/ProofCommitmentEscrowBytecode.d.ts.map +1 -1
- package/dest/ProofCommitmentEscrowBytecode.js +2 -2
- package/dest/RegistryAbi.d.ts +10 -10
- package/dest/RegistryAbi.js +14 -14
- package/dest/RegistryBytecode.d.ts +1 -1
- package/dest/RegistryBytecode.js +1 -1
- package/dest/{SysstiaAbi.d.ts → RewardDistributorAbi.d.ts} +11 -11
- package/dest/RewardDistributorAbi.d.ts.map +1 -0
- package/dest/{SysstiaAbi.js → RewardDistributorAbi.js} +12 -12
- package/dest/RewardDistributorBytecode.d.ts +9 -0
- package/dest/RewardDistributorBytecode.d.ts.map +1 -0
- package/dest/RewardDistributorBytecode.js +9 -0
- package/dest/RollupAbi.d.ts +53 -14
- package/dest/RollupAbi.d.ts.map +1 -1
- package/dest/RollupAbi.js +66 -15
- package/dest/RollupBytecode.d.ts +3 -3
- package/dest/RollupBytecode.d.ts.map +1 -1
- package/dest/RollupBytecode.js +4 -4
- package/dest/TestERC20Abi.d.ts +2 -2
- package/dest/TestERC20Abi.js +3 -3
- package/dest/TestERC20Bytecode.d.ts +1 -1
- package/dest/TestERC20Bytecode.js +1 -1
- package/dest/TokenPortalAbi.d.ts +63 -4
- package/dest/TokenPortalAbi.d.ts.map +1 -1
- package/dest/TokenPortalAbi.js +79 -6
- package/dest/TokenPortalBytecode.d.ts +1 -1
- package/dest/TokenPortalBytecode.d.ts.map +1 -1
- package/dest/TokenPortalBytecode.js +2 -2
- package/dest/TxsDecoderBytecode.d.ts +1 -1
- package/dest/TxsDecoderBytecode.d.ts.map +1 -1
- package/dest/TxsDecoderBytecode.js +2 -2
- package/dest/UniswapPortalAbi.d.ts +8 -4
- package/dest/UniswapPortalAbi.d.ts.map +1 -1
- package/dest/UniswapPortalAbi.js +11 -6
- package/dest/UniswapPortalBytecode.d.ts +1 -1
- package/dest/UniswapPortalBytecode.d.ts.map +1 -1
- package/dest/UniswapPortalBytecode.js +2 -2
- package/dest/index.d.ts +10 -10
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +11 -11
- package/generated/{NomismatokopioAbi.ts → CoinIssuerAbi.ts} +3 -3
- package/generated/CoinIssuerBytecode.ts +8 -0
- package/generated/FeeJuicePortalAbi.ts +11 -0
- package/generated/FeeJuicePortalBytecode.ts +1 -1
- package/generated/{ApellaAbi.ts → GovernanceAbi.ts} +127 -47
- package/generated/GovernanceBytecode.ts +8 -0
- package/generated/{GerousiaAbi.ts → GovernanceProposerAbi.ts} +20 -20
- package/generated/GovernanceProposerBytecode.ts +8 -0
- package/generated/InboxAbi.ts +5 -0
- package/generated/InboxBytecode.ts +1 -1
- package/generated/MockVerifierBytecode.ts +1 -1
- package/generated/{NewGerousiaPayloadAbi.ts → NewGovernanceProposerPayloadAbi.ts} +3 -3
- package/generated/NewGovernanceProposerPayloadBytecode.ts +8 -0
- package/generated/OutboxBytecode.ts +1 -1
- package/generated/ProofCommitmentEscrowAbi.ts +23 -0
- package/generated/ProofCommitmentEscrowBytecode.ts +1 -1
- package/generated/RegistryAbi.ts +13 -13
- package/generated/RegistryBytecode.ts +1 -1
- package/generated/{SysstiaAbi.ts → RewardDistributorAbi.ts} +11 -11
- package/generated/RewardDistributorBytecode.ts +8 -0
- package/generated/RollupAbi.ts +65 -14
- package/generated/RollupBytecode.ts +3 -3
- package/generated/TestERC20Abi.ts +2 -2
- package/generated/TestERC20Bytecode.ts +1 -1
- package/generated/TokenPortalAbi.ts +78 -5
- package/generated/TokenPortalBytecode.ts +1 -1
- package/generated/TxsDecoderBytecode.ts +1 -1
- package/generated/UniswapPortalAbi.ts +10 -5
- package/generated/UniswapPortalBytecode.ts +1 -1
- package/generated/index.ts +10 -10
- package/package.json +1 -1
- package/dest/ApellaBytecode.d.ts +0 -9
- package/dest/ApellaBytecode.d.ts.map +0 -1
- package/dest/ApellaBytecode.js +0 -9
- package/dest/GerousiaAbi.d.ts.map +0 -1
- package/dest/GerousiaBytecode.d.ts +0 -9
- package/dest/GerousiaBytecode.d.ts.map +0 -1
- package/dest/GerousiaBytecode.js +0 -9
- package/dest/NewGerousiaPayloadAbi.d.ts.map +0 -1
- package/dest/NewGerousiaPayloadBytecode.d.ts +0 -9
- package/dest/NewGerousiaPayloadBytecode.d.ts.map +0 -1
- package/dest/NewGerousiaPayloadBytecode.js +0 -9
- package/dest/NomismatokopioAbi.d.ts.map +0 -1
- package/dest/NomismatokopioBytecode.d.ts +0 -9
- package/dest/NomismatokopioBytecode.d.ts.map +0 -1
- package/dest/NomismatokopioBytecode.js +0 -9
- package/dest/SysstiaAbi.d.ts.map +0 -1
- package/dest/SysstiaBytecode.d.ts +0 -9
- package/dest/SysstiaBytecode.d.ts.map +0 -1
- package/dest/SysstiaBytecode.js +0 -9
- package/generated/ApellaBytecode.ts +0 -8
- package/generated/GerousiaBytecode.ts +0 -8
- package/generated/NewGerousiaPayloadBytecode.ts +0 -8
- package/generated/NomismatokopioBytecode.ts +0 -8
- package/generated/SysstiaBytecode.ts +0 -8
package/generated/RollupAbi.ts
CHANGED
|
@@ -11,9 +11,9 @@ export const RollupAbi = [
|
|
|
11
11
|
"internalType": "contract IFeeJuicePortal"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
|
-
"name": "
|
|
14
|
+
"name": "_rewardDistributor",
|
|
15
15
|
"type": "address",
|
|
16
|
-
"internalType": "contract
|
|
16
|
+
"internalType": "contract IRewardDistributor"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"name": "_vkTreeRoot",
|
|
@@ -34,6 +34,33 @@ export const RollupAbi = [
|
|
|
34
34
|
"name": "_validators",
|
|
35
35
|
"type": "address[]",
|
|
36
36
|
"internalType": "address[]"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "_config",
|
|
40
|
+
"type": "tuple",
|
|
41
|
+
"internalType": "struct Rollup.Config",
|
|
42
|
+
"components": [
|
|
43
|
+
{
|
|
44
|
+
"name": "aztecSlotDuration",
|
|
45
|
+
"type": "uint256",
|
|
46
|
+
"internalType": "uint256"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "aztecEpochDuration",
|
|
50
|
+
"type": "uint256",
|
|
51
|
+
"internalType": "uint256"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "targetCommitteeSize",
|
|
55
|
+
"type": "uint256",
|
|
56
|
+
"internalType": "uint256"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "aztecEpochProofClaimWindowInL2Slots",
|
|
60
|
+
"type": "uint256",
|
|
61
|
+
"internalType": "uint256"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
37
64
|
}
|
|
38
65
|
],
|
|
39
66
|
"stateMutability": "nonpayable"
|
|
@@ -170,26 +197,26 @@ export const RollupAbi = [
|
|
|
170
197
|
},
|
|
171
198
|
{
|
|
172
199
|
"type": "function",
|
|
173
|
-
"name": "
|
|
200
|
+
"name": "REWARD_DISTRIBUTOR",
|
|
174
201
|
"inputs": [],
|
|
175
202
|
"outputs": [
|
|
176
203
|
{
|
|
177
204
|
"name": "",
|
|
178
|
-
"type": "
|
|
179
|
-
"internalType": "
|
|
205
|
+
"type": "address",
|
|
206
|
+
"internalType": "contract IRewardDistributor"
|
|
180
207
|
}
|
|
181
208
|
],
|
|
182
209
|
"stateMutability": "view"
|
|
183
210
|
},
|
|
184
211
|
{
|
|
185
212
|
"type": "function",
|
|
186
|
-
"name": "
|
|
213
|
+
"name": "SLOT_DURATION",
|
|
187
214
|
"inputs": [],
|
|
188
215
|
"outputs": [
|
|
189
216
|
{
|
|
190
217
|
"name": "",
|
|
191
|
-
"type": "
|
|
192
|
-
"internalType": "
|
|
218
|
+
"type": "uint256",
|
|
219
|
+
"internalType": "uint256"
|
|
193
220
|
}
|
|
194
221
|
],
|
|
195
222
|
"stateMutability": "view"
|
|
@@ -336,6 +363,25 @@ export const RollupAbi = [
|
|
|
336
363
|
],
|
|
337
364
|
"stateMutability": "view"
|
|
338
365
|
},
|
|
366
|
+
{
|
|
367
|
+
"type": "function",
|
|
368
|
+
"name": "canPruneAtTime",
|
|
369
|
+
"inputs": [
|
|
370
|
+
{
|
|
371
|
+
"name": "_ts",
|
|
372
|
+
"type": "uint256",
|
|
373
|
+
"internalType": "Timestamp"
|
|
374
|
+
}
|
|
375
|
+
],
|
|
376
|
+
"outputs": [
|
|
377
|
+
{
|
|
378
|
+
"name": "",
|
|
379
|
+
"type": "bool",
|
|
380
|
+
"internalType": "bool"
|
|
381
|
+
}
|
|
382
|
+
],
|
|
383
|
+
"stateMutability": "view"
|
|
384
|
+
},
|
|
339
385
|
{
|
|
340
386
|
"type": "function",
|
|
341
387
|
"name": "claimEpochProofRight",
|
|
@@ -610,7 +656,7 @@ export const RollupAbi = [
|
|
|
610
656
|
"internalType": "Epoch"
|
|
611
657
|
}
|
|
612
658
|
],
|
|
613
|
-
"stateMutability": "
|
|
659
|
+
"stateMutability": "view"
|
|
614
660
|
},
|
|
615
661
|
{
|
|
616
662
|
"type": "function",
|
|
@@ -636,7 +682,7 @@ export const RollupAbi = [
|
|
|
636
682
|
"name": "getEpochForBlock",
|
|
637
683
|
"inputs": [
|
|
638
684
|
{
|
|
639
|
-
"name": "
|
|
685
|
+
"name": "_blockNumber",
|
|
640
686
|
"type": "uint256",
|
|
641
687
|
"internalType": "uint256"
|
|
642
688
|
}
|
|
@@ -1101,7 +1147,7 @@ export const RollupAbi = [
|
|
|
1101
1147
|
"name": "quoteToDigest",
|
|
1102
1148
|
"inputs": [
|
|
1103
1149
|
{
|
|
1104
|
-
"name": "
|
|
1150
|
+
"name": "_quote",
|
|
1105
1151
|
"type": "tuple",
|
|
1106
1152
|
"internalType": "struct EpochProofQuoteLib.EpochProofQuote",
|
|
1107
1153
|
"components": [
|
|
@@ -1167,7 +1213,7 @@ export const RollupAbi = [
|
|
|
1167
1213
|
"name": "setAssumeProvenThroughBlockNumber",
|
|
1168
1214
|
"inputs": [
|
|
1169
1215
|
{
|
|
1170
|
-
"name": "
|
|
1216
|
+
"name": "_blockNumber",
|
|
1171
1217
|
"type": "uint256",
|
|
1172
1218
|
"internalType": "uint256"
|
|
1173
1219
|
}
|
|
@@ -1226,7 +1272,7 @@ export const RollupAbi = [
|
|
|
1226
1272
|
"name": "status",
|
|
1227
1273
|
"inputs": [
|
|
1228
1274
|
{
|
|
1229
|
-
"name": "
|
|
1275
|
+
"name": "_myHeaderBlockNumber",
|
|
1230
1276
|
"type": "uint256",
|
|
1231
1277
|
"internalType": "uint256"
|
|
1232
1278
|
}
|
|
@@ -1331,8 +1377,13 @@ export const RollupAbi = [
|
|
|
1331
1377
|
},
|
|
1332
1378
|
{
|
|
1333
1379
|
"type": "function",
|
|
1334
|
-
"name": "
|
|
1380
|
+
"name": "validateEpochProofRightClaimAtTime",
|
|
1335
1381
|
"inputs": [
|
|
1382
|
+
{
|
|
1383
|
+
"name": "_ts",
|
|
1384
|
+
"type": "uint256",
|
|
1385
|
+
"internalType": "Timestamp"
|
|
1386
|
+
},
|
|
1336
1387
|
{
|
|
1337
1388
|
"name": "_quote",
|
|
1338
1389
|
"type": "tuple",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Rollup bytecode.
|
|
3
3
|
*/
|
|
4
|
-
export const RollupBytecode = "0x61028060405234801561001157600080fd5b50604051618c60380380618c6083398101604081905261003091610d90565b81806040518060400160405280600c81526020016b0417a74656320526f6c6c75760a41b815250604051806040016040528060018152602001603160f81b8152506100856000836103f760201b90919060201c565b610120526100948160016103f7565b61014052815160208084019190912060e052815190820120610100524660a05261012160e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526101338161042a565b5050426101605260405161014690610ca4565b604051809103906000f080158015610162573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b0392831617905586811661022081905290861661024052604080516362eb326360e11b8152905163c5d664c6916004808201926020929091908290030181865afa1580156101ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ee9190610eaf565b6001600160a01b0316610260819052604051309061020b90610cb1565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801561023e573d6000803e3d6000fd5b506001600160a01b03166101e052604051309060049061025d90610cbe565b6001600160a01b0390921682526020820152604001604051809103906000f08015801561028e573d6000803e3d6000fd5b506001600160a01b03166101a05260405130906102aa90610ccb565b6001600160a01b039091168152602001604051809103906000f0801580156102d6573d6000803e3d6000fd5b506001600160a01b03166101c052601084905560118390556001610200524361018052604080516060810182527f1200a06aae1368abe36530b585bd7a4d2ba4de5037b82076412691a187d7621e815260006020808301828152938301828152828052600f90915291517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3755591517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec37655517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec377555b81518110156103e3576103db8282815181106103c8576103c8610ecc565b602002602001015161047c60201b60201c565b6001016103aa565b506103ec61048b565b505050505050611164565b60006020835110156104135761040c836104f9565b9050610424565b8161041e8482610f6a565b5060ff90505b92915050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610487600382610540565b5050565b600061049561055c565b60008181526005602052604081206001810154929350919003610487576104bb8261056c565b60018201556104c9826105d8565b6006819055600282015560018101546104e190610614565b80516104f4918391602090910190610cd8565b505050565b600080829050601f8151111561052d578260405163305a27a960e01b81526004016105249190611028565b60405180910390fd5b805161053882611076565b179392505050565b6000610555836001600160a01b0384166106ff565b9392505050565b60006105674261074e565b905090565b60008160000361057f5750600019919050565b600082815260056020526040902060010154801561059d5792915050565b600560006105ac856001610782565b8152602001908152602001600020600201549050806000146105ce5792915050565b5050600654919050565b600081446040516020016105f6929190918252602082015260400190565b60408051601f19818403018152919052805160209091012092915050565b60606000610622600361078e565b905080600003610642575050604080516000815260208101909152919050565b60308111610654576105556003610798565b6000610662603083866107a5565b604080516030808252610620820190925291925060009190602082016106008036833701905050905060005b60308110156106f6576106c48382815181106106ac576106ac610ecc565b6020026020010151600361082e60201b90919060201c565b8282815181106106d6576106d6610ecc565b6001600160a01b039092166020928302919091019091015260010161068e565b50949350505050565b600081815260018301602052604081205461074657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610424565b506000610424565b600061075c82610160511190565b61077a576107756107708361016051610782565b61083a565b610424565b600092915050565b600061055582846110b0565b6000610424825490565b6060600061055583610852565b60606000846001600160401b038111156107c1576107c1610d7a565b6040519080825280602002602001820160405280156107ea578160200160208202803683370190505b50905060005b858110156106f65760006108058287876108ae565b90508083838151811061081a5761081a610ecc565b6020908102919091010152506001016107f0565b60006105558383610944565b6000610848601860106110c3565b61042490836110f0565b6060816000018054806020026020016040519081016040528092919081815260200182805480156108a257602002820191906000526020600020905b81548152602001906001019080831161088e575b50505050509050919050565b600083838082106108db5760405163a12fc55960e01b815260048101929092526024820152604401610524565b50600090506108e98461096e565b905084815b801561093a57600061090b866109056001856110b0565b89610b3d565b905061092486828561091e6001876110b0565b8b610b94565b925050808061093290611104565b9150506108ee565b5095945050505050565b600082600001828154811061095b5761095b610ecc565b9060005260206000200154905092915050565b6000610b3282604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b6001600160801b68010000000000000000640100000000620100006010600460026000198c019081041790810417908104178881041790810417908104179081041790810417017e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff0281900460ff039091015104600160ff1b909211020190565b6104249060046110c3565b6000818484604051602001610b6992919091825260f81b6001600160f81b031916602082015260210190565b6040516020818303038152906040528051906020012060001c610b8c919061111b565b949350505050565b6000808285610ba3828961112f565b610bad91906110b0565b610bb7919061111b565b90506000818611610bc85781610bca565b855b905060008886610bdc610100856110f0565b604051602001610c199392919092835260f89190911b6001600160f81b031916602083015260e01b6001600160e01b031916602182015260250190565b604051602081830303815290604052805190602001209050600081600861010085610c44919061111b565b610c4e91906110f0565b60208110610c5e57610c5e610ecc565b1a905060006002610c7060088661111b565b8360ff16901c610c809190611142565b90508060ff16600114610c935788610c95565b845b9b9a5050505050505050505050565b6101848061654883390190565b610b1c806166cc83390190565b610fcc806171e883390190565b610aac806181b483390190565b828054828255906000526020600020908101928215610d2d579160200282015b82811115610d2d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610cf8565b50610d39929150610d3d565b5090565b5b80821115610d395760008155600101610d3e565b6001600160a01b0381168114610d6757600080fd5b50565b8051610d7581610d52565b919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215610da957600080fd5b8651610db481610d52565b6020880151909650610dc581610d52565b6040880151606089015160808a01519297509095509350610de581610d52565b60a08801519092506001600160401b03811115610e0157600080fd5b8701601f81018913610e1257600080fd5b80516001600160401b03811115610e2b57610e2b610d7a565b604051600582901b90603f8201601f191681016001600160401b0381118282101715610e5957610e59610d7a565b60405291825260208184018101929081018c841115610e7757600080fd5b6020850194505b83851015610e9d57610e8f85610d6a565b815260209485019401610e7e565b50809450505050509295509295509295565b600060208284031215610ec157600080fd5b815161055581610d52565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610ef657607f821691505b602082108103610f1657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156104f457806000526020600020601f840160051c81016020851015610f435750805b601f840160051c820191505b81811015610f635760008155600101610f4f565b5050505050565b81516001600160401b03811115610f8357610f83610d7a565b610f9781610f918454610ee2565b84610f1c565b6020601f821160018114610fcb5760008315610fb35750848201515b600019600385901b1c1916600184901b178455610f63565b600084815260208120601f198516915b82811015610ffb5787850151825560209485019460019092019101610fdb565b50848210156110195786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b818110156110565760208186018101516040868401015201611039565b506000604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610f165760001960209190910360031b1b16919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104245761042461109a565b80820281158282048414176104245761042461109a565b634e487b7160e01b600052601260045260246000fd5b6000826110ff576110ff6110da565b500490565b6000816111135761111361109a565b506000190190565b60008261112a5761112a6110da565b500690565b808201808211156104245761042461109a565b600060ff831680611155576111556110da565b8060ff84160691505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051610240516102605161528d6112bb6000396000818161056d0152818161246a01526124ea01526000818161049f0152818161129401528181611445015281816121c3015261239d015260008181610416015281816111fa01528181611381015281816121290152818161231b01526138a40152600081816109ae01526136be0152600081816107c601528181610c2201528181611c360152612559015260008181610478015261115301526000818161077401526110510152600061067c01526000818161094e01528181611dbd01528181611ded01528181611f6101528181611f910152611fc10152600061302c01526000612fff01526000613d3801526000613d1001526000613c6b01526000613c9501526000613cbf015261528d6000f3fe608060405234801561001057600080fd5b50600436106103e65760003560e01c806390677bac1161020a578063bece308a11610125578063e511e546116100b8578063f288246111610087578063f288246114610949578063f2fde38b14610970578063f81d079514610983578063facd743b14610996578063ffa1ad74146109a957600080fd5b8063e511e546146108d0578063e7142f7c146108e3578063ef0e5c0d146108ec578063f25b3f99146108ff57600080fd5b8063d03b2bae116100f4578063d03b2bae14610853578063d6db257314610866578063d8e3784c146108c0578063e3380b79146108c857600080fd5b8063bece308a146107fb578063c27f08b514610803578063c6b61e4c14610816578063c9d1e0121461084057600080fd5b8063b67d057b1161019d578063b8f315901161016c578063b8f31590146107b1578063b97dd9e2146107b9578063b9802405146107c1578063b9d09163146107e857600080fd5b8063b67d057b14610767578063b70106971461076f578063b7ab4db514610796578063b85e881d1461079e57600080fd5b8063a0e6fc87116101d9578063a0e6fc8714610731578063a575fcdc14610744578063a70b9f0c1461074c578063b521af8d1461075457600080fd5b806390677bac146106ee578063966ab4ee1461070e5780639a000e5b146107165780639f2b31541461072957600080fd5b806353a1602411610305578063725e494e116102985780637c28ec3f116102675780637c28ec3f1461069e57806380edb5bd146106a757806384b0196e146106ba5780638da5cb5b146106d5578063905c0511146106e657600080fd5b8063725e494e1461063e57806374af185e146106515780637500af551461066457806379ed8ead1461067757600080fd5b806369457a6f116102d457806369457a6f146105fb5780637071688a1461061b57806370d1c58c14610623578063715018a61461063657600080fd5b806353a16024146105aa5780635aa51600146105bd57806368bdcbc5146105d0578063694223ac146105e357600080fd5b80633b10244b1161037d57806342d21ef71161034c57806342d21ef7146105285780634800d97f1461056857806348b9e57b1461058f5780634d238c8e1461059757600080fd5b80633b10244b146104fc5780633ceac569146105045780633cfe551f1461050c57806340a141ff1461051557600080fd5b8063310a6127116103b9578063310a61271461049a57806333f9acb4146104c157806336185aa1146104d45780633777e863146104e957600080fd5b806302a21460146103eb5780631811f40b146104115780631a4e1e78146104505780631b142ea714610473575b600080fd5b6008546000908152600f60205260409020545b6040519081526020015b60405180910390f35b6104387f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610408565b60085460095461045e919082565b60408051928352602083019190915201610408565b6104387f000000000000000000000000000000000000000000000000000000000000000081565b6104387f000000000000000000000000000000000000000000000000000000000000000081565b61045e6104cf3660046145e6565b6109d0565b6104e76104e23660046147d0565b610b0a565b005b6103fe6104f73660046148a0565b610b30565b610438610b57565b6103fe600d81565b6103fe60115481565b6104e76105233660046148ce565b610b67565b61053b6105363660046148a0565b610b86565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610408565b6104387f000000000000000000000000000000000000000000000000000000000000000081565b6008546103fe565b6104e76105a53660046148ce565b610bdb565b6104e76105b8366004614904565b610bf7565b6104e76105cb3660046148a0565b610dc7565b6104e76105de3660046148a0565b610dd4565b6105eb610de1565b6040519015158152602001610408565b61060e6106093660046148a0565b610dec565b6040516104089190614921565b6103fe610e58565b6104e76106313660046149cb565b610e64565b6104e7610e88565b6104e761064c3660046148ce565b610e9c565b6103fe61065f3660046148a0565b610ec6565b6104e7610672366004614ab8565b610ed9565b6103fe7f000000000000000000000000000000000000000000000000000000000000000081565b6103fe60105481565b6103fe6106b53660046148a0565b6114ff565b6106c2611551565b6040516104089796959493929190614be3565b6002546001600160a01b0316610438565b6103fe601881565b6107016106fc366004614cd0565b611597565b6040516104089190614d9d565b61060e6119ec565b6104386107243660046148a0565b6119f7565b6104e7611a04565b6104e761073f3660046148a0565b611a31565b6103fe603081565b6103fe601081565b6104e7610762366004614904565b611a47565b6009546103fe565b6104387f000000000000000000000000000000000000000000000000000000000000000081565b61060e611d41565b6103fe6107ac366004614dc4565b611d4d565b6103fe611d60565b6103fe611daa565b6104387f000000000000000000000000000000000000000000000000000000000000000081565b6103fe6107f63660046148a0565b611db5565b6103fe611e23565b6104386108113660046148a0565b611e62565b61045e6108243660046148a0565b6005602052600090815260409020600181015460029091015482565b6103fe61084e3660046148a0565b611f59565b6103fe6108613660046148a0565b611fba565b600a54600b54600c54600d54600e5461088c949392916001600160a01b03908116911685565b604080519586526020860194909452928401919091526001600160a01b03908116606084015216608082015260a001610408565b6103fe611fee565b6104e7611ff9565b6104e76108de366004614e47565b612067565b6103fe6103e881565b6103fe6108fa366004614ee9565b6125f9565b61092e61090d3660046148a0565b600f6020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610408565b6103fe7f000000000000000000000000000000000000000000000000000000000000000081565b6104e761097e3660046148ce565b61267d565b600754610438906001600160a01b031681565b6105eb6109a43660046148ce565b6126b8565b6103fe7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006109de85611db5565b905060006109eb866126c5565b6109f7576008546109fb565b6009545b6000818152600f60205260409020600201549091508083808210610a405760405163083510bd60e41b8152600481019290925260248201526044015b60405180910390fd5b50506000828152600f60205260409020548087808214610a7c57604051635b41520760e11b815260048101929092526024820152604401610a37565b50506040805160008082526020820190925281610ac8565b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610a945790505b506040805180820190915260018082526020820152909150610aec86838b846127a3565b85610af8866001614f40565b975097505050505050505b9250929050565b6000610b168888612974565b9050610b26818787878787612d18565b5050505050505050565b6008546000908211610b4f57506000908152600f602052604090205490565b506000919050565b6000610b6242611e62565b905090565b610b6f612d57565b610b77611ff9565b610b82600382612d84565b5050565b6009546000818152600f60205260408082205460085480845291832054929384938493849384938493909290610bbb8b610b30565b600954610bc7906114ff565b949c939b5091995097509550909350915050565b610be3612d57565b610beb611ff9565b610bf481612d99565b50565b610c0081611a47565b6000610c0a611fee565b90506000610c16611e23565b90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631c87b6ac610c5760808601606087016148ce565b6040805160e084901b6001600160e01b03191681526001600160a01b0390921660048301528601356024820152604401600060405180830381600087803b158015610ca157600080fd5b505af1158015610cb5573d6000803e3d6000fd5b505050506040518060a00160405280828152602001846000016080016020810190610ce09190614f53565b63ffffffff168152604080860135602083015201610d0460808601606087016148ce565b6001600160a01b0390811682523360209283018190528351600a5591830151600b556040830151600c55606080840151600d80549184166001600160a01b0319928316179055608094850151600e8054919094169116179091559091610d6f919086019086016148ce565b6001600160a01b0316827f04eee47b3fe9e6bcdec9370371d65501f3fb3f44d2fbf49c2b6834635a7253df866000016040013586604051610dba929190918252602082015260400190565b60405180910390a4505050565b610dcf612d57565b601055565b610ddc612d57565b601155565b6000610b62426126c5565b600081815260056020908152604091829020805483518184028101840190945280845260609392830182828015610e4c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e2e575b50505050509050919050565b6000610b626003612da4565b610e748989898989898989610ed9565b610e7d81610bf7565b505050505050505050565b610e90612d57565b610e9a6000612dae565b565b610ea4612d57565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ed3601083614f84565b92915050565b610ee1610de1565b15610eee57610eee612e00565b60405163e5c5e9a360e01b815260009073__$bd4735397c9654ec5109019d55c6931403$__9063e5c5e9a390610f2a9086908690600401614fc1565b602060405180830381865af4158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190614fd5565b90506000610f798a8a612974565b905060008887604051602001610f90929190614fee565b604051602081830303815290604052805190602001209050610fb0611ff9565b610fd88287834287604051806040016040528060001515815260200160001515815250612d18565b6000600860000160008154610fec90615007565b918290555060408051606080820183528d825260208083018e815288830151909201518385019081526000868152600f90925284822093518455915160018401559051600290920191909155905163483f31ab60e01b815260048101839052919250907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063483f31ab906024016020604051808303816000875af11580156110a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c69190614fd5565b60208501516040015190915081908082146110fd5760405163cd6f423360e01b815260048101929092526024820152604401610a37565b50506000611112856020015160000151612e74565b5090506000611122826001614f40565b602087015160600151604051633d96c2c960e01b8152600481018790526024810191909152604481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633d96c2c990606401600060405180830381600087803b15801561119f57600080fd5b505af11580156111b3573d6000803e3d6000fd5b50506040518f92508691507fa181a71286cf34ab6e15a04aec6411ea404897f2cdc5e246558a49dc92fd8fe490600090a360125484116114ee576111f684612f5f565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190615020565b6001600160a01b0316306001600160a01b031614905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113149190615020565b6001600160a01b0316306001600160a01b03161490508180156113475750606088015160a001516001600160a01b031615155b8015611357575060008860800151115b156113fb57606088015160a0015160808901516040516348fef59560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926348fef595926113c8926004016001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156113e257600080fd5b505af11580156113f6573d6000803e3d6000fd5b505050505b8080156114185750606088015160a001516001600160a01b031615155b156114b657606088015160a00151604051630f41a04d60e11b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690631e83409a906024016020604051808303816000875af1158015611490573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b49190614fd5565b505b6040516410d211505560da1b9087907fd989775bfca9340a9fcb6a458bef402a5defb0d44211ee8d61a5974e9ad7379b90600090a350505b505050505050505050505050505050565b60085460009082818111156115305760405163e5edf84760e01b815260048101929092526024820152604401610a37565b50506000828152600f6020526040902060020154610ed39061084e90611fba565b600060608060008060006060611565612ff8565b61156d613025565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60095460609060006115a98983614f40565b6000838152600f60205260409020549091508089358082146115e7576040516332a277ed60e01b815260048101929092526024820152604401610a37565b50506000828152600f60209081526040909120549081908b013580821461162a57604051635b41520760e11b815260048101929092526024820152604401610a37565b50506000848152600f602052604090206001015480158061164e575060408b013581145b819060408d01359061167c5760405163beedc8c760e01b815260048101929092526024820152604401610a37565b50506000848152600f60205260409020600101548060608d01358082146116bf5760405163353eb95960e01b815260048101929092526024820152604401610a37565b50505050505060006010602c6116d59190614f40565b6001600160401b038111156116ec576116ec614649565b604051908082528060200260200182016040528015611715578160200160208202803683370190505b5090508860006020020135816000815181106117335761173361503d565b6020908102919091010152611749836001614f40565b60001b8160018151811061175f5761175f61503d565b60209081029190910101528860016020020135816002815181106117855761178561503d565b602090810291909101015261179b826001614f40565b60001b816003815181106117b1576117b161503d565b60209081029190910101528860026020020135816004815181106117d7576117d761503d565b60209081029190910101528860036020020135816005815181106117fd576117fd61503d565b60209081029190910101528860046020020135816006815181106118235761182361503d565b6020026020010181815250508160001b816007815181106118465761184661503d565b602090810291909101015288600560200201358160088151811061186c5761186c61503d565b6020908102919091010152600061188560106002615053565b905060005b818110156118dc578989828181106118a4576118a461503d565b90506020020135838260096118b99190614f40565b815181106118c9576118c961503d565b602090810291909101015260010161188a565b5060006118ea826009614f40565b90506010548382815181106119015761190161503d565b60209081029190910101526011548361191b836001614f40565b8151811061192b5761192b61503d565b602090810291909101015260c08b013583611947836002614f40565b815181106119575761195761503d565b60200260200101818152505060006020898990506119759190614f84565b905060005b60108110801561198957508181105b156119da57602081028a013580866119a18685614f40565b6119ac906003614f40565b815181106119bc576119bc61503d565b602090810291909101015250806119d281615007565b91505061197a565b50929c9b505050505050505050505050565b6060610b6242613052565b6000610ed360038361314d565b611a0c610de1565b611a295760405163850defd360e01b815260040160405180910390fd5b610e9a612e00565b611a39612d57565b611a4281612f5f565b601255565b611a83611a5c36839003830160a0840161506a565b611a6c60808401606085016148ce565b611a7e6107ac36869003860186614dc4565b613159565b6000611a8d611fee565b90506000611a99610b57565b90506000611aa5611e23565b9050612710611aba60a0860160808701614f53565b63ffffffff161115611ad260a0860160808701614f53565b90611af957604051632149689b60e11b815263ffffffff9091166004820152602401610a37565b506001600160a01b0382161580611b1857506001600160a01b03821633145b82339091611b4c5760405163681693c760e11b81526001600160a01b03928316600482015291166024820152604401610a37565b508190508435818114611b7b5760405163f0e0744d60e01b815260048101929092526024820152604401610a37565b5050600d611b8884613234565b10611b9284613234565b600d9091611bbc5760405163e6969f1160e01b815260048101929092526024820152604401610a37565b5050600a5481141580611bd85750600e546001600160a01b0316155b611bf5576040516316562f8560e11b815260040160405180910390fd5b6103e8604085013581811015611c27576040516350b2f93b60e11b815260048101929092526024820152604401610a37565b50600090506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663fc7e286d611c6b60808801606089016148ce565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd39190614fd5565b905060408501358180821115611d0557604051634a3c2c5960e01b815260048101929092526024820152604401610a37565b50849050602086013580821115611d38576040516320a001eb60e01b815260048101929092526024820152604401610a37565b50505050505050565b6060610b626003613241565b6000610ed3611d5b8361324e565b6132ee565b600080611d6b611e23565b600a5490915081141580611d885750600d546001600160a01b0316155b611da5576040516316562f8560e11b815260040160405180910390fd5b919050565b6000610b6242611f59565b6000611de0827f00000000000000000000000000000000000000000000000000000000000000001190565b611e1b57611e16611e11837f000000000000000000000000000000000000000000000000000000000000000061331b565b613327565b610ed3565b600092915050565b6008546009546000919003611e4b5760405163cbaa395160e01b815260040160405180910390fd5b610b62611e5760095490565b6106b5906001614f40565b600080611e6e83611f59565b90506000611e7b84611db5565b600083815260056020526040902060018101549192509015611ef15780546000819003611eae5750600095945050505050565b81600001611ec28585856001015485613334565b81548110611ed257611ed261503d565b6000918252602090912001546001600160a01b03169695505050505050565b611efb6003612da4565b600003611f0d57506000949350505050565b6000611f1884613382565b90506000611f25826133ee565b905080611f358686858551613334565b81518110611f4557611f4561503d565b602002602001015195505050505050919050565b6000611f84827f00000000000000000000000000000000000000000000000000000000000000001190565b611e1b57611e16611fb5837f000000000000000000000000000000000000000000000000000000000000000061331b565b6134d0565b6000610ed37f0000000000000000000000000000000000000000000000000000000000000000611fe9846134e8565b6134f5565b6000610b6242611db5565b6000612003611daa565b60008181526005602052604081206001810154929350919003610b825761202982613382565b600182015561203782613501565b60068190556002820155600181015461204f906133ee565b8051612062918391602090910190614417565b505050565b60095460006120768a83614f40565b905060006120888b8b8b8b8b8b611597565b600754604051633a94343960e21b81529192506001600160a01b03169063ea50d0e4906120bd90889088908690600401615086565b602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe91906150b6565b61211b5760405163a5b2ba1760e01b815260040160405180910390fd5b8160086001018190555060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a99190615020565b6001600160a01b0316306001600160a01b031614905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561221f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122439190615020565b6001600160a01b0316306001600160a01b0316149050600082806122645750815b156125135760005b8e8110156124ad57600085612282836002615053565b61228d906009614f40565b8151811061229d5761229d61503d565b602002602001015160001c90506000808615612382576000886122c1866002615053565b6122cc90600a614f40565b815181106122dc576122dc61503d565b602002602001015160001c90506000811115612380576122fc8184614f40565b6040516348fef59560e01b8152306004820152602481018390529093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348fef59590604401600060405180830381600087803b15801561236757600080fd5b505af115801561237b573d6000803e3d6000fd5b505050505b505b851561241f57604051630f41a04d60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631e83409a906024016020604051808303816000875af11580156123ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124129190614fd5565b61241c9083614f40565b91505b6001600160a01b038316612434575080612449565b61244682600a6001015461271061353d565b90505b600061245582846150d3565b90508015612491576124916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685836135ff565b61249b8287614f40565b9550506001909301925061226c915050565b50801561251357600d546000906001600160a01b0316156124d957600d546001600160a01b03166124db565b335b90506125116001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682846135ff565b505b600a5461252790612523876114ff565b1490565b156125b857600d54600c546040516302c865e360e41b81526001600160a01b03928316600482015260248101919091527f000000000000000000000000000000000000000000000000000000000000000090911690632c865e3090604401600060405180830381600087803b15801561259f57600080fd5b505af11580156125b3573d6000803e3d6000fd5b505050505b60405160c08e01359086907fd989775bfca9340a9fcb6a458bef402a5defb0d44211ee8d61a5974e9ad7379b90600090a35050505050505050505050505050565b60405163e5c5e9a360e01b815260009073__$bd4735397c9654ec5109019d55c6931403$__9063e5c5e9a3906126359086908690600401614fc1565b602060405180830381865af4158015612652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126769190614fd5565b9392505050565b612685612d57565b6001600160a01b0381166126af57604051631e4fbdf760e01b815260006004820152602401610a37565b610bf481612dae565b6000610ed3600383613651565b60095460085460009114806126de575060125460085411155b156126eb57506000919050565b60006126f683611db5565b9050600061270f60086001015460016106b59190614f40565b9050600061271c82613673565b905060006127408461273c61273585611fe96001613673565b600d6134f5565b1190565b905060006127568561273c85611fe96002613673565b80156127635750600a5484145b80156127795750600e546001600160a01b031615155b905081806127845750805b15612796575060009695505050505050565b5060019695505050505050565b60006127ae85611fba565b905060006127bb82611e62565b90506001600160a01b0381166127d257505061296e565b80336001600160a01b03821681146128105760405163681693c760e11b81526001600160a01b03928316600482015291166024820152604401610a37565b505082602001511561282357505061296e565b600061282e83613052565b905060006003825160026128429190615053565b61284c9190614f84565b612857906001614f40565b8751909150819081811015612888576040516359d34be160e11b815260048101929092526024820152604401610a37565b50507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c879052603c812060005b89518110156129385760008a82815181106128d9576128d961503d565b602002602001015190508060000151156128f35750612930565b6129218683815181106129085761290861503d565b602002602001015184836131599092919063ffffffff16565b8361292b81615007565b945050505b6001016128bc565b508282818110156129655760405163bf1ca4cb60e01b815260048101929092526024820152604401610a37565b50505050505050505b50505050565b61297c61447c565b610268828082146129a95760405163f3ccb24760e01b815260048101929092526024820152604401610a37565b50506129b361447c565b60408051808201909152806129cc6020600087896150e6565b6129d591615110565b81526020908101906129eb9060249087896150e6565b6129f49161512e565b60e01c90528152612a096044602485876150e6565b612a1291615110565b602082015152612a266064604485876150e6565b612a2f91615110565b6020808301510152612a456084606485876150e6565b612a4e91615110565b602082015160400152612a6560a4608485876150e6565b612a6e91615110565b6020820151606001526040805180820190915280612a9060c460a487896150e6565b612a9991615110565b8152602001612aac60c860c487896150e6565b612ab59161512e565b60e01c905260408083015191909152805180820190915280612adb60e860c887896150e6565b612ae491615110565b8152602001612af760ec60e887896150e6565b612b009161512e565b60e01c90526040808301516020015191909152805180820190915280612b2b61010c60ec87896150e6565b612b3491615110565b8152602001612b4961011061010c87896150e6565b612b529161512e565b60e01c90526040808301516020908101510191909152805180820190915280612b8161013061011087896150e6565b612b8a91615110565b8152602001612b9f61013461013087896150e6565b612ba89161512e565b60e01c905260408201516020015160600152612bca61015461013485876150e6565b612bd391615110565b606082015152612be961017461015485876150e6565b612bf291615110565b606082015160200152612c0b61019461017485876150e6565b612c1491615110565b606082015160400152612c2d6101b461019485876150e6565b612c3691615110565b6060808301510152612c4e6101d46101b485876150e6565b612c5791615110565b606082015160800152612c706101e86101d485876150e6565b612c7991615164565b60608281015191901c60a090910152612c986102086101e885876150e6565b612ca191615110565b606082015160c00152612cba61022861020885876150e6565b612cc391615110565b606082015160e0015152612cdd61024861022885876150e6565b612ce691615110565b606082015160e0015160200152612d0361026861024885876150e6565b612d0c91615110565b60808201529392505050565b6000612d23846126c5565b612d2f57600854612d33565b6009545b9050612d428785858486613680565b611d388760600151606001518787878661398f565b6002546001600160a01b03163314610e9a5760405163118cdaa760e01b8152336004820152602401610a37565b6000612676836001600160a01b038416613a1f565b610b82600382613b19565b6000610ed3825490565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000600a819055600b819055600c55600d80546001600160a01b0319908116909155600e805490911690556008805460095491829055604080519283526020830182905290917fc78a70f3b27748d5fa327f6a3c1104b9b007d6a80d20c41f7c0dc4543fbdbdcd910160405180910390a150565b600080600060028410612e875783612e8a565b60025b9050600060018180805b8515612f1057858416600003612ebd5760019390931b9282612eb581615007565b935050612e94565b84600003612ec85750815b612ed284876150d3565b600003612edd578291505b612ee784876150d3565b955060019390931b9282612efa81615007565b9350508480612f0890615007565b955050612e94565b84600103612f2657509788975095505050505050565b60006001612f348784614f40565b612f3e91906150d3565b90506000612f4d846001614f40565b919b919a509098505050505050505050565b60095481118015612f7257506008548111155b15610bf45760098190556000612f87826114ff565b9050801580612f975750600a5481115b15610b82576040805160a08101825282815260006020820181905291810182905260608101829052336080909101819052600a92909255600b819055600c55600d80546001600160a01b0319908116909155600e8054909116909117905550565b6060610b627f00000000000000000000000000000000000000000000000000000000000000006000613b2e565b6060610b627f00000000000000000000000000000000000000000000000000000000000000006001613b2e565b6060600061305f83611f59565b60008181526005602052604090206001810154919250901561310257805460008190036130a25760408051600080825260208201909252905b5095945050505050565b8154604080516020808402820181019092528281529184918301828280156130f357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116130d5575b50505050509350505050919050565b61310c6003612da4565b60000361312e5760408051600080825260208201909252905b50949350505050565b600061313983613382565b9050613144816133ee565b95945050505050565b60006126768383613bd9565b8251156131795760405163c7690a3760e01b815260040160405180910390fd5b6020808401516040808601516060808801518351600080825296810180865288905260ff90951693850193909352830152608082015260019060a0016020604051602081039080840390855afa1580156131d7573d6000803e3d6000fd5b505050602060405103519050806001600160a01b0316836001600160a01b0316148382909161322c57604051633672eb9b60e21b81526001600160a01b03928316600482015291166024820152604401610a37565b505050505050565b6000610ed36010836151a4565b6060600061267683613c03565b60007f87ad602ba7da8fbd0870ea16b81fedb3d066c92bd5549f066c4512db6b28fb9d826000015183602001518460400151856060015186608001516040516020016132d1969594939291909586526020860194909452604085019290925260608401526001600160a01b0316608083015263ffffffff1660a082015260c00190565b604051602081830303815290604052805190602001209050919050565b6000610ed36132fb613c5e565b8360405161190160f01b8152600281019290925260228201526042902090565b600061267682846150d3565b6000610ed3601883614f84565b60408051602081018690529081018490526060810183905260009082906080016040516020818303038152906040528051906020012060001c61337791906151a4565b90505b949350505050565b6000816000036133955750600019919050565b60008281526005602052604090206001015480156133b35792915050565b600560006133c285600161331b565b8152602001908152602001600020600201549050806000146133e45792915050565b5050600654919050565b606060006133fc6003612da4565b90508060000361341c575050604080516000815260208101909152919050565b6030811161342e576126766003613241565b600061343c60308386613d89565b604080516030808252610620820190925291925060009190602082016106008036833701905050905060005b60308110156131255761349e8382815181106134865761348661503d565b6020026020010151600361314d90919063ffffffff16565b8282815181106134b0576134b061503d565b6001600160a01b0390921660209283029190910190910152600101613468565b60006134de60186010615053565b610ed39083614f84565b6000610ed3601883615053565b60006126768284614f40565b6000814460405160200161351f929190918252602082015260400190565b60408051601f19818403018152919052805160209091012092915050565b60008080600019858709858702925082811083820303915050806000036135775783828161356d5761356d614f6e565b0492505050612676565b8084116135975760405163227bc15360e01b815260040160405180910390fd5b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612062908490613e12565b6001600160a01b03811660009081526001830160205260408120541515612676565b6000610ed3601083615053565b60608501515146908181146136b157604051631bdade0960e11b815260048101929092526024820152604401610a37565b50506060850151602001517f000000000000000000000000000000000000000000000000000000000000000090808214613707576040516327bcc1e560e21b815260048101929092526024820152604401610a37565b506137159050826001614f40565b6060860151604001511461372a836001614f40565b866060015160400151909161375b5760405163e5edf84760e01b815260048101929092526024820152604401610a37565b50506000828152600f6020526040902054855151819080821461379a57604051635b41520760e11b815260048101929092526024820152604401610a37565b505060608681015101516000848152600f602052604090206002015480828082106137e15760405163083510bd60e41b815260048101929092526024820152604401610a37565b505060006137ee83611fba565b9050613801896060015160800151821490565b60608a015160800151829161383257604051633132e89560e01b815260048101929092526024820152604401610a37565b5088905081808210156138615760405163089f306960e41b815260048101929092526024820152604401610a37565b5050845180613877575086896020015160200151145b896020015160200151906138a15760405163414906c360e01b8152600401610a3791815260200190565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613900573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139249190615020565b6001600160a01b0316306001600160a01b031614610e7d57606089015160e00151511561396457604051636ce3afa960e11b815260040160405180910390fd5b606089015160e001516020015115610e7d57604051631f9ca2af60e21b815260040160405180910390fd5b600061399a83611db5565b905080868082146139c7576040516309ba91ff60e01b815260048101929092526024820152604401610a37565b505060006139d761084e88611fba565b905060006139e485611f59565b90508082808214613a1157604051631e36b2f360e11b815260048101929092526024820152604401610a37565b5050610b26888888876127a3565b60008181526001830160205260408120548015613b08576000613a436001836150d3565b8554909150600090613a57906001906150d3565b9050818114613abc576000866000018281548110613a7757613a7761503d565b9060005260206000200154905080876000018481548110613a9a57613a9a61503d565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613acd57613acd6151b8565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610ed3565b6000915050610ed3565b5092915050565b6000612676836001600160a01b038416613e75565b606060ff8314613b4857613b4183613ec4565b9050610ed3565b818054613b54906151ce565b80601f0160208091040260200160405190810160405280929190818152602001828054613b80906151ce565b8015613bcd5780601f10613ba257610100808354040283529160200191613bcd565b820191906000526020600020905b815481529060010190602001808311613bb057829003601f168201915b50505050509050610ed3565b6000826000018281548110613bf057613bf061503d565b9060005260206000200154905092915050565b606081600001805480602002602001604051908101604052809291908181526020018280548015610e4c57602002820191906000526020600020905b815481526020019060010190808311613c3f5750505050509050919050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613cb757507f000000000000000000000000000000000000000000000000000000000000000046145b15613ce157507f000000000000000000000000000000000000000000000000000000000000000090565b610b62604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60606000846001600160401b03811115613da557613da5614649565b604051908082528060200260200182016040528015613dce578160200160208202803683370190505b50905060005b85811015613125576000613de9828787613f03565b905080838381518110613dfe57613dfe61503d565b602090810291909101015250600101613dd4565b6000613e276001600160a01b03841683613f8e565b90508051600014158015613e4c575080806020019051810190613e4a91906150b6565b155b1561206257604051635274afe760e01b81526001600160a01b0384166004820152602401610a37565b6000818152600183016020526040812054613ebc57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610ed3565b506000610ed3565b60606000613ed183613f9f565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60008383808210613f305760405163a12fc55960e01b815260048101929092526024820152604401610a37565b50506000613f3d84613fc7565b905084815b8015613098576000613f5f86613f596001856150d3565b89614191565b9050613f78868285613f726001876150d3565b8b6141e0565b9250508080613f8690615202565b915050613f42565b6060612676838360006142f0614309565b600060ff8216601f811115610ed357604051632cd44ac360e21b815260040160405180910390fd5b604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b7e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff600160801b68010000000000000000640100000000620100006010600460026000198c0190810417908104179081041788810417908104179081041790810417908104176001010281900460ff0390910151600092600160ff1b85110291900401610ed3906004615053565b60008184846040516020016141bd92919091825260f81b6001600160f81b031916602082015260210190565b6040516020818303038152906040528051906020012060001c61337a91906151a4565b60008082856141ef8289614f40565b6141f991906150d3565b61420391906151a4565b905060008186116142145781614216565b855b90506000888661422861010085614f84565b6040516020016142659392919092835260f89190911b6001600160f81b031916602083015260e01b6001600160e01b031916602182015260250190565b60405160208183030381529060405280519060200120905060008160086101008561429091906151a4565b61429a9190614f84565b602081106142aa576142aa61503d565b1a9050600060026142bc6008866151a4565b8360ff16901c6142cc9190615219565b90508060ff166001146142df57886142e1565b845b9b9a5050505050505050505050565b604051630a12f52160e11b815260040160405180910390fd5b60608247101561432e5760405163cd78605960e01b8152306004820152602401610a37565b600080866001600160a01b0316858760405161434a919061523b565b60006040518083038185875af1925050503d8060008114614387576040519150601f19603f3d011682016040523d82523d6000602084013e61438c565b606091505b509150915061439d878383876143a8565b979650505050505050565b606083156143f65782516000036143ef57846001600160a01b03163b6000036143ef57604051639996b31560e01b81526001600160a01b0386166004820152602401610a37565b508161337a565b61337a838381511561440b5781518083602001fd5b6142f08163ffffffff16565b82805482825590600052602060002090810192821561446c579160200282015b8281111561446c57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614437565b506144789291506144e2565b5090565b6040805160e081018252600060a0820181815260c083018290528252825160808101845281815260208082018390528185018390526060820192909252908201529081016144c86144f7565b81526020016144d5614580565b8152602001600081525090565b5b8082111561447857600081556001016144e3565b60408051608081018252600091810182815260608201929092529081526020810161457b6040805160c08101825260006080820181815260a083018290528252825180840184528181526020808201839052808401919091528351808501855282815280820183905283850152835180850190945281845283015290606082015290565b905290565b604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000801916815260200161457b604051806040016040528060008152602001600081525090565b600080604083850312156145f957600080fd5b50508035926020909101359150565b60008083601f84011261461a57600080fd5b5081356001600160401b0381111561463157600080fd5b602083019150836020828501011115610b0357600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561468157614681614649565b60405290565b604051601f8201601f191681016001600160401b03811182821017156146af576146af614649565b604052919050565b60006001600160401b038211156146d0576146d0614649565b5060051b60200190565b8015158114610bf457600080fd5b6000608082840312156146fa57600080fd5b604051608081016001600160401b038111828210171561471c5761471c614649565b604052905080823561472d816146da565b8152602083013560ff8116811461474357600080fd5b602082015260408381013590820152606092830135920191909152919050565b600082601f83011261477457600080fd5b8135614787614782826146b7565b614687565b8082825260208201915060208360071b8601019250858311156147a957600080fd5b602085015b83811015613098576147c087826146e8565b83526020909201916080016147ae565b600080600080600080600087890360e08112156147ec57600080fd5b88356001600160401b0381111561480257600080fd5b61480e8b828c01614608565b90995097505060208901356001600160401b0381111561482d57600080fd5b6148398b828c01614763565b965050604089810135955060608a0135945060808a01359350609f198201121561486257600080fd5b5061486b61465f565b60a0890135614879816146da565b815260c0890135614889816146da565b806020830152508091505092959891949750929550565b6000602082840312156148b257600080fd5b5035919050565b6001600160a01b0381168114610bf457600080fd5b6000602082840312156148e057600080fd5b8135612676816148b9565b600061012082840312156148fe57600080fd5b50919050565b6000610120828403121561491757600080fd5b61267683836148eb565b602080825282518282018190526000918401906040840190835b818110156149625783516001600160a01b031683526020938401939092019160010161493b565b509095945050505050565b600082601f83011261497e57600080fd5b813561498c614782826146b7565b8082825260208201915060208360051b8601019250858311156149ae57600080fd5b602085015b838110156130985780358352602092830192016149b3565b60008060008060008060008060006101e08a8c0312156149ea57600080fd5b89356001600160401b03811115614a0057600080fd5b614a0c8c828d01614608565b909a5098505060208a0135965060408a0135955060608a01356001600160401b03811115614a3957600080fd5b614a458c828d0161496d565b95505060808a01356001600160401b03811115614a6157600080fd5b614a6d8c828d01614763565b94505060a08a01356001600160401b03811115614a8957600080fd5b614a958c828d01614608565b9094509250614aa990508b60c08c016148eb565b90509295985092959850929598565b60008060008060008060008060c0898b031215614ad457600080fd5b88356001600160401b03811115614aea57600080fd5b614af68b828c01614608565b909950975050602089013595506040890135945060608901356001600160401b03811115614b2357600080fd5b614b2f8b828c0161496d565b94505060808901356001600160401b03811115614b4b57600080fd5b614b578b828c01614763565b93505060a08901356001600160401b03811115614b7357600080fd5b614b7f8b828c01614608565b999c989b5096995094979396929594505050565b60005b83811015614bae578181015183820152602001614b96565b50506000910152565b60008151808452614bcf816020860160208601614b93565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e060208201526000614c0260e0830189614bb7565b8281036040840152614c148189614bb7565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015614c6a578351835260209384019390920191600101614c4c565b50909b9a5050505050505050505050565b8060e08101831015610ed357600080fd5b60008083601f840112614c9e57600080fd5b5081356001600160401b03811115614cb557600080fd5b6020830191508360208260051b8501011115610b0357600080fd5b6000806000806000806101408789031215614cea57600080fd5b86359550614cfb8860208901614c7b565b94506101008701356001600160401b03811115614d1757600080fd5b614d2389828a01614c8c565b9095509350506101208701356001600160401b03811115614d4357600080fd5b614d4f89828a01614608565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b82811015614d93578151865260209586019590910190600101614d75565b5093949350505050565b6020815260006126766020830184614d61565b803563ffffffff81168114611da557600080fd5b600060a0828403128015614dd757600080fd5b5060405160009060a081016001600160401b0381118282101715614dfd57614dfd614649565b60409081528435825260208086013590830152848101359082015260608401359150614e28826148b9565b816060820152614e3a60808501614db0565b6080820152949350505050565b600080600080600080600080610160898b031215614e6457600080fd5b88359750614e758a60208b01614c7b565b96506101008901356001600160401b03811115614e9157600080fd5b614e9d8b828c01614c8c565b9097509550506101208901356001600160401b03811115614ebd57600080fd5b614ec98b828c01614608565b9095509350506101408901356001600160401b03811115614b7357600080fd5b60008060208385031215614efc57600080fd5b82356001600160401b03811115614f1257600080fd5b614f1e85828601614608565b90969095509350505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ed357610ed3614f2a565b600060208284031215614f6557600080fd5b61267682614db0565b634e487b7160e01b600052601260045260246000fd5b600082614f9357614f93614f6e565b500490565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600061337a602083018486614f98565b600060208284031215614fe757600080fd5b5051919050565b82815260406020820152600061337a6040830184614d61565b60006001820161501957615019614f2a565b5060010190565b60006020828403121561503257600080fd5b8151612676816148b9565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610ed357610ed3614f2a565b60006080828403121561507c57600080fd5b61267683836146e8565b60408152600061509a604083018587614f98565b82810360208401526150ac8185614d61565b9695505050505050565b6000602082840312156150c857600080fd5b8151612676816146da565b81810381811115610ed357610ed3614f2a565b600080858511156150f657600080fd5b8386111561510357600080fd5b5050820193919092039150565b80356020831015610ed357600019602084900360031b1b1692915050565b80356001600160e01b03198116906004841015613b12576001600160e01b031960049490940360031b84901b1690921692915050565b80356bffffffffffffffffffffffff198116906014841015613b12576bffffffffffffffffffffffff1960149490940360031b84901b1690921692915050565b6000826151b3576151b3614f6e565b500690565b634e487b7160e01b600052603160045260246000fd5b600181811c908216806151e257607f821691505b6020821081036148fe57634e487b7160e01b600052602260045260246000fd5b60008161521157615211614f2a565b506000190190565b600060ff83168061522c5761522c614f6e565b8060ff84160691505092915050565b6000825161524d818460208701614b93565b919091019291505056fea264697066735822122065d5cca405f99e1b6ad219d566dc42d80647cc50bb5dacf32b3e21e7ed21aed164736f6c634300081b00336080604052348015600f57600080fd5b506101658061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ea50d0e414610030575b600080fd5b61004861003e36600461005c565b6001949350505050565b604051901515815260200160405180910390f35b6000806000806040858703121561007257600080fd5b843567ffffffffffffffff81111561008957600080fd5b8501601f8101871361009a57600080fd5b803567ffffffffffffffff8111156100b157600080fd5b8760208284010111156100c357600080fd5b60209182019550935085013567ffffffffffffffff8111156100e457600080fd5b8501601f810187136100f557600080fd5b803567ffffffffffffffff81111561010c57600080fd5b8760208260051b840101111561012157600080fd5b94979396506020019450505056fea2646970667358221220ea9fc3328136901197571c3a08f641749230284f833000ad4e7d855e8a76c04f64736f6c634300081b003360c060405234801561001057600080fd5b50604051610b1c380380610b1c83398101604081905261002f9161005e565b6001600160a01b039081166080521660a052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a051610a436100d9600039600081816101b2015281816104380152610627015260008181610145015281816102ab01526103770152610a436000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80639611c5c2116100715780639611c5c214610140578063b6b55f251461017f578063c60d588d14610192578063f8fd9795146101a5578063fc0c546a146101ad578063fc7e286d146101d457600080fd5b806308b4af71146100ae5780630d5e5fff146100d45780631c87b6ac146100dc5780632c865e30146100f157806352df49ec14610104575b600080fd5b6100c16100bc3660046108df565b6101f4565b6040519081526020015b60405180910390f35b6100c1610286565b6100ef6100ea36600461090b565b6102a0565b005b6100ef6100ff36600461090b565b61036c565b61012b610112366004610935565b6001602081905260009182526040909120805491015482565b604080519283526020830191909152016100cb565b6101677f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100cb565b6100ef61018d366004610950565b61042b565b6100ef6101a0366004610950565b6104bd565b6100ef610586565b6101677f000000000000000000000000000000000000000000000000000000000000000081565b6100c16101e2366004610935565b60006020819052908152604090205481565b6000610220836102066010600c61097f565b61021190600361097f565b61021b9042610996565b111590565b1561022d57506000610280565b6001600160a01b0382166000908152602081815260408083205460019283905292200154841061027d576001600160a01b03831660009081526001602052604090205461027a90826109a9565b90505b90505b92915050565b6102926010600c61097f565b61029d90600361097f565b81565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681146102fb57604051632ac332c160e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b506001600160a01b038216600090815260208190526040812080548392906103249084906109a9565b90915550506040518181526001600160a01b038316907f8c2455f4b82f1285751e0f21f0cda7612aa81cf700ab606c3e2250253ff1e400906020015b60405180910390a25050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681146103c257604051632ac332c160e01b81526001600160a01b0390911660048201526024016102f2565b506001600160a01b038216600090815260208190526040812080548392906103eb908490610996565b90915550506040518181526001600160a01b038316907f6567969aa8387adeedb0b23fd1b47a09157bfb8fdb2a11e8b1c03b8b0e78b48f90602001610360565b6104606001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084610683565b336000908152602081905260408120805483929061047f908490610996565b909155505060405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906020015b60405180910390a250565b3360009081526020819052604090205481808210156104f8576040516309b8b78960e01b8152600481019290925260248201526044016102f2565b505060405180604001604052808281526020016010600c610519919061097f565b61052490600361097f565b61052e9042610996565b9052336000818152600160208181526040928390208551815594015193018390555190917f9d22371eec6fd87e081855b42b28f152e79799fa5a89bf4e30f8acf26d29ed95916104b291858252602082015260400190565b33600090815260016020818152604092839020835180850190945280548452909101549082018190524290808210156105db5760405163b32ab8a760e01b8152600481019290925260248201526044016102f2565b50503360009081526001602081815260408084208481559092018390558351908390529082208054919290916106129084906109a9565b9091555050805161064f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169033906106f0565b805160405190815233907fa5b1c510c6d1fc318ad8a59c08331317c170ad7f42e0bff2ece9b32d0feb6859906020016104b2565b6040516001600160a01b0384811660248301528381166044830152606482018390526106ea9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610726565b50505050565b6040516001600160a01b0383811660248301526044820183905261072191859182169063a9059cbb906064016106b8565b505050565b600061073b6001600160a01b03841683610789565b9050805160001415801561076057508080602001905181019061075e91906109bc565b155b1561072157604051635274afe760e01b81526001600160a01b03841660048201526024016102f2565b606061027d8383600061079a6107b3565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156107d85760405163cd78605960e01b81523060048201526024016102f2565b600080866001600160a01b031685876040516107f491906109de565b60006040518083038185875af1925050503d8060008114610831576040519150601f19603f3d011682016040523d82523d6000602084013e610836565b606091505b509150915061084787838387610854565b925050505b949350505050565b606083156108a257825160000361089b57846001600160a01b03163b60000361089b57604051639996b31560e01b81526001600160a01b03861660048201526024016102f2565b508161084c565b61084c83838151156108b75781518083602001fd5b61079a8163ffffffff16565b80356001600160a01b03811681146108da57600080fd5b919050565b600080604083850312156108f257600080fd5b82359150610902602084016108c3565b90509250929050565b6000806040838503121561091e57600080fd5b610927836108c3565b946020939093013593505050565b60006020828403121561094757600080fd5b61027d826108c3565b60006020828403121561096257600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761028057610280610969565b8082018082111561028057610280610969565b8181038181111561028057610280610969565b6000602082840312156109ce57600080fd5b8151801515811461027d57600080fd5b6000825160005b818110156109ff57602081860181015185830152016109e5565b50600092019182525091905056fea26469706673582212200bde24fc4f6089649d03631dae51909441658bfe27f4146a642b6b8be5b51ee664736f6c634300081b003361010060405261001060018061038f565b600055600060035534801561002457600080fd5b50604051610fcc380380610fcc833981016040819052610043916103a2565b6001600160a01b03821660805260a08190526100608160026104c3565b60c05261006e60018261009d565b60a05160c0516000805481526002602052604090206100929290916001919061014d565b60e0525061059d9050565b60008080526020839052604081205560015b818111610148576101278360006100c76001856104d6565b8152602001908152602001600020548460000160006001856100e991906104d6565b815260200190815260200160002054604051602001610112929190918252602082015260400190565b60408051601f198184030181529190526102af565b60008281526020859052604090205580610140816104e9565b9150506100af565b505050565b835460009080820361016f5750506000828152602084905260409020546102a7565b82810361018e57505060008281526001850160205260409020546102a7565b600061019b6001836104d6565b905060006101a88261034d565b600081815260018a01602052604090205490915082821c825b8881101561029e57600180831614801561026257600082815260018d01602052604090205484900361022e5760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640160405180910390fd5b600082815260018d0160209081526040918290205482519182015290810185905261025b90606001610112565b9350610291565b600082815260208c815260409182902054915161028e9261011292889201918252602082015260400190565b93505b50600191821c91016101c1565b50909450505050505b949350505050565b604080516001808252818301909252600091602082018180368337019050506002836040516102de9190610532565b602060405180830381855afa1580156102fb573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061031e919061053e565b60405160200161032f929190610557565b60405160208183030381529060405261034790610576565b92915050565b600080825b806001166001036103725781610367816104e9565b92505060011c610352565b5092915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561034757610347610379565b600080604083850312156103b557600080fd5b82516001600160a01b03811681146103cc57600080fd5b6020939093015192949293505050565b6001815b6001841115610417578085048111156103fb576103fb610379565b600184161561040957908102905b60019390931c9280026103e0565b935093915050565b60008261042e57506001610347565b8161043b57506000610347565b8160018114610451576002811461045b57610477565b6001915050610347565b60ff84111561046c5761046c610379565b50506001821b610347565b5060208310610133831016604e8410600b841016171561049a575081810a610347565b6104a760001984846103dc565b80600019048211156104bb576104bb610379565b029392505050565b60006104cf838361041f565b9392505050565b8181038181111561034757610347610379565b6000600182016104fb576104fb610379565b5060010190565b6000815160005b818110156105235760208185018101518683015201610509565b50600093019283525090919050565b60006104cf8284610502565b60006020828403121561055057600080fd5b5051919050565b60006105638285610502565b60ff199390931683525050601f01919050565b80516020808301519190811015610597576000198160200360031b1b821691505b50919050565b60805160a05160c05160e0516109d46105f860003960006103d7015260008181610231015281816102c70152818161043601526104c501526000818161041501526104a401526000818160f2015261037501526109d46000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637a5080221161005b5780637a508022146100c457806387351813146100e45780639611c5c2146100ed5780639b24b3b01461012c57600080fd5b8063086dc8d4146100825780631f6d510b1461009e578063483f31ab146100b1575b600080fd5b61008b60035481565b6040519081526020015b60405180910390f35b61008b6100ac3660046107f9565b61013f565b61008b6100bf366004610877565b610368565b61008b6100d2366004610877565b60026020526000908152604090205481565b61008b60005481565b6101147f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61013a366004610877565b61048e565b82516000907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000811115610191576040516353bb503760e11b815260040161018891815260200190565b60405180910390fd5b50827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008111156101d7576040516311d1480560e21b815260040161018891815260200190565b50817f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000081111561021d57604051633b379f8b60e21b815260040161018891815260200190565b5060008054815260026020526040902080547f00000000000000000000000000000000000000000000000000000000000000000361027e57600160008082825461026791906108a6565b909155505060008054815260026020526040902090505b6040805160c08101825233608082019081524660a08301528152602081018790529081018590526060810184905260006102b7826104e9565b905060006102c58483610552565b7f000000000000000000000000000000000000000000000000000000000000000060016000546102f591906108b9565b6102ff91906108cc565b61030991906108a6565b60038054919250600061031b836108e3565b9190505550816000547f1f0faf82fa8c7b10dd392417c6976d0ed764deb80fb07211d5928c2944ddb80d8360405161035591815260200190565b60405180910390a3509695505050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103b35760405163e5336a6b60e01b815260040160405180910390fd5b60005482106103d55760405163c490199960e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000600183111561045d57600083815260026020526040902061045a9060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006105d7565b90505b60005461046b8460016108a6565b0361048857600160008082825461048291906108a6565b90915550505b92915050565b60008181526002602052604081206104889060017f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006105d7565b8051602080830151604080850151606080870151835187516001600160a01b03168188015296860151938701939093528351908601529190920151608084015260a083015260c08201526000906104889060e0015b604051602081830303815290604052610735565b815460009081610561826107cd565b90508360005b828110156105a65760008181526001880160209081526040918290205482519182015290810183905261059c9060600161053e565b9150600101610567565b506000828152600187016020526040812082905586549087906105c8836108e3565b90915550929695505050505050565b83546000908082036105f957505060008281526020849052604090205461072d565b828103610618575050600082815260018501602052604090205461072d565b60006106256001836108b9565b90506000610632826107cd565b600081815260018a01602052604090205490915082821c825b888110156107245760018083161480156106e857600082815260018d0160205260409020548490036106b45760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b6044820152606401610188565b600082815260018d016020908152604091829020548251918201529081018590526106e19060600161053e565b9350610717565b600082815260208c81526040918290205491516107149261053e92889201918252602082015260400190565b93505b50600191821c910161064b565b50909450505050505b949350505050565b60408051600180825281830190925260009160208201818036833701905050600283604051610764919061092c565b602060405180830381855afa158015610781573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906107a4919061093f565b6040516020016107b5929190610958565b60405160208183030381529060405261048890610977565b600080825b806001166001036107f257816107e7816108e3565b92505060011c6107d2565b5092915050565b6000806000838503608081121561080f57600080fd5b604081121561081d57600080fd5b506040516040810181811067ffffffffffffffff8211171561084f57634e487b7160e01b600052604160045260246000fd5b6040908152853582526020808701359083015290969085013595506060909401359392505050565b60006020828403121561088957600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561048857610488610890565b8181038181111561048857610488610890565b808202811582820484141761048857610488610890565b6000600182016108f5576108f5610890565b5060010190565b6000815160005b8181101561091d5760208185018101518683015201610903565b50600093019283525090919050565b600061093882846108fc565b9392505050565b60006020828403121561095157600080fd5b5051919050565b600061096482856108fc565b60ff199390931683525050601f01919050565b80516020808301519190811015610998576000198160200360031b1b821691505b5091905056fea2646970667358221220be411dd92fa65dde475da8476027a69ba894851fa6a9a8f53643a74d7b3c0b2764736f6c634300081b003360a060405234801561001057600080fd5b50604051610aac380380610aac83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610a0d61009f6000396000818160f601528181610135015281816101ee015261029e0152610a0d6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632249f6531461005c5780633d96c2c9146100895780637fb349671461009e57806384f15db2146100b15780639611c5c2146100f1575b600080fd5b61006f61006a3660046106e4565b610130565b604080519283526020830191909152015b60405180910390f35b61009c6100973660046106fd565b6101e3565b005b61009c6100ac366004610729565b61029c565b6100e16100bf3660046107cb565b6000918252602082815260408084209284526002909201905290205460ff1690565b6040519015158152602001610080565b6101187f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610080565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b591906107ed565b8311156101c757506000928392509050565b5050600090815260208190526040902080546001909101549091565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461022c5760405163164a486160e11b815260040160405180910390fd5b8161024a576040516339e16d6560e11b815260040160405180910390fd5b600083815260208181526040918290208481556001018390559051828152839185917fd3fab397eb3e47fb43090430543ca9623e09aeddf27bfde1bf7bdca871ee9ebc910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031e91906107ed565b841115849061034c57604051630e194a6d60e01b815260040161034391815260200190565b60405180910390fd5b5061035d6060860160408701610822565b6001600160a01b031633146103786060870160408801610822565b3390916103ab576040516357aad58160e01b81526001600160a01b03928316600482015291166024820152604401610343565b5050466060860135146103d1576040516315dfb1f160e21b815260040160405180910390fd5b60008481526020819052604090208054858161040357604051635228479160e11b815260040161034391815260200190565b5060008581526002830160205260409020548690869060ff161561044357604051633f5c70b560e21b815260048101929092526024820152604401610343565b5050600182015480848082111561047657604051631206f36760e21b815260048101929092526024820152604401610343565b506000905061049261048d368b90038b018b6108ac565b610507565b90506104a18686838a8761056a565b600087815260028501602052604090819020805460ff1916600117905551819084908a907f34bc3301c4660a5642d2246e175e7fea498c94258d39dcaa555a52464dbb083d906104f4908c815260200190565b60405180910390a4505050505050505050565b80516020808301516040808501518151855181860152948401519185019190915281516001600160a01b03166060850152910151608083015260a08201526000906105649060c0015b60405160208183030381529060405261064c565b92915050565b828260005b8681101561060457600180831614806105be576105b9848a8a858181106105985761059861093f565b90506020020135604051602001610550929190918252602082015260400190565b6105f5565b6105f58989848181106105d3576105d361093f565b9050602002013585604051602001610550929190918252602082015260400190565b935050600191821c910161056f565b508282868682841461063f57604051635f216bf160e01b81526004810194909452602484019290925260448301526064820152608401610343565b5050505050505050505050565b6040805160018082528183019092526000916020820181803683370190505060028360405161067b9190610985565b602060405180830381855afa158015610698573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906106bb91906107ed565b6040516020016106cc929190610991565b604051602081830303815290604052610564906109b0565b6000602082840312156106f657600080fd5b5035919050565b60008060006060848603121561071257600080fd5b505081359360208301359350604090920135919050565b600080600080600085870361010081121561074357600080fd5b60a081121561075157600080fd5b5085945060a0850135935060c0850135925060e085013567ffffffffffffffff81111561077d57600080fd5b8601601f8101881361078e57600080fd5b803567ffffffffffffffff8111156107a557600080fd5b8860208260051b84010111156107ba57600080fd5b959894975092955050506020019190565b600080604083850312156107de57600080fd5b50508035926020909101359150565b6000602082840312156107ff57600080fd5b5051919050565b80356001600160a01b038116811461081d57600080fd5b919050565b60006020828403121561083457600080fd5b61083d82610806565b9392505050565b6040516060810167ffffffffffffffff8111828210171561087557634e487b7160e01b600052604160045260246000fd5b60405290565b6040805190810167ffffffffffffffff8111828210171561087557634e487b7160e01b600052604160045260246000fd5b600081830360a0811280156108c057600080fd5b5060006108cb610844565b60408312156108d8578182fd5b6108e061087b565b853581526020808701359082015281526040603f1984011215610901578182fd5b61090961087b565b925061091760408601610806565b8352606085013560208085019190915281019290925250608090920135604083015250919050565b634e487b7160e01b600052603260045260246000fd5b6000815160005b81811015610976576020818501810151868301520161095c565b50600093019283525090919050565b600061083d8284610955565b600061099d8285610955565b60ff199390931683525050601f01919050565b805160208083015191908110156109d1576000198160200360031b1b821691505b5091905056fea2646970667358221220c5f5d4fd658bf6dbbb86cf2c36932d4554ffbe16ff409ea125e58217639ac4a164736f6c634300081b0033";
|
|
4
|
+
export const RollupBytecode = "0x61030060405234801561001157600080fd5b5060405161918738038061918783398101604081905261003091610e88565b828160000151826020015183604001518282856040518060400160405280600c81526020016b0417a74656320526f6c6c75760a41b815250604051806040016040528060018152602001603160f81b81525061009660008361043960201b90919060201c565b610120526100a5816001610439565b61014052815160208084019190912060e052815190820120610100524660a05261013260e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526101448161046c565b5050426101c0525061016092909252610180526101a0525060405161016890610d1a565b604051809103906000f080158015610184573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b039283161790558781166102a08190529087166102c052604080516362eb326360e11b8152905163c5d664c6916004808201926020929091908290030181865afa1580156101ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102109190610fa3565b6001600160a01b03166102e0819052815160208301516040513092919061023690610d27565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103906000f080158015610275573d6000803e3d6000fd5b506001600160a01b031661026052604051309060049061029490610d34565b6001600160a01b0390921682526020820152604001604051809103906000f0801580156102c5573d6000803e3d6000fd5b506001600160a01b03166102205260405130906102e190610d41565b6001600160a01b039091168152602001604051809103906000f08015801561030d573d6000803e3d6000fd5b506001600160a01b0316610240526010859055601184905560016102805243610200526060808201516101e0526040805191820181527f2a05cb8aeefe9b9797f90650eae072f5ab7437807e62f9724ce1900467779860825260006020838101828152928401828152828052600f90915292517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3755590517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3765590517ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec377555b82518110156104245761041c83828151811061040957610409610fc0565b60200260200101516104be60201b60201c565b6001016103eb565b5061042d6104cd565b50505050505050611258565b60006020835110156104555761044e8361053b565b9050610466565b81610460848261105e565b5060ff90505b92915050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6104c9600382610582565b5050565b60006104d761059e565b600081815260056020526040812060018101549293509190036104c9576104fd826105ae565b600182015561050b8261061a565b60068190556002820155600181015461052390610656565b8051610536918391602090910190610d4e565b505050565b600080829050601f8151111561056f578260405163305a27a960e01b8152600401610566919061111c565b60405180910390fd5b805161057a8261116a565b179392505050565b6000610597836001600160a01b03841661076f565b9392505050565b60006105a9426107be565b905090565b6000816000036105c15750600019919050565b60008281526005602052604090206001015480156105df5792915050565b600560006105ee8560016107f2565b8152602001908152602001600020600201549050806000146106105792915050565b5050600654919050565b60008144604051602001610638929190918252602082015260400190565b60408051601f19818403018152919052805160209091012092915050565b6060600061066460036107fe565b905080600003610684575050604080516000815260208101909152919050565b6101a0518111610698576105976003610808565b60006106ae6101a051838661081560201b60201c565b905060006101a0516001600160401b038111156106cd576106cd610de0565b6040519080825280602002602001820160405280156106f6578160200160208202803683370190505b50905060005b6101a0518110156107665761073483828151811061071c5761071c610fc0565b6020026020010151600361089e60201b90919060201c565b82828151811061074657610746610fc0565b6001600160a01b03909216602092830291909101909101526001016106fc565b50949350505050565b60008181526001830160205260408120546107b657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610466565b506000610466565b60006107cc826101c0511190565b6107ea576107e56107e0836101c0516107f2565b6108aa565b610466565b600092915050565b600061059782846111a4565b6000610466825490565b60606000610597836108c8565b60606000846001600160401b0381111561083157610831610de0565b60405190808252806020026020018201604052801561085a578160200160208202803683370190505b50905060005b85811015610766576000610875828787610924565b90508083838151811061088a5761088a610fc0565b602090810291909101015250600101610860565b600061059783836109ba565b600061016051610180516108be91906111b7565b61046690836111e4565b60608160000180548060200260200160405190810160405280929190818152602001828054801561091857602002820191906000526020600020905b815481526020019060010190808311610904575b50505050509050919050565b600083838082106109515760405163a12fc55960e01b815260048101929092526024820152604401610566565b506000905061095f846109e4565b905084815b80156109b05760006109818661097b6001856111a4565b89610bb3565b905061099a8682856109946001876111a4565b8b610c0a565b92505080806109a8906111f8565b915050610964565b5095945050505050565b60008260000182815481106109d1576109d1610fc0565b9060005260206000200154905092915050565b6000610ba882604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b6001600160801b68010000000000000000640100000000620100006010600460026000198c019081041790810417908104178881041790810417908104179081041790810417017e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff0281900460ff039091015104600160ff1b909211020190565b6104669060046111b7565b6000818484604051602001610bdf92919091825260f81b6001600160f81b031916602082015260210190565b6040516020818303038152906040528051906020012060001c610c02919061120f565b949350505050565b6000808285610c198289611223565b610c2391906111a4565b610c2d919061120f565b90506000818611610c3e5781610c40565b855b905060008886610c52610100856111e4565b604051602001610c8f9392919092835260f89190911b6001600160f81b031916602083015260e01b6001600160e01b031916602182015260250190565b604051602081830303815290604052805190602001209050600081600861010085610cba919061120f565b610cc491906111e4565b60208110610cd457610cd4610fc0565b1a905060006002610ce660088661120f565b8360ff16901c610cf69190611236565b90508060ff16600114610d095788610d0b565b845b9b9a5050505050505050505050565b6101848061699083390190565b610bb780616b1483390190565b611010806176cb83390190565b610aac806186db83390190565b828054828255906000526020600020908101928215610da3579160200282015b82811115610da357825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610d6e565b50610daf929150610db3565b5090565b5b80821115610daf5760008155600101610db4565b6001600160a01b0381168114610ddd57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610e1e57610e1e610de0565b604052919050565b600060808284031215610e3857600080fd5b604051608081016001600160401b0381118282101715610e5a57610e5a610de0565b6040908152835182526020808501519083015283810151908201526060928301519281019290925250919050565b6000806000806000806000610140888a031215610ea457600080fd5b8751610eaf81610dc8565b6020890151909750610ec081610dc8565b604089015160608a015160808b01519298509096509450610ee081610dc8565b60a08901519093506001600160401b03811115610efc57600080fd5b8801601f81018a13610f0d57600080fd5b80516001600160401b03811115610f2657610f26610de0565b8060051b610f3660208201610df6565b9182526020818401810192908101908d841115610f5257600080fd5b6020850194505b83851015610f805784519250610f6e83610dc8565b82825260209485019490910190610f59565b8096505050505050610f958960c08a01610e26565b905092959891949750929550565b600060208284031215610fb557600080fd5b815161059781610dc8565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610fea57607f821691505b60208210810361100a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561053657806000526020600020601f840160051c810160208510156110375750805b601f840160051c820191505b818110156110575760008155600101611043565b5050505050565b81516001600160401b0381111561107757611077610de0565b61108b816110858454610fd6565b84611010565b6020601f8211600181146110bf57600083156110a75750848201515b600019600385901b1c1916600184901b178455611057565b600084815260208120601f198516915b828110156110ef57878501518255602094850194600190920191016110cf565b508482101561110d5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b8181101561114a576020818601810151604086840101520161112d565b506000604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561100a5760001960209190910360031b1b16919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104665761046661118e565b80820281158282048414176104665761046661118e565b634e487b7160e01b600052601260045260246000fd5b6000826111f3576111f36111ce565b500490565b6000816112075761120761118e565b506000190190565b60008261121e5761121e6111ce565b500690565b808201808211156104665761046661118e565b600060ff831680611249576112496111ce565b8060ff84160691505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e05161555361143d600039600081816105830152818161268701526127070152600081816107010152818161168801528181611839015281816123e001526125ba015260008181610421015281816115ee0152818161177501528181612346015281816125380152613b33015260008181610a48015261394d01526000818161084d01528181610cd101528181610fee015261276601526000818161048301526115460152600081816107fb01526114440152600061069201526000818161050001528181610bdc01528181610c1001526121690152600081816109e801528181611ebb01528181611eeb0152818161205f0152818161208f01526120bf0152600081816107a501528181613595015281816135cb015281816135f7015261365e0152600081816107cc01528181611299015281816129b50152818161370b015261377801526000818161072801528181613486015281816136ea01526137400152600061326c0152600061323f01526000613fc701526000613f9f01526000613efa01526000613f2401526000613f4e01526155536000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c8063905c051111610215578063c27f08b511610125578063e511e546116100b8578063f288246111610087578063f2882461146109e3578063f2fde38b14610a0a578063f81d079514610a1d578063facd743b14610a30578063ffa1ad7414610a4357600080fd5b8063e511e5461461096a578063e7142f7c1461097d578063ef0e5c0d14610986578063f25b3f991461099957600080fd5b8063d6db2573116100f4578063d6db2573146108ed578063d8e3784c14610947578063dc1bb8f41461094f578063e3380b791461096257600080fd5b8063c27f08b51461088a578063c6b61e4c1461089d578063c9d1e012146108c7578063d03b2bae146108da57600080fd5b8063b67d057b116101a8578063b8f3159011610177578063b8f3159014610838578063b97dd9e214610840578063b980240514610848578063b9d091631461086f578063bece308a1461088257600080fd5b8063b67d057b146107ee578063b7010697146107f6578063b7ab4db51461081d578063b85e881d1461082557600080fd5b80639f2b3154116101e45780639f2b315414610785578063a0e6fc871461078d578063a575fcdc146107a0578063a70b9f0c146107c757600080fd5b8063905c05111461072357806390677bac1461074a578063966ab4ee1461076a5780639a000e5b1461077257600080fd5b806353a1602411610310578063725e494e116102a35780637c28ec3f116102725780637c28ec3f146106b457806380edb5bd146106bd57806384b0196e146106d05780638da5cb5b146106eb5780638de728e4146106fc57600080fd5b8063725e494e1461065457806374af185e146106675780637500af551461067a57806379ed8ead1461068d57600080fd5b806369457a6f116102df57806369457a6f146106115780637071688a1461063157806370d1c58c14610639578063715018a61461064c57600080fd5b806353a16024146105c05780635aa51600146105d357806368bdcbc5146105e6578063694223ac146105f957600080fd5b80633b10244b1161038857806342d21ef71161035757806342d21ef71461053e5780634800d97f1461057e57806348b9e57b146105a55780634d238c8e146105ad57600080fd5b80633b10244b146104f35780633ceac569146104fb5780633cfe551f1461052257806340a141ff1461052b57600080fd5b80632716c737116103c45780632716c737146104a557806333f9acb4146104ba57806336185aa1146104cd5780633777e863146104e057600080fd5b806302a21460146103f65780631811f40b1461041c5780631a4e1e781461045b5780631b142ea71461047e575b600080fd5b6008546000908152600f60205260409020545b6040519081526020015b60405180910390f35b6104437f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610413565b600854600954610469919082565b60408051928352602083019190915201610413565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b6104b86104b336600461488e565b610a6a565b005b6104696104c83660046148bc565b610daa565b6104b86104db366004614aa6565b610edf565b6104096104ee366004614b76565b610efb565b610443610f22565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b61040960115481565b6104b8610539366004614ba4565b610f32565b61055161054c366004614b76565b610f51565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610413565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b600854610409565b6104b86105bb366004614ba4565b610fa6565b6104b86105ce366004614bc1565b610fc2565b6104b86105e1366004614b76565b611193565b6104b86105f4366004614b76565b6111a0565b6106016111ad565b6040519015158152602001610413565b61062461061f366004614b76565b6111b8565b6040516104139190614bde565b610409611224565b6104b8610647366004614c88565b611230565b6104b8611254565b6104b8610662366004614ba4565b611268565b610409610675366004614b76565b611292565b6104b8610688366004614d75565b6112c4565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b61040960105481565b6104096106cb366004614b76565b6118f4565b6106d8611946565b6040516104139796959493929190614ea0565b6002546001600160a01b0316610443565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b61075d610758366004614f8d565b61198c565b604051610413919061505a565b610624611de4565b610443610780366004614b76565b611def565b6104b8611dfc565b6104b861079b366004614b76565b611e29565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b600954610409565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b610624611e3f565b610409610833366004615081565b611e4b565b610409611e5e565b610409611ea8565b6104437f000000000000000000000000000000000000000000000000000000000000000081565b61040961087d366004614b76565b611eb3565b610409611f21565b610443610898366004614b76565b611f60565b6104696108ab366004614b76565b6005602052600090815260409020600181015460029091015482565b6104096108d5366004614b76565b612057565b6104096108e8366004614b76565b6120b8565b600a54600b54600c54600d54600e54610913949392916001600160a01b03908116911685565b604080519586526020860194909452928401919091526001600160a01b03908116606084015216608082015260a001610413565b6104096120ec565b61060161095d366004614b76565b6120f7565b6104b86121f4565b6104b8610978366004615104565b612262565b6104096103e881565b6104096109943660046151a6565b612807565b6109c86109a7366004614b76565b600f6020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610413565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b6104b8610a18366004614ba4565b61288b565b600754610443906001600160a01b031681565b610601610a3e366004614ba4565b6128c6565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b610aa6610a7f36839003830160a084016151e7565b610a8f6080840160608501614ba4565b610aa161083336869003860186615081565b6128d3565b6000610ab183611eb3565b90506000610abe84611f60565b90506000610aca611f21565b905082602085013580821115610b01576040516320a001eb60e01b8152600481019290925260248201526044015b60405180910390fd5b506127109050610b1760a0860160808701615203565b63ffffffff161115610b2f60a0860160808701615203565b90610b5657604051632149689b60e11b815263ffffffff9091166004820152602401610af8565b506001600160a01b0382161580610b7557506001600160a01b03821633145b82339091610ba95760405163681693c760e11b81526001600160a01b03928316600482015291166024820152604401610af8565b508190508435818114610bd85760405163f0e0744d60e01b815260048101929092526024820152604401610af8565b50507f0000000000000000000000000000000000000000000000000000000000000000610c04846129ae565b10610c0e846129ae565b7f00000000000000000000000000000000000000000000000000000000000000009091610c575760405163e6969f1160e01b815260048101929092526024820152604401610af8565b5050600a5481141580610c735750600e546001600160a01b0316155b610c90576040516316562f8560e11b815260040160405180910390fd5b6103e8604085013581811015610cc2576040516350b2f93b60e11b815260048101929092526024820152604401610af8565b50600090506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663fc7e286d610d066080880160608901614ba4565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6e919061521e565b905060408501358180821115610da057604051634a3c2c5960e01b815260048101929092526024820152604401610af8565b5050505050505050565b6000806000610db885611eb3565b90506000610dc5866120f7565b610dd157600854610dd5565b6009545b6000818152600f60205260409020600201549091508083808210610e155760405163083510bd60e41b815260048101929092526024820152604401610af8565b50506000828152600f60205260409020548087808214610e5157604051635b41520760e11b815260048101929092526024820152604401610af8565b50506040805160008082526020820190925281610e9d565b604080516080810182526000808252602080830182905292820181905260608201528252600019909201910181610e695790505b506040805180820190915260018082526020820152909150610ec186838b846129da565b85610ecd86600161524d565b975097505050505050505b9250929050565b6000610eeb8888612bab565b9050610da0818787878787612f4f565b6008546000908211610f1a57506000908152600f602052604090205490565b506000919050565b6000610f2d42611f60565b905090565b610f3a612f97565b610f426121f4565b610f4d600382612fc4565b5050565b6009546000818152600f60205260408082205460085480845291832054929384938493849384938493909290610f868b610efb565b600954610f92906118f4565b949c939b5091995097509550909350915050565b610fae612f97565b610fb66121f4565b610fbf81612fd9565b50565b610fcc4282610a6a565b6000610fd66120ec565b90506000610fe2611f21565b90506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631c87b6ac6110236080860160608701614ba4565b6040805160e084901b6001600160e01b03191681526001600160a01b0390921660048301528601356024820152604401600060405180830381600087803b15801561106d57600080fd5b505af1158015611081573d6000803e3d6000fd5b505050506040518060a001604052808281526020018460000160800160208101906110ac9190615203565b63ffffffff1681526040808601356020830152016110d06080860160608701614ba4565b6001600160a01b0390811682523360209283018190528351600a5591830151600b556040830151600c55606080840151600d80549184166001600160a01b0319928316179055608094850151600e805491909416911617909155909161113b91908601908601614ba4565b6001600160a01b0316827f04eee47b3fe9e6bcdec9370371d65501f3fb3f44d2fbf49c2b6834635a7253df866000016040013586604051611186929190918252602082015260400190565b60405180910390a4505050565b61119b612f97565b601055565b6111a8612f97565b601155565b6000610f2d426120f7565b60008181526005602090815260409182902080548351818402810184019094528084526060939283018282801561121857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111fa575b50505050509050919050565b6000610f2d6003612fe4565b61124089898989898989896112c4565b61124981610fc2565b505050505050505050565b61125c612f97565b6112666000612fee565b565b611270612f97565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60006112be7f000000000000000000000000000000000000000000000000000000000000000083615276565b92915050565b6112cc6111ad565b156112d9576112d9613040565b60405163e5c5e9a360e01b815260009073__$bd4735397c9654ec5109019d55c6931403$__9063e5c5e9a39061131590869086906004016152b3565b602060405180830381865af4158015611332573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611356919061521e565b905060006113648a8a612bab565b90506000600190506000818a89604051602001611383939291906152c7565b6040516020818303038152906040528051906020012090506113a36121f4565b6113cb8388834288604051806040016040528060001515815260200160001515815250612f4f565b60006008600001600081546113df906152e9565b918290555060408051606080820183528e825260208083018f815289830151909201518385019081526000868152600f90925284822093518455915160018401559051600290920191909155905163483f31ab60e01b815260048101839052919250907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063483f31ab906024016020604051808303816000875af1158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b9919061521e565b60208601516040015190915081908082146114f05760405163cd6f423360e01b815260048101929092526024820152604401610af8565b505060006115058660200151600001516130b4565b509050600061151582600161524d565b602088015160600151604051633d96c2c960e01b8152600481018790526024810191909152604481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633d96c2c990606401600060405180830381600087803b15801561159257600080fd5b505af11580156115a6573d6000803e3d6000fd5b505050508d847fa181a71286cf34ab6e15a04aec6411ea404897f2cdc5e246558a49dc92fd8fe460405160405180910390a360125484116118e2576115ea8461319f565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166e9190615302565b6001600160a01b0316306001600160a01b031614905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117089190615302565b6001600160a01b0316306001600160a01b031614905081801561173b5750606089015160a001516001600160a01b031615155b801561174b575060008960800151115b156117ef57606089015160a0015160808a01516040516348fef59560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926348fef595926117bc926004016001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b505050505b80801561180c5750606089015160a001516001600160a01b031615155b156118aa57606089015160a00151604051630f41a04d60e11b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690631e83409a906024016020604051808303816000875af1158015611884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a8919061521e565b505b6040516410d211505560da1b9087907fd989775bfca9340a9fcb6a458bef402a5defb0d44211ee8d61a5974e9ad7379b90600090a350505b50505050505050505050505050505050565b60085460009082818111156119255760405163e5edf84760e01b815260048101929092526024820152604401610af8565b50506000828152600f60205260409020600201546112be906108d5906120b8565b60006060806000806000606061195a613238565b611962613265565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b600954606090600061199e898361524d565b6000838152600f60205260409020549091508089358082146119dc576040516332a277ed60e01b815260048101929092526024820152604401610af8565b50506000828152600f60209081526040909120549081908b0135808214611a1f57604051635b41520760e11b815260048101929092526024820152604401610af8565b50506000848152600f6020526040902060010154801580611a43575060408b013581145b819060408d013590611a715760405163beedc8c760e01b815260048101929092526024820152604401610af8565b50506000848152600f60205260409020600101548060608d0135808214611ab45760405163353eb95960e01b815260048101929092526024820152604401610af8565b50505050505060006010604c611aca919061524d565b6001600160401b03811115611ae157611ae161491f565b604051908082528060200260200182016040528015611b0a578160200160208202803683370190505b509050886000602002013581600081518110611b2857611b2861531f565b6020908102919091010152611b3e83600161524d565b60001b81600181518110611b5457611b5461531f565b6020908102919091010152886001602002013581600281518110611b7a57611b7a61531f565b6020908102919091010152611b9082600161524d565b60001b81600381518110611ba657611ba661531f565b6020908102919091010152886002602002013581600481518110611bcc57611bcc61531f565b6020908102919091010152886003602002013581600581518110611bf257611bf261531f565b6020908102919091010152886004602002013581600681518110611c1857611c1861531f565b6020026020010181815250508160001b81600781518110611c3b57611c3b61531f565b6020908102919091010152886005602002013581600881518110611c6157611c6161531f565b602002602001018181525050600060206002611c7d9190615335565b905060005b81811015611cd457898982818110611c9c57611c9c61531f565b9050602002013583826009611cb1919061524d565b81518110611cc157611cc161531f565b6020908102919091010152600101611c82565b506000611ce282600961524d565b9050601054838281518110611cf957611cf961531f565b602090810291909101015260115483611d1383600161524d565b81518110611d2357611d2361531f565b602090810291909101015260c08b013583611d3f83600261524d565b81518110611d4f57611d4f61531f565b6020026020010181815250506000602089899050611d6d9190615276565b905060005b601081108015611d8157508181105b15611dd257602081028a01358086611d99868561524d565b611da490600361524d565b81518110611db457611db461531f565b60209081029190910101525080611dca816152e9565b915050611d72565b50929c9b505050505050505050505050565b6060610f2d42613292565b60006112be60038361338d565b611e046111ad565b611e215760405163850defd360e01b815260040160405180910390fd5b611266613040565b611e31612f97565b611e3a8161319f565b601255565b6060610f2d6003613399565b60006112be611e59836133a6565b613446565b600080611e69611f21565b600a5490915081141580611e865750600d546001600160a01b0316155b611ea3576040516316562f8560e11b815260040160405180910390fd5b919050565b6000610f2d42612057565b6000611ede827f00000000000000000000000000000000000000000000000000000000000000001190565b611f1957611f14611f0f837f0000000000000000000000000000000000000000000000000000000000000000613473565b61347f565b6112be565b600092915050565b6008546009546000919003611f495760405163cbaa395160e01b815260040160405180910390fd5b610f2d611f5560095490565b6106cb90600161524d565b600080611f6c83612057565b90506000611f7984611eb3565b600083815260056020526040902060018101549192509015611fef5780546000819003611fac5750600095945050505050565b81600001611fc085858560010154856134ab565b81548110611fd057611fd061531f565b6000918252602090912001546001600160a01b03169695505050505050565b611ff96003612fe4565b60000361200b57506000949350505050565b6000612016846134f9565b9050600061202382613565565b90508061203386868585516134ab565b815181106120435761204361531f565b602002602001015195505050505050919050565b6000612082827f00000000000000000000000000000000000000000000000000000000000000001190565b611f1957611f146120b3837f0000000000000000000000000000000000000000000000000000000000000000613473565b6136e3565b60006112be7f00000000000000000000000000000000000000000000000000000000000000006120e784613739565b613765565b6000610f2d42611eb3565b6009546008546000911480612110575060125460085411155b1561211d57506000919050565b600061212883611eb3565b9050600061214160086001015460016106cb919061524d565b9050600061214e82613771565b905060006121918461218d612167856120e76001613771565b7f0000000000000000000000000000000000000000000000000000000000000000613765565b1190565b905060006121a78561218d856120e76002613771565b80156121b45750600a5484145b80156121ca5750600e546001600160a01b031615155b905081806121d55750805b156121e7575060009695505050505050565b5060019695505050505050565b60006121fe611ea8565b60008181526005602052604081206001810154929350919003610f4d57612224826134f9565b60018201556122328261379d565b60068190556002820155600181015461224a90613565565b805161225d9183916020909101906146a6565b505050565b61226a6111ad565b1561227757612277613040565b60095460006122868a8361524d565b90506000612293826118f4565b905060006122a58c8c8c8c8c8c61198c565b600754604051633a94343960e21b81529192506001600160a01b03169063ea50d0e4906122da9089908990869060040161534c565b602060405180830381865afa1580156122f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231b919061537c565b6123385760405163a5b2ba1760e01b815260040160405180910390fd5b8260086001018190555060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c69190615302565b6001600160a01b0316306001600160a01b031614905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561243c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124609190615302565b6001600160a01b0316306001600160a01b0316149050600082806124815750815b156127305760005b8f8110156126ca5760008561249f836002615335565b6124aa90600961524d565b815181106124ba576124ba61531f565b602002602001015160001c9050600080861561259f576000886124de866002615335565b6124e990600a61524d565b815181106124f9576124f961531f565b602002602001015160001c9050600081111561259d57612519818461524d565b6040516348fef59560e01b8152306004820152602481018390529093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348fef59590604401600060405180830381600087803b15801561258457600080fd5b505af1158015612598573d6000803e3d6000fd5b505050505b505b851561263c57604051630f41a04d60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631e83409a906024016020604051808303816000875af115801561260b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262f919061521e565b612639908361524d565b91505b6001600160a01b038316612651575080612666565b61266382600a600101546127106137d9565b90505b60006126728284615399565b905080156126ae576126ae6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016858361389b565b6126b8828761524d565b95505060019093019250612489915050565b50801561273057600d546000906001600160a01b0316156126f657600d546001600160a01b03166126f8565b335b905061272e6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016828461389b565b505b600a5485036127c557600d54600c546040516302c865e360e41b81526001600160a01b03928316600482015260248101919091527f000000000000000000000000000000000000000000000000000000000000000090911690632c865e3090604401600060405180830381600087803b1580156127ac57600080fd5b505af11580156127c0573d6000803e3d6000fd5b505050505b60405160c08f01359087907fd989775bfca9340a9fcb6a458bef402a5defb0d44211ee8d61a5974e9ad7379b90600090a3505050505050505050505050505050565b60405163e5c5e9a360e01b815260009073__$bd4735397c9654ec5109019d55c6931403$__9063e5c5e9a39061284390869086906004016152b3565b602060405180830381865af4158015612860573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612884919061521e565b9392505050565b612893612f97565b6001600160a01b0381166128bd57604051631e4fbdf760e01b815260006004820152602401610af8565b610fbf81612fee565b60006112be6003836138ed565b8251156128f35760405163c7690a3760e01b815260040160405180910390fd5b6020808401516040808601516060808801518351600080825296810180865288905260ff90951693850193909352830152608082015260019060a0016020604051602081039080840390855afa158015612951573d6000803e3d6000fd5b505050602060405103519050806001600160a01b0316836001600160a01b031614838290916129a657604051633672eb9b60e21b81526001600160a01b03928316600482015291166024820152604401610af8565b505050505050565b60006112be7f0000000000000000000000000000000000000000000000000000000000000000836153ac565b60006129e5856120b8565b905060006129f282611f60565b90506001600160a01b038116612a09575050612ba5565b80336001600160a01b0382168114612a475760405163681693c760e11b81526001600160a01b03928316600482015291166024820152604401610af8565b5050826020015115612a5a575050612ba5565b6000612a6583613292565b90506000600382516002612a799190615335565b612a839190615276565b612a8e90600161524d565b8751909150819081811015612abf576040516359d34be160e11b815260048101929092526024820152604401610af8565b50507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c879052603c812060005b8951811015612b6f5760008a8281518110612b1057612b1061531f565b60200260200101519050806000015115612b2a5750612b67565b612b58868381518110612b3f57612b3f61531f565b602002602001015184836128d39092919063ffffffff16565b83612b62816152e9565b945050505b600101612af3565b50828281811015612b9c5760405163bf1ca4cb60e01b815260048101929092526024820152604401610af8565b50505050505050505b50505050565b612bb361470b565b61026882808214612be05760405163f3ccb24760e01b815260048101929092526024820152604401610af8565b5050612bea61470b565b6040805180820190915280612c036020600087896153c0565b612c0c916153ea565b8152602090810190612c229060249087896153c0565b612c2b91615408565b60e01c90528152612c406044602485876153c0565b612c49916153ea565b602082015152612c5d6064604485876153c0565b612c66916153ea565b6020808301510152612c7c6084606485876153c0565b612c85916153ea565b602082015160400152612c9c60a4608485876153c0565b612ca5916153ea565b6020820151606001526040805180820190915280612cc760c460a487896153c0565b612cd0916153ea565b8152602001612ce360c860c487896153c0565b612cec91615408565b60e01c905260408083015191909152805180820190915280612d1260e860c887896153c0565b612d1b916153ea565b8152602001612d2e60ec60e887896153c0565b612d3791615408565b60e01c90526040808301516020015191909152805180820190915280612d6261010c60ec87896153c0565b612d6b916153ea565b8152602001612d8061011061010c87896153c0565b612d8991615408565b60e01c90526040808301516020908101510191909152805180820190915280612db861013061011087896153c0565b612dc1916153ea565b8152602001612dd661013461013087896153c0565b612ddf91615408565b60e01c905260408201516020015160600152612e0161015461013485876153c0565b612e0a916153ea565b606082015152612e2061017461015485876153c0565b612e29916153ea565b606082015160200152612e4261019461017485876153c0565b612e4b916153ea565b606082015160400152612e646101b461019485876153c0565b612e6d916153ea565b6060808301510152612e856101d46101b485876153c0565b612e8e916153ea565b606082015160800152612ea76101e86101d485876153c0565b612eb09161543e565b60608281015191901c60a090910152612ecf6102086101e885876153c0565b612ed8916153ea565b606082015160c00152612ef161022861020885876153c0565b612efa916153ea565b606082015160e0015152612f1461024861022885876153c0565b612f1d916153ea565b606082015160e0015160200152612f3a61026861024885876153c0565b612f43916153ea565b60808201529392505050565b6000612f5a846120f7565b612f6657600854612f6a565b6009545b9050612f79878585848661390f565b612f8e87606001516060015187878786613c1e565b50505050505050565b6002546001600160a01b031633146112665760405163118cdaa760e01b8152336004820152602401610af8565b6000612884836001600160a01b038416613cae565b610f4d600382613da8565b60006112be825490565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000600a819055600b819055600c55600d80546001600160a01b0319908116909155600e805490911690556008805460095491829055604080519283526020830182905290917fc78a70f3b27748d5fa327f6a3c1104b9b007d6a80d20c41f7c0dc4543fbdbdcd910160405180910390a150565b6000806000600284106130c757836130ca565b60025b9050600060018180805b8515613150578584166000036130fd5760019390931b92826130f5816152e9565b9350506130d4565b846000036131085750815b6131128487615399565b60000361311d578291505b6131278487615399565b955060019390931b928261313a816152e9565b9350508480613148906152e9565b9550506130d4565b8460010361316657509788975095505050505050565b60006001613174878461524d565b61317e9190615399565b9050600061318d84600161524d565b919b919a509098505050505050505050565b600954811180156131b257506008548111155b15610fbf57600981905560006131c7826118f4565b90508015806131d75750600a5481115b15610f4d576040805160a08101825282815260006020820181905291810182905260608101829052336080909101819052600a92909255600b819055600c55600d80546001600160a01b0319908116909155600e8054909116909117905550565b6060610f2d7f00000000000000000000000000000000000000000000000000000000000000006000613dbd565b6060610f2d7f00000000000000000000000000000000000000000000000000000000000000006001613dbd565b6060600061329f83612057565b60008181526005602052604090206001810154919250901561334257805460008190036132e25760408051600080825260208201909252905b5095945050505050565b81546040805160208084028201810190925282815291849183018282801561333357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613315575b50505050509350505050919050565b61334c6003612fe4565b60000361336e5760408051600080825260208201909252905b50949350505050565b6000613379836134f9565b905061338481613565565b95945050505050565b60006128848383613e68565b6060600061288483613e92565b60007f87ad602ba7da8fbd0870ea16b81fedb3d066c92bd5549f066c4512db6b28fb9d82600001518360200151846040015185606001518660800151604051602001613429969594939291909586526020860194909452604085019290925260608401526001600160a01b0316608083015263ffffffff1660a082015260c00190565b604051602081830303815290604052805190602001209050919050565b60006112be613453613eed565b8360405161190160f01b8152600281019290925260228201526042902090565b60006128848284615399565b60006112be7f000000000000000000000000000000000000000000000000000000000000000083615276565b60408051602081018690529081018490526060810183905260009082906080016040516020818303038152906040528051906020012060001c6134ee91906153ac565b90505b949350505050565b60008160000361350c5750600019919050565b600082815260056020526040902060010154801561352a5792915050565b60056000613539856001613473565b81526020019081526020016000206002015490508060001461355b5792915050565b5050600654919050565b606060006135736003612fe4565b905080600003613593575050604080516000815260208101909152919050565b7f000000000000000000000000000000000000000000000000000000000000000081116135c4576128846003613399565b60006135f17f00000000000000000000000000000000000000000000000000000000000000008386614018565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0381111561362d5761362d61491f565b604051908082528060200260200182016040528015613656578160200160208202803683370190505b50905060005b7f0000000000000000000000000000000000000000000000000000000000000000811015613365576136b18382815181106136995761369961531f565b6020026020010151600361338d90919063ffffffff16565b8282815181106136c3576136c361531f565b6001600160a01b039092166020928302919091019091015260010161365c565b600061372f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000615335565b6112be9083615276565b60006112be7f000000000000000000000000000000000000000000000000000000000000000083615335565b6000612884828461524d565b60006112be7f000000000000000000000000000000000000000000000000000000000000000083615335565b600081446040516020016137bb929190918252602082015260400190565b60408051601f19818403018152919052805160209091012092915050565b60008080600019858709858702925082811083820303915050806000036138135783828161380957613809615260565b0492505050612884565b8084116138335760405163227bc15360e01b815260040160405180910390fd5b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261225d9084906140a1565b6001600160a01b03811660009081526001830160205260408120541515612884565b606085015151469081811461394057604051631bdade0960e11b815260048101929092526024820152604401610af8565b50506060850151602001517f000000000000000000000000000000000000000000000000000000000000000090808214613996576040516327bcc1e560e21b815260048101929092526024820152604401610af8565b506139a4905082600161524d565b606086015160400151146139b983600161524d565b86606001516040015190916139ea5760405163e5edf84760e01b815260048101929092526024820152604401610af8565b50506000828152600f60205260409020548551518190808214613a2957604051635b41520760e11b815260048101929092526024820152604401610af8565b505060608681015101516000848152600f60205260409020600201548082808210613a705760405163083510bd60e41b815260048101929092526024820152604401610af8565b50506000613a7d836120b8565b9050613a90896060015160800151821490565b60608a0151608001518291613ac157604051633132e89560e01b815260048101929092526024820152604401610af8565b508890508180821015613af05760405163089f306960e41b815260048101929092526024820152604401610af8565b5050845180613b06575086896020015160200151145b89602001516020015190613b305760405163414906c360e01b8152600401610af891815260200190565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026cd0dc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb39190615302565b6001600160a01b0316306001600160a01b03161461124957606089015160e001515115613bf357604051636ce3afa960e11b815260040160405180910390fd5b606089015160e00151602001511561124957604051631f9ca2af60e21b815260040160405180910390fd5b6000613c2983611eb3565b90508086808214613c56576040516309ba91ff60e01b815260048101929092526024820152604401610af8565b50506000613c666108d5886120b8565b90506000613c7385612057565b90508082808214613ca057604051631e36b2f360e11b815260048101929092526024820152604401610af8565b5050610da0888888876129da565b60008181526001830160205260408120548015613d97576000613cd2600183615399565b8554909150600090613ce690600190615399565b9050818114613d4b576000866000018281548110613d0657613d0661531f565b9060005260206000200154905080876000018481548110613d2957613d2961531f565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613d5c57613d5c61547e565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506112be565b60009150506112be565b5092915050565b6000612884836001600160a01b038416614104565b606060ff8314613dd757613dd083614153565b90506112be565b818054613de390615494565b80601f0160208091040260200160405190810160405280929190818152602001828054613e0f90615494565b8015613e5c5780601f10613e3157610100808354040283529160200191613e5c565b820191906000526020600020905b815481529060010190602001808311613e3f57829003601f168201915b505050505090506112be565b6000826000018281548110613e7f57613e7f61531f565b9060005260206000200154905092915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561121857602002820191906000526020600020905b815481526020019060010190808311613ece5750505050509050919050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613f4657507f000000000000000000000000000000000000000000000000000000000000000046145b15613f7057507f000000000000000000000000000000000000000000000000000000000000000090565b610f2d604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60606000846001600160401b038111156140345761403461491f565b60405190808252806020026020018201604052801561405d578160200160208202803683370190505b50905060005b85811015613365576000614078828787614192565b90508083838151811061408d5761408d61531f565b602090810291909101015250600101614063565b60006140b66001600160a01b0384168361421d565b905080516000141580156140db5750808060200190518101906140d9919061537c565b155b1561225d57604051635274afe760e01b81526001600160a01b0384166004820152602401610af8565b600081815260018301602052604081205461414b575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556112be565b5060006112be565b606060006141608361422e565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600083838082106141bf5760405163a12fc55960e01b815260048101929092526024820152604401610af8565b505060006141cc84614256565b905084815b80156132d85760006141ee866141e8600185615399565b89614420565b9050614207868285614201600187615399565b8b61446f565b9250508080614215906154c8565b9150506141d1565b60606128848383600061457f614598565b600060ff8216601f8111156112be57604051632cd44ac360e21b815260040160405180910390fd5b604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b7e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff600160801b68010000000000000000640100000000620100006010600460026000198c0190810417908104179081041788810417908104179081041790810417908104176001010281900460ff0390910151600092600160ff1b851102919004016112be906004615335565b600081848460405160200161444c92919091825260f81b6001600160f81b031916602082015260210190565b6040516020818303038152906040528051906020012060001c6134f191906153ac565b600080828561447e828961524d565b6144889190615399565b61449291906153ac565b905060008186116144a357816144a5565b855b9050600088866144b761010085615276565b6040516020016144f49392919092835260f89190911b6001600160f81b031916602083015260e01b6001600160e01b031916602182015260250190565b60405160208183030381529060405280519060200120905060008160086101008561451f91906153ac565b6145299190615276565b602081106145395761453961531f565b1a90506000600261454b6008866153ac565b8360ff16901c61455b91906154df565b90508060ff1660011461456e5788614570565b845b9b9a5050505050505050505050565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156145bd5760405163cd78605960e01b8152306004820152602401610af8565b600080866001600160a01b031685876040516145d99190615501565b60006040518083038185875af1925050503d8060008114614616576040519150601f19603f3d011682016040523d82523d6000602084013e61461b565b606091505b509150915061462c87838387614637565b979650505050505050565b6060831561468557825160000361467e57846001600160a01b03163b60000361467e57604051639996b31560e01b81526001600160a01b0386166004820152602401610af8565b50816134f1565b6134f1838381511561469a5781518083602001fd5b61457f8163ffffffff16565b8280548282559060005260206000209081019282156146fb579160200282015b828111156146fb57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906146c6565b50614707929150614771565b5090565b6040805160e081018252600060a0820181815260c08301829052825282516080810184528181526020808201839052818501839052606082019290925290820152908101614757614786565b815260200161476461480f565b8152602001600081525090565b5b808211156147075760008155600101614772565b60408051608081018252600091810182815260608201929092529081526020810161480a6040805160c08101825260006080820181815260a083018290528252825180840184528181526020808201839052808401919091528351808501855282815280820183905283850152835180850190945281845283015290606082015290565b905290565b604051806101000160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000801916815260200161480a604051806040016040528060008152602001600081525090565b6000610120828403121561488857600080fd5b50919050565b60008061014083850312156148a257600080fd5b823591506148b38460208501614875565b90509250929050565b600080604083850312156148cf57600080fd5b50508035926020909101359150565b60008083601f8401126148f057600080fd5b5081356001600160401b0381111561490757600080fd5b602083019150836020828501011115610ed857600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156149575761495761491f565b60405290565b604051601f8201601f191681016001600160401b03811182821017156149855761498561491f565b604052919050565b60006001600160401b038211156149a6576149a661491f565b5060051b60200190565b8015158114610fbf57600080fd5b6000608082840312156149d057600080fd5b604051608081016001600160401b03811182821017156149f2576149f261491f565b6040529050808235614a03816149b0565b8152602083013560ff81168114614a1957600080fd5b602082015260408381013590820152606092830135920191909152919050565b600082601f830112614a4a57600080fd5b8135614a5d614a588261498d565b61495d565b8082825260208201915060208360071b860101925085831115614a7f57600080fd5b602085015b838110156132d857614a9687826149be565b8352602090920191608001614a84565b600080600080600080600087890360e0811215614ac257600080fd5b88356001600160401b03811115614ad857600080fd5b614ae48b828c016148de565b90995097505060208901356001600160401b03811115614b0357600080fd5b614b0f8b828c01614a39565b965050604089810135955060608a0135945060808a01359350609f1982011215614b3857600080fd5b50614b41614935565b60a0890135614b4f816149b0565b815260c0890135614b5f816149b0565b806020830152508091505092959891949750929550565b600060208284031215614b8857600080fd5b5035919050565b6001600160a01b0381168114610fbf57600080fd5b600060208284031215614bb657600080fd5b813561288481614b8f565b60006101208284031215614bd457600080fd5b6128848383614875565b602080825282518282018190526000918401906040840190835b81811015614c1f5783516001600160a01b0316835260209384019390920191600101614bf8565b509095945050505050565b600082601f830112614c3b57600080fd5b8135614c49614a588261498d565b8082825260208201915060208360051b860101925085831115614c6b57600080fd5b602085015b838110156132d8578035835260209283019201614c70565b60008060008060008060008060006101e08a8c031215614ca757600080fd5b89356001600160401b03811115614cbd57600080fd5b614cc98c828d016148de565b909a5098505060208a0135965060408a0135955060608a01356001600160401b03811115614cf657600080fd5b614d028c828d01614c2a565b95505060808a01356001600160401b03811115614d1e57600080fd5b614d2a8c828d01614a39565b94505060a08a01356001600160401b03811115614d4657600080fd5b614d528c828d016148de565b9094509250614d6690508b60c08c01614875565b90509295985092959850929598565b60008060008060008060008060c0898b031215614d9157600080fd5b88356001600160401b03811115614da757600080fd5b614db38b828c016148de565b909950975050602089013595506040890135945060608901356001600160401b03811115614de057600080fd5b614dec8b828c01614c2a565b94505060808901356001600160401b03811115614e0857600080fd5b614e148b828c01614a39565b93505060a08901356001600160401b03811115614e3057600080fd5b614e3c8b828c016148de565b999c989b5096995094979396929594505050565b60005b83811015614e6b578181015183820152602001614e53565b50506000910152565b60008151808452614e8c816020860160208601614e50565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e060208201526000614ebf60e0830189614e74565b8281036040840152614ed18189614e74565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015614f27578351835260209384019390920191600101614f09565b50909b9a5050505050505050505050565b8060e081018310156112be57600080fd5b60008083601f840112614f5b57600080fd5b5081356001600160401b03811115614f7257600080fd5b6020830191508360208260051b8501011115610ed857600080fd5b6000806000806000806101408789031215614fa757600080fd5b86359550614fb88860208901614f38565b94506101008701356001600160401b03811115614fd457600080fd5b614fe089828a01614f49565b9095509350506101208701356001600160401b0381111561500057600080fd5b61500c89828a016148de565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b82811015615050578151865260209586019590910190600101615032565b5093949350505050565b602081526000612884602083018461501e565b803563ffffffff81168114611ea357600080fd5b600060a082840312801561509457600080fd5b5060405160009060a081016001600160401b03811182821017156150ba576150ba61491f565b604090815284358252602080860135908301528481013590820152606084013591506150e582614b8f565b8160608201526150f76080850161506d565b6080820152949350505050565b600080600080600080600080610160898b03121561512157600080fd5b883597506151328a60208b01614f38565b96506101008901356001600160401b0381111561514e57600080fd5b61515a8b828c01614f49565b9097509550506101208901356001600160401b0381111561517a57600080fd5b6151868b828c016148de565b9095509350506101408901356001600160401b03811115614e3057600080fd5b600080602083850312156151b957600080fd5b82356001600160401b038111156151cf57600080fd5b6151db858286016148de565b90969095509350505050565b6000608082840312156151f957600080fd5b61288483836149be565b60006020828403121561521557600080fd5b6128848261506d565b60006020828403121561523057600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156112be576112be615237565b634e487b7160e01b600052601260045260246000fd5b60008261528557615285615260565b500490565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006134f160208301848661528a565b60ff841681528260208201526060604082015260006134ee606083018461501e565b6000600182016152fb576152fb615237565b5060010190565b60006020828403121561531457600080fd5b815161288481614b8f565b634e487b7160e01b600052603260045260246000fd5b80820281158282048414176112be576112be615237565b60408152600061536060408301858761528a565b8281036020840152615372818561501e565b9695505050505050565b60006020828403121561538e57600080fd5b8151612884816149b0565b818103818111156112be576112be615237565b6000826153bb576153bb615260565b500690565b600080858511156153d057600080fd5b838611156153dd57600080fd5b5050820193919092039150565b803560208310156112be57600019602084900360031b1b1692915050565b80356001600160e01b03198116906004841015613da1576001600160e01b031960049490940360031b84901b1690921692915050565b80356bffffffffffffffffffffffff198116906014841015613da1576bffffffffffffffffffffffff1960149490940360031b84901b1690921692915050565b634e487b7160e01b600052603160045260246000fd5b600181811c908216806154a857607f821691505b60208210810361488857634e487b7160e01b600052602260045260246000fd5b6000816154d7576154d7615237565b506000190190565b600060ff8316806154f2576154f2615260565b8060ff84160691505092915050565b60008251615513818460208701614e50565b919091019291505056fea2646970667358221220d035c5ef28ed80166f21639ddcd5504f072c41bbafa9a9b39d4fb20512efa1ab64736f6c634300081b00336080604052348015600f57600080fd5b506101658061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ea50d0e414610030575b600080fd5b61004861003e36600461005c565b6001949350505050565b604051901515815260200160405180910390f35b6000806000806040858703121561007257600080fd5b843567ffffffffffffffff81111561008957600080fd5b8501601f8101871361009a57600080fd5b803567ffffffffffffffff8111156100b157600080fd5b8760208284010111156100c357600080fd5b60209182019550935085013567ffffffffffffffff8111156100e457600080fd5b8501601f810187136100f557600080fd5b803567ffffffffffffffff81111561010c57600080fd5b8760208260051b840101111561012157600080fd5b94979396506020019450505056fea2646970667358221220615392641ffe5f3a0971c4eb47a66c2aa7ae7637a4dd34f958b6e4dbc93661ed64736f6c634300081b003360e060405234801561001057600080fd5b50604051610bb7380380610bb783398101604081905261002f91610071565b6001600160a01b0380841660a052841660c05261004c81836100b9565b608052506100e492505050565b6001600160a01b038116811461006e57600080fd5b50565b6000806000806080858703121561008757600080fd5b845161009281610059565b60208601519094506100a381610059565b6040860151606090960151949790965092505050565b80820281158282048414176100de57634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c051610a746101436000396000818161016f0152818161020001528181610477015261066f0152600081816101ae015281816102ea01526103b601526000818160e40152818161024f015261054c0152610a746000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80639611c5c2116100715780639611c5c2146101a9578063b6b55f25146101d0578063c60d588d146101e3578063f8fd9795146101f6578063fc0c546a146101fe578063fc7e286d1461022457600080fd5b806308b4af71146100b95780630d5e5fff146100df5780631c87b6ac146101065780632c865e301461011b57806352df49ec1461012e57806382bfefc81461016a575b600080fd5b6100cc6100c7366004610927565b610244565b6040519081526020015b60405180910390f35b6100cc7f000000000000000000000000000000000000000000000000000000000000000081565b610119610114366004610953565b6102df565b005b610119610129366004610953565b6103ab565b61015561013c36600461097d565b6001602081905260009182526040909120805491015482565b604080519283526020830191909152016100d6565b6101917f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d6565b6101917f000000000000000000000000000000000000000000000000000000000000000081565b6101196101de366004610998565b61046a565b6101196101f1366004610998565b6104fc565b6101196105ce565b7f0000000000000000000000000000000000000000000000000000000000000000610191565b6100cc61023236600461097d565b60006020819052908152604090205481565b6000610279836102747f0000000000000000000000000000000000000000000000000000000000000000426109c7565b111590565b15610286575060006102d9565b6001600160a01b038216600090815260208181526040808320546001928390529220015484106102d6576001600160a01b0383166000908152600160205260409020546102d390826109da565b90505b90505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461033a57604051632ac332c160e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b506001600160a01b038216600090815260208190526040812080548392906103639084906109da565b90915550506040518181526001600160a01b038316907f8c2455f4b82f1285751e0f21f0cda7612aa81cf700ab606c3e2250253ff1e400906020015b60405180910390a25050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461040157604051632ac332c160e01b81526001600160a01b039091166004820152602401610331565b506001600160a01b0382166000908152602081905260408120805483929061042a9084906109c7565b90915550506040518181526001600160a01b038316907f6567969aa8387adeedb0b23fd1b47a09157bfb8fdb2a11e8b1c03b8b0e78b48f9060200161039f565b61049f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846106cb565b33600090815260208190526040812080548392906104be9084906109c7565b909155505060405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c906020015b60405180910390a250565b336000908152602081905260409020548180821015610537576040516309b8b78960e01b815260048101929092526024820152604401610331565b505060405180604001604052808281526020017f00000000000000000000000000000000000000000000000000000000000000004261057691906109c7565b9052336000818152600160208181526040928390208551815594015193018390555190917f9d22371eec6fd87e081855b42b28f152e79799fa5a89bf4e30f8acf26d29ed95916104f191858252602082015260400190565b33600090815260016020818152604092839020835180850190945280548452909101549082018190524290808210156106235760405163b32ab8a760e01b815260048101929092526024820152604401610331565b505033600090815260016020818152604080842084815590920183905583519083905290822080549192909161065a9084906109da565b90915550508051610697906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016903390610738565b805160405190815233907fa5b1c510c6d1fc318ad8a59c08331317c170ad7f42e0bff2ece9b32d0feb6859906020016104f1565b6040516001600160a01b0384811660248301528381166044830152606482018390526107329186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061076e565b50505050565b6040516001600160a01b0383811660248301526044820183905261076991859182169063a9059cbb90606401610700565b505050565b60006107836001600160a01b038416836107d1565b905080516000141580156107a85750808060200190518101906107a691906109ed565b155b1561076957604051635274afe760e01b81526001600160a01b0384166004820152602401610331565b60606102d6838360006107e26107fb565b604051630a12f52160e11b815260040160405180910390fd5b6060824710156108205760405163cd78605960e01b8152306004820152602401610331565b600080866001600160a01b0316858760405161083c9190610a0f565b60006040518083038185875af1925050503d8060008114610879576040519150601f19603f3d011682016040523d82523d6000602084013e61087e565b606091505b509150915061088f8783838761089c565b925050505b949350505050565b606083156108ea5782516000036108e357846001600160a01b03163b6000036108e357604051639996b31560e01b81526001600160a01b0386166004820152602401610331565b5081610894565b61089483838151156108ff5781518083602001fd5b6107e28163ffffffff16565b80356001600160a01b038116811461092257600080fd5b919050565b6000806040838503121561093a57600080fd5b8235915061094a6020840161090b565b90509250929050565b6000806040838503121561096657600080fd5b61096f8361090b565b946020939093013593505050565b60006020828403121561098f57600080fd5b6102d68261090b565b6000602082840312156109aa57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102d9576102d96109b1565b818103818111156102d9576102d96109b1565b6000602082840312156109ff57600080fd5b815180151581146102d657600080fd5b6000825160005b81811015610a305760208186018101518583015201610a16565b50600092019182525091905056fea26469706673582212206b5d1bd1791bf512e18f99157084d837ad4f454e30e861a913d751d0407d91ef64736f6c634300081b003361010060405261001060018061038f565b600055600060035534801561002457600080fd5b50604051611010380380611010833981016040819052610043916103a2565b6001600160a01b03821660805260a08190526100608160026104c3565b60c05261006e60018261009d565b60a05160c0516000805481526002602052604090206100929290916001919061014d565b60e0525061059d9050565b60008080526020839052604081205560015b818111610148576101278360006100c76001856104d6565b8152602001908152602001600020548460000160006001856100e991906104d6565b815260200190815260200160002054604051602001610112929190918252602082015260400190565b60408051601f198184030181529190526102af565b60008281526020859052604090205580610140816104e9565b9150506100af565b505050565b835460009080820361016f5750506000828152602084905260409020546102a7565b82810361018e57505060008281526001850160205260409020546102a7565b600061019b6001836104d6565b905060006101a88261034d565b600081815260018a01602052604090205490915082821c825b8881101561029e57600180831614801561026257600082815260018d01602052604090205484900361022e5760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640160405180910390fd5b600082815260018d0160209081526040918290205482519182015290810185905261025b90606001610112565b9350610291565b600082815260208c815260409182902054915161028e9261011292889201918252602082015260400190565b93505b50600191821c91016101c1565b50909450505050505b949350505050565b604080516001808252818301909252600091602082018180368337019050506002836040516102de9190610532565b602060405180830381855afa1580156102fb573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061031e919061053e565b60405160200161032f929190610557565b60405160208183030381529060405261034790610576565b92915050565b600080825b806001166001036103725781610367816104e9565b92505060011c610352565b5092915050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561034757610347610379565b600080604083850312156103b557600080fd5b82516001600160a01b03811681146103cc57600080fd5b6020939093015192949293505050565b6001815b6001841115610417578085048111156103fb576103fb610379565b600184161561040957908102905b60019390931c9280026103e0565b935093915050565b60008261042e57506001610347565b8161043b57506000610347565b8160018114610451576002811461045b57610477565b6001915050610347565b60ff84111561046c5761046c610379565b50506001821b610347565b5060208310610133831016604e8410600b841016171561049a575081810a610347565b6104a760001984846103dc565b80600019048211156104bb576104bb610379565b029392505050565b60006104cf838361041f565b9392505050565b8181038181111561034757610347610379565b6000600182016104fb576104fb610379565b5060010190565b6000815160005b818110156105235760208185018101518683015201610509565b50600093019283525090919050565b60006104cf8284610502565b60006020828403121561055057600080fd5b5051919050565b60006105638285610502565b60ff199390931683525050601f01919050565b80516020808301519190811015610597576000198160200360031b1b821691505b50919050565b60805160a05160c05160e051610a176105f960003960006103ff0152600081816102480152818161029e0152818161045e01526104ed01526000818161043d01526104cc015260008181610107015261039d0152610a176000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637a5080221161005b5780637a508022146100d957806387351813146100f95780639611c5c2146101025780639b24b3b01461014157600080fd5b8063086dc8d4146100825780631f6d510b1461009e578063483f31ab146100c6575b600080fd5b61008b60035481565b6040519081526020015b60405180910390f35b6100b16100ac36600461083c565b610154565b60408051928352602083019190915201610095565b61008b6100d43660046108ba565b610390565b61008b6100e73660046108ba565b60026020526000908152604090205481565b61008b60005481565b6101297f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610095565b61008b61014f3660046108ba565b6104b6565b825160009081907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008111156101a8576040516353bb503760e11b815260040161019f91815260200190565b60405180910390fd5b50837f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008111156101ee576040516311d1480560e21b815260040161019f91815260200190565b50827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000081111561023457604051633b379f8b60e21b815260040161019f91815260200190565b5060008054815260026020526040902080547f00000000000000000000000000000000000000000000000000000000000000000361029557600160008082825461027e91906108e9565b909155505060008054815260026020526040902090505b600081600001547f000000000000000000000000000000000000000000000000000000000000000060016000546102cc91906108fc565b6102d6919061090f565b6102e091906108e9565b6040805160e0810182523360a082019081524660c08301528152602081018a90529081018890526060810187905260808101829052909150600061032382610511565b905061032f8482610595565b506003805490600061034083610926565b9190505550806000547f1f0faf82fa8c7b10dd392417c6976d0ed764deb80fb07211d5928c2944ddb80d8560405161037a91815260200190565b60405180910390a3989197509095505050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103db5760405163e5336a6b60e01b815260040160405180910390fd5b60005482106103fd5760405163c490199960e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060018311156104855760008381526002602052604090206104829060017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061061a565b90505b6000546104938460016108e9565b036104b05760016000808282546104aa91906108e9565b90915550505b92915050565b60008181526002602052604081206104b09060017f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061061a565b60006104b08260000151836020015184604001518560600151866080015160405160200161058195949392919085516001600160a01b03168152602095860151868201528451604082015293909401516060840152608083019190915260a082015260c081019190915260e00190565b604051602081830303815290604052610778565b8154600090816105a482610810565b90508360005b828110156105e9576000818152600188016020908152604091829020548251918201529081018390526105df90606001610581565b91506001016105aa565b5060008281526001870160205260408120829055865490879061060b83610926565b90915550929695505050505050565b835460009080820361063c575050600082815260208490526040902054610770565b82810361065b5750506000828152600185016020526040902054610770565b60006106686001836108fc565b9050600061067582610810565b600081815260018a01602052604090205490915082821c825b8881101561076757600180831614801561072b57600082815260018d0160205260409020548490036106f75760405162461bcd60e51b81526020600482015260126024820152714d697374616b65732077657265206d61646560701b604482015260640161019f565b600082815260018d0160209081526040918290205482519182015290810185905261072490606001610581565b935061075a565b600082815260208c81526040918290205491516107579261058192889201918252602082015260400190565b93505b50600191821c910161068e565b50909450505050505b949350505050565b604080516001808252818301909252600091602082018180368337019050506002836040516107a7919061096f565b602060405180830381855afa1580156107c4573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906107e79190610982565b6040516020016107f892919061099b565b6040516020818303038152906040526104b0906109ba565b600080825b80600116600103610835578161082a81610926565b92505060011c610815565b5092915050565b6000806000838503608081121561085257600080fd5b604081121561086057600080fd5b506040516040810181811067ffffffffffffffff8211171561089257634e487b7160e01b600052604160045260246000fd5b6040908152853582526020808701359083015290969085013595506060909401359392505050565b6000602082840312156108cc57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104b0576104b06108d3565b818103818111156104b0576104b06108d3565b80820281158282048414176104b0576104b06108d3565b600060018201610938576109386108d3565b5060010190565b6000815160005b818110156109605760208185018101518683015201610946565b50600093019283525090919050565b600061097b828461093f565b9392505050565b60006020828403121561099457600080fd5b5051919050565b60006109a7828561093f565b60ff199390931683525050601f01919050565b805160208083015191908110156109db576000198160200360031b1b821691505b5091905056fea2646970667358221220f75205fbb21a667798c9bdcb51736a6032fabb7985f1f41cbfaf57b7fc611be764736f6c634300081b003360a060405234801561001057600080fd5b50604051610aac380380610aac83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610a0d61009f6000396000818160f601528181610135015281816101ee015261029e0152610a0d6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632249f6531461005c5780633d96c2c9146100895780637fb349671461009e57806384f15db2146100b15780639611c5c2146100f1575b600080fd5b61006f61006a3660046106e4565b610130565b604080519283526020830191909152015b60405180910390f35b61009c6100973660046106fd565b6101e3565b005b61009c6100ac366004610729565b61029c565b6100e16100bf3660046107cb565b6000918252602082815260408084209284526002909201905290205460ff1690565b6040519015158152602001610080565b6101187f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610080565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b591906107ed565b8311156101c757506000928392509050565b5050600090815260208190526040902080546001909101549091565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461022c5760405163164a486160e11b815260040160405180910390fd5b8161024a576040516339e16d6560e11b815260040160405180910390fd5b600083815260208181526040918290208481556001018390559051828152839185917fd3fab397eb3e47fb43090430543ca9623e09aeddf27bfde1bf7bdca871ee9ebc910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031e91906107ed565b841115849061034c57604051630e194a6d60e01b815260040161034391815260200190565b60405180910390fd5b5061035d6060860160408701610822565b6001600160a01b031633146103786060870160408801610822565b3390916103ab576040516357aad58160e01b81526001600160a01b03928316600482015291166024820152604401610343565b5050466060860135146103d1576040516315dfb1f160e21b815260040160405180910390fd5b60008481526020819052604090208054858161040357604051635228479160e11b815260040161034391815260200190565b5060008581526002830160205260409020548690869060ff161561044357604051633f5c70b560e21b815260048101929092526024820152604401610343565b5050600182015480848082111561047657604051631206f36760e21b815260048101929092526024820152604401610343565b506000905061049261048d368b90038b018b6108ac565b610507565b90506104a18686838a8761056a565b600087815260028501602052604090819020805460ff1916600117905551819084908a907f34bc3301c4660a5642d2246e175e7fea498c94258d39dcaa555a52464dbb083d906104f4908c815260200190565b60405180910390a4505050505050505050565b80516020808301516040808501518151855181860152948401519185019190915281516001600160a01b03166060850152910151608083015260a08201526000906105649060c0015b60405160208183030381529060405261064c565b92915050565b828260005b8681101561060457600180831614806105be576105b9848a8a858181106105985761059861093f565b90506020020135604051602001610550929190918252602082015260400190565b6105f5565b6105f58989848181106105d3576105d361093f565b9050602002013585604051602001610550929190918252602082015260400190565b935050600191821c910161056f565b508282868682841461063f57604051635f216bf160e01b81526004810194909452602484019290925260448301526064820152608401610343565b5050505050505050505050565b6040805160018082528183019092526000916020820181803683370190505060028360405161067b9190610985565b602060405180830381855afa158015610698573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906106bb91906107ed565b6040516020016106cc929190610991565b604051602081830303815290604052610564906109b0565b6000602082840312156106f657600080fd5b5035919050565b60008060006060848603121561071257600080fd5b505081359360208301359350604090920135919050565b600080600080600085870361010081121561074357600080fd5b60a081121561075157600080fd5b5085945060a0850135935060c0850135925060e085013567ffffffffffffffff81111561077d57600080fd5b8601601f8101881361078e57600080fd5b803567ffffffffffffffff8111156107a557600080fd5b8860208260051b84010111156107ba57600080fd5b959894975092955050506020019190565b600080604083850312156107de57600080fd5b50508035926020909101359150565b6000602082840312156107ff57600080fd5b5051919050565b80356001600160a01b038116811461081d57600080fd5b919050565b60006020828403121561083457600080fd5b61083d82610806565b9392505050565b6040516060810167ffffffffffffffff8111828210171561087557634e487b7160e01b600052604160045260246000fd5b60405290565b6040805190810167ffffffffffffffff8111828210171561087557634e487b7160e01b600052604160045260246000fd5b600081830360a0811280156108c057600080fd5b5060006108cb610844565b60408312156108d8578182fd5b6108e061087b565b853581526020808701359082015281526040603f1984011215610901578182fd5b61090961087b565b925061091760408601610806565b8352606085013560208085019190915281019290925250608090920135604083015250919050565b634e487b7160e01b600052603260045260246000fd5b6000815160005b81811015610976576020818501810151868301520161095c565b50600093019283525090919050565b600061083d8284610955565b600061099d8285610955565b60ff199390931683525050601f01919050565b805160208083015191908110156109d1576000198160200360031b1b821691505b5091905056fea26469706673582212204355d00d3f14ad9f0b3466839a525edc3e88f7b45b6f07cff8c626ecec45e8d064736f6c634300081b0033";
|
|
5
5
|
/**
|
|
6
6
|
* Rollup link references.
|
|
7
7
|
*/
|
|
@@ -9,11 +9,11 @@ export const RollupLinkReferences = {
|
|
|
9
9
|
"src/core/libraries/TxsDecoder.sol": {
|
|
10
10
|
"TxsDecoder": [
|
|
11
11
|
{
|
|
12
|
-
"start":
|
|
12
|
+
"start": 10024,
|
|
13
13
|
"length": 20
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
|
-
"start":
|
|
16
|
+
"start": 15446,
|
|
17
17
|
"length": 20
|
|
18
18
|
}
|
|
19
19
|
]
|
|
@@ -140,12 +140,12 @@ export const TestERC20Abi = [
|
|
|
140
140
|
"name": "mint",
|
|
141
141
|
"inputs": [
|
|
142
142
|
{
|
|
143
|
-
"name": "
|
|
143
|
+
"name": "_to",
|
|
144
144
|
"type": "address",
|
|
145
145
|
"internalType": "address"
|
|
146
146
|
},
|
|
147
147
|
{
|
|
148
|
-
"name": "
|
|
148
|
+
"name": "_amount",
|
|
149
149
|
"type": "uint256",
|
|
150
150
|
"internalType": "uint256"
|
|
151
151
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TestERC20 bytecode.
|
|
3
3
|
*/
|
|
4
|
-
export const TestERC20Bytecode = "
|
|
4
|
+
export const TestERC20Bytecode = "0x608060405234801561001057600080fd5b5060405180604001604052806006815260200165141bdc9d185b60d21b815250604051806040016040528060068152602001651413d495105360d21b815250816003908161005e9190610112565b50600461006b8282610112565b5050506101d0565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009d57607f821691505b6020821081036100bd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010d57806000526020600020601f840160051c810160208510156100ea5750805b601f840160051c820191505b8181101561010a57600081556001016100f6565b50505b505050565b81516001600160401b0381111561012b5761012b610073565b61013f816101398454610089565b846100c3565b6020601f821160018114610173576000831561015b5750848201515b600019600385901b1c1916600184901b17845561010a565b600084815260208120601f198516915b828110156101a35787850151825560209485019460019092019101610183565b50848210156101c15786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610827806101df6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f191461014157806370a082311461015657806395d89b411461017f578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610670565b60405180910390f35b6100ea6100e53660046106da565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610704565b61026c565b604051601281526020016100ce565b6100ea61013c3660046106da565b610290565b61015461014f3660046106da565b6102b2565b005b6100fe610164366004610741565b6001600160a01b031660009081526020819052604090205490565b6100c16102c0565b6100ea6101953660046106da565b6102cf565b6100ea6101a83660046106da565b61032b565b6100fe6101bb366004610763565b610339565b6060600380546101cf90610796565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb90610796565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b600033610260818585610364565b60019150505b92915050565b60003361027a858285610376565b6102858585856103dc565b506001949350505050565b6000336102608185856102a38383610339565b6102ad91906107d0565b610364565b6102bc828261043b565b5050565b6060600480546101cf90610796565b600033816102dd8286610339565b90508381101561031e57604051632983c0c360e21b81526001600160a01b038616600482015260248101829052604481018590526064015b60405180910390fd5b6102858286868403610364565b6000336102608185856103dc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6103718383836001610471565b505050565b60006103828484610339565b905060001981146103d657818110156103c757604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610315565b6103d684848484036000610471565b50505050565b6001600160a01b03831661040657604051634b637e8f60e11b815260006004820152602401610315565b6001600160a01b0382166104305760405163ec442f0560e01b815260006004820152602401610315565b610371838383610546565b6001600160a01b0382166104655760405163ec442f0560e01b815260006004820152602401610315565b6102bc60008383610546565b6001600160a01b03841661049b5760405163e602df0560e01b815260006004820152602401610315565b6001600160a01b0383166104c557604051634a1406b160e11b815260006004820152602401610315565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103d657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161053891815260200190565b60405180910390a350505050565b6001600160a01b03831661057157806002600082825461056691906107d0565b909155506105e39050565b6001600160a01b038316600090815260208190526040902054818110156105c45760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610315565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166105ff5760028054829003905561061e565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161066391815260200190565b60405180910390a3505050565b602081526000825180602084015260005b8181101561069e5760208186018101516040868401015201610681565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146106d557600080fd5b919050565b600080604083850312156106ed57600080fd5b6106f6836106be565b946020939093013593505050565b60008060006060848603121561071957600080fd5b610722846106be565b9250610730602085016106be565b929592945050506040919091013590565b60006020828403121561075357600080fd5b61075c826106be565b9392505050565b6000806040838503121561077657600080fd5b61077f836106be565b915061078d602084016106be565b90509250929050565b600181811c908216806107aa57607f821691505b6020821081036107ca57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561026657634e487b7160e01b600052601160045260246000fdfea2646970667358221220470161783dfea08fa6602f179eaff919e7ecb7cf266a97c137757ea7f562d3c764736f6c634300081b0033";
|
|
5
5
|
/**
|
|
6
6
|
* TestERC20 link references.
|
|
7
7
|
*/
|