344 txs
921 calls
constructor
constructor(uint32 _startTimestamp, address _buyAndBurn, address _titanX, address _phoenix, address _inferno, address _blazeStakingVault, address _titanXVault, address _fluxStakingVault, (address v3Router, address v3Factory, address positionManager, address owner) _swapActionsState) payable
functions
amountToClaim
viewfunction amountToClaim(address _user, uint96 _depositId) view returns (uint256 toClaim)
batchClaimableAmount
viewfunction batchClaimableAmount(address _user, uint96[] _depositIds) view returns (uint256 total)
blazeStakingVault
viewfunction blazeStakingVault() view returns (address)
buyAndBurn
viewfunction buyAndBurn() view returns (address)
depositId
viewfunction depositId() view returns (uint96)
fluxStakingVault
viewfunction fluxStakingVault() view returns (address)
GAP_BETWEEN_CYCLE
viewfunction GAP_BETWEEN_CYCLE() view returns (uint32)
getCycleAt
viewfunction getCycleAt(uint32 t) view returns (uint32 currentCycle, uint32 startsAt, uint32 endsAt)
getRatioForCycle
purefunction getRatioForCycle(uint32 cycleId) pure returns (uint256 ratio)
getTwapAmountV3
viewfunction getTwapAmountV3(address tokenIn, address tokenOut, uint256 amount) view returns (uint256 twapAmount, uint224 slippage)
inferno
viewfunction inferno() view returns (address)
MAX_MINT_CYCLE
viewfunction MAX_MINT_CYCLE() view returns (uint8)
MINT_CYCLE_DURATION
viewfunction MINT_CYCLE_DURATION() view returns (uint32)
owner
viewfunction owner() view returns (address)
phoenix
viewfunction phoenix() view returns (address)
positionManager
viewfunction positionManager() view returns (address)
slippageAdmin
viewfunction slippageAdmin() view returns (address)
slippageConfigs
viewfunction slippageConfigs(address pool) view returns (uint224 slippage, uint32 twapLookback)
startTimestamp
viewfunction startTimestamp() view returns (uint32)
titanX
viewfunction titanX() view returns (address)
titanXVault
viewfunction titanXVault() view returns (address)
totalPhoenixClaimed
viewfunction totalPhoenixClaimed() view returns (uint256)
totalPhoenixMinted
viewfunction totalPhoenixMinted() view returns (uint256)
totalTitanXDeposited
viewfunction totalTitanXDeposited() view returns (uint256)
userDeposit
viewfunction userDeposit(address user, uint96 depositId) view returns (uint224 amount, uint32 depositedAt)
v3Factory
viewfunction v3Factory() view returns (address)
v3Router
viewfunction v3Router() view returns (address)
addLiquidityToInfernoPhoenixPool
nonpayablefunction addLiquidityToInfernoPhoenixPool(uint32 _deadline)
batchClaim
nonpayablefunction batchClaim(uint96[] _ids)
changeLpSlippage
nonpayablefunction changeLpSlippage(uint256 _newSlippage)
changeSlippageAdmin
nonpayablefunction changeSlippageAdmin(address _new)
changeSlippageConfig
nonpayablefunction changeSlippageConfig(address pool, uint224 _newSlippage, uint32 _newLookBack)
claim
nonpayablefunction claim(uint96 _depositId)
collectFees
nonpayablefunction collectFees() returns (uint256 amount0, uint256 amount1)
mint
nonpayablefunction mint(uint256 _amount)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
ClaimExecuted
event ClaimExecuted(address indexed user, uint256 phoenixAmount, uint96 indexed depositId)
MintExecuted
event MintExecuted(address indexed user, uint256 titanXAmount, uint256 phoenixAmount, uint96 indexed depositId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
Address0
error Address0()
Amount0
error Amount0()
CycleIsOver
error CycleIsOver()
CycleStillOngoing
error CycleStillOngoing()
Expired
error Expired()
GreaterThan
error GreaterThan(uint256 a, uint256 b)
InvalidStartTime
error InvalidStartTime()
LiquidityAlreadyAdded
error LiquidityAlreadyAdded()
NoPhoenixToClaim
error NoPhoenixToClaim()
NotEnoughTitanXForLiq
error NotEnoughTitanXForLiq()
NotStartedYet
error NotStartedYet()
OnlyEOA
error OnlyEOA()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SwapAction__OnlySlippageAdmin
error SwapAction__OnlySlippageAdmin()
SwapActions__InvalidSlippage
error SwapActions__InvalidSlippage()
SwapActions__Observations
error SwapActions__Observations()
T
error T()
creation bytecode
0x6101e0604052670d2f13f7789f0000600855604051613b38380380613b3883398101604081905261002f9161027a565b606081015181906001600160a01b03811661006357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61006c81610150565b5080516100788161019f565b60208201516100868161019f565b505060408101516001600160a01b0390811660a052815181166080526020820151811660c052606090910151600180546001600160a01b03191691909216179055876100d18161019f565b876100db8161019f565b866100e58161019f565b866100ef8161019f565b856100f98161019f565b8a6101038161019f565b50505063ffffffff909b166101c0525050506001600160a01b03938416610100529083166101605282166101a0529181166101205291821660e05291811661014052166101805250610339565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166101c6576040516359c662df60e11b815260040160405180910390fd5b50565b6001600160a01b03811681146101c6575f5ffd5b80516101e8816101c9565b919050565b5f608082840312156101fd575f5ffd5b604051608081016001600160401b038111828210171561022b57634e487b7160e01b5f52604160045260245ffd5b6040528251909150819061023e816101c9565b815261024c602084016101dd565b602082015261025d604084016101dd565b604082015261026e606084016101dd565b60608201525092915050565b5f5f5f5f5f5f5f5f5f6101808a8c031215610293575f5ffd5b895163ffffffff811681146102a6575f5ffd5b60208b01519099506102b7816101c9565b60408b01519098506102c8816101c9565b60608b01519097506102d9816101c9565b60808b01519096506102ea816101c9565b60a08b01519095506102fb816101c9565b60c08b015190945061030c816101c9565b925061031a60e08b016101dd565b915061032a8b6101008c016101ed565b90509295985092959850929598565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516136a66104925f395f818161063f0152818161070c01528181610780015261123301525f81816102a70152818161177d0152611d3f01525f81816102800152611f7f01525f818161043b0152611dff01525f81816105530152611ebf01525f818161057a01528181610a2d01528181610d370152818161101c015281816116da0152611a5601525f81816103c8015281816109e10152818161174e0152611a7701525f81816106790152818161092a015281816109c0015281816112bc01528181611c5701528181611d1001528181611dd001528181611e9001528181611f50015261201801525f818161049a015261143b01525f818161047301528181610ad601528181610b7801528181610ca3015261163a01525f818161023c015281816118bc01526119cb01526136a65ff3fe608060405234801561000f575f5ffd5b506004361061021e575f3560e01c8063791b98bc1161012a578063a8966d6e116100b4578063c879657211610079578063c8796572146105e6578063e121ce4114610603578063e6fd48bc1461063a578063f2fde38b14610661578063f9119bbd14610674575f5ffd5b8063a8966d6e14610545578063aa6df2991461054e578063b132377914610575578063beb1e79d1461059c578063c8581e2a146105cc575f5ffd5b80638da5cb5b116100fa5780638da5cb5b146104db5780639852099c146104eb5780639f47f04814610516578063a0712d6814610529578063a38c145b1461053c575f5ffd5b8063791b98bc1461046e5780637c887c59146104955780638041950b146104bc5780638d50a3d9146104bc575f5ffd5b8063488fc775116101ab5780636cfa5abd1161017b5780636cfa5abd146104105780636da5c094146104235780636fe1795a14610436578063715018a61461045d57806377c18c7314610465575f5ffd5b8063488fc775146103a257806351f29326146103c357806358cb37f1146103ea5780635a56d868146103fd575f5ffd5b806331e78a17116101f157806331e78a17146102c957806335478aa41461032f5780633a237aa0146103425780633eb6275b14610355578063457c7afa1461038f575f5ffd5b806305940f10146102225780630dc9130614610237578063118aabc71461027b5780632b96bdc5146102a2575b5f5ffd5b610235610230366004612b6f565b61069b565b005b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b61030b6102d7366004612bd8565b600960209081525f92835260408084209091529082529020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff909116602083015201610272565b61023561033d366004612c0b565b6106f6565b60015461025e906001600160a01b031681565b610368610363366004612c33565b610703565b6040805163ffffffff94851681529284166020840152921691810191909152606001610272565b61023561039d366004612c4e565b6107bc565b6103b56103b0366004612c33565b6107f1565b604051908152602001610272565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b6102356103f8366004612c33565b6108db565b61023561040b366004612c69565b610eea565b6103b561041e366004612c82565b611086565b6103b5610431366004612bd8565b6110f2565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b610235611177565b6103b560075481565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b6104c66201518081565b60405163ffffffff9091168152602001610272565b5f546001600160a01b031661025e565b6004546104fe906001600160601b031681565b6040516001600160601b039091168152602001610272565b610235610524366004612cd3565b61118a565b610235610537366004612c0b565b611227565b6103b560065481565b6103b560055481565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b6105af6105aa366004612d26565b611433565b604080519283526001600160e01b03909116602083015201610272565b6105d4601c81565b60405160ff9091168152602001610272565b6105ee611592565b60408051928352602083019190915201610272565b61030b610611366004612c4e565b60026020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b6104c67f000000000000000000000000000000000000000000000000000000000000000081565b61023561066f366004612c4e565b6117f0565b61025e7f000000000000000000000000000000000000000000000000000000000000000081565b5f5b6001600160601b0381168211156106f1576106e18383836001600160601b03168181106106cc576106cc612d64565b905060200201602081019061040b9190612c69565b6106ea81612d8c565b905061069d565b505050565b6106fe611832565b600855565b5f8080806107317f000000000000000000000000000000000000000000000000000000000000000086612db6565b90506107406201518082612dec565b61074b906001612e13565b9350601c63ffffffff8516111561076157601c93505b62015180610770600186612db6565b61077a9190612e2f565b6107a4907f0000000000000000000000000000000000000000000000000000000000000000612e13565b92506107b36201518084612e13565b93959294505050565b806107c68161185e565b6107ce611832565b50600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f8163ffffffff1660010361080f5750670de0b6b3a7640000919050565b60048263ffffffff161161082c5750670d2f13f7789f0000919050565b60088263ffffffff16116108495750670cd64299613c8000919050565b600c8263ffffffff16116108665750670c7d713b49da0000919050565b60108263ffffffff16116108835750670c249fdd32778000919050565b60148263ffffffff16116108a05750670bcbce7f1b150000919050565b60188263ffffffff16116108bd5750670b72fd2103b28000919050565b601c8263ffffffff16116108d65750670b1a2bc2ec5000005b919050565b6108e3611832565b60035460ff161561090757604051630fd02b6d60e41b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526b204fce5e3e25026110000000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610977573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099b9190612e55565b10156109ba5760405163faac2a1960e01b815260040160405180910390fd5b5f610a137f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006b204fce5e3e2502611000000085611885565b6040516340c10f1960e01b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990610a709030906b204fce5e3e2502611000000090600401612e6c565b5f604051808303815f87803b158015610a87575f5ffd5b505af1158015610a99573d5f5f3e3d5ffd5b505050505f5f5f5f5f5f610ab9876b204fce5e3e25026110000000611a4e565b955095509550955095509550816001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000886040518363ffffffff1660e01b8152600401610b13929190612e6c565b6020604051808303815f875af1158015610b2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b539190612e94565b5060405163095ea7b360e01b81526001600160a01b0382169063095ea7b390610ba2907f0000000000000000000000000000000000000000000000000000000000000000908990600401612e6c565b6020604051808303815f875af1158015610bbe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be29190612e94565b505f604051806101600160405280846001600160a01b03168152602001836001600160a01b0316815260200161271062ffffff16815260200160c880620d89e719610c2d9190612ead565b610c379190612ee5565b60020b815260200160c880610c4f620d89e719612f04565b610c599190612ead565b610c639190612ee5565b60020b8152602001888152602001878152602001868152602001858152602001306001600160a01b031681526020018a63ffffffff1681525090505f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166388316456856040518263ffffffff1660e01b8152600401610ced9190612f24565b6080604051808303815f875af1158015610d09573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2d9190612fe8565b935093505092505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b03161490508a831015610dfd57866001600160a01b031663a9059cbb610d945f546001600160a01b031690565b610d9e868f61302f565b6040518363ffffffff1660e01b8152600401610dbb929190612e6c565b6020604051808303815f875af1158015610dd7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190612e94565b505b89821015610e8e57856001600160a01b031663a9059cbb610e255f546001600160a01b031690565b610e2f858e61302f565b6040518363ffffffff1660e01b8152600401610e4c929190612e6c565b6020604051808303815f875af1158015610e68573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8c9190612e94565b505b604080516060810182526001808252921515602082018190526001600160f01b039690961691018190526003805461ffff19166101009096029590951790911761ffff1662010000909102179092555050505050505050505050565b335f9081526009602090815260408083206001600160601b03851684528252918290208251808401909352546001600160e01b0381168352600160e01b900463ffffffff16908201819052610f429062015180612e13565b63ffffffff164211610f6757604051632db8551b60e11b815260040160405180910390fd5b5f610f758260200151610703565b505090505f610f98835f01516001600160e01b0316610f93846107f1565b611b07565b335f8181526009602090815260408083206001600160601b038a16808552908352818420939093555184815293945090927fc701f4b1952e9218064fa6096f554fa4e572c08628d9598b335eb020cfcb888f910160405180910390a3806005546110029190613042565b6005556040516340c10f1960e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340c10f19906110539033908590600401612e6c565b5f604051808303815f87803b15801561106a575f5ffd5b505af115801561107c573d5f5f3e3d5ffd5b5050505050505050565b5f805b6001600160601b0381168311156110ea576110ce858585846001600160601b03168181106110b9576110b9612d64565b90506020020160208101906104319190612c69565b6110d89083613042565b91506110e381612d8c565b9050611089565b509392505050565b6001600160a01b0382165f9081526009602090815260408083206001600160601b038516845282528083208151808301909252546001600160e01b0381168252600160e01b900463ffffffff1691810182905290829061115190610703565b5050905061116e825f01516001600160e01b0316610f93836107f1565b95945050505050565b61117f611832565b6111885f611b32565b565b8063ffffffff1661119a81611b81565b6111a2611ba1565b670de0b6b3a76400006001600160e01b03841611156111d4576040516338fd8f3960e21b815260040160405180910390fd5b506040805180820182526001600160e01b03938416815263ffffffff92831660208083019182526001600160a01b039096165f90815260029096529190942093519051909116600160e01b029116179055565b8061123181611b81565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff1642101561127857604051631864d7ab60e21b815260040160405180910390fd5b5f5f61128342610703565b92505091508063ffffffff164211156112af576040516354913e1960e01b815260040160405180910390fd5b6112e46001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333087611be0565b6112ed84611c40565b5f670de0b6b3a7640000611300846107f1565b61130a9087613055565b611314919061306c565b6040805180820182526001600160e01b038816815263ffffffff4216602080830191909152335f9081526009909152918220600480549495509193909291908290611367906001600160601b0316612d8c565b82546001600160601b039182166101009390930a8381029083021990911617909255825260208083019390935260409182015f208451949093015163ffffffff16600160e01b026001600160e01b0390941693909317909155600454905191169033907f664cd850cff8f43f61a974abfefc0f6e2ffbf1a495cebdbe3fc7be5ad455247d906114029089908690918252602082015260400190565b60405180910390a3806006546114189190613042565b600655600754611429908690613042565b6007555050505050565b5f5f5f61146c7f000000000000000000000000000000000000000000000000000000000000000061146788886127106120c1565b612137565b6001600160a01b0381165f908152600260209081526040918290208251808401909352546001600160e01b0381168352600160e01b900463ffffffff16908201819052919250901580156114c8575080516001600160e01b0316155b1561150b5760405180604001604052806702c68af0bb140000670de0b6b3a76400006114f4919061307f565b67ffffffffffffffff168152600f60209091015290505b5f8160200151603c61151d9190612e2f565b90505f6115298461221d565b90508163ffffffff168163ffffffff1610156115585760405163c15607ef60e01b815260040160405180910390fd5b5f61156385846123d5565b5090505f6115708261260a565b855197509050611582818a8d8d612925565b9750505050505050935093915050565b604080516060808201835260035460ff8082161515845261010082041615156020808501919091526001600160f01b03620100009092048216848601908152855160808101875290519092168252309082019081526001600160801b03828601818152938301818152955163fc6f786560e01b81528351600482015291516001600160a01b039081166024840152935181166044830152945190941660648501525f938493927f0000000000000000000000000000000000000000000000000000000000000000169063fc6f78659060840160408051808303815f875af115801561167f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a3919061309f565b602084015191955093505f9081906116bc5784866116bf565b85855b604051630852cd8d60e31b81526004810183905291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c68906024015f604051808303815f87803b158015611723575f5ffd5b505af1158015611735573d5f5f3e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063a9059cbb91506117a7907f0000000000000000000000000000000000000000000000000000000000000000908590600401612e6c565b6020604051808303815f875af11580156117c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117e79190612e94565b50505050509091565b6117f8611832565b6001600160a01b03811661182657604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61182f81611b32565b50565b5f546001600160a01b031633146111885760405163118cdaa760e01b815233600482015260240161181d565b6001600160a01b03811661182f576040516359c662df60e11b815260040160405180910390fd5b5f5f5f611893878787611433565b60405163095ea7b360e01b815291935091506001600160a01b0388169063095ea7b3906118e6907f0000000000000000000000000000000000000000000000000000000000000000908990600401612e6c565b6020604051808303815f875af1158015611902573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119269190612e94565b506040805160a081019091526bffffffffffffffffffffffff19606089811b821660c084015261027160ec1b60d484015288901b1660d78201525f908060eb81016040516020818303038152906040528152602001306001600160a01b031681526020018663ffffffff1681526020018781526020016119af85856001600160e01b0316611b07565b905260405163c04b8d5960e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c04b8d5990611a009084906004016130c1565b6020604051808303815f875af1158015611a1c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a409190612e55565b93505050505b949350505050565b5f80808080807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0380821690831610611ab0578082611ab3565b81815b90945092506001600160a01b0380851690831614611ad2578989611ad5565b888a5b6008549199509750611ae8908990611b07565b611af488600854611b07565b989b979a50985092959194509092505050565b5f815f19048311820215611b225763c4c5d7f55f526004601cfd5b50670de0b6b3a764000091020490565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b805f0361182f57604051635a53a6e960e01b815260040160405180910390fd5b6001546001600160a01b0316331480611bc357505f546001600160a01b031633145b611188576040516322a6b32160e21b815260040160405180910390fd5b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611c3a9085906129f4565b50505050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611ca4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cc89190612e55565b60035490915060ff16611d0e576b204fce5e3e250261100000008111611cec575050565b611d026b204fce5e3e250261100000008261302f565b6001600160c01b031691505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000611d70856703e2c284391c0000611b07565b6040518363ffffffff1660e01b8152600401611d8d929190612e6c565b6020604051808303815f875af1158015611da9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dcd9190612e94565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000611e30856702c68af0bb140000611b07565b6040518363ffffffff1660e01b8152600401611e4d929190612e6c565b6020604051808303815f875af1158015611e69573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8d9190612e94565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000611ef0856704db732547630000611b07565b6040518363ffffffff1660e01b8152600401611f0d929190612e6c565b6020604051808303815f875af1158015611f29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f4d9190612e94565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000611fb08567013fbe85edc90000611b07565b6040518363ffffffff1660e01b8152600401611fcd929190612e6c565b6020604051808303815f875af1158015611fe9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061200d9190612e94565b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a9059cbb7324bf5ce05f732381cbcb79966607977fc21b4a186120648567011c37937e080000611b07565b6040518363ffffffff1660e01b8152600401612081929190612e6c565b6020604051808303815f875af115801561209d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f19190612e94565b604080516060810182525f8082526020820181905291810191909152826001600160a01b0316846001600160a01b031611156120fb579192915b6040518060600160405280856001600160a01b03168152602001846001600160a01b031681526020018362ffffff1681525090505b9392505050565b5f81602001516001600160a01b0316825f01516001600160a01b03161061215c575f5ffd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b5f5f5f836001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa15801561225c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122809190613141565b5050509350935050505f8161ffff16116122c15760405162461bcd60e51b81526020600482015260026024820152614e4960f01b604482015260640161181d565b5f806001600160a01b03861663252c09d7846122de8760016131d4565b6122e891906131ee565b6040516001600160e01b031960e084901b16815261ffff9091166004820152602401608060405180830381865afa158015612325573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123499190613222565b935050509150806123c15760405163252c09d760e01b81525f60048201526001600160a01b0387169063252c09d790602401608060405180830381865afa158015612396573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123ba9190613222565b5091935050505b6123cb8242612db6565b9695505050505050565b5f5f8263ffffffff165f036124115760405162461bcd60e51b8152602060048201526002602482015261042560f41b604482015260640161181d565b6040805160028082526060820183525f9260208301908036833701905050905083815f8151811061244457612444612d64565b602002602001019063ffffffff16908163ffffffff16815250505f8160018151811061247257612472612d64565b602002602001019063ffffffff16908163ffffffff16815250505f5f866001600160a01b031663883bdbfd846040518263ffffffff1660e01b81526004016124ba919061328b565b5f60405180830381865afa1580156124d4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526124fb919081019061339a565b915091505f825f8151811061251257612512612d64565b60200260200101518360018151811061252d5761252d612d64565b602002602001015161253f919061345f565b90505f825f8151811061255457612554612d64565b60200260200101518360018151811061256f5761256f612d64565b6020026020010151612581919061348c565b905063ffffffff881661259481846134ab565b97505f8360060b1280156125b357506125ad81846134de565b60060b15155b156125c657876125c2816134ff565b9850505b63ffffffff8916640100000000600160c01b03602084901b166125f06001600160a01b0383613520565b6125fa9190613551565b9750505050505050509250929050565b5f5f5f8360020b1261261f578260020b612626565b8260020b5f035b9050620d89e881111561264c576040516315e4079d60e11b815260040160405180910390fd5b5f816001165f0361266157600160801b612673565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156126a7576ffff97272373d413259a46990580e213a0260801c5b60048216156126c6576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156126e5576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612704576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612723576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612742576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612761576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612781576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156127a1576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156127c1576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156127e1576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612801576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612821576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612841576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612861576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612882576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156128a2576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156128c1576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156128de576b048a170391f7dc42444e8fa20260801c5b5f8460020b13156128fd57805f19816128f9576128f9612dd8565b0490505b640100000000810615612911576001612913565b5f5b60ff16602082901c0192505050919050565b5f6001600160801b036001600160a01b03861611612998575f61295260026001600160a01b038816613662565b9050826001600160a01b0316846001600160a01b0316106129815761297c600160c01b8683612a60565b612990565b6129908186600160c01b612a60565b915050611a46565b5f6129b66001600160a01b0387168068010000000000000000612a60565b9050826001600160a01b0316846001600160a01b0316106129e5576129e0600160801b8683612a60565b6123cb565b6123cb8186600160801b612a60565b5f5f60205f8451602086015f885af180612a13576040513d5f823e3d81fd5b50505f513d91508115612a2a578060011415612a37565b6001600160a01b0384163b155b15611c3a57604051635274afe760e01b81526001600160a01b038516600482015260240161181d565b5f838302815f1985870982811083820303915050805f03612a9457838281612a8a57612a8a612dd8565b0492505050612130565b808411612aab57612aab6003851502601118612b16565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b634e487b715f52806020526024601cfd5b5f5f83601f840112612b37575f5ffd5b50813567ffffffffffffffff811115612b4e575f5ffd5b6020830191508360208260051b8501011115612b68575f5ffd5b9250929050565b5f5f60208385031215612b80575f5ffd5b823567ffffffffffffffff811115612b96575f5ffd5b612ba285828601612b27565b90969095509350505050565b6001600160a01b038116811461182f575f5ffd5b80356001600160601b03811681146108d6575f5ffd5b5f5f60408385031215612be9575f5ffd5b8235612bf481612bae565b9150612c0260208401612bc2565b90509250929050565b5f60208284031215612c1b575f5ffd5b5035919050565b63ffffffff8116811461182f575f5ffd5b5f60208284031215612c43575f5ffd5b813561213081612c22565b5f60208284031215612c5e575f5ffd5b813561213081612bae565b5f60208284031215612c79575f5ffd5b61213082612bc2565b5f5f5f60408486031215612c94575f5ffd5b8335612c9f81612bae565b9250602084013567ffffffffffffffff811115612cba575f5ffd5b612cc686828701612b27565b9497909650939450505050565b5f5f5f60608486031215612ce5575f5ffd5b8335612cf081612bae565b925060208401356001600160e01b0381168114612d0b575f5ffd5b91506040840135612d1b81612c22565b809150509250925092565b5f5f5f60608486031215612d38575f5ffd5b8335612d4381612bae565b92506020840135612d5381612bae565b929592945050506040919091013590565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f6001600160601b0382166001600160601b038103612dad57612dad612d78565b60010192915050565b63ffffffff8281168282160390811115612dd257612dd2612d78565b92915050565b634e487b7160e01b5f52601260045260245ffd5b5f63ffffffff831680612e0157612e01612dd8565b8063ffffffff84160491505092915050565b63ffffffff8181168382160190811115612dd257612dd2612d78565b63ffffffff8181168382160290811690818114612e4e57612e4e612d78565b5092915050565b5f60208284031215612e65575f5ffd5b5051919050565b6001600160a01b03929092168252602082015260400190565b805180151581146108d6575f5ffd5b5f60208284031215612ea4575f5ffd5b61213082612e85565b5f8160020b8360020b80612ec357612ec3612dd8565b627fffff1982145f1982141615612edc57612edc612d78565b90059392505050565b5f8260020b8260020b028060020b9150808214612e4e57612e4e612d78565b5f8160020b627fffff198103612f1c57612f1c612d78565b5f0392915050565b81516001600160a01b0316815261016081016020830151612f5060208401826001600160a01b03169052565b506040830151612f67604084018262ffffff169052565b506060830151612f7c606084018260020b9052565b506080830151612f91608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e0830152610100830151610100830152610120830151612fd86101208401826001600160a01b03169052565b5061014092830151919092015290565b5f5f5f5f60808587031215612ffb575f5ffd5b845160208601519094506001600160801b0381168114613019575f5ffd5b6040860151606090960151949790965092505050565b81810381811115612dd257612dd2612d78565b80820180821115612dd257612dd2612d78565b8082028115828204841417612dd257612dd2612d78565b5f8261307a5761307a612dd8565b500490565b67ffffffffffffffff8281168282160390811115612dd257612dd2612d78565b5f5f604083850312156130b0575f5ffd5b505080516020909101519092909150565b602081525f825160a0602084015280518060c0850152806020830160e086015e5f60e0828601015260018060a01b0360208601511660408501526040850151606085015260608501516080850152608085015160a085015260e0601f19601f8301168501019250505092915050565b805161ffff811681146108d6575f5ffd5b5f5f5f5f5f5f5f60e0888a031215613157575f5ffd5b875161316281612bae565b8097505060208801518060020b8114613179575f5ffd5b955061318760408901613130565b945061319560608901613130565b93506131a360808901613130565b925060a088015160ff811681146131b8575f5ffd5b91506131c660c08901612e85565b905092959891949750929550565b61ffff8181168382160190811115612dd257612dd2612d78565b5f61ffff83168061320157613201612dd8565b8061ffff84160691505092915050565b8051600681900b81146108d6575f5ffd5b5f5f5f5f60808587031215613235575f5ffd5b845161324081612c22565b935061324e60208601613211565b9250604085015161325e81612bae565b915061326c60608601612e85565b905092959194509250565b634e487b7160e01b5f52604160045260245ffd5b602080825282518282018190525f918401906040840190835b818110156132c857835163ffffffff168352602093840193909201916001016132a4565b509095945050505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156132fc576132fc613277565b604052919050565b5f67ffffffffffffffff82111561331d5761331d613277565b5060051b60200190565b5f82601f830112613336575f5ffd5b815161334961334482613304565b6132d3565b8082825260208201915060208360051b86010192508583111561336a575f5ffd5b602085015b8381101561339057805161338281612bae565b83526020928301920161336f565b5095945050505050565b5f5f604083850312156133ab575f5ffd5b825167ffffffffffffffff8111156133c1575f5ffd5b8301601f810185136133d1575f5ffd5b80516133df61334482613304565b8082825260208201915060208360051b850101925087831115613400575f5ffd5b6020840193505b828410156134295761341884613211565b825260209384019390910190613407565b80955050505050602083015167ffffffffffffffff811115613449575f5ffd5b61345585828601613327565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715612dd257612dd2612d78565b6001600160a01b038281168282160390811115612dd257612dd2612d78565b5f8160060b8360060b806134c1576134c1612dd8565b667fffffffffffff1982145f1982141615612edc57612edc612d78565b5f8260060b806134f0576134f0612dd8565b808360060b0791505092915050565b5f8160020b627fffff19810361351757613517612d78565b5f190192915050565b6001600160c01b0381811683821681810290921691818304811482151761354957613549612d78565b505092915050565b5f6001600160c01b0383168061356957613569612dd8565b6001600160c01b03929092169190910492915050565b6001815b60018411156135ba5780850481111561359e5761359e612d78565b60018416156135ac57908102905b60019390931c928002613583565b935093915050565b5f826135d057506001612dd2565b816135dc57505f612dd2565b81600181146135f257600281146135fc57613618565b6001915050612dd2565b60ff84111561360d5761360d612d78565b50506001821b612dd2565b5060208310610133831016604e8410600b841016171561363b575081810a612dd2565b6136475f19848461357f565b805f190482111561365a5761365a612d78565b029392505050565b5f61213060ff8416836135c256fea2646970667358221220187745c1ee4f3c0d5bdb05653e97649764bfbd9e08eef7729a8df211937cf95964736f6c634300081b003300000000000000000000000000000000000000000000000000000000675db99000000000000000000000000097ebd4f9ffcfe0cbc8f63a4e0b296fbb54f0a185000000000000000000000000f19308f923582a6f7c465e5ce7a9dc1bec6665b1000000000000000000000000fe3f988a90dea3ee537bb43ec1aca7337a15d00200000000000000000000000000f116ac0c304c570daaa68fa6c30a86a04b5c5f000000000000000000000000bbe51ee30422cb9a92d93363d2921a330813b5980000000000000000000000006b59b8e9635909b7f0ff2c577bb15c936f32619a0000000000000000000000003f1bfcd2a04a829ff4106217f8eb8efa1c31e89b000000000000000000000000e592427a0aece92de3edee1f18e0157c058615640000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000008d40e3bb356a02a3a4dd6dba6cc890fd89675bda