0 txs
437 calls
constructor
constructor()
functions
burnAddr
viewfunction burnAddr() view returns (address)
buybackAddr
viewfunction buybackAddr() view returns (address)
flexAPR
viewfunction flexAPR() view returns (uint16)
flexFees
viewfunction flexFees(uint256) view returns (uint16)
getGlobalStats
viewfunction getGlobalStats() view returns (uint256 totalActive, uint256 remainingCapacity, uint256 utilizationPercent)
getInactiveStakes
viewfunction getInactiveStakes() view returns (tuple[], uint256[])
getInactiveStakesOwner
viewfunction getInactiveStakesOwner(address user) view returns (tuple[], uint256[])
getTurboStats
viewfunction getTurboStats(address user) view returns (uint256 userTurboTotal, uint256 userTurboRemaining, uint256 totalTurboStakers, uint256 remainingTurboSlots)
hybridAPR
viewfunction hybridAPR(uint256) view returns (uint16)
isTurboStaker
viewfunction isTurboStaker(address) view returns (bool)
owner
viewfunction owner() view returns (address)
stakeCounts
viewfunction stakeCounts(address) view returns (uint256)
stakes
viewfunction stakes(address, uint256) view returns (uint128 amount, uint64 startTime, uint64 lockDuration, uint128 totalClaimed, uint128 principalClaimed, uint8 stakeType, uint16 apr, uint64 lastClaim, bool active, bool isLockDurationPassed)
token
viewfunction token() view returns (address)
totalActiveStakes
viewfunction totalActiveStakes() view returns (uint256)
turboAPR
viewfunction turboAPR(uint256) view returns (uint16)
turboStakerCount
viewfunction turboStakerCount() view returns (uint256)
turboTotalPerWallet
viewfunction turboTotalPerWallet(address) view returns (uint256)
claim
nonpayablefunction claim(uint256 id)
getActiveStakes
nonpayablefunction getActiveStakes() returns (tuple[], uint256[])
getActiveStakesOwner
nonpayablefunction getActiveStakesOwner(address user) returns (tuple[], uint256[])
getReward
nonpayablefunction getReward(address user, uint256 id) returns (uint256 totalEarned, uint256 claimed, uint256 pending, uint256 perSecond, uint256 availPrincipal, uint256 claimedPrincipal)
insertStakeData
nonpayablefunction insertStakeData(address user, uint128 amount, uint256 period, uint8 stakeType, uint64 customStartTime, uint64 customLastClaim, uint128 customTotalClaimed, uint128 customPrincipalClaimed, bool customActive)
stakeFlex
nonpayablefunction stakeFlex(uint128 amount)
stakeHybrid
nonpayablefunction stakeHybrid(uint128 amount, uint256 period)
stakeTurbo
nonpayablefunction stakeTurbo(uint128 amount, uint256 period)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unstakeFlex
nonpayablefunction unstakeFlex(uint256 id)
unstakeHybrid
nonpayablefunction unstakeHybrid(uint256 id)
unstakeTurbo
nonpayablefunction unstakeTurbo(uint256 id)
events
No events.
errors
No errors.
creation bytecode
0x5f805461ffff60a01b191660e160a31b178155610160604052610bb860e09081526107d0610100526103e861012052610140919091526200004590600190600462000236565b5034801562000052575f80fd5b5073ee334d750f343604533d446262b290d9f1c433366080527309e87c6cd3718dfaccdb80a1d00d262d4637b45360a052734e2da0ea4d97e08452fd9274dc6783e8d9fdb1ff60c0525f80546001600160a01b03191673e489429600b35c235f3a271d64f8bc7855b00a791781557f045e11159efe5db0ada3cb8d2e196919e1d0ef71b9b06d0d60609840a64719a3805461ffff199081166109609081179092557fdffdf0081584edf5c789113e007f697940e74746a1ee4aebbecf452affa2205a80548216610c809081179091557f271ebad1ef1c4cc3c6a7c2377a94bdf43830569b7dce0b46bebe56ceda76c0d480548316610fa09081179091557e6b5a77f4c63ca075a4003ec8c634ef93333cbd5a41afe185e008e8ca9cc8908054841661138890811790915560036020527f3219ed562b3fd9188a49dd9a57bec5aecadcb61ea33f29053262442c210d825f805485169095179094557f3803eb3ad32319afb811b1ed93c96ec4bdf98bf0a9358801efe0713a54aa4f19805484169092179091557fd884e5b0e4d84f92cdd6484ba3abb6370e267f2b09aa13614f6a41f90e2690f98054831690911790556102da9092527f3655f25ea51fd2a23feeb2b4e38b86c475e8e34c6429fbe9006fec6637c76a9a8054909216179055620002e8565b600183019183908215620002c0579160200282015f5b838211156200028e57835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026200024c565b8015620002be5782816101000a81549061ffff02191690556002016020816001010492830192600103026200028e565b505b50620002ce929150620002d2565b5090565b5b80821115620002ce575f8155600101620002d3565b60805160a05160c051613f7d620003755f395f81816101ef015261191401525f81816104ea0152612b6f01525f81816105f3015281816106ca0152818161088601528181610c3d01528181610ce80152818161121e015281816112ca015281816117e90152818161194b015281816120a30152818161214e01528181612b9e0152612c270152613f7d5ff3fe608060405234801561000f575f80fd5b50600436106101d1575f3560e01c8063a03299d6116100fe578063e54fdf1c1161009e578063f474c8ce1161006e578063f474c8ce14610588578063f7a06c62146105c8578063f81160f6146105db578063fc0c546a146105ee575f80fd5b8063e54fdf1c1461052b578063eefbd1ce1461054e578063f2fde38b1461056d578063f433a56b14610580575f80fd5b8063c5ad0b6a116100d9578063c5ad0b6a146104c9578063c601d676146104dc578063d246d411146104e5578063db7dfbb31461050c575f80fd5b8063a03299d614610470578063a1e9b6be146104a2578063c1d23951146104b6575f80fd5b806352e0e20b116101745780636b4169c3116101445780636b4169c3146103f55780636bc891e3146104185780638da5cb5b1461042b5780639cb9f2921461043d575f80fd5b806352e0e20b146102b7578063584b62a1146102ca5780635bbdd92c146103cf5780636933f439146103e2575f80fd5b806336c28664116101af57806336c2866414610245578063379607f5146102585780634886d7481461026b57806351dd7545146102a1575f80fd5b806302f29b35146101d55780630c418998146101ea5780631f079e011461022e575b5f80fd5b6101e86101e33660046139ee565b610615565b005b6102117f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61023760065481565b604051908152602001610225565b6101e8610253366004613a0e565b610793565b6101e8610266366004613a36565b61097c565b61028e610279366004613a36565b60036020525f908152604090205461ffff1681565b60405161ffff9091168152602001610225565b6102a9610d6d565b604051610225929190613a87565b6101e86102c5366004613a36565b610fcb565b6103606102d8366004613b81565b600460209081525f92835260408084209091529082529020805460018201546002909201546001600160801b03808316936001600160401b03600160801b808604821695600160c01b90048216948385169491909304169160ff8082169261ffff610100840416926301000000810490911691600160581b8204811691600160601b9004168a565b604080516001600160801b039b8c1681526001600160401b039a8b166020820152988a1690890152958916606088015297909316608086015260ff90911660a085015261ffff1660c08401529290921660e0820152911515610100830152151561012082015261014001610225565b6102a96103dd366004613b9b565b611357565b6101e86103f0366004613a0e565b6115f7565b6103fd6119b5565b60408051938452602084019290925290820152606001610225565b6102a9610426366004613b9b565b6119f0565b5f54610211906001600160a01b031681565b61045061044b366004613b9b565b611c8e565b604080519485526020850193909352918301526060820152608001610225565b61049261047e366004613b9b565b60096020525f908152604090205460ff1681565b6040519015158152602001610225565b5f5461028e90600160a01b900461ffff1681565b61028e6104c4366004613a36565b611cd3565b6101e86104d7366004613a36565b611d00565b61023760085481565b6102117f000000000000000000000000000000000000000000000000000000000000000081565b61023761051a366004613b9b565b60056020525f908152604090205481565b61028e610539366004613a36565b60026020525f908152604090205461ffff1681565b61023761055c366004613b9b565b60076020525f908152604090205481565b6101e861057b366004613b9b565b6121dd565b6102a961226c565b61059b610596366004613b81565b6124b1565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610225565b6101e86105d6366004613a36565b61294d565b6101e86105e9366004613bda565b612c5e565b6102117f000000000000000000000000000000000000000000000000000000000000000081565b600a5460ff16156106415760405162461bcd60e51b815260040161063890613c7e565b60405180910390fd5b600a805460ff191660011790556127106001600160801b03821610156106795760405162461bcd60e51b815260040161063890613ca2565b6311e1a300816001600160801b03166006546106959190613cdd565b11156106b35760405162461bcd60e51b815260040161063890613cf0565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd9061070390339030908690600401613d1d565b6020604051808303815f875af115801561071f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107439190613d49565b50806001600160801b031660065f82825461075e9190613cdd565b925050819055506107856004600533845f805f60149054906101000a900461ffff16613363565b5050600a805460ff19169055565b600a5460ff16156107b65760405162461bcd60e51b815260040161063890613c7e565b600a805460ff191660011790556127106001600160801b03831610156107ee5760405162461bcd60e51b815260040161063890613ca2565b6311e1a300826001600160801b031660065461080a9190613cdd565b11156108285760405162461bcd60e51b815260040161063890613cf0565b6108318161354b565b61084d5760405162461bcd60e51b815260040161063890613d64565b6102da81111561086f5760405162461bcd60e51b815260040161063890613d8c565b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906108bf90339030908790600401613d1d565b6020604051808303815f875af11580156108db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ff9190613d49565b50816001600160801b031660065f82825461091a9190613cdd565b90915550505f8181526002602052604090205461ffff168061094e5760405162461bcd60e51b815260040161063890613d64565b61096c6004600533866109648762015180613db1565b600187613363565b5050600a805460ff191690555050565b600a5460ff161561099f5760405162461bcd60e51b815260040161063890613c7e565b600a805460ff19166001179055335f908152600560205260409020548190811080156109ee5750335f908152600460209081526040808320848452909152902060020154600160581b900460ff165b610a0a5760405162461bcd60e51b815260040161063890613dc8565b335f818152600460209081526040808320868452909152902090610a2e9084613579565b5f610a393385613653565b600280840154919250829160ff169003610b6757825460018401546001600160801b0380831692600160801b8082046001600160401b0390811694600160c01b90930416929104165f610a8c8442613de9565b90505f836001600160401b03168211610aa55781610ab0565b836001600160401b03165b90505f846001600160401b03168311610aef576001600160401b038516610ae0836001600160801b038a16613db1565b610aea9190613e10565b610afa565b866001600160801b03165b9050836001600160801b0316811015610b255760405162461bcd60e51b815260040161063890613e2f565b6001600160801b038416808203908214610b5e5760018b0180546001600160801b0380881684018116600160801b029116179055978801975b50505050505050505b6103e8811015610bae5760405162461bcd60e51b815260206004820152601260248201527104d696e696d756d20636c61696d20313030360741b6044820152606401610638565b8115610c20576002830180546affffffffffffffff00000019166301000000426001600160401b0316021790556001830154610bf49083906001600160801b0316613cdd565b6001840180546fffffffffffffffffffffffffffffffff19166001600160801b03929092169190911790555b8015610d5c576040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610c8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cae9190613e56565b1015610ccc5760405162461bcd60e51b815260040161063890613e6d565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610d36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5a9190613d49565b505b5050600a805460ff19169055505050565b335f90815260056020526040812054606091829190805b82811015610dd857335f908152600460209081526040808320848452909152902060020154600160581b900460ff1615610dd057610dc23382613579565b81610dcc81613e9b565b9250505b600101610d84565b505f816001600160401b03811115610df257610df2613eb3565b604051908082528060200260200182016040528015610e2b57816020015b610e18613980565b815260200190600190039081610e105790505b5090505f826001600160401b03811115610e4757610e47613eb3565b604051908082528060200260200182016040528015610e70578160200160208202803683370190505b5090505f805b85811015610fbe57335f908152600460209081526040808320848452909152902060020154600160581b900460ff1615610fb657335f90815260046020908152604080832084845282529182902082516101408101845281546001600160801b038082168352600160801b8083046001600160401b0390811696850196909652600160c01b909204851695830195909552600183015480861660608401520490931660808401526002015460ff80821660a085015261010080830461ffff1660c08601526301000000830490931660e0850152600160581b82048116151592840192909252600160601b90041615156101208201528451859084908110610f7f57610f7f613ec7565b602002602001018190525080838381518110610f9d57610f9d613ec7565b602090810291909101015281610fb281613e9b565b9250505b600101610e76565b5091969095509350505050565b600a5460ff1615610fee5760405162461bcd60e51b815260040161063890613c7e565b600a805460ff19166001179055335f9081526005602052604090205481908110801561103d5750335f908152600460209081526040808320848452909152902060020154600160581b900460ff165b6110595760405162461bcd60e51b815260040161063890613dc8565b335f9081526004602090815260408083208584529091529020600281015460ff1660011480156110b6575080546110a9906001600160401b03600160c01b8204811691600160801b900416613edb565b6001600160401b03164210155b6110eb5760405162461bcd60e51b8152602060048201526006602482015265131bd8dad95960d21b6044820152606401610638565b6110f53384613579565b805460028201546001600160801b0382169161ffff610100830416916001600160401b03600160801b8304811692600160c01b900481169163010000009004165f6111408385613edb565b6001600160401b031690505f826001600160401b03168210611162578161116d565b826001600160401b03165b90505f6111836001600160401b03851683613de9565b90505f6111966301e13380612710613db1565b826111ae61ffff8b166001600160801b038d16613db1565b6111b89190613db1565b6111c29190613e10565b60028b01805460ff60581b19169055600680549192506001600160801b038b16915f906111f0908490613de9565b90915550506001600160801b0389168101801561133e576040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024015b602060405180830381865afa15801561126c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112909190613e56565b10156112ae5760405162461bcd60e51b815260040161063890613e6d565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015611318573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133c9190613d49565b505b5050600a805460ff191690555050505050505050505050565b5f5460609081906001600160a01b031633146113855760405162461bcd60e51b815260040161063890613efb565b6001600160a01b0383165f9081526005602052604081205490805b828110156113f2576001600160a01b0386165f908152600460209081526040808320848452909152902060020154600160581b900460ff166113ea57816113e681613e9b565b9250505b6001016113a0565b505f816001600160401b0381111561140c5761140c613eb3565b60405190808252806020026020018201604052801561144557816020015b611432613980565b81526020019060019003908161142a5790505b5090505f826001600160401b0381111561146157611461613eb3565b60405190808252806020026020018201604052801561148a578160200160208202803683370190505b5090505f805b858110156115e9576001600160a01b0389165f908152600460209081526040808320848452909152902060020154600160581b900460ff166115e1576001600160a01b0389165f90815260046020908152604080832084845282529182902082516101408101845281546001600160801b038082168352600160801b8083046001600160401b0390811696850196909652600160c01b909204851695830195909552600183015480861660608401520490931660808401526002015460ff80821660a085015261010080830461ffff1660c08601526301000000830490931660e0850152600160581b82048116151592840192909252600160601b900416151561012082015284518590849081106115aa576115aa613ec7565b6020026020010181905250808383815181106115c8576115c8613ec7565b6020908102919091010152816115dd81613e9b565b9250505b600101611490565b509195509350505050915091565b600a5460ff161561161a5760405162461bcd60e51b815260040161063890613c7e565b600a805460ff191660011790556127106001600160801b03831610156116525760405162461bcd60e51b815260040161063890613ca2565b6311e1a300826001600160801b031660065461166e9190613cdd565b111561168c5760405162461bcd60e51b815260040161063890613cf0565b6116958161354b565b6116b15760405162461bcd60e51b815260040161063890613d64565b6102da8111156116d35760405162461bcd60e51b815260040161063890613d8c565b335f90815260076020526040902054624c4b40906116fb906001600160801b03851690613cdd565b11156117405760405162461bcd60e51b8152602060048201526014602482015273115e18d959591cc81dd85b1b195d081b1a5b5a5d60621b6044820152606401610638565b335f9081526009602052604090205460ff166117d2576101f4600854106117a55760405162461bcd60e51b815260206004820152601960248201527813585e081d1d5c989bc81cdd185ad95c9cc81c995858da1959603a1b6044820152606401610638565b335f908152600960205260408120805460ff1916600117905560088054916117cc83613e9b565b91905055505b6040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd9061182290339030908790600401613d1d565b6020604051808303815f875af115801561183e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118629190613d49565b50816001600160801b031660065f82825461187d9190613cdd565b90915550505f8181526003602052604090205461ffff16806118b15760405162461bcd60e51b815260040161063890613d64565b335f90815260076020526040812080546001600160801b03861692906118d8908490613cdd565b909155506118fc90506004600533866118f48762015180613db1565b600287613363565b5060405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160801b03851660248301527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015611991573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096c9190613d49565b6006545f806119c8836311e1a300613de9565b91506311e1a3006006546127106119df9190613db1565b6119e99190613e10565b9050909192565b5f5460609081906001600160a01b03163314611a1e5760405162461bcd60e51b815260040161063890613efb565b6001600160a01b0383165f9081526005602052604081205490805b82811015611a96576001600160a01b0386165f908152600460209081526040808320848452909152902060020154600160581b900460ff1615611a8e57611a808682613579565b81611a8a81613e9b565b9250505b600101611a39565b505f816001600160401b03811115611ab057611ab0613eb3565b604051908082528060200260200182016040528015611ae957816020015b611ad6613980565b815260200190600190039081611ace5790505b5090505f826001600160401b03811115611b0557611b05613eb3565b604051908082528060200260200182016040528015611b2e578160200160208202803683370190505b5090505f805b858110156115e9576001600160a01b0389165f908152600460209081526040808320848452909152902060020154600160581b900460ff1615611c86576001600160a01b0389165f90815260046020908152604080832084845282529182902082516101408101845281546001600160801b038082168352600160801b8083046001600160401b0390811696850196909652600160c01b909204851695830195909552600183015480861660608401520490931660808401526002015460ff80821660a085015261010080830461ffff1660c08601526301000000830490931660e0850152600160581b82048116151592840192909252600160601b90041615156101208201528451859084908110611c4f57611c4f613ec7565b602002602001018190525080838381518110611c6d57611c6d613ec7565b602090810291909101015281611c8281613e9b565b9250505b600101611b34565b6001600160a01b0381165f90815260076020526040812054908080611cb684624c4b40613de9565b6008549093509150611cca826101f4613de9565b90509193509193565b60018160048110611ce2575f80fd5b60109182820401919006600202915054906101000a900461ffff1681565b600a5460ff1615611d235760405162461bcd60e51b815260040161063890613c7e565b600a805460ff19166001179055335f90815260056020526040902054819081108015611d725750335f908152600460209081526040808320848452909152902060020154600160581b900460ff165b611d8e5760405162461bcd60e51b815260040161063890613dc8565b335f908152600460209081526040808320858452909152902060028082015460ff16148015611dea57508054611ddd906001600160401b03600160c01b8204811691600160801b900416613edb565b6001600160401b03164210155b611e1f5760405162461bcd60e51b8152602060048201526006602482015265131bd8dad95960d21b6044820152606401610638565b611e293384613579565b8054600282015460018301546001600160801b0380841693610100840461ffff1693600160801b8083046001600160401b0390811695600160c01b9094048116946301000000909304169204165f611e818486613edb565b6001600160401b031690505f836001600160401b03168210611ea35781611eae565b836001600160401b03165b90505f611ec46001600160401b03861683613de9565b90505f611ed76301e13380612710613db1565b82611eef61ffff8c166001600160801b038e16613db1565b611ef99190613db1565b611f039190613e10565b9050846001600160801b03168a6001600160801b03161015611f375760405162461bcd60e51b815260040161063890613e2f565b60028b01805460ff60581b19169055600680546001600160801b038c1691905f90611f63908490613de9565b9091555050335f90815260076020526040812080546001600160801b038d169290611f8f908490613de9565b9091555050335f90815260076020526040902054158015611fbe5750335f9081526009602052604090205460ff165b1561207757335f90815260056020526040812054815b8181101561204457335f908152600460209081526040808320848452909152902060020154600160581b900460ff16801561202e5750335f908152600460209081526040808320848452909152902060029081015460ff16145b1561203c5760019250612044565b600101611fd4565b508161207457335f908152600960205260408120805460ff19169055600880549161206e83613f1e565b91905055505b50505b6001600160801b03858b031681810180156121c2576040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156120f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121149190613e56565b10156121325760405162461bcd60e51b815260040161063890613e6d565b60405163a9059cbb60e01b8152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af115801561219c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121c09190613d49565b505b5050600a805460ff1916905550505050505050505050505050565b5f546001600160a01b031633146122065760405162461bcd60e51b815260040161063890613efb565b6001600160a01b03811661224b5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610638565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b335f90815260056020526040812054606091829190805b828110156122cc57335f908152600460209081526040808320848452909152902060020154600160581b900460ff166122c457816122c081613e9b565b9250505b600101612283565b505f816001600160401b038111156122e6576122e6613eb3565b60405190808252806020026020018201604052801561231f57816020015b61230c613980565b8152602001906001900390816123045790505b5090505f826001600160401b0381111561233b5761233b613eb3565b604051908082528060200260200182016040528015612364578160200160208202803683370190505b5090505f805b85811015610fbe57335f908152600460209081526040808320848452909152902060020154600160581b900460ff166124a957335f90815260046020908152604080832084845282529182902082516101408101845281546001600160801b038082168352600160801b8083046001600160401b0390811696850196909652600160c01b909204851695830195909552600183015480861660608401520490931660808401526002015460ff80821660a085015261010080830461ffff1660c08601526301000000830490931660e0850152600160581b82048116151592840192909252600160601b9004161515610120820152845185908490811061247257612472613ec7565b60200260200101819052508083838151811061249057612490613ec7565b6020908102919091010152816124a581613e9b565b9250505b60010161236a565b6001600160a01b0382165f90815260046020908152604080832084845290915281206002015481908190819081908190600160581b900460ff16156124fa576124fa8888613579565b6001600160a01b0388165f9081526004602090815260408083208a845282529182902082516101408101845281546001600160801b038082168352600160801b8083046001600160401b0390811696850196909652600160c01b909204851695830195909552600183015480861660608401520490931660808401526002015460ff80821660a085015261010080830461ffff1660c08601526301000000830490931660e0850152600160581b820481161515928401839052600160601b9091041615156101208301526125e0575f805f805f8096509650965096509650965050612943565b6301e13380612710028160c0015161ffff16825f01516001600160801b0316028161260d5761260d613dfc565b0493508060a0015160ff165f036126f6575f816020015162278d006126329190613edb565b6001600160401b031690505f81421161264b574261264d565b815b90505f83602001516001600160401b0316826126699190613de9565b905061267b6301e13380612710613db1565b818560c0015161ffff16865f01516001600160801b031661269c9190613db1565b6126a69190613db1565b6126b09190613e10565b995083606001516001600160801b03169850888a10156126d0575f6126da565b6126da898b613de9565b9750835f01516001600160801b031695505f9450505050612941565b8060a0015160ff16600203612883575f8160400151826020015161271a9190613edb565b6001600160401b031690505f8142116127335742612735565b815b90508260e001516001600160401b0316811115612793575f8360e001516001600160401b0316820390506301e1338061271002818560c0015161ffff16865f01516001600160801b031602028161278e5761278e613dfc565b049750505b60608301516001600160801b031697506127ad8789613cdd565b98505f83602001516001600160401b0316426127c99190613de9565b90505f84604001516001600160401b031682116127e657816127f5565b84604001516001600160401b03165b90505f85604001516001600160401b031683116128415785604001516001600160401b031682875f01516001600160801b03166128329190613db1565b61283c9190613e10565b61284d565b85516001600160801b03165b905085608001516001600160801b031696508681101561286d575f612877565b6128778782613de9565b97505050505050612941565b5f816040015182602001516128989190613edb565b6001600160401b031690505f8142116128b157426128b3565b815b90508260e001516001600160401b0316811115612911575f8360e001516001600160401b0316820390506301e1338061271002818560c0015161ffff16865f01516001600160801b031602028161290c5761290c613dfc565b049750505b60608301516001600160801b0316975061292b8789613cdd565b83519099506001600160801b031694505f935050505b505b9295509295509295565b600a5460ff16156129705760405162461bcd60e51b815260040161063890613c7e565b600a805460ff19166001179055335f908152600560205260409020548190811080156129bf5750335f908152600460209081526040808320848452909152902060020154600160581b900460ff165b6129db5760405162461bcd60e51b815260040161063890613dc8565b335f9081526004602090815260408083208584529091529020600281015460ff1615612a385760405162461bcd60e51b815260206004820152600c60248201526b4e6f7420666c657869626c6560a01b6044820152606401610638565b612a423384613579565b8054600282015460018301546001600160801b0380841693600160801b90046001600160401b031692610100900461ffff1691165f612a818442613de9565b90505f612a946301e13380612710613db1565b82612aac61ffff87166001600160801b038a16613db1565b612ab69190613db1565b612ac09190613e10565b9050826001600160801b0316811015612aeb5760405162461bcd60e51b815260040161063890613e2f565b5f836001600160801b0316820390505f612b0e886001600160801b0316856138b0565b90506001600160801b03881682015f81831015612b2d57828203612b2f565b5f5b60028c01805460ff60581b19169055600680546001600160801b038d169003905590508215612c0a5760405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018590527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af1158015612be4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c089190613d49565b505b801561133e576040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401611251565b5f546001600160a01b03163314612c875760405162461bcd60e51b815260040161063890613efb565b6001600160a01b038916612ccc5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610638565b612710886001600160801b03161015612cf75760405162461bcd60e51b815260040161063890613ca2565b6311e1a300886001600160801b0316600654612d139190613cdd565b1115612d315760405162461bcd60e51b815260040161063890613cf0565b6001600160801b038381161115612d8a5760405162461bcd60e51b815260206004820152601760248201527f546f74616c20636c61696d656420746f6f206c617267650000000000000000006044820152606401610638565b876001600160801b0316826001600160801b03161115612dec5760405162461bcd60e51b815260206004820181905260248201527f5072696e636970616c20636c61696d6564206578636565647320616d6f756e746044820152606401610638565b5f8080886002811115612e0157612e01613f33565b03612e1c5750505f8054600160a01b900461ffff169061309b565b6001886002811115612e3057612e30613f33565b03612ec157612e3e8961354b565b612e5a5760405162461bcd60e51b815260040161063890613d64565b6102da891115612e7c5760405162461bcd60e51b815260040161063890613d8c565b5f8981526002602052604090205461ffff16915081612ead5760405162461bcd60e51b815260040161063890613d64565b612eba8962015180613db1565b905061309b565b612eca8961354b565b612ee65760405162461bcd60e51b815260040161063890613d64565b6102da891115612f085760405162461bcd60e51b815260040161063890613d8c565b6001600160a01b038b165f90815260076020526040902054624c4b4090612f39906001600160801b038d1690613cdd565b1115612f7e5760405162461bcd60e51b8152602060048201526014602482015273115e18d959591cc81dd85b1b195d081b1a5b5a5d60621b6044820152606401610638565b6001600160a01b038b165f9081526009602052604090205460ff16613022576101f460085410612fec5760405162461bcd60e51b815260206004820152601960248201527813585e081d1d5c989bc81cdd185ad95c9cc81c995858da1959603a1b6044820152606401610638565b6001600160a01b038b165f908152600960205260408120805460ff19166001179055600880549161301c83613e9b565b91905055505b5f8981526003602052604090205461ffff169150816130535760405162461bcd60e51b815260040161063890613d64565b6130608962015180613db1565b6001600160a01b038c165f90815260076020526040812080549293506001600160801b038d1692909190613095908490613cdd565b90915550505b6001600160a01b038b165f908152600560205260408120805490826130bf83613e9b565b9190505590506040518061014001604052808c6001600160801b03168152602001896001600160401b03168152602001836001600160401b03168152602001876001600160801b03168152602001866001600160801b031681526020018a600281111561312e5761312e613f33565b60ff1681526020018461ffff168152602001886001600160401b0316815260200185151581526020015f151581525060045f8e6001600160a01b03166001600160a01b031681526020019081526020015f205f8381526020019081526020015f205f820151815f015f6101000a8154816001600160801b0302191690836001600160801b031602179055506020820151815f0160106101000a8154816001600160401b0302191690836001600160401b031602179055506040820151815f0160186101000a8154816001600160401b0302191690836001600160401b031602179055506060820151816001015f6101000a8154816001600160801b0302191690836001600160801b0316021790555060808201518160010160106101000a8154816001600160801b0302191690836001600160801b0316021790555060a0820151816002015f6101000a81548160ff021916908360ff16021790555060c08201518160020160016101000a81548161ffff021916908361ffff16021790555060e08201518160020160036101000a8154816001600160401b0302191690836001600160401b0316021790555061010082015181600201600b6101000a81548160ff02191690831515021790555061012082015181600201600c6101000a81548160ff0219169083151502179055509050508315613345578a6001600160801b031660065f82825461333f9190613cdd565b90915550505b8315613355576133558c82613579565b505050505050505050505050565b6001600160a01b0385165f9081526020879052604081208054908261338783613e9b565b919050559050604051806101400160405280866001600160801b03168152602001426001600160401b03168152602001856001600160401b031681526020015f6001600160801b031681526020015f6001600160801b031681526020018460028111156133f6576133f6613f33565b60ff908116825261ffff9485166020808401919091526001600160401b03428116604080860191909152600160608087018290525f60809788018190526001600160a01b03909e168e529e8452818d20888e5284529b8190208651815494880151928801518416600160c01b026001600160c01b03938516600160801b9081026001600160c01b03199097166001600160801b039384161796909617939093169290921781559d8601519486015181169092029390911692909217988b019890985560a08201516002909a01805460c084015160e085015161010080870151610120909701511515600160601b0260ff60601b19971515600160581b0260ff60581b1993909716630100000002929092166bffffffffffffffffff00000019939099160262ffffff199093169d909b169c909c17179a909a169390931792909217919091169490941790955550909392505050565b5f605a82148061355b575060b482145b80613567575061016d82145b8061357357506102da82145b92915050565b6001600160a01b0382165f90815260046020908152604080832084845290915290206002810154600160581b900460ff166135b357505050565b60028101545f9060ff1681036135ed57815462278d00906135e490600160801b90046001600160401b031642613de9565b10159050613619565b81546001600160401b03600160c01b820481169161361491600160801b9091041642613de9565b101590505b600282015460ff600160601b9091041615158115151461364d5760028201805460ff60601b1916600160601b831515021790555b50505050565b6001600160a01b0382165f908152600460209081526040808320848452825280832081516101408101835281546001600160801b038082168352600160801b8083046001600160401b0390811697850197909752600160c01b909204861694830194909452600183015480851660608401520490921660808301526002015460ff80821660a084015261010080830461ffff1660c08501526301000000830490941660e0840152600160581b820481161515938301849052600160601b9091041615156101208201529061372a575f915050613573565b8060a0015160ff165f0361380a575f816020015162278d0061374c9190613edb565b6001600160401b031690505f8142116137655742613767565b815b90505f83602001516001600160401b0316826137839190613de9565b90505f6137966301e13380612710613db1565b828660c0015161ffff16875f01516001600160801b03166137b79190613db1565b6137c19190613db1565b6137cb9190613e10565b905084606001516001600160801b031681116137ee575f95505050505050613573565b84606001516001600160801b0316810395505050505050613573565b5f8160400151826020015161381f9190613edb565b6001600160401b031690505f814211613838574261383a565b815b90508260e001516001600160401b0316811161385b575f9350505050613573565b5f8360e001516001600160401b0316820390506301e1338061271002818560c0015161ffff16865f01516001600160801b031602028161389d5761389d613dfc565b04945050505050613573565b5092915050565b6040805160808101918290525f918291906001906004908285855b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116138cb57905050505050509050620d2f0083101561393c57612710815f5b602002015161ffff1685028161393357613933613dfc565b04915050613573565b621a5e008310156139525761271081600161391b565b62278d008310156139685761271081600261391b565b60608101516127109061ffff16850204949350505050565b60408051610140810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081019190915290565b80356001600160801b03811681146139e9575f80fd5b919050565b5f602082840312156139fe575f80fd5b613a07826139d3565b9392505050565b5f8060408385031215613a1f575f80fd5b613a28836139d3565b946020939093013593505050565b5f60208284031215613a46575f80fd5b5035919050565b5f815180845260208085019450602084015f5b83811015613a7c57815187529582019590820190600101613a60565b509495945050505050565b604080825283518282018190525f9190606090818501906020808901865b83811015613b4a57815180516001600160801b039081168752848201516001600160401b03908116868901528983015181168a890152888301518216898901526080808401519092169188019190915260a08083015160ff169088015260c08083015161ffff169088015260e0808301519091169087015261010080820151151590870152610120908101511515908601526101409094019390820190600101613aa5565b505050508481036020860152613b608187613a4d565b979650505050505050565b80356001600160a01b03811681146139e9575f80fd5b5f8060408385031215613b92575f80fd5b613a2883613b6b565b5f60208284031215613bab575f80fd5b613a0782613b6b565b80356001600160401b03811681146139e9575f80fd5b8015158114613bd7575f80fd5b50565b5f805f805f805f805f6101208a8c031215613bf3575f80fd5b613bfc8a613b6b565b9850613c0a60208b016139d3565b975060408a0135965060608a013560038110613c24575f80fd5b9550613c3260808b01613bb4565b9450613c4060a08b01613bb4565b9350613c4e60c08b016139d3565b9250613c5c60e08b016139d3565b91506101008a0135613c6d81613bca565b809150509295985092959850929598565b6020808252600a90820152695265656e7472616e637960b01b604082015260600190565b6020808252600d908201526c42656c6f77206d696e696d756d60981b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561357357613573613cc9565b602080825260139082015272115e18d959591cc81d1bdd185b081b1a5b5a5d606a1b604082015260600190565b6001600160a01b0393841681529190921660208201526001600160801b03909116604082015260600190565b5f60208284031215613d59575f80fd5b8151613a0781613bca565b6020808252600e908201526d125b9d985b1a59081c195c9a5bd960921b604082015260600190565b6020808252600b908201526a4d6178203220796561727360a81b604082015260600190565b808202811582820484141761357357613573613cc9565b602080825260079082015266125b9d985b1a5960ca1b604082015260600190565b8181038181111561357357613573613cc9565b634e487b7160e01b5f52601260045260245ffd5b5f82613e2a57634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252600d908201526c496e76616c696420737461746560981b604082015260600190565b5f60208284031215613e66575f80fd5b5051919050565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b5f60018201613eac57613eac613cc9565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b6001600160401b038181168382160190808211156138a9576138a9613cc9565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b5f81613f2c57613f2c613cc9565b505f190190565b634e487b7160e01b5f52602160045260245ffdfea26469706673582212206e28c94dafac7f2e64678b98acfda9821cf803dac753b476288b48033117df9964736f6c63430008180033