Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 118754466 | 782 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"ClaimableAmountOfImportIsGreaterThanExpected","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"EqualPercentagesOnlyAllowedBeforeLinear","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"IncorrectClaimFee","type":"error"},{"inputs":[],"name":"InputArraysMustHaveSameLength","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidTotalAmount","type":"error"},{"inputs":[],"name":"LastPercentageMustBe100","type":"error"},{"inputs":[],"name":"MaxAllowedMilestonesHit","type":"error"},{"inputs":[],"name":"MilestonePercentagesNotSorted","type":"error"},{"inputs":[],"name":"MilestoneTimestampsNotSorted","type":"error"},{"inputs":[],"name":"MinMilestonesNotReached","type":"error"},{"inputs":[],"name":"MoreThanTwoEqualPercentages","type":"error"},{"inputs":[],"name":"NoClaimableAmount","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"OnlyLastPercentageCanBe100","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"UnlockedIsGreaterThanExpected","type":"error"},{"inputs":[],"name":"UnsuccessfulFetchOfTokenBalance","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"milestoneIndex","type":"uint256"}],"name":"MilestoneReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"totalAmount","type":"uint256"}],"name":"addRecipients","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimFeeData","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"claimableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimableSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"claimedBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"exportRecipient","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"}],"name":"exportRecipients","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"claimableAmountOfImport","type":"uint256"},{"internalType":"uint256","name":"unlocked","type":"uint256"}],"name":"importRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256[]","name":"claimableAmountsOfImport","type":"uint256[]"},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"uint256","name":"unlocked","type":"uint256"}],"name":"importRecipients","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"underlyingTokenAddress","type":"address"},{"components":[{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"enum IVestingToken.Ramp","name":"ramp","type":"uint8"},{"internalType":"uint64","name":"percentage","type":"uint64"}],"internalType":"struct IVestingToken.Milestone[]","name":"milestonesArray","type":"tuple[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"lockedBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"contract IFeeManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"metadataOf","outputs":[{"components":[{"internalType":"uint256","name":"claimedAmountAfterTransfer","type":"uint256"},{"internalType":"uint256","name":"claimedBalance","type":"uint256"}],"internalType":"struct VestingToken.Metadata","name":"metadata","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"milestones","outputs":[{"components":[{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"enum IVestingToken.Ramp","name":"ramp","type":"uint8"},{"internalType":"uint64","name":"percentage","type":"uint64"}],"internalType":"struct IVestingToken.Milestone[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFeeData","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlyingToken","outputs":[{"internalType":"contract ERC20Upgradeable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockedPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"startIndex","type":"uint256"}],"name":"updateLastReachedMilestone","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613aab80620000e66000396000f3fe6080604052600436106101e35760003560e01c80636fa9669311610102578063bfc2aa2a11610095578063d67d13ce11610064578063d67d13ce14610619578063dd62ed3e14610639578063e194aa251461069e578063f79822431461071b57600080fd5b8063bfc2aa2a146105a1578063c8de1d56146105b6578063ca5c7b91146105ef578063d5ab20b41461060457600080fd5b80639c3ee244116100d15780639c3ee2441461052a578063a1c7bd771461054a578063a9059cbb1461055f578063ad4126b61461057f57600080fd5b80636fa966931461047a57806370a082311461048f57806389392c7c146104e457806395d89b411461051557600080fd5b8063358f0a151161017a578063481c6a7511610149578063481c6a75146103e85780634e71d92d1461040857806357c2f2e814610410578063593557361461045a57600080fd5b8063358f0a15146103755780633e2a34731461039557806340bf0506146103b557806342966c68146103d557600080fd5b806323b872dd116101b657806323b872dd146102a35780632495a599146102c35780632ae7888b146102fb578063313ce5671461033857600080fd5b806306fdde03146101e8578063095ea7b3146102135780630f0e60a21461024357806318160ddd14610265575b600080fd5b3480156101f457600080fd5b506101fd61073b565b60405161020a919061300c565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004613072565b610810565b604051901515815260200161020a565b34801561024f57600080fd5b5061026361025e3660046130ea565b61082a565b005b34801561027157600080fd5b507f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b60405190815260200161020a565b3480156102af57600080fd5b506102336102be366004613193565b610ad7565b3480156102cf57600080fd5b506000546102e3906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b34801561030757600080fd5b50610310610af1565b604080516001600160a01b03909316835267ffffffffffffffff90911660208301520161020a565b34801561034457600080fd5b5060015474010000000000000000000000000000000000000000900460ff1660405160ff909116815260200161020a565b34801561038157600080fd5b506102636103903660046131d4565b610b87565b3480156103a157600080fd5b506102636103b036600461328a565b610d9c565b3480156103c157600080fd5b506102636103d0366004613369565b61102e565b6102636103e33660046133a4565b61116a565b3480156103f457600080fd5b506001546102e3906001600160a01b031681565b6102636112dd565b34801561041c57600080fd5b5061043061042b3660046133bd565b611443565b604080516001600160a01b039095168552602085019390935291830152606082015260800161020a565b34801561046657600080fd5b506102956104753660046133bd565b6114a8565b34801561048657600080fd5b506103106114f5565b34801561049b57600080fd5b506102956104aa3660046133bd565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b3480156104f057600080fd5b506105046104ff3660046133da565b611547565b60405161020a959493929190613458565b34801561052157600080fd5b506101fd6116d9565b34801561053657600080fd5b506102956105453660046133bd565b61172a565b34801561055657600080fd5b50610295611781565b34801561056b57600080fd5b5061023361057a366004613072565b6117c8565b34801561058b57600080fd5b506105946117e0565b60405161020a9190613505565b3480156105ad57600080fd5b506102956118a7565b3480156105c257600080fd5b506102956105d13660046133bd565b6001600160a01b031660009081526006602052604090206001015490565b3480156105fb57600080fd5b506102956118eb565b34801561061057600080fd5b5061029561191c565b34801561062557600080fd5b506102636106343660046133a4565b611aae565b34801561064557600080fd5b506102956106543660046135a2565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b3480156106aa57600080fd5b506107006106b93660046133bd565b6040805180820190915260008082526020820152506001600160a01b0316600090815260066020908152604091829020825180840190935280548352600101549082015290565b6040805182518152602092830151928101929092520161020a565b34801561072757600080fd5b50610263610736366004613072565b611c34565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace009161078c906135db565b80601f01602080910402602001604051908101604052809291908181526020018280546107b8906135db565b80156108055780601f106107da57610100808354040283529160200191610805565b820191906000526020600020905b8154815290600101906020018083116107e857829003601f168201915b505050505091505090565b60003361081e818585611cc2565b60019150505b92915050565b610832611cd4565b61083a61191c565b811115610873576040517fd52b679700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8685811415806108835750838614155b156108ba576040517f028a6c5800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006108c4611d55565b6000549091506108df906001600160a01b0316333087611e71565b6000816108ea611d55565b6108f4919061365d565b9050600080845b8015610a56578060019003905060006109488d8d80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250611eed915050565b90506109548184613670565b925060008f8f8481811061096a5761096a613683565b905060200201602081019061097f91906133bd565b905060008a87146109a4578a61099588856136b2565b61099f91906136c9565b6109a6565b825b905060006109e88e8e80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250611eed915050565b905060006109f783838e611efb565b9050610a038484611fa2565b6001600160a01b038416600090815260066020526040902054610a27908290613670565b6001600160a01b038516600090815260066020526040902055610a4a8189613670565b975050505050506108fb565b50868114610a90576040517f908128d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600354610a9e9190613670565b6003556002548290610ab1908590613670565b610abb9190613670565b60025550610acd9350611ff692505050565b5050505050505050565b6000610ae6848484600061201c565b5060015b9392505050565b600154600080546040517f0f3db9da0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291928392911690630f3db9da906024015b6040805180830381865afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f919061371a565b915091509091565b610b8f611cd4565b838214610bc8576040517f028a6c5800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610bd2611d55565b600054909150610bed906001600160a01b0316333085611e71565b600081610bf8611d55565b610c02919061365d565b905080600254610c129190613670565b600255600086805b8015610d2e57806001900390506000610c678b8b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250611eed915050565b90506000610ca98a8a80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611eed915050565b9050610ce98a8a80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611eed915050565b610cf39086613670565b94506000888714610d185788610d0988846136b2565b610d1391906136c9565b610d1a565b815b9050610d268382611fa2565b505050610c1a565b50848214610d68576040517f908128d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050610d9560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610de75750825b905060008267ffffffffffffffff166001148015610e045750303b155b905081158015610e12575080155b15610e49576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610eaa5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b610f2e8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061226392505050565b610f36612275565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055610f6a8787612285565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055610fa5612633565b600160146101000a81548160ff021916908360ff16021790555083156110205784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b611036611cd4565b61103e61191c565b811115611077576040517fd52b679700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611081611d55565b60005490915061109c906001600160a01b0316333087611e71565b6000816110a7611d55565b6110b1919061365d565b905060006110c0828686611efb565b6001600160a01b0388166000908152600660205260409020549091506110e7908290613670565b6001600160a01b03881660009081526006602052604090205560035461110e908290613670565b6003556002548190611121908490613670565b61112b9190613670565b6002556111388783611fa2565b50505061116460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50505050565b6000611174611d55565b60005460405184815291925033916001600160a01b039091169082907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59060200160405180910390a260408051602480820187905282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f42966c680000000000000000000000000000000000000000000000000000000090811790915291516000916001600160a01b0385169161123f9190613749565b6000604051808303816000865af19150503d806000811461127c576040519150601f19603f3d011682016040523d82523d6000602084013e611281565b606091505b50509050806112a3576000546112a3906001600160a01b031661dead88612721565b60006112ad611d55565b6112b7908761365d565b9050806002546112c7919061365d565b6002556112d48588612752565b50505050505050565b6112e5611cd4565b33600081815260066020526040902060055461130090611aae565b6001600160a01b03821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006020526040812054825461134e9161134791613670565b83546127a1565b90508060000361138a576040517f493c1ab700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113948382612752565b81546113a1908290613670565b825560018201546113b3908290613670565b60018301556040518181526001600160a01b038416907f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d49060200160405180910390a260005461140d906001600160a01b03168483612721565b6114156127e5565b50505061144160017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b565b60008060008084611488866001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6114918761172a565b61149961191c565b93509350935093509193509193565b60006114b38261172a565b6001600160a01b03831660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006020526040902054610824919061365d565b600154600080546040517f4b2675ef0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291928392911690634b2675ef90602401610b3f565b3660006060808285818167ffffffffffffffff81111561156957611569613765565b604051908082528060200260200182016040528015611592578160200160208202803683370190505b50905060008267ffffffffffffffff8111156115b0576115b0613765565b6040519080825280602002602001820160405280156115d9578160200160208202803683370190505b509050825b80156116b65780600190039050600061162b8c8c80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250611eed915050565b905061166b816001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b84838151811061167d5761167d613683565b6020026020010181815250506116928161172a565b8383815181106116a4576116a4613683565b602002602001018181525050506115de565b50898983836116c361191c565b939e929d50909b50995090975095505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace009161078c906135db565b6001600160a01b0381166000908152600660209081526040808320547f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00909252822054610aea9061177b9083613670565b826127a1565b60006117c36002546117b17f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b6002546117be919061365d565b6127a1565b905090565b60006117d7338484600161201c565b50600192915050565b60606004805480602002602001604051908101604052809291908181526020016000905b8282101561189e5760008481526020908190206040805160608101909152908401805467ffffffffffffffff81168352919290919083019068010000000000000000900460ff16600181111561185c5761185c6134d6565b600181111561186d5761186d6134d6565b8152905467ffffffffffffffff69010000000000000000009091041660209182015290825260019092019101611804565b50505050905090565b60006003546118d47f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b6002546118e1919061365d565b6117c3919061365d565b60006118f5611781565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546118e1565b60008060046005548154811061193457611934613683565b600091825260209091200180549091504267ffffffffffffffff909116111561195f57600091505090565b8054600454600554690100000000000000000090920467ffffffffffffffff169160009061198e906001613670565b90505b81811015611aa5576000600482815481106119ae576119ae613683565b600091825260209091200180549091504267ffffffffffffffff909116116119f65780549094506901000000000000000000900467ffffffffffffffff169250600101611991565b6001815468010000000000000000900460ff166001811115611a1a57611a1a6134d6565b03611aa35784548154611a3a9167ffffffffffffffff9081169116613794565b8554825467ffffffffffffffff92831692611a68926901000000000000000000908190048216920416613794565b865467ffffffffffffffff91821691611a8291164261365d565b611a8c91906136b2565b611a9691906136c9565b611aa09085613670565b93505b505b50909392505050565b4260048281548110611ac257611ac2613683565b60009182526020909120015467ffffffffffffffff161115611ae15750565b600554600480549060009084838110611afc57611afc613683565b60009182526020909120019050835b82811015611bbf57600060048281548110611b2857611b28613683565b600091825260209091200180549091504267ffffffffffffffff90911611611b54579150600101611b0b565b611b5f856001613670565b821115611bb7576040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301955085907f25fcf68a4a87624d7edc6ca2f4f2cd6975c31a3133784e8e8e7942fa65974f6c90600090a25b505050505050565b50611bcb60018361365d565b831015611c23576040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301935083907f25fcf68a4a87624d7edc6ca2f4f2cd6975c31a3133784e8e8e7942fa65974f6c90600090a25b600554831461116457505060055550565b611c3c611cd4565b6000611c46611d55565b600054909150611c61906001600160a01b0316333085611e71565b600081611c6c611d55565b611c76919061365d565b905080600254611c869190613670565b600255611c938482611fa2565b5050611cbe60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050565b611ccf8383836001612906565b505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611d4f576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b60008054604080513060248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a08231000000000000000000000000000000000000000000000000000000001790529051839283926001600160a01b0390911691611ddc9190613749565b600060405180830381855afa9150503d8060008114611e17576040519150601f19603f3d011682016040523d82523d6000602084013e611e1c565b606091505b5091509150818015611e3057506020815110155b15611e3f576020015192915050565b6040517f7677db4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0384811660248301528381166044830152606482018390526111649186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a31565b602090810291909101015190565b6000670de0b6b3a76400008203611f1457506000610aea565b6000611f2085846136b2565b90506000611f3685670de0b6b3a76400006136b2565b905081811115611f72576040517f4484113f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f8484670de0b6b3a764000061365d565b611f8e828461365d565b611f9891906136c9565b9695505050505050565b6001600160a01b038216611fea576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b611cbe60008383612aad565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6001600160a01b03841660009081526006602090815260408083207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00909252822054909190825461206e9086906136b2565b61207891906136c9565b825490915061208890829061365d565b82556001600160a01b038581169087161461220557600154600080546040517f4b2675ef0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291928392911690634b2675ef906024016040805180830381865afa158015612106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212a919061371a565b915091508067ffffffffffffffff1660001461220257600061215667ffffffffffffffff8316886136b2565b670de0b6b3a764000090049050600061217967ffffffffffffffff8416866136b2565b670de0b6b3a764000090049050612190828961365d565b975061219c818661365d565b6001600160a01b0385166000908152600660205260409020549095506121c3908290613670565b6001600160a01b03851660009081526006602052604090205586156121f2576121ec8483612c16565b506121ff565b6121fd8a8584612c24565b505b50505b50505b6001600160a01b038516600090815260066020526040902054612229908290613670565b6001600160a01b0386166000908152600660205260409020558215612258576122528585612c16565b50611bb7565b6112d4868686612c24565b61226b612c48565b611cbe8282612caf565b61227d612c48565b611441612d12565b60008190036122c0576040517f4fc0948300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61033a8111156122fc576040517f8375f01500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b368282600081811061231057612310613683565b6060029190910191506000905082815b81811015611bb7578015612521578386868381811061234157612341613683565b606002919091019550612359905060208601866137bc565b67ffffffffffffffff1661237060208301836137bc565b67ffffffffffffffff16106123b1576040517f2ecb688400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6123c160608601604087016137bc565b67ffffffffffffffff166123db60608301604084016137bc565b67ffffffffffffffff16111561241d576040517f218d22d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83156124e85761243360608601604087016137bc565b67ffffffffffffffff1661244d60608301604084016137bc565b67ffffffffffffffff160361248e576040517f04855a8f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016124a060408701602088016137e6565b60018111156124b1576124b16134d6565b146124e8576040517f71e2986a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124f860608601604087016137bc565b67ffffffffffffffff1661251260608301604084016137bc565b67ffffffffffffffff16149350505b61252c60018361365d565b810361259157670de0b6b3a764000061254b60608601604087016137bc565b67ffffffffffffffff161461258c576040517f5be691b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125eb565b670de0b6b3a76400006125aa60608601604087016137bc565b67ffffffffffffffff16036125eb576040517fe575499300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6004805460018101825560009190915284907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b016126298282613803565b5050600101612320565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529051839283926001600160a01b03909116916126a99190613749565b600060405180830381855afa9150503d80600081146126e4576040519150601f19603f3d011682016040523d82523d6000602084013e6126e9565b606091505b50915091508180156126fd57506020815110155b1561271857602081015160ff8111612716579392505050565b505b60129250505090565b6040516001600160a01b03838116602483015260448201839052611ccf91859182169063a9059cbb90606401611ea6565b6001600160a01b038216612795576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b611cbe82600083612aad565b600080836127ad61191c565b6127b791906136b2565b670de0b6b3a7640000900490508281106127da576127d5838261365d565b6127dd565b60005b949350505050565b600154600080546040517f0f3db9da0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291928392911690630f3db9da906024016040805180830381865afa15801561284e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612872919061371a565b915091508067ffffffffffffffff16600014611cbe578067ffffffffffffffff1634146128cb576040517f9ed72d2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc155047b0000000000000000000000000000000000000000000000000000000090600080808034885af180610d9557828252600482fd5b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661296a576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b6001600160a01b0384166129ad576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b6001600160a01b03808616600090815260018301602090815260408083209388168352929052208390558115610d9557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051612a2291815260200190565b60405180910390a35050505050565b6000612a466001600160a01b03841683612d1a565b90508051600014158015612a6b575080806020019051810190612a69919061391a565b155b15611ccf576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401611fe1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416612afb5781816002016000828254612af09190613670565b90915550612b869050565b6001600160a01b03841660009081526020829052604090205482811015612b67576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401611fe1565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316612ba4576002810180548390039055612bc3565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c0891815260200190565b60405180910390a350505050565b60003361081e818585612d28565b600033612c32858285612db9565b612c3d858585612d28565b506001949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611441576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cb7612c48565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03612d038482613984565b50600481016111648382613984565b611ff6612c48565b6060610aea83836000612e87565b6001600160a01b038316612d6b576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b6001600160a01b038216612dae576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b611ccf838383612aad565b6001600160a01b0383811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111645781811015612e78576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401611fe1565b61116484848484036000612906565b606081471015612ec5576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611fe1565b600080856001600160a01b03168486604051612ee19190613749565b60006040518083038185875af1925050503d8060008114612f1e576040519150601f19603f3d011682016040523d82523d6000602084013e612f23565b606091505b5091509150611f98868383606082612f4357612f3e82612fa3565b610aea565b8151158015612f5a57506001600160a01b0384163b155b15612f9c576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611fe1565b5080610aea565b805115612fb35780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60005b83811015613003578181015183820152602001612feb565b50506000910152565b602081526000825180602084015261302b816040850160208701612fe8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6001600160a01b0381168114612fe557600080fd5b6000806040838503121561308557600080fd5b82356130908161305d565b946020939093013593505050565b60008083601f8401126130b057600080fd5b50813567ffffffffffffffff8111156130c857600080fd5b6020830191508360208260051b85010111156130e357600080fd5b9250929050565b60008060008060008060008060a0898b03121561310657600080fd5b883567ffffffffffffffff8082111561311e57600080fd5b61312a8c838d0161309e565b909a50985060208b013591508082111561314357600080fd5b61314f8c838d0161309e565b909850965060408b013591508082111561316857600080fd5b506131758b828c0161309e565b999c989b509699959896976060870135966080013595509350505050565b6000806000606084860312156131a857600080fd5b83356131b38161305d565b925060208401356131c38161305d565b929592945050506040919091013590565b6000806000806000606086880312156131ec57600080fd5b853567ffffffffffffffff8082111561320457600080fd5b61321089838a0161309e565b9097509550602088013591508082111561322957600080fd5b506132368882890161309e565b96999598509660400135949350505050565b60008083601f84011261325a57600080fd5b50813567ffffffffffffffff81111561327257600080fd5b6020830191508360208285010111156130e357600080fd5b60008060008060008060006080888a0312156132a557600080fd5b873567ffffffffffffffff808211156132bd57600080fd5b6132c98b838c01613248565b909950975060208a01359150808211156132e257600080fd5b6132ee8b838c01613248565b909750955060408a013591506133038261305d565b9093506060890135908082111561331957600080fd5b818a0191508a601f83011261332d57600080fd5b81358181111561333c57600080fd5b8b602060608302850101111561335157600080fd5b60208301945080935050505092959891949750929550565b6000806000806080858703121561337f57600080fd5b843561338a8161305d565b966020860135965060408601359560600135945092505050565b6000602082840312156133b657600080fd5b5035919050565b6000602082840312156133cf57600080fd5b8135610aea8161305d565b600080602083850312156133ed57600080fd5b823567ffffffffffffffff81111561340457600080fd5b6134108582860161309e565b90969095509350505050565b60008151808452602080850194506020840160005b8381101561344d57815187529582019590820190600101613431565b509495945050505050565b6080808252810185905260008660a08301825b8881101561349b57823561347e8161305d565b6001600160a01b031682526020928301929091019060010161346b565b5083810360208501526134ae818861341c565b91505082810360408401526134c3818661341c565b9150508260608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208082528251828201819052600091906040908185019086840185805b8381101561359457825167ffffffffffffffff8082511687528882015160028110613575577f4e487b710000000000000000000000000000000000000000000000000000000085526021600452602485fd5b878a015290870151168686015260609094019391860191600101613523565b509298975050505050505050565b600080604083850312156135b557600080fd5b82356135c08161305d565b915060208301356135d08161305d565b809150509250929050565b600181811c908216806135ef57607f821691505b602082108103613628577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156108245761082461362e565b808201808211156108245761082461362e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820281158282048414176108245761082461362e565b6000826136ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b67ffffffffffffffff81168114612fe557600080fd5b6000806040838503121561372d57600080fd5b82516137388161305d565b60208401519092506135d081613704565b6000825161375b818460208701612fe8565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8281168282160390808211156137b5576137b561362e565b5092915050565b6000602082840312156137ce57600080fd5b8135610aea81613704565b60028110612fe557600080fd5b6000602082840312156137f857600080fd5b8135610aea816137d9565b813561380e81613704565b67ffffffffffffffff811690508154817fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000082161783556020840135613852816137d9565b60028110613889577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b68ff00000000000000008160401b16905080837fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000084161717845560408501356138d181613704565b70ffffffffffffffff0000000000000000008160481b16847fffffffffffffffffffffffffffffff00000000000000000000000000000000008516178317178555505050505050565b60006020828403121561392c57600080fd5b81518015158114610aea57600080fd5b601f821115611ccf576000816000526020600020601f850160051c810160208610156139655750805b601f850160051c820191505b81811015611bb757828155600101613971565b815167ffffffffffffffff81111561399e5761399e613765565b6139b2816139ac84546135db565b8461393c565b602080601f831160018114613a0557600084156139cf5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611bb7565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015613a5257888601518255948401946001909101908401613a33565b5085821015613a8e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c6343000818000a
Deployed Bytecode
0x6080604052600436106101e35760003560e01c80636fa9669311610102578063bfc2aa2a11610095578063d67d13ce11610064578063d67d13ce14610619578063dd62ed3e14610639578063e194aa251461069e578063f79822431461071b57600080fd5b8063bfc2aa2a146105a1578063c8de1d56146105b6578063ca5c7b91146105ef578063d5ab20b41461060457600080fd5b80639c3ee244116100d15780639c3ee2441461052a578063a1c7bd771461054a578063a9059cbb1461055f578063ad4126b61461057f57600080fd5b80636fa966931461047a57806370a082311461048f57806389392c7c146104e457806395d89b411461051557600080fd5b8063358f0a151161017a578063481c6a7511610149578063481c6a75146103e85780634e71d92d1461040857806357c2f2e814610410578063593557361461045a57600080fd5b8063358f0a15146103755780633e2a34731461039557806340bf0506146103b557806342966c68146103d557600080fd5b806323b872dd116101b657806323b872dd146102a35780632495a599146102c35780632ae7888b146102fb578063313ce5671461033857600080fd5b806306fdde03146101e8578063095ea7b3146102135780630f0e60a21461024357806318160ddd14610265575b600080fd5b3480156101f457600080fd5b506101fd61073b565b60405161020a919061300c565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004613072565b610810565b604051901515815260200161020a565b34801561024f57600080fd5b5061026361025e3660046130ea565b61082a565b005b34801561027157600080fd5b507f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b60405190815260200161020a565b3480156102af57600080fd5b506102336102be366004613193565b610ad7565b3480156102cf57600080fd5b506000546102e3906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b34801561030757600080fd5b50610310610af1565b604080516001600160a01b03909316835267ffffffffffffffff90911660208301520161020a565b34801561034457600080fd5b5060015474010000000000000000000000000000000000000000900460ff1660405160ff909116815260200161020a565b34801561038157600080fd5b506102636103903660046131d4565b610b87565b3480156103a157600080fd5b506102636103b036600461328a565b610d9c565b3480156103c157600080fd5b506102636103d0366004613369565b61102e565b6102636103e33660046133a4565b61116a565b3480156103f457600080fd5b506001546102e3906001600160a01b031681565b6102636112dd565b34801561041c57600080fd5b5061043061042b3660046133bd565b611443565b604080516001600160a01b039095168552602085019390935291830152606082015260800161020a565b34801561046657600080fd5b506102956104753660046133bd565b6114a8565b34801561048657600080fd5b506103106114f5565b34801561049b57600080fd5b506102956104aa3660046133bd565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b3480156104f057600080fd5b506105046104ff3660046133da565b611547565b60405161020a959493929190613458565b34801561052157600080fd5b506101fd6116d9565b34801561053657600080fd5b506102956105453660046133bd565b61172a565b34801561055657600080fd5b50610295611781565b34801561056b57600080fd5b5061023361057a366004613072565b6117c8565b34801561058b57600080fd5b506105946117e0565b60405161020a9190613505565b3480156105ad57600080fd5b506102956118a7565b3480156105c257600080fd5b506102956105d13660046133bd565b6001600160a01b031660009081526006602052604090206001015490565b3480156105fb57600080fd5b506102956118eb565b34801561061057600080fd5b5061029561191c565b34801561062557600080fd5b506102636106343660046133a4565b611aae565b34801561064557600080fd5b506102956106543660046135a2565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b3480156106aa57600080fd5b506107006106b93660046133bd565b6040805180820190915260008082526020820152506001600160a01b0316600090815260066020908152604091829020825180840190935280548352600101549082015290565b6040805182518152602092830151928101929092520161020a565b34801561072757600080fd5b50610263610736366004613072565b611c34565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace009161078c906135db565b80601f01602080910402602001604051908101604052809291908181526020018280546107b8906135db565b80156108055780601f106107da57610100808354040283529160200191610805565b820191906000526020600020905b8154815290600101906020018083116107e857829003601f168201915b505050505091505090565b60003361081e818585611cc2565b60019150505b92915050565b610832611cd4565b61083a61191c565b811115610873576040517fd52b679700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8685811415806108835750838614155b156108ba576040517f028a6c5800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006108c4611d55565b6000549091506108df906001600160a01b0316333087611e71565b6000816108ea611d55565b6108f4919061365d565b9050600080845b8015610a56578060019003905060006109488d8d80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250611eed915050565b90506109548184613670565b925060008f8f8481811061096a5761096a613683565b905060200201602081019061097f91906133bd565b905060008a87146109a4578a61099588856136b2565b61099f91906136c9565b6109a6565b825b905060006109e88e8e80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250611eed915050565b905060006109f783838e611efb565b9050610a038484611fa2565b6001600160a01b038416600090815260066020526040902054610a27908290613670565b6001600160a01b038516600090815260066020526040902055610a4a8189613670565b975050505050506108fb565b50868114610a90576040517f908128d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600354610a9e9190613670565b6003556002548290610ab1908590613670565b610abb9190613670565b60025550610acd9350611ff692505050565b5050505050505050565b6000610ae6848484600061201c565b5060015b9392505050565b600154600080546040517f0f3db9da0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291928392911690630f3db9da906024015b6040805180830381865afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f919061371a565b915091509091565b610b8f611cd4565b838214610bc8576040517f028a6c5800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610bd2611d55565b600054909150610bed906001600160a01b0316333085611e71565b600081610bf8611d55565b610c02919061365d565b905080600254610c129190613670565b600255600086805b8015610d2e57806001900390506000610c678b8b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250611eed915050565b90506000610ca98a8a80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611eed915050565b9050610ce98a8a80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250879250611eed915050565b610cf39086613670565b94506000888714610d185788610d0988846136b2565b610d1391906136c9565b610d1a565b815b9050610d268382611fa2565b505050610c1a565b50848214610d68576040517f908128d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050610d9560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610de75750825b905060008267ffffffffffffffff166001148015610e045750303b155b905081158015610e12575080155b15610e49576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610eaa5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b610f2e8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061226392505050565b610f36612275565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055610f6a8787612285565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16179055610fa5612633565b600160146101000a81548160ff021916908360ff16021790555083156110205784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b611036611cd4565b61103e61191c565b811115611077576040517fd52b679700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611081611d55565b60005490915061109c906001600160a01b0316333087611e71565b6000816110a7611d55565b6110b1919061365d565b905060006110c0828686611efb565b6001600160a01b0388166000908152600660205260409020549091506110e7908290613670565b6001600160a01b03881660009081526006602052604090205560035461110e908290613670565b6003556002548190611121908490613670565b61112b9190613670565b6002556111388783611fa2565b50505061116460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50505050565b6000611174611d55565b60005460405184815291925033916001600160a01b039091169082907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59060200160405180910390a260408051602480820187905282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f42966c680000000000000000000000000000000000000000000000000000000090811790915291516000916001600160a01b0385169161123f9190613749565b6000604051808303816000865af19150503d806000811461127c576040519150601f19603f3d011682016040523d82523d6000602084013e611281565b606091505b50509050806112a3576000546112a3906001600160a01b031661dead88612721565b60006112ad611d55565b6112b7908761365d565b9050806002546112c7919061365d565b6002556112d48588612752565b50505050505050565b6112e5611cd4565b33600081815260066020526040902060055461130090611aae565b6001600160a01b03821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006020526040812054825461134e9161134791613670565b83546127a1565b90508060000361138a576040517f493c1ab700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113948382612752565b81546113a1908290613670565b825560018201546113b3908290613670565b60018301556040518181526001600160a01b038416907f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d49060200160405180910390a260005461140d906001600160a01b03168483612721565b6114156127e5565b50505061144160017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b565b60008060008084611488866001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b6114918761172a565b61149961191c565b93509350935093509193509193565b60006114b38261172a565b6001600160a01b03831660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006020526040902054610824919061365d565b600154600080546040517f4b2675ef0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291928392911690634b2675ef90602401610b3f565b3660006060808285818167ffffffffffffffff81111561156957611569613765565b604051908082528060200260200182016040528015611592578160200160208202803683370190505b50905060008267ffffffffffffffff8111156115b0576115b0613765565b6040519080825280602002602001820160405280156115d9578160200160208202803683370190505b509050825b80156116b65780600190039050600061162b8c8c80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250611eed915050565b905061166b816001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090205490565b84838151811061167d5761167d613683565b6020026020010181815250506116928161172a565b8383815181106116a4576116a4613683565b602002602001018181525050506115de565b50898983836116c361191c565b939e929d50909b50995090975095505050505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace009161078c906135db565b6001600160a01b0381166000908152600660209081526040808320547f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00909252822054610aea9061177b9083613670565b826127a1565b60006117c36002546117b17f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b6002546117be919061365d565b6127a1565b905090565b60006117d7338484600161201c565b50600192915050565b60606004805480602002602001604051908101604052809291908181526020016000905b8282101561189e5760008481526020908190206040805160608101909152908401805467ffffffffffffffff81168352919290919083019068010000000000000000900460ff16600181111561185c5761185c6134d6565b600181111561186d5761186d6134d6565b8152905467ffffffffffffffff69010000000000000000009091041660209182015290825260019092019101611804565b50505050905090565b60006003546118d47f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b6002546118e1919061365d565b6117c3919061365d565b60006118f5611781565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02546118e1565b60008060046005548154811061193457611934613683565b600091825260209091200180549091504267ffffffffffffffff909116111561195f57600091505090565b8054600454600554690100000000000000000090920467ffffffffffffffff169160009061198e906001613670565b90505b81811015611aa5576000600482815481106119ae576119ae613683565b600091825260209091200180549091504267ffffffffffffffff909116116119f65780549094506901000000000000000000900467ffffffffffffffff169250600101611991565b6001815468010000000000000000900460ff166001811115611a1a57611a1a6134d6565b03611aa35784548154611a3a9167ffffffffffffffff9081169116613794565b8554825467ffffffffffffffff92831692611a68926901000000000000000000908190048216920416613794565b865467ffffffffffffffff91821691611a8291164261365d565b611a8c91906136b2565b611a9691906136c9565b611aa09085613670565b93505b505b50909392505050565b4260048281548110611ac257611ac2613683565b60009182526020909120015467ffffffffffffffff161115611ae15750565b600554600480549060009084838110611afc57611afc613683565b60009182526020909120019050835b82811015611bbf57600060048281548110611b2857611b28613683565b600091825260209091200180549091504267ffffffffffffffff90911611611b54579150600101611b0b565b611b5f856001613670565b821115611bb7576040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301955085907f25fcf68a4a87624d7edc6ca2f4f2cd6975c31a3133784e8e8e7942fa65974f6c90600090a25b505050505050565b50611bcb60018361365d565b831015611c23576040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301935083907f25fcf68a4a87624d7edc6ca2f4f2cd6975c31a3133784e8e8e7942fa65974f6c90600090a25b600554831461116457505060055550565b611c3c611cd4565b6000611c46611d55565b600054909150611c61906001600160a01b0316333085611e71565b600081611c6c611d55565b611c76919061365d565b905080600254611c869190613670565b600255611c938482611fa2565b5050611cbe60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050565b611ccf8383836001612906565b505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611d4f576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b60008054604080513060248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a08231000000000000000000000000000000000000000000000000000000001790529051839283926001600160a01b0390911691611ddc9190613749565b600060405180830381855afa9150503d8060008114611e17576040519150601f19603f3d011682016040523d82523d6000602084013e611e1c565b606091505b5091509150818015611e3057506020815110155b15611e3f576020015192915050565b6040517f7677db4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b0384811660248301528381166044830152606482018390526111649186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612a31565b602090810291909101015190565b6000670de0b6b3a76400008203611f1457506000610aea565b6000611f2085846136b2565b90506000611f3685670de0b6b3a76400006136b2565b905081811115611f72576040517f4484113f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f8484670de0b6b3a764000061365d565b611f8e828461365d565b611f9891906136c9565b9695505050505050565b6001600160a01b038216611fea576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b611cbe60008383612aad565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6001600160a01b03841660009081526006602090815260408083207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00909252822054909190825461206e9086906136b2565b61207891906136c9565b825490915061208890829061365d565b82556001600160a01b038581169087161461220557600154600080546040517f4b2675ef0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291928392911690634b2675ef906024016040805180830381865afa158015612106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212a919061371a565b915091508067ffffffffffffffff1660001461220257600061215667ffffffffffffffff8316886136b2565b670de0b6b3a764000090049050600061217967ffffffffffffffff8416866136b2565b670de0b6b3a764000090049050612190828961365d565b975061219c818661365d565b6001600160a01b0385166000908152600660205260409020549095506121c3908290613670565b6001600160a01b03851660009081526006602052604090205586156121f2576121ec8483612c16565b506121ff565b6121fd8a8584612c24565b505b50505b50505b6001600160a01b038516600090815260066020526040902054612229908290613670565b6001600160a01b0386166000908152600660205260409020558215612258576122528585612c16565b50611bb7565b6112d4868686612c24565b61226b612c48565b611cbe8282612caf565b61227d612c48565b611441612d12565b60008190036122c0576040517f4fc0948300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61033a8111156122fc576040517f8375f01500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b368282600081811061231057612310613683565b6060029190910191506000905082815b81811015611bb7578015612521578386868381811061234157612341613683565b606002919091019550612359905060208601866137bc565b67ffffffffffffffff1661237060208301836137bc565b67ffffffffffffffff16106123b1576040517f2ecb688400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6123c160608601604087016137bc565b67ffffffffffffffff166123db60608301604084016137bc565b67ffffffffffffffff16111561241d576040517f218d22d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83156124e85761243360608601604087016137bc565b67ffffffffffffffff1661244d60608301604084016137bc565b67ffffffffffffffff160361248e576040517f04855a8f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016124a060408701602088016137e6565b60018111156124b1576124b16134d6565b146124e8576040517f71e2986a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124f860608601604087016137bc565b67ffffffffffffffff1661251260608301604084016137bc565b67ffffffffffffffff16149350505b61252c60018361365d565b810361259157670de0b6b3a764000061254b60608601604087016137bc565b67ffffffffffffffff161461258c576040517f5be691b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125eb565b670de0b6b3a76400006125aa60608601604087016137bc565b67ffffffffffffffff16036125eb576040517fe575499300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6004805460018101825560009190915284907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b016126298282613803565b5050600101612320565b6000805460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f313ce567000000000000000000000000000000000000000000000000000000001790529051839283926001600160a01b03909116916126a99190613749565b600060405180830381855afa9150503d80600081146126e4576040519150601f19603f3d011682016040523d82523d6000602084013e6126e9565b606091505b50915091508180156126fd57506020815110155b1561271857602081015160ff8111612716579392505050565b505b60129250505090565b6040516001600160a01b03838116602483015260448201839052611ccf91859182169063a9059cbb90606401611ea6565b6001600160a01b038216612795576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b611cbe82600083612aad565b600080836127ad61191c565b6127b791906136b2565b670de0b6b3a7640000900490508281106127da576127d5838261365d565b6127dd565b60005b949350505050565b600154600080546040517f0f3db9da0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291928392911690630f3db9da906024016040805180830381865afa15801561284e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612872919061371a565b915091508067ffffffffffffffff16600014611cbe578067ffffffffffffffff1634146128cb576040517f9ed72d2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fc155047b0000000000000000000000000000000000000000000000000000000090600080808034885af180610d9557828252600482fd5b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661296a576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b6001600160a01b0384166129ad576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b6001600160a01b03808616600090815260018301602090815260408083209388168352929052208390558115610d9557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051612a2291815260200190565b60405180910390a35050505050565b6000612a466001600160a01b03841683612d1a565b90508051600014158015612a6b575080806020019051810190612a69919061391a565b155b15611ccf576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401611fe1565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416612afb5781816002016000828254612af09190613670565b90915550612b869050565b6001600160a01b03841660009081526020829052604090205482811015612b67576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401611fe1565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316612ba4576002810180548390039055612bc3565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c0891815260200190565b60405180910390a350505050565b60003361081e818585612d28565b600033612c32858285612db9565b612c3d858585612d28565b506001949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611441576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612cb7612c48565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03612d038482613984565b50600481016111648382613984565b611ff6612c48565b6060610aea83836000612e87565b6001600160a01b038316612d6b576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b6001600160a01b038216612dae576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401611fe1565b611ccf838383612aad565b6001600160a01b0383811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111645781811015612e78576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401611fe1565b61116484848484036000612906565b606081471015612ec5576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611fe1565b600080856001600160a01b03168486604051612ee19190613749565b60006040518083038185875af1925050503d8060008114612f1e576040519150601f19603f3d011682016040523d82523d6000602084013e612f23565b606091505b5091509150611f98868383606082612f4357612f3e82612fa3565b610aea565b8151158015612f5a57506001600160a01b0384163b155b15612f9c576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611fe1565b5080610aea565b805115612fb35780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60005b83811015613003578181015183820152602001612feb565b50506000910152565b602081526000825180602084015261302b816040850160208701612fe8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6001600160a01b0381168114612fe557600080fd5b6000806040838503121561308557600080fd5b82356130908161305d565b946020939093013593505050565b60008083601f8401126130b057600080fd5b50813567ffffffffffffffff8111156130c857600080fd5b6020830191508360208260051b85010111156130e357600080fd5b9250929050565b60008060008060008060008060a0898b03121561310657600080fd5b883567ffffffffffffffff8082111561311e57600080fd5b61312a8c838d0161309e565b909a50985060208b013591508082111561314357600080fd5b61314f8c838d0161309e565b909850965060408b013591508082111561316857600080fd5b506131758b828c0161309e565b999c989b509699959896976060870135966080013595509350505050565b6000806000606084860312156131a857600080fd5b83356131b38161305d565b925060208401356131c38161305d565b929592945050506040919091013590565b6000806000806000606086880312156131ec57600080fd5b853567ffffffffffffffff8082111561320457600080fd5b61321089838a0161309e565b9097509550602088013591508082111561322957600080fd5b506132368882890161309e565b96999598509660400135949350505050565b60008083601f84011261325a57600080fd5b50813567ffffffffffffffff81111561327257600080fd5b6020830191508360208285010111156130e357600080fd5b60008060008060008060006080888a0312156132a557600080fd5b873567ffffffffffffffff808211156132bd57600080fd5b6132c98b838c01613248565b909950975060208a01359150808211156132e257600080fd5b6132ee8b838c01613248565b909750955060408a013591506133038261305d565b9093506060890135908082111561331957600080fd5b818a0191508a601f83011261332d57600080fd5b81358181111561333c57600080fd5b8b602060608302850101111561335157600080fd5b60208301945080935050505092959891949750929550565b6000806000806080858703121561337f57600080fd5b843561338a8161305d565b966020860135965060408601359560600135945092505050565b6000602082840312156133b657600080fd5b5035919050565b6000602082840312156133cf57600080fd5b8135610aea8161305d565b600080602083850312156133ed57600080fd5b823567ffffffffffffffff81111561340457600080fd5b6134108582860161309e565b90969095509350505050565b60008151808452602080850194506020840160005b8381101561344d57815187529582019590820190600101613431565b509495945050505050565b6080808252810185905260008660a08301825b8881101561349b57823561347e8161305d565b6001600160a01b031682526020928301929091019060010161346b565b5083810360208501526134ae818861341c565b91505082810360408401526134c3818661341c565b9150508260608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208082528251828201819052600091906040908185019086840185805b8381101561359457825167ffffffffffffffff8082511687528882015160028110613575577f4e487b710000000000000000000000000000000000000000000000000000000085526021600452602485fd5b878a015290870151168686015260609094019391860191600101613523565b509298975050505050505050565b600080604083850312156135b557600080fd5b82356135c08161305d565b915060208301356135d08161305d565b809150509250929050565b600181811c908216806135ef57607f821691505b602082108103613628577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156108245761082461362e565b808201808211156108245761082461362e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820281158282048414176108245761082461362e565b6000826136ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b67ffffffffffffffff81168114612fe557600080fd5b6000806040838503121561372d57600080fd5b82516137388161305d565b60208401519092506135d081613704565b6000825161375b818460208701612fe8565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8281168282160390808211156137b5576137b561362e565b5092915050565b6000602082840312156137ce57600080fd5b8135610aea81613704565b60028110612fe557600080fd5b6000602082840312156137f857600080fd5b8135610aea816137d9565b813561380e81613704565b67ffffffffffffffff811690508154817fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000082161783556020840135613852816137d9565b60028110613889577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b68ff00000000000000008160401b16905080837fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000084161717845560408501356138d181613704565b70ffffffffffffffff0000000000000000008160481b16847fffffffffffffffffffffffffffffff00000000000000000000000000000000008516178317178555505050505050565b60006020828403121561392c57600080fd5b81518015158114610aea57600080fd5b601f821115611ccf576000816000526020600020601f850160051c810160208610156139655750805b601f850160051c820191505b81811015611bb757828155600101613971565b815167ffffffffffffffff81111561399e5761399e613765565b6139b2816139ac84546135db565b8461393c565b602080601f831160018114613a0557600084156139cf5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611bb7565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015613a5257888601518255948401946001909101908401613a33565b5085821015613a8e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c6343000818000a
🤖 Code Reader
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.

