0 txs
0 calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
DENOMINATOR
viewfunction DENOMINATOR() view returns (uint256)
earned
viewfunction earned(address _account, address _rewardToken) view returns (uint256)
feeCollector
viewfunction feeCollector() view returns (address)
getPoolsLength
viewfunction getPoolsLength() view returns (uint256)
getRewardTokens
viewfunction getRewardTokens() view returns (address[])
isVotePool
viewfunction isVotePool(address) view returns (bool)
keeper
viewfunction keeper() view returns (address)
lastHarvest
viewfunction lastHarvest() view returns (uint256)
nativeZapper
viewfunction nativeZapper() view returns (address)
owner
viewfunction owner() view returns (address)
protocolFee
viewfunction protocolFee() view returns (uint256)
quo
viewfunction quo() view returns (address)
rewardPool
viewfunction rewardPool() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
totalWeight
viewfunction totalWeight() view returns (uint256)
votePools
viewfunction votePools(uint256) view returns (address)
voterProxy
viewfunction voterProxy() view returns (address)
votingWeights
viewfunction votingWeights(address) view returns (uint256)
deletePool
nonpayablefunction deletePool(address _lp)
getReward
nonpayablefunction getReward()
harvestManually
nonpayablefunction harvestManually(uint256 _epoch) returns (address[] _pools, address[][] rewardTokensList, uint256[][] earnedRewards)
initialize
nonpayablefunction initialize()
renounceOwnership
nonpayablefunction renounceOwnership()
resetDelegateVoteByOwner
nonpayablefunction resetDelegateVoteByOwner(address[] _users)
setKeeper
nonpayablefunction setKeeper(address _keeper)
setParams
nonpayablefunction setParams(address _quo, address _thenaVoterProxy, address _rewardPool, address _nativeZapper, address _feeCollector)
setRewardPool
nonpayablefunction setRewardPool(address _rewardPool)
stakeFor
nonpayablefunction stakeFor(address _for, uint256 _amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateVote
nonpayablefunction updateVote()
updateWeight
nonpayablefunction updateWeight(address _lp, uint256 _weight)
updateWeights
nonpayablefunction updateWeights(address[] _lps, uint256[] _weights)
withdrawFor
nonpayablefunction withdrawFor(address _for, uint256 _amount)
events
KeeperUpdated
event KeeperUpdated(address _keeper)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PoolDeleted
event PoolDeleted(address _lp)
QuoHarvested
event QuoHarvested(uint256 _amount, uint256 _fee)
RewardHarvested
event RewardHarvested(address rewardToken, uint256 earnedReward, uint256 fee)
WeightUpdate
event WeightUpdate(address _lp, uint256 _weight)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613ba8806100206000396000f3fe6080604052600436106101fd5760003560e01c8063829f6fec1161010d578063b0e21e8a116100a0578063ce883cdb1161006f578063ce883cdb14610547578063db518db21461055c578063e789b1481461057c578063f1a392da1461059c578063f2fde38b146105b157610204565b8063b0e21e8a146104db578063baa53e97146104f0578063c415b95c14610510578063c4f59f9b1461052557610204565b806396c82e57116100dc57806396c82e57146104715780639776e94b1461048657806397b0f205146104a6578063aced1661146104c657610204565b8063829f6fec146104035780638310a9a9146104325780638da5cb5b14610447578063918f86741461045c57610204565b8063493da75311610190578063715018a61161015f578063715018a614610379578063748747e61461038e57806374c5ad4f146103ae57806378238c37146103ce5780638129fc1c146103ee57610204565b8063493da7531461030f578063594aa9671461032f57806366666aa91461034457806370a082311461035957610204565b80632ea8f114116101cc5780632ea8f1141461028d5780632ee40908146102ad5780633d18b912146102cd5780633edcd7bc146102e257610204565b80630e82e52a1461020957806318160ddd146102205780631ba980b31461024b578063211dc32d1461026d57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6105d1565b005b34801561022c57600080fd5b50610235610a1c565b6040516102429190613aaa565b60405180910390f35b34801561025757600080fd5b50610260610a9e565b60405161024291906133ea565b34801561027957600080fd5b50610235610288366004612fcc565b610aad565b34801561029957600080fd5b5061021e6102a836600461309f565b610b39565b3480156102b957600080fd5b5061021e6102c8366004613074565b610c2d565b3480156102d957600080fd5b5061021e6110cf565b3480156102ee57600080fd5b506103026102fd366004612f94565b611133565b604051610242919061358e565b34801561031b57600080fd5b5061023561032a366004612f94565b611148565b34801561033b57600080fd5b5061026061115a565b34801561035057600080fd5b50610260611169565b34801561036557600080fd5b50610235610374366004612f94565b611178565b34801561038557600080fd5b5061021e6111f9565b34801561039a57600080fd5b5061021e6103a9366004612f94565b611278565b3480156103ba57600080fd5b5061021e6103c9366004613213565b611303565b3480156103da57600080fd5b5061021e6103e9366004612f94565b6113c1565b3480156103fa57600080fd5b5061021e61143e565b34801561040f57600080fd5b5061042361041e366004613329565b6114c8565b60405161024293929190613465565b34801561043e57600080fd5b506102606117a6565b34801561045357600080fd5b506102606117b5565b34801561046857600080fd5b506102356117c4565b34801561047d57600080fd5b506102356117ca565b34801561049257600080fd5b5061021e6104a1366004613074565b6117d0565b3480156104b257600080fd5b5061021e6104c1366004612f94565b611827565b3480156104d257600080fd5b50610260611ada565b3480156104e757600080fd5b50610235611ae9565b3480156104fc57600080fd5b5061026061050b366004613329565b611aef565b34801561051c57600080fd5b50610260611b16565b34801561053157600080fd5b5061053a611b25565b6040516102429190613452565b34801561055357600080fd5b50610235611ba6565b34801561056857600080fd5b5061021e610577366004613074565b611bac565b34801561058857600080fd5b5061021e610597366004613004565b61200f565b3480156105a857600080fd5b5061023561216e565b3480156105bd57600080fd5b5061021e6105cc366004612f94565b612174565b60675460408051635cbeecf160e11b815290516000926001600160a01b03169163b97dd9e2916004808301926020929190829003018186803b15801561061657600080fd5b505afa15801561062a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064e9190613341565b905062093a80606e548203106109de57606754604051632a923f8b60e11b81526060916001600160a01b0316906355247f169061068f9030906004016133ea565b60006040518083038186803b1580156106a757600080fd5b505afa1580156106bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106e391908101906132d6565b905060005b81518110156109d6576067548251606091829182916001600160a01b03169063580da7089087908790811061071957fe5b6020026020010151306040518363ffffffff1660e01b815260040161073f929190613ab3565b60006040518083038186803b15801561075757600080fd5b505afa15801561076b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107939190810190613141565b606754885193965091945092506001600160a01b031690636930fd2a908790879081106107bc57fe5b60200260200101516040518263ffffffff1660e01b81526004016107e09190613aaa565b600060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b5050505060005b82518110156109c65760005b83828151811061082d57fe5b6020026020010151518110156109bd57600084838151811061084b57fe5b6020026020010151828151811061085e57fe5b60200260200101519050600084848151811061087657fe5b6020026020010151838151811061088957fe5b6020026020010151905060008111156109b357600080606d541180156108b957506068546001600160a01b031615155b156108fc576108df6127106108d984606d5461222b90919063ffffffff16565b90612265565b6068549091506108fc906001600160a01b038581169116836122a7565b600061090883836122d8565b606a549091506109239085906001600160a01b03168361231a565b606a546040516304d0c2c560e01b81526001600160a01b03909116906304d0c2c5906109559087908590600401613418565b600060405180830381600087803b15801561096f57600080fd5b505af1158015610983573d6000803e3d6000fd5b50505050600080516020613b538339815191528484846040516109a893929190613431565b60405180910390a150505b5050600101610821565b50600101610815565b5050600190920191506106e89050565b5050606e8190555b6067546001600160a01b03163314610a115760405162461bcd60e51b8152600401610a089061371b565b60405180910390fd5b610a196123cb565b50565b606a54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610a6157600080fd5b505afa158015610a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a999190613341565b905090565b6067546001600160a01b031681565b606a5460405163211dc32d60e01b81526000916001600160a01b03169063211dc32d90610ae090869086906004016133fe565b60206040518083038186803b158015610af857600080fd5b505afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b309190613341565b90505b92915050565b610b416124fc565b6033546001600160a01b03908116911614610b6e5760405162461bcd60e51b8152600401610a0890613868565b60005b81811015610c20576000838383818110610b8757fe5b9050602002016020810190610b9c9190612f94565b90506000610ba982611178565b90508015610c1657606a54604051636da8c6d960e11b81526001600160a01b039091169063db518db290610be39085908590600401613418565b600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b505050505b5050600101610b71565b50610c296123cb565b5050565b6067546001600160a01b03163314610c575760405162461bcd60e51b8152600401610a089061371b565b60675460408051635cbeecf160e11b815290516000926001600160a01b03169163b97dd9e2916004808301926020929190829003018186803b158015610c9c57600080fd5b505afa158015610cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd49190613341565b905062093a80606e5482031061105e57606754604051632a923f8b60e11b81526060916001600160a01b0316906355247f1690610d159030906004016133ea565b60006040518083038186803b158015610d2d57600080fd5b505afa158015610d41573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d6991908101906132d6565b905060005b8151811015611056576067548251606091829182916001600160a01b03169063580da70890879087908110610d9f57fe5b6020026020010151306040518363ffffffff1660e01b8152600401610dc5929190613ab3565b60006040518083038186803b158015610ddd57600080fd5b505afa158015610df1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e199190810190613141565b606754885193965091945092506001600160a01b031690636930fd2a90879087908110610e4257fe5b60200260200101516040518263ffffffff1660e01b8152600401610e669190613aaa565b600060405180830381600087803b158015610e8057600080fd5b505af1158015610e94573d6000803e3d6000fd5b5050505060005b82518110156110465760005b838281518110610eb357fe5b60200260200101515181101561103d576000848381518110610ed157fe5b60200260200101518281518110610ee457fe5b602002602001015190506000848481518110610efc57fe5b60200260200101518381518110610f0f57fe5b60200260200101519050600081111561103357600080606d54118015610f3f57506068546001600160a01b031615155b15610f7c57610f5f6127106108d984606d5461222b90919063ffffffff16565b606854909150610f7c906001600160a01b038581169116836122a7565b6000610f8883836122d8565b606a54909150610fa39085906001600160a01b03168361231a565b606a546040516304d0c2c560e01b81526001600160a01b03909116906304d0c2c590610fd59087908590600401613418565b600060405180830381600087803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b50505050600080516020613b5383398151915284848460405161102893929190613431565b60405180910390a150505b5050600101610ea7565b50600101610e9b565b505060019092019150610d6e9050565b5050606e8190555b606a546040516305dc812160e31b81526001600160a01b0390911690632ee40908906110909086908690600401613418565b600060405180830381600087803b1580156110aa57600080fd5b505af11580156110be573d6000803e3d6000fd5b505050506110ca6123cb565b505050565b606a54604051630c00007b60e41b81526001600160a01b039091169063c00007b0906110ff9033906004016133ea565b600060405180830381600087803b15801561111957600080fd5b505af115801561112d573d6000803e3d6000fd5b50505050565b606f6020526000908152604090205460ff1681565b60706020526000908152604090205481565b6066546001600160a01b031681565b606a546001600160a01b031681565b606a546040516370a0823160e01b81526000916001600160a01b0316906370a08231906111a99085906004016133ea565b60206040518083038186803b1580156111c157600080fd5b505afa1580156111d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b339190613341565b6112016124fc565b6033546001600160a01b0390811691161461122e5760405162461bcd60e51b8152600401610a0890613868565b6033546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603380546001600160a01b0319169055565b6112806124fc565b6033546001600160a01b039081169116146112ad5760405162461bcd60e51b8152600401610a0890613868565b606580546001600160a01b0319166001600160a01b0383161790556040517f0425bcd291db1d48816f2a98edc7ecaf6dd5c64b973d9e4b3b6b750763dc6c2e906112f89083906133ea565b60405180910390a150565b61130b6117b5565b6001600160a01b0316336001600160a01b0316148061133457506065546001600160a01b031633145b6113505760405162461bcd60e51b8152600401610a0890613974565b80518251146113715760405162461bcd60e51b8152600401610a08906135cc565b60005b82518110156110ca57600083828151811061138b57fe5b6020026020010151905060008383815181106113a357fe5b602002602001015190506113b78282612500565b5050600101611374565b6113c96124fc565b6033546001600160a01b039081169116146113f65760405162461bcd60e51b8152600401610a0890613868565b6001600160a01b03811661141c5760405162461bcd60e51b8152600401610a089061389d565b606a80546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff168061145757506114576126ed565b80611465575060005460ff16155b6114815760405162461bcd60e51b8152600401610a08906137d9565b600054610100900460ff161580156114ac576000805460ff1961ff0019909116610100171660011790555b6114b46126f3565b8015610a19576000805461ff001916905550565b60608060606114d56124fc565b6033546001600160a01b039081169116146115025760405162461bcd60e51b8152600401610a0890613868565b606754604051630b01b4e160e31b81526001600160a01b039091169063580da708906115349087903090600401613ab3565b60006040518083038186803b15801561154c57600080fd5b505afa158015611560573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115889190810190613141565b6067546040516334987e9560e11b815293965091945092506001600160a01b031690636930fd2a906115be908790600401613aaa565b600060405180830381600087803b1580156115d857600080fd5b505af11580156115ec573d6000803e3d6000fd5b5050505060005b825181101561179e5760005b83828151811061160b57fe5b60200260200101515181101561179557600084838151811061162957fe5b6020026020010151828151811061163c57fe5b60200260200101519050600084848151811061165457fe5b6020026020010151838151811061166757fe5b60200260200101519050600081111561178b57600080606d5411801561169757506068546001600160a01b031615155b156116d4576116b76127106108d984606d5461222b90919063ffffffff16565b6068549091506116d4906001600160a01b038581169116836122a7565b60006116e083836122d8565b606a549091506116fb9085906001600160a01b03168361231a565b606a546040516304d0c2c560e01b81526001600160a01b03909116906304d0c2c59061172d9087908590600401613418565b600060405180830381600087803b15801561174757600080fd5b505af115801561175b573d6000803e3d6000fd5b50505050600080516020613b5383398151915284848460405161178093929190613431565b60405180910390a150505b50506001016115ff565b506001016115f3565b509193909250565b6069546001600160a01b031681565b6033546001600160a01b031690565b61271081565b606c5481565b6117d86117b5565b6001600160a01b0316336001600160a01b0316148061180157506065546001600160a01b031633145b61181d5760405162461bcd60e51b8152600401610a0890613974565b610c298282612500565b61182f6124fc565b6033546001600160a01b0390811691161461185c5760405162461bcd60e51b8152600401610a0890613868565b6001600160a01b0381166000908152606f602052604090205460ff166118945760405162461bcd60e51b8152600401610a0890613625565b60405163b9a09fd560e01b8152600090733a1d0952809f4948d15ebce8d345962a282c4fcb9063b9a09fd5906118ce9085906004016133ea565b60206040518083038186803b1580156118e657600080fd5b505afa1580156118fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191e9190612fb0565b6001600160a01b031614156119455760405162461bcd60e51b8152600401610a089061378b565b6001600160a01b0381166000908152606f60205260409020805460ff19169055606b546060600019820167ffffffffffffffff8111801561198557600080fd5b506040519080825280602002602001820160405280156119af578160200160208202803683370190505b5090506000805b83811015611a5b57846001600160a01b0316606b82815481106119d557fe5b6000918252602090912001546001600160a01b031614156119f95760019150611a53565b606b8181548110611a0657fe5b9060005260206000200160009054906101000a90046001600160a01b03168383830381518110611a3257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001016119b6565b508151611a6f90606b906020850190612d85565b506001600160a01b03841660009081526070602052604081208054606c805491909103905555611a9d6123cb565b7f830dfd6ccb35ca729ef74cbccaf90bcb698344910b951a9c242cf91eccf6beba84604051611acc91906133ea565b60405180910390a150505050565b6065546001600160a01b031681565b606d5481565b606b8181548110611afc57fe5b6000918252602090912001546001600160a01b0316905081565b6068546001600160a01b031681565b606a546040805163c4f59f9b60e01b815290516060926001600160a01b03169163c4f59f9b916004808301926000929190829003018186803b158015611b6a57600080fd5b505afa158015611b7e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a99919081019061310e565b606b5490565b6067546001600160a01b03163314611bd65760405162461bcd60e51b8152600401610a089061371b565b60675460408051635cbeecf160e11b815290516000926001600160a01b03169163b97dd9e2916004808301926020929190829003018186803b158015611c1b57600080fd5b505afa158015611c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c539190613341565b905062093a80606e54820310611fdd57606754604051632a923f8b60e11b81526060916001600160a01b0316906355247f1690611c949030906004016133ea565b60006040518083038186803b158015611cac57600080fd5b505afa158015611cc0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ce891908101906132d6565b905060005b8151811015611fd5576067548251606091829182916001600160a01b03169063580da70890879087908110611d1e57fe5b6020026020010151306040518363ffffffff1660e01b8152600401611d44929190613ab3565b60006040518083038186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d989190810190613141565b606754885193965091945092506001600160a01b031690636930fd2a90879087908110611dc157fe5b60200260200101516040518263ffffffff1660e01b8152600401611de59190613aaa565b600060405180830381600087803b158015611dff57600080fd5b505af1158015611e13573d6000803e3d6000fd5b5050505060005b8251811015611fc55760005b838281518110611e3257fe5b602002602001015151811015611fbc576000848381518110611e5057fe5b60200260200101518281518110611e6357fe5b602002602001015190506000848481518110611e7b57fe5b60200260200101518381518110611e8e57fe5b602002602001015190506000811115611fb257600080606d54118015611ebe57506068546001600160a01b031615155b15611efb57611ede6127106108d984606d5461222b90919063ffffffff16565b606854909150611efb906001600160a01b038581169116836122a7565b6000611f0783836122d8565b606a54909150611f229085906001600160a01b03168361231a565b606a546040516304d0c2c560e01b81526001600160a01b03909116906304d0c2c590611f549087908590600401613418565b600060405180830381600087803b158015611f6e57600080fd5b505af1158015611f82573d6000803e3d6000fd5b50505050600080516020613b53833981519152848484604051611fa793929190613431565b60405180910390a150505b5050600101611e26565b50600101611e1a565b505060019092019150611ced9050565b5050606e8190555b606a54604051636da8c6d960e11b81526001600160a01b039091169063db518db2906110909086908690600401613418565b6120176124fc565b6033546001600160a01b039081169116146120445760405162461bcd60e51b8152600401610a0890613868565b6067546001600160a01b03161561206d5760405162461bcd60e51b8152600401610a08906136e4565b6001600160a01b0385166120935760405162461bcd60e51b8152600401610a0890613a83565b6001600160a01b0383166120b95760405162461bcd60e51b8152600401610a089061389d565b6001600160a01b0382166120df5760405162461bcd60e51b8152600401610a08906135f5565b6001600160a01b0381166121055760405162461bcd60e51b8152600401610a08906138cb565b606680546001600160a01b03199081166001600160a01b039788161790915560678054821695871695909517909455606980548516928616929092179091556068805484169185169190911790556101f4606d55606a8054909216921691909117905542606e55565b606e5481565b61217c6124fc565b6033546001600160a01b039081169116146121a95760405162461bcd60e51b8152600401610a0890613868565b6001600160a01b0381166121cf5760405162461bcd60e51b8152600401610a089061364b565b6033546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b60008261223a57506000610b33565b8282028284828161224757fe5b0414610b305760405162461bcd60e51b8152600401610a0890613827565b6000610b3083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612771565b6122b9836001600160a01b03166127aa565b156122cd576122c882826127cf565b6110ca565b6110ca83838361284b565b6000610b3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612939565b604051636eb1769f60e11b815281906001600160a01b0385169063dd62ed3e9061234a90309087906004016133fe565b60206040518083038186803b15801561236257600080fd5b505afa158015612376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239a9190613341565b10156110ca576123b56001600160a01b038416836000612965565b6110ca6001600160a01b03841683600019612965565b606b548015610a195760608167ffffffffffffffff811180156123ed57600080fd5b50604051908082528060200260200182016040528015612417578160200160208202803683370190505b50905060005b82811015612492576000606b828154811061243457fe5b6000918252602080832090910154606c546001600160a01b03909116808452607090925260409092205490925061247291906108d99061271061222b565b83838151811061247e57fe5b60209081029190910101525060010161241d565b506067546040516306f2c54560e11b81526001600160a01b0390911690630de58a8a906124c690606b908590600401613529565b600060405180830381600087803b1580156124e057600080fd5b505af11580156124f4573d6000803e3d6000fd5b505050505050565b3390565b6001600160a01b0382163014156125295760405162461bcd60e51b8152600401610a08906136c8565b6001600160a01b0382166000908152606f602052604090205460ff166126605760405163b9a09fd560e01b8152600090733a1d0952809f4948d15ebce8d345962a282c4fcb9063b9a09fd5906125839086906004016133ea565b60206040518083038186803b15801561259b57600080fd5b505afa1580156125af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d39190612fb0565b6001600160a01b031614156125fa5760405162461bcd60e51b8152600401610a089061378b565b6001600160a01b0382166000818152606f60205260408120805460ff19166001908117909155606b805491820181559091527fbd43cb8ece8cd1863bcd6082d65c5b0d25665b1ce17980f0da43c0ed545f98b40180546001600160a01b03191690911790555b6001600160a01b038216600090815260706020526040902054606c5461269191839161268b916122d8565b90612a5f565b606c556001600160a01b03821660009081526070602052604090819020829055517fbe8a0bfdbcaa516a8371824f85d831867f7faab1dbc60dbed04a63e2a25c618f906126e19084908490613418565b60405180910390a15050565b303b1590565b600054610100900460ff168061270c575061270c6126ed565b8061271a575060005460ff16155b6127365760405162461bcd60e51b8152600401610a08906137d9565b600054610100900460ff16158015612761576000805460ff1961ff0019909116610100171660011790555b612769612a84565b6114b4612b5e565b600081836127925760405162461bcd60e51b8152600401610a089190613599565b50600083858161279e57fe5b049150505b9392505050565b6001600160a01b03811673efefefefefefefefefefefefefefefefefefefef14919050565b6000826001600160a01b0316826040516127e8906133e7565b60006040518083038185875af1925050503d8060008114612825576040519150601f19603f3d011682016040523d82523d6000602084013e61282a565b606091505b50509050806110ca5760405162461bcd60e51b8152600401610a08906138fb565b60006060846001600160a01b031663a9059cbb8585604051602401612871929190613418565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516128aa91906133cb565b6000604051808303816000865af19150503d80600081146128e7576040519150601f19603f3d011682016040523d82523d6000602084013e6128ec565b606091505b50915091508180156129165750805115806129165750808060200190518101906129169190613309565b6129325760405162461bcd60e51b8152600401610a0890613996565b5050505050565b6000818484111561295d5760405162461bcd60e51b8152600401610a089190613599565b505050900390565b8015806129ed5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e9061299b90309086906004016133fe565b60206040518083038186803b1580156129b357600080fd5b505afa1580156129c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129eb9190613341565b155b612a095760405162461bcd60e51b8152600401610a0890613a2d565b6110ca8363095ea7b360e01b8484604051602401612a28929190613418565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612bdf565b600082820183811015610b305760405162461bcd60e51b8152600401610a0890613691565b600054610100900460ff1680612a9d5750612a9d6126ed565b80612aab575060005460ff16155b612ac75760405162461bcd60e51b8152600401610a08906137d9565b600054610100900460ff16158015612af2576000805460ff1961ff0019909116610100171660011790555b6000612afc6124fc565b603380546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508015610a19576000805461ff001916905550565b600054610100900460ff1680612b775750612b776126ed565b80612b85575060005460ff16155b612ba15760405162461bcd60e51b8152600401610a08906137d9565b600054610100900460ff161580156114b4576000805460ff1961ff0019909116610100171660011790558015610a19576000805461ff001916905550565b6060612c34826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612c6e9092919063ffffffff16565b8051909150156110ca5780806020019051810190612c529190613309565b6110ca5760405162461bcd60e51b8152600401610a08906139e3565b6060612c7d8484600085612c85565b949350505050565b606082471015612ca75760405162461bcd60e51b8152600401610a0890613745565b612cb085612d46565b612ccc5760405162461bcd60e51b8152600401610a089061393d565b60006060866001600160a01b03168587604051612ce991906133cb565b60006040518083038185875af1925050503d8060008114612d26576040519150601f19603f3d011682016040523d82523d6000602084013e612d2b565b606091505b5091509150612d3b828286612d4c565b979650505050505050565b3b151590565b60608315612d5b5750816127a3565b825115612d6b5782518084602001fd5b8160405162461bcd60e51b8152600401610a089190613599565b828054828255906000526020600020908101928215612dda579160200282015b82811115612dda57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612da5565b50612de6929150612dea565b5090565b5b80821115612de65780546001600160a01b0319168155600101612deb565b600082601f830112612e19578081fd5b8151612e2c612e2782613af1565b613aca565b818152915060208083019084810181840286018201871015612e4d57600080fd5b60005b84811015612e75578151612e6381613b3d565b84529282019290820190600101612e50565b505050505092915050565b600082601f830112612e90578081fd5b8151612e9e612e2782613af1565b818152915060208083019084810160005b84811015612e7557612ec6888484518a0101612f36565b84529282019290820190600101612eaf565b600082601f830112612ee8578081fd5b8135612ef6612e2782613af1565b818152915060208083019084810181840286018201871015612f1757600080fd5b60005b84811015612e7557813584529282019290820190600101612f1a565b600082601f830112612f46578081fd5b8151612f54612e2782613af1565b818152915060208083019084810181840286018201871015612f7557600080fd5b60005b84811015612e7557815184529282019290820190600101612f78565b600060208284031215612fa5578081fd5b8135610b3081613b3d565b600060208284031215612fc1578081fd5b8151610b3081613b3d565b60008060408385031215612fde578081fd5b8235612fe981613b3d565b91506020830135612ff981613b3d565b809150509250929050565b600080600080600060a0868803121561301b578081fd5b853561302681613b3d565b9450602086013561303681613b3d565b9350604086013561304681613b3d565b9250606086013561305681613b3d565b9150608086013561306681613b3d565b809150509295509295909350565b60008060408385031215613086578182fd5b823561309181613b3d565b946020939093013593505050565b600080602083850312156130b1578182fd5b823567ffffffffffffffff808211156130c8578384fd5b818501915085601f8301126130db578384fd5b8135818111156130e9578485fd5b86602080830285010111156130fc578485fd5b60209290920196919550909350505050565b60006020828403121561311f578081fd5b815167ffffffffffffffff811115613135578182fd5b612c7d84828501612e09565b600080600060608486031215613155578283fd5b835167ffffffffffffffff8082111561316c578485fd5b61317887838801612e09565b945060209150818601518181111561318e578485fd5b8601601f8101881361319e578485fd5b80516131ac612e2782613af1565b81815284810190838601885b848110156131e1576131cf8d898451890101612e09565b845292870192908701906001016131b8565b505060408a01519097509450505050808211156131fc578283fd5b5061320986828701612e80565b9150509250925092565b60008060408385031215613225578182fd5b823567ffffffffffffffff8082111561323c578384fd5b818501915085601f83011261324f578384fd5b813561325d612e2782613af1565b80828252602080830192508086018a82838702890101111561327d578889fd5b8896505b848710156132a857803561329481613b3d565b845260019690960195928101928101613281565b5090965087013593505050808211156132bf578283fd5b506132cc85828601612ed8565b9150509250929050565b6000602082840312156132e7578081fd5b815167ffffffffffffffff8111156132fd578182fd5b612c7d84828501612f36565b60006020828403121561331a578081fd5b81518015158114610b30578182fd5b60006020828403121561333a578081fd5b5035919050565b600060208284031215613352578081fd5b5051919050565b6000815180845260208085019450808401835b838110156133915781516001600160a01b03168752958201959082019060010161336c565b509495945050505050565b6000815180845260208085019450808401835b83811015613391578151875295820195908201906001016133af565b600082516133dd818460208701613b11565b9190910192915050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b600060208252610b306020830184613359565b6000606082526134786060830186613359565b60208382038185015281865161348e8185613aaa565b91508193508281028201838901865b838110156134c75786830385526134b5838351613359565b9486019492509085019060010161349d565b50508681036040880152875180825284820195509250838302810184019150838801865b8481101561351957601f1983850301875261350784835161339c565b968601969350908501906001016134eb565b50919a9950505050505050505050565b6000604082016040835280855480835260608501915086845260209250828420845b828110156135705781546001600160a01b03168452928401926001918201910161354b565b50505083810382850152613584818661339c565b9695505050505050565b901515815260200190565b60006020825282518060208401526135b8816040850160208701613b11565b601f01601f19169190910160400192915050565b6020808252600f908201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b604082015260600190565b602080825260169082015275696e76616c6964205f6e61746976655a61707065722160501b604082015260600190565b6020808252600c908201526b696e76616c6964205f6c702160a01b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252600290820152613f3f60f01b604082015260600190565b6020808252601c908201527f706172616d73206861766520616c7265616479206265656e2073657400000000604082015260600190565b60208082526010908201526f4f6e6c7920766f7465722070726f787960801b604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252602e908201527f506f6f6c2069732065697468657220696e76616c6964206f7220646f65736e2760408201526d742068617665206120676175676560901b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b602080825260149082015273696e76616c6964205f726577617264506f6f6c2160601b604082015260600190565b602080825260169082015275696e76616c6964205f666565436f6c6c6563746f722160501b604082015260600190565b60208082526022908201527f5472616e7366657248656c7065723a2053656e64696e6720455448206661696c604082015261195960f21b606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b60208082526008908201526710b6b0b730b3b2b960c11b604082015260600190565b6020808252602d908201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260408201526c185b9cd9995c8819985a5b1959609a1b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b6020808252600d908201526c696e76616c6964205f71756f2160981b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b60405181810167ffffffffffffffff81118282101715613ae957600080fd5b604052919050565b600067ffffffffffffffff821115613b07578081fd5b5060209081020190565b60005b83811015613b2c578181015183820152602001613b14565b8381111561112d5750506000910152565b6001600160a01b0381168114610a1957600080fdfef87cfa2d5feaea949ad65bb76a26d8553381bcb6382adbc83dedd48961bf32d9a2646970667358221220d028174d28f958e22b01f6ee9a60a60cfc8f53014816db3a69ec7f82e0aa90cc64736f6c634300060c0033