20 txs
53 calls
constructor
constructor(address token)
functions
getDonationAt
viewfunction getDonationAt(uint256 index) view returns (tuple)
getDonations
viewfunction getDonations() view returns (tuple[])
getGovernance
viewfunction getGovernance() view returns (address)
getNumDonations
viewfunction getNumDonations() view returns (uint256)
getNumTokenDonations
viewfunction getNumTokenDonations(address token) view returns (uint256)
getNumUserDonations
viewfunction getNumUserDonations(address user) view returns (uint256)
getPoolFee
viewfunction getPoolFee(address token) view returns (uint24 poolFee)
getPoolTicks
purefunction getPoolTicks(uint24 poolFee) pure returns (int24, int24)
getTokenDonationAt
viewfunction getTokenDonationAt(address token, uint256 index) view returns (tuple)
getTokenDonations
viewfunction getTokenDonations(address token) view returns (tuple[])
getTotalDonatedEth
viewfunction getTotalDonatedEth() view returns (uint256)
getTotalDonationFees
viewfunction getTotalDonationFees() view returns (uint256)
getTotalLpFees
viewfunction getTotalLpFees() view returns (uint256, uint256)
getUserDonationAt
viewfunction getUserDonationAt(address user, uint256 index) view returns (tuple)
getUserDonations
viewfunction getUserDonations(address user) view returns (tuple[])
LP_TOKEN_ID
viewfunction LP_TOKEN_ID() view returns (uint256)
onERC721Received
purefunction onERC721Received(address, address, uint256, bytes) pure returns (bytes4)
owner
viewfunction owner() view returns (address)
POOL_FACTORY
viewfunction POOL_FACTORY() view returns (address)
POOL_FEE
viewfunction POOL_FEE() view returns (uint24)
POSITION_MANAGER
viewfunction POSITION_MANAGER() view returns (address)
SWAP_ROUTER
viewfunction SWAP_ROUTER() view returns (address)
TOKEN
viewfunction TOKEN() view returns (address)
WETH
viewfunction WETH() view returns (address)
collectFees
nonpayablefunction collectFees()
convertTokenToWethAndLP
nonpayablefunction convertTokenToWethAndLP(address token) returns (uint256)
convertWethToLP
nonpayablefunction convertWethToLP() returns (uint256)
donate
payablefunction donate() payable
donate
nonpayablefunction donate(address token, uint256 quantity)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeGovernance
nonpayablefunction upgradeGovernance(address governance)
events
Donate
event Donate(uint256 indexed id, address indexed user, address indexed token, uint256 quantity, uint256 ethValue, uint256 timestamp)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x60c060405234801561000f575f80fd5b5060405161322438038061322483398101604081905261002e916107d7565b61003733610285565b6001600160a01b03811660805261004d816102d4565b62ffffff1660a05260405163095ea7b360e01b8152732626664c2603336e57b271c5c0b26f421741e48160048201525f1960248201527342000000000000000000000000000000000000069063095ea7b3906044016020604051808303815f875af11580156100be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e29190610804565b5060805160405163095ea7b360e01b8152732626664c2603336e57b271c5c0b26f421741e48160048201525f1960248201526001600160a01b039091169063095ea7b3906044016020604051808303815f875af1158015610145573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101699190610804565b5060405163095ea7b360e01b81527303a520b32c04bf3beef7beb72e919cf822ed34f160048201525f1960248201527342000000000000000000000000000000000000069063095ea7b3906044016020604051808303815f875af11580156101d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f79190610804565b5060805160405163095ea7b360e01b81527303a520b32c04bf3beef7beb72e919cf822ed34f160048201525f1960248201526001600160a01b039091169063095ea7b3906044016020604051808303815f875af115801561025a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027e9190610804565b505061083a565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604051630b4c774160e11b81526001600160a01b0382166004820152734200000000000000000000000000000000000006602482015261271060448201525f90819081907333128a8fc17869897dce68ed026d694621f6fdfd90631698ee8290606401602060405180830381865afa158015610352573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061037691906107d7565b90506001600160a01b03811615610418576040516370a0823160e01b81526001600160a01b03821660048201525f90734200000000000000000000000000000000000006906370a0823190602401602060405180830381865afa1580156103df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104039190610823565b9050808310156104165780925061271093505b505b604051630b4c774160e11b81526001600160a01b03851660048201527342000000000000000000000000000000000000066024820152610bb860448201527333128a8fc17869897dce68ed026d694621f6fdfd90631698ee8290606401602060405180830381865afa158015610490573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b491906107d7565b90506001600160a01b03811615610556576040516370a0823160e01b81526001600160a01b03821660048201525f90734200000000000000000000000000000000000006906370a0823190602401602060405180830381865afa15801561051d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105419190610823565b90508083101561055457809250610bb893505b505b604051630b4c774160e11b81526001600160a01b038516600482015273420000000000000000000000000000000000000660248201526101f460448201527333128a8fc17869897dce68ed026d694621f6fdfd90631698ee8290606401602060405180830381865afa1580156105ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f291906107d7565b90506001600160a01b03811615610694576040516370a0823160e01b81526001600160a01b03821660048201525f90734200000000000000000000000000000000000006906370a0823190602401602060405180830381865afa15801561065b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067f9190610823565b905080831015610692578092506101f493505b505b604051630b4c774160e11b81526001600160a01b038516600482015273420000000000000000000000000000000000000660248201526064604482018190527333128a8fc17869897dce68ed026d694621f6fdfd91631698ee829101602060405180830381865afa15801561070b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072f91906107d7565b90506001600160a01b038116156107d0576040516370a0823160e01b81526001600160a01b03821660048201525f90734200000000000000000000000000000000000006906370a0823190602401602060405180830381865afa158015610798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bc9190610823565b9050808310156107ce57809250606493505b505b5050919050565b5f602082840312156107e7575f80fd5b81516001600160a01b03811681146107fd575f80fd5b9392505050565b5f60208284031215610814575f80fd5b815180151581146107fd575f80fd5b5f60208284031215610833575f80fd5b5051919050565b60805160a0516129596108cb5f395f818161059601528181611114015281816111db015261132e01525f81816103f7015281816110e10152818161123401528181611274015281816112b1015281816112fe0152818161136b015281816113c0015281816114bb015281816115100152818161181c01528181611b5901528181611bfb0152611c8301526129595ff3fe6080604052600436106101de575f3560e01c80639c519fd8116100fd578063d9d3a9b411610092578063e69d849d11610062578063e69d849d146105e0578063ed88c68e146105ff578063f2fde38b14610607578063f44cb02514610626575f80fd5b8063d9d3a9b414610570578063dd1b9c4a14610585578063e25f8416146105b8578063e548acb5146105cc575f80fd5b8063c6005893116100cd578063c6005893146104ef578063c879657214610516578063d20908361461052a578063d8e3160814610549575f80fd5b80639c519fd814610454578063ad5c46481461047d578063b34a5c1f14610497578063bfe416c0146104b6575f80fd5b806360481f1e11610173578063817eca7111610143578063817eca71146103ba57806382bfefc8146103e657806387893540146104195780638da5cb5b14610438575f80fd5b806360481f1e14610347578063715018a614610366578063732435b21461037a5780637d5a950c146103a6575f80fd5b8063289b3c0d116101ae578063289b3c0d146102c457806330f040f9146102e157806339722fab1461030057806342fcc6fb14610314575f80fd5b80630e1622c2146101ff578063150b7a02146102225780631bea83fe146102665780631fedded5146102a5575f80fd5b366101fb57336006602160991b01146101f9576101f9610645565b005b5f80fd5b34801561020a575f80fd5b506008545b6040519081526020015b60405180910390f35b34801561022d575f80fd5b5061024d61023c3660046124b2565b630a85bd0160e11b95945050505050565b6040516001600160e01b03199091168152602001610219565b348015610271575f80fd5b5061028d7303a520b32c04bf3beef7beb72e919cf822ed34f181565b6040516001600160a01b039091168152602001610219565b3480156102b0575f80fd5b506101f96102bf36600461254b565b6106f7565b3480156102cf575f80fd5b506002546001600160a01b031661028d565b3480156102ec575f80fd5b5061020f6102fb36600461254b565b610778565b34801561030b575f80fd5b5060035461020f565b34801561031f575f80fd5b5061033361032e36600461254b565b6109d7565b60405162ffffff9091168152602001610219565b348015610352575f80fd5b5061020f61036136600461254b565b610e42565b348015610371575f80fd5b506101f9610e68565b348015610385575f80fd5b5061039961039436600461254b565b610e79565b60405161021991906125a1565b3480156103b1575f80fd5b5061020f610f99565b3480156103c5575f80fd5b506103d96103d43660046125ee565b61174a565b6040516102199190612618565b3480156103f1575f80fd5b5061028d7f000000000000000000000000000000000000000000000000000000000000000081565b348015610424575f80fd5b506103d96104333660046125ee565b6117e4565b348015610443575f80fd5b505f546001600160a01b031661028d565b34801561045f575f80fd5b50610468611810565b60408051928352602083019190915201610219565b348015610488575f80fd5b5061028d6006602160991b0181565b3480156104a2575f80fd5b5061020f6104b136600461254b565b611863565b3480156104c1575f80fd5b506104d56104d0366004612626565b611883565b60408051600293840b81529190920b602082015201610219565b3480156104fa575f80fd5b5061028d732626664c2603336e57b271c5c0b26f421741e48181565b348015610521575f80fd5b506101f961193f565b348015610535575f80fd5b506103d9610544366004612648565b611cf4565b348015610554575f80fd5b5061028d7333128a8fc17869897dce68ed026d694621f6fdfd81565b34801561057b575f80fd5b5061020f60015481565b348015610590575f80fd5b506103337f000000000000000000000000000000000000000000000000000000000000000081565b3480156105c3575f80fd5b50610399611d6b565b3480156105d7575f80fd5b5060095461020f565b3480156105eb575f80fd5b506101f96105fa3660046125ee565b611e02565b6101f9610645565b348015610612575f80fd5b506101f961062136600461254b565b611f13565b348015610631575f80fd5b5061039961064036600461254b565b611f8c565b5f341161068c5760405162461bcd60e51b815260206004820152601060248201526f496e76616c6964207175616e7469747960801b60448201526064015b60405180910390fd5b6006602160991b016001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b1580156106cc575f80fd5b505af11580156106de573d5f803e3d5ffd5b50505050506106f5336006602160991b01346120a4565b565b6002546001600160a01b031633148061071957505f546001600160a01b031633145b6107565760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610683565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038416906370a0823190602401602060405180830381865afa1580156107be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e2919061265f565b90505f81116108275760405162461bcd60e51b8152602060048201526011602482015270139bc81d1bdad95b9cc81d1bc81cd95b1b607a1b6044820152606401610683565b60405163095ea7b360e01b8152732626664c2603336e57b271c5c0b26f421741e48160048201525f1960248201526001600160a01b0384169063095ea7b3906044016020604051808303815f875af1158015610885573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a99190612676565b505f6108b4846109d7565b90508062ffffff165f0361090a5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f20636f6e7665727420646f6e6174656420746f6b656e006044820152606401610683565b6040805160e0810182526001600160a01b03861681526006602160991b01602082015262ffffff831681830152306060820152608081018490525f60a0820181905260c082015290516304e45aaf60e01b8152732626664c2603336e57b271c5c0b26f421741e481916304e45aaf916109869190600401612695565b6020604051808303815f875af11580156109a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c6919061265f565b506109cf610f99565b949350505050565b604051630b4c774160e11b81525f90819081907333128a8fc17869897dce68ed026d694621f6fdfd90631698ee8290610a219087906006602160991b0190612710906004016126f3565b602060405180830381865afa158015610a3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a60919061271b565b90506001600160a01b03811615610af5576040516370a0823160e01b81526001600160a01b03821660048201525f906006602160991b01906370a0823190602401602060405180830381865afa158015610abc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae0919061265f565b905080831015610af35780925061271093505b505b604051630b4c774160e11b81527333128a8fc17869897dce68ed026d694621f6fdfd90631698ee8290610b399087906006602160991b0190610bb8906004016126f3565b602060405180830381865afa158015610b54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b78919061271b565b90506001600160a01b03811615610c0d576040516370a0823160e01b81526001600160a01b03821660048201525f906006602160991b01906370a0823190602401602060405180830381865afa158015610bd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf8919061265f565b905080831015610c0b57809250610bb893505b505b604051630b4c774160e11b81527333128a8fc17869897dce68ed026d694621f6fdfd90631698ee8290610c519087906006602160991b01906101f4906004016126f3565b602060405180830381865afa158015610c6c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c90919061271b565b90506001600160a01b03811615610d25576040516370a0823160e01b81526001600160a01b03821660048201525f906006602160991b01906370a0823190602401602060405180830381865afa158015610cec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d10919061265f565b905080831015610d23578092506101f493505b505b604051630b4c774160e11b81527333128a8fc17869897dce68ed026d694621f6fdfd90631698ee8290610d689087906006602160991b01906064906004016126f3565b602060405180830381865afa158015610d83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da7919061271b565b90506001600160a01b03811615610e3b576040516370a0823160e01b81526001600160a01b03821660048201525f906006602160991b01906370a0823190602401602060405180830381865afa158015610e03573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e27919061265f565b905080831015610e3957809250606493505b505b5050919050565b6001600160a01b0381165f908152600560205260408120610e62906122bd565b92915050565b610e706122c6565b6106f55f61231f565b6001600160a01b0381165f90815260056020526040812060609190610e9d9061236e565b90505f815167ffffffffffffffff811115610eba57610eba612736565b604051908082528060200260200182016040528015610ef357816020015b610ee0612462565b815260200190600190039081610ed85790505b5090505f5b8251811015610f915760038181548110610f1457610f1461274a565b5f9182526020918290206040805160a081018252600590930290910180546001600160a01b039081168452600182015416938301939093526002830154908201526003820154606082015260049091015460808201528251839083908110610f7e57610f7e61274a565b6020908102919091010152600101610ef8565b509392505050565b6040516370a0823160e01b81523060048201525f9081906006602160991b01906370a0823190602401602060405180830381865afa158015610fdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611001919061265f565b600254604051633d73de4f60e01b8152600481018390529192505f916001600160a01b0390911690633d73de4f906024016020604051808303815f875af115801561104e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611072919061265f565b90505f60026110818385612772565b61108b9190612785565b90505f81116110cb5760405162461bcd60e51b815260206004820152600c60248201526b04e6f2045544820746f204c560a41b6044820152606401610683565b6040805160e0810182526006602160991b0181527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082015262ffffff7f00000000000000000000000000000000000000000000000000000000000000001681830152306060820152608081018390525f60a0820181905260c0820181905291516304e45aaf60e01b8152732626664c2603336e57b271c5c0b26f421741e481916304e45aaf916111899190600401612695565b6020604051808303815f875af11580156111a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c9919061265f565b90506001545f03611483575f806111ff7f0000000000000000000000000000000000000000000000000000000000000000611883565b915091507303a520b32c04bf3beef7beb72e919cf822ed34f16001600160a01b031663883164566040518061016001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166006602160991b016001600160a01b031610611298577f00000000000000000000000000000000000000000000000000000000000000006112a1565b6006602160991b015b6001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166006602160991b016001600160a01b0316106112fc576006602160991b0161131e565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020018560020b81526020018460020b81526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166006602160991b016001600160a01b0316106113af57866113b1565b875b81526020016001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166006602160991b01106113f357876113f5565b865b81526020015f81526020015f8152602001306001600160a01b03168152602001428152506040518263ffffffff1660e01b815260040161143591906127a4565b6080604051808303815f875af1158015611451573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114759190612883565b505050600155506115f19050565b7303a520b32c04bf3beef7beb72e919cf822ed34f16001600160a01b031663219f5d176040518060c0016040528060015481526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166006602160991b016001600160a01b0316106114ff5784611501565b855b81526020016001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166006602160991b01106115435785611545565b845b81525f60208083018290526040808401929092524260609384015281516001600160e01b031960e087901b168152845160048201529084015160248201529083015160448201529082015160648201526080820151608482015260a09091015160a482015260c4016060604051808303815f875af11580156115c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ed91906128bc565b5050505b6040516370a0823160e01b81523060048201526006602160991b01906370a0823190602401602060405180830381865afa158015611631573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611655919061265f565b9250821561172b57604051632e1a7d4d60e01b8152600481018490526006602160991b0190632e1a7d4d906024015f604051808303815f87803b15801561169a575f80fd5b505af11580156116ac573d5f803e3d5ffd5b5050505060025f9054906101000a90046001600160a01b03166001600160a01b0316638b0f43bf846040518263ffffffff1660e01b81526004015f604051808303818588803b1580156116fd575f80fd5b505af115801561170f573d5f803e3d5ffd5b50505050508260085f82825461172591906128ee565b90915550505b8360095f82825461173c91906128ee565b909155509395945050505050565b611752612462565b6001600160a01b0383165f9081526005602052604090206003906117769084612381565b815481106117865761178661274a565b5f9182526020918290206040805160a081018252600590930290910180546001600160a01b03908116845260018201541693830193909352600283015490820152600382015460608201526004909101546080820152905092915050565b6117ec612462565b6001600160a01b0383165f9081526004602052604090206003906117769084612381565b5f806001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166006602160991b01106118545760075460065461185b565b6006546007545b915091509091565b6001600160a01b0381165f908152600460205260408120610e62906122bd565b5f808262ffffff166064036118a35750620d89e71992620d89e892509050565b8262ffffff166101f4036118c25750620d89e51992620d89e692509050565b8262ffffff16610bb8036118e15750620d89b31992620d89b492509050565b8262ffffff16612710036119005750620d899f1992620d89a092509050565b60405162461bcd60e51b8152602060048201526014602482015273556e737570706f7274656420706f6f6c2066656560601b6044820152606401610683565b6002546001600160a01b0316331461198a5760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610683565b60408051608081018252600154815230602082019081526001600160801b0382840181815260608401828152945163fc6f786560e01b81528451600482015292516001600160a01b03166024840152518116604483015292519092166064830152905f9081907303a520b32c04bf3beef7beb72e919cf822ed34f19063fc6f78659060840160408051808303815f875af1158015611a2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a4e9190612901565b915091508160065f828254611a6391906128ee565b925050819055508060075f828254611a7b91906128ee565b90915550506040516370a0823160e01b81523060048201525f906006602160991b01906370a0823190602401602060405180830381865afa158015611ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae6919061265f565b90508015611b4257604051632e1a7d4d60e01b8152600481018290526006602160991b0190632e1a7d4d906024015f604051808303815f87803b158015611b2b575f80fd5b505af1158015611b3d573d5f803e3d5ffd5b505050505b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611ba6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bca919061265f565b90508015611c695760025460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303815f875af1158015611c43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c679190612676565b505b600254604051633acaea3160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820184905290911690637595d4629084906044015f604051808303818588803b158015611cd6575f80fd5b505af1158015611ce8573d5f803e3d5ffd5b50505050505050505050565b611cfc612462565b60038281548110611d0f57611d0f61274a565b5f9182526020918290206040805160a081018252600590930290910180546001600160a01b0390811684526001820154169383019390935260028301549082015260038201546060820152600490910154608082015292915050565b60606003805480602002602001604051908101604052809291908181526020015f905b82821015611df9575f8481526020908190206040805160a0810182526005860290920180546001600160a01b03908116845260018083015490911684860152600282015492840192909252600381015460608401526004015460808301529083529092019101611d8e565b50505050905090565b5f8111611e445760405162461bcd60e51b815260206004820152601060248201526f496e76616c6964207175616e7469747960801b6044820152606401610683565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af1158015611e94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eb89190612676565b611f045760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f207472616e7366657220746f6b656e00000000000000006044820152606401610683565b611f0f3383836120a4565b5050565b611f1b6122c6565b6001600160a01b038116611f805760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610683565b611f898161231f565b50565b6001600160a01b0381165f90815260046020526040812060609190611fb09061236e565b90505f815167ffffffffffffffff811115611fcd57611fcd612736565b60405190808252806020026020018201604052801561200657816020015b611ff3612462565b815260200190600190039081611feb5790505b5090505f5b8251811015610f9157600381815481106120275761202761274a565b5f9182526020918290206040805160a081018252600590930290910180546001600160a01b0390811684526001820154169383019390935260028301549082015260038201546060820152600490910154608082015282518390839081106120915761209161274a565b602090810291909101015260010161200b565b5f6001600160a01b0383166006602160991b01146120ca576120c583610778565b6120d2565b6120d2610f99565b6040805160a0810182526001600160a01b0380881682528681166020830190815292820186815260608301858152426080850190815260038054600181810183555f838152975160059092027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810180549389166001600160a01b031994851617905598517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c8a0180549190981692169190911790955592517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d87015590517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85e860155517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85f9094019390935591549293509161220e9190612772565b6001600160a01b0385165f908152600460205260409020909150612232908261238c565b506001600160a01b0385165f908152600560205260409020612254908261238c565b50836001600160a01b0316856001600160a01b0316827fa033655a9601ab3d46182321f902b69154f6c7ec08a5dcafe611bf2c57ef04ac8686426040516122ae939291909283526020830191909152604082015260600190565b60405180910390a45050505050565b5f610e62825490565b5f546001600160a01b031633146106f55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610683565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60605f61237a83612397565b9392505050565b5f61237a83836123f0565b5f61237a8383612416565b6060815f018054806020026020016040519081016040528092919081815260200182805480156123e457602002820191905f5260205f20905b8154815260200190600101908083116123d0575b50505050509050919050565b5f825f0182815481106124055761240561274a565b905f5260205f200154905092915050565b5f81815260018301602052604081205461245b57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610e62565b505f610e62565b6040518060a001604052805f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b6001600160a01b0381168114611f89575f80fd5b5f805f805f608086880312156124c6575f80fd5b85356124d18161249e565b945060208601356124e18161249e565b935060408601359250606086013567ffffffffffffffff811115612503575f80fd5b8601601f81018813612513575f80fd5b803567ffffffffffffffff811115612529575f80fd5b88602082840101111561253a575f80fd5b959894975092955050506020019190565b5f6020828403121561255b575f80fd5b813561237a8161249e565b80516001600160a01b039081168352602080830151909116908301526040808201519083015260608082015190830152608090810151910152565b602080825282518282018190525f918401906040840190835b818110156125e3576125cd838551612566565b6020939093019260a092909201916001016125ba565b509095945050505050565b5f80604083850312156125ff575f80fd5b823561260a8161249e565b946020939093013593505050565b60a08101610e628284612566565b5f60208284031215612636575f80fd5b813562ffffff8116811461237a575f80fd5b5f60208284031215612658575f80fd5b5035919050565b5f6020828403121561266f575f80fd5b5051919050565b5f60208284031215612686575f80fd5b8151801515811461237a575f80fd5b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0838101519083015260c092830151169181019190915260e00190565b6001600160a01b03938416815291909216602082015262ffffff909116604082015260600190565b5f6020828403121561272b575f80fd5b815161237a8161249e565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610e6257610e6261275e565b5f8261279f57634e487b7160e01b5f52601260045260245ffd5b500490565b81516001600160a01b03168152610160810160208301516127d060208401826001600160a01b03169052565b5060408301516127e7604084018262ffffff169052565b5060608301516127fc606084018260020b9052565b506080830151612811608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008301516101008301526101208301516128586101208401826001600160a01b03169052565b5061014092830151919092015290565b80516001600160801b038116811461287e575f80fd5b919050565b5f805f8060808587031215612896575f80fd5b845193506128a660208601612868565b6040860151606090960151949790965092505050565b5f805f606084860312156128ce575f80fd5b6128d784612868565b602085015160409095015190969495509392505050565b80820180821115610e6257610e6261275e565b5f8060408385031215612912575f80fd5b50508051602090910151909290915056fea2646970667358221220118085a8be547eba38f89828243de5f5f0f4c8af2928b5e28bc561de7aaa051564736f6c634300081a00330000000000000000000000000578d8a44db98b23bf096a382e016e29a5ce0ffe