[ { "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": "DELEGATION_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "END_OF_YEAR_ONE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "YEAR_ONE_CAP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "", "type": "address" }, { "internalType": "uint32", "name": "", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint256", "name": "votes", "type": "uint256" } ], "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": "delegator", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getCurrentVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" } ], "name": "getDelegationDigest", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "getPermitDigest", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getPriorVotes", "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "permitNonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "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" } ]
60c06040523480156200001157600080fd5b506040518060400160405280601681526020017f5445535420426f6f2046696e616e636520546f6b656e000000000000000000008152506040518060400160405280600a815260200169544553545f424f4f464960b01b8152508181818181600390805190602001906200008792919062000218565b5080516200009d90600490602084019062000218565b50620000ab9150506200010d565b6080525050600a80546001600160a01b03191633908117909155604051909250600091507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a362000104426301e13380620002be565b60a05262000322565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666200013a6200017e565b805160209091012046604080516020810194909452830191909152606082015230608082015260a00160405160208183030381529060405280519060200120905090565b6060600380546200018f90620002e5565b80601f0160208091040260200160405190810160405280929190818152602001828054620001bd90620002e5565b80156200020e5780601f10620001e2576101008083540402835291602001916200020e565b820191906000526020600020905b815481529060010190602001808311620001f057829003601f168201915b5050505050905090565b8280546200022690620002e5565b90600052602060002090601f0160209004810192826200024a576000855562000295565b82601f106200026557805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029557825182559160200191906001019062000278565b50620002a3929150620002a7565b5090565b5b80821115620002a35760008155600101620002a8565b60008219821115620002e057634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002fa57607f821691505b602082108114156200031c57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161203c6200036b600039600081816104ca015261086a0152600081816102fb0152818161079e01528181610d2601528181610e590152611495015261203c6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063715018a61161011a578063b4b5ea57116100ad578063d505accf1161007c578063d505accf146104ec578063dd62ed3e146104ff578063e7a324dc14610538578063f1127ed81461055f578063f2fde38b146105b657600080fd5b8063b4b5ea571461048d578063b57862d9146104a0578063c3cda520146104b2578063c6857ebd146104c557600080fd5b806395d89b41116100e957806395d89b411461044c578063a457c2d714610454578063a9059cbb14610467578063ac9ebbd01461047a57600080fd5b8063715018a614610400578063782d6fe1146104085780637ecebe001461041b5780638da5cb5b1461043b57600080fd5b8063313ce56711610192578063587cde1e11610161578063587cde1e146103455780635c19a95c146103895780636fcfff451461039c57806370a08231146103d757600080fd5b8063313ce567146102e75780633644e515146102f6578063395093511461031d57806340c10f191461033057600080fd5b806320606b70116101ce57806320606b701461027357806323b872dd1461029a5780632c19e8b5146102ad57806330adf81f146102c057600080fd5b806306fdde0314610200578063095ea7b31461021e57806318160ddd14610241578063191d0ffc14610253575b600080fd5b6102086105c9565b6040516102159190611e24565b60405180910390f35b61023161022c366004611d14565b61065b565b6040519015158152602001610215565b6002545b604051908152602001610215565b610245610261366004611bd3565b60096020526000908152604090205481565b6102457f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6102316102a8366004611c21565b610672565b6102456102bb366004611c5d565b610721565b6102457f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60405160128152602001610215565b6102457f000000000000000000000000000000000000000000000000000000000000000081565b61023161032b366004611d14565b6107f3565b61034361033e366004611d14565b61082f565b005b610371610353366004611bd3565b6001600160a01b039081166000908152600560205260409020541690565b6040516001600160a01b039091168152602001610215565b610343610397366004611bd3565b610904565b6103c26103aa366004611bd3565b60076020526000908152604090205463ffffffff1681565b60405163ffffffff9091168152602001610215565b6102456103e5366004611bd3565b6001600160a01b031660009081526020819052604090205490565b610343610911565b610245610416366004611d14565b610994565b610245610429366004611bd3565b60086020526000908152604090205481565b600a546001600160a01b0316610371565b610208610c04565b610231610462366004611d14565b610c13565b610231610475366004611d14565b610cac565b610245610488366004611d3e565b610cb9565b61024561049b366004611bd3565b610d79565b6102456a084595161401484a00000081565b6103436104c0366004611d71565b610dee565b6102457f000000000000000000000000000000000000000000000000000000000000000081565b6103436104fa366004611caa565b61107e565b61024561050d366004611bee565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102457fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b61059a61056d366004611dc9565b60066020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b6040805163ffffffff9093168352602083019190915201610215565b6103436105c4366004611bd3565b611183565b6060600380546105d890611f5b565b80601f016020809104026020016040519081016040528092919081815260200182805461060490611f5b565b80156106515780601f1061062657610100808354040283529160200191610651565b820191906000526020600020905b81548152906001019060200180831161063457829003601f168201915b5050505050905090565b600061066833848461127d565b5060015b92915050565b600061067f8484846113a1565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107095760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610716853385840361127d565b506001949350505050565b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b038088169282019290925290851660608201526080810183905260a0810184905260c08101829052600090819060e00160405160208183030381529060405280519060200120905060007f0000000000000000000000000000000000000000000000000000000000000000826040516020016107cf929190611e09565b60408051808303601f19018152919052805160209091012098975050505050505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161066891859061082a908690611eae565b61127d565b33610842600a546001600160a01b031690565b6001600160a01b0316146108685760405162461bcd60e51b815260040161070090611e79565b7f00000000000000000000000000000000000000000000000000000000000000004210156108f6576a084595161401484a000000816108a660025490565b6108b09190611eae565b11156108f65760405162461bcd60e51b815260206004820152601560248201527406d696e7420776f756c64206578636565642063617605c1b6044820152606401610700565b61090082826113e3565b5050565b61090e3382611412565b50565b33610924600a546001600160a01b031690565b6001600160a01b03161461094a5760405162461bcd60e51b815260040161070090611e79565b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b6000438210610a005760405162461bcd60e51b815260206004820152603260248201527f455243323057697468566f74696e673a3a6765745072696f72566f7465733a206044820152711b9bdd081e595d0819195d195c9b5a5b995960721b6064820152608401610700565b6001600160a01b03831660009081526007602052604090205463ffffffff1680610a2e57600091505061066c565b6001600160a01b03841660009081526006602052604081208491610a53600185611f36565b63ffffffff90811682526020820192909252604001600020541611610abc576001600160a01b038416600090815260066020526040812090610a96600184611f36565b63ffffffff1663ffffffff1681526020019081526020016000206001015491505061066c565b6001600160a01b038416600090815260066020908152604080832083805290915290205463ffffffff16831015610af757600091505061066c565b600080610b05600184611f36565b90505b8163ffffffff168163ffffffff161115610bcd5760006002610b2a8484611f36565b610b349190611eee565b610b3e9083611f36565b6001600160a01b038816600090815260066020908152604080832063ffffffff8086168552908352928190208151808301909252805490931680825260019093015491810191909152919250871415610ba15760200151945061066c9350505050565b805163ffffffff16871115610bb857819350610bc6565b610bc3600183611f36565b92505b5050610b08565b506001600160a01b038516600090815260066020908152604080832063ffffffff9094168352929052206001015491505092915050565b6060600480546105d890611f5b565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610c955760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610700565b610ca2338585840361127d565b5060019392505050565b60006106683384846113a1565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038516918101919091526060810183905260808101829052600090819060a00160405160208183030381529060405280519060200120905060007f000000000000000000000000000000000000000000000000000000000000000082604051602001610d57929190611e09565b60408051808303601f1901815291905280516020909101209695505050505050565b6001600160a01b03811660009081526007602052604081205463ffffffff1680610da4576000610de7565b6001600160a01b038316600090815260066020526040812090610dc8600184611f36565b63ffffffff1663ffffffff168152602001908152602001600020600101545b9392505050565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b03881691810191909152606081018690526080810185905260009060a00160405160208183030381529060405280519060200120905060007f000000000000000000000000000000000000000000000000000000000000000082604051602001610e8a929190611e09565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa158015610ef5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610f725760405162461bcd60e51b815260206004820152603160248201527f455243323057697468566f74696e673a3a64656c656761746542795369673a20604482015270696e76616c6964207369676e617475726560781b6064820152608401610700565b6001600160a01b0381166000908152600860205260408120805491610f9683611f96565b919050558814610ffe5760405162461bcd60e51b815260206004820152602d60248201527f455243323057697468566f74696e673a3a64656c656761746542795369673a2060448201526c696e76616c6964206e6f6e636560981b6064820152608401610700565b864211156110685760405162461bcd60e51b815260206004820152603160248201527f455243323057697468566f74696e673a3a64656c656761746542795369673a206044820152701cda59db985d1d5c9948195e1c1a5c9959607a1b6064820152608401610700565b611072818a611412565b5050505b505050505050565b428410156110c05760405162461bcd60e51b815260206004820152600f60248201526e1c195c9b5a5d0e8e995e1c1a5c9959608a1b6044820152606401610700565b6001600160a01b038716600090815260096020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a91908661110d83611f96565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905061116e8882868686611491565b61117988888861127d565b5050505050505050565b33611196600a546001600160a01b031690565b6001600160a01b0316146111bc5760405162461bcd60e51b815260040161070090611e79565b6001600160a01b0381166112215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610700565b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166112df5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610700565b6001600160a01b0382166113405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610700565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6113ac8383836115c8565b6001600160a01b038084166000908152600560205260408082205485841683529120546113de92918216911683611796565b505050565b6113ed82826118f5565b6001600160a01b03808316600090815260056020526040812054610900921683611796565b6001600160a01b038281166000818152600560208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461148b828483611796565b50505050565b60007f0000000000000000000000000000000000000000000000000000000000000000856040516020016114c6929190611e09565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611531573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906115675750866001600160a01b0316816001600160a01b0316145b6115bf5760405162461bcd60e51b8152602060048201526024808201527f417263683a3a76616c69646174655369673a20696e76616c6964207369676e616044820152637475726560e01b6064820152608401610700565b50505050505050565b6001600160a01b03831661162c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610700565b6001600160a01b03821661168e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610700565b6001600160a01b038316600090815260208190526040902054818110156117065760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610700565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061173d908490611eae565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161178991815260200190565b60405180910390a361148b565b816001600160a01b0316836001600160a01b0316141580156117b85750600081115b156113de576001600160a01b0383161561185b576001600160a01b03831660009081526007602052604081205463ffffffff1690816117f857600061183b565b6001600160a01b03851660009081526006602052604081209061181c600185611f36565b63ffffffff1663ffffffff168152602001908152602001600020600101545b905060006118498483611f1f565b9050611857868484846119d4565b5050505b6001600160a01b038216156113de576001600160a01b03821660009081526007602052604081205463ffffffff1690816118965760006118d9565b6001600160a01b0384166000908152600660205260408120906118ba600185611f36565b63ffffffff1663ffffffff168152602001908152602001600020600101545b905060006118e78483611eae565b9050611076858484846119d4565b6001600160a01b03821661194b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610700565b806002600082825461195d9190611eae565b90915550506001600160a01b0382166000908152602081905260408120805483929061198a908490611eae565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60006119f8436040518060600160405280603f8152602001611fc8603f9139611b76565b905060008463ffffffff16118015611a5257506001600160a01b038516600090815260066020526040812063ffffffff831691611a36600188611f36565b63ffffffff908116825260208201929092526040016000205416145b15611a9b576001600160a01b03851660009081526006602052604081208391611a7c600188611f36565b63ffffffff168152602081019190915260400160002060010155611b2b565b60408051808201825263ffffffff838116825260208083018681526001600160a01b038a166000908152600683528581208a851682529092529390209151825463ffffffff191691161781559051600191820155611afa908590611ec6565b6001600160a01b0386166000908152600760205260409020805463ffffffff191663ffffffff929092169190911790555b60408051848152602081018490526001600160a01b038716917fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724910160405180910390a25050505050565b6000816401000000008410611b9e5760405162461bcd60e51b81526004016107009190611e24565b509192915050565b80356001600160a01b0381168114611bbd57600080fd5b919050565b803560ff81168114611bbd57600080fd5b600060208284031215611be557600080fd5b610de782611ba6565b60008060408385031215611c0157600080fd5b611c0a83611ba6565b9150611c1860208401611ba6565b90509250929050565b600080600060608486031215611c3657600080fd5b611c3f84611ba6565b9250611c4d60208501611ba6565b9150604084013590509250925092565b600080600080600060a08688031215611c7557600080fd5b611c7e86611ba6565b9450611c8c60208701611ba6565b94979496505050506040830135926060810135926080909101359150565b600080600080600080600060e0888a031215611cc557600080fd5b611cce88611ba6565b9650611cdc60208901611ba6565b95506040880135945060608801359350611cf860808901611bc2565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611d2757600080fd5b611d3083611ba6565b946020939093013593505050565b600080600060608486031215611d5357600080fd5b611d5c84611ba6565b95602085013595506040909401359392505050565b60008060008060008060c08789031215611d8a57600080fd5b611d9387611ba6565b95506020870135945060408701359350611daf60608801611bc2565b92506080870135915060a087013590509295509295509295565b60008060408385031215611ddc57600080fd5b611de583611ba6565b9150602083013563ffffffff81168114611dfe57600080fd5b809150509250929050565b61190160f01b81526002810192909252602282015260420190565b600060208083528351808285015260005b81811015611e5157858101830151858201604001528201611e35565b81811115611e63576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611ec157611ec1611fb1565b500190565b600063ffffffff808316818516808303821115611ee557611ee5611fb1565b01949350505050565b600063ffffffff80841680611f1357634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b600082821015611f3157611f31611fb1565b500390565b600063ffffffff83811690831681811015611f5357611f53611fb1565b039392505050565b600181811c90821680611f6f57607f821691505b60208210811415611f9057634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611faa57611faa611fb1565b5060010190565b634e487b7160e01b600052601160045260246000fdfe455243323057697468566f74696e673a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a264697066735822122092914ab9ab00135e516d1725ae217d34bccc2c6ae13b30df9c60c95b258b1a9464736f6c63430008070033