0 txs
1 call
constructor
constructor(address _asset, address _pool, address _staking, address _rewardDistributor)
functions
asset
viewfunction asset() view returns (address)
convertBnbToSlis
viewfunction convertBnbToSlis(uint256 bnb) view returns (uint256)
convertBnbToSlisX
viewfunction convertBnbToSlisX(uint256 bnb) view returns (uint256)
convertSlisToBnb
viewfunction convertSlisToBnb(uint256 slis) view returns (uint256)
convertSlisToSlisX
viewfunction convertSlisToSlisX(uint256 slis) view returns (uint256)
convertSlisXToBnb
viewfunction convertSlisXToBnb(uint256 slisX) view returns (uint256)
convertSlisXToSlis
viewfunction convertSlisXToSlis(uint256 slisX) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DELEGATION_ROLE
viewfunction DELEGATION_ROLE() view returns (bytes32)
delegation
viewfunction delegation() view returns (address)
EMISSION_MANAGER_ROLE
viewfunction EMISSION_MANAGER_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
getRoleMembers
viewfunction getRoleMembers(bytes32 role) view returns (address[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MAX_WITHDRAWAL_REQUEST_COUNT
viewfunction MAX_WITHDRAWAL_REQUEST_COUNT() view returns (uint256)
OPERATOR_ROLE
viewfunction OPERATOR_ROLE() view returns (bytes32)
pool
viewfunction pool() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
rewardDistributor
viewfunction rewardDistributor() view returns (address)
slisBnb
viewfunction slisBnb() view returns (address)
staking
viewfunction staking() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalBalance
viewfunction totalBalance() view returns (uint256)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
WITHDRAWAL_ROLE
viewfunction WITHDRAWAL_ROLE() view returns (bytes32)
claimListaEmission
nonpayablefunction claimListaEmission(address receiver, uint64 epochId, uint256 amount, bytes32[] proof)
claimWithdrawFromLista
nonpayablefunction claimWithdrawFromLista()
deposit
nonpayablefunction deposit(uint256 amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address admin, address delegator)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
requestWithdrawToLista
nonpayablefunction requestWithdrawToLista(uint256 amount)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
updateDelegation
nonpayablefunction updateDelegation(address newDelegator)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw(uint256 amount, address receiver)
events
DelegationUpdated
event DelegationUpdated(address indexed newDelegator)
Deposit
event Deposit(address indexed asset, address indexed sender, uint256 amount)
Initialized
event Initialized(uint64 version)
ListaEmissionClaimed
event ListaEmissionClaimed(address indexed receiver, uint64 indexed epochId, uint256 amount)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Upgraded
event Upgraded(address indexed implementation)
Withdraw
event Withdraw(address indexed asset, address indexed receiver, uint256 amount)
WithdrawalClaimed
event WithdrawalClaimed(uint256 requestCount, uint256 claimedCount, uint256 claimedAmount)
WithdrawalRequested
event WithdrawalRequested(uint256 amount, uint256 released)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
InvalidParameter
error InvalidParameter(string description)
ListaCDPStrategyManager__DelegationRoleNotRevoked
error ListaCDPStrategyManager__DelegationRoleNotRevoked()
ListaCDPStrategyManager__MaxWithdrawalRequestCountExceeded
error ListaCDPStrategyManager__MaxWithdrawalRequestCountExceeded()
ListaCDPStrategyManager__NoLP
error ListaCDPStrategyManager__NoLP()
NotInitializing
error NotInitializing()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
Unauthorized
error Unauthorized()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
ZeroAmount
error ZeroAmount()
creation bytecode
0x61014060405230608052348015610014575f5ffd5b5060405161379e38038061379e833981016040819052610033916101a3565b61003b6100d6565b6001600160a01b0380841660e05282811661010081905290851660a052604080516361d1549d60e11b8152905163c3a2a93a916004808201926060929091908290030181865afa158015610091573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100b591906101f4565b506001600160a01b0390811660c05291909116610120525061023492505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156101265760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101855780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461019e575f5ffd5b919050565b5f5f5f5f608085870312156101b6575f5ffd5b6101bf85610188565b93506101cd60208601610188565b92506101db60408601610188565b91506101e960608601610188565b905092959194509250565b5f5f5f60608486031215610206575f5ffd5b61020f84610188565b925061021d60208501610188565b915061022b60408501610188565b90509250925092565b60805160a05160c05160e05161010051610120516133f66103a85f395f81816106be0152610ae301525f818161051201528181611015015281816110be0152818161115901528181611258015281816115ac0152818161164a0152818161185401528181611b5701528181611c2701528181611dab01528181611de60152611e7601525f818161039701528181610bf001528181610c7301528181610cf6015281816112d70152818161135a015281816113dd0152818161151a01528181611986015281816119d101528181611a6b01528181611d0801528181611f1c015261204501525f8181610824015281816118d70152818161196401528181611a4901528181611d890152611e5201525f818161022f0152818161025e015281816104ac01528181610901015281816109c0015281816109f301528181610b58015281816116e9015281816117ad015281816117f30152611a9a01525f818161235c0152818161238501526124ec01526133f65ff3fe608060405260043610610227575f3560e01c80637c4c713f11610122578063b4f0e8c3116100aa578063da77d9d91161006e578063da77d9d9146107e0578063df5cf723146107ff578063e29efa2e14610813578063e77d3a7014610846578063f5b541a614610865576102cf565b8063b4f0e8c314610731578063b6b55f2514610764578063ca15c87314610783578063d1245448146107a2578063d547741f146107c1576102cf565b8063a217fddf116100f1578063a217fddf1461066e578063a3246ad314610681578063acc2166a146106ad578063ad3cb1cc146106e0578063ad7a672f1461071d576102cf565b80637c4c713f146105c157806388888d94146105e05780639010d07c146105ff57806391d148541461061e576102cf565b806336568abe116101b05780634f1ef286116101745780634f1ef2861461053457806352d1902d1461054757806364c9a7f91461055b57806367db90c21461056f5780636aee7e53146105a2576102cf565b806336568abe1461047c57806338d52e0f1461049b578063455dceca146104ce578063485cc955146104e25780634cf088d914610501576102cf565b806316f0115b116101f757806316f0115b1461038657806319ad61bd146103d1578063248a9ca31461040457806328c8c8121461043e5780632f2ff15d1461045d576102cf565b8062f714ce146102e757806301ffc9a714610306578063032f90661461033a5780630973617914610359576102cf565b366102cf57337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146102cd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156102b5575f5ffd5b505af11580156102c7573d5f5f3e3d5ffd5b50505050505b005b6040516282b42960e81b815260040160405180910390fd5b3480156102f2575f5ffd5b506102cd610301366004612d1c565b610898565b348015610311575f5ffd5b50610325610320366004612d46565b610a70565b60405190151581526020015b60405180910390f35b348015610345575f5ffd5b506102cd610354366004612dfe565b610a9a565b348015610364575f5ffd5b50610378610373366004612ecc565b610bec565b604051908152602001610331565b348015610391575f5ffd5b506103b97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610331565b3480156103dc575f5ffd5b506103787fe7ba029c99635f624089fc11702bfd9689dddb46c558b5dd501e06889fef4e5481565b34801561040f575f5ffd5b5061037861041e366004612ecc565b5f9081525f5160206133815f395f51905f52602052604090206001015490565b348015610449575f5ffd5b50610378610458366004612ecc565b610d9d565b348015610468575f5ffd5b506102cd610477366004612d1c565b610daa565b348015610487575f5ffd5b506102cd610496366004612d1c565b610de0565b3480156104a6575f5ffd5b506103b97f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d9575f5ffd5b50610378603281565b3480156104ed575f5ffd5b506102cd6104fc366004612ee3565b610e13565b34801561050c575f5ffd5b506103b97f000000000000000000000000000000000000000000000000000000000000000081565b6102cd610542366004612f0b565b610f7b565b348015610552575f5ffd5b50610378610f9a565b348015610566575f5ffd5b506102cd610fc8565b34801561057a575f5ffd5b506103787f0744af9828f5bfd2e0f842fd62674fe7c160a394d457c33e1a56eeae3a44a9ef81565b3480156105ad575f5ffd5b506103786105bc366004612ecc565b611240565b3480156105cc575f5ffd5b506103786105db366004612ecc565b6112ca565b3480156105eb575f5ffd5b506103786105fa366004612ecc565b6112d3565b34801561060a575f5ffd5b506103b9610619366004612fb0565b611476565b348015610629575f5ffd5b50610325610638366004612d1c565b5f9182525f5160206133815f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610679575f5ffd5b506103785f81565b34801561068c575f5ffd5b506106a061069b366004612ecc565b6114b6565b6040516103319190612fd0565b3480156106b8575f5ffd5b506103b97f000000000000000000000000000000000000000000000000000000000000000081565b3480156106eb575f5ffd5b50610710604051806040016040528060058152602001640352e302e360dc1b81525081565b604051610331919061301b565b348015610728575f5ffd5b506103786114f9565b34801561073c575f5ffd5b506103787f541d13973c0d167d21f83a909fd41d7b6554ef2ca705aa7edd7644cad79463c981565b34801561076f575f5ffd5b506102cd61077e366004612ecc565b611780565b34801561078e575f5ffd5b5061037861079d366004612ecc565b611b08565b3480156107ad575f5ffd5b506103786107bc366004612ecc565b611b3f565b3480156107cc575f5ffd5b506102cd6107db366004612d1c565b611b8e565b3480156107eb575f5ffd5b506102cd6107fa366004612ecc565b611bbe565b34801561080a575f5ffd5b506103b9611eed565b34801561081e575f5ffd5b506103b97f000000000000000000000000000000000000000000000000000000000000000081565b348015610851575f5ffd5b506102cd610860366004613050565b611efb565b348015610870575f5ffd5b506103787f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b7f0744af9828f5bfd2e0f842fd62674fe7c160a394d457c33e1a56eeae3a44a9ef6108c2816120d3565b6108ca6120dd565b5f83116108ea57604051631f2a200560e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561094e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109729190613069565b9050838110156109b3576040516305519d6f60e51b8152602060048201526006602482015265185b5bdd5b9d60d21b60448201526064015b60405180910390fd5b6109e76001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168486612114565b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb86604051610a4c91815260200190565b60405180910390a350610a6b60015f5160206133a15f395f51905f5255565b505050565b5f6001600160e01b03198216635a05180f60e01b1480610a945750610a9482612186565b92915050565b7f541d13973c0d167d21f83a909fd41d7b6554ef2ca705aa7edd7644cad79463c9610ac4816120d3565b610acc6120dd565b60405163a2f94bd360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a2f94bd390610b1e908790309088908890600401613080565b5f604051808303815f87803b158015610b35575f5ffd5b505af1158015610b47573d5f5f3e3d5ffd5b50610b819250506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690508685612114565b8367ffffffffffffffff16856001600160a01b03167f2f7409dc8e0293d8e3fa1a76f857bcbde4b53210ed49483bf497e3cfa521eb5785604051610bc791815260200190565b60405180910390a3610be560015f5160206133a15f395f51905f5255565b5050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634e88090c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c4a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6e9190613069565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ccd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf19190613069565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637efad8e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d50573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d749190613069565b9050610d9485610d848585613102565b610d8f6002856131fc565b6121ba565b95945050505050565b5f610a9461037383611240565b5f8281525f5160206133815f395f51905f526020526040902060010154610dd0816120d3565b610dda8383612270565b50505050565b6001600160a01b0381163314610e095760405163334bd91960e11b815260040160405180910390fd5b610a6b82826122a9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610e5d5750825b90505f8267ffffffffffffffff166001148015610e795750303b155b905081158015610e87575080155b15610ea55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ed957845468ff00000000000000001916680100000000000000001785555b610ee16122e2565b610ee96122ec565b610ef16122e2565b610efb5f886122fc565b50610f267fe7ba029c99635f624089fc11702bfd9689dddb46c558b5dd501e06889fef4e54876122fc565b508315610f7257845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610f83612351565b610f8c82612408565b610f968282612412565b5050565b5f610fa36124e1565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929610ff2816120d3565b610ffa6120dd565b604051630d92604560e31b81523060048201525f90819081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636c930228906024015f60405180830381865afa158015611061573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611088919081019061320a565b5190505f805b828410156111e15760405163026e3e7b60e01b8152306004820152602481018290525f9081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063026e3e7b906044016040805180830381865afa158015611102573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112691906132c0565b91509150816111435782611139816132f0565b93505050506111d6565b60405163b13acedd60e01b8152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b13acedd906024015f604051808303815f87803b1580156111a2575f5ffd5b505af11580156111b4573d5f5f3e3d5ffd5b5050505080876111c49190613308565b9650836111d0816132f0565b94505050505b60019093019261108e565b60408051858152602081018490529081018690527fb7843762bb933381f3e052280f269d53660a3b30be78776a3594a8fa48a22c759060600160405180910390a1505050505061123d60015f5160206133a15f395f51905f5255565b50565b6040516329d8a2eb60e01b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906329d8a2eb906024015b602060405180830381865afa1580156112a6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a949190613069565b5f610a946107bc835b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634e88090c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611331573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113559190613069565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d89190613069565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637efad8e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611437573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145b9190613069565b9050610d948561146c6002846131fc565b610d8f8686613102565b5f8281527fc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e823717059320006020819052604082206114ae908461252a565b949350505050565b5f8181527fc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e8237170593200060208190526040909120606091906114f290612535565b9392505050565b60405163d8af84a760e01b81523060048201525f9081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d8af84a790602401602060405180830381865afa15801561155f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115839190613069565b9050805f03611593575f91505090565b604051630d92604560e31b81523060048201525f9081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636c930228906024015f60405180830381865afa1580156115f8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261161f919081019061320a565b90505f5b81518110156116d35760405163026e3e7b60e01b8152306004820152602481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063026e3e7b906044016040805180830381865afa158015611696573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ba91906132c0565b91506116c890508185613308565b935050600101611623565b506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611736573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175a9190613069565b82611764856112ca565b61176e9190613308565b6117789190613308565b935050505090565b6117886120dd565b5f81116117a857604051631f2a200560e01b815260040160405180910390fd5b6117dd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316333084612541565b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b15801561183c575f5ffd5b505af115801561184e573d5f5f3e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b1580156118ab575f5ffd5b505af11580156118bd573d5f5f3e3d5ffd5b50506040516370a0823160e01b81523060048201525f93507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506370a082319150602401602060405180830381865afa158015611926573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194a9190613069565b90505f61195561257a565b90506119ab6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000846125a5565b604051630252745760e41b8152600481018390526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906325274570906044016020604051808303815f875af1158015611a17573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3b9190613069565b50611a906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f00000000000000000000000000000000000000000000000000000000000000005f6125a5565b60405183815233907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316907f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060200160405180910390a3505061123d60015f5160206133a15f395f51905f5255565b5f8181527fc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e823717059320006020819052604082206114f290612634565b60405163ce6298e160e01b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ce6298e19060240161128b565b5f8281525f5160206133815f395f51905f526020526040902060010154611bb4816120d3565b610dda83836122a9565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929611be8816120d3565b611bf06120dd565b5f8211611c1057604051631f2a200560e01b815260040160405180910390fd5b604051630d92604560e31b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636c930228906024015f60405180830381865afa158015611c73573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611c9a919081019061320a565b51905060328110611cbe576040516329e5a1c560e01b815260040160405180910390fd5b5f611cc884611240565b90505f8111611cea57604051631f2a200560e01b815260040160405180910390fd5b604051630357371d60e01b8152306004820152602481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630357371d906044016020604051808303815f875af1158015611d56573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d7a9190613069565b9050611dd06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000836125a5565b60405163745400c960e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063745400c9906024015f604051808303815f87803b158015611e2f575f5ffd5b505af1158015611e41573d5f5f3e3d5ffd5b50611e9b9250506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690507f00000000000000000000000000000000000000000000000000000000000000005f6125a5565b60408051868152602081018390527f6b19bb08027e5bee64cbe3f99bbbfb671c0e134643993f0ad046fd01d020b342910160405180910390a1505050610f9660015f5160206133a15f395f51905f5255565b5f611ef661257a565b905090565b5f611f05816120d3565b60405163d8af84a760e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d8af84a790602401602060405180830381865afa158015611f69573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f8d9190613069565b11611fab57604051631b0e3ab360e11b815260040160405180910390fd5b611fde7fe7ba029c99635f624089fc11702bfd9689dddb46c558b5dd501e06889fef4e54611fd9815f611476565b61263d565b611ffb57604051630a850f0b60e21b815260040160405180910390fd5b6120257fe7ba029c99635f624089fc11702bfd9689dddb46c558b5dd501e06889fef4e54836122fc565b5060405163c9d6f1f160e01b81526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c9d6f1f1906024015f604051808303815f87803b158015612086575f5ffd5b505af1158015612098573d5f5f3e3d5ffd5b50506040516001600160a01b03851692507fb2fc0f4ccfdb09af0b0efe66eef05713257c97c980395c25ce3df78f9aa4fbc791505f90a25050565b61123d8133612689565b5f5160206133a15f395f51905f5280546001190161210e57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6040516001600160a01b03838116602483015260448201839052610a6b91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506126e9565b60015f5160206133a15f395f51905f5255565b5f6001600160e01b03198216637965db0b60e01b1480610a9457506301ffc9a760e01b6001600160e01b0319831614610a94565b5f838302815f1985870982811083820303915050805f036121ee578382816121e4576121e461331b565b04925050506114f2565b808411612205576122056003851502601118612755565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f7f1845fd63669ca09dbf7603ee8fd40269762224b93aa74a22afe1f9776010b1ac830161229f57505f610a94565b6114f283836122fc565b5f7f1845fd63669ca09dbf7603ee8fd40269762224b93aa74a22afe1f9776010b1ac83016122d857505f610a94565b6114f2838361263d565b6122ea612766565b565b6122f4612766565b6122ea6127b4565b5f7fc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e823717059320008161232985856127bc565b905080156114ae575f8581526020839052604090206123489085612875565b50949350505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806123ea57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166123de7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156122ea5760405163703e46dd60e11b815260040160405180910390fd5b5f610f96816120d3565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561246c575060408051601f3d908101601f1916820190925261246991810190613069565b60015b61249457604051634c9c8ce360e01b81526001600160a01b03831660048201526024016109aa565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146124d757604051632a87526960e21b8152600481018290526024016109aa565b610a6b8383612889565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146122ea5760405163703e46dd60e11b815260040160405180910390fd5b5f6114f283836128de565b60605f6114f283612904565b6040516001600160a01b038481166024830152838116604483015260648201839052610dda9186918216906323b872dd90608401612141565b5f611ef67fe7ba029c99635f624089fc11702bfd9689dddb46c558b5dd501e06889fef4e5482611476565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526125f6848261295d565b610dda576040516001600160a01b0384811660248301525f604483015261262a91869182169063095ea7b390606401612141565b610dda84826126e9565b5f610a94825490565b5f7fc1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e823717059320008161266a85856129a6565b905080156114ae575f8581526020839052604090206123489085612a37565b5f8281525f5160206133815f395f51905f52602090815260408083206001600160a01b038516845290915290205460ff16610f965760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109aa565b5f5f60205f8451602086015f885af180612708576040513d5f823e3d81fd5b50505f513d9150811561271f57806001141561272c565b6001600160a01b0384163b155b15610dda57604051635274afe760e01b81526001600160a01b03851660048201526024016109aa565b634e487b715f52806020526024601cfd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166122ea57604051631afcd79f60e31b815260040160405180910390fd5b612173612766565b5f8281525f5160206133815f395f51905f52602081815260408084206001600160a01b038616855290915282205460ff1661286c575f848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556128223390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610a94565b5f915050610a94565b5f6114f2836001600160a01b038416612a4b565b61289282612a97565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156128d657610a6b8282612b1a565b610f96612b83565b5f825f0182815481106128f3576128f361332f565b905f5260205f200154905092915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561295157602002820191905f5260205f20905b81548152602001906001019080831161293d575b50505050509050919050565b5f5f5f5f60205f8651602088015f8a5af192503d91505f51905082801561299c5750811561298e578060011461299c565b5f866001600160a01b03163b115b9695505050505050565b5f8281525f5160206133815f395f51905f52602081815260408084206001600160a01b038616855290915282205460ff161561286c575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610a94565b5f6114f2836001600160a01b038416612ba2565b5f818152600183016020526040812054612a9057508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610a94565b505f610a94565b806001600160a01b03163b5f03612acc57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016109aa565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60605f5f846001600160a01b031684604051612b369190613343565b5f60405180830381855af49150503d805f8114612b6e576040519150601f19603f3d011682016040523d82523d5f602084013e612b73565b606091505b5091509150610d94858383612c7c565b34156122ea5760405163b398979f60e01b815260040160405180910390fd5b5f818152600183016020526040812054801561286c575f612bc4600183613359565b85549091505f90612bd790600190613359565b9050808214612c36575f865f018281548110612bf557612bf561332f565b905f5260205f200154905080875f018481548110612c1557612c1561332f565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080612c4757612c4761336c565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610a94565b606082612c9157612c8c82612cd8565b6114f2565b8151158015612ca857506001600160a01b0384163b155b15612cd157604051639996b31560e01b81526001600160a01b03851660048201526024016109aa565b50806114f2565b805115612ce85780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114612d17575f5ffd5b919050565b5f5f60408385031215612d2d575f5ffd5b82359150612d3d60208401612d01565b90509250929050565b5f60208284031215612d56575f5ffd5b81356001600160e01b0319811681146114f2575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715612da457612da4612d6d565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612dd357612dd3612d6d565b604052919050565b5f67ffffffffffffffff821115612df457612df4612d6d565b5060051b60200190565b5f5f5f5f60808587031215612e11575f5ffd5b612e1a85612d01565b9350602085013567ffffffffffffffff81168114612e36575f5ffd5b925060408501359150606085013567ffffffffffffffff811115612e58575f5ffd5b8501601f81018713612e68575f5ffd5b8035612e7b612e7682612ddb565b612daa565b8082825260208201915060208360051b850101925089831115612e9c575f5ffd5b6020840193505b82841015612ebe578335825260209384019390910190612ea3565b969995985093965050505050565b5f60208284031215612edc575f5ffd5b5035919050565b5f5f60408385031215612ef4575f5ffd5b612efd83612d01565b9150612d3d60208401612d01565b5f5f60408385031215612f1c575f5ffd5b612f2583612d01565b9150602083013567ffffffffffffffff811115612f40575f5ffd5b8301601f81018513612f50575f5ffd5b803567ffffffffffffffff811115612f6a57612f6a612d6d565b612f7d601f8201601f1916602001612daa565b818152866020838501011115612f91575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f60408385031215612fc1575f5ffd5b50508035926020909101359150565b602080825282518282018190525f918401906040840190835b818110156130105783516001600160a01b0316835260209384019390920191600101612fe9565b509095945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215613060575f5ffd5b6114f282612d01565b5f60208284031215613079575f5ffd5b5051919050565b5f6080820167ffffffffffffffff871683526001600160a01b03861660208401528460408401526080606084015280845180835260a0850191506020860192505f5b818110156130e05783518352602093840193909201916001016130c2565b509098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a9457610a946130ee565b6001815b600184111561315457808504811115613138576131386130ee565b600184161561314657908102905b60019390931c92800261311d565b935093915050565b5f8261316a57506001610a94565b8161317657505f610a94565b816001811461318c5760028114613196576131b2565b6001915050610a94565b60ff8411156131a7576131a76130ee565b50506001821b610a94565b5060208310610133831016604e8410600b84101617156131d5575081810a610a94565b6131e15f198484613119565b805f19048211156131f4576131f46130ee565b029392505050565b5f6114f260ff84168361315c565b5f6020828403121561321a575f5ffd5b815167ffffffffffffffff811115613230575f5ffd5b8201601f81018413613240575f5ffd5b805161324e612e7682612ddb565b8082825260208201915060206060840285010192508683111561326f575f5ffd5b6020840193505b8284101561299c576060848803121561328d575f5ffd5b613295612d81565b8451815260208086015181830152604080870151908301529083526060909401939190910190613276565b5f5f604083850312156132d1575f5ffd5b825180151581146132e0575f5ffd5b6020939093015192949293505050565b5f60018201613301576133016130ee565b5060010190565b80820180821115610a9457610a946130ee565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b81810381811115610a9457610a946130ee565b634e487b7160e01b5f52603160045260245ffdfe02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220991f84baac77d4f5ebde5c767e79a21738d2a67c19d4cab08d26f3d888467a1464736f6c634300081d0033000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c000000000000000000000000fd31e1c5e5571f8e7fe318f80888c1e6da97819b0000000000000000000000001adb950d8bb3da4be104211d5ab038628e477fe600000000000000000000000081a62b329cc8939494d8613f614171a9955a46e8