[ { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "increasedSupply", "type": "uint256" }, { "internalType": "uint256", "name": "cap", "type": "uint256" } ], "name": "ERC20ExceededSafeSupply", "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": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "maxLoan", "type": "uint256" } ], "name": "ERC3156ExceededMaxLoan", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC3156InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "ERC3156UnsupportedToken", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" }, { "internalType": "uint48", "name": "clock", "type": "uint48" } ], "name": "ERC5805FutureLookup", "type": "error" }, { "inputs": [], "name": "ERC6372InconsistentClock", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expiry", "type": "uint256" } ], "name": "VotesExpiredSignature", "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": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousVotes", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newVotes", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "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": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint48", "name": "_key", "type": "uint48" }, { "internalType": "uint208", "name": "_value", "type": "uint208" } ], "internalType": "struct Checkpoints.Checkpoint208", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "flashFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC3156FlashBorrower", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "flashLoan", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "maxFlashLoan", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
61016060405234801562000011575f80fd5b506040516200322c3803806200322c8339810160408190526200003491620009ae565b604051806060016040528060258152602001620031e76025913980604051806040016040528060018152602001603160f81b81525083604051806060016040528060258152602001620031e7602591396040805180820190915260048152630915109160e21b60208201526003620000ad838262000a75565b506004620000bc828262000a75565b50506005805460ff19169055506001600160a01b038116620000f857604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6200010381620001ea565b506200011182600662000243565b610120526200012281600762000243565b61014052815160208084019190912060e052815190820120610100524660a052620001af60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c05250620001e333620001cc6012600a62000c4a565b620001dd9064174876e80062000c5a565b6200027b565b5062000d5e565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f60208351101562000262576200025a83620002b7565b905062000275565b816200026f848262000a75565b5060ff90505b92915050565b6001600160a01b038216620002a65760405163ec442f0560e01b81525f6004820152602401620000ef565b620002b35f8383620002f9565b5050565b5f80829050601f81511115620002e4578260405163305a27a960e01b8152600401620000ef919062000c74565b8051620002f18262000cc1565b179392505050565b620003068383836200030b565b505050565b6200031883838362000379565b6001600160a01b0383166200036c575f6200033260025490565b90506001600160d01b03808211156200036957604051630e58ae9360e11b81526004810183905260248101829052604401620000ef565b50505b6200030683838362000390565b6200038362000427565b620003068383836200044e565b6001600160a01b038316620003c557620003c2600b62000c826200057d60201b17620003bc8462000591565b620005ca565b50505b6001600160a01b038216620003f457620003f1600b62000c8d6200060660201b17620003bc8462000591565b50505b6001600160a01b038381165f90815260096020526040808220548584168352912054620003069291821691168362000613565b60055460ff16156200044c5760405163d93c066560e01b815260040160405180910390fd5b565b6001600160a01b0383166200047c578060025f82825462000470919062000ce5565b90915550620004ee9050565b6001600160a01b0383165f9081526020819052604090205481811015620004d05760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000ef565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166200050c576002805482900390556200052a565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200057091815260200190565b60405180910390a3505050565b5f6200058a828462000cfb565b9392505050565b5f6001600160d01b03821115620005c6576040516306dfcc6560e41b815260d0600482015260248101839052604401620000ef565b5090565b5f80620005f9620005da62000775565b620005f0620005e98862000785565b868860201c565b879190620007d1565b915091505b935093915050565b5f6200058a828462000d25565b816001600160a01b0316836001600160a01b0316141580156200063557505f81115b1562000306576001600160a01b03831615620006d6576001600160a01b0383165f908152600a602090815260408220829162000682919062000606901b62000c8d17620003bc8662000591565b6001600160d01b031691506001600160d01b03169150846001600160a01b03165f805160206200320c8339815191528383604051620006cb929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161562000306576001600160a01b0382165f908152600a60209081526040822082916200071d91906200057d901b62000c8217620003bc8662000591565b6001600160d01b031691506001600160d01b03169150836001600160a01b03165f805160206200320c833981519152838360405162000766929190918252602082015260400190565b60405180910390a25050505050565b5f62000780620007e0565b905090565b80545f908015620007c957620007af83620007a260018462000d48565b5f91825260209091200190565b54660100000000000090046001600160d01b03166200058a565b5f9392505050565b5f80620005f9858585620007ec565b5f62000780436200097a565b82545f90819080156200091c575f6200080c87620007a260018562000d48565b60408051808201909152905465ffffffffffff80821680845266010000000000009092046001600160d01b0316602084015291925090871610156200086457604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603620008b857846200088b88620007a260018662000d48565b80546001600160d01b039290921666010000000000000265ffffffffffff9092169190911790556200090b565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d555f8d815291909120945191519092166601000000000000029216919091179101555b602001519250839150620005fe9050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a8152918220955192519093166601000000000000029190931617920191909155905081620005fe565b5f65ffffffffffff821115620005c6576040516306dfcc6560e41b81526030600482015260248101839052604401620000ef565b5f60208284031215620009bf575f80fd5b81516001600160a01b03811681146200058a575f80fd5b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620009ff57607f821691505b60208210810362000a1e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000306575f81815260208120601f850160051c8101602086101562000a4c5750805b601f850160051c820191505b8181101562000a6d5782815560010162000a58565b505050505050565b81516001600160401b0381111562000a915762000a91620009d6565b62000aa98162000aa28454620009ea565b8462000a24565b602080601f83116001811462000adf575f841562000ac75750858301515b5f19600386901b1c1916600185901b17855562000a6d565b5f85815260208120601f198616915b8281101562000b0f5788860151825594840194600190910190840162000aee565b508582101562000b2d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111562000b9157815f190482111562000b755762000b7562000b3d565b8085161562000b8357918102915b93841c939080029062000b56565b509250929050565b5f8262000ba95750600162000275565b8162000bb757505f62000275565b816001811462000bd0576002811462000bdb5762000bfb565b600191505062000275565b60ff84111562000bef5762000bef62000b3d565b50506001821b62000275565b5060208310610133831016604e8410600b841016171562000c20575081810a62000275565b62000c2c838362000b51565b805f190482111562000c425762000c4262000b3d565b029392505050565b5f6200058a60ff84168362000b99565b808202811582820484141762000275576200027562000b3d565b5f6020808352835180828501525f5b8181101562000ca15785810183015185820160400152820162000c83565b505f604082860101526040601f19601f8301168501019250505092915050565b8051602080830151919081101562000a1e575f1960209190910360031b1b16919050565b8082018082111562000275576200027562000b3d565b6001600160d01b0381811683821601908082111562000d1e5762000d1e62000b3d565b5092915050565b6001600160d01b0382811682821603908082111562000d1e5762000d1e62000b3d565b8181038181111562000275576200027562000b3d565b60805160a05160c05160e05161010051610120516101405161243762000db05f395f61120101525f6111d401525f610e5b01525f610e3301525f610d8e01525f610db801525f610de201526124375ff3fe608060405234801561000f575f80fd5b50600436106101fd575f3560e01c8063715018a61161011457806395d89b41116100a9578063d505accf11610079578063d505accf14610467578063d9d98ce41461047a578063dd62ed3e1461048d578063f1127ed8146104c5578063f2fde38b14610504575f80fd5b806395d89b41146104265780639ab24eb01461042e578063a9059cbb14610441578063c3cda52014610454575f80fd5b806384b0196e116100e457806384b0196e146103c35780638da5cb5b146103de5780638e539e8c146103f457806391ddadf414610407575f80fd5b8063715018a61461038d57806379cc6790146103955780637ecebe00146103a85780638456cb59146103bb575f80fd5b806342966c68116101955780635c975abb116101655780635c975abb1461030c5780635cffe9de14610317578063613255ab1461032a5780636fcfff451461033d57806370a0823114610365575f80fd5b806342966c681461029b5780634bf5d7e9146102ae578063587cde1e146102b65780635c19a95c146102f9575f80fd5b8063313ce567116101d0578063313ce567146102675780633644e515146102765780633a46b1a81461027e5780633f4ba83a14610291575f80fd5b806306fdde0314610201578063095ea7b31461021f57806318160ddd1461024257806323b872dd14610254575b5f80fd5b610209610517565b6040516102169190611f52565b60405180910390f35b61023261022d366004611f78565b6105a7565b6040519015158152602001610216565b6002545b604051908152602001610216565b610232610262366004611fa2565b6105c0565b60405160128152602001610216565b6102466105e3565b61024661028c366004611f78565b6105f1565b610299610675565b005b6102996102a9366004611fe0565b610687565b610209610694565b6102e16102c4366004611ff7565b6001600160a01b039081165f908152600960205260409020541690565b6040516001600160a01b039091168152602001610216565b610299610307366004611ff7565b61070c565b60055460ff16610232565b610232610325366004612012565b61071b565b610246610338366004611ff7565b61088d565b61035061034b366004611ff7565b6108b2565b60405163ffffffff9091168152602001610216565b610246610373366004611ff7565b6001600160a01b03165f9081526020819052604090205490565b6102996108bc565b6102996103a3366004611f78565b6108cd565b6102466103b6366004611ff7565b6108e2565b6102996108ec565b6103cb6108fc565b60405161021697969594939291906120a9565b60055461010090046001600160a01b03166102e1565b610246610402366004611fe0565b61093e565b61040f6109a7565b60405165ffffffffffff9091168152602001610216565b6102096109b0565b61024661043c366004611ff7565b6109bf565b61023261044f366004611f78565b6109ee565b610299610462366004612152565b6109fb565b6102996104753660046121a8565b610ab7565b610246610488366004611f78565b610bed565b61024661049b366004612211565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6104d86104d3366004612248565b610c2b565b60408051825165ffffffffffff1681526020928301516001600160d01b03169281019290925201610216565b610299610512366004611ff7565b610c48565b6060600380546105269061227c565b80601f01602080910402602001604051908101604052809291908181526020018280546105529061227c565b801561059d5780601f106105745761010080835404028352916020019161059d565b820191905f5260205f20905b81548152906001019060200180831161058057829003601f168201915b5050505050905090565b5f336105b4818585610c98565b60019150505b92915050565b5f336105cd858285610caa565b6105d8858585610d25565b506001949350505050565b5f6105ec610d82565b905090565b5f806105fb6109a7565b90508065ffffffffffff16831061063b57604051637669fc0f60e11b81526004810184905265ffffffffffff821660248201526044015b60405180910390fd5b61066461064784610eab565b6001600160a01b0386165f908152600a6020526040902090610ee1565b6001600160d01b0316949350505050565b61067d610f91565b610685610fc4565b565b6106913382611016565b50565b606061069e61104a565b65ffffffffffff166106ae6109a7565b65ffffffffffff16146106d4576040516301bfc1c560e61b815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b336107178183611054565b5050565b5f806107268661088d565b90508085111561074c5760405163fd9a760960e01b815260048101829052602401610632565b5f6107578787610bed565b905061076388876110c5565b6040516323e30c8b60e01b81527f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd9906001600160a01b038a16906323e30c8b906107bb9033908c908c9088908d908d906004016122b4565b6020604051808303815f875af11580156107d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fb919061230e565b146108235760405162678c5b60e81b81526001600160a01b0389166004820152602401610632565b5f6108388930610833858b612339565b610caa565b81158061084c57506001600160a01b038116155b15610869576108648961085f848a612339565b611016565b61087e565b6108738988611016565b61087e898284610d25565b50600198975050505050505050565b5f6001600160a01b03821630146108a4575f6105ba565b6002546105ba905f1961234c565b5f6105ba826110f9565b6108c4610f91565b6106855f61111a565b6108d8823383610caa565b6107178282611016565b5f6105ba82611173565b6108f4610f91565b610685611190565b5f6060805f805f606061090d6111cd565b6109156111fa565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f806109486109a7565b90508065ffffffffffff16831061098357604051637669fc0f60e11b81526004810184905265ffffffffffff82166024820152604401610632565b61099761098f84610eab565b600b90610ee1565b6001600160d01b03169392505050565b5f6105ec61104a565b6060600480546105269061227c565b6001600160a01b0381165f908152600a602052604081206109df90611227565b6001600160d01b031692915050565b5f336105b4818585610d25565b83421115610a1f57604051632341d78760e11b815260048101859052602401610632565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f90610a9890610a909060a00160405160208183030381529060405280519060200120611256565b858585611282565b9050610aa481876112ae565b610aae8188611054565b50505050505050565b83421115610adb5760405163313c898160e11b815260048101859052602401610632565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610b268c6001600160a01b03165f90815260086020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f610b8082611256565b90505f610b8f82878787611282565b9050896001600160a01b0316816001600160a01b031614610bd6576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610632565b610be18a8a8a610c98565b50505050505050505050565b5f6001600160a01b0383163014610c2257604051635ad3edc960e11b81526001600160a01b0384166004820152602401610632565b5f5b9392505050565b604080518082019091525f8082526020820152610c248383611300565b610c50610f91565b6001600160a01b038116610c7957604051631e4fbdf760e01b81525f6004820152602401610632565b6106918161111a565b5f610c24828461235f565b5f610c248284612386565b610ca58383836001611334565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610d1f5781811015610d1157604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610632565b610d1f84848484035f611334565b50505050565b6001600160a01b038316610d4e57604051634b637e8f60e11b81525f6004820152602401610632565b6001600160a01b038216610d775760405163ec442f0560e01b81525f6004820152602401610632565b610ca5838383611406565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610dda57507f000000000000000000000000000000000000000000000000000000000000000046145b15610e0457507f000000000000000000000000000000000000000000000000000000000000000090565b6105ec604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f65ffffffffffff821115610edd576040516306dfcc6560e41b81526030600482015260248101839052604401610632565b5090565b81545f9081816005811115610f3d575f610efa84611411565b610f04908561234c565b5f8881526020902090915081015465ffffffffffff9081169087161015610f2d57809150610f3b565b610f38816001612339565b92505b505b5f610f4a878785856114f5565b90508015610f8457610f6e87610f6160018461234c565b5f91825260209091200190565b54600160301b90046001600160d01b0316610f86565b5f5b979650505050505050565b6005546001600160a01b036101009091041633146106855760405163118cdaa760e01b8152336004820152602401610632565b610fcc611554565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821661103f57604051634b637e8f60e11b81525f6004820152602401610632565b610717825f83611406565b5f6105ec43610eab565b6001600160a01b038281165f8181526009602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610ca581836110c086611577565b611594565b6001600160a01b0382166110ee5760405163ec442f0560e01b81525f6004820152602401610632565b6107175f8383611406565b6001600160a01b0381165f908152600a60205260408120546105ba906116fd565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0381165f908152600860205260408120546105ba565b61119861172d565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ff93390565b60606105ec7f00000000000000000000000000000000000000000000000000000000000000006006611751565b60606105ec7f00000000000000000000000000000000000000000000000000000000000000006007611751565b80545f908015610c225761124083610f6160018461234c565b54600160301b90046001600160d01b0316610c24565b5f6105ba611262610d82565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f80611292888888886117fa565b9250925092506112a282826118c2565b50909695505050505050565b6001600160a01b0382165f908152600860205260409020805460018101909155818114610ca5576040516301d4b62360e61b81526001600160a01b038416600482015260248101829052604401610632565b604080518082019091525f80825260208201526001600160a01b0383165f908152600a60205260409020610c24908361197a565b6001600160a01b03841661135d5760405163e602df0560e01b81525f6004820152602401610632565b6001600160a01b03831661138657604051634a1406b160e11b81525f6004820152602401610632565b6001600160a01b038085165f9081526001602090815260408083209387168352929052208290558015610d1f57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516113f891815260200190565b60405180910390a350505050565b610ca58383836119e7565b5f815f0361142057505f919050565b5f600161142c84611a4d565b901c6001901b90506001818481611445576114456123a6565b048201901c9050600181848161145d5761145d6123a6565b048201901c90506001818481611475576114756123a6565b048201901c9050600181848161148d5761148d6123a6565b048201901c905060018184816114a5576114a56123a6565b048201901c905060018184816114bd576114bd6123a6565b048201901c905060018184816114d5576114d56123a6565b048201901c9050610c24818285816114ef576114ef6123a6565b04611ae0565b5f5b8183101561154c575f61150a8484611af5565b5f8781526020902090915065ffffffffffff86169082015465ffffffffffff16111561153857809250611546565b611543816001612339565b93505b506114f7565b509392505050565b60055460ff1661068557604051638dfc202b60e01b815260040160405180910390fd5b6001600160a01b0381165f908152602081905260408120546105ba565b816001600160a01b0316836001600160a01b0316141580156115b557505f81115b15610ca5576001600160a01b0383161561165c576001600160a01b0383165f908152600a6020526040812081906115f790610c8d6115f286611b0f565b611b42565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611651929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610ca5576001600160a01b0382165f908152600a60205260408120819061169490610c826115f286611b0f565b6001600160d01b031691506001600160d01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516116ee929190918252602082015260400190565b60405180910390a25050505050565b5f63ffffffff821115610edd576040516306dfcc6560e41b81526020600482015260248101839052604401610632565b60055460ff16156106855760405163d93c066560e01b815260040160405180910390fd5b606060ff831461176b5761176483611b7a565b90506105ba565b8180546117779061227c565b80601f01602080910402602001604051908101604052809291908181526020018280546117a39061227c565b80156117ee5780601f106117c5576101008083540402835291602001916117ee565b820191905f5260205f20905b8154815290600101906020018083116117d157829003601f168201915b505050505090506105ba565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561183357505f915060039050826118b8565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611884573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381166118af57505f9250600191508290506118b8565b92505f91508190505b9450945094915050565b5f8260038111156118d5576118d56123ba565b036118de575050565b60018260038111156118f2576118f26123ba565b036119105760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115611924576119246123ba565b036119455760405163fce698f760e01b815260048101829052602401610632565b6003826003811115611959576119596123ba565b03610717576040516335e2f38360e21b815260048101829052602401610632565b604080518082019091525f8082526020820152825f018263ffffffff16815481106119a7576119a76123ce565b5f9182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b6119f2838383611bb7565b6001600160a01b038316611a42575f611a0a60025490565b90506001600160d01b0380821115611a3f57604051630e58ae9360e11b81526004810183905260248101829052604401610632565b50505b610ca5838383611bca565b5f80608083901c15611a6157608092831c92015b604083901c15611a7357604092831c92015b602083901c15611a8557602092831c92015b601083901c15611a9757601092831c92015b600883901c15611aa957600892831c92015b600483901c15611abb57600492831c92015b600283901c15611acd57600292831c92015b600183901c156105ba5760010192915050565b5f818310611aee5781610c24565b5090919050565b5f611b0360028484186123e2565b610c2490848416612339565b5f6001600160d01b03821115610edd576040516306dfcc6560e41b815260d0600482015260248101839052604401610632565b5f80611b6d611b4f6109a7565b611b65611b5b88611227565b868863ffffffff16565b879190611c3f565b915091505b935093915050565b60605f611b8683611c4c565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b611bbf61172d565b610ca5838383611c73565b6001600160a01b038316611bec57611be9600b610c826115f284611b0f565b50505b6001600160a01b038216611c0e57611c0b600b610c8d6115f284611b0f565b50505b6001600160a01b038381165f90815260096020526040808220548584168352912054610ca592918216911683611594565b5f80611b6d858585611d99565b5f60ff8216601f8111156105ba57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b038316611c9d578060025f828254611c929190612339565b90915550611d0d9050565b6001600160a01b0383165f9081526020819052604090205481811015611cef5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610632565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216611d2957600280548290039055611d47565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d8c91815260200190565b60405180910390a3505050565b82545f9081908015611eb5575f611db587610f6160018561234c565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b031660208401529192509087161015611e0957604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603611e555784611e2c88610f6160018661234c565b80546001600160d01b0392909216600160301b0265ffffffffffff909216919091179055611ea5565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d555f8d81529190912094519151909216600160301b029216919091179101555b602001519250839150611b729050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160301b029190931617920191909155905081611b72565b5f81518084525f5b81811015611f3357602081850181015186830182015201611f17565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610c246020830184611f0f565b6001600160a01b0381168114610691575f80fd5b5f8060408385031215611f89575f80fd5b8235611f9481611f64565b946020939093013593505050565b5f805f60608486031215611fb4575f80fd5b8335611fbf81611f64565b92506020840135611fcf81611f64565b929592945050506040919091013590565b5f60208284031215611ff0575f80fd5b5035919050565b5f60208284031215612007575f80fd5b8135610c2481611f64565b5f805f805f60808688031215612026575f80fd5b853561203181611f64565b9450602086013561204181611f64565b935060408601359250606086013567ffffffffffffffff80821115612064575f80fd5b818801915088601f830112612077575f80fd5b813581811115612085575f80fd5b896020828501011115612096575f80fd5b9699959850939650602001949392505050565b60ff60f81b881681525f602060e0818401526120c860e084018a611f0f565b83810360408501526120da818a611f0f565b606085018990526001600160a01b038816608086015260a0850187905284810360c086015285518082528387019250908301905f5b8181101561212b5783518352928401929184019160010161210f565b50909c9b505050505050505050505050565b803560ff8116811461214d575f80fd5b919050565b5f805f805f8060c08789031215612167575f80fd5b863561217281611f64565b9550602087013594506040870135935061218e6060880161213d565b92506080870135915060a087013590509295509295509295565b5f805f805f805f60e0888a0312156121be575f80fd5b87356121c981611f64565b965060208801356121d981611f64565b955060408801359450606088013593506121f56080890161213d565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215612222575f80fd5b823561222d81611f64565b9150602083013561223d81611f64565b809150509250929050565b5f8060408385031215612259575f80fd5b823561226481611f64565b9150602083013563ffffffff8116811461223d575f80fd5b600181811c9082168061229057607f821691505b6020821081036122ae57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a06080820181905281018290525f828460c08401375f60c0848401015260c0601f19601f8501168301019050979650505050505050565b5f6020828403121561231e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105ba576105ba612325565b818103818111156105ba576105ba612325565b6001600160d01b0381811683821601908082111561237f5761237f612325565b5092915050565b6001600160d01b0382811682821603908082111561237f5761237f612325565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f826123fc57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220fb79f430afe9472ade3faf9915479ef696d74e57faca0ac5969ba027b6ebf2e064736f6c6343000815003354776f2042726f6b65204475646573204d616b6520546865697220466972737420436f696edec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724000000000000000000000000ac5c6a3b43fa92ccd296d37d646f9de89848038b
0xa2646970667358221220fb79f430afe9472ade3faf9915479ef696d74e57faca0ac5969ba027b6ebf2e064736f6c6343000815003354776f2042726f6b65204475646573204d616b6520546865697220466972737420436f696edec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724000000000000000000000000ac5c6a3b43fa92ccd296d37d646f9de89848038b
----Decoded View------------Arg [0] : initialOwner (address): 0xF430AFe9472aDE3faf9915479ef696D74e57FAcA
----Encoded View------------Arg [0] : 0x000000000000000000000000f430afe9472ade3faf9915479ef696d74e57faca