false
false

Contract Address Details

0xe2aa35C2039Bd0Ff196A6Ef99523CC0D3972ae3e

Token
USD Coin (USDC)
Creator
0xfd9e63–19e533 at 0x483ad7–eb318b
Implementation
USDC | 0xa8d930800ce6255fae255cbb715e5048af9fd2c0
Balance
0 SX
Tokens
Fetching tokens...
Transactions
10,751 Transactions
Transfers
2 Transfers
Gas Used
547,960,871
Last Balance Update
2986381
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
USDCProxy




Optimization enabled
true
Compiler version
v0.8.2+commit.661d1103




Optimization runs
200
Verified at
2022-05-13T18:26:39.307858Z

contracts/child/ChildToken/USDC/USDC.sol

// SPDX-License-Identifier: MIT
pragma solidity 0.8.2;

import {ERC20PresetMinterPauserUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable.sol";

import {NativeMetaTransaction} from "../../../common/NativeMetaTransaction.sol";
import {ContextMixin} from "../../../common/ContextMixin.sol";

import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";

contract USDC is Initializable, UUPSUpgradeable, OwnableUpgradeable, ERC20PresetMinterPauserUpgradeable, NativeMetaTransaction, ContextMixin {

    function initialize() initializer public {
        ERC20PresetMinterPauserUpgradeable.initialize("USD Coin", "USDC");
        __Ownable_init();
        _initializeEIP712("USD Coin");
        __UUPSUpgradeable_init();
    }

    function _authorizeUpgrade(address) internal override onlyOwner {}

    // This is to support Native meta transactions
    // never use msg.sender directly, use _msgSender() instead
    function _msgSender() internal view override returns (address) {
        return ContextMixin.msgSender();
    }

    function decimals() public view virtual override returns (uint8) {
        return 6;
    }

    function burn(address account, uint256 amount) public virtual {
        burnFrom(account, amount);
    }

    function getVersion() pure public virtual returns (string memory) {
      return "V1";
    }

}
        

Contract ABI

[{"type":"event","name":"AdminChanged","inputs":[{"type":"address","name":"previousAdmin","internalType":"address","indexed":false},{"type":"address","name":"newAdmin","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"type":"address","name":"beacon","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"MetaTransactionExecuted","inputs":[{"type":"address","name":"userAddress","internalType":"address","indexed":false},{"type":"address","name":"relayerAddress","internalType":"address payable","indexed":false},{"type":"bytes","name":"functionSignature","internalType":"bytes","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"type":"address","name":"account","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32","indexed":true},{"type":"bytes32","name":"previousAdminRole","internalType":"bytes32","indexed":true},{"type":"bytes32","name":"newAdminRole","internalType":"bytes32","indexed":true}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32","indexed":true},{"type":"address","name":"account","internalType":"address","indexed":true},{"type":"address","name":"sender","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32","indexed":true},{"type":"address","name":"account","internalType":"address","indexed":true},{"type":"address","name":"sender","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"type":"address","name":"account","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"type":"address","name":"implementation","internalType":"address","indexed":true}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"DEFAULT_ADMIN_ROLE","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"ERC712_VERSION","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"MINTER_ROLE","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"PAUSER_ROLE","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"burn","inputs":[{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"burn","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"burnFrom","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"subtractedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"bytes","name":"","internalType":"bytes"}],"name":"executeMetaTransaction","inputs":[{"type":"address","name":"userAddress","internalType":"address"},{"type":"bytes","name":"functionSignature","internalType":"bytes"},{"type":"bytes32","name":"sigR","internalType":"bytes32"},{"type":"bytes32","name":"sigS","internalType":"bytes32"},{"type":"uint8","name":"sigV","internalType":"uint8"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getChainId","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"getDomainSeparator","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"nonce","internalType":"uint256"}],"name":"getNonce","inputs":[{"type":"address","name":"user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"getRoleAdmin","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getRoleMember","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32"},{"type":"uint256","name":"index","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getRoleMemberCount","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32"}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"getVersion","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"grantRole","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32"},{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"hasRole","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32"},{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"addedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[{"type":"string","name":"name","internalType":"string"},{"type":"string","name":"symbol","internalType":"string"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"mint","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"pause","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"paused","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"proxiableUUID","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceRole","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32"},{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"revokeRole","inputs":[{"type":"bytes32","name":"role","internalType":"bytes32"},{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"supportsInterface","inputs":[{"type":"bytes4","name":"interfaceId","internalType":"bytes4"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unpause","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"upgradeTo","inputs":[{"type":"address","name":"newImplementation","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"upgradeToAndCall","inputs":[{"type":"address","name":"newImplementation","internalType":"address"},{"type":"bytes","name":"data","internalType":"bytes"}]}]
              

Contract Creation Code

0x6080604052604051610772380380610772833981016040819052610022916102f7565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61040f565b60008051602061072b8339815191521461007757634e487b7160e01b600052600160045260246000fd5b6100838282600061008a565b5050610474565b610093836100f4565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26000825111806100d45750805b156100ef576100ed83836101b460201b6100291760201c565b505b505050565b610107816101e060201b6100551760201c565b61016e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b8061019360008051602061072b83398151915260001b6101e660201b61005b1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606101d9838360405180606001604052806027815260200161074b602791396101e9565b9392505050565b3b151590565b90565b6060833b6102485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610165565b600080856001600160a01b03168560405161026391906103c0565b600060405180830381855af49150503d806000811461029e576040519150601f19603f3d011682016040523d82523d6000602084013e6102a3565b606091505b5090925090506102b48282866102be565b9695505050505050565b606083156102cd5750816101d9565b8251156102dd5782518084602001fd5b8160405162461bcd60e51b815260040161016591906103dc565b60008060408385031215610309578182fd5b82516001600160a01b038116811461031f578283fd5b60208401519092506001600160401b038082111561033b578283fd5b818501915085601f83011261034e578283fd5b8151818111156103605761036061045e565b604051601f8201601f19908116603f011681019083821181831017156103885761038861045e565b816040528281528860208487010111156103a0578586fd5b6103b1836020830160208801610432565b80955050505050509250929050565b600082516103d2818460208701610432565b9190910192915050565b60006020825282518060208401526103fb816040850160208701610432565b601f01601f19169190910160400192915050565b60008282101561042d57634e487b7160e01b81526011600452602481fd5b500390565b60005b8381101561044d578181015183820152602001610435565b838111156100ed5750506000910152565b634e487b7160e01b600052604160045260246000fd5b6102a8806104836000396000f3fe60806040523661001357610011610017565b005b6100115b61002761002261005e565b610096565b565b606061004e838360405180606001604052806027815260200161024c602791396100ba565b9392505050565b3b151590565b90565b60006100917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100b5573d6000f35b3d6000fd5b6060833b61011e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161013991906101cc565b600060405180830381855af49150503d8060008114610174576040519150601f19603f3d011682016040523d82523d6000602084013e610179565b606091505b5091509150610189828286610193565b9695505050505050565b606083156101a257508161004e565b8251156101b25782518084602001fd5b8160405162461bcd60e51b815260040161011591906101e8565b600082516101de81846020870161021b565b9190910192915050565b600060208252825180602084015261020781604085016020870161021b565b601f01601f19169190910160400192915050565b60005b8381101561023657818101518382015260200161021e565b83811115610245576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209b8470f06e8a3960c912103fc2be177edaad69584ee3c7d2809ee737e79408e764736f6c63430008020033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000a8d930800ce6255fae255cbb715e5048af9fd2c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000

Deployed ByteCode

0x60806040526004361061025c5760003560e01c806352d1902d116101445780639dc29fac116100b6578063d53913931161007a578063d539139314610703578063d547741f14610737578063dd62ed3e14610757578063e63ab1e91461079e578063ed24911d146107c0578063f2fde38b146107d65761025c565b80639dc29fac1461066e578063a217fddf1461068e578063a457c2d7146106a3578063a9059cbb146106c3578063ca15c873146106e35761025c565b80638129fc1c116101085780638129fc1c146105bd5780638456cb59146105d25780638da5cb5b146105e75780639010d07c1461061957806391d148541461063957806395d89b41146106595761025c565b806352d1902d146105235780635c975abb1461053857806370a0823114610551578063715018a61461058857806379cc67901461059d5761025c565b80632f2ff15d116101dd57806339509351116101a1578063395093511461047b5780633f4ba83a1461049b57806340c10f19146104b057806342966c68146104d05780634cd88b76146104f05780634f1ef286146105105761025c565b80632f2ff15d146103ea578063313ce5671461040c5780633408e4701461042857806336568abe1461043b5780633659cfe61461045b5761025c565b80630f7e5970116102245780630f7e59701461031657806318160ddd1461034357806323b872dd14610363578063248a9ca3146103835780632d0335ab146103b35761025c565b806301ffc9a71461026157806306fdde0314610296578063095ea7b3146102b85780630c53c51c146102d85780630d8e6e2c146102eb575b600080fd5b34801561026d57600080fd5b5061028161027c366004612de5565b6107f6565b60405190151581526020015b60405180910390f35b3480156102a257600080fd5b506102ab610823565b60405161028d9190612f84565b3480156102c457600080fd5b506102816102d3366004612d49565b6108b7565b6102ab6102e6366004612cd0565b6108db565b3480156102f757600080fd5b50604080518082019091526002815261563160f01b60208201526102ab565b34801561032257600080fd5b506102ab604051806040016040528060018152602001603160f81b81525081565b34801561034f57600080fd5b50610161545b60405190815260200161028d565b34801561036f57600080fd5b5061028161037e366004612c49565b610acd565b34801561038f57600080fd5b5061035561039e366004612d72565b600090815260fb602052604090206001015490565b3480156103bf57600080fd5b506103556103ce366004612bfd565b6001600160a01b0316600090815261025a602052604090205490565b3480156103f657600080fd5b5061040a610405366004612da2565b610afd565b005b34801561041857600080fd5b506040516006815260200161028d565b34801561043457600080fd5b5046610355565b34801561044757600080fd5b5061040a610456366004612da2565b610b2f565b34801561046757600080fd5b5061040a610476366004612bfd565b610bbd565b34801561048757600080fd5b50610281610496366004612d49565b610c9d565b3480156104a757600080fd5b5061040a610cea565b3480156104bc57600080fd5b5061040a6104cb366004612d49565b610d80565b3480156104dc57600080fd5b5061040a6104eb366004612d72565b610e21565b3480156104fc57600080fd5b5061040a61050b366004612e0d565b610e32565b61040a61051e366004612c84565b610eb8565b34801561052f57600080fd5b50610355610f85565b34801561054457600080fd5b506101c35460ff16610281565b34801561055d57600080fd5b5061035561056c366004612bfd565b6001600160a01b0316600090815261015f602052604090205490565b34801561059457600080fd5b5061040a611038565b3480156105a957600080fd5b5061040a6105b8366004612d49565b61108b565b3480156105c957600080fd5b5061040a6110a7565b3480156105de57600080fd5b5061040a6111a0565b3480156105f357600080fd5b506097546001600160a01b03165b6040516001600160a01b03909116815260200161028d565b34801561062557600080fd5b50610601610634366004612dc4565b611234565b34801561064557600080fd5b50610281610654366004612da2565b61124d565b34801561066557600080fd5b506102ab611278565b34801561067a57600080fd5b5061040a610689366004612d49565b611288565b34801561069a57600080fd5b50610355600081565b3480156106af57600080fd5b506102816106be366004612d49565b611292565b3480156106cf57600080fd5b506102816106de366004612d49565b61133d565b3480156106ef57600080fd5b506103556106fe366004612d72565b611355565b34801561070f57600080fd5b506103557f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b34801561074357600080fd5b5061040a610752366004612da2565b61136d565b34801561076357600080fd5b50610355610772366004612c17565b6001600160a01b0391821660009081526101606020908152604080832093909416825291909152205490565b3480156107aa57600080fd5b506103556000805160206132a883398151915281565b3480156107cc57600080fd5b5061025954610355565b3480156107e257600080fd5b5061040a6107f1366004612bfd565b611395565b60006001600160e01b03198216635a05180f60e01b148061081b575061081b8261144c565b90505b919050565b606061016280546108339061318e565b80601f016020809104026020016040519081016040528092919081815260200182805461085f9061318e565b80156108ac5780601f10610881576101008083540402835291602001916108ac565b820191906000526020600020905b81548152906001019060200180831161088f57829003601f168201915b505050505090505b90565b6000806108c2611481565b90506108cf818585611490565b60019150505b92915050565b60408051606081810183526001600160a01b038816600081815261025a60209081529085902054845283015291810186905261091a87828787876115b5565b6109755760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084015b60405180910390fd5b6001600160a01b038716600090815261025a602052604090205461099a9060016116a5565b6001600160a01b038816600090815261025a60205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b906109eb90899033908a90612f58565b60405180910390a1600080306001600160a01b0316888a604051602001610a13929190612eac565b60408051601f1981840301815290829052610a2d91612e90565b6000604051808303816000865af19150503d8060008114610a6a576040519150601f19603f3d011682016040523d82523d6000602084013e610a6f565b606091505b509150915081610ac15760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000604482015260640161096c565b98975050505050505050565b600080610ad8611481565b9050610ae58582856116b1565b610af0858585611744565b60019150505b9392505050565b600082815260fb6020526040902060010154610b2081610b1b611481565b61191f565b610b2a8383611983565b505050565b610b37611481565b6001600160a01b0316816001600160a01b031614610baf5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161096c565b610bb982826119a6565b5050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610c065760405162461bcd60e51b815260040161096c90612f97565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c4f600080516020613288833981519152546001600160a01b031690565b6001600160a01b031614610c755760405162461bcd60e51b815260040161096c90612fe3565b610c7e816119c9565b60408051600080825260208201909252610c9a91839190611a12565b50565b600080610ca8611481565b6001600160a01b03808216600090815261016060209081526040808320938916835292905220549091506108cf9082908690610ce59087906130fd565b611490565b610d046000805160206132a8833981519152610654611481565b610d765760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e706175736500000000000000606482015260840161096c565b610d7e611b91565b565b610dac7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610654611481565b610e175760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b606482015260840161096c565b610bb98282611c2c565b610c9a610e2c611481565b82611d1a565b600054610100900460ff16610e4d5760005460ff1615610e51565b303b155b610e6d5760405162461bcd60e51b815260040161096c9061302f565b600054610100900460ff16158015610e98576000805460ff1961ff0019909116610100171660011790555b610ea28383611e77565b8015610b2a576000805461ff0019169055505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610f015760405162461bcd60e51b815260040161096c90612f97565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f4a600080516020613288833981519152546001600160a01b031690565b6001600160a01b031614610f705760405162461bcd60e51b815260040161096c90612fe3565b610f79826119c9565b610bb982826001611a12565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110255760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161096c565b5060008051602061328883398151915290565b611040611481565b6001600160a01b031661105b6097546001600160a01b031690565b6001600160a01b0316146110815760405162461bcd60e51b815260040161096c9061307d565b610d7e6000611eba565b61109d82611097611481565b836116b1565b610bb98282611d1a565b600054610100900460ff166110c25760005460ff16156110c6565b303b155b6110e25760405162461bcd60e51b815260040161096c9061302f565b600054610100900460ff1615801561110d576000805460ff1961ff0019909116610100171660011790555b611153604051806040016040528060088152602001672aa9a21021b7b4b760c11b815250604051806040016040528060048152602001635553444360e01b815250610e32565b61115b611f0c565b611184604051806040016040528060088152602001672aa9a21021b7b4b760c11b815250611f3b565b61118c611fbf565b8015610c9a576000805461ff001916905550565b6111ba6000805160206132a8833981519152610654611481565b61122c5760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f207061757365000000000000000000606482015260840161096c565b610d7e611fe6565b600082815261012d60205260408120610af69083612064565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606061016380546108339061318e565b610bb9828261108b565b60008061129d611481565b6001600160a01b0380821660009081526101606020908152604080832093891683529290522054909150838110156113255760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161096c565b6113328286868403611490565b506001949350505050565b600080611348611481565b90506108cf818585611744565b600081815261012d6020526040812061081b90612070565b600082815260fb602052604090206001015461138b81610b1b611481565b610b2a83836119a6565b61139d611481565b6001600160a01b03166113b86097546001600160a01b031690565b6001600160a01b0316146113de5760405162461bcd60e51b815260040161096c9061307d565b6001600160a01b0381166114435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161096c565b610c9a81611eba565b60006001600160e01b03198216637965db0b60e01b148061081b57506301ffc9a760e01b6001600160e01b031983161461081b565b600061148b61207a565b905090565b6001600160a01b0383166114f25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161096c565b6001600160a01b0382166115535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161096c565b6001600160a01b038381166000818152610160602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03861661161b5760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b606482015260840161096c565b600161162e611629876120d6565b612153565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa15801561167c573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000610af682846130fd565b6001600160a01b0383811660009081526101606020908152604080832093861683529290522054600019811461173e57818110156117315760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161096c565b61173e8484848403611490565b50505050565b6001600160a01b0383166117a85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161096c565b6001600160a01b03821661180a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161096c565b611815838383612184565b6001600160a01b038316600090815261015f60205260409020548181101561188e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161096c565b6001600160a01b03808516600090815261015f60205260408082208585039055918516815290812080548492906118c69084906130fd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161191291815260200190565b60405180910390a361173e565b611929828261124d565b610bb957611941816001600160a01b0316601461218f565b61194c83602061218f565b60405160200161195d929190612ee3565b60408051601f198184030181529082905262461bcd60e51b825261096c91600401612f84565b61198d8282612371565b600082815261012d60205260409020610b2a90826123f8565b6119b0828261240d565b600082815261012d60205260409020610b2a9082612492565b6119d1611481565b6001600160a01b03166119ec6097546001600160a01b031690565b6001600160a01b031614610c9a5760405162461bcd60e51b815260040161096c9061307d565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611a4a57611a45836124a7565b610b2a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a8357600080fd5b505afa925050508015611ab3575060408051601f3d908101601f19168201909252611ab091810190612d8a565b60015b611b165760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161096c565b6000805160206132888339815191528114611b855760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161096c565b50610b2a838383612543565b6101c35460ff16611bdb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161096c565b6101c3805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611c0f611481565b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216611c825760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161096c565b611c8e60008383612184565b806101616000828254611ca191906130fd565b90915550506001600160a01b038216600090815261015f602052604081208054839290611ccf9084906130fd565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610bb9565b6001600160a01b038216611d7a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161096c565b611d8682600083612184565b6001600160a01b038216600090815261015f602052604090205481811015611dfb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161096c565b6001600160a01b038316600090815261015f6020526040812083830390556101618054849290611e2c908490613134565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610b2a565b600054610100900460ff16611e9e5760405162461bcd60e51b815260040161096c906130b2565b611ea88282612568565b611eb06125b8565b610bb982826125ec565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611f335760405162461bcd60e51b815260040161096c906130b2565b610d7e61266b565b600054610100900460ff16611f565760005460ff1615611f5a565b303b155b611f765760405162461bcd60e51b815260040161096c9061302f565b600054610100900460ff16158015611fa1576000805460ff1961ff0019909116610100171660011790555b611faa826126a2565b8015610bb9576000805461ff00191690555050565b600054610100900460ff16610d7e5760405162461bcd60e51b815260040161096c906130b2565b6101c35460ff161561202d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161096c565b6101c3805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c0f611481565b6000610af68383612744565b600061081b825490565b6000333014156120d157600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506108b49050565b503390565b60006040518060800160405280604381526020016131f66043913980516020918201208351848301516040808701518051908601209051612136950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600061215f6102595490565b60405161190160f01b6020820152602281019190915260428101839052606201612136565b610b2a83838361277c565b6060600061219e836002613115565b6121a99060026130fd565b67ffffffffffffffff8111156121cf57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156121f9576020820181803683370190505b509050600360fc1b8160008151811061222257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061225f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000612283846002613115565b61228e9060016130fd565b90505b6001811115612322576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106122d057634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106122f457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361231b81613177565b9050612291565b508315610af65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161096c565b61237b828261124d565b610bb957600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff191660011790556123b4611481565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610af6836001600160a01b0384166127e3565b612417828261124d565b15610bb957600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff1916905561244e611481565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000610af6836001600160a01b038416612832565b6001600160a01b0381163b6125145760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161096c565b60008051602061328883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61254c8361294f565b6000825111806125595750805b15610b2a5761173e838361298f565b600054610100900460ff1661258f5760405162461bcd60e51b815260040161096c906130b2565b81516125a390610162906020850190612ac6565b508051610b2a90610163906020840190612ac6565b600054610100900460ff166125df5760405162461bcd60e51b815260040161096c906130b2565b6101c3805460ff19169055565b600054610100900460ff166126135760405162461bcd60e51b815260040161096c906130b2565b6126256000612620611481565b612a83565b6126517f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6612620611481565b610bb96000805160206132a8833981519152612620611481565b600054610100900460ff166126925760405162461bcd60e51b815260040161096c906130b2565b610d7e61269d611481565b611eba565b6040518060800160405280604f8152602001613239604f9139805160209182012082519282019290922060408051808201825260018152603160f81b90840152805180840194909452838101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401523060808401524660a0808501919091528151808503909101815260c09093019052815191012061025955565b600082600001828154811061276957634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6101c35460ff1615610b2a5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b606482015260840161096c565b600081815260018301602052604081205461282a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108d5565b5060006108d5565b60008181526001830160205260408120548015612945576000612856600183613134565b855490915060009061286a90600190613134565b90508181146128eb57600086600001828154811061289857634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106128c957634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061290a57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108d5565b60009150506108d5565b612958816124a7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6129f75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161096c565b600080846001600160a01b031684604051612a129190612e90565b600060405180830381855af49150503d8060008114612a4d576040519150601f19603f3d011682016040523d82523d6000602084013e612a52565b606091505b5091509150612a7a82826040518060600160405280602781526020016132c860279139612a8d565b95945050505050565b610bb98282611983565b60608315612a9c575081610af6565b825115612aac5782518084602001fd5b8160405162461bcd60e51b815260040161096c9190612f84565b828054612ad29061318e565b90600052602060002090601f016020900481019282612af45760008555612b3a565b82601f10612b0d57805160ff1916838001178555612b3a565b82800160010185558215612b3a579182015b82811115612b3a578251825591602001919060010190612b1f565b50612b46929150612b4a565b5090565b5b80821115612b465760008155600101612b4b565b80356001600160a01b038116811461081e57600080fd5b600082601f830112612b86578081fd5b813567ffffffffffffffff80821115612ba157612ba16131df565b604051601f8301601f19908116603f01168101908282118183101715612bc957612bc96131df565b81604052838152866020858801011115612be1578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215612c0e578081fd5b610af682612b5f565b60008060408385031215612c29578081fd5b612c3283612b5f565b9150612c4060208401612b5f565b90509250929050565b600080600060608486031215612c5d578081fd5b612c6684612b5f565b9250612c7460208501612b5f565b9150604084013590509250925092565b60008060408385031215612c96578182fd5b612c9f83612b5f565b9150602083013567ffffffffffffffff811115612cba578182fd5b612cc685828601612b76565b9150509250929050565b600080600080600060a08688031215612ce7578081fd5b612cf086612b5f565b9450602086013567ffffffffffffffff811115612d0b578182fd5b612d1788828901612b76565b9450506040860135925060608601359150608086013560ff81168114612d3b578182fd5b809150509295509295909350565b60008060408385031215612d5b578182fd5b612d6483612b5f565b946020939093013593505050565b600060208284031215612d83578081fd5b5035919050565b600060208284031215612d9b578081fd5b5051919050565b60008060408385031215612db4578182fd5b82359150612c4060208401612b5f565b60008060408385031215612dd6578182fd5b50508035926020909101359150565b600060208284031215612df6578081fd5b81356001600160e01b031981168114610af6578182fd5b60008060408385031215612e1f578182fd5b823567ffffffffffffffff80821115612e36578384fd5b612e4286838701612b76565b93506020850135915080821115612e57578283fd5b50612cc685828601612b76565b60008151808452612e7c81602086016020860161314b565b601f01601f19169290920160200192915050565b60008251612ea281846020870161314b565b9190910192915050565b60008351612ebe81846020880161314b565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612f1b81601785016020880161314b565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612f4c81602884016020880161314b565b01602801949350505050565b6001600160a01b03848116825283166020820152606060408201819052600090612a7a90830184612e64565b600060208252610af66020830184612e64565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008219821115613110576131106131c9565b500190565b600081600019048311821515161561312f5761312f6131c9565b500290565b600082821015613146576131466131c9565b500390565b60005b8381101561316657818101518382015260200161314e565b8381111561173e5750506000910152565b600081613186576131866131c9565b506000190190565b6002810460018216806131a257607f821691505b602082108114156131c357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d8cbe8136f0771349d0efbc11f39a86d620a312cd4d1fafdcd2f13f2fd4c6d3b64736f6c63430008020033