Contract Information

Explore the source code, ABI, and bytecode for the EggChef smart contract.
More Info

EggChef Source Code

EggChef ABI

[{"inputs":[{"internalType":"contract IEggsToken","name":"_eggs","type":"address"},{"internalType":"contract IUniswapPair","name":"_eggsLp","type":"address"},{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"},{"internalType":"uint256","name":"_startBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IERC20","name":"lpToken","type":"address"}],"name":"LogPoolAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRewardPerBlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockDuration","type":"uint256"}],"name":"LogSetLockDuration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"}],"name":"LogSetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accRewardPerShare","type":"uint256"}],"name":"LogUpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_account","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"principal","type":"uint256"},{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"n","type":"uint256"}],"name":"compound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"compoundRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eggs","outputs":[{"internalType":"contract IEggsToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eggsLp","outputs":[{"internalType":"contract IUniswapPair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockDurations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"internalType":"uint256","name":"accRewardPerShare","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int128","name":"x","type":"int128"},{"internalType":"uint256","name":"n","type":"uint256"}],"name":"pow","outputs":[{"internalType":"int128","name":"r","type":"int128"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"}],"name":"setLockDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"}],"name":"updateRewardPerBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"},{"internalType":"uint256","name":"lockEndedTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
[{"inputs":[{"internalType":"contract IEggsToken","name":"_eggs","type":"address"},{"internalType":"contract IUniswapPair","name":"_eggsLp","type":"address"},{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"},{"internalType":"uint256","name":"_startBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IERC20","name":"lpToken","type":"address"}],"name":"LogPoolAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRewardPerBlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockDuration","type":"uint256"}],"name":"LogSetLockDuration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"}],"name":"LogSetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accRewardPerShare","type":"uint256"}],"name":"LogUpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_account","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"principal","type":"uint256"},{"internalType":"uint256","name":"ratio","type":"uint256"},{"internalType":"uint256","name":"n","type":"uint256"}],"name":"compound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"compoundRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eggs","outputs":[{"internalType":"contract IEggsToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eggsLp","outputs":[{"internalType":"contract IUniswapPair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockDurations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"internalType":"uint256","name":"accRewardPerShare","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int128","name":"x","type":"int128"},{"internalType":"uint256","name":"n","type":"uint256"}],"name":"pow","outputs":[{"internalType":"int128","name":"r","type":"int128"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"}],"name":"setLockDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardPerBlock","type":"uint256"}],"name":"updateRewardPerBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"},{"internalType":"uint256","name":"lockEndedTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

EggChef Bytecode

60806040526509184e72a0006005556000600b553480156200002057600080fd5b5060405162001f8538038062001f858339810160408190526200004391620000ff565b6200004e3362000096565b60018055600280546001600160a01b039586166001600160a01b0319918216179091556003805494909516931692909217909255600491909155600c8190556006556200014c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000fc57600080fd5b50565b600080600080608085870312156200011657600080fd5b84516200012381620000e6565b60208601519094506200013681620000e6565b6040860151606090960151949790965092505050565b611e29806200015c6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063806b984f116100de578063ae581bc211610097578063e2bbb15811610071578063e2bbb15814610391578063e33f76cf146103a4578063f2fde38b146103b7578063f3c85eba146103ca57600080fd5b8063ae581bc21461034f578063d295ea7014610375578063ddd5e1b21461037e57600080fd5b8063806b984f1461029d5780638ae39cac146102a65780638da5cb5b146102af57806393f1a40b146102d457806398969e82146103295780639fdff7031461033c57600080fd5b806332298be11161014b57806351eb05a61161012557806351eb05a614610267578063630b5ba11461027a57806364482f7914610282578063715018a61461029557600080fd5b806332298be11461022b578063441a3e701461024b57806348cd4cb11461025e57600080fd5b806301f8a97614610193578063081e3eda146101a8578063126796dd146101bf5780631526fe27146101d257806317caf6f11461020f5780631eaaa04514610218575b600080fd5b6101a66101a1366004611ab8565b6103dd565b005b6007545b6040519081526020015b60405180910390f35b6101a66101cd366004611ad1565b610428565b6101e56101e0366004611ab8565b610481565b604080516001600160a01b03909516855260208501939093529183015260608201526080016101b6565b6101ac600b5481565b6101a6610226366004611b16565b6104c5565b6101ac610239366004611ab8565b600a6020526000908152604090205481565b6101a6610259366004611ad1565b61063a565b6101ac600c5481565b6101a6610275366004611ab8565b610852565b6101a6610a6c565b6101a6610290366004611b58565b610a93565b6101a6610b54565b6101ac60065481565b6101ac60045481565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101b6565b61030e6102e2366004611b86565b600860209081526000928352604080842090915290825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101b6565b6101ac610337366004611b86565b610b68565b6003546102bc906001600160a01b031681565b61036261035d366004611bb6565b610da9565b604051600f9190910b81526020016101b6565b6101ac60055481565b6101a661038c366004611b86565b610e06565b6101a661039f366004611ad1565b611139565b6002546102bc906001600160a01b031681565b6101a66103c5366004611be8565b6112f8565b6101ac6103d8366004611c05565b611371565b6103e56113b1565b6103ed610a6c565b60048190556040518181527f4e91b3ffa2cd4d03d69ce17f42b0023d0316960080c578857b6f05470d96cdab9060200160405180910390a150565b6104306113b1565b6000828152600a6020526040908190208290555182907f6e4fdd86ed4186281f108d19169264f10ab9a86531113410b92c1cfc19971b59906104759084815260200190565b60405180910390a25050565b6007818154811061049157600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6104cd6113b1565b80156104db576104db610a6c565b6000600c5443116104ee57600c546104f0565b435b905083600b546105009190611c47565b600b55604080516080810182526001600160a01b038581168083526020830188815293830185815260006060850181815260078054600180820183559382905296517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688600490980297880180546001600160a01b031916919097161790955595517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68986015590517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a85015593517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b9093019290925554909161060191611c5f565b6040518681527f4710feb78e3bce8d2e3ca2989a8eb2f8bcd32a6a55b4535942c180fc4d2e29529060200160405180910390a350505050565b61064261140b565b6000811161066b5760405162461bcd60e51b815260040161066290611c76565b60405180910390fd5b60006007838154811061068057610680611c9e565b6000918252602080832086845260088252604080852033865290925292206002810154600490920290920192504210156106eb5760405162461bcd60e51b815260206004820152600c60248201526b1cdd1a5b1b081b1bd8dad95960a21b6044820152606401610662565b805483111561070c5760405162461bcd60e51b815260040161066290611c76565b61071584610852565b61071f8433611465565b828160000160008282546107339190611c5f565b90915550506003820154815464e8d4a510009161074f91611cb4565b6107599190611ce9565b600182015560025482546001600160a01b03908116911614156107f557600254604051631116a97760e11b8152600481018590526001600160a01b039091169063222d52ee9060240160206040518083038186803b1580156107ba57600080fd5b505afa1580156107ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f29190611cfd565b92505b815461080b906001600160a01b03163385611546565b604051838152849033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568906020015b60405180910390a3505061084e60018055565b5050565b60006007828154811061086757610867611c9e565b9060005260206000209060040201905080600201544311610886575050565b80546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156108c957600080fd5b505afa1580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109019190611cfd565b60025483549192506001600160a01b039182169116141561099a57600254604051633af9e66960e01b81523060048201526001600160a01b0390911690633af9e6699060240160206040518083038186803b15801561095f57600080fd5b505afa158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190611cfd565b90505b806109aa57504360029091015550565b6000600b5483600101546004548560020154436109c79190611c5f565b6109d19190611cb4565b6109db9190611cb4565b6109e59190611ce9565b9050816109f78264e8d4a51000611cb4565b610a019190611ce9565b836003016000828254610a149190611c47565b909155505043600284018190556003840154604080519283526020830185905282015284907fcb7325664a4a3b7c7223eefc492a97ca4fdf94d46884621e5a8fae5a04b2b9d29060600160405180910390a250505050565b60075460005b8181101561084e57610a8381610852565b610a8c81611d16565b9050610a72565b610a9b6113b1565b8015610aa957610aa9610a6c565b8160078481548110610abd57610abd611c9e565b906000526020600020906004020160010154600b54610adc9190611c5f565b610ae69190611c47565b600b819055508160078481548110610b0057610b00611c9e565b906000526020600020906004020160010181905550827f942cc7e17a17c164bd977f32ab8c54265d5b9d481e4e352bf874f1e568874e7c83604051610b4791815260200190565b60405180910390a2505050565b610b5c6113b1565b610b6660006115ae565b565b60008060078481548110610b7e57610b7e611c9e565b600091825260208083208784526008825260408085206001600160a01b038981168752935280852060049485029092016003810154815492516370a0823160e01b8152309681019690965290965091949193919216906370a082319060240160206040518083038186803b158015610bf557600080fd5b505afa158015610c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2d9190611cfd565b60025485549192506001600160a01b0391821691161415610cc657600254604051633af9e66960e01b81523060048201526001600160a01b0390911690633af9e6699060240160206040518083038186803b158015610c8b57600080fd5b505afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190611cfd565b90505b836002015443118015610cd857508015155b15610d42576000600b548560010154600454876002015443610cfa9190611c5f565b610d049190611cb4565b610d0e9190611cb4565b610d189190611ce9565b905081610d2a8264e8d4a51000611cb4565b610d349190611ce9565b610d3e9084611c47565b9250505b6001830154835464e8d4a5100090610d5b908590611cb4565b610d659190611ce9565b60008981526009602090815260408083206001600160a01b038c168452909152902054610d929190611c47565b610d9c9190611c5f565b9450505050505b92915050565b6000610db560016115fe565b90505b8115610da357610dc9600283611d31565b60011415610def57610ddb818461161c565b9050610de8600183611c5f565b9150610db8565b610df9838461161c565b9250610de8600283611ce9565b610e0e61140b565b610e1782610852565b610e218282611465565b60008281526009602090815260408083206001600160a01b038516845290915290205480610e865760405162461bcd60e51b81526020600482015260126024820152716e6f2070656e64696e67207265776172647360701b6044820152606401610662565b60008381526008602090815260408083203384528252808320868452600a90925290912054610eb59042611c47565b600282015560008481526009602090815260408083206001600160a01b03871684529091528120556007805464e8d4a51000919086908110610ef957610ef9611c9e565b60009182526020808320600360049093020191909101548783526008825260408084206001600160a01b0389168552909252912054610f389190611cb4565b610f429190611ce9565b60008581526008602090815260408083206001600160a01b0388811680865291909352928190206001019390935560025492516340c10f1960e01b815260048101929092526024820185905291909116906340c10f1990604401600060405180830381600087803b158015610fb657600080fd5b505af1158015610fca573d6000803e3d6000fd5b5050505043600654146110fd576002546005546006546001600160a01b0390921691637af548c1914391670de0b6b3a76400009161100f918391906103d89086611c5f565b6110199190611c5f565b6040516001600160e01b031960e085901b1681526004810192909252602482015260006044820152606401602060405180830381600087803b15801561105e57600080fd5b505af1158015611072573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110969190611cfd565b50436006556003546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b1580156110e457600080fd5b505af11580156110f8573d6000803e3d6000fd5b505050505b83836001600160a01b03167fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f518460405161083b91815260200190565b61114161140b565b600081116111615760405162461bcd60e51b815260040161066290611c76565b60006007838154811061117657611176611c9e565b600091825260208083208684526008825260408085203386528352808520888652600a90935290932054600490920290920192506111b49042611c47565b60028201556111c284610852565b6111cc8433611465565b81546111e3906001600160a01b031633308661165a565b604051838152849033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060200160405180910390a360025482546001600160a01b03908116911614156112b15760025460405163f455cb3b60e01b8152600481018590526001600160a01b039091169063f455cb3b9060240160206040518083038186803b15801561127657600080fd5b505afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190611cfd565b92505b828160000160008282546112c59190611c47565b90915550506003820154815464e8d4a51000916112e191611cb4565b6112eb9190611ce9565b6001918201558055505050565b6113006113b1565b6001600160a01b0381166113655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610662565b61136e816115ae565b50565b60006113a96113a361139d61138660016115fe565b61139887670de0b6b3a7640000611692565b6116c9565b84610da9565b856116fc565b949350505050565b6000546001600160a01b03163314610b665760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610662565b6002600154141561145e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610662565b6002600155565b60008281526008602090815260408083206001600160a01b03851684528252808320815160608101835281548152600182015493810184905260029091015491810191909152600780549193929164e8d4a510009190879081106114cb576114cb611c9e565b90600052602060002090600402016003015484600001516114ec9190611cb4565b6114f69190611ce9565b6115009190611c5f565b905080156115405760008481526009602090815260408083206001600160a01b03871684529091528120805483929061153a908490611c47565b90915550505b50505050565b6040516001600160a01b0383166024820152604481018290526115a990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611764565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000677fffffffffffffff82111561161557600080fd5b5060401b90565b6000600f83810b9083900b0260401d60016001607f1b0319811280159061164a575060016001607f1b038113155b61165357600080fd5b9392505050565b6040516001600160a01b03808516602483015283166044820152606481018290526115409085906323b872dd60e01b90608401611572565b60008161169e57600080fd5b60006116aa8484611836565b905060016001607f1b036001600160801b038216111561165357600080fd5b6000600f83810b9083900b0160016001607f1b0319811280159061164a575060016001607f1b0381131561165357600080fd5b60008161170b57506000610da3565b600083600f0b121561171c57600080fd5b600f83900b6001600160801b038316810260401c90608084901c026001600160c01b0381111561174b57600080fd5b60401b811981111561175c57600080fd5b019392505050565b60006117b9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166119989092919063ffffffff16565b8051909150156115a957808060200190518101906117d79190611d45565b6115a95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610662565b60008161184257600080fd5b60006001600160c01b03841161186d5782604085901b8161186557611865611cd3565b049050611984565b60c084811c6401000000008110611886576020918201911c5b620100008110611898576010918201911c5b61010081106118a9576008918201911c5b601081106118b9576004918201911c5b600481106118c9576002918201911c5b600281106118d8576001820191505b60bf820360018603901c6001018260ff0387901b816118f9576118f9611cd3565b0492506001600160801b0383111561191057600080fd5b608085901c83026001600160801b038616840260c088901c604089901b8281101561193c576001820391505b608084901b92900382811015611953576001820391505b829003608084901c821461196957611969611d62565b88818161197857611978611cd3565b04870196505050505050505b6001600160801b0381111561165357600080fd5b60606113a9848460008585600080866001600160a01b031685876040516119bf9190611da4565b60006040518083038185875af1925050503d80600081146119fc576040519150601f19603f3d011682016040523d82523d6000602084013e611a01565b606091505b5091509150611a1287838387611a1d565b979650505050505050565b60608315611a89578251611a82576001600160a01b0385163b611a825760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610662565b50816113a9565b6113a98383815115611a9e5781518083602001fd5b8060405162461bcd60e51b81526004016106629190611dc0565b600060208284031215611aca57600080fd5b5035919050565b60008060408385031215611ae457600080fd5b50508035926020909101359150565b6001600160a01b038116811461136e57600080fd5b801515811461136e57600080fd5b600080600060608486031215611b2b57600080fd5b833592506020840135611b3d81611af3565b91506040840135611b4d81611b08565b809150509250925092565b600080600060608486031215611b6d57600080fd5b83359250602084013591506040840135611b4d81611b08565b60008060408385031215611b9957600080fd5b823591506020830135611bab81611af3565b809150509250929050565b60008060408385031215611bc957600080fd5b823580600f0b8114611bda57600080fd5b946020939093013593505050565b600060208284031215611bfa57600080fd5b813561165381611af3565b600080600060608486031215611c1a57600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c5a57611c5a611c31565b500190565b600082821015611c7157611c71611c31565b500390565b6020808252600e908201526d1a5b9d985b1a5908185b5bdd5b9d60921b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615611cce57611cce611c31565b500290565b634e487b7160e01b600052601260045260246000fd5b600082611cf857611cf8611cd3565b500490565b600060208284031215611d0f57600080fd5b5051919050565b6000600019821415611d2a57611d2a611c31565b5060010190565b600082611d4057611d40611cd3565b500690565b600060208284031215611d5757600080fd5b815161165381611b08565b634e487b7160e01b600052600160045260246000fd5b60005b83811015611d93578181015183820152602001611d7b565b838111156115405750506000910152565b60008251611db6818460208701611d78565b9190910192915050565b6020815260008251806020840152611ddf816040850160208701611d78565b601f01601f1916919091016040019291505056fea26469706673582212209190ceddc947ab18e129c4bb8c64e2e926196d54b66cf9e6661a5b4f484a097364736f6c634300080900330000000000000000000000002e516ba5bf3b7ee47fb99b09eadb60bde80a82e0000000000000000000000000c54ba7aabe7164ca2aa092900060fe2ba6eccd8b000000000000000000000000000000000000000000084595161401484a0000000000000000000000000000000000000000000000000000000000000000fcde3b
60806040526509184e72a0006005556000600b553480156200002057600080fd5b5060405162001f8538038062001f858339810160408190526200004391620000ff565b6200004e3362000096565b60018055600280546001600160a01b039586166001600160a01b0319918216179091556003805494909516931692909217909255600491909155600c8190556006556200014c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000fc57600080fd5b50565b600080600080608085870312156200011657600080fd5b84516200012381620000e6565b60208601519094506200013681620000e6565b6040860151606090960151949790965092505050565b611e29806200015c6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063806b984f116100de578063ae581bc211610097578063e2bbb15811610071578063e2bbb15814610391578063e33f76cf146103a4578063f2fde38b146103b7578063f3c85eba146103ca57600080fd5b8063ae581bc21461034f578063d295ea7014610375578063ddd5e1b21461037e57600080fd5b8063806b984f1461029d5780638ae39cac146102a65780638da5cb5b146102af57806393f1a40b146102d457806398969e82146103295780639fdff7031461033c57600080fd5b806332298be11161014b57806351eb05a61161012557806351eb05a614610267578063630b5ba11461027a57806364482f7914610282578063715018a61461029557600080fd5b806332298be11461022b578063441a3e701461024b57806348cd4cb11461025e57600080fd5b806301f8a97614610193578063081e3eda146101a8578063126796dd146101bf5780631526fe27146101d257806317caf6f11461020f5780631eaaa04514610218575b600080fd5b6101a66101a1366004611ab8565b6103dd565b005b6007545b6040519081526020015b60405180910390f35b6101a66101cd366004611ad1565b610428565b6101e56101e0366004611ab8565b610481565b604080516001600160a01b03909516855260208501939093529183015260608201526080016101b6565b6101ac600b5481565b6101a6610226366004611b16565b6104c5565b6101ac610239366004611ab8565b600a6020526000908152604090205481565b6101a6610259366004611ad1565b61063a565b6101ac600c5481565b6101a6610275366004611ab8565b610852565b6101a6610a6c565b6101a6610290366004611b58565b610a93565b6101a6610b54565b6101ac60065481565b6101ac60045481565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101b6565b61030e6102e2366004611b86565b600860209081526000928352604080842090915290825290208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101b6565b6101ac610337366004611b86565b610b68565b6003546102bc906001600160a01b031681565b61036261035d366004611bb6565b610da9565b604051600f9190910b81526020016101b6565b6101ac60055481565b6101a661038c366004611b86565b610e06565b6101a661039f366004611ad1565b611139565b6002546102bc906001600160a01b031681565b6101a66103c5366004611be8565b6112f8565b6101ac6103d8366004611c05565b611371565b6103e56113b1565b6103ed610a6c565b60048190556040518181527f4e91b3ffa2cd4d03d69ce17f42b0023d0316960080c578857b6f05470d96cdab9060200160405180910390a150565b6104306113b1565b6000828152600a6020526040908190208290555182907f6e4fdd86ed4186281f108d19169264f10ab9a86531113410b92c1cfc19971b59906104759084815260200190565b60405180910390a25050565b6007818154811061049157600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6104cd6113b1565b80156104db576104db610a6c565b6000600c5443116104ee57600c546104f0565b435b905083600b546105009190611c47565b600b55604080516080810182526001600160a01b038581168083526020830188815293830185815260006060850181815260078054600180820183559382905296517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688600490980297880180546001600160a01b031916919097161790955595517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68986015590517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a85015593517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b9093019290925554909161060191611c5f565b6040518681527f4710feb78e3bce8d2e3ca2989a8eb2f8bcd32a6a55b4535942c180fc4d2e29529060200160405180910390a350505050565b61064261140b565b6000811161066b5760405162461bcd60e51b815260040161066290611c76565b60405180910390fd5b60006007838154811061068057610680611c9e565b6000918252602080832086845260088252604080852033865290925292206002810154600490920290920192504210156106eb5760405162461bcd60e51b815260206004820152600c60248201526b1cdd1a5b1b081b1bd8dad95960a21b6044820152606401610662565b805483111561070c5760405162461bcd60e51b815260040161066290611c76565b61071584610852565b61071f8433611465565b828160000160008282546107339190611c5f565b90915550506003820154815464e8d4a510009161074f91611cb4565b6107599190611ce9565b600182015560025482546001600160a01b03908116911614156107f557600254604051631116a97760e11b8152600481018590526001600160a01b039091169063222d52ee9060240160206040518083038186803b1580156107ba57600080fd5b505afa1580156107ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f29190611cfd565b92505b815461080b906001600160a01b03163385611546565b604051838152849033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568906020015b60405180910390a3505061084e60018055565b5050565b60006007828154811061086757610867611c9e565b9060005260206000209060040201905080600201544311610886575050565b80546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156108c957600080fd5b505afa1580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109019190611cfd565b60025483549192506001600160a01b039182169116141561099a57600254604051633af9e66960e01b81523060048201526001600160a01b0390911690633af9e6699060240160206040518083038186803b15801561095f57600080fd5b505afa158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190611cfd565b90505b806109aa57504360029091015550565b6000600b5483600101546004548560020154436109c79190611c5f565b6109d19190611cb4565b6109db9190611cb4565b6109e59190611ce9565b9050816109f78264e8d4a51000611cb4565b610a019190611ce9565b836003016000828254610a149190611c47565b909155505043600284018190556003840154604080519283526020830185905282015284907fcb7325664a4a3b7c7223eefc492a97ca4fdf94d46884621e5a8fae5a04b2b9d29060600160405180910390a250505050565b60075460005b8181101561084e57610a8381610852565b610a8c81611d16565b9050610a72565b610a9b6113b1565b8015610aa957610aa9610a6c565b8160078481548110610abd57610abd611c9e565b906000526020600020906004020160010154600b54610adc9190611c5f565b610ae69190611c47565b600b819055508160078481548110610b0057610b00611c9e565b906000526020600020906004020160010181905550827f942cc7e17a17c164bd977f32ab8c54265d5b9d481e4e352bf874f1e568874e7c83604051610b4791815260200190565b60405180910390a2505050565b610b5c6113b1565b610b6660006115ae565b565b60008060078481548110610b7e57610b7e611c9e565b600091825260208083208784526008825260408085206001600160a01b038981168752935280852060049485029092016003810154815492516370a0823160e01b8152309681019690965290965091949193919216906370a082319060240160206040518083038186803b158015610bf557600080fd5b505afa158015610c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2d9190611cfd565b60025485549192506001600160a01b0391821691161415610cc657600254604051633af9e66960e01b81523060048201526001600160a01b0390911690633af9e6699060240160206040518083038186803b158015610c8b57600080fd5b505afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190611cfd565b90505b836002015443118015610cd857508015155b15610d42576000600b548560010154600454876002015443610cfa9190611c5f565b610d049190611cb4565b610d0e9190611cb4565b610d189190611ce9565b905081610d2a8264e8d4a51000611cb4565b610d349190611ce9565b610d3e9084611c47565b9250505b6001830154835464e8d4a5100090610d5b908590611cb4565b610d659190611ce9565b60008981526009602090815260408083206001600160a01b038c168452909152902054610d929190611c47565b610d9c9190611c5f565b9450505050505b92915050565b6000610db560016115fe565b90505b8115610da357610dc9600283611d31565b60011415610def57610ddb818461161c565b9050610de8600183611c5f565b9150610db8565b610df9838461161c565b9250610de8600283611ce9565b610e0e61140b565b610e1782610852565b610e218282611465565b60008281526009602090815260408083206001600160a01b038516845290915290205480610e865760405162461bcd60e51b81526020600482015260126024820152716e6f2070656e64696e67207265776172647360701b6044820152606401610662565b60008381526008602090815260408083203384528252808320868452600a90925290912054610eb59042611c47565b600282015560008481526009602090815260408083206001600160a01b03871684529091528120556007805464e8d4a51000919086908110610ef957610ef9611c9e565b60009182526020808320600360049093020191909101548783526008825260408084206001600160a01b0389168552909252912054610f389190611cb4565b610f429190611ce9565b60008581526008602090815260408083206001600160a01b0388811680865291909352928190206001019390935560025492516340c10f1960e01b815260048101929092526024820185905291909116906340c10f1990604401600060405180830381600087803b158015610fb657600080fd5b505af1158015610fca573d6000803e3d6000fd5b5050505043600654146110fd576002546005546006546001600160a01b0390921691637af548c1914391670de0b6b3a76400009161100f918391906103d89086611c5f565b6110199190611c5f565b6040516001600160e01b031960e085901b1681526004810192909252602482015260006044820152606401602060405180830381600087803b15801561105e57600080fd5b505af1158015611072573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110969190611cfd565b50436006556003546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b1580156110e457600080fd5b505af11580156110f8573d6000803e3d6000fd5b505050505b83836001600160a01b03167fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f518460405161083b91815260200190565b61114161140b565b600081116111615760405162461bcd60e51b815260040161066290611c76565b60006007838154811061117657611176611c9e565b600091825260208083208684526008825260408085203386528352808520888652600a90935290932054600490920290920192506111b49042611c47565b60028201556111c284610852565b6111cc8433611465565b81546111e3906001600160a01b031633308661165a565b604051838152849033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060200160405180910390a360025482546001600160a01b03908116911614156112b15760025460405163f455cb3b60e01b8152600481018590526001600160a01b039091169063f455cb3b9060240160206040518083038186803b15801561127657600080fd5b505afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190611cfd565b92505b828160000160008282546112c59190611c47565b90915550506003820154815464e8d4a51000916112e191611cb4565b6112eb9190611ce9565b6001918201558055505050565b6113006113b1565b6001600160a01b0381166113655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610662565b61136e816115ae565b50565b60006113a96113a361139d61138660016115fe565b61139887670de0b6b3a7640000611692565b6116c9565b84610da9565b856116fc565b949350505050565b6000546001600160a01b03163314610b665760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610662565b6002600154141561145e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610662565b6002600155565b60008281526008602090815260408083206001600160a01b03851684528252808320815160608101835281548152600182015493810184905260029091015491810191909152600780549193929164e8d4a510009190879081106114cb576114cb611c9e565b90600052602060002090600402016003015484600001516114ec9190611cb4565b6114f69190611ce9565b6115009190611c5f565b905080156115405760008481526009602090815260408083206001600160a01b03871684529091528120805483929061153a908490611c47565b90915550505b50505050565b6040516001600160a01b0383166024820152604481018290526115a990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611764565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000677fffffffffffffff82111561161557600080fd5b5060401b90565b6000600f83810b9083900b0260401d60016001607f1b0319811280159061164a575060016001607f1b038113155b61165357600080fd5b9392505050565b6040516001600160a01b03808516602483015283166044820152606481018290526115409085906323b872dd60e01b90608401611572565b60008161169e57600080fd5b60006116aa8484611836565b905060016001607f1b036001600160801b038216111561165357600080fd5b6000600f83810b9083900b0160016001607f1b0319811280159061164a575060016001607f1b0381131561165357600080fd5b60008161170b57506000610da3565b600083600f0b121561171c57600080fd5b600f83900b6001600160801b038316810260401c90608084901c026001600160c01b0381111561174b57600080fd5b60401b811981111561175c57600080fd5b019392505050565b60006117b9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166119989092919063ffffffff16565b8051909150156115a957808060200190518101906117d79190611d45565b6115a95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610662565b60008161184257600080fd5b60006001600160c01b03841161186d5782604085901b8161186557611865611cd3565b049050611984565b60c084811c6401000000008110611886576020918201911c5b620100008110611898576010918201911c5b61010081106118a9576008918201911c5b601081106118b9576004918201911c5b600481106118c9576002918201911c5b600281106118d8576001820191505b60bf820360018603901c6001018260ff0387901b816118f9576118f9611cd3565b0492506001600160801b0383111561191057600080fd5b608085901c83026001600160801b038616840260c088901c604089901b8281101561193c576001820391505b608084901b92900382811015611953576001820391505b829003608084901c821461196957611969611d62565b88818161197857611978611cd3565b04870196505050505050505b6001600160801b0381111561165357600080fd5b60606113a9848460008585600080866001600160a01b031685876040516119bf9190611da4565b60006040518083038185875af1925050503d80600081146119fc576040519150601f19603f3d011682016040523d82523d6000602084013e611a01565b606091505b5091509150611a1287838387611a1d565b979650505050505050565b60608315611a89578251611a82576001600160a01b0385163b611a825760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610662565b50816113a9565b6113a98383815115611a9e5781518083602001fd5b8060405162461bcd60e51b81526004016106629190611dc0565b600060208284031215611aca57600080fd5b5035919050565b60008060408385031215611ae457600080fd5b50508035926020909101359150565b6001600160a01b038116811461136e57600080fd5b801515811461136e57600080fd5b600080600060608486031215611b2b57600080fd5b833592506020840135611b3d81611af3565b91506040840135611b4d81611b08565b809150509250925092565b600080600060608486031215611b6d57600080fd5b83359250602084013591506040840135611b4d81611b08565b60008060408385031215611b9957600080fd5b823591506020830135611bab81611af3565b809150509250929050565b60008060408385031215611bc957600080fd5b823580600f0b8114611bda57600080fd5b946020939093013593505050565b600060208284031215611bfa57600080fd5b813561165381611af3565b600080600060608486031215611c1a57600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c5a57611c5a611c31565b500190565b600082821015611c7157611c71611c31565b500390565b6020808252600e908201526d1a5b9d985b1a5908185b5bdd5b9d60921b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615611cce57611cce611c31565b500290565b634e487b7160e01b600052601260045260246000fd5b600082611cf857611cf8611cd3565b500490565b600060208284031215611d0f57600080fd5b5051919050565b6000600019821415611d2a57611d2a611c31565b5060010190565b600082611d4057611d40611cd3565b500690565b600060208284031215611d5757600080fd5b815161165381611b08565b634e487b7160e01b600052600160045260246000fd5b60005b83811015611d93578181015183820152602001611d7b565b838111156115405750506000910152565b60008251611db6818460208701611d78565b9190910192915050565b6020815260008251806020840152611ddf816040850160208701611d78565b601f01601f1916919091016040019291505056fea26469706673582212209190ceddc947ab18e129c4bb8c64e2e926196d54b66cf9e6661a5b4f484a097364736f6c634300080900330000000000000000000000002e516ba5bf3b7ee47fb99b09eadb60bde80a82e0000000000000000000000000c54ba7aabe7164ca2aa092900060fe2ba6eccd8b000000000000000000000000000000000000000000084595161401484a0000000000000000000000000000000000000000000000000000000000000000fcde3b

Check out more smart contracts

Build blockchain magic with Alchemy

Alchemy combines the most powerful web3 developer products and tools with resources, community and legendary support.