0 txs
0 calls
constructor
constructor(address gfiAddress, address farmFactoryAddress, uint256 _requiredTier, address _tierManager)
functions
allShareTokens
viewfunction allShareTokens(uint256) view returns (address)
checkTiers
viewfunction checkTiers() view returns (bool)
dustPan
viewfunction dustPan() view returns (address)
farmAddressToShareInfo
viewfunction farmAddressToShareInfo(address) view returns (address depositToken, address rewardToken, address shareToken, uint256 minHarvest, uint256 maxCallerReward, uint256 callerFeePercent, bool lpFarm, address lpA, address lpB)
feeManager
viewfunction feeManager() view returns (address)
getFarm
viewfunction getFarm(address) view returns (address)
getShareToken
viewfunction getShareToken(address) view returns (address)
gfi
viewfunction gfi() view returns (address)
lastHarvestDate
viewfunction lastHarvestDate(address) view returns (uint256)
owner
viewfunction owner() view returns (address)
priceOracle
viewfunction priceOracle() view returns (address)
requiredTier
viewfunction requiredTier() view returns (uint256)
rewardBalance
viewfunction rewardBalance(address) view returns (uint256)
router
viewfunction router() view returns (address)
ShareTokenImplementation
viewfunction ShareTokenImplementation() view returns (address)
slippage
viewfunction slippage() view returns (uint256)
swapFactory
viewfunction swapFactory() view returns (address)
tierManager
viewfunction tierManager() view returns (address)
vaultFee
viewfunction vaultFee() view returns (uint256)
whitelist
viewfunction whitelist(address) view returns (bool)
adjustWhitelist
nonpayablefunction adjustWhitelist(address _address, bool _bool)
changeCheckTiers
nonpayablefunction changeCheckTiers(bool _bool)
changeShareInfo
nonpayablefunction changeShareInfo(address farmAddress, uint256 _minHarvest, uint256 _maxCallerReward, uint256 _callerFeePercent)
changeTierManager
nonpayablefunction changeTierManager(address _tierManager)
changeVaultFee
nonpayablefunction changeVaultFee(uint256 newFee)
createCompounder
nonpayablefunction createCompounder(address _farmAddress, address _depositToken, address _rewardToken, uint256 _maxCallerReward, uint256 _callerFee, uint256 _minHarvest, bool _lpFarm, address _lpA, address _lpB)
depositCompounding
nonpayablefunction depositCompounding(address farmAddress, uint256 amountToDeposit)
harvestCompounding
nonpayablefunction harvestCompounding(address farmAddress) returns (uint256 timeTillValid)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateSharedVariables
nonpayablefunction updateSharedVariables(address _dustPan, address _feeManager, address _priceOracle, address _swapFactory, address _router, uint256 _slippage)
withdrawCompounding
nonpayablefunction withdrawCompounding(address farmAddress, uint256 amountToWithdraw)
events
CompounderCreated
event CompounderCreated(address _farmAddress, uint256 requiredTier)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SharedVariablesUpdated
event SharedVariablesUpdated(address _dustPan, address _feeManager, address _priceOracle, address _swapFactory, address _router, uint256 _slippage)
ShareInfoUpdated
event ShareInfoUpdated(address farmAddress, uint256 _minHarvest, uint256 _maxCallerReward, uint256 _callerFeePercent)
TierCheckingUpdated
event TierCheckingUpdated(bool newState)
TierManagerChanged
event TierManagerChanged(address newManager)
VaultFeeChanged
event VaultFeeChanged(uint256 newFee)
whiteListChanged
event whiteListChanged(address _address, bool newBool)
errors
No errors.
creation bytecode
0x6080604052600460085560006012553480156200001b57600080fd5b50604051620067eb380380620067eb8339810160408190526200003e9162000162565b6200004933620000e7565b600280546001600160a01b038087166001600160a01b03199283161790925560038054928616929091169190911790556040516000906200008a9062000137565b604051809103906000f080158015620000a7573d6000803e3d6000fd5b50600480546001600160a01b03199081166001600160a01b03938416179091556013949094556010805490941692169190911790915550620001b5915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61225d806200458e83390190565b80516001600160a01b03811681146200015d57600080fd5b919050565b6000806000806080858703121562000178578384fd5b620001838562000145565b9350620001936020860162000145565b925060408501519150620001aa6060860162000145565b905092959194509250565b6143c980620001c56000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f5780639dcd0b21116100a2578063d0fb020311610071578063d0fb020314610520578063f2fde38b14610533578063f887ea4014610546578063f91d76a31461055957600080fd5b80639dcd0b21146104d4578063a465da9a146104e7578063a5caefe1146104fa578063a75d488d1461050d57600080fd5b806385a83d11116100de57806385a83d111461047a578063867dc0071461048d5780638da5cb5b146104a05780639b19251a146104b157600080fd5b8063715018a6146104365780637308f37d1461043e5780637944f9441461045e5780637c6fb9671461047157600080fd5b80633cc1ef6d116101875780634ffa9619116101565780634ffa9619146103d35780636041b76c146103e657806367b40cf714610403578063696b34e01461042357600080fd5b80633cc1ef6d146102dc5780633e032a3b146102ef578063406acfe9146102f85780634e1fc16a146103c057600080fd5b806313b23a33116101c357806313b23a33146102645780631d9b8009146102775780632630c12f146102a05780633bfc187c146102b357600080fd5b806301ac145b146101f55780630c19b05e146102115780630fcf0ca81461023c57806310e1071e14610251575b600080fd5b6101fe60085481565b6040519081526020015b60405180910390f35b601154610224906001600160a01b031681565b6040516001600160a01b039091168152602001610208565b61024f61024a366004613f27565b61056c565b005b600454610224906001600160a01b031681565b61024f610272366004613dd7565b610a50565b610224610285366004613d98565b6005602052600090815260409020546001600160a01b031681565b600d54610224906001600160a01b031681565b6102246102c1366004613d98565b6006602052600090815260409020546001600160a01b031681565b61024f6102ea366004614034565b610b95565b6101fe60125481565b610368610306366004613d98565b6001602081905260009182526040909120805491810154600282015460038301546004840154600585015460068601546007909601546001600160a01b0397881697958616969486169593949293919260ff8116926101009091048116911689565b604080516001600160a01b039a8b168152988a1660208a0152968916968801969096526060870194909452608086019290925260a0850152151560c0840152831660e083015290911661010082015261012001610208565b600b54610224906001600160a01b031681565b6102246103e13660046140ba565b610c0d565b6014546103f39060ff1681565b6040519015158152602001610208565b6101fe610411366004613d98565b60096020526000908152604090205481565b61024f610431366004613f27565b610c37565b61024f6112e1565b6101fe61044c366004613d98565b600a6020526000908152604090205481565b600e54610224906001600160a01b031681565b6101fe60135481565b61024f610488366004613e4f565b611317565b601054610224906001600160a01b031681565b6000546001600160a01b0316610224565b6103f36104bf366004613d98565b60156020526000908152604090205460ff1681565b61024f6104e2366004613eef565b6118b6565b61024f6104f5366004613d98565b611943565b61024f610508366004613f52565b6119bb565b61024f61051b3660046140ba565b611ab9565b600c54610224906001600160a01b031681565b61024f610541366004613d98565b611b69565b600f54610224906001600160a01b031681565b6101fe610567366004613d98565b611c04565b6001600160a01b038083166000908152600560205260409020548391166105ae5760405162461bcd60e51b81526004016105a5906141fe565b60405180910390fd5b6001600160a01b03808416600090815260016020818152604080842080549381015460029091015482516318160ddd60e01b8152925194871696918216959116938993919285926318160ddd92600480840193829003018186803b15801561061557600080fd5b505afa158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d91906140d2565b604051630cacd00160e11b81523060048201526001600160a01b03841690631959a00290602401604080518083038186803b15801561068b57600080fd5b505afa15801561069f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c3919061406c565b516106ce908961430e565b6106d891906142ee565b604051632770a7eb60e21b81529091506001600160a01b03841690639dc29fac906107099033908b9060040161413a565b602060405180830381600087803b15801561072357600080fd5b505af1158015610737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075b9190614050565b6107b25760405162461bcd60e51b815260206004820152602260248201527f477261766974792046696e616e63653a205348415245204255524e204641494c604482015261115160f21b60648201526084016105a5565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a082319060240160206040518083038186803b1580156107f457600080fd5b505afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c91906140d2565b604051632e1a7d4d60e01b8152600481018490529091506001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092508391506001600160a01b038816906370a082319060240160206040518083038186803b1580156108cd57600080fd5b505afa1580156108e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090591906140d2565b61090f919061432d565b6001600160a01b038b8116600090815260016020819052604090912090810154905492935081169116141561094b57610948838261432d565b90505b60405163a9059cbb60e01b81526001600160a01b0388169063a9059cbb90610979903390879060040161413a565b602060405180830381600087803b15801561099357600080fd5b505af11580156109a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190614050565b610a175760405162461bcd60e51b815260206004820181905260248201527f477261766974792046696e616e63653a205452414e53464552204641494c454460448201526064016105a5565b6001600160a01b038a1660009081526009602052604081208054839290610a3f9084906142d6565b909155505050505050505050505050565b6000546001600160a01b03163314610a7a5760405162461bcd60e51b81526004016105a59061417e565b60646012541115610ad75760405162461bcd60e51b815260206004820152602160248201527f477261766974792046696e616e63653a20494e56414c494420534c49505041476044820152604560f81b60648201526084016105a5565b600b80546001600160a01b038881166001600160a01b03199283168117909355600c80548983169084168117909155600d80548984169085168117909155600e80548985169086168117909155600f80549489169490951684179094556012869055604080519586526020860192909252908401526060830191909152608082015260a081018290527f3266d956d41b582e3e474fa9491751bb90281b5fbb0c6b77feea4bfa389e952d9060c00160405180910390a1505050505050565b6000546001600160a01b03163314610bbf5760405162461bcd60e51b81526004016105a59061417e565b6014805460ff191682151590811790915560405160ff909116151581527f154dad7ef81537b175dafd0aa07f0d1c4ff07d34cf18aa906cbcc9e843bdda6e906020015b60405180910390a150565b60078181548110610c1d57600080fd5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03808316600090815260056020526040902054839116610c705760405162461bcd60e51b81526004016105a5906141fe565b60145460ff1615610d575760135460105460405163f389de7160e01b81523360048201526001600160a01b039091169063f389de7190602401602060405180830381600087803b158015610cc357600080fd5b505af1158015610cd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfb91906140d2565b1015610d575760405162461bcd60e51b815260206004820152602560248201527f43616c6c657220646f6573206e6f7420686f6c64206869676820656e6f756768604482015264103a34b2b960d91b60648201526084016105a5565b6001600160a01b0383811660009081526001602081905260409182902080549181015460029091015492516323b872dd60e01b81523360048201523060248201526044810187905291841693908116921690869084906323b872dd90606401602060405180830381600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e089190614050565b610e605760405162461bcd60e51b8152602060048201526024808201527f477261766974792046696e616e63653a205452414e5346455246524f4d2046416044820152631253115160e21b60648201526084016105a5565b604051630cacd00160e11b81523060048201526000906001600160a01b03831690631959a00290602401604080518083038186803b158015610ea157600080fd5b505afa158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed9919061406c565b5115610fe557604051630cacd00160e11b81523060048201526001600160a01b03831690631959a00290602401604080518083038186803b158015610f1d57600080fd5b505afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f55919061406c565b60000151836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f9257600080fd5b505afa158015610fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fca91906140d2565b610fd4908961430e565b610fde91906142ee565b9050610ff0565b50670de0b6b3a76400005b60405163095ea7b360e01b81526001600160a01b0386169063095ea7b39061101e9085908b9060040161413a565b602060405180830381600087803b15801561103857600080fd5b505af115801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190614050565b506040516370a0823160e01b81523060048201526000906001600160a01b038616906370a082319060240160206040518083038186803b1580156110b357600080fd5b505afa1580156110c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110eb91906140d2565b6001600160a01b038a8116600090815260016020819052604090912090810154905492935081169116141561112757611124888261432d565b90505b60405163b6b55f2560e01b8152600481018990526001600160a01b0384169063b6b55f2590602401600060405180830381600087803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092508391506001600160a01b038816906370a082319060240160206040518083038186803b1580156111c557600080fd5b505afa1580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fd91906140d2565b611207919061432d565b6040516340c10f1960e01b81529091506001600160a01b038616906340c10f1990611238903390879060040161413a565b602060405180830381600087803b15801561125257600080fd5b505af1158015611266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128a9190614050565b610a175760405162461bcd60e51b815260206004820152602260248201527f477261766974792046696e616e63653a205348415245204d494e54204641494c604482015261115160f21b60648201526084016105a5565b6000546001600160a01b0316331461130b5760405162461bcd60e51b81526004016105a59061417e565b6113156000612368565b565b3360009081526015602052604090205460ff166113765760405162461bcd60e51b815260206004820152601b60248201527f43616c6c6572206973206e6f7420696e2077686974656c69737421000000000060448201526064016105a5565b8280156113955750816001600160a01b0316876001600160a01b031614155b156114ab57600e5460405163e6a4390560e01b81526001600160a01b0389811660048301528481166024830152600092169063e6a439059060440160206040518083038186803b1580156113e857600080fd5b505afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114209190613dbb565b6001600160a01b031614156114ab5760405162461bcd60e51b8152602060048201526044602482018190527f52657761726420746f6b656e206d757374206861766520612073776170207061908201527f69722077697468206c7041206966207468657920617265206e6f74207468652060648201526373616d6560e01b608482015260a4016105a5565b6001600160a01b0389811660009081526005602052604090205416156115135760405162461bcd60e51b815260206004820152601b60248201527f536861726520746f6b656e20616c72656164792065786973747321000000000060448201526064016105a5565b60648511156115345760405162461bcd60e51b81526004016105a5906141b3565b6040805160608b901b6bffffffffffffffffffffffff19166020808301919091528251601481840301815260349092019092528051910120600454600090611585906001600160a01b0316836123b8565b905080600560008d6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a60066000836001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506007819080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055506040518061012001604052808b6001600160a01b031681526020018a6001600160a01b03168152602001826001600160a01b031681526020018781526020018981526020018881526020018615158152602001856001600160a01b03168152602001846001600160a01b0316815250600160008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555060e08201518160060160016101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160070160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050806001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561185657600080fd5b505af115801561186a573d6000803e3d6000fd5b505050507f87add05b88a16730e929c030a60ec290ba62d866a3cf3b48454ea9079fe2c8148b6013546040516118a192919061413a565b60405180910390a15050505050505050505050565b6000546001600160a01b031633146118e05760405162461bcd60e51b81526004016105a59061417e565b6001600160a01b038216600081815260156020908152604091829020805460ff19168515159081179091558251938452908301527f9989cec740a9d888e73e94915eaa95e03f36dbca99da0eefb704f816015676ff910160405180910390a15050565b6000546001600160a01b0316331461196d5760405162461bcd60e51b81526004016105a59061417e565b601080546001600160a01b0319166001600160a01b0383169081179091556040519081527f8515f7cd648d4ef565a6af3384f95100d49f77ca7ffb7ae33440dd021759f4f490602001610c02565b6000546001600160a01b031633146119e55760405162461bcd60e51b81526004016105a59061417e565b6001600160a01b03808516600090815260056020526040902054859116611a1e5760405162461bcd60e51b81526004016105a5906141fe565b6064821115611a3f5760405162461bcd60e51b81526004016105a5906141b3565b6001600160a01b0385166000818152600160209081526040918290206003810188905560048101879055600501859055815192835282018690528101849052606081018390527f888bc7055b5ed4dd9268567be0392de17a66a6a38db358e71d50539e5967479e9060800160405180910390a15050505050565b6000546001600160a01b03163314611ae35760405162461bcd60e51b81526004016105a59061417e565b6005811115611b345760405162461bcd60e51b815260206004820152601a60248201527f477261766974792046696e616e63653a20464f5242494444454e00000000000060448201526064016105a5565b60088190556040518181527f381a4e4f0d2b07034ab03996e6af5af8fc5c4aa0bc0eb8d37b592e07d606379890602001610c02565b6000546001600160a01b03163314611b935760405162461bcd60e51b81526004016105a59061417e565b6001600160a01b038116611bf85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105a5565b611c0181612368565b50565b6001600160a01b038082166000908152600560205260408120549091839116611c3f5760405162461bcd60e51b81526004016105a5906141fe565b6001600160a01b0380841660009081526001602081905260409091209081015490548216911614611fc4576001600160a01b03831660009081526001602052604090206006015460ff1615611e9e57600d546001600160a01b03848116600090815260016020526040908190205490516341976e0960e01b815290821660048201529116906341976e0990602401606060405180830381600087803b158015611ce757600080fd5b505af1158015611cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1f919061410d565b6001600160a01b03868116600090815260016020819052604090912090810154600690910154929650811661010090920416149150611e99905057600e546001600160a01b0384811660009081526001602081905260408083206006810154920154905163e6a4390560e01b815261010090920484166004830152831660248201529092919091169063e6a439059060440160206040518083038186803b158015611dc957600080fd5b505afa158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e019190613dbb565b600d546040516341976e0960e01b81526001600160a01b038084166004830152929350600092909116906341976e0990602401606060405180830381600087803b158015611e4e57600080fd5b505af1158015611e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e86919061410d565b9250505080841015611e96578093505b50505b611fc4565b600e546001600160a01b0384811660009081526001602081905260408083208054920154905163e6a4390560e01b81529184166004830152831660248201529092919091169063e6a439059060440160206040518083038186803b158015611f0557600080fd5b505afa158015611f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3d9190613dbb565b600d546040516341976e0960e01b81526001600160a01b0380841660048301529293509116906341976e0990602401606060405180830381600087803b158015611f8657600080fd5b505af1158015611f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbe919061410d565b94505050505b81612362576001600160a01b038381166000818152600160208181526040808420928301546003909301546009909252808420549051637a0787a960e11b8152306004820152929095169492938893919263f40f0f529060240160206040518083038186803b15801561203657600080fd5b505afa15801561204a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206e91906140d2565b61207891906142d6565b10156120d25760405162461bcd60e51b8152602060048201526024808201527f477261766974792046696e616e63653a204d494e2048415256455354204e4f546044820152630813515560e21b60648201526084016105a5565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a082319060240160206040518083038186803b15801561211457600080fd5b505afa158015612128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214c91906140d2565b60405163b6b55f2560e01b8152600060048201529091506001600160a01b0383169063b6b55f2590602401600060405180830381600087803b15801561219157600080fd5b505af11580156121a5573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201528392506001600160a01b03871691506370a082319060240160206040518083038186803b1580156121ea57600080fd5b505afa1580156121fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222291906140d2565b61222c919061432d565b6001600160a01b03881660009081526009602052604090205490935061225290846142d6565b925050506000612262868361245e565b6001600160a01b0387166000908152600960209081526040808320839055600a90915290204290559050801561235e5760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906122c0903390859060040161413a565b602060405180830381600087803b1580156122da57600080fd5b505af11580156122ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123129190614050565b61235e5760405162461bcd60e51b815260206004820181905260248201527f477261766974792046696e616e63653a205452414e53464552204641494c454460448201526064016105a5565b5050505b50919050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528360601b60148201526e5af43d82803e903d91602b57fd5bf360881b6028820152826037826000f59150506001600160a01b0381166124585760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c656400000000000000000060448201526064016105a5565b92915050565b6001600160a01b038083166000908152600160208190526040822080549101546008549293918216929116908590156125f65760006064866008546124a3919061430e565b6124ad91906142ee565b90506124b9818761432d565b6002546001600160a01b03898116600090815260016020819052604090912001549298509182169116141561256c57600254604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c6890602401602060405180830381600087803b15801561252e57600080fd5b505af1158015612542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125669190614050565b506125f4565b600c5460405163a9059cbb60e01b81526001600160a01b038581169263a9059cbb926125a09290911690859060040161413a565b602060405180830381600087803b1580156125ba57600080fd5b505af11580156125ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f29190614050565b505b505b6001600160a01b0386166000908152600160205260409020600501541561269d576001600160a01b03861660009081526001602052604090206005015460649061264190879061430e565b61264b91906142ee565b6001600160a01b038716600090815260016020526040902060040154909450841115612690576001600160a01b03861660009081526001602052604090206004015493505b61269a848661432d565b94505b6001600160a01b0380871660009081526001602081905260409091209081015490548216911614613cb4576040805160028082526060820183526000926020830190803683375050604080516002808252606082018352939450600093909250906020830190803683375050506001600160a01b03891660009081526001602052604090206006015490915060ff1615613986576001600160a01b0388811660009081526001602081905260408220600681015491015491926101009091048116911614612ad4576001600160a01b03808a1660009081526001602081905260408220015485519216918591906127a457634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092018101919091528a82166000908152600191829052604090206006015485516101009091049092169185919081106127ff57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600f5460405163095ea7b360e01b81528783169263095ea7b392612840929116908c9060040161413a565b602060405180830381600087803b15801561285a57600080fd5b505af115801561286e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128929190614050565b50600d5483516001600160a01b039091169063648f95c99085906000906128c957634e487b7160e01b600052603260045260246000fd5b60200260200101516012548b600e60009054906101000a90046001600160a01b03166001600160a01b031663e6a439058960008151811061291a57634e487b7160e01b600052603260045260246000fd5b60200260200101518a60018151811061294357634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b815260040161297d9291906001600160a01b0392831681529116602082015260400190565b60206040518083038186803b15801561299557600080fd5b505afa1580156129a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129cd9190613dbb565b6040518563ffffffff1660e01b81526004016129ec9493929190614153565b6040805180830381600087803b158015612a0557600080fd5b505af1158015612a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3d91906140ea565b50600f546040516338ed173960e01b81529192506001600160a01b0316906338ed173990612a77908b908590889030904290600401614235565b600060405180830381600087803b158015612a9157600080fd5b505af1158015612aa5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612acd9190810190613f8c565b9150612b03565b8782600181518110612af657634e487b7160e01b600052603260045260246000fd5b6020026020010181815250505b6001600160a01b03808a16600090815260016020526040812060060154855161010090910490921691859190612b4957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092018101919091528a82166000908152600191829052604090206007015485519216918591908110612b9d57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505082600081518110612bde57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663095ea7b3600f60009054906101000a90046001600160a01b0316600285600181518110612c2d57634e487b7160e01b600052603260045260246000fd5b6020026020010151612c3f91906142ee565b6040518363ffffffff1660e01b8152600401612c5c92919061413a565b602060405180830381600087803b158015612c7657600080fd5b505af1158015612c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cae9190614050565b50600d5483516001600160a01b039091169063648f95c9908590600090612ce557634e487b7160e01b600052603260045260246000fd5b6020026020010151601254600286600181518110612d1357634e487b7160e01b600052603260045260246000fd5b6020026020010151612d2591906142ee565b8a6040518563ffffffff1660e01b8152600401612d459493929190614153565b6040805180830381600087803b158015612d5e57600080fd5b505af1158015612d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d9691906140ea565b50600f5483519192506001600160a01b0316906338ed17399060029085906001908110612dd357634e487b7160e01b600052603260045260246000fd5b6020026020010151612de591906142ee565b838630426040518663ffffffff1660e01b8152600401612e09959493929190614235565b600060405180830381600087803b158015612e2357600080fd5b505af1158015612e37573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e5f9190810190613f8c565b915082600081518110612e8257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663095ea7b3600f60009054906101000a90046001600160a01b031684600081518110612ecf57634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b8152600401612ef492919061413a565b602060405180830381600087803b158015612f0e57600080fd5b505af1158015612f22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f469190614050565b5082600181518110612f6857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663095ea7b3600f60009054906101000a90046001600160a01b031684600181518110612fb557634e487b7160e01b600052603260045260246000fd5b60200260200101516040518363ffffffff1660e01b8152600401612fda92919061413a565b602060405180830381600087803b158015612ff457600080fd5b505af1158015613008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302c9190614050565b50600060648360008151811061305257634e487b7160e01b600052603260045260246000fd5b6020026020010151601254613067919061430e565b61307191906142ee565b9050600060648460018151811061309857634e487b7160e01b600052603260045260246000fd5b60200260200101516012546130ad919061430e565b6130b791906142ee565b600f5486519192506001600160a01b03169063e8e337009087906000906130ee57634e487b7160e01b600052603260045260246000fd5b60200260200101518760018151811061311757634e487b7160e01b600052603260045260246000fd5b60200260200101518760008151811061314057634e487b7160e01b600052603260045260246000fd5b60200260200101518860018151811061316957634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152604483015260648201526084810185905260a481018490523060c48201524260e482015261010401606060405180830381600087803b1580156131e357600080fd5b505af11580156131f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321b919061410d565b506040516370a0823160e01b815230600482015291935091506001600160a01b038916906370a082319060240160206040518083038186803b15801561326057600080fd5b505afa158015613274573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061329891906140d2565b9950600082856000815181106132be57634e487b7160e01b600052603260045260246000fd5b60200260200101516132d0919061432d565b111561360c57846000815181106132f757634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561334257600080fd5b505afa158015613356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337a91906140d2565b828560008151811061339c57634e487b7160e01b600052603260045260246000fd5b60200260200101516133ae919061432d565b111561351a57846000815181106133d557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663a9059cbb600b60009054906101000a90046001600160a01b03168760008151811061342257634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561346d57600080fd5b505afa158015613481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134a591906140d2565b6040518363ffffffff1660e01b81526004016134c292919061413a565b602060405180830381600087803b1580156134dc57600080fd5b505af11580156134f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135149190614050565b5061360c565b8460008151811061353b57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663a9059cbb600b60009054906101000a90046001600160a01b0316848760008151811061358957634e487b7160e01b600052603260045260246000fd5b602002602001015161359b919061432d565b6040518363ffffffff1660e01b81526004016135b892919061413a565b602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061360a9190614050565b505b6000818560018151811061363057634e487b7160e01b600052603260045260246000fd5b6020026020010151613642919061432d565b111561397e578460018151811061366957634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec91906140d2565b818560018151811061370e57634e487b7160e01b600052603260045260246000fd5b6020026020010151613720919061432d565b111561388c578460018151811061374757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663a9059cbb600b60009054906101000a90046001600160a01b03168760018151811061379457634e487b7160e01b600052603260045260246000fd5b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156137df57600080fd5b505afa1580156137f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061381791906140d2565b6040518363ffffffff1660e01b815260040161383492919061413a565b602060405180830381600087803b15801561384e57600080fd5b505af1158015613862573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138869190614050565b5061397e565b846001815181106138ad57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031663a9059cbb600b60009054906101000a90046001600160a01b031683876001815181106138fb57634e487b7160e01b600052603260045260246000fd5b602002602001015161390d919061432d565b6040518363ffffffff1660e01b815260040161392a92919061413a565b602060405180830381600087803b15801561394457600080fd5b505af1158015613958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397c9190614050565b505b505050613cb1565b600e546001600160a01b0389811660009081526001602081905260408083208054920154905163e6a4390560e01b81529184166004830152831660248201529092919091169063e6a439059060440160206040518083038186803b1580156139ed57600080fd5b505afa158015613a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a259190613dbb565b6001600160a01b03808b16600090815260016020819052604082200154865193945090911691859190613a6857634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092018101919091528a82166000908152600191829052604090205485519216918591908110613ab957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600f5460405163095ea7b360e01b81528783169263095ea7b392613afa929116908c9060040161413a565b602060405180830381600087803b158015613b1457600080fd5b505af1158015613b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b4c9190614050565b50600d546001600160a01b038a8116600090815260016020819052604080832090910154601254915163648f95c960e01b8152929484169363648f95c993613ba0939290911691908e908890600401614153565b6040805180830381600087803b158015613bb957600080fd5b505af1158015613bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bf191906140ea565b50600f546040516338ed173960e01b81529192506001600160a01b0316906338ed173990613c2b908c908590899030904290600401614235565b600060405180830381600087803b158015613c4557600080fd5b505af1158015613c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c819190810190613f8c565b925082600181518110613ca457634e487b7160e01b600052603260045260246000fd5b6020026020010151985050505b50505b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b390613ce2908490899060040161413a565b602060405180830381600087803b158015613cfc57600080fd5b505af1158015613d10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d349190614050565b5060405163b6b55f2560e01b8152600481018690526001600160a01b0382169063b6b55f2590602401600060405180830381600087803b158015613d7757600080fd5b505af1158015613d8b573d6000803e3d6000fd5b5050505050505092915050565b600060208284031215613da9578081fd5b8135613db481614370565b9392505050565b600060208284031215613dcc578081fd5b8151613db481614370565b60008060008060008060c08789031215613def578182fd5b8635613dfa81614370565b95506020870135613e0a81614370565b94506040870135613e1a81614370565b93506060870135613e2a81614370565b92506080870135613e3a81614370565b8092505060a087013590509295509295509295565b60008060008060008060008060006101208a8c031215613e6d578283fd5b8935613e7881614370565b985060208a0135613e8881614370565b975060408a0135613e9881614370565b965060608a0135955060808a0135945060a08a0135935060c08a0135613ebd81614385565b925060e08a0135613ecd81614370565b91506101008a0135613ede81614370565b809150509295985092959850929598565b60008060408385031215613f01578182fd5b8235613f0c81614370565b91506020830135613f1c81614385565b809150509250929050565b60008060408385031215613f39578182fd5b8235613f4481614370565b946020939093013593505050565b60008060008060808587031215613f67578384fd5b8435613f7281614370565b966020860135965060408601359560600135945092505050565b60006020808385031215613f9e578182fd5b825167ffffffffffffffff80821115613fb5578384fd5b818501915085601f830112613fc8578384fd5b815181811115613fda57613fda61435a565b8060051b9150613feb8483016142a5565b8181528481019084860184860187018a1015614005578788fd5b8795505b83861015614027578051835260019590950194918601918601614009565b5098975050505050505050565b600060208284031215614045578081fd5b8135613db481614385565b600060208284031215614061578081fd5b8151613db481614385565b60006040828403121561407d578081fd5b6040516040810181811067ffffffffffffffff821117156140a0576140a061435a565b604052825181526020928301519281019290925250919050565b6000602082840312156140cb578081fd5b5035919050565b6000602082840312156140e3578081fd5b5051919050565b600080604083850312156140fc578182fd5b505080516020909101519092909150565b600080600060608486031215614121578081fd5b8351925060208401519150604084015190509250925092565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03948516815260208101939093526040830191909152909116606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f477261766974792046696e616e63653a20494e56414c49442043414c4c45522060408201526a1191514814115490d1539560aa1b606082015260800190565b6020808252601a908201527f436f6d706f756e64657220646f6573206e6f7420657869737421000000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156142845784516001600160a01b03168352938301939183019160010161425f565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156142ce576142ce61435a565b604052919050565b600082198211156142e9576142e9614344565b500190565b60008261430957634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561432857614328614344565b500290565b60008282101561433f5761433f614344565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611c0157600080fd5b8015158114611c0157600080fdfea2646970667358221220280db11b1b074ea2aad5b7bd86f999c7954f66d235fe6804b5087c78f2a9622964736f6c63430008040033608060405234801561001057600080fd5b5061223d806100206000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638129fc1c116100c3578063a9059cbb1161007c578063a9059cbb14610299578063aca8036b146102ac578063aee4d7d0146102d7578063b3d3d37e146102df578063dd62ed3e146102e7578063f07c35491461032057600080fd5b80638129fc1c1461024557806395d89b411461024f578063981b24d0146102575780639dc29fac1461026a578063a23362541461027d578063a457c2d71461028657600080fd5b8063313ce56711610115578063313ce567146101c157806339509351146101d057806340c10f19146101e35780634ee2cd7e146101f657806370a0823114610209578063791c02c81461023257600080fd5b806306fdde0314610152578063095ea7b31461017057806318160ddd1461019357806323b872dd146101a557806323c2053a146101b8575b600080fd5b61015a610333565b6040516101679190611f56565b60405180910390f35b61018361017e366004611e01565b6103c5565b6040519015158152602001610167565b6003545b604051908152602001610167565b6101836101b3366004611dc1565b6103dc565b610197600c5481565b60405160128152602001610167565b6101836101de366004611e01565b61048b565b6101836101f1366004611e01565b6104c7565b610197610204366004611e01565b6104eb565b610197610217366004611d51565b6001600160a01b031660009081526001602052604090205490565b610197610240366004611d51565b610544565b61024d6105a2565b005b61015a61067a565b610197610265366004611f26565b610689565b610183610278366004611e01565b6106b4565b610197600b5481565b610183610294366004611e01565b6106d8565b6101836102a7366004611e01565b610771565b600a546102bf906001600160a01b031681565b6040516001600160a01b039091168152602001610167565b61019761077e565b61024d61078d565b6101976102f5366004611d89565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61019761032e366004611d51565b610d61565b60606004805461034290612177565b80601f016020809104026020016040519081016040528092919081815260200182805461036e90612177565b80156103bb5780601f10610390576101008083540402835291602001916103bb565b820191906000526020600020905b81548152906001019060200180831161039e57829003601f168201915b5050505050905090565b60006103d23384846112f4565b5060015b92915050565b60006103e9848484611418565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104735760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61048085338584036112f4565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103d29185906104c290869061202f565b6112f4565b600a546000906001600160a01b031633146104e157600080fd5b6103d283836115f2565b6001600160a01b0382166000908152600660205260408120819081906105129085906116dd565b9150915081610539576001600160a01b03851660009081526001602052604090205461053b565b805b95945050505050565b600080610553836102046117e8565b90506105616012600a612096565b600c546105706012600a612096565b600b5461057d9085612141565b6105879190612047565b6105919190612141565b61059b9190612047565b9392505050565b600054610100900460ff16806105bb575060005460ff16155b6105d75760405162461bcd60e51b815260040161046a90611fa9565b600054610100900460ff161580156105f9576000805461ffff19166101011790555b600a80546001600160a01b03191633179055604080518082018252601a81527f477261766974792046696e616e6365204661726d205368617265000000000000602080830191909152825180840190935260068352654746492d465360d01b90830152610665916117f3565b8015610677576000805461ff00191690555b50565b60606005805461034290612177565b60008060006106998460076116dd565b91509150816106aa576003546106ac565b805b949350505050565b600a546000906001600160a01b031633146106ce57600080fd5b6103d28383611888565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561075a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161046a565b61076733858584036112f4565b5060019392505050565b60006103d2338484611418565b60006107886117e8565b905090565b600a60009054906101000a90046001600160a01b03166001600160a01b031663867dc0076040518163ffffffff1660e01b815260040160206040518083038186803b1580156107db57600080fd5b505afa1580156107ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108139190611d6d565b6001600160a01b0316336001600160a01b03161461083057600080fd5b6108386119e2565b50600a54604051630eff061f60e21b81523060048201526000916001600160a01b031690633bfc187c9060240160206040518083038186803b15801561087d57600080fd5b505afa158015610891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b59190611d6d565b600a54604051630cacd00160e11b81526001600160a01b03918216600482015291925060009190831690631959a00290602401604080518083038186803b1580156108ff57600080fd5b505afa158015610913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109379190611ecc565b905061094260035490565b81516109506012600a612096565b61095a9190612141565b6109649190612047565b600b55600a5460405163406acfe960e01b81526001600160a01b038481166004830152600092169063406acfe9906024016101206040518083038186803b1580156109ae57600080fd5b505afa1580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e69190611e2c565b905080600001516001600160a01b0316600a60009054906101000a90046001600160a01b03166001600160a01b0316630c19b05e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4457600080fd5b505afa158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c9190611d6d565b6001600160a01b03161415610a9f57610a976012600a612096565b600c55505050565b8060c0015115610d5657600a5460408051631e513e5160e21b815290516000926001600160a01b031691637944f944916004808301926020929190829003018186803b158015610aee57600080fd5b505afa158015610b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b269190611d6d565b60e083015161010084015160405163e6a4390560e01b81526001600160a01b039283166004820152908216602482015291169063e6a439059060440160206040518083038186803b158015610b7a57600080fd5b505afa158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb29190611d6d565b90506000600a60009054906101000a90046001600160a01b03166001600160a01b0316630c19b05e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0457600080fd5b505afa158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190611d6d565b6040516370a0823160e01b81526001600160a01b03848116600483015291909116906370a082319060240160206040518083038186803b158015610c7f57600080fd5b505afa158015610c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb79190611f3e565b9050816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf257600080fd5b505afa158015610d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2a9190611f3e565b81610d376012600a612096565b610d419190612141565b610d4b9190612047565b600c5550610d5c9050565b6000600c555b505050565b600a54604051630eff061f60e21b815230600482015260009182916001600160a01b0390911690633bfc187c9060240160206040518083038186803b158015610da957600080fd5b505afa158015610dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de19190611d6d565b600a54604051630cacd00160e11b81526001600160a01b03918216600482015291925060009190831690631959a00290602401604080518083038186803b158015610e2b57600080fd5b505afa158015610e3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e639190611ecc565b90506000610e7060035490565b8251610e7e6012600a612096565b610e889190612141565b610e929190612047565b600a5460405163406acfe960e01b81526001600160a01b0386811660048301529293506000928392169063406acfe9906024016101206040518083038186803b158015610ede57600080fd5b505afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f169190611e2c565b905080600001516001600160a01b0316600a60009054906101000a90046001600160a01b03166001600160a01b0316630c19b05e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611d6d565b6001600160a01b03161415610fce57610fc76012600a612096565b9150611288565b8060c001511561128357600a5460408051631e513e5160e21b815290516000926001600160a01b031691637944f944916004808301926020929190829003018186803b15801561101d57600080fd5b505afa158015611031573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110559190611d6d565b60e083015161010084015160405163e6a4390560e01b81526001600160a01b039283166004820152908216602482015291169063e6a439059060440160206040518083038186803b1580156110a957600080fd5b505afa1580156110bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e19190611d6d565b90506000600a60009054906101000a90046001600160a01b03166001600160a01b0316630c19b05e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190611d6d565b6040516370a0823160e01b81526001600160a01b03848116600483015291909116906370a082319060240160206040518083038186803b1580156111ae57600080fd5b505afa1580156111c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e69190611f3e565b9050816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561122157600080fd5b505afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112599190611f3e565b816112666012600a612096565b6112709190612141565b61127a9190612047565b93505050611288565b600091505b6112946012600a612096565b826112a16012600a612096565b856112c18b6001600160a01b031660009081526001602052604090205490565b6112cb9190612141565b6112d59190612047565b6112df9190612141565b6112e99190612047565b979650505050505050565b6001600160a01b0383166113565760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161046a565b6001600160a01b0382166113b75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161046a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661147c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161046a565b6001600160a01b0382166114de5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161046a565b6114e9838383611a3c565b6001600160a01b038316600090815260016020526040902054818110156115615760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161046a565b6001600160a01b0380851660009081526001602052604080822085850390559185168152908120805484929061159890849061202f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115e491815260200190565b60405180910390a350505050565b6001600160a01b0382166116485760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161046a565b61165460008383611a3c565b8060036000828254611666919061202f565b90915550506001600160a01b0382166000908152600160205260408120805483929061169390849061202f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600080600084116117295760405162461bcd60e51b815260206004820152601660248201527504552433230536e617073686f743a20696420697320360541b604482015260640161046a565b6117316117e8565b8411156117805760405162461bcd60e51b815260206004820152601d60248201527f4552433230536e617073686f743a206e6f6e6578697374656e74206964000000604482015260640161046a565b600061178c8486611a84565b84549091508114156117a55760008092509250506117e1565b60018460010182815481106117ca57634e487b7160e01b600052603260045260246000fd5b906000526020600020015492509250506117e1565b505b9250929050565b600061078860095490565b600054610100900460ff168061180c575060005460ff16155b6118285760405162461bcd60e51b815260040161046a90611fa9565b600054610100900460ff1615801561184a576000805461ffff19166101011790555b825161185d906004906020860190611c9d565b508151611871906005906020850190611c9d565b508015610d5c576000805461ff0019169055505050565b6001600160a01b0382166118e85760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161046a565b6118f482600083611a3c565b6001600160a01b038216600090815260016020526040902054818110156119685760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161046a565b6001600160a01b0383166000908152600160205260408120838303905560038054849290611997908490612160565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60006119f2600980546001019055565b60006119fc6117e8565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb6781604051611a2f91815260200190565b60405180910390a1919050565b6001600160a01b038316611a5b57611a5382611b63565b610d5c611b96565b6001600160a01b038216611a7257611a5383611b63565b611a7b83611b63565b610d5c82611b63565b8154600090611a95575060006103d6565b82546000905b80821015611aff576000611aaf8383611ba6565b905084868281548110611ad257634e487b7160e01b600052603260045260246000fd5b90600052602060002001541115611aeb57809150611af9565b611af681600161202f565b92505b50611a9b565b600082118015611b4257508385611b17600185612160565b81548110611b3557634e487b7160e01b600052603260045260246000fd5b9060005260206000200154145b15611b5b57611b52600183612160565b925050506103d6565b5090506103d6565b6001600160a01b03811660009081526006602090815260408083206001909252909120546106779190611bfd565b611bfd565b611ba46007611b9160035490565b565b60006002611bb481846121b2565b611bbf6002866121b2565b611bc9919061202f565b611bd39190612047565b611bde600284612047565b611be9600286612047565b611bf3919061202f565b61059b919061202f565b6000611c076117e8565b905080611c1384611c47565b1015610d5c578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b8054600090611c5857506000919050565b81548290611c6890600190612160565b81548110611c8657634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b919050565b828054611ca990612177565b90600052602060002090601f016020900481019282611ccb5760008555611d11565b82601f10611ce457805160ff1916838001178555611d11565b82800160010185558215611d11579182015b82811115611d11578251825591602001919060010190611cf6565b50611d1d929150611d21565b5090565b5b80821115611d1d5760008155600101611d22565b8051611c98816121f2565b80518015158114611c9857600080fd5b600060208284031215611d62578081fd5b813561059b816121f2565b600060208284031215611d7e578081fd5b815161059b816121f2565b60008060408385031215611d9b578081fd5b8235611da6816121f2565b91506020830135611db6816121f2565b809150509250929050565b600080600060608486031215611dd5578081fd5b8335611de0816121f2565b92506020840135611df0816121f2565b929592945050506040919091013590565b60008060408385031215611e13578182fd5b8235611e1e816121f2565b946020939093013593505050565b60006101208284031215611e3e578081fd5b611e46611ff7565b611e4f83611d36565b8152611e5d60208401611d36565b6020820152611e6e60408401611d36565b6040820152606083015160608201526080830151608082015260a083015160a0820152611e9d60c08401611d41565b60c0820152611eae60e08401611d36565b60e0820152610100611ec1818501611d36565b908201529392505050565b600060408284031215611edd578081fd5b6040516040810181811067ffffffffffffffff82111715611f0c57634e487b7160e01b83526041600452602483fd5b604052825181526020928301519281019290925250919050565b600060208284031215611f37578081fd5b5035919050565b600060208284031215611f4f578081fd5b5051919050565b6000602080835283518082850152825b81811015611f8257858101830151858201604001528201611f66565b81811115611f935783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b604051610120810167ffffffffffffffff8111828210171561202957634e487b7160e01b600052604160045260246000fd5b60405290565b60008219821115612042576120426121c6565b500190565b600082612056576120566121dc565b500490565b600181815b808511156117df57816000190482111561207c5761207c6121c6565b8085161561208957918102915b93841c9390800290612060565b600061059b60ff8416836000826120af575060016103d6565b816120bc575060006103d6565b81600181146120d257600281146120dc576120f8565b60019150506103d6565b60ff8411156120ed576120ed6121c6565b50506001821b6103d6565b5060208310610133831016604e8410600b841016171561211b575081810a6103d6565b612125838361205b565b8060001904821115612139576121396121c6565b029392505050565b600081600019048311821515161561215b5761215b6121c6565b500290565b600082821015612172576121726121c6565b500390565b600181811c9082168061218b57607f821691505b602082108114156121ac57634e487b7160e01b600052602260045260246000fd5b50919050565b6000826121c1576121c16121dc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b038116811461067757600080fdfea2646970667358221220c0046bd8484c7f9d5ce8736689f567d87c99123700bc2d0b0fd3f49323d4a6ce64736f6c63430008040033000000000000000000000000874e178a2f3f3f9d34db862453cd756e7eab038100000000000000000000000041d8920282eedccfc2f857e5e40aa560a65d762b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000874e178a2f3f3f9d34db862453cd756e7eab0381