ETH Price: $3,413.92 (+1.43%)

Token

Monkeys George (MONKEYS)
 

Overview

Max Total Supply

1,000,000,000 MONKEYS

Holders

450 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.00000001 MONKEYS

Value
$0.00
0x189c2e1c4cd21c271a37c6605d677ff529b81ac0
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Monkeys George ($MONKEYS) - a colorful and humorous adventure in the world of cryptocurrency. With Monkeys George, bring the joy and excitement of the meme world to the world of digital currencies.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Monkeys

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Monkey.sol
// SPDX-License-Identifier: NONE

pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract Monkeys is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isWl;
    mapping(address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 1;
    uint256 private _initialSellTax = 1;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Monkeys George";
    string private constant _symbol = unicode"MONKEYS";
    uint256 public _maxTxAmount = 50000000 * 10**_decimals;
    uint256 public _maxWalletSize = 60000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 6000000 * 10**_decimals;
    uint256 public _maxTaxSwap = 6000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(0x1c6e36B56127Eff8EC1eEAdEeDFF457E6F01E7cE);
        _balances[_msgSender()] = _tTotal;
        _isWl[owner()] = true;
        _isWl[address(this)] = true;
        _isWl[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = _beforeTransfer(from, to, amount);
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _beforeTransfer(
        address from,
        address to,
        uint256 amount
    ) private returns (uint256 taxAmount) {
        if (_isWl[from] || _isWl[to]) {
            taxAmount = 0;
        } else {
            if (from != owner() && to != owner()) {
                require(!bots[from] && !bots[to]);

                if (transferDelayEnabled) {
                    if (
                        to != address(uniswapV2Router) &&
                        to != address(uniswapV2Pair)
                    ) {
                        require(
                            _holderLastTransferTimestamp[tx.origin] <
                                block.number,
                            "Only one transfer per block allowed."
                        );
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }

                if (
                    from == uniswapV2Pair &&
                    to != address(uniswapV2Router) &&
                    !_isWl[to]
                ) {
                    require(
                        amount <= _maxTxAmount,
                        "Exceeds the _maxTxAmount."
                    );
                    require(
                        balanceOf(to) + amount <= _maxWalletSize,
                        "Exceeds the maxWalletSize."
                    );
                }

                taxAmount = amount.mul(_initialBuyTax).div(100);
                if (to == uniswapV2Pair && from != address(this)) {
                    taxAmount = amount.mul(_initialSellTax).div(100);
                }
            }
        }

        if (taxAmount > 0) {
            _balances[address(_taxWallet)] = _balances[address(_taxWallet)].add(
                taxAmount
            );
            emit Transfer(from, address(_taxWallet), taxAmount);
        }
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function setTax(uint256 _taxtBuy, uint256 _taxSell) external onlyOwner {
        _initialBuyTax = _taxtBuy;
        _initialSellTax = _taxSell;
    }

    function setWl(address[] memory batch) external onlyOwner {
        for (uint8 i = 0; i < batch.length; i++) {
            _isWl[batch[i]] = true;
        }
    }

    function removeWl(address _address) external onlyOwner {
        _isWl[_address] = false;
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint256 i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeWl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxtBuy","type":"uint256"},{"internalType":"uint256","name":"_taxSell","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"batch","type":"address[]"}],"name":"setWl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526000600660006101000a81548160ff021916908315150217905550600160075560016008556008600a62000039919062000614565b6302faf0806200004a919062000665565b6009556008600a6200005d919062000614565b63039387006200006e919062000665565b600a556008600a62000081919062000614565b625b8d8062000091919062000665565b600b556008600a620000a4919062000614565b625b8d80620000b4919062000665565b600c556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff021916908315150217905550348015620000fa57600080fd5b5060006200010d6200044960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350731c6e36b56127eff8ec1eeadeedff457e6f01e7ce600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000210919062000614565b633b9aca0062000221919062000665565b60016000620002356200044960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002896200045160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003bc6200044960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200041b919062000614565b633b9aca006200042c919062000665565b6040516200043b9190620006c1565b60405180910390a3620006de565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200050857808604811115620004e057620004df6200047a565b5b6001851615620004f05780820291505b80810290506200050085620004a9565b9450620004c0565b94509492505050565b600082620005235760019050620005f6565b81620005335760009050620005f6565b81600181146200054c576002811462000557576200058d565b6001915050620005f6565b60ff8411156200056c576200056b6200047a565b5b8360020a9150848211156200058657620005856200047a565b5b50620005f6565b5060208310610133831016604e8410600b8410161715620005c75782820a905083811115620005c157620005c06200047a565b5b620005f6565b620005d68484846001620004b6565b92509050818404811115620005f057620005ef6200047a565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200062182620005fd565b91506200062e8362000607565b92506200065d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000511565b905092915050565b60006200067282620005fd565b91506200067f83620005fd565b92508282026200068f81620005fd565b91508282048414831517620006a957620006a86200047a565b5b5092915050565b620006bb81620005fd565b82525050565b6000602082019050620006d86000830184620006b0565b92915050565b6132e980620006ee6000396000f3fe60806040526004361061014f5760003560e01c806371a8696b116100b6578063a9059cbb1161006f578063a9059cbb14610479578063bf474bed146104b6578063c876d0b9146104e1578063c9567bf91461050c578063d34628cc14610523578063dd62ed3e1461054c57610156565b806371a8696b1461038d578063751039fc146103b65780637d1db4a5146103cd5780638da5cb5b146103f85780638f9a55c01461042357806395d89b411461044e57610156565b806331c2d8471161010857806331c2d847146102815780633bbac579146102aa57806365ff2010146102e7578063667f65261461031057806370a0823114610339578063715018a61461037657610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610589565b60405161017d91906123d1565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061249b565b6105c6565b6040516101ba91906124f6565b60405180910390f35b3480156101cf57600080fd5b506101d86105e4565b6040516101e59190612520565b60405180910390f35b3480156101fa57600080fd5b506102036105ea565b6040516102109190612520565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061253b565b61060e565b60405161024d91906124f6565b60405180910390f35b34801561026257600080fd5b5061026b6106e7565b60405161027891906125aa565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a3919061270d565b6106f0565b005b3480156102b657600080fd5b506102d160048036038101906102cc9190612756565b61081a565b6040516102de91906124f6565b60405180910390f35b3480156102f357600080fd5b5061030e6004803603810190610309919061270d565b610870565b005b34801561031c57600080fd5b5061033760048036038101906103329190612783565b6109a0565b005b34801561034557600080fd5b50610360600480360381019061035b9190612756565b610a47565b60405161036d9190612520565b60405180910390f35b34801561038257600080fd5b5061038b610a90565b005b34801561039957600080fd5b506103b460048036038101906103af9190612756565b610be3565b005b3480156103c257600080fd5b506103cb610cd3565b005b3480156103d957600080fd5b506103e2610e1e565b6040516103ef9190612520565b60405180910390f35b34801561040457600080fd5b5061040d610e24565b60405161041a91906127d2565b60405180910390f35b34801561042f57600080fd5b50610438610e4d565b6040516104459190612520565b60405180910390f35b34801561045a57600080fd5b50610463610e53565b60405161047091906123d1565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b919061249b565b610e90565b6040516104ad91906124f6565b60405180910390f35b3480156104c257600080fd5b506104cb610eae565b6040516104d89190612520565b60405180910390f35b3480156104ed57600080fd5b506104f6610eb4565b60405161050391906124f6565b60405180910390f35b34801561051857600080fd5b50610521610ec7565b005b34801561052f57600080fd5b5061054a6004803603810190610545919061270d565b611343565b005b34801561055857600080fd5b50610573600480360381019061056e91906127ed565b61146d565b6040516105809190612520565b60405180910390f35b60606040518060400160405280600e81526020017f4d6f6e6b6579732047656f726765000000000000000000000000000000000000815250905090565b60006105da6105d36114f4565b84846114fc565b6001905092915050565b600c5481565b60006008600a6105fa919061298f565b633b9aca0061060991906129da565b905090565b600061061b8484846116c5565b6106dc846106276114f4565b6106d78560405180606001604052806028815260200161328c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061068d6114f4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ae9092919063ffffffff16565b6114fc565b600190509392505050565b60006008905090565b6106f86114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c90612a68565b60405180910390fd5b60005b8151811015610816576000600460008484815181106107aa576107a9612a88565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061080e90612ab7565b915050610788565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6108786114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fc90612a68565b60405180910390fd5b60005b81518160ff16101561099c57600160036000848460ff16815181106109305761092f612a88565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061099490612aff565b915050610908565b5050565b6109a86114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c90612a68565b60405180910390fd5b81600781905550806008819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a986114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612a68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610beb6114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f90612a68565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cdb6114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f90612a68565b60405180910390fd5b6008600a610d76919061298f565b633b9aca00610d8591906129da565b6009819055506008600a610d99919061298f565b633b9aca00610da891906129da565b600a819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610df8919061298f565b633b9aca00610e0791906129da565b604051610e149190612520565b60405180910390a1565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600781526020017f4d4f4e4b45595300000000000000000000000000000000000000000000000000815250905090565b6000610ea4610e9d6114f4565b84846116c5565b6001905092915050565b600b5481565b600660009054906101000a900460ff1681565b610ecf6114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390612a68565b60405180910390fd5b600e60149054906101000a900460ff1615610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa390612b74565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110929190612ba9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113f9190612ba9565b6040518363ffffffff1660e01b815260040161115c929190612bd6565b6020604051808303816000875af115801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f9190612ba9565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122830600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a611214919061298f565b633b9aca0061122391906129da565b6114fc565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112c7929190612bff565b6020604051808303816000875af11580156112e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130a9190612c54565b506001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550565b61134b6114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cf90612a68565b60405180910390fd5b60005b8151811015611469576001600460008484815181106113fd576113fc612a88565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061146190612ab7565b9150506113db565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290612cf3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612d85565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116b89190612520565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b90612e17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90612ea9565b60405180910390fd5b600081116117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd90612f3b565b60405180910390fd5b60006117f3848484611a12565b905061184782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ee6118a0828461217290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bc90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611993848661217290919063ffffffff16565b6040516119a09190612520565b60405180910390a350505050565b60008383111582906119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed91906123d1565b60405180910390fd5b5060008385611a059190612f5b565b9050809150509392505050565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ab55750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ac35760009050612001565b611acb610e24565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b395750611b09610e24565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561200057600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611be25750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611beb57600080fd5b600660009054906101000a900460ff1615611d7857600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cac5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d775743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2990613001565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e235750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e795750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f1c57600954821115611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba9061306d565b60405180910390fd5b600a5482611ed085610a47565b611eda919061308d565b1115611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f129061310d565b60405180910390fd5b5b611f446064611f366007548561221a90919063ffffffff16565b61229490919063ffffffff16565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fcf57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fff57611ffc6064611fee6008548561221a90919063ffffffff16565b61229490919063ffffffff16565b90505b5b5b600081111561216b5761207e8160016000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bc90919063ffffffff16565b60016000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121629190612520565b60405180910390a35b9392505050565b60006121b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119ae565b905092915050565b60008082846121cb919061308d565b905083811015612210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220790613179565b60405180910390fd5b8091505092915050565b600080830361222c576000905061228e565b6000828461223a91906129da565b905082848261224991906131c8565b14612289576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122809061326b565b60405180910390fd5b809150505b92915050565b60006122d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122de565b905092915050565b60008083118290612325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231c91906123d1565b60405180910390fd5b506000838561233491906131c8565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561237b578082015181840152602081019050612360565b60008484015250505050565b6000601f19601f8301169050919050565b60006123a382612341565b6123ad818561234c565b93506123bd81856020860161235d565b6123c681612387565b840191505092915050565b600060208201905081810360008301526123eb8184612398565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061243282612407565b9050919050565b61244281612427565b811461244d57600080fd5b50565b60008135905061245f81612439565b92915050565b6000819050919050565b61247881612465565b811461248357600080fd5b50565b6000813590506124958161246f565b92915050565b600080604083850312156124b2576124b16123fd565b5b60006124c085828601612450565b92505060206124d185828601612486565b9150509250929050565b60008115159050919050565b6124f0816124db565b82525050565b600060208201905061250b60008301846124e7565b92915050565b61251a81612465565b82525050565b60006020820190506125356000830184612511565b92915050565b600080600060608486031215612554576125536123fd565b5b600061256286828701612450565b935050602061257386828701612450565b925050604061258486828701612486565b9150509250925092565b600060ff82169050919050565b6125a48161258e565b82525050565b60006020820190506125bf600083018461259b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61260282612387565b810181811067ffffffffffffffff82111715612621576126206125ca565b5b80604052505050565b60006126346123f3565b905061264082826125f9565b919050565b600067ffffffffffffffff8211156126605761265f6125ca565b5b602082029050602081019050919050565b600080fd5b600061268961268484612645565b61262a565b905080838252602082019050602084028301858111156126ac576126ab612671565b5b835b818110156126d557806126c18882612450565b8452602084019350506020810190506126ae565b5050509392505050565b600082601f8301126126f4576126f36125c5565b5b8135612704848260208601612676565b91505092915050565b600060208284031215612723576127226123fd565b5b600082013567ffffffffffffffff81111561274157612740612402565b5b61274d848285016126df565b91505092915050565b60006020828403121561276c5761276b6123fd565b5b600061277a84828501612450565b91505092915050565b6000806040838503121561279a576127996123fd565b5b60006127a885828601612486565b92505060206127b985828601612486565b9150509250929050565b6127cc81612427565b82525050565b60006020820190506127e760008301846127c3565b92915050565b60008060408385031215612804576128036123fd565b5b600061281285828601612450565b925050602061282385828601612450565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156128b35780860481111561288f5761288e61282d565b5b600185161561289e5780820291505b80810290506128ac8561285c565b9450612873565b94509492505050565b6000826128cc5760019050612988565b816128da5760009050612988565b81600181146128f057600281146128fa57612929565b6001915050612988565b60ff84111561290c5761290b61282d565b5b8360020a9150848211156129235761292261282d565b5b50612988565b5060208310610133831016604e8410600b841016171561295e5782820a9050838111156129595761295861282d565b5b612988565b61296b8484846001612869565b925090508184048111156129825761298161282d565b5b81810290505b9392505050565b600061299a82612465565b91506129a58361258e565b92506129d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128bc565b905092915050565b60006129e582612465565b91506129f083612465565b92508282026129fe81612465565b91508282048414831517612a1557612a1461282d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a5260208361234c565b9150612a5d82612a1c565b602082019050919050565b60006020820190508181036000830152612a8181612a45565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ac282612465565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612af457612af361282d565b5b600182019050919050565b6000612b0a8261258e565b915060ff8203612b1d57612b1c61282d565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b5e60178361234c565b9150612b6982612b28565b602082019050919050565b60006020820190508181036000830152612b8d81612b51565b9050919050565b600081519050612ba381612439565b92915050565b600060208284031215612bbf57612bbe6123fd565b5b6000612bcd84828501612b94565b91505092915050565b6000604082019050612beb60008301856127c3565b612bf860208301846127c3565b9392505050565b6000604082019050612c1460008301856127c3565b612c216020830184612511565b9392505050565b612c31816124db565b8114612c3c57600080fd5b50565b600081519050612c4e81612c28565b92915050565b600060208284031215612c6a57612c696123fd565b5b6000612c7884828501612c3f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cdd60248361234c565b9150612ce882612c81565b604082019050919050565b60006020820190508181036000830152612d0c81612cd0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d6f60228361234c565b9150612d7a82612d13565b604082019050919050565b60006020820190508181036000830152612d9e81612d62565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e0160258361234c565b9150612e0c82612da5565b604082019050919050565b60006020820190508181036000830152612e3081612df4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e9360238361234c565b9150612e9e82612e37565b604082019050919050565b60006020820190508181036000830152612ec281612e86565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f2560298361234c565b9150612f3082612ec9565b604082019050919050565b60006020820190508181036000830152612f5481612f18565b9050919050565b6000612f6682612465565b9150612f7183612465565b9250828203905081811115612f8957612f8861282d565b5b92915050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000612feb60248361234c565b9150612ff682612f8f565b604082019050919050565b6000602082019050818103600083015261301a81612fde565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061305760198361234c565b915061306282613021565b602082019050919050565b600060208201905081810360008301526130868161304a565b9050919050565b600061309882612465565b91506130a383612465565b92508282019050808211156130bb576130ba61282d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130f7601a8361234c565b9150613102826130c1565b602082019050919050565b60006020820190508181036000830152613126816130ea565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613163601b8361234c565b915061316e8261312d565b602082019050919050565b6000602082019050818103600083015261319281613156565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131d382612465565b91506131de83612465565b9250826131ee576131ed613199565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061325560218361234c565b9150613260826131f9565b604082019050919050565b6000602082019050818103600083015261328481613248565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205c50b0b5eb7ea5430e1e7514bf55b06f700d8bbafe0f7c55fbad53752a863af464736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806371a8696b116100b6578063a9059cbb1161006f578063a9059cbb14610479578063bf474bed146104b6578063c876d0b9146104e1578063c9567bf91461050c578063d34628cc14610523578063dd62ed3e1461054c57610156565b806371a8696b1461038d578063751039fc146103b65780637d1db4a5146103cd5780638da5cb5b146103f85780638f9a55c01461042357806395d89b411461044e57610156565b806331c2d8471161010857806331c2d847146102815780633bbac579146102aa57806365ff2010146102e7578063667f65261461031057806370a0823114610339578063715018a61461037657610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610589565b60405161017d91906123d1565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061249b565b6105c6565b6040516101ba91906124f6565b60405180910390f35b3480156101cf57600080fd5b506101d86105e4565b6040516101e59190612520565b60405180910390f35b3480156101fa57600080fd5b506102036105ea565b6040516102109190612520565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061253b565b61060e565b60405161024d91906124f6565b60405180910390f35b34801561026257600080fd5b5061026b6106e7565b60405161027891906125aa565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a3919061270d565b6106f0565b005b3480156102b657600080fd5b506102d160048036038101906102cc9190612756565b61081a565b6040516102de91906124f6565b60405180910390f35b3480156102f357600080fd5b5061030e6004803603810190610309919061270d565b610870565b005b34801561031c57600080fd5b5061033760048036038101906103329190612783565b6109a0565b005b34801561034557600080fd5b50610360600480360381019061035b9190612756565b610a47565b60405161036d9190612520565b60405180910390f35b34801561038257600080fd5b5061038b610a90565b005b34801561039957600080fd5b506103b460048036038101906103af9190612756565b610be3565b005b3480156103c257600080fd5b506103cb610cd3565b005b3480156103d957600080fd5b506103e2610e1e565b6040516103ef9190612520565b60405180910390f35b34801561040457600080fd5b5061040d610e24565b60405161041a91906127d2565b60405180910390f35b34801561042f57600080fd5b50610438610e4d565b6040516104459190612520565b60405180910390f35b34801561045a57600080fd5b50610463610e53565b60405161047091906123d1565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b919061249b565b610e90565b6040516104ad91906124f6565b60405180910390f35b3480156104c257600080fd5b506104cb610eae565b6040516104d89190612520565b60405180910390f35b3480156104ed57600080fd5b506104f6610eb4565b60405161050391906124f6565b60405180910390f35b34801561051857600080fd5b50610521610ec7565b005b34801561052f57600080fd5b5061054a6004803603810190610545919061270d565b611343565b005b34801561055857600080fd5b50610573600480360381019061056e91906127ed565b61146d565b6040516105809190612520565b60405180910390f35b60606040518060400160405280600e81526020017f4d6f6e6b6579732047656f726765000000000000000000000000000000000000815250905090565b60006105da6105d36114f4565b84846114fc565b6001905092915050565b600c5481565b60006008600a6105fa919061298f565b633b9aca0061060991906129da565b905090565b600061061b8484846116c5565b6106dc846106276114f4565b6106d78560405180606001604052806028815260200161328c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061068d6114f4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ae9092919063ffffffff16565b6114fc565b600190509392505050565b60006008905090565b6106f86114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c90612a68565b60405180910390fd5b60005b8151811015610816576000600460008484815181106107aa576107a9612a88565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061080e90612ab7565b915050610788565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6108786114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fc90612a68565b60405180910390fd5b60005b81518160ff16101561099c57600160036000848460ff16815181106109305761092f612a88565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061099490612aff565b915050610908565b5050565b6109a86114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c90612a68565b60405180910390fd5b81600781905550806008819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a986114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612a68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610beb6114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f90612a68565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cdb6114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f90612a68565b60405180910390fd5b6008600a610d76919061298f565b633b9aca00610d8591906129da565b6009819055506008600a610d99919061298f565b633b9aca00610da891906129da565b600a819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610df8919061298f565b633b9aca00610e0791906129da565b604051610e149190612520565b60405180910390a1565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600781526020017f4d4f4e4b45595300000000000000000000000000000000000000000000000000815250905090565b6000610ea4610e9d6114f4565b84846116c5565b6001905092915050565b600b5481565b600660009054906101000a900460ff1681565b610ecf6114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390612a68565b60405180910390fd5b600e60149054906101000a900460ff1615610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa390612b74565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110929190612ba9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113f9190612ba9565b6040518363ffffffff1660e01b815260040161115c929190612bd6565b6020604051808303816000875af115801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f9190612ba9565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122830600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a611214919061298f565b633b9aca0061122391906129da565b6114fc565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112c7929190612bff565b6020604051808303816000875af11580156112e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130a9190612c54565b506001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550565b61134b6114f4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cf90612a68565b60405180910390fd5b60005b8151811015611469576001600460008484815181106113fd576113fc612a88565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061146190612ab7565b9150506113db565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290612cf3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612d85565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116b89190612520565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b90612e17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179a90612ea9565b60405180910390fd5b600081116117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd90612f3b565b60405180910390fd5b60006117f3848484611a12565b905061184782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ee6118a0828461217290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bc90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611993848661217290919063ffffffff16565b6040516119a09190612520565b60405180910390a350505050565b60008383111582906119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed91906123d1565b60405180910390fd5b5060008385611a059190612f5b565b9050809150509392505050565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ab55750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ac35760009050612001565b611acb610e24565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b395750611b09610e24565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561200057600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611be25750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611beb57600080fd5b600660009054906101000a900460ff1615611d7857600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cac5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d775743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2990613001565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e235750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e795750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f1c57600954821115611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba9061306d565b60405180910390fd5b600a5482611ed085610a47565b611eda919061308d565b1115611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f129061310d565b60405180910390fd5b5b611f446064611f366007548561221a90919063ffffffff16565b61229490919063ffffffff16565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611fcf57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fff57611ffc6064611fee6008548561221a90919063ffffffff16565b61229490919063ffffffff16565b90505b5b5b600081111561216b5761207e8160016000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bc90919063ffffffff16565b60016000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121629190612520565b60405180910390a35b9392505050565b60006121b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119ae565b905092915050565b60008082846121cb919061308d565b905083811015612210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220790613179565b60405180910390fd5b8091505092915050565b600080830361222c576000905061228e565b6000828461223a91906129da565b905082848261224991906131c8565b14612289576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122809061326b565b60405180910390fd5b809150505b92915050565b60006122d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122de565b905092915050565b60008083118290612325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231c91906123d1565b60405180910390fd5b506000838561233491906131c8565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561237b578082015181840152602081019050612360565b60008484015250505050565b6000601f19601f8301169050919050565b60006123a382612341565b6123ad818561234c565b93506123bd81856020860161235d565b6123c681612387565b840191505092915050565b600060208201905081810360008301526123eb8184612398565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061243282612407565b9050919050565b61244281612427565b811461244d57600080fd5b50565b60008135905061245f81612439565b92915050565b6000819050919050565b61247881612465565b811461248357600080fd5b50565b6000813590506124958161246f565b92915050565b600080604083850312156124b2576124b16123fd565b5b60006124c085828601612450565b92505060206124d185828601612486565b9150509250929050565b60008115159050919050565b6124f0816124db565b82525050565b600060208201905061250b60008301846124e7565b92915050565b61251a81612465565b82525050565b60006020820190506125356000830184612511565b92915050565b600080600060608486031215612554576125536123fd565b5b600061256286828701612450565b935050602061257386828701612450565b925050604061258486828701612486565b9150509250925092565b600060ff82169050919050565b6125a48161258e565b82525050565b60006020820190506125bf600083018461259b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61260282612387565b810181811067ffffffffffffffff82111715612621576126206125ca565b5b80604052505050565b60006126346123f3565b905061264082826125f9565b919050565b600067ffffffffffffffff8211156126605761265f6125ca565b5b602082029050602081019050919050565b600080fd5b600061268961268484612645565b61262a565b905080838252602082019050602084028301858111156126ac576126ab612671565b5b835b818110156126d557806126c18882612450565b8452602084019350506020810190506126ae565b5050509392505050565b600082601f8301126126f4576126f36125c5565b5b8135612704848260208601612676565b91505092915050565b600060208284031215612723576127226123fd565b5b600082013567ffffffffffffffff81111561274157612740612402565b5b61274d848285016126df565b91505092915050565b60006020828403121561276c5761276b6123fd565b5b600061277a84828501612450565b91505092915050565b6000806040838503121561279a576127996123fd565b5b60006127a885828601612486565b92505060206127b985828601612486565b9150509250929050565b6127cc81612427565b82525050565b60006020820190506127e760008301846127c3565b92915050565b60008060408385031215612804576128036123fd565b5b600061281285828601612450565b925050602061282385828601612450565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156128b35780860481111561288f5761288e61282d565b5b600185161561289e5780820291505b80810290506128ac8561285c565b9450612873565b94509492505050565b6000826128cc5760019050612988565b816128da5760009050612988565b81600181146128f057600281146128fa57612929565b6001915050612988565b60ff84111561290c5761290b61282d565b5b8360020a9150848211156129235761292261282d565b5b50612988565b5060208310610133831016604e8410600b841016171561295e5782820a9050838111156129595761295861282d565b5b612988565b61296b8484846001612869565b925090508184048111156129825761298161282d565b5b81810290505b9392505050565b600061299a82612465565b91506129a58361258e565b92506129d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128bc565b905092915050565b60006129e582612465565b91506129f083612465565b92508282026129fe81612465565b91508282048414831517612a1557612a1461282d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a5260208361234c565b9150612a5d82612a1c565b602082019050919050565b60006020820190508181036000830152612a8181612a45565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ac282612465565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612af457612af361282d565b5b600182019050919050565b6000612b0a8261258e565b915060ff8203612b1d57612b1c61282d565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b5e60178361234c565b9150612b6982612b28565b602082019050919050565b60006020820190508181036000830152612b8d81612b51565b9050919050565b600081519050612ba381612439565b92915050565b600060208284031215612bbf57612bbe6123fd565b5b6000612bcd84828501612b94565b91505092915050565b6000604082019050612beb60008301856127c3565b612bf860208301846127c3565b9392505050565b6000604082019050612c1460008301856127c3565b612c216020830184612511565b9392505050565b612c31816124db565b8114612c3c57600080fd5b50565b600081519050612c4e81612c28565b92915050565b600060208284031215612c6a57612c696123fd565b5b6000612c7884828501612c3f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cdd60248361234c565b9150612ce882612c81565b604082019050919050565b60006020820190508181036000830152612d0c81612cd0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d6f60228361234c565b9150612d7a82612d13565b604082019050919050565b60006020820190508181036000830152612d9e81612d62565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e0160258361234c565b9150612e0c82612da5565b604082019050919050565b60006020820190508181036000830152612e3081612df4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e9360238361234c565b9150612e9e82612e37565b604082019050919050565b60006020820190508181036000830152612ec281612e86565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f2560298361234c565b9150612f3082612ec9565b604082019050919050565b60006020820190508181036000830152612f5481612f18565b9050919050565b6000612f6682612465565b9150612f7183612465565b9250828203905081811115612f8957612f8861282d565b5b92915050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000612feb60248361234c565b9150612ff682612f8f565b604082019050919050565b6000602082019050818103600083015261301a81612fde565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061305760198361234c565b915061306282613021565b602082019050919050565b600060208201905081810360008301526130868161304a565b9050919050565b600061309882612465565b91506130a383612465565b92508282019050808211156130bb576130ba61282d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130f7601a8361234c565b9150613102826130c1565b602082019050919050565b60006020820190508181036000830152613126816130ea565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613163601b8361234c565b915061316e8261312d565b602082019050919050565b6000602082019050818103600083015261319281613156565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131d382612465565b91506131de83612465565b9250826131ee576131ed613199565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061325560218361234c565b9150613260826131f9565b604082019050919050565b6000602082019050818103600083015261328481613248565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205c50b0b5eb7ea5430e1e7514bf55b06f700d8bbafe0f7c55fbad53752a863af464736f6c63430008130033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.