ETH Price: $3,876.24 (-1.29%)

Token

ERC-20: Mochi (MOCHI)
 

Overview

Max Total Supply

1,000,000,000 MOCHI

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,520,000 MOCHI

Value
$0.00
0x9a8b4b3fee32fc560ce7805ac744a69cf054d560
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Mochi

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.8.4;

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;
    }

}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Mochi is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    string private constant _name = "Mochi";
    string private constant _symbol = unicode"MOCHI";
    uint8 private constant _decimals = 9;

    uint256 public buyAutoBurnFee = 100;
    uint256 public buyAutoLiquidityFee = 0;
    uint256 public buyMarketingFee = 600;
    uint256 public totalBuyFees = buyAutoBurnFee + buyAutoLiquidityFee + buyMarketingFee;

    uint256 public sellAutoBurnFee = 100;
    uint256 public sellAutoLiquidityFee = 0;
    uint256 public sellMarketingFee = 600;
    uint256 public totalSellFees = sellAutoBurnFee + sellAutoLiquidityFee + sellMarketingFee;

    uint256 public tokensForAutoBurn;
    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 10000;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private maxWalletAmount = 30000000 * 10**9;
    uint256 private maxTxAmount = 10000000 * 10**9;
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        require(!tradingOpen,"trading is already open");
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0xEf8DDf60d2Fa07F6519e974a9BdD0e8a5F7a78E0); 
        _tOwned[owner()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        uint256 _buyAutoBurnFee = 100;
        uint256 _buyAutoLiquidityFee = 0;
        uint256 _buyMarketingFee = 500;
        uint256 _sellAutoBurnFee = 100;
        uint256 _sellAutoLiquidityFee = 0;
        uint256 _sellMarketingFee = 500;
        buyAutoBurnFee = _buyAutoBurnFee;
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoBurnFee + buyAutoLiquidityFee + buyMarketingFee;
        sellAutoBurnFee = _sellAutoBurnFee;
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellMarketingFee = _sellMarketingFee;
        totalSellFees = sellAutoBurnFee + sellAutoLiquidityFee + sellMarketingFee;
        swapEnabled = true;
        maxTxAmount = 10000000 * 10**9;
        maxWalletAmount = 30000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        emit Transfer(address(0), owner(), _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 _tOwned[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 virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        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");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

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

        uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        _tOwned[sender] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
        _tOwned[recipient] += amountReceived;
        emit Transfer(sender, recipient, amountReceived);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) { 
            tokensForAutoBurn = amount * buyAutoBurnFee / masterTaxDivisor;
            tokensForAutoLiquidity = amount * buyAutoLiquidityFee / masterTaxDivisor;
            tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor;    
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoBurn = amount * sellAutoBurnFee / masterTaxDivisor;
            tokensForAutoLiquidity = amount * sellAutoLiquidityFee / masterTaxDivisor;
            tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor;        
        }
        _tOwned[DEAD] += tokensForAutoBurn;
        emit Transfer(from, DEAD, tokensForAutoBurn);
        _tOwned[pairAddress] += tokensForAutoLiquidity;
        emit Transfer(from, pairAddress, tokensForAutoLiquidity);
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);
        uint256 feeAmount = tokensForAutoBurn + tokensForMarketing + tokensForAutoLiquidity;
        return amount - feeAmount;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }

    function updateBuyFees(uint256 _buyAutoBurnFee, uint256 _buyAutoLiquidityFee, uint256 _buyMarketingFee) external onlyOwner {
        buyAutoBurnFee = _buyAutoBurnFee;
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoBurnFee + buyAutoLiquidityFee + buyMarketingFee;

    }
    
    function updateSellFees(uint256 _sellAutoBurnFee, uint256 _sellAutoLiquidityFee, uint256 _sellMarketingFee) external onlyOwner {
        sellAutoBurnFee = _sellAutoBurnFee;
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellMarketingFee = _sellMarketingFee;
        totalBuyFees = sellAutoBurnFee + sellAutoLiquidityFee + sellMarketingFee;

    }

    function sendETHToFee(uint256 amount) private {
        feeAddrWallet.transfer(amount);
    } 

    receive() external payable{
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "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":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","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":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","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":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyAutoBurnFee","type":"uint256"},{"internalType":"uint256","name":"_buyAutoLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellAutoBurnFee","type":"uint256"},{"internalType":"uint256","name":"_sellAutoLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052606460045560006005556102586006556006546005546004546200002991906200071d565b6200003591906200071d565b60075560646008556000600955610258600a55600a546009546008546200005d91906200071d565b6200006991906200071d565b600b55600f805461ffff19166127101790556011805461ffff60a81b19169055666a94d74f430000601255662386f26fc10000601355348015620000ac57600080fd5b50620000b83362000677565b601154600160a01b900460ff1615620001175760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640160405180910390fd5b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b1580156200017857600080fd5b505afa1580156200018d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b39190620006c7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001fc57600080fd5b505afa15801562000211573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002379190620006c7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028057600080fd5b505af115801562000295573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bb9190620006c7565b601160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031b57600080fd5b505afa15801562000330573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003569190620006c7565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039f57600080fd5b505afa158015620003b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003da9190620006c7565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b1580156200042157600080fd5b505afa15801562000436573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045c9190620006c7565b600f80546001600160a01b03928316620100000262010000600160b01b0319909116179055601480546001600160a01b03191673ef8ddf60d2fa07f6519e974a9bdd0e8a5f7a78e01781556000805483168152600160208181526040808420670de0b6b3a764000090558354861684526003909152808320805460ff199081168417909155308452818420805482168417905593549094168252928120805490921690921790556064600481905560058290556101f46006819055909190828282806200052a83856200071d565b6200053691906200071d565b60075560088390556009829055600a819055806200055583856200071d565b6200056191906200071d565b600b5560118054662386f26fc10000601355666a94d74f43000060125562ff00ff60a01b1981166201000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015620005e257600080fd5b505af1158015620005f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200061d9190620006f9565b5060008054604051670de0b6b3a764000081526001600160a01b0390911691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050505062000744565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620006da57600080fd5b81516001600160a01b0381168114620006f257600080fd5b9392505050565b6000602082840312156200070c57600080fd5b81518015158114620006f257600080fd5b600082198211156200073f57634e487b7160e01b600052601160045260246000fd5b500190565b61182380620007546000396000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063c99f2fed11610095578063ea2f0b3711610064578063ea2f0b3714610572578063ebece9c914610592578063f239eab8146105b2578063f2fde38b146105c857600080fd5b8063c99f2fed146104ea578063cc70acee14610500578063d0a3981414610516578063dd62ed3e1461052c57600080fd5b8063a8b08982116100d1578063a8b089821461046e578063a9059cbb14610494578063b9e93700146104b4578063c17b5b8c146104ca57600080fd5b80638da5cb5b146103f6578063921369131461041457806395d89b411461042a5780639740a9461461045857600080fd5b8063313ce5671161017a57806370a082311161014957806370a0823114610375578063715018a6146103ab5780637bce5a04146103c05780638095d564146103d657600080fd5b8063313ce5671461030b578063437823ec1461032757806347afcbfe146103495780636cce46fc1461035f57600080fd5b806318160ddd116101b657806318160ddd146102825780631d6167ac146102a75780631f3fed8f146102d557806323b872dd146102eb57600080fd5b806303fd2a45146101e857806306fdde031461021b578063095ea7b31461025257600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fe61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022757600080fd5b506040805180820190915260058152644d6f63686960d81b60208201525b6040516102129190611533565b34801561025e57600080fd5b5061027261026d3660046114b9565b6105e8565b6040519015158152602001610212565b34801561028e57600080fd5b50670de0b6b3a76400005b604051908152602001610212565b3480156102b357600080fd5b50600f546102c29061ffff1681565b60405161ffff9091168152602001610212565b3480156102e157600080fd5b50610299600e5481565b3480156102f757600080fd5b50610272610306366004611478565b6105ff565b34801561031757600080fd5b5060405160098152602001610212565b34801561033357600080fd5b506103476103423660046113fe565b6106b5565b005b34801561035557600080fd5b5061029960085481565b34801561036b57600080fd5b5061029960095481565b34801561038157600080fd5b506102996103903660046113fe565b6001600160a01b031660009081526001602052604090205490565b3480156103b757600080fd5b50610347610703565b3480156103cc57600080fd5b5061029960065481565b3480156103e257600080fd5b506103476103f1366004611507565b610739565b34801561040257600080fd5b506000546001600160a01b03166101fe565b34801561042057600080fd5b50610299600a5481565b34801561043657600080fd5b506040805180820190915260058152644d4f43484960d81b6020820152610245565b34801561046457600080fd5b50610299600d5481565b34801561047a57600080fd5b50600f546101fe906201000090046001600160a01b031681565b3480156104a057600080fd5b506102726104af3660046114b9565b61078f565b3480156104c057600080fd5b5061029960075481565b3480156104d657600080fd5b506103476104e5366004611507565b61079c565b3480156104f657600080fd5b5061029960045481565b34801561050c57600080fd5b50610299600c5481565b34801561052257600080fd5b50610299600b5481565b34801561053857600080fd5b5061029961054736600461143f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561057e57600080fd5b5061034761058d3660046113fe565b6107e0565b34801561059e57600080fd5b506103476105ad3660046114e5565b61082b565b3480156105be57600080fd5b5061029960055481565b3480156105d457600080fd5b506103476105e33660046113fe565b61088b565b60006105f5338484610926565b5060015b92915050565b600061060c848484610a4a565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156106965760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106aa85336106a58685611775565b610926565b506001949350505050565b6000546001600160a01b031633146106df5760405162461bcd60e51b815260040161068d90611588565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b0316331461072d5760405162461bcd60e51b815260040161068d90611588565b6107376000610e83565b565b6000546001600160a01b031633146107635760405162461bcd60e51b815260040161068d90611588565b6004839055600582905560068190558061077d838561162e565b610787919061162e565b600755505050565b60006105f5338484610a4a565b6000546001600160a01b031633146107c65760405162461bcd60e51b815260040161068d90611588565b60088390556009829055600a8190558061077d838561162e565b6000546001600160a01b0316331461080a5760405162461bcd60e51b815260040161068d90611588565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b031633146108555760405162461bcd60e51b815260040161068d90611588565b6108616009600a6116ab565b61086b9083611756565b60135561087a6009600a6116ab565b6108849082611756565b6012555050565b6000546001600160a01b031633146108b55760405162461bcd60e51b815260040161068d90611588565b6001600160a01b03811661091a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161068d565b61092381610e83565b50565b6001600160a01b0383166109885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161068d565b6001600160a01b0382166109e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161068d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610aae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161068d565b6001600160a01b038216610b105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161068d565b60008111610b725760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161068d565b6001600160a01b038316600090815260016020526040902054811115610bf45760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161068d565b601154600160a01b900460ff1680610c2457506001600160a01b03831660009081526003602052604090205460ff165b80610c4757506001600160a01b03821660009081526003602052604090205460ff165b610c935760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604482015260640161068d565b6011546001600160a01b038481169116148015610cbe57506010546001600160a01b03838116911614155b8015610ce357506001600160a01b03821660009081526003602052604090205460ff16155b15610db557601354811115610d3a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161068d565b60125481610d5d846001600160a01b031660009081526001602052604090205490565b610d67919061162e565b1115610db55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161068d565b30600090815260016020526040902054601154600160a81b900460ff16158015610ded57506011546001600160a01b03858116911614155b8015610e025750601154600160b01b900460ff165b8015610e0e5750600081115b15610e2e57610e1c81610ed3565b478015610e2c57610e2c4761105c565b505b6001600160a01b038416600090815260036020526040902054610e7d9085908590859060ff1680610e7757506001600160a01b03871660009081526003602052604090205460ff165b1561109a565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f1b57610f1b6117a2565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610f6f57600080fd5b505afa158015610f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa79190611422565b81600181518110610fba57610fba6117a2565b6001600160a01b039283166020918202929092010152601054610fe09130911684610926565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906110199085906000908690309042906004016115bd565b600060405180830381600087803b15801561103357600080fd5b505af1158015611047573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611096573d6000803e3d6000fd5b5050565b6001600160a01b038416600090815260016020526040812080548492906110c2908490611775565b9091555060009050816110d557826110e0565b6110e0858585611156565b6001600160a01b03851660009081526001602052604081208054929350839290919061110d90849061162e565b92505081905550836001600160a01b0316856001600160a01b03166000805160206117ce8339815191528360405161114791815260200190565b60405180910390a35050505050565b6011546000906001600160a01b03858116911614801561117857506000600754115b156111ee57600f5460045461ffff909116906111949084611756565b61119e9190611646565b600c55600f5460055461ffff909116906111b89084611756565b6111c29190611646565b600d55600f5460065461ffff909116906111dc9084611756565b6111e69190611646565b600e5561127f565b6011546001600160a01b03848116911614801561120d57506000600b54115b1561127f57600f5460085461ffff909116906112299084611756565b6112339190611646565b600c55600f5460095461ffff9091169061124d9084611756565b6112579190611646565b600d55600f54600a5461ffff909116906112719084611756565b61127b9190611646565b600e555b600c5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d80549091906112c090849061162e565b9091555050600c5460405190815261dead906001600160a01b038616906000805160206117ce8339815191529060200160405180910390a3600d54600f546201000090046001600160a01b03166000908152600160205260408120805490919061132b90849061162e565b9091555050600f54600d546040516001600160a01b03620100009093048316928716916000805160206117ce8339815191529161136a91815260200190565b60405180910390a3600e54306000908152600160205260408120805490919061139490849061162e565b9091555050600e5460405190815230906001600160a01b038616906000805160206117ce8339815191529060200160405180910390a36000600d54600e54600c546113df919061162e565b6113e9919061162e565b90506113f58184611775565b95945050505050565b60006020828403121561141057600080fd5b813561141b816117b8565b9392505050565b60006020828403121561143457600080fd5b815161141b816117b8565b6000806040838503121561145257600080fd5b823561145d816117b8565b9150602083013561146d816117b8565b809150509250929050565b60008060006060848603121561148d57600080fd5b8335611498816117b8565b925060208401356114a8816117b8565b929592945050506040919091013590565b600080604083850312156114cc57600080fd5b82356114d7816117b8565b946020939093013593505050565b600080604083850312156114f857600080fd5b50508035926020909101359150565b60008060006060848603121561151c57600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b8181101561156057858101830151858201604001528201611544565b81811115611572576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561160d5784516001600160a01b0316835293830193918301916001016115e8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156116415761164161178c565b500190565b60008261166357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156116a35781600019048211156116895761168961178c565b8085161561169657918102915b93841c939080029061166d565b509250929050565b600061141b60ff8416836000826116c4575060016105f9565b816116d1575060006105f9565b81600181146116e757600281146116f15761170d565b60019150506105f9565b60ff8411156117025761170261178c565b50506001821b6105f9565b5060208310610133831016604e8410600b8410161715611730575081810a6105f9565b61173a8383611668565b806000190482111561174e5761174e61178c565b029392505050565b60008160001904831182151516156117705761177061178c565b500290565b6000828210156117875761178761178c565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461092357600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201b0b1b4e6a8a8b87595ecebf6f4c937fbc09d324506e0f509c3f42c78cd0643864736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063c99f2fed11610095578063ea2f0b3711610064578063ea2f0b3714610572578063ebece9c914610592578063f239eab8146105b2578063f2fde38b146105c857600080fd5b8063c99f2fed146104ea578063cc70acee14610500578063d0a3981414610516578063dd62ed3e1461052c57600080fd5b8063a8b08982116100d1578063a8b089821461046e578063a9059cbb14610494578063b9e93700146104b4578063c17b5b8c146104ca57600080fd5b80638da5cb5b146103f6578063921369131461041457806395d89b411461042a5780639740a9461461045857600080fd5b8063313ce5671161017a57806370a082311161014957806370a0823114610375578063715018a6146103ab5780637bce5a04146103c05780638095d564146103d657600080fd5b8063313ce5671461030b578063437823ec1461032757806347afcbfe146103495780636cce46fc1461035f57600080fd5b806318160ddd116101b657806318160ddd146102825780631d6167ac146102a75780631f3fed8f146102d557806323b872dd146102eb57600080fd5b806303fd2a45146101e857806306fdde031461021b578063095ea7b31461025257600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fe61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022757600080fd5b506040805180820190915260058152644d6f63686960d81b60208201525b6040516102129190611533565b34801561025e57600080fd5b5061027261026d3660046114b9565b6105e8565b6040519015158152602001610212565b34801561028e57600080fd5b50670de0b6b3a76400005b604051908152602001610212565b3480156102b357600080fd5b50600f546102c29061ffff1681565b60405161ffff9091168152602001610212565b3480156102e157600080fd5b50610299600e5481565b3480156102f757600080fd5b50610272610306366004611478565b6105ff565b34801561031757600080fd5b5060405160098152602001610212565b34801561033357600080fd5b506103476103423660046113fe565b6106b5565b005b34801561035557600080fd5b5061029960085481565b34801561036b57600080fd5b5061029960095481565b34801561038157600080fd5b506102996103903660046113fe565b6001600160a01b031660009081526001602052604090205490565b3480156103b757600080fd5b50610347610703565b3480156103cc57600080fd5b5061029960065481565b3480156103e257600080fd5b506103476103f1366004611507565b610739565b34801561040257600080fd5b506000546001600160a01b03166101fe565b34801561042057600080fd5b50610299600a5481565b34801561043657600080fd5b506040805180820190915260058152644d4f43484960d81b6020820152610245565b34801561046457600080fd5b50610299600d5481565b34801561047a57600080fd5b50600f546101fe906201000090046001600160a01b031681565b3480156104a057600080fd5b506102726104af3660046114b9565b61078f565b3480156104c057600080fd5b5061029960075481565b3480156104d657600080fd5b506103476104e5366004611507565b61079c565b3480156104f657600080fd5b5061029960045481565b34801561050c57600080fd5b50610299600c5481565b34801561052257600080fd5b50610299600b5481565b34801561053857600080fd5b5061029961054736600461143f565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561057e57600080fd5b5061034761058d3660046113fe565b6107e0565b34801561059e57600080fd5b506103476105ad3660046114e5565b61082b565b3480156105be57600080fd5b5061029960055481565b3480156105d457600080fd5b506103476105e33660046113fe565b61088b565b60006105f5338484610926565b5060015b92915050565b600061060c848484610a4a565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156106965760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106aa85336106a58685611775565b610926565b506001949350505050565b6000546001600160a01b031633146106df5760405162461bcd60e51b815260040161068d90611588565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b0316331461072d5760405162461bcd60e51b815260040161068d90611588565b6107376000610e83565b565b6000546001600160a01b031633146107635760405162461bcd60e51b815260040161068d90611588565b6004839055600582905560068190558061077d838561162e565b610787919061162e565b600755505050565b60006105f5338484610a4a565b6000546001600160a01b031633146107c65760405162461bcd60e51b815260040161068d90611588565b60088390556009829055600a8190558061077d838561162e565b6000546001600160a01b0316331461080a5760405162461bcd60e51b815260040161068d90611588565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b031633146108555760405162461bcd60e51b815260040161068d90611588565b6108616009600a6116ab565b61086b9083611756565b60135561087a6009600a6116ab565b6108849082611756565b6012555050565b6000546001600160a01b031633146108b55760405162461bcd60e51b815260040161068d90611588565b6001600160a01b03811661091a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161068d565b61092381610e83565b50565b6001600160a01b0383166109885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161068d565b6001600160a01b0382166109e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161068d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610aae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161068d565b6001600160a01b038216610b105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161068d565b60008111610b725760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161068d565b6001600160a01b038316600090815260016020526040902054811115610bf45760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161068d565b601154600160a01b900460ff1680610c2457506001600160a01b03831660009081526003602052604090205460ff165b80610c4757506001600160a01b03821660009081526003602052604090205460ff165b610c935760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604482015260640161068d565b6011546001600160a01b038481169116148015610cbe57506010546001600160a01b03838116911614155b8015610ce357506001600160a01b03821660009081526003602052604090205460ff16155b15610db557601354811115610d3a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161068d565b60125481610d5d846001600160a01b031660009081526001602052604090205490565b610d67919061162e565b1115610db55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161068d565b30600090815260016020526040902054601154600160a81b900460ff16158015610ded57506011546001600160a01b03858116911614155b8015610e025750601154600160b01b900460ff165b8015610e0e5750600081115b15610e2e57610e1c81610ed3565b478015610e2c57610e2c4761105c565b505b6001600160a01b038416600090815260036020526040902054610e7d9085908590859060ff1680610e7757506001600160a01b03871660009081526003602052604090205460ff165b1561109a565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f1b57610f1b6117a2565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610f6f57600080fd5b505afa158015610f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa79190611422565b81600181518110610fba57610fba6117a2565b6001600160a01b039283166020918202929092010152601054610fe09130911684610926565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906110199085906000908690309042906004016115bd565b600060405180830381600087803b15801561103357600080fd5b505af1158015611047573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611096573d6000803e3d6000fd5b5050565b6001600160a01b038416600090815260016020526040812080548492906110c2908490611775565b9091555060009050816110d557826110e0565b6110e0858585611156565b6001600160a01b03851660009081526001602052604081208054929350839290919061110d90849061162e565b92505081905550836001600160a01b0316856001600160a01b03166000805160206117ce8339815191528360405161114791815260200190565b60405180910390a35050505050565b6011546000906001600160a01b03858116911614801561117857506000600754115b156111ee57600f5460045461ffff909116906111949084611756565b61119e9190611646565b600c55600f5460055461ffff909116906111b89084611756565b6111c29190611646565b600d55600f5460065461ffff909116906111dc9084611756565b6111e69190611646565b600e5561127f565b6011546001600160a01b03848116911614801561120d57506000600b54115b1561127f57600f5460085461ffff909116906112299084611756565b6112339190611646565b600c55600f5460095461ffff9091169061124d9084611756565b6112579190611646565b600d55600f54600a5461ffff909116906112719084611756565b61127b9190611646565b600e555b600c5461dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d80549091906112c090849061162e565b9091555050600c5460405190815261dead906001600160a01b038616906000805160206117ce8339815191529060200160405180910390a3600d54600f546201000090046001600160a01b03166000908152600160205260408120805490919061132b90849061162e565b9091555050600f54600d546040516001600160a01b03620100009093048316928716916000805160206117ce8339815191529161136a91815260200190565b60405180910390a3600e54306000908152600160205260408120805490919061139490849061162e565b9091555050600e5460405190815230906001600160a01b038616906000805160206117ce8339815191529060200160405180910390a36000600d54600e54600c546113df919061162e565b6113e9919061162e565b90506113f58184611775565b95945050505050565b60006020828403121561141057600080fd5b813561141b816117b8565b9392505050565b60006020828403121561143457600080fd5b815161141b816117b8565b6000806040838503121561145257600080fd5b823561145d816117b8565b9150602083013561146d816117b8565b809150509250929050565b60008060006060848603121561148d57600080fd5b8335611498816117b8565b925060208401356114a8816117b8565b929592945050506040919091013590565b600080604083850312156114cc57600080fd5b82356114d7816117b8565b946020939093013593505050565b600080604083850312156114f857600080fd5b50508035926020909101359150565b60008060006060848603121561151c57600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b8181101561156057858101830151858201604001528201611544565b81811115611572576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561160d5784516001600160a01b0316835293830193918301916001016115e8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156116415761164161178c565b500190565b60008261166357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156116a35781600019048211156116895761168961178c565b8085161561169657918102915b93841c939080029061166d565b509250929050565b600061141b60ff8416836000826116c4575060016105f9565b816116d1575060006105f9565b81600181146116e757600281146116f15761170d565b60019150506105f9565b60ff8411156117025761170261178c565b50506001821b6105f9565b5060208310610133831016604e8410600b8410161715611730575081810a6105f9565b61173a8383611668565b806000190482111561174e5761174e61178c565b029392505050565b60008160001904831182151516156117705761177061178c565b500290565b6000828210156117875761178761178c565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461092357600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201b0b1b4e6a8a8b87595ecebf6f4c937fbc09d324506e0f509c3f42c78cd0643864736f6c63430008070033

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.