ETH Price: $3,569.87 (+7.00%)

Token

Eartherium (EATH)
 

Overview

Max Total Supply

21,000,000 EATH

Holders

357

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 EATH

Value
$0.00
0x3A40f73D4bEfED175134F3AE84c9d7dEEe5a1Bfe
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:
EARTHERIUM

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : eath.sol
// SPDX-License-Identifier: Unlicensed

/*
    Website: https://eartheriumtoken.com/
    X: https://x.com/eartheriumtoken
    TG: https://t.me/EartheriumToken
*/


pragma solidity 0.8.26;

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(
        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 EARTHERIUM is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address payable private _devWallet;
    uint256 _devPortion = 10;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 20;
    uint256 private _preventSwapBefore = 20;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 21000000 * 10**_decimals;
    string private constant _name = unicode"Eartherium";
    string private constant _symbol = unicode"EATH";
    uint256 public _maxTxAmount = (_tTotal * 20) / 1000;
    uint256 public _maxTxSellAmount = (_tTotal * 5) / 1000;
    uint256 public _maxWalletSize = (_tTotal * 20) / 1000;
    uint256 public _taxSwapThreshold = (_tTotal * 1) / 100;
    uint256 public _maxTaxSwap= (_tTotal * 500) / 1000;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    uint256 public tradingOpenBlock=9999999999;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
		event TradingOpened(uint256 timestamp, uint256 blockNumber);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

  constructor () {
    _taxWallet = payable(0x70c620F74E2F29960e03e0360a356C9409a4Dd75);
    _devWallet = payable(0xe4a4a817bdA42127E578807473FEE59b8702486B);
    _isExcludedFromFee[owner()] = true;
    _isExcludedFromFee[address(this)] = true;
    _isExcludedFromFee[_taxWallet] = true;
    _isExcludedFromFee[_devWallet] = true;
    
    uint256 devAmount = (_tTotal * 1) / 100;
    uint256 ownerAmount = _tTotal - devAmount;
    
    _balances[_devWallet] = devAmount;
    emit Transfer(address(0), _devWallet, devAmount);
    
    _balances[_msgSender()] = ownerAmount;
    emit Transfer(address(0), _msgSender(), ownerAmount);
}

    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");
        if (block.number < tradingOpenBlock) {
            require(
                _isExcludedFromFee[from] || _isExcludedFromFee[to],
                "Trading is not open yet and you are not authorized"
            );
        }
        uint256 taxAmount = 0;

        if (from != owner() && to != owner()) {
            
            if(_buyCount == 0){
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
            }

            if(_buyCount > 0){
                taxAmount =amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this) ){
                taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number>lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                require(amount <= _maxTxSellAmount, "Exceeds the max sell amount.");

                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance>0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock =block.number;
            }
        }

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

        _balances[from]= _balances[from].sub(amount);
        _balances[to]= _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

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

    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 removeLimit() external onlyOwner{
        _maxTxAmount =_tTotal;
        _maxWalletSize =_tTotal;
        _maxTxSellAmount = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner{
        _transferTax= 0;
        emit TransferTaxUpdated(0);
    }

	function sendETHToFee(uint256 amount) private {
	    if (_devPortion == 0) {
	        (bool success,) = _taxWallet.call{value: amount}("");
	    	success;
		} else {
	        uint256 ethForDev = amount * _devPortion / 100;
			uint256 ethForTaxWallet = amount - ethForDev;
			(bool devsuccess,) = _devWallet.call{value: ethForDev}("");
			devsuccess;
			(bool success,)	= _taxWallet.call{value: ethForTaxWallet}("");
			success;
		}
	}

    function openTrading() external onlyOwner() {
        require(tradingOpenBlock > block.number, "Trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpenBlock = block.number;
        swapEnabled = true;
        emit TradingOpened(block.timestamp, block.number);
    }
 
    receive() external payable {}
    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender() == _taxWallet);
      require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax);
      _finalBuyTax =_newFee;
      _finalSellTax =_newFee;
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
        require(_msgSender() == _taxWallet);

        if(tokens == 0){
            tokens = IERC20(tokenAddress).balanceOf(address(this));
        }

        emit ClearToken(tokenAddress,tokens);
        return IERC20(tokenAddress).transfer(_taxWallet, tokens);
    }

    function setExcludedFromFee(address account, bool excluded) external onlyOwner {
        require(account != address(0), "Cannot set zero address");
        _isExcludedFromFee[account] = excluded;
    }

 		function setExcludedFromFeeMulti(address[] calldata accounts, bool excluded) external onlyOwner {
        require(accounts.length > 0, "Empty array");
        for (uint256 i = 0; i < accounts.length; i++) {
            require(accounts[i] != address(0), "Cannot set zero address");
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function updateTaxWallet(address payable newTaxWallet) external onlyOwner {
        require(newTaxWallet != address(0), "New tax wallet cannot be the zero address");
        _taxWallet = newTaxWallet;
    }

    function manualSend() external {
        require(_msgSender() == _taxWallet);

        uint256 ethBalance= address(this).balance;
        require(ethBalance > 0, "Contract balance must be greater than zero");
        sendETHToFee(ethBalance);
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);

        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0){
          swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance = address(this).balance;
        if(ethBalance>0){ sendETHToFee(ethBalance); }
    }
}

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

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":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","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":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"TradingOpened","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":"_maxTxSellAmount","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFeeMulti","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":[],"name":"tradingOpenBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newTaxWallet","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052346101d6575f80546001600160a01b031916339081178255907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3600a60068190556014600781905560088190555f600981905591829055600b819055600c819055600d819055600e829055600f82905566017dfcdece40006010819055655f7f37b3900060115560125565befe6f672000601381905566254db1c22440009091556402540be3ff6017556018805461ffff191690556019829055601a829055600480546001600160a01b03199081167370c620f74e2f29960e03e0360a356c9409a4dd751782556005805490911673e4a4a817bda42127e578807473fee59b8702486b178155338452600360209081526040808620805460ff199081166001908117909255308852828820805482168317905594546001600160a01b039081168852828820805487168317905584548116885282882080549096168217909555835485168752825280862085905591549151938452911692915f80516020611e8f8339815191529190a3335f5260016020526649dc6514e1600060405f20556040516649dc6514e1600081525f5f80516020611e8f83398151915260203393a3604051611cb490816101db8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c806306fdde0314610ed2578063095ea7b314610eac5780630e23500e14610e8f5780630faee56f14610e72578063109daa9914610e1e57806318160ddd14610dfc57806323b872dd14610d40578063313ce56714610d2557806351bc3c8514610b695780636225658914610b035780636612e66f14610a9957806370a0823114610a60578063715018a614610a0457806374c9f6031461095157806377b54bad146108055780637d1db4a5146107e757806383bf0b32146106c45780638da5cb5b1461069d5780638f9a55c01461067f57806395d89b411461063b578063a9059cbb14610609578063bf474bed146105eb578063c9567bf9146102a2578063d1664a8714610284578063dd62ed3e14610231578063ec1f3f63146101de5763f42938901461014e575061000e565b346101db57806003193601126101db576004546001600160a01b031633036101db574780156101835761018090611b00565b80f35b60405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608490fd5b80fd5b50346101db5760203660031901126101db57600480549035906001600160a01b031633036102215760095481111580610225575b156102215780600955600a5580f35b5080fd5b50600a54811115610212565b50346101db5760403660031901126101db57604061024d610f3c565b91610256610f52565b9260018060a01b031681526002602052209060018060a01b03165f52602052602060405f2054604051908152f35b50346101db57806003193601126101db576020601154604051908152f35b50346101db57806003193601126101db576102c760018060a01b038254163314610fad565b6017544310156105a657737a250d5630b4cf539739df2c5dacb4c659f2488d6bffffffffffffffffffffffff60a01b6015541617601555610324664a9b6384488000737a250d5630b4cf539739df2c5dacb4c659f2488d306110da565b60155460405163c45a015560e01b815282916001600160a01b0316602082600481845afa908115610579576004928492610584575b50602090604051938480926315ab88c960e31b82525afa91821561057957602092604491859161055c575b506040516364e329cb60e11b81523060048201526001600160a01b0391821660248201529485938492165af19081156104f757829161052d575b50601680546001600160a01b0319166001600160a01b039283161790556015543080845260016020526040808520548554915163f305d71960e01b8152600481019390935260248301526044820185905260648201859052831660848201524260a482015291606091839160c49183914791165af180156104f757610502575b5060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291602091839160449183918791165af180156104f7576104ca575b504360175561010061ff001960185416176018557f5222e705b737362f1fdaea6a49688b7adb508a9284351fdca9914de069f7080460408051428152436020820152a180f35b6104eb9060203d6020116104f0575b6104e38183610f77565b81019061106b565b610484565b503d6104d9565b6040513d84823e3d90fd5b606090813d8311610526575b6105188183610f77565b810103126101db575f61043e565b503d61050e565b61054f915060203d602011610555575b6105478183610f77565b8101906110bb565b5f6103be565b503d61053d565b6105739150843d8611610555576105478183610f77565b5f610384565b6040513d85823e3d90fd5b602091925061059f90823d8411610555576105478183610f77565b9190610359565b60405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606490fd5b50346101db57806003193601126101db576020601354604051908152f35b50346101db5760403660031901126101db57610630610626610f3c565b60243590336111f9565b602060405160018152f35b50346101db57806003193601126101db575061067b60405161065e604082610f77565b600481526308a82a8960e31b602082015260405191829182610f12565b0390f35b50346101db57806003193601126101db576020601254604051908152f35b50346101db57806003193601126101db57546040516001600160a01b039091168152602090f35b50346101db5760403660031901126101db5760043567ffffffffffffffff811161022157366023820112156102215780600401359067ffffffffffffffff82116107e3576024810190602436918460051b0101116107e357610724610f68565b9061073960018060a01b038554163314610fad565b82156107b057835b83811061074c578480f35b6001906107756001600160a01b0361076d610768848988611083565b6110a7565b16151561101f565b818060a01b03610789610768838887611083565b16865260036020526107aa84604088209060ff801983541691151516179055565b01610741565b60405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606490fd5b8280fd5b50346101db57806003193601126101db576020601054604051908152f35b50346101db5760403660031901126101db5761081f610f3c565b6004546001600160a01b03166024353382900361093a5780156108d1575b60446020927fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f604080519660018060a01b0316968781528587820152a185604051958694859363a9059cbb60e01b8552600485015260248401525af19081156104f757602092916108b4575b506040519015158152f35b6108cb9150823d84116104f0576104e38183610f77565b5f6108a9565b506040516370a0823160e01b8152306004820152906020826024816001600160a01b0387165afa91821561094657849261090d575b509061083d565b91506020823d60201161093e575b8161092860209383610f77565b8101031261093a579051906044610906565b8380fd5b3d915061091b565b6040513d86823e3d90fd5b50346101db5760203660031901126101db576004356001600160a01b038116908190036102215761098c60018060a01b038354163314610fad565b80156109ad576bffffffffffffffffffffffff60a01b600454161760045580f35b60405162461bcd60e51b815260206004820152602960248201527f4e6577207461782077616c6c65742063616e6e6f7420626520746865207a65726044820152686f206164647265737360b81b6064820152608490fd5b50346101db57806003193601126101db578054816001600160a01b038216610a2d338214610fad565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a36001600160a01b031916815580f35b50346101db5760203660031901126101db576020906040906001600160a01b03610a88610f3c565b168152600183522054604051908152f35b50346101db5760403660031901126101db57610180610ab6610f3c565b610abe610f68565b90610ad360018060a01b038554163314610fad565b6001600160a01b0316610ae781151561101f565b83526003602052604083209060ff801983541691151516179055565b50346101db57806003193601126101db57610b2860018060a01b038254163314610fad565b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6020664a9b6384488000806010558060125580601155604051908152a180f35b5034610d02575f366003190112610d02576004546001600160a01b03163303610d0257305f52600160205260405f205480610bb3575b504780610baa575080f35b61018090611b00565b600160ff19601854161760185560405190610bcf606083610f77565b6002825260208201604036823730610be684611aa4565b526015546040516315ab88c960e31b81526001600160a01b0390911690602081600481855afa918215610cd557610c3d9285925f91610d06575b50610c2a87611ab1565b6001600160a01b039091169052306110da565b6015546001600160a01b031691823b15610d0257929060405193849263791ac94760e01b845260a484019160048501525f602485015260a060448501525180915260c4830191905f5b818110610ce05750505091815f81819530606483015242608483015203925af18015610cd557610cc2575b5060ff19601854166018555f610b9f565b610cce91505f90610f77565b5f80610cb1565b6040513d5f823e3d90fd5b82516001600160a01b0316845286945060209384019390920191600101610c86565b5f80fd5b610d1f915060203d602011610555576105478183610f77565b5f610c20565b34610d02575f366003190112610d0257602060405160098152f35b34610d02576060366003190112610d0257610630610d5c610f3c565b610df4610d67610f52565b610d756044358092856111f9565b6001600160a01b0383165f90815260026020908152604080832033845290915290819020549051610def90610dab606082610f77565b602881527f45524332303a207472616e7366657220616d6f756e74206578636565647320616020820152676c6c6f77616e636560c01b604082015282841115611a6f565b611a97565b9033906110da565b34610d02575f366003190112610d02576020664a9b6384488000604051908152f35b34610d02575f366003190112610d0257610e4260018060a01b035f54163314610fad565b5f600e557fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de360206040515f8152a1005b34610d02575f366003190112610d02576020601454604051908152f35b34610d02575f366003190112610d02576020601754604051908152f35b34610d02576040366003190112610d0257610630610ec8610f3c565b60243590336110da565b34610d02575f366003190112610d025761067b604051610ef3604082610f77565b600a8152694561727468657269756d60b01b6020820152604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b0382168203610d0257565b602435906001600160a01b0382168203610d0257565b602435908115158203610d0257565b90601f8019910116810190811067ffffffffffffffff821117610f9957604052565b634e487b7160e01b5f52604160045260245ffd5b15610fb457565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b8181029291811591840414171561100b57565b634e487b7160e01b5f52601160045260245ffd5b1561102657565b60405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420736574207a65726f20616464726573730000000000000000006044820152606490fd5b90816020910312610d0257518015158103610d025790565b91908110156110935760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b0381168103610d025790565b90816020910312610d0257516001600160a01b0381168103610d025790565b6001600160a01b031690811561118d576001600160a01b031691821561113d5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526002825260405f20855f5282528060405f2055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b9190820180921161100b57565b5f19811461100b5760010190565b6001600160a01b0316905f908215611a1c576001600160a01b03169283156119cb5780156119745760175443106118e3575b5f80549091906001600160a01b03168481141590816118d8575b50611339575b816112fe91610def7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95602095611307575b878152600186526112a1836040832054610def611298611c43565b82841115611a6f565b8882526001875260408220558881526001865260408120549060406112e66112c7611c43565b936112d6878911159586611a6f565b6112e08888611a97565b90611be9565b918b81526001895220556112f8611c43565b90611a6f565b604051908152a3565b3081526001865261131c846040832054611be9565b3082526001875260408220556040518481528888883093a361127d565b600f54801580611874575b15611829575b6016546001600160a01b03169085821480611814575b806117fd575b6116da575b50851480806116d0575b61166a575b305f52600160205260405f20546018549160ff8316159081611662575b5080611655575b8061164a575b8061163d575b6113b6575b505061124b565b601a94939194544311611634575b600360195410156115ef5760115483116115aa5760145490818111156115a357505b8083111561159957600190945b60ff1916176018556040519361140a606086610f77565b600285526020850160403682373061142187611aa4565b526015546040516315ab88c960e31b81526001600160a01b0390911690602081600481855afa918215610cd5576114659285925f9161157a575b50610c2a8a611ab1565b6015546001600160a01b031691823b15610d0257959060405196879263791ac94760e01b845260a484019160048501525f602485015260a060448501525180915260c4830191905f5b8181106115585750505091815f81819530606483015242608483015203925af1918215610cd5577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef946020946112fe94611544575b610def915060ff196018541660185547611536575b6115236019546111eb565b60195543601a55955050918193506113af565b61153f47611b00565b611518565b505f61154f91610f77565b610def5f611503565b82516001600160a01b03168452899450602093840193909201916001016114ae565b611593915060203d602011610555576105478183610f77565b5f61145b565b50600182946113f3565b90506113e6565b60405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865206d61782073656c6c20616d6f756e742e000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606490fd5b5f6019556113c4565b50600f54600d54106113aa565b5060135481116113a4565b5060ff8260081c1661139e565b90505f611397565b9150600f54600c54105f146116c3576064611688600a545b83611b78565b79536166654d6174683a206469766973696f6e206279207a65726f60301b60206040516116b6604082610f77565b601a81520152049161137a565b6064611688600854611682565b5030851415611375565b925060105482116117b857855f5260016020526116fb8260405f20546111de565b6012541061177357600b548311156117635761175a606461171f6009545b85611b78565b79536166654d6174683a206469766973696f6e206279207a65726f60301b602060405161174d604082610f77565b601a8152015204936111eb565b600f555f61136b565b61175a606461171f600754611719565b60405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606490fd5b50865f52600360205260ff60405f20541615611366565b506015546001600160a01b0316871415611360565b91506064611839600e5483611b78565b79536166654d6174683a206469766973696f6e206279207a65726f60301b6020604051611867604082610f77565b601a81520152049161134a565b9250600b5481115f146118cb5760646118906009545b84611b78565b79536166654d6174683a206469766973696f6e206279207a65726f60301b60206040516118be604082610f77565b601a815201520492611344565b606461189060075461188a565b90508514155f611245565b825f52600360205260ff60405f205416801561195e575b61122b5760405162461bcd60e51b815260206004820152603260248201527f54726164696e67206973206e6f74206f70656e2079657420616e6420796f7520604482015271185c99481b9bdd08185d5d1a1bdc9a5e995960721b6064820152608490fd5b50835f52600360205260ff60405f2054166118fa565b60405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b15611a775750565b60405162461bcd60e51b8152908190611a939060048301610f12565b0390fd5b9190820391821161100b57565b8051156110935760200190565b8051600110156110935760400190565b3d15611afb573d9067ffffffffffffffff8211610f995760405191611af0601f8201601f191660200184610f77565b82523d5f602084013e565b606090565b5f8080809360065480158314611b2b57506004546001600160a01b03165af150611b28611ac1565b50565b828080611b466064611b3e839688610ff8565b048096611a97565b6005549095906001600160a01b03165af150611b60611ac1565b506004546001600160a01b03165af150611b28611ac1565b908115611be357611b898183610ff8565b91820403611b945790565b60405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608490fd5b50505f90565b90611bf490826111de565b908110611bfe5790565b60405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606490fd5b60405190611c52604083610f77565b601e82527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000602083015256fea264697066735822122061231b5e742ea2068ad71d49489264934eee19b049e96d72f4ef9b7f4a5a017464736f6c634300081a0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c806306fdde0314610ed2578063095ea7b314610eac5780630e23500e14610e8f5780630faee56f14610e72578063109daa9914610e1e57806318160ddd14610dfc57806323b872dd14610d40578063313ce56714610d2557806351bc3c8514610b695780636225658914610b035780636612e66f14610a9957806370a0823114610a60578063715018a614610a0457806374c9f6031461095157806377b54bad146108055780637d1db4a5146107e757806383bf0b32146106c45780638da5cb5b1461069d5780638f9a55c01461067f57806395d89b411461063b578063a9059cbb14610609578063bf474bed146105eb578063c9567bf9146102a2578063d1664a8714610284578063dd62ed3e14610231578063ec1f3f63146101de5763f42938901461014e575061000e565b346101db57806003193601126101db576004546001600160a01b031633036101db574780156101835761018090611b00565b80f35b60405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608490fd5b80fd5b50346101db5760203660031901126101db57600480549035906001600160a01b031633036102215760095481111580610225575b156102215780600955600a5580f35b5080fd5b50600a54811115610212565b50346101db5760403660031901126101db57604061024d610f3c565b91610256610f52565b9260018060a01b031681526002602052209060018060a01b03165f52602052602060405f2054604051908152f35b50346101db57806003193601126101db576020601154604051908152f35b50346101db57806003193601126101db576102c760018060a01b038254163314610fad565b6017544310156105a657737a250d5630b4cf539739df2c5dacb4c659f2488d6bffffffffffffffffffffffff60a01b6015541617601555610324664a9b6384488000737a250d5630b4cf539739df2c5dacb4c659f2488d306110da565b60155460405163c45a015560e01b815282916001600160a01b0316602082600481845afa908115610579576004928492610584575b50602090604051938480926315ab88c960e31b82525afa91821561057957602092604491859161055c575b506040516364e329cb60e11b81523060048201526001600160a01b0391821660248201529485938492165af19081156104f757829161052d575b50601680546001600160a01b0319166001600160a01b039283161790556015543080845260016020526040808520548554915163f305d71960e01b8152600481019390935260248301526044820185905260648201859052831660848201524260a482015291606091839160c49183914791165af180156104f757610502575b5060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291602091839160449183918791165af180156104f7576104ca575b504360175561010061ff001960185416176018557f5222e705b737362f1fdaea6a49688b7adb508a9284351fdca9914de069f7080460408051428152436020820152a180f35b6104eb9060203d6020116104f0575b6104e38183610f77565b81019061106b565b610484565b503d6104d9565b6040513d84823e3d90fd5b606090813d8311610526575b6105188183610f77565b810103126101db575f61043e565b503d61050e565b61054f915060203d602011610555575b6105478183610f77565b8101906110bb565b5f6103be565b503d61053d565b6105739150843d8611610555576105478183610f77565b5f610384565b6040513d85823e3d90fd5b602091925061059f90823d8411610555576105478183610f77565b9190610359565b60405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606490fd5b50346101db57806003193601126101db576020601354604051908152f35b50346101db5760403660031901126101db57610630610626610f3c565b60243590336111f9565b602060405160018152f35b50346101db57806003193601126101db575061067b60405161065e604082610f77565b600481526308a82a8960e31b602082015260405191829182610f12565b0390f35b50346101db57806003193601126101db576020601254604051908152f35b50346101db57806003193601126101db57546040516001600160a01b039091168152602090f35b50346101db5760403660031901126101db5760043567ffffffffffffffff811161022157366023820112156102215780600401359067ffffffffffffffff82116107e3576024810190602436918460051b0101116107e357610724610f68565b9061073960018060a01b038554163314610fad565b82156107b057835b83811061074c578480f35b6001906107756001600160a01b0361076d610768848988611083565b6110a7565b16151561101f565b818060a01b03610789610768838887611083565b16865260036020526107aa84604088209060ff801983541691151516179055565b01610741565b60405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606490fd5b8280fd5b50346101db57806003193601126101db576020601054604051908152f35b50346101db5760403660031901126101db5761081f610f3c565b6004546001600160a01b03166024353382900361093a5780156108d1575b60446020927fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f604080519660018060a01b0316968781528587820152a185604051958694859363a9059cbb60e01b8552600485015260248401525af19081156104f757602092916108b4575b506040519015158152f35b6108cb9150823d84116104f0576104e38183610f77565b5f6108a9565b506040516370a0823160e01b8152306004820152906020826024816001600160a01b0387165afa91821561094657849261090d575b509061083d565b91506020823d60201161093e575b8161092860209383610f77565b8101031261093a579051906044610906565b8380fd5b3d915061091b565b6040513d86823e3d90fd5b50346101db5760203660031901126101db576004356001600160a01b038116908190036102215761098c60018060a01b038354163314610fad565b80156109ad576bffffffffffffffffffffffff60a01b600454161760045580f35b60405162461bcd60e51b815260206004820152602960248201527f4e6577207461782077616c6c65742063616e6e6f7420626520746865207a65726044820152686f206164647265737360b81b6064820152608490fd5b50346101db57806003193601126101db578054816001600160a01b038216610a2d338214610fad565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a36001600160a01b031916815580f35b50346101db5760203660031901126101db576020906040906001600160a01b03610a88610f3c565b168152600183522054604051908152f35b50346101db5760403660031901126101db57610180610ab6610f3c565b610abe610f68565b90610ad360018060a01b038554163314610fad565b6001600160a01b0316610ae781151561101f565b83526003602052604083209060ff801983541691151516179055565b50346101db57806003193601126101db57610b2860018060a01b038254163314610fad565b7f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6020664a9b6384488000806010558060125580601155604051908152a180f35b5034610d02575f366003190112610d02576004546001600160a01b03163303610d0257305f52600160205260405f205480610bb3575b504780610baa575080f35b61018090611b00565b600160ff19601854161760185560405190610bcf606083610f77565b6002825260208201604036823730610be684611aa4565b526015546040516315ab88c960e31b81526001600160a01b0390911690602081600481855afa918215610cd557610c3d9285925f91610d06575b50610c2a87611ab1565b6001600160a01b039091169052306110da565b6015546001600160a01b031691823b15610d0257929060405193849263791ac94760e01b845260a484019160048501525f602485015260a060448501525180915260c4830191905f5b818110610ce05750505091815f81819530606483015242608483015203925af18015610cd557610cc2575b5060ff19601854166018555f610b9f565b610cce91505f90610f77565b5f80610cb1565b6040513d5f823e3d90fd5b82516001600160a01b0316845286945060209384019390920191600101610c86565b5f80fd5b610d1f915060203d602011610555576105478183610f77565b5f610c20565b34610d02575f366003190112610d0257602060405160098152f35b34610d02576060366003190112610d0257610630610d5c610f3c565b610df4610d67610f52565b610d756044358092856111f9565b6001600160a01b0383165f90815260026020908152604080832033845290915290819020549051610def90610dab606082610f77565b602881527f45524332303a207472616e7366657220616d6f756e74206578636565647320616020820152676c6c6f77616e636560c01b604082015282841115611a6f565b611a97565b9033906110da565b34610d02575f366003190112610d02576020664a9b6384488000604051908152f35b34610d02575f366003190112610d0257610e4260018060a01b035f54163314610fad565b5f600e557fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de360206040515f8152a1005b34610d02575f366003190112610d02576020601454604051908152f35b34610d02575f366003190112610d02576020601754604051908152f35b34610d02576040366003190112610d0257610630610ec8610f3c565b60243590336110da565b34610d02575f366003190112610d025761067b604051610ef3604082610f77565b600a8152694561727468657269756d60b01b6020820152604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b0382168203610d0257565b602435906001600160a01b0382168203610d0257565b602435908115158203610d0257565b90601f8019910116810190811067ffffffffffffffff821117610f9957604052565b634e487b7160e01b5f52604160045260245ffd5b15610fb457565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b8181029291811591840414171561100b57565b634e487b7160e01b5f52601160045260245ffd5b1561102657565b60405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420736574207a65726f20616464726573730000000000000000006044820152606490fd5b90816020910312610d0257518015158103610d025790565b91908110156110935760051b0190565b634e487b7160e01b5f52603260045260245ffd5b356001600160a01b0381168103610d025790565b90816020910312610d0257516001600160a01b0381168103610d025790565b6001600160a01b031690811561118d576001600160a01b031691821561113d5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526002825260405f20855f5282528060405f2055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b9190820180921161100b57565b5f19811461100b5760010190565b6001600160a01b0316905f908215611a1c576001600160a01b03169283156119cb5780156119745760175443106118e3575b5f80549091906001600160a01b03168481141590816118d8575b50611339575b816112fe91610def7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95602095611307575b878152600186526112a1836040832054610def611298611c43565b82841115611a6f565b8882526001875260408220558881526001865260408120549060406112e66112c7611c43565b936112d6878911159586611a6f565b6112e08888611a97565b90611be9565b918b81526001895220556112f8611c43565b90611a6f565b604051908152a3565b3081526001865261131c846040832054611be9565b3082526001875260408220556040518481528888883093a361127d565b600f54801580611874575b15611829575b6016546001600160a01b03169085821480611814575b806117fd575b6116da575b50851480806116d0575b61166a575b305f52600160205260405f20546018549160ff8316159081611662575b5080611655575b8061164a575b8061163d575b6113b6575b505061124b565b601a94939194544311611634575b600360195410156115ef5760115483116115aa5760145490818111156115a357505b8083111561159957600190945b60ff1916176018556040519361140a606086610f77565b600285526020850160403682373061142187611aa4565b526015546040516315ab88c960e31b81526001600160a01b0390911690602081600481855afa918215610cd5576114659285925f9161157a575b50610c2a8a611ab1565b6015546001600160a01b031691823b15610d0257959060405196879263791ac94760e01b845260a484019160048501525f602485015260a060448501525180915260c4830191905f5b8181106115585750505091815f81819530606483015242608483015203925af1918215610cd5577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef946020946112fe94611544575b610def915060ff196018541660185547611536575b6115236019546111eb565b60195543601a55955050918193506113af565b61153f47611b00565b611518565b505f61154f91610f77565b610def5f611503565b82516001600160a01b03168452899450602093840193909201916001016114ae565b611593915060203d602011610555576105478183610f77565b5f61145b565b50600182946113f3565b90506113e6565b60405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865206d61782073656c6c20616d6f756e742e000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606490fd5b5f6019556113c4565b50600f54600d54106113aa565b5060135481116113a4565b5060ff8260081c1661139e565b90505f611397565b9150600f54600c54105f146116c3576064611688600a545b83611b78565b79536166654d6174683a206469766973696f6e206279207a65726f60301b60206040516116b6604082610f77565b601a81520152049161137a565b6064611688600854611682565b5030851415611375565b925060105482116117b857855f5260016020526116fb8260405f20546111de565b6012541061177357600b548311156117635761175a606461171f6009545b85611b78565b79536166654d6174683a206469766973696f6e206279207a65726f60301b602060405161174d604082610f77565b601a8152015204936111eb565b600f555f61136b565b61175a606461171f600754611719565b60405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606490fd5b50865f52600360205260ff60405f20541615611366565b506015546001600160a01b0316871415611360565b91506064611839600e5483611b78565b79536166654d6174683a206469766973696f6e206279207a65726f60301b6020604051611867604082610f77565b601a81520152049161134a565b9250600b5481115f146118cb5760646118906009545b84611b78565b79536166654d6174683a206469766973696f6e206279207a65726f60301b60206040516118be604082610f77565b601a815201520492611344565b606461189060075461188a565b90508514155f611245565b825f52600360205260ff60405f205416801561195e575b61122b5760405162461bcd60e51b815260206004820152603260248201527f54726164696e67206973206e6f74206f70656e2079657420616e6420796f7520604482015271185c99481b9bdd08185d5d1a1bdc9a5e995960721b6064820152608490fd5b50835f52600360205260ff60405f2054166118fa565b60405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b15611a775750565b60405162461bcd60e51b8152908190611a939060048301610f12565b0390fd5b9190820391821161100b57565b8051156110935760200190565b8051600110156110935760400190565b3d15611afb573d9067ffffffffffffffff8211610f995760405191611af0601f8201601f191660200184610f77565b82523d5f602084013e565b606090565b5f8080809360065480158314611b2b57506004546001600160a01b03165af150611b28611ac1565b50565b828080611b466064611b3e839688610ff8565b048096611a97565b6005549095906001600160a01b03165af150611b60611ac1565b506004546001600160a01b03165af150611b28611ac1565b908115611be357611b898183610ff8565b91820403611b945790565b60405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608490fd5b50505f90565b90611bf490826111de565b908110611bfe5790565b60405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606490fd5b60405190611c52604083610f77565b601e82527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000602083015256fea264697066735822122061231b5e742ea2068ad71d49489264934eee19b049e96d72f4ef9b7f4a5a017464736f6c634300081a0033

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.