[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "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": false, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Snapshot", "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": "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": "amount", "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": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "snapshotId", "type": "uint256" } ], "name": "balanceOfAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "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": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint224", "name": "votes", "type": "uint224" } ], "internalType": "struct ERC20Votes.Checkpoint", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": "snapshot", "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": "uint256", "name": "snapshotId", "type": "uint256" } ], "name": "totalSupplyAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "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" } ]
6101406040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610120523480156200003757600080fd5b506040518060400160405280600d81526020016c109bdbdb951bdad95b958c948d609a1b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600d81526020016c109bdbdb951bdad95b958c948d609a1b815250604051806040016040528060048152602001632127a7a760e11b8152508160039080519060200190620000d492919062000a57565b508051620000ea90600490602084019062000a57565b5050506200010762000101620001cd60201b60201c565b620001d1565b6009805460ff60a01b19169055815160209283012081519183019190912060c082815260e08290524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8189018190528183019790975260608101959095526080808601939093523085830152805180860390920182529390920190925280519301929092209091526101005250620001c733620001b16012600a62000b57565b620001c1906329b9270262000c16565b62000223565b62000ca5565b3390565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200023a82826200023e60201b62000ea61760201c565b5050565b620002558282620002f560201b62000f361760201c565b6001600160e01b0362000269620003f28216565b1115620002d65760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084015b60405180910390fd5b620002ef600d6200102d620003f860201b17836200040f565b50505050565b6001600160a01b0382166200034d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620002cd565b6200035b60008383620005e5565b80600260008282546200036f919062000af3565b90915550506001600160a01b038216600090815260208190526040812080548392906200039e90849062000af3565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36200023a6000838362000658565b60025490565b600062000406828462000af3565b90505b92915050565b8254600090819080156200046d57856200042b60018362000c38565b815481106200044a57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b031662000470565b60005b6001600160e01b031692506200048783858760201c565b9150600081118015620004d757504386620004a460018462000c38565b81548110620004c357634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16145b156200055757620004f3826200067060201b620010391760201c565b866200050160018462000c38565b815481106200052057634e487b7160e01b600052603260045260246000fd5b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b03160217905550620005dc565b8560405180604001604052806200057943620006df60201b620010a61760201c565b63ffffffff1681526020016200059a856200067060201b620010391760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b620005f9600954600160a01b900460ff1690565b156200063b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401620002cd565b620006538383836200074660201b6200110b1760201c565b505050565b62000653838383620007b260201b620011531760201c565b60006001600160e01b03821115620006db5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401620002cd565b5090565b600063ffffffff821115620006db5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401620002cd565b6200075e8383836200065360201b6200088a1760201c565b6001600160a01b03831662000782576200077882620007fe565b6200065362000836565b6001600160a01b0382166200079c576200077883620007fe565b620007a783620007fe565b6200065382620007fe565b620007ca8383836200065360201b6200088a1760201c565b6001600160a01b038381166000908152600b6020526040808220548584168352912054620006539291821691168362000848565b6001600160a01b0381166000908152600560209081526040808320918390529091205462000833919062000983565b62000983565b50565b6200084660066200082d60025490565b565b816001600160a01b0316836001600160a01b0316141580156200086b5750600081115b1562000653576001600160a01b03831615620008f8576001600160a01b0383166000908152600c6020908152604082208291620008b59190620009d2901b6200118517856200040f565b91509150846001600160a01b0316600080516020620034258339815191528383604051620008ed929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161562000653576001600160a01b0382166000908152600c60209081526040822082916200093c9190620003f8901b6200102d17856200040f565b91509150836001600160a01b031660008051602062003425833981519152838360405162000974929190918252602082015260400190565b60405180910390a25050505050565b60006200098f620009e0565b9050806200099d84620009fe565b101562000653578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b600062000406828462000c38565b6000620009f9600862000a5360201b620011911760201c565b905090565b805460009062000a1057506000919050565b8154829062000a229060019062000c38565b8154811062000a4157634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b5490565b82805462000a659062000c52565b90600052602060002090601f01602090048101928262000a89576000855562000ad4565b82601f1062000aa457805160ff191683800117855562000ad4565b8280016001018555821562000ad4579182015b8281111562000ad457825182559160200191906001019062000ab7565b50620006db9291505b80821115620006db576000815560010162000add565b6000821982111562000b095762000b0962000c8f565b500190565b600181815b8085111562000b4f57816000190482111562000b335762000b3362000c8f565b8085161562000b4157918102915b93841c939080029062000b13565b509250929050565b60006200040660ff84168360008262000b735750600162000409565b8162000b825750600062000409565b816001811462000b9b576002811462000ba65762000bc6565b600191505062000409565b60ff84111562000bba5762000bba62000c8f565b50506001821b62000409565b5060208310610133831016604e8410600b841016171562000beb575081810a62000409565b62000bf7838362000b0e565b806000190482111562000c0e5762000c0e62000c8f565b029392505050565b600081600019048311821515161562000c335762000c3362000c8f565b500290565b60008282101562000c4d5762000c4d62000c8f565b500390565b600181811c9082168062000c6757607f821691505b6020821081141562000c8957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160a05160c05160e051610100516101205161273062000cf56000396000610c6c015260006114ee0152600061153d015260006115180152600061149c015260006114c501526127306000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063715018a61161011a578063981b24d0116100ad578063c3cda5201161007c578063c3cda52014610443578063d505accf14610456578063dd62ed3e14610469578063f1127ed8146104a2578063f2fde38b146104df57600080fd5b8063981b24d0146103f75780639ab24eb01461040a578063a457c2d71461041d578063a9059cbb1461043057600080fd5b80638da5cb5b116100e95780638da5cb5b146103c35780638e539e8c146103d457806395d89b41146103e75780639711715a146103ef57600080fd5b8063715018a61461038d57806379cc6790146103955780637ecebe00146103a85780638456cb59146103bb57600080fd5b80633f4ba83a116101925780635c19a95c116101615780635c19a95c146103175780635c975abb1461032a5780636fcfff451461033c57806370a082311461036457600080fd5b80633f4ba83a146102a357806342966c68146102ad5780634ee2cd7e146102c0578063587cde1e146102d357600080fd5b8063313ce567116101ce578063313ce567146102665780633644e51514610275578063395093511461027d5780633a46b1a81461029057600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd1461024157806323b872dd14610253575b600080fd5b6102086104f2565b60405161021591906125d8565b60405180910390f35b61023161022c366004612502565b610584565b6040519015158152602001610215565b6002545b604051908152602001610215565b61023161026136600461245e565b61059b565b60405160128152602001610215565b61024561064a565b61023161028b366004612502565b610659565b61024561029e366004612502565b610695565b6102ab61070f565b005b6102ab6102bb3660046125c0565b610743565b6102456102ce366004612502565b610750565b6102ff6102e1366004612412565b6001600160a01b039081166000908152600b60205260409020541690565b6040516001600160a01b039091168152602001610215565b6102ab610325366004612412565b6107a9565b600954600160a01b900460ff16610231565b61034f61034a366004612412565b6107b3565b60405163ffffffff9091168152602001610215565b610245610372366004612412565b6001600160a01b031660009081526020819052604090205490565b6102ab6107d5565b6102ab6103a3366004612502565b610809565b6102456103b6366004612412565b61088f565b6102ab6108ad565b6009546001600160a01b03166102ff565b6102456103e23660046125c0565b6108df565b61020861093b565b6102ab61094a565b6102456104053660046125c0565b61097c565b610245610418366004612412565b6109a7565b61023161042b366004612502565b610a3c565b61023161043e366004612502565b610ad5565b6102ab61045136600461252b565b610ae2565b6102ab610464366004612499565b610c18565b61024561047736600461242c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6104b56104b0366004612582565b610d7c565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610215565b6102ab6104ed366004612412565b610e0e565b606060038054610501906126af565b80601f016020809104026020016040519081016040528092919081815260200182805461052d906126af565b801561057a5780601f1061054f5761010080835404028352916020019161057a565b820191906000526020600020905b81548152906001019060200180831161055d57829003601f168201915b5050505050905090565b6000610591338484611195565b5060015b92915050565b60006105a88484846112b9565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156106325760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61063f8533858403611195565b506001949350505050565b6000610654611498565b905090565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610591918590610690908690612660565b611195565b60004382106106e65760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610629565b6001600160a01b0383166000908152600c60205260409020610708908361158b565b9392505050565b6009546001600160a01b031633146107395760405162461bcd60e51b81526004016106299061262b565b610741611664565b565b61074d3382611701565b50565b6001600160a01b03821660009081526005602052604081208190819061077790859061170b565b915091508161079e576001600160a01b0385166000908152602081905260409020546107a0565b805b95945050505050565b61074d3382611810565b6001600160a01b0381166000908152600c6020526040812054610595906110a6565b6009546001600160a01b031633146107ff5760405162461bcd60e51b81526004016106299061262b565b6107416000611889565b60006108158333610477565b9050818110156108735760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610629565b6108808333848403611195565b61088a8383611701565b505050565b6001600160a01b0381166000908152600a6020526040812054610595565b6009546001600160a01b031633146108d75760405162461bcd60e51b81526004016106299061262b565b6107416118db565b60004382106109305760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610629565b610595600d8361158b565b606060048054610501906126af565b6009546001600160a01b031633146109745760405162461bcd60e51b81526004016106299061262b565b61074d611963565b600080600061098c84600661170b565b915091508161099d5760025461099f565b805b949350505050565b6001600160a01b0381166000908152600c60205260408120548015610a29576001600160a01b0383166000908152600c602052604090206109e9600183612698565b81548110610a0757634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b0316610a2c565b60005b6001600160e01b03169392505050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610abe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610629565b610acb3385858403611195565b5060019392505050565b60006105913384846112b9565b83421115610b325760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610629565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610bac90610ba49060a001604051602081830303815290604052805190602001206119bd565b858585611a0b565b9050610bb781611a33565b8614610c055760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610629565b610c0f8188611810565b50505050505050565b83421115610c685760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610629565b60007f0000000000000000000000000000000000000000000000000000000000000000888888610c978c611a33565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610cf2826119bd565b90506000610d0282878787611a0b565b9050896001600160a01b0316816001600160a01b031614610d655760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610629565b610d708a8a8a611195565b50505050505050505050565b60408051808201909152600080825260208201526001600160a01b0383166000908152600c60205260409020805463ffffffff8416908110610dce57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b6009546001600160a01b03163314610e385760405162461bcd60e51b81526004016106299061262b565b6001600160a01b038116610e9d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610629565b61074d81611889565b610eb08282610f36565b6002546001600160e01b031015610f225760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610629565b610f30600d61102d83611a5b565b50505050565b6001600160a01b038216610f8c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610629565b610f9860008383611bfe565b8060026000828254610faa9190612660565b90915550506001600160a01b03821660009081526020819052604081208054839290610fd7908490612660565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361102960008383611c56565b5050565b60006107088284612660565b60006001600160e01b038211156110a25760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610629565b5090565b600063ffffffff8211156110a25760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610629565b6001600160a01b03831661112a5761112282611c61565b61088a611c93565b6001600160a01b0382166111415761112283611c61565b61114a83611c61565b61088a82611c61565b6001600160a01b038381166000908152600b602052604080822054858416835291205461088a92918216911683611ca1565b60006107088284612698565b5490565b6001600160a01b0383166111f75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610629565b6001600160a01b0382166112585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610629565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661131d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610629565b6001600160a01b03821661137f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610629565b61138a838383611bfe565b6001600160a01b038316600090815260208190526040902054818110156114025760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610629565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611439908490612660565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161148591815260200190565b60405180910390a3610f30848484611c56565b60007f00000000000000000000000000000000000000000000000000000000000000004614156114e757507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b8154600090815b818110156115fd5760006115a68284611dde565b9050848682815481106115c957634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff1611156115e9578092506115f7565b6115f4816001612660565b91505b50611592565b811561164f578461160f600184612698565b8154811061162d57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b0316611652565b60005b6001600160e01b031695945050505050565b600954600160a01b900460ff166116b45760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610629565b6009805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6110298282611df9565b600080600084116117575760405162461bcd60e51b815260206004820152601660248201527504552433230536e617073686f743a20696420697320360541b6044820152606401610629565b61175f611e11565b8411156117ae5760405162461bcd60e51b815260206004820152601d60248201527f4552433230536e617073686f743a206e6f6e6578697374656e742069640000006044820152606401610629565b60006117ba8486611e1c565b84549091508114156117d3576000809250925050611809565b60018460010182815481106117f857634e487b7160e01b600052603260045260246000fd5b906000526020600020015492509250505b9250929050565b6001600160a01b038281166000818152600b60208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610f30828483611ca1565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600954600160a01b900460ff16156119285760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610629565b6009805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586116e43390565b6000611973600880546001019055565b600061197d611e11565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb67816040516119b091815260200190565b60405180910390a1919050565b60006105956119ca611498565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611a1c87878787611efb565b91509150611a2981611fe8565b5095945050505050565b6001600160a01b0381166000908152600a602052604090208054600181018255905b50919050565b825460009081908015611ab45785611a74600183612698565b81548110611a9257634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b0316611ab7565b60005b6001600160e01b03169250611ad083858763ffffffff16565b9150600081118015611b1c57504386611aea600184612698565b81548110611b0857634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16145b15611b8a57611b2a82611039565b86611b36600184612698565b81548110611b5457634e487b7160e01b600052603260045260246000fd5b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b03160217905550611bf5565b856040518060400160405280611b9f436110a6565b63ffffffff168152602001611bb385611039565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b600954600160a01b900460ff1615611c4b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610629565b61088a83838361110b565b61088a838383611153565b6001600160a01b0381166000908152600560209081526040808320918390529091205461074d91906121e9565b6121e9565b6107416006611c8e60025490565b816001600160a01b0316836001600160a01b031614158015611cc35750600081115b1561088a576001600160a01b03831615611d51576001600160a01b0383166000908152600c602052604081208190611cfe9061118585611a5b565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611d46929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561088a576001600160a01b0382166000908152600c602052604081208190611d879061102d85611a5b565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611dcf929190918252602082015260400190565b60405180910390a25050505050565b6000611ded6002848418612678565b61070890848416612660565b611e038282612233565b610f30600d61118583611a5b565b600061065460085490565b8154600090611e2d57506000610595565b82546000905b80821015611e97576000611e478383611dde565b905084868281548110611e6a57634e487b7160e01b600052603260045260246000fd5b90600052602060002001541115611e8357809150611e91565b611e8e816001612660565b92505b50611e33565b600082118015611eda57508385611eaf600185612698565b81548110611ecd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154145b15611ef357611eea600183612698565b92505050610595565b509050610595565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611f325750600090506003611fdf565b8460ff16601b14158015611f4a57508460ff16601c14155b15611f5b5750600090506004611fdf565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611faf573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611fd857600060019250925050611fdf565b9150600090505b94509492505050565b600081600481111561200a57634e487b7160e01b600052602160045260246000fd5b14156120135750565b600181600481111561203557634e487b7160e01b600052602160045260246000fd5b14156120835760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610629565b60028160048111156120a557634e487b7160e01b600052602160045260246000fd5b14156120f35760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610629565b600381600481111561211557634e487b7160e01b600052602160045260246000fd5b141561216e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610629565b600481600481111561219057634e487b7160e01b600052602160045260246000fd5b141561074d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610629565b60006121f3611e11565b9050806121ff84612394565b101561088a578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b6001600160a01b0382166122935760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610629565b61229f82600083611bfe565b6001600160a01b038216600090815260208190526040902054818110156123135760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610629565b6001600160a01b0383166000908152602081905260408120838303905560028054849290612342908490612698565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361088a83600084611c56565b80546000906123a557506000919050565b815482906123b590600190612698565b815481106123d357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b919050565b80356001600160a01b03811681146123e557600080fd5b803560ff811681146123e557600080fd5b600060208284031215612423578081fd5b610708826123ea565b6000806040838503121561243e578081fd5b612447836123ea565b9150612455602084016123ea565b90509250929050565b600080600060608486031215612472578081fd5b61247b846123ea565b9250612489602085016123ea565b9150604084013590509250925092565b600080600080600080600060e0888a0312156124b3578283fd5b6124bc886123ea565b96506124ca602089016123ea565b955060408801359450606088013593506124e660808901612401565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215612514578182fd5b61251d836123ea565b946020939093013593505050565b60008060008060008060c08789031215612543578182fd5b61254c876123ea565b9550602087013594506040870135935061256860608801612401565b92506080870135915060a087013590509295509295509295565b60008060408385031215612594578182fd5b61259d836123ea565b9150602083013563ffffffff811681146125b5578182fd5b809150509250929050565b6000602082840312156125d1578081fd5b5035919050565b6000602080835283518082850152825b81811015612604578581018301518582016040015282016125e8565b818111156126155783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115612673576126736126e4565b500190565b60008261269357634e487b7160e01b81526012600452602481fd5b500490565b6000828210156126aa576126aa6126e4565b500390565b600181811c908216806126c357607f821691505b60208210811415611a5557634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fdfea26469706673582212207dc7c4988373535adc9f8ad5389f7e106008944b0215307059684393f5b037c364736f6c63430008040033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724