123 txs
128 calls
constructor
constructor(address _owner, address _staxVault)
functions
claimIncentiveFeeBPS
viewfunction claimIncentiveFeeBPS() view returns (uint16)
distributeIncentiveFeeBPS
viewfunction distributeIncentiveFeeBPS() view returns (uint16)
distributionCaps
viewfunction distributionCaps(address) view returns (uint256)
distributionInterval
viewfunction distributionInterval() view returns (uint64)
distributionTargets
viewfunction distributionTargets(address) view returns (address)
distributionTokens
viewfunction distributionTokens(address) view returns (bool)
distributionTypes
viewfunction distributionTypes(address) view returns (uint8)
getNextDistributionInfo
viewfunction getNextDistributionInfo() view returns (uint256 time, uint256 amount)
getNextSwapInfo
viewfunction getNextSwapInfo() view returns (uint256 time, uint256 amount)
isMultihopSwap
viewfunction isMultihopSwap(address) view returns (bool)
lastDistributionTime
viewfunction lastDistributionTime() view returns (uint256)
lastSwapTime
viewfunction lastSwapTime() view returns (uint256)
maxDistributionAmount
viewfunction maxDistributionAmount() view returns (uint256)
maxSwapAmount
viewfunction maxSwapAmount() view returns (uint256)
multihopSwapOptionsV3
viewfunction multihopSwapOptionsV3(address) view returns (bytes)
orxDeviation
viewfunction orxDeviation() view returns (uint32)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
secondsAgo
viewfunction secondsAgo() view returns (uint32)
STAX_VAULT
viewfunction STAX_VAULT() view returns (address)
swapIncentiveFeeBPS
viewfunction swapIncentiveFeeBPS() view returns (uint16)
swapInterval
viewfunction swapInterval() view returns (uint64)
swapOptionsV2
viewfunction swapOptionsV2(address, uint256) view returns (address)
swapOptionsV3
viewfunction swapOptionsV3(address) view returns (address tokenOut, uint24 fee)
tokenDistributionTimes
viewfunction tokenDistributionTimes(address) view returns (uint256)
whitelistedUsers
viewfunction whitelistedUsers(address) view returns (bool)
acceptOwnership
nonpayablefunction acceptOwnership()
addTransferToken
nonpayablefunction addTransferToken(address token, address target)
addUniswapV2Token
nonpayablefunction addUniswapV2Token(address token, address target, address[] path, uint256 capPerSwap)
addUniswapV3MultihopToken
nonpayablefunction addUniswapV3MultihopToken(address token, address target, bytes path, uint256 capPerSwap)
addUniswapV3Token
nonpayablefunction addUniswapV3Token(address token, address target, address tokenOut, uint24 poolFee, uint256 capPerSwap)
claim
nonpayablefunction claim()
disableDistributionToken
nonpayablefunction disableDistributionToken(address token)
distributeToken
nonpayablefunction distributeToken(address token, uint256 minAmountOut, uint256 deadline)
distributeUsdx
nonpayablefunction distributeUsdx(uint256 minAmountOut, uint256 deadline)
renounceOwnership
nonpayablefunction renounceOwnership()
setClaimIncentiveFee
nonpayablefunction setClaimIncentiveFee(uint16 bps)
setDistrbutionTokenCapPerSwap
nonpayablefunction setDistrbutionTokenCapPerSwap(address token, uint256 limit)
setDistrbutionWhitelist
nonpayablefunction setDistrbutionWhitelist(address[] accounts, bool isAllowed)
setDistributeIncentiveFee
nonpayablefunction setDistributeIncentiveFee(uint16 bps)
setDistributionInterval
nonpayablefunction setDistributionInterval(uint64 limit)
setMaxDistributionAmount
nonpayablefunction setMaxDistributionAmount(uint256 limit)
setMaxSwapAmount
nonpayablefunction setMaxSwapAmount(uint256 limit)
setOrxDeviation
nonpayablefunction setOrxDeviation(uint32 limit)
setSecondsAgo
nonpayablefunction setSecondsAgo(uint32 limit)
setSwapIncentiveFee
nonpayablefunction setSwapIncentiveFee(uint16 bps)
setSwapInterval
nonpayablefunction setSwapInterval(uint64 limit)
swapAndStake
nonpayablefunction swapAndStake(uint256 minAmountOut, uint256 deadline)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Claim
event Claim()
Distribution
event Distribution()
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Swap
event Swap()
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
Cooldown
error Cooldown()
DuplicateDistributionToken
error DuplicateDistributionToken()
FailedInnerCall
error FailedInnerCall()
InsufficientBalance
error InsufficientBalance()
MathOverflowedMulDiv
error MathOverflowedMulDiv()
NothingToClaim
error NothingToClaim()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
Prohibited
error Prohibited()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
T
error T()
TWAP
error TWAP()
Unauthorized
error Unauthorized()
UnclaimedRewards
error UnclaimedRewards()
ZeroAddress
error ZeroAddress()
ZeroInput
error ZeroInput()
creation bytecode
0x60a03461015657601f613bf538819003918201601f19168301916001600160401b0383118484101761015b57808492604094855283398101031261015657610052602061004b83610171565b9201610171565b6001600160a01b0390911690811561014057600180546001600160a01b0319908116909155600080549182168417815560405193916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36b06765c793fa10079d000000060045569010f0cf064dd59200000600555600680546001600160f01b0319167b03e80000012c001e001e003c0000000000000e100000000000000e101790556001600160a01b0381161561012f57608052613a6f90816101868239608051818181611d6901526127c20152f35b63d92e233d60e01b60005260046000fd5b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101565756fe608080604052600436101561001357600080fd5b600090813560e01c908162be3656146127ae575080630dd87157146127905780631ad7b1271461273a578063294a4411146126d4578063297a7cdd146125095780632c162e54146124e05780632f84cbf5146124c55780634b56e8191461240d5780634e71d92d1461229157806353f754e71461225457806355cf98b71461210b5780635bc02c75146120ed5780635fea13f8146120c05780636075c7d514612099578063633dd14514612072578063664d4e981461204d5780636a108e8814611c4857806370f3b5e914610e5057806371201a0e14610e26578063715018a614610dc15780637319922814610d5b57806375b1735014610d3d578063786226d314610cfe57806379ba509714610c795780637f7de58014610c525780638166b31614610bec578063840d3e9614610b8f5780638da5cb5b14610b685780639bba73f114610927578063a5f7f99d146108fe578063aa2dbae5146108ab578063b1283c1c14610884578063b39f6d0214610812578063b3e0662d146107d9578063c2bc5d3414610762578063c3c12d5914610714578063c41208b3146106d5578063c491631e14610613578063cce987d4146105f5578063cddd89b81461059d578063d9ad02e114610542578063e12ae00e1461051d578063e30c3978146104f4578063ef7fbfea14610388578063f2fde38b1461031b578063f3cdb351146102f6578063f621cc48146102b7578063f6886ebe146102765763f853c6c71461023b57600080fd5b34610273576020366003190112610273576020906040906001600160a01b036102626127f1565b168152600b83522054604051908152f35b80fd5b5034610273576020366003190112610273576020906001600160a01b0361029b6127f1565b168152600c8252604060018060a01b0391205416604051908152f35b50346102735760203660031901126102735760209060ff906040906001600160a01b036102e26127f1565b168152600784522054166040519015158152f35b5034610273578060031936011261027357602061ffff60065460801c16604051908152f35b5034610273576020366003190112610273576103356127f1565b61033d613561565b600180546001600160a01b0319166001600160a01b0392831690811790915582549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b50346102735760a0366003190112610273576103a26127f1565b6103aa612807565b906044356001600160a01b03811691908290036104f0576064359062ffffff82168092036104ec576103da613561565b6001600160a01b03169283156104dd57838552600860205260ff6040862054166104ce57838552600860205260408520600160ff19825416179055838552600960205260408520600360ff19825416179055838552600d6020526040852060ff198154169055838552600c602052604085209060018060a01b03166001600160601b0360a01b825416179055604051916104738361286a565b82526020808301918252838552600f815260408086209351845493516001600160b81b03199094166001600160a01b03919091161760a09390931b62ffffff60a01b1692909217909255918352600a90528120608435905580f35b6307de7fa360e51b8552600485fd5b63d92e233d60e01b8552600485fd5b8480fd5b8380fd5b50346102735780600319360112610273576001546040516001600160a01b039091168152602090f35b5034610273578060031936011261027357602061ffff60065460a01c16604051908152f35b5034610273576020366003190112610273576004356001600160401b03811680910361059957610570613561565b801561058a576001600160401b0319600654161760065580f35b63af458c0760e01b8252600482fd5b5080fd5b5034610273576040366003190112610273576105b76127f1565b6001600160a01b031681526010602052604081208054909190602435908110156105995760209282528260018060a01b039220015416604051908152f35b50346102735780600319360112610273576020600454604051908152f35b50346102735760403660031901126102735761062d6127f1565b610635612807565b9061063e613561565b6001600160a01b031680156106c657808352600860205260ff6040842054166106b757808352600860205260408320600160ff19825416179055808352600960205260408320600160ff198254161790558252600c602052604082209060018060a01b03166001600160601b0360a01b82541617905580f35b6307de7fa360e51b8352600483fd5b63d92e233d60e01b8352600483fd5b50346102735760203660031901126102735760209060ff906040906001600160a01b036107006127f1565b168152600884522054166040519015158152f35b50346102735760203660031901126102735760409081906001600160a01b0361073b6127f1565b168152600f602052205462ffffff82519160018060a01b038116835260a01c166020820152f35b50346102735760403660031901126102735761077c6127f1565b60243590610788613561565b6001600160a01b03168083526008602052604083205460ff16156107ca5781156107bb578252600a602052604082205580f35b63af458c0760e01b8352600483fd5b632b0039c760e21b8352600483fd5b5034610273576020366003190112610273576020906040906001600160a01b036108016127f1565b168152600a83522054604051908152f35b50346102735760203660031901126102735760043563ffffffff81168082036108805761083d613561565b80156107bb5761271010610871576006805463ffffffff60d01b191660d09290921b63ffffffff60d01b1691909117905580f35b632b0039c760e21b8252600482fd5b8280fd5b503461027357806003193601126102735760206001600160401b0360065416604051908152f35b5034610273576020366003190112610273576108fa906108e6906040906001600160a01b036108d86127f1565b168152600e60205220612928565b6040519182916020835260208301906129cc565b0390f35b50346102735760203660031901126102735760043561091b613561565b801561058a5760045580f35b5034610273576080366003190112610273576109416127f1565b9061094a612807565b604435926001600160401b0384116108805736602385011215610880578360040135610975816128d3565b946109836040519687612885565b81865236602483830101116104ec5781859260246020930183890137860101526109ab613561565b6001600160a01b03169081156106c657818352600860205260ff6040842054166106b757818352600860205260408320600160ff19825416179055818352600960205260408320600360ff19825416179055818352600d60205260408320600160ff19825416179055818352600c602052604083209060018060a01b03166001600160601b0360a01b825416179055808252600e6020526040822083516001600160401b038111610b5457610a6082546128ee565b601f8111610b19575b50602094601f8211600114610ab7579484958293949592610aac575b50508160011b916000199060031b1c19161790555b8152600a602052606435604082205580f35b015190503880610a85565b601f1982169583865280862091865b888110610b0157508360019596979810610ae8575b505050811b019055610a9a565b015160001960f88460031b161c19169055388080610adb565b91926020600181928685015181550194019201610ac6565b610b449083865260208620601f840160051c81019160208510610b4a575b601f0160051c0190612a36565b38610a69565b9091508190610b37565b634e487b7160e01b84526041600452602484fd5b5034610273578060031936011261027357546040516001600160a01b039091168152602090f35b5034610273576020366003190112610273576004356001600160401b03811680820361088057610bbd613561565b1561058a5767ffffffffffffffff60401b6006549160401b169067ffffffffffffffff60401b19161760065580f35b50346102735760203660031901126102735760043561ffff811680820361088057610c15613561565b8015908115610c46575b50610871576006805461ffff60901b191660909290921b61ffff60901b1691909117905580f35b6103e891501138610c1f565b50346102735780600319360112610273576040610c6d6134bf565b82519182526020820152f35b5034610273578060031936011261027357600154336001600160a01b0390911603610ceb57600180546001600160a01b0319908116909155815433918116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b63118cdaa760e01b815233600452602490fd5b50346102735760203660031901126102735760209060ff906040906001600160a01b03610d296127f1565b168152600d84522054166040519015158152f35b50346102735780600319360112610273576020600354604051908152f35b50346102735760203660031901126102735760043561ffff811680820361088057610d84613561565b8015908115610db5575b50610871576006805461ffff60801b191660809290921b61ffff60801b1691909117905580f35b6103e891501138610d8e565b5034610273578060031936011261027357610dda613561565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461027357806003193601126102735760206001600160401b0360065460401c16604051908152f35b503461027357610e5f366128bd565b919091333b15801590611c3e575b611c3057610e79612a69565b904210611c21578015611c1257610f009042600255612710610ea461ffff60065460801c1683612a0d565b60405163a9059cbb60e01b6020820152336024820152919004604482018190529190610efb90610ee181606481015b03601f198101835282612885565b73f19308f923582a6f7c465e5ce7a9dc1bec6665b16136e4565b6134b2565b600654604051633850c7bd60e01b8152949060b081901c63ffffffff1660e087600481732a216495584e406c39582d3ee583aeda937beba65afa8015611c075786978791611b73575b5061ffff16968715611b495761ffff600191160161ffff81116118a95761ffff600098816040519363252c09d760e01b85521606166004820152608081602481732a216495584e406c39582d3ee583aeda937beba65afa908115611a445787908892611b24575b509015611aa3575b63ffffffff1663ffffffff42160363ffffffff81116118a95790818163ffffffff80941610611a9b575b50168015611a715760405190610ff9606083612885565b600282526020820191604036843781611011826137cf565b528761101c826137f2565b5287604051809463883bdbfd60e01b825260248201936020600484015251809452604482019093835b818110611a4f575050819293500381732a216495584e406c39582d3ee583aeda937beba65afa918215611a44578790889361191e575b50611092611088826137f2565b5160060b916137cf565b5160060b900391667fffffffffffff198312667fffffffffffff8413176118d3576001600160a01b036110c4826137f2565b5116906001600160a01b03906110d9906137cf565b51169003906001600160a01b0382116118d3578060060b9260060b831561190a57667fffffffffffff1981146000198514166118f65783810560020b9389821291826118e7575b50506118bd575b6001600160a01b038181026001600160c01b03169190910490036118a95760201b640100000000600160c01b0316156116605760020b858112156118a357808603905b620d89e882116118945786906001831615611882576001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b169260028116611866575b6004811661184a575b6008811661182e575b60108116611812575b602081166117f6575b604081166117da575b608081166117be575b61010081166117a2575b6102008116611786575b610400811661176a575b610800811661174e575b6110008116611732575b6120008116611716575b61400081166116fa575b61800081166116de575b6201000081166116c2575b6202000081166116a7575b62040000811661168c575b6208000016611674575b13611651575b63ffffffff908082166116495786905b60201c60ff91909116016001600160a01b03166fffffffffffffffffffffffffffffffff8111611630576112a2816112a892612a0d565b85613933565b915b60d01c166127100363ffffffff811161161c576127109163ffffffff6112d1921690612a0d565b04811061160d57604051926112e58461284e565b73f19308f923582a6f7c465e5ce7a9dc1bec6665b1845273d536e7a9543cf9867a580b45cec7f748a1fe11ec6020850152612710604085015230606085015260808401528160a084015260c08301528260e083015260405190636eb1769f60e11b8252306004830152600080516020613a1a833981519152602483015260208260448173f19308f923582a6f7c465e5ce7a9dc1bec6665b15afa80156116025784906115ce575b6113969250612a5c565b828060405192602084019063095ea7b360e01b8252600080516020613a1a83398151915260248601526044850152604484526113d3606485612885565b8351908273f19308f923582a6f7c465e5ce7a9dc1bec6665b15af16113f6613802565b8161158c575b50916020918361142d949061156e575b15611529575b506040518093819263414bf38960e01b835260048301613624565b038185600080516020613a1a8339815191525af19081156114e65782916114f4575b5081925073e293dfd4720308c048b63afe885f5971e135eb1e3b156114f1576040519063534a7e1d60e11b8252600482015281816024818373e293dfd4720308c048b63afe885f5971e135eb1e5af180156114e6576114d1575b50807f3ebfdaaf4031bec9a2b7b0a1c594d2d03f3d0b8d68531c9164c2829bac00fefa91a180f35b816114db91612885565b6102735780386114a9565b6040513d84823e3d90fd5b50fd5b90506020813d602011611521575b8161150f60209383612885565b8101031261088057819250513861144f565b3d9150611502565b61156890610ee160405163095ea7b360e01b86820152600080516020613a1a833981519152602482015287604482015260448152610ee1606482612885565b38611412565b5073f19308f923582a6f7c465e5ce7a9dc1bec6665b13b151561140c565b80518015925082156115a3575b50602090506113fc565b81925090602091810103126104f057916020916115c48361142d95016136d7565b9193819350611599565b506020823d6020116115fa575b816115e860209383612885565b810103126104ec57611396915161138c565b3d91506115db565b6040513d86823e3d90fd5b63431653f160e11b8452600484fd5b634e487b7160e01b86526011600452602486fd5b61163d8161164392613832565b85613891565b916112aa565b60019061126b565b8015611660576000190461125b565b634e487b7160e01b86526012600452602486fd5b916b048a170391f7dc42444e8fa20260801c91611255565b6d2216e584f5fa1ea926041bedfe9890930260801c9261124b565b926e5d6af8dedb81196699c329225ee6040260801c92611240565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611235565b926f31be135f97d08fd981231505542fcfa60260801c9261122a565b926f70d869a156d2a1b890bb3df62baf32f70260801c92611220565b926fa9f746462d870fdf8a65dc1f90e061e50260801c92611216565b926fd097f3bdfd2022b8845ad8f792aa58250260801c9261120c565b926fe7159475a2c29b7443b29c7fa6e889d90260801c92611202565b926ff3392b0822b70005940c7a398e4b70f30260801c926111f8565b926ff987a7253ac413176f2b074cf7815e540260801c926111ee565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926111e4565b926ffe5dee046a99a2a811c461f1969c30530260801c926111da565b926fff2ea16466c96a3843ec78b326b528610260801c926111d1565b926fff973b41fa98c081472e6896dfb254c00260801c926111c8565b926fffcb9843d60f6159c9db58835c9266440260801c926111bf565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c926111b6565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c926111ad565b926ffff97272373d413259a46990580e213a0260801c926111a4565b6001600160881b03600160801b611199565b6315e4079d60e11b8752600487fd5b8061116a565b634e487b7160e01b87526011600452602487fd5b91627fffff1981146118d3576000190191611127565b634e487b7160e01b88526011600452602488fd5b0760060b151590503880611120565b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b89526012600452602489fd5b9250503d8088843e6119308184612885565b820191604081840312611a405780516001600160401b038111611a1c5781019083601f83011215611a1c57815191611967836128a6565b926119756040519485612885565b80845260208085019160051b83010191868311611a3c57602001905b828210611a24575050506020810151906001600160401b038211611a2057019280601f85011215611a1c5783516119c7816128a6565b946119d56040519687612885565b81865260208087019260051b820101928311611a1857602001905b828210611a00575050503861107b565b60208091611a0d8461375a565b8152019101906119f0565b8a80fd5b8880fd5b8980fd5b60208091611a318461377d565b815201910190611991565b8b80fd5b8780fd5b6040513d89823e3d90fd5b855163ffffffff1683526020958601958d955088945090920191600101611045565b60405162461bcd60e51b8152602060048201526002602482015261042560f41b6044820152606490fd5b905038610fe2565b5060405163252c09d760e01b815260048101879052608081602481732a216495584e406c39582d3ee583aeda937beba65afa908115611a44579063ffffffff918891611af2575b509050610fb8565b611b14915060803d608011611b1d575b611b0c8183612885565b81019061378b565b50505038611aea565b503d611b02565b9050611b3f915060803d608011611b1d57611b0c8183612885565b9291505038610fb0565b60405162461bcd60e51b81526020600482015260026024820152614e4960f01b6044820152606490fd5b97505060e0873d60e011611bff575b81611b8f60e09383612885565b81010312611bfb57611ba08761375a565b5060208701518060020b03611bfb57611bbb6040880161376e565b611bc76060890161376e565b97611bd46080820161376e565b5060a081015160ff811603611a405790611bf360c061ffff93016136d7565b509790610f49565b8580fd5b3d9150611b82565b6040513d88823e3d90fd5b631e9acf1760e31b8352600483fd5b63b0782df760e01b8352600483fd5b6282b42960e81b8252600482fd5b5032331415610e6d565b503461027357611c57366128bd565b90338352600760205260ff6040842054161561203f57611c756134bf565b919042106120305781156120215742600355611ca8612710611ca061ffff60065460a01c1685612a0d565b0480936134b2565b60405173ddf73eacb2218377fc38679ad14dfce51b651dd160601b6020820152607d60ea1b60348201527314170d3238c43166d83a33a945d3d619c6c0dd6960631b6037820152601960ea1b604b820152736015551cd911ff4685072e2793f56c841e3ab66160611b604e82015261027160ec1b606282015273f19308f923582a6f7c465e5ce7a9dc1bec6665b160601b60658201526059815293909190611d51607986612885565b60405194611d5e8661281d565b855260018060a01b037f00000000000000000000000000000000000000000000000000000000000000001660208601526040850152816060850152608084015260405190636eb1769f60e11b8252306004830152600080516020613a1a833981519152602483015260208260448173ddf73eacb2218377fc38679ad14dfce51b651dd15afa8015612016578590611fdd575b611dfa9250612a5c565b91838060405194602086019063095ea7b360e01b8252600080516020613a1a8339815191526024880152604487015260448652611e38606487612885565b8551908273ddf73eacb2218377fc38679ad14dfce51b651dd15af1611e5b613802565b81611f9a575b50611e91936020929180611f7c575b15611f1d575b506040518094819263c04b8d5960e01b83526004830161368d565b038186600080516020613a1a8339815191525af1918215611f1257611ebc92611ee3575b50336135aa565b7f5da5f5ab15b3f7ce29e57210ae89068218f2196e9df956cf8b0586b0d65205528180a180f35b611f049060203d602011611f0b575b611efc8183612885565b810190612a4d565b5038611eb5565b503d611ef2565b6040513d85823e3d90fd5b611f7690611f5c60405163095ea7b360e01b86820152600080516020613a1a833981519152602482015288604482015260448152611f5c606482612885565b73ddf73eacb2218377fc38679ad14dfce51b651dd16136e4565b38611e76565b5073ddf73eacb2218377fc38679ad14dfce51b651dd13b1515611e70565b8051801592508215611fb2575b50611e919050611e61565b8193925090602091810103126104ec57611e9193611fd360208094016136d7565b9192819550611fa7565b506020823d60201161200e575b81611ff760209383612885565b8101031261200957611dfa9151611df0565b600080fd5b3d9150611fea565b6040513d87823e3d90fd5b631e9acf1760e31b8452600484fd5b63b0782df760e01b8452600484fd5b6282b42960e81b8352600483fd5b5034610273578060031936011261027357602061ffff60065460901c16604051908152f35b5034610273578060031936011261027357602063ffffffff60065460b01c16604051908152f35b5034610273578060031936011261027357602063ffffffff60065460d01c16604051908152f35b5034610273576060366003190112610273576120ea6120dd6127f1565b6044359060243590612b17565b80f35b50346102735780600319360112610273576020600554604051908152f35b5034610273576020366003190112610273576121256127f1565b61212d613561565b6001600160a01b03168082526008602052604082205460ff161561087157808252600860205260408220805460ff19169055808252600960205260408220805460ff19169055808252600c602052604082206001600160601b0360a01b8154169055808252600a60205281604081205580825260106020526040822080548382558061223a575b5050808252600f602052816040812055808252600e60205281604081206121db81546128ee565b806121f8575b505052600d60205260408120805460ff1916905580f35b601f811160011461220e5750555b8138806121e1565b8183526020832061222a91601f0160051c810190600101612a36565b8082528160208120915555612206565b61224d9184526020842090810190612a36565b38806121b4565b50346102735760203660031901126102735760209060ff906040906001600160a01b0361227f6127f1565b16815260098452205416604051908152f35b5034610273578060031936011261027357333b15801590612403575b6123f557604051633010908560e11b815230600482015260208160248173e293dfd4720308c048b63afe885f5971e135eb1e5afa9081156114e65782916123c3575b5080156123b45773e293dfd4720308c048b63afe885f5971e135eb1e3b15610599576040516305c2fbcf60e31b81526004810183905282816024818373e293dfd4720308c048b63afe885f5971e135eb1e5af18015611f1257612396575b5061271061236861236f9261ffff60065460901c1690612a0d565b04336135aa565b7f3158952e7c791deb52750003dbcb0fb942106f2bcd1005fb946a83cd6646fdc48180a180f35b612368836123ab61236f949561271094612885565b9392505061234d565b6312d37ee560e31b8252600482fd5b90506020813d6020116123ed575b816123de60209383612885565b810103126105995751386122ef565b3d91506123d1565b6282b42960e81b8152600490fd5b50323314156122ad565b5034610273576040366003190112610273576004356001600160401b03811161059957366023820112156105995780600401356001600160401b038111610880573660248260051b8401011161088057602435918215158093036104f057612476929192613561565b60ff849216915b838110156124c1576024600582901b830101356001600160a01b0381169190829003611bfb57908552600760205260408520805460ff19168417905560010161247d565b8480f35b50346102735780600319360112610273576040610c6d612a69565b5034610273576020366003190112610273576004356124fd613561565b801561058a5760055580f35b5034610273576080366003190112610273576125236127f1565b61252b612807565b906044356001600160401b0381116104f057366023820112156104f057806004013591612557836128a6565b916125656040519384612885565b83835260208301906024829560051b82010190368211611a4057602401915b8183106126b457505050612596613561565b6001600160a01b03169283156104dd57838552600860205260ff6040862054166104ce57838552600860205260408520600160ff19825416179055838552600960205260408520600260ff19825416179055838552600c602052604085209060018060a01b03166001600160601b0360a01b8254161790558284526010602052604084209051916001600160401b0383116126a057600160401b83116126a0578154838355808410612685575b5090845260208420845b8381106126685785858152600a602052606435604082205580f35b82516001600160a01b03168183015560209092019160010161264d565b8286526020862061269a918101908501612a36565b38612643565b634e487b7160e01b85526041600452602485fd5b82356001600160a01b0381168103611a1c57815260209283019201612584565b50346102735760203660031901126102735760043561ffff8116808203610880576126fd613561565b801590811561272e575b50610871576006805461ffff60a01b191660a09290921b61ffff60a01b1691909117905580f35b6103e891501138612707565b50346102735760203660031901126102735760043563ffffffff811680820361088057612765613561565b1561058a576006805463ffffffff60b01b191660b09290921b63ffffffff60b01b1691909117905580f35b50346102735780600319360112610273576020600254604051908152f35b9050346105995781600319360112610599577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b038216820361200957565b602435906001600160a01b038216820361200957565b60a081019081106001600160401b0382111761283857604052565b634e487b7160e01b600052604160045260246000fd5b61010081019081106001600160401b0382111761283857604052565b604081019081106001600160401b0382111761283857604052565b90601f801991011681019081106001600160401b0382111761283857604052565b6001600160401b0381116128385760051b60200190565b6040906003190112612009576004359060243590565b6001600160401b03811161283857601f01601f191660200190565b90600182811c9216801561291e575b602083101461290857565b634e487b7160e01b600052602260045260246000fd5b91607f16916128fd565b906040519182600082549261293c846128ee565b80845293600181169081156129aa5750600114612963575b5061296192500383612885565b565b90506000929192526020600020906000915b81831061298e5750509060206129619282010138612954565b6020919350806001915483858901015201910190918492612975565b90506020925061296194915060ff191682840152151560051b82010138612954565b919082519283825260005b8481106129f8575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016129d7565b81810292918115918404141715612a2057565b634e487b7160e01b600052601160045260246000fd5b818110612a41575050565b60008155600101612a36565b90816020910312612009575190565b91908201809211612a2057565b6040516370a0823160e01b815230600482015260208160248173f19308f923582a6f7c465e5ce7a9dc1bec6665b15afa908115612b0b57600091612ad9575b506004549081811115612ad257505b612acf6002546001600160401b036006541690612a5c565b91565b9050612ab7565b906020823d602011612b03575b81612af360209383612885565b8101031261027357505138612aa8565b3d9150612ae6565b6040513d6000823e3d90fd5b6001600160a01b031660008181526008602052604090205460ff16156134a15780600052600960205260ff60406000205416600181146133fb5781600052600b602052612b786040600020546001600160401b0360065460401c1690612a5c565b42106133ea5760028114612fe257600314612b9e5763af458c0760e01b60005260046000fd5b33600052600760205260ff6040600020541615612fd25780600052600b602052426040600020556040516370a0823160e01b8152306004820152602081602481855afa908115612b0b57600091612fa0575b5081600052600a60205260406000205490818111600014612f985750915b8215612f8757612c35612710612c2d61ffff60065460a01c1686612a0d565b0480946134b2565b82600052600c60205260018060a01b036040600020541694604051636eb1769f60e11b8152306004820152600080516020613a1a8339815191526024820152602081604481885afa8015612b0b578390600090612f51575b612c979250612a5c565b60008060405192602084019063095ea7b360e01b8252600080516020613a1a8339815191526024860152604485015260448452612cd5606485612885565b83519082895af1612ce4613802565b81612f1a575b5080612f10575b15612ebd575b5083600052600d60205260ff60406000205416600014612de05791612d6c959160209385600052600e8552604060002093612d3d60405195612d388761281d565b612928565b8552858501526040840152606083015260808201526040518095819263c04b8d5960e01b83526004830161368d565b03816000600080516020613a1a8339815191525af1928315612b0b57612d9a93612dc1575b505b33906135e3565b7f5da5f5ab15b3f7ce29e57210ae89068218f2196e9df956cf8b0586b0d6520552600080a1565b612dd99060203d602011611f0b57611efc8183612885565b5038612d91565b91612e73959160209385600052600f85526040600020938560405195612e058761286a565b546001600160a01b03811680885260a09190911c62ffffff169190960181905260405195612e328761284e565b8887528787015260408601526060850152608084015260a083015260c0820152600060e08201526040518095819263414bf38960e01b835260048301613624565b03816000600080516020613a1a8339815191525af1928315612b0b57612d9a93612e9e575b50612d93565b612eb69060203d602011611f0b57611efc8183612885565b5038612e98565b612f0a90612f0460405163095ea7b360e01b6020820152600080516020613a1a83398151915260248201526000604482015260448152612efe606482612885565b876136e4565b856136e4565b38612cf7565b50843b1515612cf1565b8051801592508215612f2f575b505038612cea565b8192509060209181010312612009576020612f4a91016136d7565b3880612f27565b50506020813d602011612f7f575b81612f6c60209383612885565b810103126120095782612c979151612c8d565b3d9150612f5f565b631e9acf1760e31b60005260046000fd5b905091612c0e565b906020823d602011612fca575b81612fba60209383612885565b8101031261027357505138612bf0565b3d9150612fad565b6282b42960e81b60005260046000fd5b509291909233600052600760205260ff6040600020541615612fd25780600052600b602052426040600020556040516370a0823160e01b8152306004820152602081602481855afa908115612b0b576000916133b8575b5081600052600a602052604060002054908181116000146133b05750915b8215612f8757613076612710612c2d61ffff60065460a01c1686612a0d565b90604051636eb1769f60e11b8152306004820152737a250d5630b4cf539739df2c5dacb4c659f2488d6024820152602081604481875afa8015612b0b57839060009061337a575b6130c79250612a5c565b60008060405192602084019063095ea7b360e01b8252737a250d5630b4cf539739df2c5dacb4c659f2488d602486015260448501526044845261310b606485612885565b83519082885af161311a613802565b81613343575b5080613339575b156132e0575b5090948260005260106020526040600020604051968760208354918281520190819360005260206000209060005b8181106132c15750505088613171910389612885565b84600052600c60205260018060a01b0360406000205416906040519889946338ed173960e01b865260a48601926004870152602486015260a060448601525180915260c48401929060005b81811061329f5750505090600093839260648401526084830152038183737a250d5630b4cf539739df2c5dacb4c659f2488d5af18015612b0b5760009061320c575b50612d9a92935033906135e3565b3d8082873e61321b8187612885565b850194602081870312610599578051906001600160401b03821161088057019480601f8701121561059957855195613252876128a6565b926132606040519485612885565b87845260208085019860051b8301019283116102735750602001955b81871061328f57509394508493506131fe565b865181526020968701960161327c565b82516001600160a01b031685528a9550602094850194909201916001016131bc565b82546001600160a01b031684526020909301926001928301920161315b565b6133339061332d60405163095ea7b360e01b6020820152737a250d5630b4cf539739df2c5dacb4c659f2488d60248201526000604482015260448152613327606482612885565b866136e4565b846136e4565b3861312d565b50833b1515613127565b8051801592508215613358575b505038613120565b819250906020918101031261200957602061337391016136d7565b3880613350565b50506020813d6020116133a8575b8161339560209383612885565b8101031261200957826130c791516130bd565b3d9150613388565b905091613057565b906020823d6020116133e2575b816133d260209383612885565b8101031261027357505138613039565b3d91506133c5565b63b0782df760e01b60005260046000fd5b509150506040516370a0823160e01b8152306004820152602081602481855afa908115612b0b5760009161346f575b508015612f8757612d9a91612d93613451612710612c2d61ffff60065460a01c1686612a0d565b6000838152600c60205260409020546001600160a01b0316836135e3565b906020823d602011613499575b8161348960209383612885565b810103126102735750513861342a565b3d915061347c565b632b0039c760e21b60005260046000fd5b91908203918211612a2057565b6040516370a0823160e01b815230600482015260208160248173ddf73eacb2218377fc38679ad14dfce51b651dd15afa908115612b0b5760009161352f575b50600554908181111561352857505b612acf6003546001600160401b0360065460401c1690612a5c565b905061350d565b906020823d602011613559575b8161354960209383612885565b81010312610273575051386134fe565b3d915061353c565b6000546001600160a01b0316330361357557565b63118cdaa760e01b6000523360045260246000fd5b8115613594570490565b634e487b7160e01b600052601260045260246000fd5b60405163a9059cbb60e01b60208201526001600160a01b039091166024820152604481019190915261296190611f5c8160648101610ed3565b60405163a9059cbb60e01b60208201526001600160a01b039290921660248301526044808301939093529181526129619161361f606483612885565b6136e4565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0808401519083015260c0808401519083015260e09283015116918101919091526101000190565b6020815260a060806136aa845183602086015260c08501906129cc565b93600180841b03602082015116604085015260408101516060850152606081015182850152015191015290565b5190811515820361200957565b60008061370d9260018060a01b03169360208151910182865af1613706613802565b90836139b8565b8051908115159182613737575b50506137235750565b635274afe760e01b60005260045260246000fd5b819250906020918101031261200957602061375291016136d7565b15388061371a565b51906001600160a01b038216820361200957565b519061ffff8216820361200957565b51908160060b820361200957565b919082608091031261200957815163ffffffff8116810361200957916137b36020820161377d565b916137cc60606137c56040850161375a565b93016136d7565b90565b8051156137dc5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156137dc5760400190565b3d1561382d573d90613813826128d3565b916138216040519384612885565b82523d6000602084013e565b606090565b81810291600091600019828209928480851094039380850394146138865783600160401b1115613877575090600160401b910990828211900360c01b910360401c1790565b63227bc15360e01b8152600490fd5b925050505060401c90565b90608082901b9060001983600160801b09928280851094039380850394146139275783821115613916578190600160801b09816000038216809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b63227bc15360e01b60005260046000fd5b50906137cc925061358a565b9060c082901b9060001983600160c01b09928280851094039380850394146139275783821115613916578190600160c01b09816000038216809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b906139de57508051156139cd57805190602001fd5b630a12f52160e11b60005260046000fd5b81511580613a10575b6139ef575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156139e756fe000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564a26469706673582212200586f41fa8c85a53c37af76cabde8740ddd52a4b5960c5988f7892850787380664736f6c634300081a0033000000000000000000000000eb430c15ff72fec66f382e6905e2dcb88a805c510000000000000000000000005d27813c32dd705404d1a78c9444dab523331717