@gooddollar/goodcollective-contracts 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/DirectPayments/DirectPaymentsFactory.sol +12 -7
- package/contracts/DirectPayments/DirectPaymentsLibrary.sol +54 -0
- package/contracts/DirectPayments/DirectPaymentsPool.sol +13 -38
- package/contracts/GoodCollective/GoodCollectiveSuperApp.sol +65 -13
- package/contracts/GoodCollective/IGoodCollectiveSuperApp.sol +6 -0
- package/contracts/Interfaces.sol +25 -0
- package/contracts/UBI/UBIPool.sol +76 -75
- package/contracts/UBI/UBIPoolFactory.sol +15 -10
- package/contracts/utils/HelperLibrary.sol +56 -23
- package/package.json +1 -1
- package/releases/deployment.json +4836 -3746
- package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +16 -4
- package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +138 -9
- package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.ts +101 -6
- package/typechain-types/contracts/{DirectPayments/DirectPaymentsFactory.sol/IRegistry.ts → GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.ts} +18 -27
- package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/index.ts +1 -0
- package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IIdentityV2.ts +1 -1
- package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IMembersValidator.ts +1 -1
- package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/index.ts +0 -1
- package/typechain-types/contracts/UBI/{UBIPool.sol/UBIPool.ts → UBIPool.ts} +239 -47
- package/typechain-types/contracts/UBI/UBIPoolFactory.ts +58 -34
- package/typechain-types/contracts/UBI/index.ts +1 -2
- package/typechain-types/contracts/index.ts +2 -0
- package/typechain-types/contracts/utils/HelperLibrary.ts +46 -4
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +11 -1
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +72 -1
- package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts +48 -0
- package/typechain-types/factories/contracts/{DirectPayments/DirectPaymentsFactory.sol/IRegistry__factory.ts → GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp__factory.ts} +19 -23
- package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/index.ts +1 -0
- package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IIdentityV2__factory.ts +1 -1
- package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IMembersValidator__factory.ts +1 -1
- package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/index.ts +0 -1
- package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +51 -7
- package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +2052 -0
- package/typechain-types/factories/contracts/UBI/index.ts +1 -1
- package/typechain-types/factories/contracts/index.ts +1 -0
- package/typechain-types/factories/contracts/test/HelperLibraryTest__factory.ts +1 -1
- package/typechain-types/factories/contracts/utils/HelperLibrary__factory.ts +31 -1
- package/typechain-types/hardhat.d.ts +18 -9
- package/typechain-types/index.ts +4 -2
- package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.ts +0 -1327
- package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.sol/index.ts +0 -5
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory__factory.ts +0 -1004
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory.sol/index.ts +0 -5
- package/typechain-types/factories/contracts/UBI/UBIPool.sol/UBIPool__factory.ts +0 -1916
|
@@ -1050,6 +1050,24 @@ const _abi = [
|
|
|
1050
1050
|
stateMutability: "view",
|
|
1051
1051
|
type: "function",
|
|
1052
1052
|
},
|
|
1053
|
+
{
|
|
1054
|
+
inputs: [],
|
|
1055
|
+
name: "getManagerFee",
|
|
1056
|
+
outputs: [
|
|
1057
|
+
{
|
|
1058
|
+
internalType: "address",
|
|
1059
|
+
name: "feeRecipient",
|
|
1060
|
+
type: "address",
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
internalType: "uint32",
|
|
1064
|
+
name: "feeBps",
|
|
1065
|
+
type: "uint32",
|
|
1066
|
+
},
|
|
1067
|
+
],
|
|
1068
|
+
stateMutability: "view",
|
|
1069
|
+
type: "function",
|
|
1070
|
+
},
|
|
1053
1071
|
{
|
|
1054
1072
|
inputs: [
|
|
1055
1073
|
{
|
|
@@ -1083,6 +1101,16 @@ const _abi = [
|
|
|
1083
1101
|
name: "totalFees",
|
|
1084
1102
|
type: "uint256",
|
|
1085
1103
|
},
|
|
1104
|
+
{
|
|
1105
|
+
internalType: "uint256",
|
|
1106
|
+
name: "protocolFees",
|
|
1107
|
+
type: "uint256",
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
internalType: "uint256",
|
|
1111
|
+
name: "managerFees",
|
|
1112
|
+
type: "uint256",
|
|
1113
|
+
},
|
|
1086
1114
|
{
|
|
1087
1115
|
internalType: "int96",
|
|
1088
1116
|
name: "incomeFlowRate",
|
|
@@ -1093,6 +1121,11 @@ const _abi = [
|
|
|
1093
1121
|
name: "feeRate",
|
|
1094
1122
|
type: "int96",
|
|
1095
1123
|
},
|
|
1124
|
+
{
|
|
1125
|
+
internalType: "int96",
|
|
1126
|
+
name: "managerFeeRate",
|
|
1127
|
+
type: "int96",
|
|
1128
|
+
},
|
|
1096
1129
|
],
|
|
1097
1130
|
stateMutability: "view",
|
|
1098
1131
|
type: "function",
|
|
@@ -1349,6 +1382,11 @@ const _abi = [
|
|
|
1349
1382
|
name: "_limits",
|
|
1350
1383
|
type: "tuple",
|
|
1351
1384
|
},
|
|
1385
|
+
{
|
|
1386
|
+
internalType: "uint32",
|
|
1387
|
+
name: "_managerFeeBps",
|
|
1388
|
+
type: "uint32",
|
|
1389
|
+
},
|
|
1352
1390
|
{
|
|
1353
1391
|
internalType: "contract DirectPaymentsFactory",
|
|
1354
1392
|
name: "_registry",
|
|
@@ -1402,6 +1440,19 @@ const _abi = [
|
|
|
1402
1440
|
stateMutability: "view",
|
|
1403
1441
|
type: "function",
|
|
1404
1442
|
},
|
|
1443
|
+
{
|
|
1444
|
+
inputs: [],
|
|
1445
|
+
name: "managerFeeBps",
|
|
1446
|
+
outputs: [
|
|
1447
|
+
{
|
|
1448
|
+
internalType: "uint32",
|
|
1449
|
+
name: "",
|
|
1450
|
+
type: "uint32",
|
|
1451
|
+
},
|
|
1452
|
+
],
|
|
1453
|
+
stateMutability: "view",
|
|
1454
|
+
type: "function",
|
|
1455
|
+
},
|
|
1405
1456
|
{
|
|
1406
1457
|
inputs: [
|
|
1407
1458
|
{
|
|
@@ -1735,6 +1786,11 @@ const _abi = [
|
|
|
1735
1786
|
name: "_settings",
|
|
1736
1787
|
type: "tuple",
|
|
1737
1788
|
},
|
|
1789
|
+
{
|
|
1790
|
+
internalType: "uint32",
|
|
1791
|
+
name: "_managerFeeBps",
|
|
1792
|
+
type: "uint32",
|
|
1793
|
+
},
|
|
1738
1794
|
],
|
|
1739
1795
|
name: "setPoolSettings",
|
|
1740
1796
|
outputs: [],
|
|
@@ -1808,6 +1864,21 @@ const _abi = [
|
|
|
1808
1864
|
name: "lastIncomeRate",
|
|
1809
1865
|
type: "int96",
|
|
1810
1866
|
},
|
|
1867
|
+
{
|
|
1868
|
+
internalType: "address",
|
|
1869
|
+
name: "lastManagerFeeRecipient",
|
|
1870
|
+
type: "address",
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
internalType: "uint256",
|
|
1874
|
+
name: "protocolFees",
|
|
1875
|
+
type: "uint256",
|
|
1876
|
+
},
|
|
1877
|
+
{
|
|
1878
|
+
internalType: "uint256",
|
|
1879
|
+
name: "managerFees",
|
|
1880
|
+
type: "uint256",
|
|
1881
|
+
},
|
|
1811
1882
|
],
|
|
1812
1883
|
stateMutability: "view",
|
|
1813
1884
|
type: "function",
|
|
@@ -2018,7 +2089,7 @@ const _abi = [
|
|
|
2018
2089
|
] as const;
|
|
2019
2090
|
|
|
2020
2091
|
const _bytecode =
|
|
2021
|
-
"0x60e06040523060c0523480156200001557600080fd5b5060405162005f4938038062005f49833981016040819052620000389162000098565b6001600160a01b038216608081905282908290620000695760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b031660a05250620000d7915050565b6001600160a01b03811681146200009557600080fd5b50565b60008060408385031215620000ac57600080fd5b8251620000b9816200007f565b6020840151909250620000cc816200007f565b809150509250929050565b60805160a05160c051615dd262000177600039600081816111320152818161117201528181611272015281816112b2015261132a01526000818161087801528181610ee90152611e9d015260008181610ae601528181610e6b01528181610ff4015281816113d8015281816114c5015281816116690152818161185d01528181611db3015281816121de01528181612d230152612d880152615dd26000f3fe6080604052600436106102395760003560e01c80630150aefb1461023e57806301d06a8c1461028457806301ffc9a7146102a65780630c710776146102c6578063150b7a02146102f25780631a2a84b31461032b5780631bb15f3d146103595780631db128c714610405578063230dbd2914610432578063248a9ca3146104525780632b4116f7146104725780632f2ff15d1461049f57806330d9c915146104bf57806336568abe146104df5780633659cfe6146104ff578063379607f51461051f57806347ccca021461053f5780634f1ef2861461056057806352d1902d1461057357806353c11f99146105885780635ab1bd53146105a85780635f9e7d77146105bd578063647c75e2146105dd57806372ca8a3e1461064e57806376ba085b1461066e5780637b1039991461068e578063860aefcf146106af578063884d1f40146106ec57806391d148541461070c5780639f351ce41461072c5780639f8fddd21461074c578063a10f469e1461076c578063a217fddf1461078e578063a4c0ed36146107a3578063ae827200146107c3578063bcb4546f146107d6578063bd499dee146107f8578063c2e11e3f14610818578063c31c9c0714610866578063d3112b2e1461089a578063d5391393146108cf578063d547741f146108f1578063d80528ae14610911578063d86ed3e51461097d578063dc61d5c21461099d578063def482a4146109db578063e06174e4146109fb578063ec87621c14610a92578063f3d5e34814610ab4578063f437bc5914610ad4575b600080fd5b34801561024a57600080fd5b5061026f610259366004614434565b61013e6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561029057600080fd5b506102a461029f366004614766565b610b08565b005b3480156102b257600080fd5b5061026f6102c136600461479a565b610cb7565b3480156102d257600080fd5b506102df6459df64940081565b604051600b9190910b815260200161027b565b3480156102fe57600080fd5b5061031261030d36600461480c565b610cee565b6040516001600160e01b0319909116815260200161027b565b34801561033757600080fd5b5061034b61034636600461487e565b610da9565b60405190815260200161027b565b34801561036557600080fd5b506103c161037436600461487e565b61014060205260009081526040902080546001909101546001600160801b0380831692600160801b90819004821692918216916001600160401b03918104821691600160c01b9091041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a00161027b565b34801561041157600080fd5b506104256104203660046149ab565b610e49565b60405161027b9190614a72565b34801561043e57600080fd5b5061042561044d366004614a85565b610f6a565b34801561045e57600080fd5b5061034b61046d366004614434565b610fb1565b34801561047e57600080fd5b50609754610492906001600160a01b031681565b60405161027b9190614b5c565b3480156104ab57600080fd5b506102a46104ba366004614b70565b610fc6565b3480156104cb57600080fd5b506104256104da366004614ba0565b610fe7565b3480156104eb57600080fd5b506102a46104fa366004614b70565b6110aa565b34801561050b57600080fd5b506102a461051a36600461487e565b611128565b34801561052b57600080fd5b506102a461053a366004614434565b6111f0565b34801561054b57600080fd5b5061013d54610492906001600160a01b031681565b6102a461056e366004614c3e565b611268565b34801561057f57600080fd5b5061034b61131d565b34801561059457600080fd5b506104256105a3366004614a85565b6113cb565b3480156105b457600080fd5b506104926114a8565b3480156105c957600080fd5b506104256105d8366004614ba0565b6114b8565b3480156105e957600080fd5b506106276105f836600461487e565b60986020526000908152604090208054600190910154600b81900b90600160601b90046001600160801b031683565b60408051938452600b9290920b60208401526001600160801b03169082015260600161027b565b34801561065a57600080fd5b5061026f61066936600461487e565b61159d565b34801561067a57600080fd5b506102a4610689366004614e8f565b6115b1565b34801561069a57600080fd5b5061014354610492906001600160a01b031681565b3480156106bb57600080fd5b5061013a5461013b5461013c546106d192919083565b6040805193845260208401929092529082015260600161027b565b3480156106f857600080fd5b50610425610707366004614ba0565b61165c565b34801561071857600080fd5b5061026f610727366004614b70565b611759565b34801561073857600080fd5b506102a4610747366004614ef2565b611784565b34801561075857600080fd5b50610425610767366004614f2e565b61183b565b34801561077857600080fd5b5061034b600080516020615d7d83398151915281565b34801561079a57600080fd5b5061034b600081565b3480156107af57600080fd5b5061026f6107be366004614f7c565b6118f5565b6102a46107d1366004614fd7565b61196e565b3480156107e257600080fd5b5061034b600080516020615cb683398151915281565b34801561080457600080fd5b506102a4610813366004615066565b6119f4565b34801561082457600080fd5b5061014154610142546103c1916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b34801561087257600080fd5b506104927f000000000000000000000000000000000000000000000000000000000000000081565b3480156108a657600080fd5b50609954609a546108c1916001600160a01b03908116911682565b60405161027b9291906150d9565b3480156108db57600080fd5b5061034b600080516020615cd683398151915281565b3480156108fd57600080fd5b506102a461090c366004614b70565b611c7f565b34801561091d57600080fd5b50609b54609c54609d54609e54610949939291906001600160a01b03811690600160a01b9004600b0b85565b604080519586526020860194909452928401919091526001600160a01b03166060830152600b0b608082015260a00161027b565b34801561098957600080fd5b50610425610998366004614a85565b611c9b565b3480156109a957600080fd5b506109b2611cc9565b604080519485526020850193909352600b91820b928401929092520b606082015260800161027b565b3480156109e757600080fd5b506104256109f63660046150f3565b611d91565b348015610a0757600080fd5b506101335461013654610137546101385461013954610a4a9463ffffffff16936001600160a01b039081169381169281169190811690600160a01b900460ff1686565b6040805163ffffffff90971687526001600160a01b039586166020880152938516938601939093529083166060850152919091166080830152151560a082015260c00161027b565b348015610a9e57600080fd5b5061034b600080516020615d3683398151915281565b348015610ac057600080fd5b506102a4610acf366004615151565b611fe4565b348015610ae057600080fd5b506104927f000000000000000000000000000000000000000000000000000000000000000081565b600080516020615d36833981519152610b2081612057565b61013354825163ffffffff908116911614610b4e57604051630f91888160e01b815260040160405180910390fd5b60608201516001600160a01b0316610b795760405163890bc98f60e01b815260040160405180910390fd5b61013654610b92906000906001600160a01b0316612061565b8151610133805463ffffffff191663ffffffff9092169190911781556020808401518051859392610bc992610134929101906142d0565b5060408201518051610be5916002840191602090910190614379565b506060828101516003830180546001600160a01b039283166001600160a01b031991821617909155608085015160048501805491841691831691909117905560a08501516005850180549184169190921617905560c08401516006909301805460e0909501511515600160a01b026001600160a81b03199095169390911692909217929092179055820151610c7c906000906120e4565b7f3eed38e4b04ae182994f6ef05c58a3987f571a66d6860d9046621cc204f407a082604051610cab91906151e5565b60405180910390a15050565b60006001600160e01b03198216637965db0b60e01b1480610ce857506301ffc9a760e01b6001600160e01b03198316145b92915050565b61013d546040516302b5313d60e21b81526004810185905260009182916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d65919081019061536b565b61013354815191925063ffffffff918216911614610d965760405163f26722ad60e01b815260040160405180910390fd5b50630a85bd0160e11b9695505050505050565b6001600160a01b0381166000908152609860209081526040808320815160608101835281548152600190910154600b81900b938201849052600160601b90046001600160801b031691810191909152908203610e06575192915050565b6040810151610e1e906001600160801b03164261553e565b81602001516001600160601b0316610e369190615551565b8151610e429190615568565b9392505050565b606082336001600160a01b03821614801590610e8e5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15610eb7573360405163087231bf60e31b8152600401610eae9190614b5c565b60405180910390fd5b6097546040516358c0dacb60e01b815273__$0d78a42341742155da77b97d7f993534c7$__916358c0dacb91610f1f917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b0316908a906004016155c0565b602060405180830381865af4158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6091906155fb565b5091949350505050565b60606000610f7a87890189615614565b509050600080610f8c87890189615651565b91509150610f9e8d8484848a8a6120ee565b93505050505b9998505050505050505050565b60009081526065602052604090206001015490565b610fcf82610fb1565b610fd881612057565b610fe28383612135565b505050565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461103257604051632f2d36a760e01b815260040160405180910390fd5b61103b876121b8565b61105e5750604080518082019091526002815261060f60f31b602082015261109f565b6110678861159d565b61108457604051631ea25bab60e31b815260040160405180910390fd5b50604080518082019091526002815261060f60f31b60208201525b979650505050505050565b6001600160a01b038116331461111a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610eae565b6111248282612061565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111705760405162461bcd60e51b8152600401610eae9061567d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111a261226c565b6001600160a01b0316146111c85760405162461bcd60e51b8152600401610eae906156b7565b6111d181612288565b604080516000808252602082019092526111ed91839190612293565b50565b61013d546040516302b5313d60e21b8152600481018390526111ed9183916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015611240573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610747919081019061536b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112b05760405162461bcd60e51b8152600401610eae9061567d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112e261226c565b6001600160a01b0316146113085760405162461bcd60e51b8152600401610eae906156b7565b61131182612288565b61112482826001612293565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113b85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610eae565b50600080516020615d1683398151915290565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614158061140b5750611409896121b8565b155b8061141c575061141a8a61159d565b155b156114605782828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610fa492505050565b60008061146f888a018a615614565b9092509050600080611483888a018a6156f1565b915091506114968e858584868c8c6123fe565b9e9d5050505050505050505050505050565b610143546001600160a01b031690565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415806114f857506114f6876121b8565b155b8061150957506115078861159d565b155b1561152d5750604080518082019091526002815261060f60f31b602082015261109f565b60008061153c86880188615614565b90925090506000806115586001600160a01b038d168585612451565b505091509150818160405160200161157d929190918252600b0b602082015260400190565b604051602081830303815290604052945050505050979650505050505050565b6097546001600160a01b0390811691161490565b600080516020615cd68339815191526115c981612057565b61013d546040516321aa1d2160e11b81526000916001600160a01b0316906343543a42906116009088908890600190600401615847565b6020604051808303816000875af115801561161f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164391906155fb565b90508215611655576116558185611784565b5050505050565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116a757604051632f2d36a760e01b815260040160405180910390fd5b6116b0876121b8565b6116d35750604080518082019091526002815261060f60f31b602082015261109f565b6116dc8861159d565b6116f957604051631ea25bab60e31b815260040160405180910390fd5b600061170785870187615614565b5090506000806117216001600160a01b038c168430612451565b505060408051600b9290920b60208301528181019290925281518082038301815260609091019091529b9a5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61013d5460405163049b73f560e31b81526001600160a01b03909116906324db9fa8906117b7908590859060040161588a565b600060405180830381865afa1580156117d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117fc919081019061536b565b50600082815261013e602052604090205460ff1615611831576040516330e51df560e11b815260048101839052602401610eae565b61112482826124e9565b606083336001600160a01b038216148015906118805750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156118a0573360405163087231bf60e31b8152600401610eae9190614b5c565b836000036118c157604051630f6fa54560e41b815260040160405180910390fd5b6097546118d9906001600160a01b0316863087612830565b610f60858560006040518060200160405280600081525061293a565b6097546000906001600160a01b0316331461192357604051630ce706f760e41b815260040160405180910390fd5b8360000361194457604051630f6fa54560e41b815260040160405180910390fd5b611960858560006040518060200160405280600081525061293a565b50600190505b949350505050565b6101435460408051638abf607760e01b815290516000926001600160a01b031691638abf60779160048083019260209291908290030181865afa1580156119b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119dd91906158a3565b90506119e881612288565b61112481836000612293565b600054610100900460ff1615808015611a145750600054600160ff909116105b80611a355750611a2330612cb4565b158015611a35575060005460ff166001145b611a985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610eae565b6000805460ff191660011790558015611abb576000805461ff0019166101001790555b61014380546001600160a01b0319166001600160a01b0384161790558351610133805463ffffffff191663ffffffff9092169190911781556020808601518051879392611b0e92610134929101906142d0565b5060408201518051611b2a916002840191602090910190614379565b5060608201516003820180546001600160a01b039283166001600160a01b031991821617909155608084015160048401805491841691831691909117905560a084015160058401805491841691831691909117905560c08401516006909301805460e0909501511515600160a01b026001600160a81b03199095169383169390931793909317909155845161013a55602085015161013b55604085015161013c5561013d805491881691909216179055611be56000336120e4565b611c01600080516020615d3683398151915285606001516120e4565b611c1d600080516020615cd683398151915285606001516120e4565b61013954611c33906001600160a01b0316612cc3565b8015611655576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b611c8882610fb1565b611c9181612057565b610fe28383612061565b60606000611cab87890189615614565b509050611cba8b828686612e65565b9b9a5050505050505050505050565b60975460405163b2f918a160e01b8152609b546004820152609c546024820152609d546044820152609e546001600160a01b03818116606484015260a09190911d600b0b608483015290911660a482015260009081908190819073__$0d78a42341742155da77b97d7f993534c7$__9063b2f918a19060c401608060405180830381865af4158015611d5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8391906158c0565b935093509350935090919293565b606083336001600160a01b03821614801590611dd65750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15611df6573360405163087231bf60e31b8152600401610eae9190614b5c565b6097546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611e27903090600401614b5c565b602060405180830381865afa158015611e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6891906155fb565b6097546040516321437a5360e01b815291925073__$0d78a42341742155da77b97d7f993534c7$__916321437a5391611ed7917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b03909116908c903090600401615900565b602060405180830381865af4158015611ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1891906155fb565b506097546040516370a0823160e01b815260009183916001600160a01b03909116906370a0823190611f4e903090600401614b5c565b602060405180830381865afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f91906155fb565b611f99919061553e565b905080600003611fbc57604051630f6fa54560e41b815260040160405180910390fd5b611fd8878260006040518060200160405280600081525061293a565b50939695505050505050565b600080516020615d36833981519152611ffc81612057565b815161013a8190556020808401805161013b556040808601805161013c55815194855291519284019290925251908201527f220b9fb6f33ff05be83cf4d215109467b91026cf1f239e2acb4b7095cf09d5c590606001610cab565b6111ed8133612eb3565b600080516020615d7d83398151915282036120da576101435460405163058e524d60e11b81526001600160a01b0390911690630b1ca49a906120a7908490600401614b5c565b600060405180830381600087803b1580156120c157600080fd5b505af11580156120d5573d6000803e3d6000fd5b505050505b6111248282612f0c565b6111248282612135565b606061109f8686600b0b8686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061293a92505050565b600080516020615d7d83398151915282036121ae576101435460405163329b55b760e21b81526001600160a01b039091169063ca6d56dc9061217b908490600401614b5c565b600060405180830381600087803b15801561219557600080fd5b505af11580156121a9573d6000803e3d6000fd5b505050505b6111248282612f73565b604051635b69006f60e11b8152600080516020615cb683398151915260048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6d200de90602401602060405180830381865afa15801561222d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225191906158a3565b6001600160a01b0316826001600160a01b0316149050919050565b600080516020615d16833981519152546001600160a01b031690565b600061112481612057565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156122c657610fe283612ff9565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612320575060408051601f3d908101601f1916820190925261231d918101906155fb565b60015b6123835760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610eae565b600080516020615d1683398151915281146123f25760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610eae565b50610fe2838383613093565b60606124458786600b0b8686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061293a92505050565b98975050505050505050565b6000806000806000612462886130be565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e88890612496908b908b908b90600401615941565b608060405180830381865afa1580156124b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d79190615964565b929b919a509850909650945050505050565b600082815261013e6020526040808220805460ff191660011790556101395490516370a0823160e01b815282916001600160a01b0316906370a0823190612534903090600401614b5c565b602060405180830381865afa158015612551573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257591906155fb565b61013954909150600160a01b900460ff1660005b8460600151518110156127ee576000856060015182815181106125ae576125ae6159a2565b6020026020010151604001518380156125f157506000876060015184815181106125da576125da6159a2565b602002602001015160a001516001600160801b0316115b6126245761261f8760600151848151811061260e5761260e6159a2565b60200260200101516000015161322d565b612647565b8660600151838151811061263a5761263a6159a2565b602002602001015160a001515b6001600160801b031661265a9190615551565b905080156127db5761266c8186615568565b94508385111561268f5760405163701b93d160e11b815260040160405180910390fd5b612699858561553e565b93506126c6866060015183815181106126b4576126b46159a2565b602002602001015160800151826132e4565b867f66417923523a2d06a43299cb4e498d17eef686f73ae2484f05c36479f5ae5a6d876060015184815181106126fe576126fe6159a2565b60200260200101516000015188606001518581518110612720576127206159a2565b60200260200101516020015189606001518681518110612742576127426159a2565b6020026020010151604001518a606001518781518110612764576127646159a2565b6020026020010151606001518b606001518881518110612786576127866159a2565b6020026020010151608001518c6060015189815181106127a8576127a86159a2565b60200260200101516080015151886127c091906159b8565b6040516127d2969594939291906159da565b60405180910390a25b50806127e681615a37565b915050612589565b50847fdc780326abc7aa2bf7cfbd02de3cdd5c8020124228dbcbc133d6bcbd74a784cc8460405161282191815260200190565b60405180910390a25050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916128949190615a50565b6000604051808303816000865af19150503d80600081146128d1576040519150601f19603f3d011682016040523d82523d6000602084013e6128d6565b606091505b50915091508180156129005750805115806129005750808060200190518101906129009190615a6c565b6129325760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b6044820152606401610eae565b505050505050565b8051609754829115159073__$0d78a42341742155da77b97d7f993534c7$__9063891d61cc90609b906001600160a01b03166129746114a8565b8561297f5789612982565b60005b6040516001600160e01b031960e087901b16815260048101949094526001600160a01b03928316602485015291166044830152606482015260840160006040518083038186803b1580156129d557600080fd5b505af41580156129e9573d6000803e3d6000fd5b505060975460009250612a0791506001600160a01b031688306133f4565b6001600160a01b0388166000908152609860205260409020549091508215612bf557600082600b0b138015612a4457506459df649400600b83900b125b15612a6757604051624963df60e91b8152600b83900b6004820152602401610eae565b6001600160a01b038816600090815260986020526040902060010180546001600160e01b031916600160601b426001600160801b038116919091026001600160601b031916919091176001600160601b03851617909155612ac990879061553e565b612adc906001600160601b038916615551565b6001600160a01b03891660009081526098602052604081208054909190612b04908490615568565b909155505060975473__$0d78a42341742155da77b97d7f993534c7$__90631f8f04bf90609990609b906001600160a01b0316612b3f6114a8565b612b498d89615a89565b8b6040518763ffffffff1660e01b8152600401612b6b96959493929190615ab6565b600060405180830381865af4158015612b88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bb09190810190615af9565b609754909450612bc9906001600160a01b031630613482565b609e80546001600160601b0392909216600160a01b026001600160a01b03909216919091179055612c2c565b6001600160a01b03881660009081526098602052604081208054899290612c1d908490615568565b90915550612c2c905087613501565b6001600160a01b0388166000818152609860205260409020547f6342e11b65ccb38a3bb259be9cda846c74ad52b36b62a2ee4799dc3db63a04a390839086612c75576000612c77565b8a5b604080519384526020840192909252600b90810b8383015286900b60608301528615156080830152519081900360a00190a2505050949350505050565b6001600160a01b03163b151590565b6001600160a01b038116612cea5760405163538ba4f960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b03838116919091179091556040516315a722b960e31b8152600160048201819052917f0000000000000000000000000000000000000000000000000000000000000000169063ad3915c890602401600060405180830381600087803b158015612d6757600080fd5b505af1158015612d7b573d6000803e3d6000fd5b50506040805180820182527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168082529151635b69006f60e11b8152600080516020615cb6833981519152600482015290935060208401925063b6d200de90602401602060405180830381865afa158015612e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2691906158a3565b6001600160a01b039081169091528151609980546001600160a01b0319908116928416929092179055602090920151609a805490931691161790555050565b6060612eaa8460008086868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061293a92505050565b95945050505050565b612ebd8282611759565b61112457612eca8161363d565b612ed583602061364f565b604051602001612ee6929190615b41565b60408051601f198184030181529082905262461bcd60e51b8252610eae91600401614a72565b612f168282611759565b156111245760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b612f7d8282611759565b6111245760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612fb53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61300281612cb4565b6130645760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610eae565b600080516020615d1683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61309c836137ea565b6000825111806130a95750805b15610fe2576130b8838361382a565b50505050565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b0381166131fc576001600160a01b03821661318357826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561315c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318091906158a3565b91505b604051635b69006f60e11b8152600080516020615cb683398151915260048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa1580156131d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f991906158a3565b90505b6001600160a01b03821661321257613212615bb0565b6001600160a01b03811661322857613228615bb0565b915091565b6000805b610134548110156132db57610134805482908110613251576132516159a2565b90600052602060002090601091828204019190066002029054906101000a900461ffff1661ffff168361ffff16036132c957610135805482908110613298576132986159a2565b90600052602060002090600291828204019190066010029054906101000a90046001600160801b0316915050919050565b806132d381615a37565b915050613231565b50600092915050565b60008251826001600160801b03166132fc91906159b8565b90506000805b84518110156133ea576000613330868381518110613322576133226159a2565b602002602001015185613913565b905080156133865761337586838151811061334d5761334d6159a2565b6020908102919091010151610139546001600160a01b0316906001600160801b038716613c06565b61337f8484615bc6565b92506133d7565b7f617c38e0fa04973365b7abb47a8f354a5b3fbe3ea04b8a0649580d208a88cc608683815181106133b9576133b96159a2565b60200260200101516040516133ce9190614b5c565b60405180910390a15b50806133e281615a37565b915050613302565b506130b881613c5c565b600080613400856130be565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e8889061343490889088908890600401615941565b608060405180830381865afa158015613451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134759190615964565b5090979650505050505050565b60008061348e846130be565b60405163e8e7e2d160e01b81529092506001600160a01b038316915063e8e7e2d1906134c090879087906004016150d9565b602060405180830381865afa1580156134dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119669190615bed565b600061350b6114a8565b6001600160a01b03160361351c5750565b60006135266114a8565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa158015613563573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358791906158a3565b90506001600160a01b03811661359b575050565b60006127106135a86114a8565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190615c0a565b6136199063ffffffff1685615551565b61362391906159b8565b609754909150610fe2906001600160a01b03168383613e32565b6060610ce86001600160a01b03831660145b6060600061365e836002615551565b613669906002615568565b6001600160401b038111156136805761368061444d565b6040519080825280601f01601f1916602001820160405280156136aa576020820181803683370190505b509050600360fc1b816000815181106136c5576136c56159a2565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106136f4576136f46159a2565b60200101906001600160f81b031916908160001a9053506000613718846002615551565b613723906001615568565b90505b600181111561379b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613757576137576159a2565b1a60f81b82828151811061376d5761376d6159a2565b60200101906001600160f81b031916908160001a90535060049490941c9361379481615c27565b9050613726565b508315610e425760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610eae565b6137f381612ff9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061383583612cb4565b6138905760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610eae565b600080846001600160a01b0316846040516138ab9190615a50565b600060405180830381855af49150503d80600081146138e6576040519150601f19603f3d011682016040523d82523d6000602084013e6138eb565b606091505b5091509150612eaa8282604051806060016040528060278152602001615d5660279139613f35565b600061392e8360405180602001604052806000815250613f4e565b151560000361393f57506000610ce8565b60006139496140d4565b6001600160a01b03851660009081526101406020526040902060010154909150429061398890600160801b90046001600160401b031662015180615c3e565b6001600160401b031610156139ce576001600160a01b03841660009081526101406020526040902080546001600160801b0319166001600160801b038516179055613a25565b6001600160a01b0384166000908152610140602052604081208054859290613a009084906001600160801b0316615bc6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038416600090815261014060205260409020600101546001600160401b03808316600160c01b909204161015613a92576001600160a01b03841660009081526101406020526040902080546001600160801b03808616600160801b029116179055613af3565b6001600160a01b0384166000908152610140602052604090208054849190601090613ace908490600160801b90046001600160801b0316615bc6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b0384166000908152610140602052604081206001018054859290613b289084906001600160801b0316615bc6565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b0386166000908152610140602052604090206001810180548316600160801b426001600160401b03908116919091026001600160c01b031691909117600160c01b9187169190910217905561013c54905490911611905080613bdc575061013b546001600160a01b03851660009081526101406020526040902054600160801b90046001600160801b0316115b15613bfc5783604051636e661e3360e11b8152600401610eae9190614b5c565b5060019392505050565b610fe28363a9059cbb60e01b8484604051602401613c25929190615c5e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526140e8565b6000613c666140d4565b610142549091504290613c8c90600160801b90046001600160401b031662015180615c3e565b6001600160401b03161015613cbc5761014180546001600160801b0319166001600160801b038416179055613d00565b6101418054839190600090613cdb9084906001600160801b0316615bc6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b610142546001600160401b03808316600160c01b909204161015613d3e5761014180546001600160801b03808516600160801b029116179055613d89565b6101418054839190601090613d64908490600160801b90046001600160801b0316615bc6565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6101428054839190600090613da89084906001600160801b0316615bc6565b82546101009290920a6001600160801b0381810219909316918316021790915561014280548216600160801b426001600160401b0390811682026001600160c01b031692909217600160c01b928716929092029190911790915561013a5461014154919091049091161115905061112457604051639803f99760e01b815260040160405180910390fd5b600080846001600160a01b031663a9059cbb60e01b8585604051602401613e5a929190615c5e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051613e989190615a50565b6000604051808303816000865af19150503d8060008114613ed5576040519150601f19603f3d011682016040523d82523d6000602084013e613eda565b606091505b5091509150818015613f04575080511580613f04575080806020019051810190613f049190615a6c565b6116555760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610eae565b60608315613f44575081610e42565b610e4283836141ba565b6000613f68600080516020615d7d83398151915284611759565b15613f7557506001610ce8565b610138546001600160a01b03161561401657610138546040516316874da360e11b81526000916001600160a01b031690632d0e9b4690613fb9908790600401614b5c565b602060405180830381865afa158015613fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ffa91906158a3565b90506001600160a01b038116614014576000915050610ce8565b505b610137546001600160a01b0316156140b357610137546040516356a42afd60e11b81526001600160a01b039091169063ad4855fa9061405f903090339088908890600401615c77565b6020604051808303816000875af115801561407e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a29190615a6c565b15156000036140b357506000610ce8565b6140cb600080516020615d7d83398151915284612135565b50600192915050565b60006140e362278d00426159b8565b905090565b600061413d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166141e49092919063ffffffff16565b805190915015610fe2578080602001905181019061415b9190615a6c565b610fe25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610eae565b8151156141ca5781518083602001fd5b8060405162461bcd60e51b8152600401610eae9190614a72565b6060611966848460008585600080866001600160a01b0316858760405161420b9190615a50565b60006040518083038185875af1925050503d8060008114614248576040519150601f19603f3d011682016040523d82523d6000602084013e61424d565b606091505b509150915061109f87838387606083156142c65782516000036142bf5761427385612cb4565b6142bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610eae565b5081611966565b61196683836141ba565b82805482825590600052602060002090600f016010900481019282156143695791602002820160005b8382111561433957835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026142f9565b80156143675782816101000a81549061ffff0219169055600201602081600101049283019260010302614339565b505b5061437592915061441f565b5090565b828054828255906000526020600020906001016002900481019282156143695791602002820160005b838211156143ec57835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f010492830192600103026143a2565b80156143675782816101000a8154906001600160801b030219169055601001602081600f010492830192600103026143ec565b5b808211156143755760008155600101614420565b60006020828403121561444657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b03811182821017156144865761448661444d565b60405290565b604051608081016001600160401b03811182821017156144865761448661444d565b60405160c081016001600160401b03811182821017156144865761448661444d565b604051601f8201601f191681016001600160401b03811182821017156144f8576144f861444d565b604052919050565b63ffffffff811681146111ed57600080fd5b803561451d81614500565b919050565b60006001600160401b0382111561453b5761453b61444d565b5060051b60200190565b61ffff811681146111ed57600080fd5b803561451d81614545565b600082601f83011261457157600080fd5b8135602061458661458183614522565b6144d0565b82815260059290921b840181019181810190868411156145a557600080fd5b8286015b848110156145c95780356145bc81614545565b83529183019183016145a9565b509695505050505050565b6001600160801b03811681146111ed57600080fd5b803561451d816145d4565b600082601f83011261460557600080fd5b8135602061461561458183614522565b82815260059290921b8401810191818101908684111561463457600080fd5b8286015b848110156145c957803561464b816145d4565b8352918301918301614638565b6001600160a01b03811681146111ed57600080fd5b803561451d81614658565b80151581146111ed57600080fd5b803561451d81614678565b600061010082840312156146a457600080fd5b6146ac614463565b90506146b782614512565b815260208201356001600160401b03808211156146d357600080fd5b6146df85838601614560565b602084015260408401359150808211156146f857600080fd5b50614705848285016145f4565b6040830152506147176060830161466d565b60608201526147286080830161466d565b608082015261473960a0830161466d565b60a082015261474a60c0830161466d565b60c082015261475b60e08301614686565b60e082015292915050565b60006020828403121561477857600080fd5b81356001600160401b0381111561478e57600080fd5b61196684828501614691565b6000602082840312156147ac57600080fd5b81356001600160e01b031981168114610e4257600080fd5b60008083601f8401126147d657600080fd5b5081356001600160401b038111156147ed57600080fd5b60208301915083602082850101111561480557600080fd5b9250929050565b60008060008060006080868803121561482457600080fd5b853561482f81614658565b9450602086013561483f81614658565b93506040860135925060608601356001600160401b0381111561486157600080fd5b61486d888289016147c4565b969995985093965092949392505050565b60006020828403121561489057600080fd5b8135610e4281614658565b60006001600160401b038211156148b4576148b461444d565b50601f01601f191660200190565b600082601f8301126148d357600080fd5b81356148e16145818261489b565b8181528460208386010111156148f657600080fd5b816020850160208301376000918101602001919091529392505050565b600060a0828403121561492557600080fd5b60405160a081016001600160401b0380821183831017156149485761494861444d565b816040528293508435915061495c82614658565b818352602085013560208401526040850135604084015260608501356060840152608085013591508082111561499157600080fd5b5061499e858286016148c2565b6080830152505092915050565b6000806000606084860312156149c057600080fd5b83356001600160401b03808211156149d757600080fd5b6149e387838801614913565b9450602086013591506149f582614658565b90925060408501359080821115614a0b57600080fd5b50614a18868287016148c2565b9150509250925092565b60005b83811015614a3d578181015183820152602001614a25565b50506000910152565b60008151808452614a5e816020860160208601614a22565b601f01601f19169290920160200192915050565b602081526000610e426020830184614a46565b600080600080600080600080600060c08a8c031215614aa357600080fd5b8935614aae81614658565b985060208a0135614abe81614658565b975060408a0135965060608a01356001600160401b0380821115614ae157600080fd5b614aed8d838e016147c4565b909850965060808c0135915080821115614b0657600080fd5b614b128d838e016147c4565b909650945060a08c0135915080821115614b2b57600080fd5b50614b388c828d016147c4565b915080935050809150509295985092959850929598565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b60008060408385031215614b8357600080fd5b823591506020830135614b9581614658565b809150509250929050565b600080600080600080600060a0888a031215614bbb57600080fd5b8735614bc681614658565b96506020880135614bd681614658565b95506040880135945060608801356001600160401b0380821115614bf957600080fd5b614c058b838c016147c4565b909650945060808a0135915080821115614c1e57600080fd5b50614c2b8a828b016147c4565b989b979a50959850939692959293505050565b60008060408385031215614c5157600080fd5b8235614c5c81614658565b915060208301356001600160401b03811115614c7757600080fd5b614c83858286016148c2565b9150509250929050565b600082601f830112614c9e57600080fd5b81356020614cae61458183614522565b82815260059290921b84018101918181019086841115614ccd57600080fd5b8286015b848110156145c9578035614ce481614658565b8352918301918301614cd1565b600060808284031215614d0357600080fd5b614d0b61448c565b90508135614d1881614500565b8152602082810135614d2981614545565b8282015260408301356001600160401b0380821115614d4757600080fd5b614d53868387016148c2565b60408501526060850135915080821115614d6c57600080fd5b818501915085601f830112614d8057600080fd5b8135614d8e61458182614522565b81815260059190911b83018401908481019088831115614dad57600080fd5b8585015b83811015614e7d57803585811115614dc95760008081fd5b860160c0818c03601f1901811315614de15760008081fd5b614de96144ae565b614df48a8401614555565b8152614e0260408401614512565b8a82015260608301356040820152608083013588811115614e235760008081fd5b614e318e8c838701016148c2565b60608301525060a08084013589811115614e4b5760008081fd5b614e598f8d83880101614c8d565b608084015250614e6a8385016145e9565b9082015285525050918601918601614db1565b50606087015250939695505050505050565b600080600060608486031215614ea457600080fd5b8335614eaf81614658565b925060208401356001600160401b03811115614eca57600080fd5b614ed686828701614cf1565b9250506040840135614ee781614678565b809150509250925092565b60008060408385031215614f0557600080fd5b8235915060208301356001600160401b03811115614f2257600080fd5b614c8385828601614cf1565b600080600060608486031215614f4357600080fd5b8335614f4e81614658565b92506020840135915060408401356001600160401b03811115614f7057600080fd5b614a18868287016148c2565b60008060008060608587031215614f9257600080fd5b8435614f9d81614658565b93506020850135925060408501356001600160401b03811115614fbf57600080fd5b614fcb878288016147c4565b95989497509550505050565b600060208284031215614fe957600080fd5b81356001600160401b03811115614fff57600080fd5b611966848285016148c2565b60006060828403121561501d57600080fd5b604051606081016001600160401b038111828210171561503f5761503f61444d565b80604052508091508235815260208301356020820152604083013560408201525092915050565b60008060008060c0858703121561507c57600080fd5b843561508781614658565b935060208501356001600160401b038111156150a257600080fd5b6150ae87828801614691565b9350506150be866040870161500b565b915060a08501356150ce81614658565b939692955090935050565b6001600160a01b0392831681529116602082015260400190565b60008060006060848603121561510857600080fd5b833561511381614658565b925060208401356001600160401b038082111561512f57600080fd5b61513b87838801614913565b93506040860135915080821115614a0b57600080fd5b60006060828403121561516357600080fd5b610e42838361500b565b600081518084526020808501945080840160005b838110156151a157815161ffff1687529582019590820190600101615181565b509495945050505050565b600081518084526020808501945080840160005b838110156151a15781516001600160801b0316875295820195908201906001016151c0565b6020815263ffffffff82511660208201526000602083015161010080604085015261521461012085018361516d565b91506040850151601f1985840301606086015261523183826151ac565b92505060608501516152466080860182614b4f565b50608085015161525960a0860182614b4f565b5060a085015161526c60c0860182614b4f565b5060c085015161527f60e0860182614b4f565b5060e0850151801515858301525090949350505050565b805161451d81614500565b805161451d81614545565b60006152ba6145818461489b565b90508281528383830111156152ce57600080fd5b610e42836020830184614a22565b600082601f8301126152ed57600080fd5b610e42838351602085016152ac565b600082601f83011261530d57600080fd5b8151602061531d61458183614522565b82815260059290921b8401810191818101908684111561533c57600080fd5b8286015b848110156145c957805161535381614658565b8352918301918301615340565b805161451d816145d4565b6000602080838503121561537e57600080fd5b82516001600160401b038082111561539557600080fd5b90840190608082870312156153a957600080fd5b6153b161448c565b82516153bc81614500565b8152828401516153cb81614545565b818501526040830151828111156153e157600080fd5b6153ed888286016152dc565b60408301525060608301518281111561540557600080fd5b80840193505086601f84011261541a57600080fd5b825161542861458182614522565b81815260059190911b8401850190858101908983111561544757600080fd5b8686015b838110156155155780518681111561546257600080fd5b870160c0818d03601f190112156154795760008081fd5b6154816144ae565b61548c8a83016152a1565b815261549a60408301615296565b8a820152606082015160408201526080820151888111156154bb5760008081fd5b6154c98e8c838601016152dc565b60608301525060a080830151898111156154e35760008081fd5b6154f18f8d838701016152fc565b60808401525061550360c08401615360565b9082015284525091870191870161544b565b5060608401525090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ce857610ce8615528565b8082028115828204841417610ce857610ce8615528565b80820180821115610ce857610ce8615528565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526000608082015160a0608085015261196660a0850182614a46565b600060018060a01b038087168352608060208401526155e2608084018761557b565b9481166040840152929092166060909101525092915050565b60006020828403121561560d57600080fd5b5051919050565b6000806040838503121561562757600080fd5b823561563281614658565b91506020830135614b9581614658565b80600b0b81146111ed57600080fd5b6000806040838503121561566457600080fd5b823561566f81615642565b946020939093013593505050565b6020808252602c90820152600080516020615cf683398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020615cf683398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000806040838503121561570457600080fd5b823591506020830135614b9581615642565b600081518084526020808501945080840160005b838110156151a15781516001600160a01b03168752958201959082019060010161572a565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a0152615787868a0182614a46565b90506060808901518a8303828c01528281518085528785019150878160051b860101888401935060005b8281101561583557601f19878303018452845160c08982511684528c8c830151168c8501528a8201518b8501528782015181898601526157f382860182614a46565b9150508d8201518482038f86015261580b8282615716565b60a0938401516001600160801b0316959093019490945250948a0194938a019391506001016157b1565b509d9c50505050505050505050505050565b6001600160a01b038416815260806020820181905260009061586b9083018561574f565b9215156040830152508082036060909101526000815260200192915050565b828152604060208201526000611966604083018461574f565b6000602082840312156158b557600080fd5b8151610e4281614658565b600080600080608085870312156158d657600080fd5b845193506020850151925060408501516158ef81615642565b60608601519092506150ce81615642565b600060018060a01b03808816835260a0602084015261592260a084018861557b565b9581166040840152938416606083015250911660809091015292915050565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6000806000806080858703121561597a57600080fd5b84519350602085015161598c81615642565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b6000826159d557634e487b7160e01b600052601260045260246000fd5b500490565b61ffff8716815263ffffffff8616602082015284604082015260c060608201526000615a0960c0830186614a46565b8281036080840152615a1b8186615716565b91505060018060801b03831660a0830152979650505050505050565b600060018201615a4957615a49615528565b5060010190565b60008251615a62818460208701614a22565b9190910192915050565b600060208284031215615a7e57600080fd5b8151610e4281614678565b600b82810b9082900b0360016001605f1b0319811260016001605f1b0382131715610ce857610ce8615528565b868152602081018690526001600160a01b03858116604083015284166060820152600b83900b608082015260c060a0820181905260009061244590830184614a46565b600060208284031215615b0b57600080fd5b81516001600160401b03811115615b2157600080fd5b8201601f81018413615b3257600080fd5b611966848251602084016152ac565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351615b73816017850160208801614a22565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615ba4816028840160208801614a22565b01602801949350505050565b634e487b7160e01b600052600160045260246000fd5b6001600160801b03818116838216019080821115615be657615be6615528565b5092915050565b600060208284031215615bff57600080fd5b8151610e4281615642565b600060208284031215615c1c57600080fd5b8151610e4281614500565b600081615c3657615c36615528565b506000190190565b6001600160401b03818116838216019080821115615be657615be6615528565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038581168252848116602083015283166040820152608060608201819052600090615cab90830184614a46565b969550505050505056fea9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3f0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc946756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564829b824e2329e205435d941c9f13baf578548505283d29261236d8e6596d4636a2646970667358221220bf205a4f48d1e573372eb4ba11385e546bb29a702f508785576892d71feeacca64736f6c63430008130033";
|
|
2092
|
+
"0x60e06040523060c0523480156200001557600080fd5b506040516200616e3803806200616e833981016040819052620000389162000098565b6001600160a01b038216608081905282908290620000695760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b031660a05250620000d7915050565b6001600160a01b03811681146200009557600080fd5b50565b60008060408385031215620000ac57600080fd5b8251620000b9816200007f565b6020840151909250620000cc816200007f565b809150509250929050565b60805160a05160c051615ff7620001776000396000818161106b015281816110ab0152818161145401528181611494015261150c01526000818161090101528181610e220152611fa7015260008181610ba901528181610da401528181610f2d015281816115ba015281816116a70152818161184b01528181611c0f01528181611ebd015281816122600152818161257c01526125e10152615ff76000f3fe60806040526004361061024f5760003560e01c80630150aefb1461025457806301ffc9a71461029a5780630947e8c7146102ba5780630c710776146102f4578063150b7a021461032057806319805538146103595780631a2a84b3146103925780631bb15f3d146103c05780631db128c71461046c578063230dbd2914610499578063248a9ca3146104b95780632b4116f7146104d95780632f2ff15d1461050657806330d9c9151461052857806336568abe146105485780633659cfe614610568578063379607f51461058857806347ccca02146105a85780634b1e337f146105c95780634f1ef286146105e957806352d1902d146105fc57806353c11f99146106115780635ab1bd53146106315780635f9e7d7714610646578063647c75e21461066657806372ca8a3e146106d757806376ba085b146106f75780637b10399914610717578063860aefcf14610738578063884d1f401461077557806391d14854146107955780639e83995f146107b55780639f351ce4146107d55780639f8fddd2146107f5578063a10f469e14610815578063a217fddf14610837578063a4c0ed361461084c578063ae8272001461086c578063bcb4546f1461087f578063c2e11e3f146108a1578063c31c9c07146108ef578063d3112b2e14610923578063d539139314610958578063d547741f1461097a578063d80528ae1461099a578063d86ed3e514610a2b578063dc61d5c214610a4b578063def482a414610a9e578063e06174e414610abe578063ec87621c14610b55578063f3d5e34814610b77578063f437bc5914610b97575b600080fd5b34801561026057600080fd5b5061028561026f366004614567565b61013e6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b3480156102a657600080fd5b506102856102b5366004614580565b610bcb565b3480156102c657600080fd5b50610143546102df90600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610291565b34801561030057600080fd5b5061030d6459df64940081565b604051600b9190910b8152602001610291565b34801561032c57600080fd5b5061034061033b366004614617565b610c02565b6040516001600160e01b03199091168152602001610291565b34801561036557600080fd5b5061036e610cbd565b604080516001600160a01b03909316835263ffffffff909116602083015201610291565b34801561039e57600080fd5b506103b26103ad366004614696565b610ce2565b604051908152602001610291565b3480156103cc57600080fd5b506104286103db366004614696565b61014060205260009081526040902080546001909101546001600160801b0380831692600160801b90819004821692918216916001600160401b03918104821691600160c01b9091041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a001610291565b34801561047857600080fd5b5061048c61048736600461487b565b610d82565b6040516102919190614942565b3480156104a557600080fd5b5061048c6104b4366004614955565b610ea3565b3480156104c557600080fd5b506103b26104d4366004614567565b610eea565b3480156104e557600080fd5b506097546104f9906001600160a01b031681565b6040516102919190614a1f565b34801561051257600080fd5b50610526610521366004614a33565b610eff565b005b34801561053457600080fd5b5061048c610543366004614a63565b610f20565b34801561055457600080fd5b50610526610563366004614a33565b610fe3565b34801561057457600080fd5b50610526610583366004614696565b611061565b34801561059457600080fd5b506105266105a3366004614567565b611129565b3480156105b457600080fd5b5061013d546104f9906001600160a01b031681565b3480156105d557600080fd5b506105266105e4366004614d98565b6111a1565b6105266105f7366004614e20565b61144a565b34801561060857600080fd5b506103b26114ff565b34801561061d57600080fd5b5061048c61062c366004614955565b6115ad565b34801561063d57600080fd5b506104f961168a565b34801561065257600080fd5b5061048c610661366004614a63565b61169a565b34801561067257600080fd5b506106b0610681366004614696565b60986020526000908152604090208054600190910154600b81900b90600160601b90046001600160801b031683565b60408051938452600b9290920b60208401526001600160801b031690820152606001610291565b3480156106e357600080fd5b506102856106f2366004614696565b61177f565b34801561070357600080fd5b50610526610712366004615071565b611793565b34801561072357600080fd5b50610143546104f9906001600160a01b031681565b34801561074457600080fd5b5061013a5461013b5461013c5461075a92919083565b60408051938452602084019290925290820152606001610291565b34801561078157600080fd5b5061048c610790366004614a63565b61183e565b3480156107a157600080fd5b506102856107b0366004614a33565b61193b565b3480156107c157600080fd5b506105266107d03660046150d4565b611966565b3480156107e157600080fd5b506105266107f036600461511a565b611b36565b34801561080157600080fd5b5061048c610810366004615156565b611bed565b34801561082157600080fd5b506103b2600080516020615fa283398151915281565b34801561084357600080fd5b506103b2600081565b34801561085857600080fd5b506102856108673660046151a4565b611ca7565b61052661087a3660046151ff565b611d20565b34801561088b57600080fd5b506103b2600080516020615edb83398151915281565b3480156108ad57600080fd5b506101415461014254610428916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b3480156108fb57600080fd5b506104f97f000000000000000000000000000000000000000000000000000000000000000081565b34801561092f57600080fd5b50609954609a5461094a916001600160a01b03908116911682565b604051610291929190615233565b34801561096457600080fd5b506103b2600080516020615efb83398151915281565b34801561098657600080fd5b50610526610995366004614a33565b611da6565b3480156109a657600080fd5b50609b54609c54609d54609e54609f5460a05460a1546109e1969594936001600160a01b0380821694600160a01b909204600b0b9391169188565b604080519889526020890197909752958701949094526001600160a01b039283166060870152600b9190910b60808601521660a084015260c083015260e082015261010001610291565b348015610a3757600080fd5b5061048c610a46366004614955565b611dc2565b348015610a5757600080fd5b50610a60611df0565b604080519788526020880196909652948601939093526060850191909152600b90810b608085015290810b60a08401520b60c082015260e001610291565b348015610aaa57600080fd5b5061048c610ab936600461524d565b611e9b565b348015610aca57600080fd5b506101335461013654610137546101385461013954610b0d9463ffffffff16936001600160a01b039081169381169281169190811690600160a01b900460ff1686565b6040805163ffffffff90971687526001600160a01b039586166020880152938516938601939093529083166060850152919091166080830152151560a082015260c001610291565b348015610b6157600080fd5b506103b2600080516020615f5b83398151915281565b348015610b8357600080fd5b50610526610b923660046152ab565b6120ee565b348015610ba357600080fd5b506104f97f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b03198216637965db0b60e01b1480610bfc57506301ffc9a760e01b6001600160e01b03198316145b92915050565b61013d546040516302b5313d60e21b81526004810185905260009182916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015610c51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c79919081019061539c565b61013354815191925063ffffffff918216911614610caa5760405163f26722ad60e01b815260040160405180910390fd5b50630a85bd0160e11b9695505050505050565b61013654610143546001600160a01b0390911691600160a01b90910463ffffffff1690565b6001600160a01b0381166000908152609860209081526040808320815160608101835281548152600190910154600b81900b938201849052600160601b90046001600160801b031691810191909152908203610d3f575192915050565b6040810151610d57906001600160801b03164261556f565b81602001516001600160601b0316610d6f9190615582565b8151610d7b9190615599565b9392505050565b606082336001600160a01b03821614801590610dc75750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15610df0573360405163087231bf60e31b8152600401610de79190614a1f565b60405180910390fd5b6097546040516358c0dacb60e01b815273__$0d78a42341742155da77b97d7f993534c7$__916358c0dacb91610e58917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b0316908a906004016155f1565b602060405180830381865af4158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e99919061562c565b5091949350505050565b60606000610eb387890189615645565b509050600080610ec587890189615682565b91509150610ed78d8484848a8a612166565b93505050505b9998505050505050505050565b60009081526065602052604090206001015490565b610f0882610eea565b610f11816121ad565b610f1b83836121b7565b505050565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f6b57604051632f2d36a760e01b815260040160405180910390fd5b610f748761223a565b610f975750604080518082019091526002815261060f60f31b6020820152610fd8565b610fa08861177f565b610fbd57604051631ea25bab60e31b815260040160405180910390fd5b50604080518082019091526002815261060f60f31b60208201525b979650505050505050565b6001600160a01b03811633146110535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610de7565b61105d82826122ee565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110a95760405162461bcd60e51b8152600401610de7906156ae565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110db612371565b6001600160a01b0316146111015760405162461bcd60e51b8152600401610de7906156e8565b61110a8161238d565b6040805160008082526020820190925261112691839190612398565b50565b61013d546040516302b5313d60e21b8152600481018390526111269183916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015611179573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107f0919081019061539c565b600054610100900460ff16158080156111c15750600054600160ff909116105b806111e257506111d030612503565b1580156111e2575060005460ff166001145b6112455760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610de7565b6000805460ff191660011790558015611268576000805461ff0019166101001790555b61014380546001600160a01b0319166001600160a01b0384161790558451610133805463ffffffff191663ffffffff90921691909117815560208087015180518893926112bb9261013492910190614403565b50604082015180516112d79160028401916020909101906144ac565b5060608201516003820180546001600160a01b03199081166001600160a01b03938416179091556080840151600484018054831691841691909117905560a0840151600584018054831691841691909117905560c08401516006909301805460e0909501519383166001600160a81b031990951694909417600160a01b931515840217909355865161013a55602087015161013b55604087015161013c5561013d805490931690891617909155610143805463ffffffff60a01b191663ffffffff86169092029190911790556113ae600033612512565b6113ca600080516020615f5b8339815191528660600151612512565b6113e6600080516020615efb8339815191528660600151612512565b610139546113fc906001600160a01b031661251c565b8015611442576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114925760405162461bcd60e51b8152600401610de7906156ae565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114c4612371565b6001600160a01b0316146114ea5760405162461bcd60e51b8152600401610de7906156e8565b6114f38261238d565b61105d82826001612398565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461159a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610de7565b50600080516020615f3b83398151915290565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415806115ed57506115eb8961223a565b155b806115fe57506115fc8a61177f565b155b156116425782828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610edd92505050565b600080611651888a018a615645565b9092509050600080611665888a018a615722565b915091506116788e858584868c8c6126be565b9e9d5050505050505050505050505050565b610143546001600160a01b031690565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415806116da57506116d88761223a565b155b806116eb57506116e98861177f565b155b1561170f5750604080518082019091526002815261060f60f31b6020820152610fd8565b60008061171e86880188615645565b909250905060008061173a6001600160a01b038d168585612711565b505091509150818160405160200161175f929190918252600b0b602082015260400190565b604051602081830303815290604052945050505050979650505050505050565b6097546001600160a01b0390811691161490565b600080516020615efb8339815191526117ab816121ad565b61013d546040516321aa1d2160e11b81526000916001600160a01b0316906343543a42906117e29088908890600190600401615883565b6020604051808303816000875af1158015611801573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611825919061562c565b90508215611837576118378185611b36565b5050505050565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461188957604051632f2d36a760e01b815260040160405180910390fd5b6118928761223a565b6118b55750604080518082019091526002815261060f60f31b6020820152610fd8565b6118be8861177f565b6118db57604051631ea25bab60e31b815260040160405180910390fd5b60006118e985870187615645565b5090506000806119036001600160a01b038c168430612711565b505060408051600b9290920b60208301528181019290925281518082038301815260609091019091529b9a5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020615f5b83398151915261197e816121ad565b610143805463ffffffff808516600160a01b0263ffffffff60a01b199092169190911790915561013354845182169116146119cc57604051630f91888160e01b815260040160405180910390fd5b60608301516001600160a01b03166119f75760405163890bc98f60e01b815260040160405180910390fd5b61013654611a10906000906001600160a01b03166122ee565b8251610133805463ffffffff191663ffffffff9092169190911781556020808501518051869392611a479261013492910190614403565b5060408201518051611a639160028401916020909101906144ac565b506060828101516003830180546001600160a01b039283166001600160a01b031991821617909155608085015160048501805491841691831691909117905560a08501516005850180549184169190921617905560c08401516006909301805460e0909501511515600160a01b026001600160a81b03199095169390911692909217929092179055830151611afa90600090612512565b7f3eed38e4b04ae182994f6ef05c58a3987f571a66d6860d9046621cc204f407a083604051611b299190615933565b60405180910390a1505050565b61013d5460405163049b73f560e31b81526001600160a01b03909116906324db9fa890611b6990859085906004016159e4565b600060405180830381865afa158015611b86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611bae919081019061539c565b50600082815261013e602052604090205460ff1615611be3576040516330e51df560e11b815260048101839052602401610de7565b61105d82826127a9565b606083336001600160a01b03821614801590611c325750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15611c52573360405163087231bf60e31b8152600401610de79190614a1f565b83600003611c7357604051630f6fa54560e41b815260040160405180910390fd5b609754611c8b906001600160a01b0316863087612af0565b610e998585600060405180602001604052806000815250612bf2565b6097546000906001600160a01b03163314611cd557604051630ce706f760e41b815260040160405180910390fd5b83600003611cf657604051630f6fa54560e41b815260040160405180910390fd5b611d128585600060405180602001604052806000815250612bf2565b50600190505b949350505050565b6101435460408051638abf607760e01b815290516000926001600160a01b031691638abf60779160048083019260209291908290030181865afa158015611d6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8f91906159fd565b9050611d9a8161238d565b61105d81836000612398565b611daf82610eea565b611db8816121ad565b610f1b83836122ee565b60606000611dd287890189615645565b509050611de18b82868661329a565b9b9a5050505050505050505050565b60975460405163b2f918a160e01b815260009182918291829182918291829173__$0d78a42341742155da77b97d7f993534c7$__9163b2f918a191611e4491609b916001600160a01b031690600401615a1a565b60e060405180830381865af4158015611e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e859190615aa4565b959d949c50929a50909850965094509092509050565b606083336001600160a01b03821614801590611ee05750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15611f00573360405163087231bf60e31b8152600401610de79190614a1f565b6097546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611f31903090600401614a1f565b602060405180830381865afa158015611f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f72919061562c565b6097546040516321437a5360e01b815291925073__$0d78a42341742155da77b97d7f993534c7$__916321437a5391611fe1917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b03909116908c903090600401615b18565b602060405180830381865af4158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612022919061562c565b506097546040516370a0823160e01b815260009183916001600160a01b03909116906370a0823190612058903090600401614a1f565b602060405180830381865afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612099919061562c565b6120a3919061556f565b9050806000036120c657604051630f6fa54560e41b815260040160405180910390fd5b6120e28782600060405180602001604052806000815250612bf2565b50939695505050505050565b600080516020615f5b833981519152612106816121ad565b815161013a8190556020808401805161013b556040808601805161013c5581519485529151928401929092525182820152517f220b9fb6f33ff05be83cf4d215109467b91026cf1f239e2acb4b7095cf09d5c59181900360600190a15050565b6060610fd88686600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bf292505050565b61112681336132e8565b600080516020615fa28339815191528203612230576101435460405163329b55b760e21b81526001600160a01b039091169063ca6d56dc906121fd908490600401614a1f565b600060405180830381600087803b15801561221757600080fd5b505af115801561222b573d6000803e3d6000fd5b505050505b61105d8282613341565b604051635b69006f60e11b8152600080516020615edb83398151915260048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6d200de90602401602060405180830381865afa1580156122af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d391906159fd565b6001600160a01b0316826001600160a01b0316149050919050565b600080516020615fa28339815191528203612367576101435460405163058e524d60e11b81526001600160a01b0390911690630b1ca49a90612334908490600401614a1f565b600060405180830381600087803b15801561234e57600080fd5b505af1158015612362573d6000803e3d6000fd5b505050505b61105d82826133c7565b600080516020615f3b833981519152546001600160a01b031690565b600061105d816121ad565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156123cb57610f1b8361342e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612425575060408051601f3d908101601f191682019092526124229181019061562c565b60015b6124885760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610de7565b600080516020615f3b83398151915281146124f75760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610de7565b50610f1b8383836134c8565b6001600160a01b03163b151590565b61105d82826121b7565b6001600160a01b0381166125435760405163538ba4f960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b03838116919091179091556040516315a722b960e31b8152600160048201819052917f0000000000000000000000000000000000000000000000000000000000000000169063ad3915c890602401600060405180830381600087803b1580156125c057600080fd5b505af11580156125d4573d6000803e3d6000fd5b50506040805180820182527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168082529151635b69006f60e11b8152600080516020615edb833981519152600482015290935060208401925063b6d200de90602401602060405180830381865afa15801561265b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267f91906159fd565b6001600160a01b039081169091528151609980546001600160a01b0319908116928416929092179055602090920151609a805490931691161790555050565b60606127058786600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bf292505050565b98975050505050505050565b6000806000806000612722886134f3565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e88890612756908b908b908b90600401615b59565b608060405180830381865afa158015612773573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127979190615b7c565b929b919a509850909650945050505050565b600082815261013e6020526040808220805460ff191660011790556101395490516370a0823160e01b815282916001600160a01b0316906370a08231906127f4903090600401614a1f565b602060405180830381865afa158015612811573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612835919061562c565b61013954909150600160a01b900460ff1660005b846060015151811015612aae5760008560600151828151811061286e5761286e615bba565b6020026020010151604001518380156128b1575060008760600151848151811061289a5761289a615bba565b602002602001015160a001516001600160801b0316115b6128e4576128df876060015184815181106128ce576128ce615bba565b602002602001015160000151613662565b612907565b866060015183815181106128fa576128fa615bba565b602002602001015160a001515b6001600160801b031661291a9190615582565b90508015612a9b5761292c8186615599565b94508385111561294f5760405163701b93d160e11b815260040160405180910390fd5b612959858561556f565b93506129868660600151838151811061297457612974615bba565b60200260200101516080015182613719565b867f66417923523a2d06a43299cb4e498d17eef686f73ae2484f05c36479f5ae5a6d876060015184815181106129be576129be615bba565b602002602001015160000151886060015185815181106129e0576129e0615bba565b60200260200101516020015189606001518681518110612a0257612a02615bba565b6020026020010151604001518a606001518781518110612a2457612a24615bba565b6020026020010151606001518b606001518881518110612a4657612a46615bba565b6020026020010151608001518c606001518981518110612a6857612a68615bba565b6020026020010151608001515188612a809190615bd0565b604051612a9296959493929190615bf2565b60405180910390a25b5080612aa681615c4f565b915050612849565b50847fdc780326abc7aa2bf7cfbd02de3cdd5c8020124228dbcbc133d6bcbd74a784cc84604051612ae191815260200190565b60405180910390a25050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612b549190615c68565b6000604051808303816000865af19150503d8060008114612b91576040519150601f19603f3d011682016040523d82523d6000602084013e612b96565b606091505b5091509150818015612bc0575080511580612bc0575080806020019051810190612bc09190615c84565b6114425760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b6044820152606401610de7565b805181901515600080612c03610cbd565b609754919350915073__$0d78a42341742155da77b97d7f993534c7$__9063934e2cce90609b906001600160a01b0316612c3b61168a565b8588612c47578c612c4a565b60005b6040516001600160e01b031960e088901b16815260048101959095526001600160a01b03938416602486015292909116604484015263ffffffff166064830152608482015260a40160006040518083038186803b158015612caa57600080fd5b505af4158015612cbe573d6000803e3d6000fd5b505060975460009250612cdc91506001600160a01b03168a30613829565b6001600160a01b038a1660009081526098602052604090205490915084156130d157600082600b0b138015612d1957506459df649400600b83900b125b15612d3c57604051624963df60e91b8152600b83900b6004820152602401610de7565b6001600160a01b038a16600090815260986020526040902060010180546001600160e01b031916600160601b426001600160801b038116919091026001600160601b031916919091176001600160601b03851617909155612d9e90899061556f565b612da8908a615582565b6001600160a01b038b1660009081526098602052604081208054909190612dd0908490615599565b9091555060009050612de061168a565b6001600160a01b031614612fa357612df661168a565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5791906159fd565b9350612e6161168a565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec29190615ca1565b925073__$0d78a42341742155da77b97d7f993534c7$__634d167a906099609760009054906101000a90046001600160a01b0316609b60030160009054906101000a90046001600160a01b031688888f89612f1d9190615cbe565b8d6040518863ffffffff1660e01b8152600401612f409796959493929190615ceb565b600060405180830381865af4158015612f5d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f859190810190615d3b565b609e80546001600160a01b0319166001600160a01b03871617905595505b612fab610cbd565b809450819550505073__$0d78a42341742155da77b97d7f993534c7$__634d167a906099609760009054906101000a90046001600160a01b0316609b60040160009054906101000a90046001600160a01b031688888f8961300c9190615cbe565b8d6040518863ffffffff1660e01b815260040161302f9796959493929190615ceb565b600060405180830381865af415801561304c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130749190810190615d3b565b609f80546001600160a01b0319166001600160a01b03878116919091179091556097549197506130a59116306138b7565b609e80546001600160601b0392909216600160a01b026001600160a01b03909216919091179055613210565b60006130db61168a565b6001600160a01b0316146131ca576130f161168a565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561312e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315291906159fd565b935061315c61168a565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa158015613199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bd9190615ca1565b92506131ca84848b613936565b6131d2610cbd565b90945092506131e284848b613936565b6001600160a01b038a16600090815260986020526040812080548b929061320a908490615599565b90915550505b6001600160a01b038a166000818152609860205260409020547f6342e11b65ccb38a3bb259be9cda846c74ad52b36b62a2ee4799dc3db63a04a39083908861325957600061325b565b8c5b604080519384526020840192909252600b90810b8383015286900b60608301528815156080830152519081900360a00190a25050505050949350505050565b60606132df8460008086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bf292505050565b95945050505050565b6132f2828261193b565b61105d576132ff81613982565b61330a836020613994565b60405160200161331b929190615d83565b60408051601f198184030181529082905262461bcd60e51b8252610de791600401614942565b61334b828261193b565b61105d5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556133833390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6133d1828261193b565b1561105d5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61343781612503565b6134995760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610de7565b600080516020615f3b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6134d183613b2f565b6000825111806134de5750805b15610f1b576134ed8383613b6f565b50505050565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b038116613631576001600160a01b0382166135b857826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015613591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135b591906159fd565b91505b604051635b69006f60e11b8152600080516020615edb83398151915260048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa15801561360a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061362e91906159fd565b90505b6001600160a01b03821661364757613647615df2565b6001600160a01b03811661365d5761365d615df2565b915091565b6000805b610134548110156137105761013480548290811061368657613686615bba565b90600052602060002090601091828204019190066002029054906101000a900461ffff1661ffff168361ffff16036136fe576101358054829081106136cd576136cd615bba565b90600052602060002090600291828204019190066010029054906101000a90046001600160801b0316915050919050565b8061370881615c4f565b915050613666565b50600092915050565b60008251826001600160801b03166137319190615bd0565b90506000805b845181101561381f57600061376586838151811061375757613757615bba565b602002602001015185613c58565b905080156137bb576137aa86838151811061378257613782615bba565b6020908102919091010151610139546001600160a01b0316906001600160801b038716613d36565b6137b48484615e08565b925061380c565b7f617c38e0fa04973365b7abb47a8f354a5b3fbe3ea04b8a0649580d208a88cc608683815181106137ee576137ee615bba565b60200260200101516040516138039190614a1f565b60405180910390a15b508061381781615c4f565b915050613737565b506134ed81613d8c565b600080613835856134f3565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e8889061386990889088908890600401615b59565b608060405180830381865afa158015613886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138aa9190615b7c565b5090979650505050505050565b6000806138c3846134f3565b60405163e8e7e2d160e01b81529092506001600160a01b038316915063e8e7e2d1906138f59087908790600401615233565b602060405180830381865afa158015613912573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d189190615e2f565b6001600160a01b03831661394957505050565b600061271061395e63ffffffff851684615582565b6139689190615bd0565b6097549091506134ed906001600160a01b03168583613dd2565b6060610bfc6001600160a01b03831660145b606060006139a3836002615582565b6139ae906002615599565b6001600160401b038111156139c5576139c56146b3565b6040519080825280601f01601f1916602001820160405280156139ef576020820181803683370190505b509050600360fc1b81600081518110613a0a57613a0a615bba565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613a3957613a39615bba565b60200101906001600160f81b031916908160001a9053506000613a5d846002615582565b613a68906001615599565b90505b6001811115613ae0576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613a9c57613a9c615bba565b1a60f81b828281518110613ab257613ab2615bba565b60200101906001600160f81b031916908160001a90535060049490941c93613ad981615e4c565b9050613a6b565b508315610d7b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610de7565b613b388161342e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613b7a83612503565b613bd55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610de7565b600080846001600160a01b031684604051613bf09190615c68565b600060405180830381855af49150503d8060008114613c2b576040519150601f19603f3d011682016040523d82523d6000602084013e613c30565b606091505b50915091506132df8282604051806060016040528060278152602001615f7b60279139613ed5565b6000613c738360405180602001604052806000815250613eee565b1515600003613c8457506000610bfc565b6001600160a01b038316600090815261014060205260409020613caf9083613caa61406b565b61407f565b61013c546001600160a01b038416600090815261014060205260409020546001600160801b03161180613d0d575061013b546001600160a01b03841660009081526101406020526040902054600160801b90046001600160801b0316115b15613d2d5782604051636e661e3360e11b8152600401610de79190614a1f565b50600192915050565b610f1b8363a9059cbb60e01b8484604051602401613d55929190615e63565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261421b565b613d9b61014182613caa61406b565b61013a5461014154600160801b90046001600160801b0316111561112657604051639803f99760e01b815260040160405180910390fd5b600080846001600160a01b031663a9059cbb60e01b8585604051602401613dfa929190615e63565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051613e389190615c68565b6000604051808303816000865af19150503d8060008114613e75576040519150601f19603f3d011682016040523d82523d6000602084013e613e7a565b606091505b5091509150818015613ea4575080511580613ea4575080806020019051810190613ea49190615c84565b6118375760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610de7565b60608315613ee4575081610d7b565b610d7b83836142ed565b6000613f08600080516020615fa28339815191528461193b565b15613f1557506001610bfc565b610138546001600160a01b031615613fb657610138546040516316874da360e11b81526000916001600160a01b031690632d0e9b4690613f59908790600401614a1f565b602060405180830381865afa158015613f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f9a91906159fd565b90506001600160a01b038116613fb4576000915050610bfc565b505b610137546001600160a01b03161561405357610137546040516356a42afd60e11b81526001600160a01b039091169063ad4855fa90613fff903090339088908890600401615e7c565b6020604051808303816000875af115801561401e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140429190615c84565b151560000361405357506000610bfc565b613d2d600080516020615fa2833981519152846121b7565b600061407a62278d0042615bd0565b905090565b600183015442906140a390600160801b90046001600160401b031662015180615eba565b6001600160401b031610156140d05782546001600160801b0319166001600160801b038316178355614112565b8254829084906000906140ed9084906001600160801b0316615e08565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b60018301546001600160401b03808316600160c01b90920416101561414e5782546001600160801b03808416600160801b029116178355614197565b825482908490601090614172908490600160801b90046001600160801b0316615e08565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001830180548391906000906141b79084906001600160801b0316615e08565b82546001600160801b039182166101009390930a92830292820219169190911790915560019490940180546001600160401b03938416600160c01b026001600160c01b034295909516600160801b0294909416951694909417919091179092555050565b6000614270826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166143179092919063ffffffff16565b805190915015610f1b578080602001905181019061428e9190615c84565b610f1b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610de7565b8151156142fd5781518083602001fd5b8060405162461bcd60e51b8152600401610de79190614942565b6060611d18848460008585600080866001600160a01b0316858760405161433e9190615c68565b60006040518083038185875af1925050503d806000811461437b576040519150601f19603f3d011682016040523d82523d6000602084013e614380565b606091505b5091509150610fd887838387606083156143f95782516000036143f2576143a685612503565b6143f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610de7565b5081611d18565b611d1883836142ed565b82805482825590600052602060002090600f0160109004810192821561449c5791602002820160005b8382111561446c57835183826101000a81548161ffff021916908361ffff160217905550926020019260020160208160010104928301926001030261442c565b801561449a5782816101000a81549061ffff021916905560020160208160010104928301926001030261446c565b505b506144a8929150614552565b5090565b8280548282559060005260206000209060010160029004810192821561449c5791602002820160005b8382111561451f57835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f010492830192600103026144d5565b801561449a5782816101000a8154906001600160801b030219169055601001602081600f0104928301926001030261451f565b5b808211156144a85760008155600101614553565b60006020828403121561457957600080fd5b5035919050565b60006020828403121561459257600080fd5b81356001600160e01b031981168114610d7b57600080fd5b6001600160a01b038116811461112657600080fd5b80356145ca816145aa565b919050565b60008083601f8401126145e157600080fd5b5081356001600160401b038111156145f857600080fd5b60208301915083602082850101111561461057600080fd5b9250929050565b60008060008060006080868803121561462f57600080fd5b853561463a816145aa565b9450602086013561464a816145aa565b93506040860135925060608601356001600160401b0381111561466c57600080fd5b614678888289016145cf565b969995985093965092949392505050565b6001600160a01b03169052565b6000602082840312156146a857600080fd5b8135610d7b816145aa565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b03811182821017156146ec576146ec6146b3565b60405290565b604051608081016001600160401b03811182821017156146ec576146ec6146b3565b60405160c081016001600160401b03811182821017156146ec576146ec6146b3565b604051601f8201601f191681016001600160401b038111828210171561475e5761475e6146b3565b604052919050565b60006001600160401b0382111561477f5761477f6146b3565b50601f01601f191660200190565b600082601f83011261479e57600080fd5b81356147b16147ac82614766565b614736565b8181528460208386010111156147c657600080fd5b816020850160208301376000918101602001919091529392505050565b600060a082840312156147f557600080fd5b60405160a081016001600160401b038082118383101715614818576148186146b3565b816040528293508435915061482c826145aa565b818352602085013560208401526040850135604084015260608501356060840152608085013591508082111561486157600080fd5b5061486e8582860161478d565b6080830152505092915050565b60008060006060848603121561489057600080fd5b83356001600160401b03808211156148a757600080fd5b6148b3878388016147e3565b9450602086013591506148c5826145aa565b909250604085013590808211156148db57600080fd5b506148e88682870161478d565b9150509250925092565b60005b8381101561490d5781810151838201526020016148f5565b50506000910152565b6000815180845261492e8160208601602086016148f2565b601f01601f19169290920160200192915050565b602081526000610d7b6020830184614916565b600080600080600080600080600060c08a8c03121561497357600080fd5b893561497e816145aa565b985060208a013561498e816145aa565b975060408a0135965060608a01356001600160401b03808211156149b157600080fd5b6149bd8d838e016145cf565b909850965060808c01359150808211156149d657600080fd5b6149e28d838e016145cf565b909650945060a08c01359150808211156149fb57600080fd5b50614a088c828d016145cf565b915080935050809150509295985092959850929598565b6001600160a01b0391909116815260200190565b60008060408385031215614a4657600080fd5b823591506020830135614a58816145aa565b809150509250929050565b600080600080600080600060a0888a031215614a7e57600080fd5b8735614a89816145aa565b96506020880135614a99816145aa565b95506040880135945060608801356001600160401b0380821115614abc57600080fd5b614ac88b838c016145cf565b909650945060808a0135915080821115614ae157600080fd5b50614aee8a828b016145cf565b989b979a50959850939692959293505050565b63ffffffff8116811461112657600080fd5b80356145ca81614b01565b60006001600160401b03821115614b3757614b376146b3565b5060051b60200190565b61ffff8116811461112657600080fd5b80356145ca81614b41565b600082601f830112614b6d57600080fd5b81356020614b7d6147ac83614b1e565b82815260059290921b84018101918181019086841115614b9c57600080fd5b8286015b84811015614bc0578035614bb381614b41565b8352918301918301614ba0565b509695505050505050565b6001600160801b038116811461112657600080fd5b80356145ca81614bcb565b600082601f830112614bfc57600080fd5b81356020614c0c6147ac83614b1e565b82815260059290921b84018101918181019086841115614c2b57600080fd5b8286015b84811015614bc0578035614c4281614bcb565b8352918301918301614c2f565b801515811461112657600080fd5b80356145ca81614c4f565b60006101008284031215614c7b57600080fd5b614c836146c9565b9050614c8e82614b13565b815260208201356001600160401b0380821115614caa57600080fd5b614cb685838601614b5c565b60208401526040840135915080821115614ccf57600080fd5b50614cdc84828501614beb565b604083015250614cee606083016145bf565b6060820152614cff608083016145bf565b6080820152614d1060a083016145bf565b60a0820152614d2160c083016145bf565b60c0820152614d3260e08301614c5d565b60e082015292915050565b600060608284031215614d4f57600080fd5b604051606081016001600160401b0381118282101715614d7157614d716146b3565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600080600060e08688031215614db057600080fd5b8535614dbb816145aa565b945060208601356001600160401b03811115614dd657600080fd5b614de288828901614c68565b945050614df28760408801614d3d565b925060a0860135614e0281614b01565b915060c0860135614e12816145aa565b809150509295509295909350565b60008060408385031215614e3357600080fd5b8235614e3e816145aa565b915060208301356001600160401b03811115614e5957600080fd5b614e658582860161478d565b9150509250929050565b600082601f830112614e8057600080fd5b81356020614e906147ac83614b1e565b82815260059290921b84018101918181019086841115614eaf57600080fd5b8286015b84811015614bc0578035614ec6816145aa565b8352918301918301614eb3565b600060808284031215614ee557600080fd5b614eed6146f2565b90508135614efa81614b01565b8152602082810135614f0b81614b41565b8282015260408301356001600160401b0380821115614f2957600080fd5b614f358683870161478d565b60408501526060850135915080821115614f4e57600080fd5b818501915085601f830112614f6257600080fd5b8135614f706147ac82614b1e565b81815260059190911b83018401908481019088831115614f8f57600080fd5b8585015b8381101561505f57803585811115614fab5760008081fd5b860160c0818c03601f1901811315614fc35760008081fd5b614fcb614714565b614fd68a8401614b51565b8152614fe460408401614b13565b8a820152606083013560408201526080830135888111156150055760008081fd5b6150138e8c8387010161478d565b60608301525060a0808401358981111561502d5760008081fd5b61503b8f8d83880101614e6f565b60808401525061504c838501614be0565b9082015285525050918601918601614f93565b50606087015250939695505050505050565b60008060006060848603121561508657600080fd5b8335615091816145aa565b925060208401356001600160401b038111156150ac57600080fd5b6150b886828701614ed3565b92505060408401356150c981614c4f565b809150509250925092565b600080604083850312156150e757600080fd5b82356001600160401b038111156150fd57600080fd5b61510985828601614c68565b9250506020830135614a5881614b01565b6000806040838503121561512d57600080fd5b8235915060208301356001600160401b0381111561514a57600080fd5b614e6585828601614ed3565b60008060006060848603121561516b57600080fd5b8335615176816145aa565b92506020840135915060408401356001600160401b0381111561519857600080fd5b6148e88682870161478d565b600080600080606085870312156151ba57600080fd5b84356151c5816145aa565b93506020850135925060408501356001600160401b038111156151e757600080fd5b6151f3878288016145cf565b95989497509550505050565b60006020828403121561521157600080fd5b81356001600160401b0381111561522757600080fd5b611d188482850161478d565b6001600160a01b0392831681529116602082015260400190565b60008060006060848603121561526257600080fd5b833561526d816145aa565b925060208401356001600160401b038082111561528957600080fd5b615295878388016147e3565b935060408601359150808211156148db57600080fd5b6000606082840312156152bd57600080fd5b610d7b8383614d3d565b80516145ca81614b01565b80516145ca81614b41565b60006152eb6147ac84614766565b90508281528383830111156152ff57600080fd5b610d7b8360208301846148f2565b600082601f83011261531e57600080fd5b610d7b838351602085016152dd565b600082601f83011261533e57600080fd5b8151602061534e6147ac83614b1e565b82815260059290921b8401810191818101908684111561536d57600080fd5b8286015b84811015614bc0578051615384816145aa565b8352918301918301615371565b80516145ca81614bcb565b600060208083850312156153af57600080fd5b82516001600160401b03808211156153c657600080fd5b90840190608082870312156153da57600080fd5b6153e26146f2565b82516153ed81614b01565b8152828401516153fc81614b41565b8185015260408301518281111561541257600080fd5b61541e8882860161530d565b60408301525060608301518281111561543657600080fd5b80840193505086601f84011261544b57600080fd5b82516154596147ac82614b1e565b81815260059190911b8401850190858101908983111561547857600080fd5b8686015b838110156155465780518681111561549357600080fd5b870160c0818d03601f190112156154aa5760008081fd5b6154b2614714565b6154bd8a83016152d2565b81526154cb604083016152c7565b8a820152606082015160408201526080820151888111156154ec5760008081fd5b6154fa8e8c8386010161530d565b60608301525060a080830151898111156155145760008081fd5b6155228f8d8387010161532d565b60808401525061553460c08401615391565b9082015284525091870191870161547c565b5060608401525090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610bfc57610bfc615559565b8082028115828204841417610bfc57610bfc615559565b80820180821115610bfc57610bfc615559565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526000608082015160a06080850152611d1860a0850182614916565b600060018060a01b0380871683526080602084015261561360808401876155ac565b9481166040840152929092166060909101525092915050565b60006020828403121561563e57600080fd5b5051919050565b6000806040838503121561565857600080fd5b8235615663816145aa565b91506020830135614a58816145aa565b80600b0b811461112657600080fd5b6000806040838503121561569557600080fd5b82356156a081615673565b946020939093013593505050565b6020808252602c90820152600080516020615f1b83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020615f1b83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000806040838503121561573557600080fd5b823591506020830135614a5881615673565b600081518084526020808501945080840160005b838110156157805781516001600160a01b03168752958201959082019060010161575b565b509495945050505050565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a01526157c3868a0182614916565b90506060808901518a8303828c01528281518085528785019150878160051b860101888401935060005b8281101561587157601f19878303018452845160c08982511684528c8c830151168c8501528a8201518b85015287820151818986015261582f82860182614916565b9150508d8201518482038f8601526158478282615747565b60a0938401516001600160801b0316959093019490945250948a0194938a019391506001016157ed565b509d9c50505050505050505050505050565b6001600160a01b03841681526080602082018190526000906158a79083018561578b565b9215156040830152508082036060909101526000815260200192915050565b600081518084526020808501945080840160005b8381101561578057815161ffff16875295820195908201906001016158da565b600081518084526020808501945080840160005b838110156157805781516001600160801b03168752958201959082019060010161590e565b6020815263ffffffff8251166020820152600060208301516101008060408501526159626101208501836158c6565b91506040850151601f1985840301606086015261597f83826158fa565b92505060608501516159946080860182614689565b5060808501516159a760a0860182614689565b5060a08501516159ba60c0860182614689565b5060c08501516159cd60e0860182614689565b5060e0850151801515858301525090949350505050565b828152604060208201526000611d18604083018461578b565b600060208284031215615a0f57600080fd5b8151610d7b816145aa565b8254815260018301546020820152600283015460408201526003830154610120820190615a53606084016001600160a01b038316614689565b615a65608084018260a01d600b0b9052565b5060048401546001600160a01b0316615a8160a0840182614689565b50600584015460c0830152600684015460e0830152610d7b610100830184614689565b600080600080600080600060e0888a031215615abf57600080fd5b875196506020880151955060408801519450606088015193506080880151615ae681615673565b60a0890151909350615af781615673565b60c0890151909250615b0881615673565b8091505092959891949750929550565b600060018060a01b03808816835260a06020840152615b3a60a08401886155ac565b9581166040840152938416606083015250911660809091015292915050565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008060008060808587031215615b9257600080fd5b845193506020850151615ba481615673565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b600082615bed57634e487b7160e01b600052601260045260246000fd5b500490565b61ffff8716815263ffffffff8616602082015284604082015260c060608201526000615c2160c0830186614916565b8281036080840152615c338186615747565b91505060018060801b03831660a0830152979650505050505050565b600060018201615c6157615c61615559565b5060010190565b60008251615c7a8184602087016148f2565b9190910192915050565b600060208284031215615c9657600080fd5b8151610d7b81614c4f565b600060208284031215615cb357600080fd5b8151610d7b81614b01565b600b82810b9082900b0360016001605f1b0319811260016001605f1b0382131715610bfc57610bfc615559565b8781526001600160a01b03878116602083015286811660408301528516606082015263ffffffff84166080820152600b83900b60a082015260e060c08201819052600090610edd90830184614916565b600060208284031215615d4d57600080fd5b81516001600160401b03811115615d6357600080fd5b8201601f81018413615d7457600080fd5b611d18848251602084016152dd565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351615db58160178501602088016148f2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615de68160288401602088016148f2565b01602801949350505050565b634e487b7160e01b600052600160045260246000fd5b6001600160801b03818116838216019080821115615e2857615e28615559565b5092915050565b600060208284031215615e4157600080fd5b8151610d7b81615673565b600081615e5b57615e5b615559565b506000190190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038581168252848116602083015283166040820152608060608201819052600090615eb090830184614916565b9695505050505050565b6001600160401b03818116838216019080821115615e2857615e2861555956fea9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3f0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc946756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564829b824e2329e205435d941c9f13baf578548505283d29261236d8e6596d4636a2646970667358221220c8453256a14ee7ad812368c60c392f4110ff687ed8bbbf09f17228b893212b4264736f6c63430008130033";
|
|
2022
2093
|
|
|
2023
2094
|
type DirectPaymentsPoolConstructorParams =
|
|
2024
2095
|
| [linkLibraryAddresses: DirectPaymentsPoolLibraryAddresses, signer?: Signer]
|
package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts
CHANGED
|
@@ -414,6 +414,24 @@ const _abi = [
|
|
|
414
414
|
stateMutability: "view",
|
|
415
415
|
type: "function",
|
|
416
416
|
},
|
|
417
|
+
{
|
|
418
|
+
inputs: [],
|
|
419
|
+
name: "getManagerFee",
|
|
420
|
+
outputs: [
|
|
421
|
+
{
|
|
422
|
+
internalType: "address",
|
|
423
|
+
name: "admin",
|
|
424
|
+
type: "address",
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
internalType: "uint32",
|
|
428
|
+
name: "feeBps",
|
|
429
|
+
type: "uint32",
|
|
430
|
+
},
|
|
431
|
+
],
|
|
432
|
+
stateMutability: "view",
|
|
433
|
+
type: "function",
|
|
434
|
+
},
|
|
417
435
|
{
|
|
418
436
|
inputs: [
|
|
419
437
|
{
|
|
@@ -447,6 +465,16 @@ const _abi = [
|
|
|
447
465
|
name: "totalFees",
|
|
448
466
|
type: "uint256",
|
|
449
467
|
},
|
|
468
|
+
{
|
|
469
|
+
internalType: "uint256",
|
|
470
|
+
name: "protocolFees",
|
|
471
|
+
type: "uint256",
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
internalType: "uint256",
|
|
475
|
+
name: "managerFees",
|
|
476
|
+
type: "uint256",
|
|
477
|
+
},
|
|
450
478
|
{
|
|
451
479
|
internalType: "int96",
|
|
452
480
|
name: "incomeFlowRate",
|
|
@@ -457,6 +485,11 @@ const _abi = [
|
|
|
457
485
|
name: "feeRate",
|
|
458
486
|
type: "int96",
|
|
459
487
|
},
|
|
488
|
+
{
|
|
489
|
+
internalType: "int96",
|
|
490
|
+
name: "managerFeeRate",
|
|
491
|
+
type: "int96",
|
|
492
|
+
},
|
|
460
493
|
],
|
|
461
494
|
stateMutability: "view",
|
|
462
495
|
type: "function",
|
|
@@ -620,6 +653,21 @@ const _abi = [
|
|
|
620
653
|
name: "lastIncomeRate",
|
|
621
654
|
type: "int96",
|
|
622
655
|
},
|
|
656
|
+
{
|
|
657
|
+
internalType: "address",
|
|
658
|
+
name: "lastManagerFeeRecipient",
|
|
659
|
+
type: "address",
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
internalType: "uint256",
|
|
663
|
+
name: "protocolFees",
|
|
664
|
+
type: "uint256",
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
internalType: "uint256",
|
|
668
|
+
name: "managerFees",
|
|
669
|
+
type: "uint256",
|
|
670
|
+
},
|
|
623
671
|
],
|
|
624
672
|
stateMutability: "view",
|
|
625
673
|
type: "function",
|
|
@@ -5,48 +5,44 @@
|
|
|
5
5
|
import { Contract, Signer, utils } from "ethers";
|
|
6
6
|
import type { Provider } from "@ethersproject/providers";
|
|
7
7
|
import type {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
} from "../../../../contracts/
|
|
8
|
+
IGoodCollectiveSuperApp,
|
|
9
|
+
IGoodCollectiveSuperAppInterface,
|
|
10
|
+
} from "../../../../contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp";
|
|
11
11
|
|
|
12
12
|
const _abi = [
|
|
13
13
|
{
|
|
14
14
|
inputs: [],
|
|
15
|
-
name: "
|
|
16
|
-
outputs: [
|
|
17
|
-
{
|
|
18
|
-
internalType: "uint32",
|
|
19
|
-
name: "",
|
|
20
|
-
type: "uint32",
|
|
21
|
-
},
|
|
22
|
-
],
|
|
23
|
-
stateMutability: "view",
|
|
24
|
-
type: "function",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
inputs: [],
|
|
28
|
-
name: "feeRecipient",
|
|
15
|
+
name: "getAdminFee",
|
|
29
16
|
outputs: [
|
|
30
17
|
{
|
|
31
18
|
internalType: "address",
|
|
32
|
-
name: "",
|
|
19
|
+
name: "admin",
|
|
33
20
|
type: "address",
|
|
34
21
|
},
|
|
22
|
+
{
|
|
23
|
+
internalType: "uint32",
|
|
24
|
+
name: "feeBps",
|
|
25
|
+
type: "uint32",
|
|
26
|
+
},
|
|
35
27
|
],
|
|
36
28
|
stateMutability: "view",
|
|
37
29
|
type: "function",
|
|
38
30
|
},
|
|
39
31
|
] as const;
|
|
40
32
|
|
|
41
|
-
export class
|
|
33
|
+
export class IGoodCollectiveSuperApp__factory {
|
|
42
34
|
static readonly abi = _abi;
|
|
43
|
-
static createInterface():
|
|
44
|
-
return new utils.Interface(_abi) as
|
|
35
|
+
static createInterface(): IGoodCollectiveSuperAppInterface {
|
|
36
|
+
return new utils.Interface(_abi) as IGoodCollectiveSuperAppInterface;
|
|
45
37
|
}
|
|
46
38
|
static connect(
|
|
47
39
|
address: string,
|
|
48
40
|
signerOrProvider: Signer | Provider
|
|
49
|
-
):
|
|
50
|
-
return new Contract(
|
|
41
|
+
): IGoodCollectiveSuperApp {
|
|
42
|
+
return new Contract(
|
|
43
|
+
address,
|
|
44
|
+
_abi,
|
|
45
|
+
signerOrProvider
|
|
46
|
+
) as IGoodCollectiveSuperApp;
|
|
51
47
|
}
|
|
52
48
|
}
|
|
@@ -7,7 +7,7 @@ import type { Provider } from "@ethersproject/providers";
|
|
|
7
7
|
import type {
|
|
8
8
|
IMembersValidator,
|
|
9
9
|
IMembersValidatorInterface,
|
|
10
|
-
} from "
|
|
10
|
+
} from "../../../contracts/Interfaces.sol/IMembersValidator";
|
|
11
11
|
|
|
12
12
|
const _abi = [
|
|
13
13
|
{
|