[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "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": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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": "BURNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "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": "MINTER_ROLE", "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": "_from", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burn", "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": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "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": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "_to", "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": "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": [ { "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": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "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" } ]
6101406040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610120523480156200003757600080fd5b5060405162003007380380620030078339810160408190526200005a916200048d565b8180604051806040016040528060018152602001603160f81b815250848481600590805190602001906200009092919062000330565b508051620000a690600690602084019062000330565b5050825160209384012082519284019290922060c083815260e08290524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818a018190528183019890985260608101959095526080808601939093523085830152805180860390920182529390920190925280519401939093209092526101005250508151620001745760405162461bcd60e51b815260206004820152600a602482015269456d707479206e616d6560b01b60448201526064015b60405180910390fd5b6000815111620001b65760405162461bcd60e51b815260206004820152600c60248201526b115b5c1d1e481cde5b589bdb60a21b60448201526064016200016b565b620001c3600033620001cb565b50506200054a565b620001e282826200020e60201b62000fa01760201c565b60008281526001602090815260409091206200020991839062000fae6200021e821b17901c565b505050565b6200021a82826200023e565b5050565b600062000235836001600160a01b038416620002de565b90505b92915050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200021a576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200029a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000818152600183016020526040812054620003275750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000238565b50600062000238565b8280546200033e90620004f7565b90600052602060002090601f016020900481019282620003625760008555620003ad565b82601f106200037d57805160ff1916838001178555620003ad565b82800160010185558215620003ad579182015b82811115620003ad57825182559160200191906001019062000390565b50620003bb929150620003bf565b5090565b5b80821115620003bb5760008155600101620003c0565b600082601f830112620003e857600080fd5b81516001600160401b038082111562000405576200040562000534565b604051601f8301601f19908116603f0116810190828211818310171562000430576200043062000534565b816040528381526020925086838588010111156200044d57600080fd5b600091505b8382101562000471578582018301518183018401529082019062000452565b83821115620004835760008385830101525b9695505050505050565b60008060408385031215620004a157600080fd5b82516001600160401b0380821115620004b957600080fd5b620004c786838701620003d6565b93506020850151915080821115620004de57600080fd5b50620004ed85828601620003d6565b9150509250929050565b600181811c908216806200050c57607f821691505b602082108114156200052e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160a05160c05160e0516101005161012051612a6d6200059a6000396000610e0201526000611222015260006112710152600061124c015260006111d0015260006111f90152612a6d6000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063a457c2d7116100bd578063d505accf1161008c578063d547741f11610071578063d547741f14610551578063dd62ed3e14610564578063f1127ed81461059d57600080fd5b8063d505accf14610517578063d53913931461052a57600080fd5b8063a457c2d7146104cb578063a9059cbb146104de578063c3cda520146104f1578063ca15c8731461050457600080fd5b806391d14854116101145780639ab24eb0116100f95780639ab24eb01461049d5780639dc29fac146104b0578063a217fddf146104c357600080fd5b806391d148541461045e57806395d89b411461049557600080fd5b806370a08231146103fc5780637ecebe00146104255780638e539e8c146104385780639010d07c1461044b57600080fd5b8063313ce567116101d85780633a46b1a8116101a7578063587cde1e1161018c578063587cde1e1461037d5780635c19a95c146103c15780636fcfff45146103d457600080fd5b80633a46b1a81461035757806340c10f191461036a57600080fd5b8063313ce5671461031a5780633644e5151461032957806336568abe14610331578063395093511461034457600080fd5b806323b872dd1161021457806323b872dd146102a8578063248a9ca3146102bb578063282c51f3146102de5780632f2ff15d1461030557600080fd5b806301ffc9a71461024657806306fdde031461026e578063095ea7b31461028357806318160ddd14610296575b600080fd5b61025961025436600461282c565b6105da565b60405190151581526020015b60405180910390f35b610276610605565b60405161026591906128d7565b61025961029136600461270c565b610697565b6004545b604051908152602001610265565b6102596102b6366004612666565b6106ad565b61029a6102c93660046127ce565b60009081526020819052604090206001015490565b61029a7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b6103186103133660046127e7565b610771565b005b60405160128152602001610265565b61029a610798565b61031861033f3660046127e7565b6107a7565b61025961035236600461270c565b6107c9565b61029a61036536600461270c565b610805565b61031861037836600461270c565b61087f565b6103a961038b366004612618565b6001600160a01b039081166000908152600860205260409020541690565b6040516001600160a01b039091168152602001610265565b6103186103cf366004612618565b6109a5565b6103e76103e2366004612618565b6109b2565b60405163ffffffff9091168152602001610265565b61029a61040a366004612618565b6001600160a01b031660009081526002602052604090205490565b61029a610433366004612618565b6109d4565b61029a6104463660046127ce565b6109f2565b6103a961045936600461280a565b610a4e565b61025961046c3660046127e7565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610276610a66565b61029a6104ab366004612618565b610a75565b6103186104be36600461270c565b610afc565b61029a600081565b6102596104d936600461270c565b610ba3565b6102596104ec36600461270c565b610c54565b6103186104ff366004612736565b610c61565b61029a6105123660046127ce565b610d97565b6103186105253660046126a2565b610dae565b61029a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61031861055f3660046127e7565b610f12565b61029a610572366004612633565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6105b06105ab36600461278e565b610f1c565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610265565b60006001600160e01b03198216635a05180f60e01b14806105ff57506105ff82610fc3565b92915050565b606060058054610614906129bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610640906129bd565b801561068d5780601f106106625761010080835404028352916020019161068d565b820191906000526020600020905b81548152906001019060200180831161067057829003601f168201915b5050505050905090565b60006106a4338484610ff8565b50600192915050565b60006106ba84848461111c565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156107595760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6107668533858403610ff8565b506001949350505050565b61077b82826111a6565b60008281526001602052604090206107939082610fae565b505050565b60006107a26111cc565b905090565b6107b182826112bf565b60008281526001602052604090206107939082611347565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916106a491859061080090869061290a565b610ff8565b60004382106108565760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610750565b6001600160a01b0383166000908152600960205260409020610878908361135c565b9392505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66108aa813361046c565b61091c5760405162461bcd60e51b815260206004820152603460248201527f4265616d546f6b656e2e6f6e6c79486173526f6c653a206d73672e73656e646560448201527f7220646f6573206e6f74206861766520726f6c650000000000000000000000006064820152608401610750565b6001600160a01b03831630141561099b5760405162461bcd60e51b815260206004820152602f60248201527f4265616d546f6b656e2e6d696e743a20756e61626c6520746f206d696e74207460448201527f6f6b656e7320746f20697473656c6600000000000000000000000000000000006064820152608401610750565b6107938383611419565b6109af33826114b6565b50565b6001600160a01b0381166000908152600960205260408120546105ff90611548565b6001600160a01b0381166000908152600760205260408120546105ff565b6000438210610a435760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564006044820152606401610750565b6105ff600a8361135c565b600082815260016020526040812061087890836115c8565b606060068054610614906129bd565b6001600160a01b0381166000908152600960205260408120548015610ae9576001600160a01b0383166000908152600960205260409020610ab7600183612963565b81548110610ac757610ac7612a34565b60009182526020909120015464010000000090046001600160e01b0316610aec565b60005b6001600160e01b03169392505050565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848610b27813361046c565b610b995760405162461bcd60e51b815260206004820152603460248201527f4265616d546f6b656e2e6f6e6c79486173526f6c653a206d73672e73656e646560448201527f7220646f6573206e6f74206861766520726f6c650000000000000000000000006064820152608401610750565b61079383836115d4565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610c3d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610750565b610c4a3385858403610ff8565b5060019392505050565b60006106a433848461111c565b83421115610cb15760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610750565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610d2b90610d239060a001604051602081830303815290604052805190602001206115ec565b85858561163a565b9050610d3681611662565b8614610d845760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610750565b610d8e81886114b6565b50505050505050565b60008181526001602052604081206105ff9061168a565b83421115610dfe5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610750565b60007f0000000000000000000000000000000000000000000000000000000000000000888888610e2d8c611662565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610e88826115ec565b90506000610e988287878761163a565b9050896001600160a01b0316816001600160a01b031614610efb5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610750565b610f068a8a8a610ff8565b50505050505050505050565b6107b18282611694565b60408051808201909152600080825260208201526001600160a01b0383166000908152600960205260409020805463ffffffff8416908110610f6057610f60612a34565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610faa82826116ba565b5050565b6000610878836001600160a01b038416611758565b60006001600160e01b03198216637965db0b60e01b14806105ff57506301ffc9a760e01b6001600160e01b03198316146105ff565b6001600160a01b03831661105a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610750565b6001600160a01b0382166110bb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610750565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821630141561119b5760405162461bcd60e51b815260206004820152603160248201527f4265616d546f6b656e2e5f7472616e736665723a207472616e7366657220746f60448201527f2073656c66206e6f7420616c6c6f7765640000000000000000000000000000006064820152608401610750565b6107938383836117a7565b6000828152602081905260409020600101546111c281336119aa565b61079383836116ba565b60007f000000000000000000000000000000000000000000000000000000000000000046141561121b57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6001600160a01b038116331461133d5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610750565b610faa8282611a28565b6000610878836001600160a01b038416611aa7565b8154600090815b818110156113c05760006113778284611b9a565b90508486828154811061138c5761138c612a34565b60009182526020909120015463ffffffff1611156113ac578092506113ba565b6113b781600161290a565b91505b50611363565b811561140457846113d2600184612963565b815481106113e2576113e2612a34565b60009182526020909120015464010000000090046001600160e01b0316611407565b60005b6001600160e01b031695945050505050565b6114238282611bb5565b6004546001600160e01b0310156114a25760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201527f766572666c6f77696e6720766f746573000000000000000000000000000000006064820152608401610750565b6114b0600a611c9c83611ca8565b50505050565b6001600160a01b03828116600081815260086020818152604080842080546002845282862054949093528787167fffffffffffffffffffffffff00000000000000000000000000000000000000008416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46114b0828483611e21565b600063ffffffff8211156115c45760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610750565b5090565b60006108788383611f5e565b6115de8282611f88565b6114b0600a6120dd83611ca8565b60006105ff6115f96111cc565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061164b878787876120e9565b91509150611658816121d6565b5095945050505050565b6001600160a01b03811660009081526007602052604090208054600181018255905b50919050565b60006105ff825490565b6000828152602081905260409020600101546116b081336119aa565b6107938383611a28565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610faa576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556117143390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205461179f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105ff565b5060006105ff565b6001600160a01b0383166118235760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610750565b6001600160a01b0382166118855760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610750565b6001600160a01b038316600090815260026020526040902054818110156119145760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610750565b6001600160a01b0380851660009081526002602052604080822085850390559185168152908120805484929061194b90849061290a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161199791815260200190565b60405180910390a36114b0848484612391565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610faa576119e6816001600160a01b031660146123c3565b6119f18360206123c3565b604051602001611a02929190612856565b60408051601f198184030181529082905262461bcd60e51b8252610750916004016128d7565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610faa576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008181526001830160205260408120548015611b90576000611acb600183612963565b8554909150600090611adf90600190612963565b9050818114611b44576000866000018281548110611aff57611aff612a34565b9060005260206000200154905080876000018481548110611b2257611b22612a34565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611b5557611b55612a1e565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105ff565b60009150506105ff565b6000611ba96002848418612922565b6108789084841661290a565b6001600160a01b038216611c0b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610750565b8060046000828254611c1d919061290a565b90915550506001600160a01b03821660009081526002602052604081208054839290611c4a90849061290a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610faa60008383612391565b6000610878828461290a565b825460009081908015611cf35785611cc1600183612963565b81548110611cd157611cd1612a34565b60009182526020909120015464010000000090046001600160e01b0316611cf6565b60005b6001600160e01b03169250611d0f83858763ffffffff16565b9150600081118015611d4d57504386611d29600184612963565b81548110611d3957611d39612a34565b60009182526020909120015463ffffffff16145b15611dad57611d5b8261256c565b86611d67600184612963565b81548110611d7757611d77612a34565b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b03160217905550611e18565b856040518060400160405280611dc243611548565b63ffffffff168152602001611dd68561256c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b50935093915050565b816001600160a01b0316836001600160a01b031614158015611e435750600081115b15610793576001600160a01b03831615611ed1576001600160a01b03831660009081526009602052604081208190611e7e906120dd85611ca8565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611ec6929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610793576001600160a01b03821660009081526009602052604081208190611f0790611c9c85611ca8565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611f4f929190918252602082015260400190565b60405180910390a25050505050565b6000826000018281548110611f7557611f75612a34565b9060005260206000200154905092915050565b6001600160a01b038216611fe85760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610750565b6001600160a01b0382166000908152600260205260409020548181101561205c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610750565b6001600160a01b038316600090815260026020526040812083830390556004805484929061208b908490612963565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361079383600084612391565b60006108788284612963565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561212057506000905060036121cd565b8460ff16601b1415801561213857508460ff16601c14155b1561214957506000905060046121cd565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561219d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166121c6576000600192509250506121cd565b9150600090505b94509492505050565b60008160048111156121ea576121ea612a08565b14156121f35750565b600181600481111561220757612207612a08565b14156122555760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610750565b600281600481111561226957612269612a08565b14156122b75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610750565b60038160048111156122cb576122cb612a08565b14156123245760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610750565b600481600481111561233857612338612a08565b14156109af5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610750565b6001600160a01b0383811660009081526008602052604080822054858416835291205461079392918216911683611e21565b606060006123d2836002612944565b6123dd90600261290a565b67ffffffffffffffff8111156123f5576123f5612a4a565b6040519080825280601f01601f19166020018201604052801561241f576020820181803683370190505b509050600360fc1b8160008151811061243a5761243a612a34565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061246957612469612a34565b60200101906001600160f81b031916908160001a905350600061248d846002612944565b61249890600161290a565b90505b600181111561251d577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106124d9576124d9612a34565b1a60f81b8282815181106124ef576124ef612a34565b60200101906001600160f81b031916908160001a90535060049490941c93612516816129a6565b905061249b565b5083156108785760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610750565b60006001600160e01b038211156115c45760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610750565b80356001600160a01b038116811461260257600080fd5b919050565b803560ff8116811461260257600080fd5b60006020828403121561262a57600080fd5b610878826125eb565b6000806040838503121561264657600080fd5b61264f836125eb565b915061265d602084016125eb565b90509250929050565b60008060006060848603121561267b57600080fd5b612684846125eb565b9250612692602085016125eb565b9150604084013590509250925092565b600080600080600080600060e0888a0312156126bd57600080fd5b6126c6886125eb565b96506126d4602089016125eb565b955060408801359450606088013593506126f060808901612607565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561271f57600080fd5b612728836125eb565b946020939093013593505050565b60008060008060008060c0878903121561274f57600080fd5b612758876125eb565b9550602087013594506040870135935061277460608801612607565b92506080870135915060a087013590509295509295509295565b600080604083850312156127a157600080fd5b6127aa836125eb565b9150602083013563ffffffff811681146127c357600080fd5b809150509250929050565b6000602082840312156127e057600080fd5b5035919050565b600080604083850312156127fa57600080fd5b8235915061265d602084016125eb565b6000806040838503121561281d57600080fd5b50508035926020909101359150565b60006020828403121561283e57600080fd5b81356001600160e01b03198116811461087857600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161288e81601785016020880161297a565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516128cb81602884016020880161297a565b01602801949350505050565b60208152600082518060208401526128f681604085016020870161297a565b601f01601f19169190910160400192915050565b6000821982111561291d5761291d6129f2565b500190565b60008261293f57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561295e5761295e6129f2565b500290565b600082821015612975576129756129f2565b500390565b60005b8381101561299557818101518382015260200161297d565b838111156114b05750506000910152565b6000816129b5576129b56129f2565b506000190190565b600181811c908216806129d157607f821691505b6020821081141561168457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea164736f6c6343000806000a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000044265616d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044245414d00000000000000000000000000000000000000000000000000000000