[ { "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": 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": [], "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": "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": [ { "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": "amount", "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": "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" } ]
6101406040523480156200001257600080fd5b50604051806040016040528060048152602001630a09e9e960e31b81525080604051806040016040528060018152602001603160f81b815250604051806040016040528060048152602001630a09e9e960e31b815250604051806040016040528060048152602001630a09e9e960e31b81525081600390816200009691906200082a565b506004620000a582826200082a565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c09485019091528151919096012090529290925261012052506200014490503362000176565b6200017033620001576012600a62000a09565b6200016a9066017e9d8602b40062000a1a565b620001c8565b62000a60565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620001df8282620001e360201b62000b681760201c565b5050565b620001fa82826200029a60201b62000bf81760201c565b6001600160e01b036200020e620003678216565b11156200027b5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084015b60405180910390fd5b62000294600962000cbf6200036d60201b178362000384565b50505050565b6001600160a01b038216620002f25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000272565b806002600082825462000306919062000a34565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620001df600083836200051b565b60025490565b60006200037b828462000a34565b90505b92915050565b82546000908190818115620003e457620003b387620003a560018562000a4a565b600091825260209091200190565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152620003f9565b60408051808201909152600080825260208201525b905080602001516001600160e01b031693506200041784868860201c565b9250600082118015620004305750805163ffffffff1643145b1562000487576200044c836200053360201b62000ccb1760201c565b6200045e88620003a560018662000a4a565b80546001600160e01b03929092166401000000000263ffffffff9092169190911790556200050c565b866040518060400160405280620004a943620005a260201b62000d381760201c565b63ffffffff168152602001620004ca866200053360201b62000ccb1760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b505050565b620005168383836200060960201b62000d9d1760201c565b60006001600160e01b038211156200059e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840162000272565b5090565b600063ffffffff8211156200059e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840162000272565b620006218383836200051660201b62000dcf1760201c565b6001600160a01b038381166000908152600760205260408082205485841683529120546200051692918216911683818314801590620006605750600081115b1562000516576001600160a01b03831615620006ed576001600160a01b038316600090815260086020908152604082208291620006aa919062000778901b62000dd4178562000384565b91509150846001600160a01b031660008051602062002ab98339815191528383604051620006e2929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161562000516576001600160a01b0382166000908152600860209081526040822082916200073191906200036d901b62000cbf178562000384565b91509150836001600160a01b031660008051602062002ab9833981519152838360405162000769929190918252602082015260400190565b60405180910390a25050505050565b60006200037b828462000a4a565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007b157607f821691505b602082108103620007d257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200051657600081815260208120601f850160051c81016020861015620008015750805b601f850160051c820191505b8181101562000822578281556001016200080d565b505050505050565b81516001600160401b0381111562000846576200084662000786565b6200085e816200085784546200079c565b84620007d8565b602080601f8311600181146200089657600084156200087d5750858301515b600019600386901b1c1916600185901b17855562000822565b600085815260208120601f198616915b82811015620008c757888601518255948401946001909101908401620008a6565b5085821015620008e65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200094d578160001904821115620009315762000931620008f6565b808516156200093f57918102915b93841c939080029062000911565b509250929050565b60008262000966575060016200037e565b8162000975575060006200037e565b81600181146200098e57600281146200099957620009b9565b60019150506200037e565b60ff841115620009ad57620009ad620008f6565b50506001821b6200037e565b5060208310610133831016604e8410600b8410161715620009de575081810a6200037e565b620009ea83836200090c565b806000190482111562000a015762000a01620008f6565b029392505050565b60006200037b60ff84168362000955565b80820281158282048414176200037e576200037e620008f6565b808201808211156200037e576200037e620008f6565b818103818111156200037e576200037e620008f6565b60805160a05160c05160e051610100516101205161200962000ab060003960006111ac015260006111fb015260006111d60152600061112f015260006111590152600061118301526120096000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063715018a6116100f9578063a457c2d711610097578063d505accf11610071578063d505accf146103b4578063dd62ed3e146103c7578063f1127ed8146103da578063f2fde38b1461041757600080fd5b8063a457c2d71461037b578063a9059cbb1461038e578063c3cda520146103a157600080fd5b80638da5cb5b116100d35780638da5cb5b1461033c5780638e539e8c1461034d57806395d89b41146103605780639ab24eb01461036857600080fd5b8063715018a61461030e57806379cc6790146103165780637ecebe001461032957600080fd5b80633950935111610166578063587cde1e11610140578063587cde1e146102665780635c19a95c146102aa5780636fcfff45146102bd57806370a08231146102e557600080fd5b8063395093511461022b5780633a46b1a81461023e57806342966c681461025157600080fd5b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101ef57806323b872dd14610201578063313ce567146102145780633644e51514610223575b600080fd5b6101b661042a565b6040516101c39190611cb5565b60405180910390f35b6101df6101da366004611d1f565b6104bc565b60405190151581526020016101c3565b6002545b6040519081526020016101c3565b6101df61020f366004611d49565b6104d6565b604051601281526020016101c3565b6101f36104fa565b6101df610239366004611d1f565b610509565b6101f361024c366004611d1f565b61052b565b61026461025f366004611d85565b6105aa565b005b610292610274366004611d9e565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b0390911681526020016101c3565b6102646102b8366004611d9e565b6105b7565b6102d06102cb366004611d9e565b6105c1565b60405163ffffffff90911681526020016101c3565b6101f36102f3366004611d9e565b6001600160a01b031660009081526020819052604090205490565b6102646105e3565b610264610324366004611d1f565b6105f7565b6101f3610337366004611d9e565b610610565b600a546001600160a01b0316610292565b6101f361035b366004611d85565b61062e565b6101b661068a565b6101f3610376366004611d9e565b610699565b6101df610389366004611d1f565b610720565b6101df61039c366004611d1f565b61079b565b6102646103af366004611dca565b6107a9565b6102646103c2366004611e22565b6108df565b6101f36103d5366004611e8c565b610a43565b6103ed6103e8366004611ebf565b610a6e565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101c3565b610264610425366004611d9e565b610af2565b60606003805461043990611eff565b80601f016020809104026020016040519081016040528092919081815260200182805461046590611eff565b80156104b25780601f10610487576101008083540402835291602001916104b2565b820191906000526020600020905b81548152906001019060200180831161049557829003601f168201915b5050505050905090565b6000336104ca818585610de0565b60019150505b92915050565b6000336104e4858285610f04565b6104ef858585610f78565b506001949350505050565b6000610504611122565b905090565b6000336104ca81858561051c8383610a43565b6105269190611f49565b610de0565b60004382106105815760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b6001600160a01b03831660009081526008602052604090206105a39083611249565b9392505050565b6105b43382611340565b50565b6105b4338261134a565b6001600160a01b0381166000908152600860205260408120546104d090610d38565b6105eb6113c3565b6105f5600061141d565b565b610602823383610f04565b61060c8282611340565b5050565b6001600160a01b0381166000908152600560205260408120546104d0565b600043821061067f5760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610578565b6104d0600983611249565b60606004805461043990611eff565b6001600160a01b038116600090815260086020526040812054801561070d576001600160a01b03831660009081526008602052604090206106db600183611f5c565b815481106106eb576106eb611f6f565b60009182526020909120015464010000000090046001600160e01b0316610710565b60005b6001600160e01b03169392505050565b6000338161072e8286610a43565b90508381101561078e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610578565b6104ef8286868403610de0565b6000336104ca818585610f78565b834211156107f95760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610578565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590526000906108739061086b9060a0016040516020818303038152906040528051906020012061146f565b8585856114bd565b905061087e816114e5565b86146108cc5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610578565b6108d6818861134a565b50505050505050565b8342111561092f5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610578565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861095e8c6114e5565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006109b98261146f565b905060006109c9828787876114bd565b9050896001600160a01b0316816001600160a01b031614610a2c5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610578565b610a378a8a8a610de0565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610ab257610ab2611f6f565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610afa6113c3565b6001600160a01b038116610b5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610578565b6105b48161141d565b610b728282610bf8565b6002546001600160e01b031015610be45760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610578565b610bf26009610cbf8361150d565b50505050565b6001600160a01b038216610c4e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610578565b8060026000828254610c609190611f49565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361060c60008383611661565b60006105a38284611f49565b60006001600160e01b03821115610d345760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610578565b5090565b600063ffffffff821115610d345760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610578565b6001600160a01b03838116600090815260076020526040808220548584168352912054610dcf9291821691168361166c565b505050565b60006105a38284611f5c565b6001600160a01b038316610e425760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610578565b6001600160a01b038216610ea35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610578565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610f108484610a43565b90506000198114610bf25781811015610f6b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610578565b610bf28484848403610de0565b6001600160a01b038316610fdc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610578565b6001600160a01b03821661103e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610578565b6001600160a01b038316600090815260208190526040902054818110156110b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610578565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610bf2848484611661565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561117b57507f000000000000000000000000000000000000000000000000000000000000000046145b156111a557507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b8154600090818160058111156112a3576000611264846117a9565b61126e9085611f5c565b600088815260209020909150869082015463ffffffff161115611293578091506112a1565b61129e816001611f49565b92505b505b808210156112f05760006112b78383611891565b600088815260209020909150869082015463ffffffff1611156112dc578091506112ea565b6112e7816001611f49565b92505b506112a3565b801561132a5761131386611305600184611f5c565b600091825260209091200190565b5464010000000090046001600160e01b031661132d565b60005b6001600160e01b03169695505050505050565b61060c82826118ac565b6001600160a01b038281166000818152600760208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610bf282848361166c565b600a546001600160a01b031633146105f55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610578565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006104d061147c611122565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006114ce878787876118c4565b915091506114db81611988565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b8254600090819081811561155a5761152a87611305600185611f5c565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b0316602082015261156f565b60408051808201909152600080825260208201525b905080602001516001600160e01b0316935061158f84868863ffffffff16565b92506000821180156115a75750805163ffffffff1643145b156115ec576115b583610ccb565b6115c488611305600186611f5c565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055611657565b86604051806040016040528061160143610d38565b63ffffffff16815260200161161586610ccb565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b610dcf838383610d9d565b816001600160a01b0316836001600160a01b03161415801561168e5750600081115b15610dcf576001600160a01b0383161561171c576001600160a01b038316600090815260086020526040812081906116c990610dd48561150d565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611711929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610dcf576001600160a01b0382166000908152600860205260408120819061175290610cbf8561150d565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161179a929190918252602082015260400190565b60405180910390a25050505050565b6000816000036117bb57506000919050565b600060016117c884611ad2565b901c6001901b905060018184816117e1576117e1611f85565b048201901c905060018184816117f9576117f9611f85565b048201901c9050600181848161181157611811611f85565b048201901c9050600181848161182957611829611f85565b048201901c9050600181848161184157611841611f85565b048201901c9050600181848161185957611859611f85565b048201901c9050600181848161187157611871611f85565b048201901c90506105a38182858161188b5761188b611f85565b04611b66565b60006118a06002848418611f9b565b6105a390848416611f49565b6118b68282611b7c565b610bf26009610dd48361150d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118fb575060009050600361197f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561194f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166119785760006001925092505061197f565b9150600090505b94509492505050565b600081600481111561199c5761199c611fbd565b036119a45750565b60018160048111156119b8576119b8611fbd565b03611a055760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610578565b6002816004811115611a1957611a19611fbd565b03611a665760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610578565b6003816004811115611a7a57611a7a611fbd565b036105b45760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610578565b600080608083901c15611ae757608092831c92015b604083901c15611af957604092831c92015b602083901c15611b0b57602092831c92015b601083901c15611b1d57601092831c92015b600883901c15611b2f57600892831c92015b600483901c15611b4157600492831c92015b600283901c15611b5357600292831c92015b600183901c156104d05760010192915050565b6000818310611b7557816105a3565b5090919050565b6001600160a01b038216611bdc5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610578565b6001600160a01b03821660009081526020819052604090205481811015611c505760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610578565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610dcf83600084611661565b600060208083528351808285015260005b81811015611ce257858101830151858201604001528201611cc6565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611d1a57600080fd5b919050565b60008060408385031215611d3257600080fd5b611d3b83611d03565b946020939093013593505050565b600080600060608486031215611d5e57600080fd5b611d6784611d03565b9250611d7560208501611d03565b9150604084013590509250925092565b600060208284031215611d9757600080fd5b5035919050565b600060208284031215611db057600080fd5b6105a382611d03565b803560ff81168114611d1a57600080fd5b60008060008060008060c08789031215611de357600080fd5b611dec87611d03565b95506020870135945060408701359350611e0860608801611db9565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215611e3d57600080fd5b611e4688611d03565b9650611e5460208901611d03565b95506040880135945060608801359350611e7060808901611db9565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611e9f57600080fd5b611ea883611d03565b9150611eb660208401611d03565b90509250929050565b60008060408385031215611ed257600080fd5b611edb83611d03565b9150602083013563ffffffff81168114611ef457600080fd5b809150509250929050565b600181811c90821680611f1357607f821691505b60208210810361150757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156104d0576104d0611f33565b818103818111156104d0576104d0611f33565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600082611fb857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220f4c35b4df12490510f8f7a106b713c051c34e8b49829dc20cae95f3642ea5f7a64736f6c63430008120033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724