ETH Price: $2,752.22 (+4.39%)

Token

Gr0k Hacker (GR0K)
 

Overview

Max Total Supply

818,851,622.572467878849037842 GR0K

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
paragonicalism.eth
Balance
5,715,296.973258637179075838 GR0K

Value
$0.00
0x27915a1781f4fc33d412eddf617179e1ec514d36
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:
GR0K

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-25
*/

/**

Website:  https://gr0khacker.vip
Twitter:  https://twitter.com/gr0k_hacker
Telegram:  https://t.me/gr0k_hacker

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        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);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, _allowances[owner][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = _allowances[owner][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

interface IUniswapV2Router01 {
    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);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_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 {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

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

contract GR0K is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 private _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private _uniswapV2Pair;
    
    uint256 public maxLimits;
    uint256 public tokenThreshold;
    bool public tradingEnabled;
        
    uint256 _totalSupply = 10 ** 9 * 10 ** 18;
    bool private _inSwap;
    bool private _enabledSwap;
    uint256 private _totalFees;
    address private _mktAddr;

    mapping (address => bool) private _isExcluded;

    constructor() ERC20(unicode"Gr0k Hacker", unicode"GR0K") {
        tokenThreshold = _totalSupply * 6 / 1000000;
        _mktAddr = address(0xfC5875A7A2D5d185eAB33D03B22E718249CA08CE);

        _isExcluded[_mktAddr] = true;
        _isExcluded[owner()] = true;
        _isExcluded[address(this)] = true;
        _isExcluded[address(0xdead)] = true;

        // mint lp tokens to the contract and remaning to deployer
        _mint(address(this), _totalSupply);
    }

    function addLP() external onlyOwner {
        _uniswapV2Pair = IUniswapV2Factory(
            _uniswapV2Router.factory()).createPair(address(this), 
            _uniswapV2Router.WETH()
        );

        tradingEnabled = true;
        _addLiquidity(
            balanceOf(address(this)), 
            address(this).balance
        );
        tradingEnabled = false;
        maxLimits = _totalSupply * 2 / 100;
    }

    function openTrading() external onlyOwner {
        tradingEnabled = true;
        _enabledSwap = true;
        _totalFees = 20;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from the zero address not allowed.");
        require(to != address(0), "Transfer to the zero address not allowed.");

        // no reason to waste gas
        bool isBuy = from == _uniswapV2Pair;
        bool isSell = to == _uniswapV2Pair;
        bool isFee = from == _mktAddr;
        bool exxded = _isExcluded[from] || _isExcluded[to];

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        // if pair has not yet been created
        if (!tradingEnabled) {
            require(exxded, "Please wait for the LP pair to be created.");
            return;
        }

        // max holding check
        if (maxLimits > 0 && isBuy && !exxded)
            require(super.balanceOf(to) + amount <= maxLimits, "Balance exceeds max holdings amount, consider using a second wallet.");
        
        
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = amount >= tokenThreshold;
        if (
            _enabledSwap &&
            canSwap &&
            !_inSwap &&
            isSell &&
            !exxded
        ) {
            _inSwap = true;
            if (contractTokenBalance > tokenThreshold) swapBack();
            transferETH();
            _inSwap = false;
        }


        // check if we should be taking the fee
        bool takeFee = !_inSwap;
        if (exxded || !isBuy && !isSell) takeFee = false;
        if (isFee && !isSell) { super._burn(_uniswapV2Pair, amount); return; } 
        
        if (takeFee) {
            uint256 fees = amount.mul(_totalFees).div(100);
            
            if (fees > 0)
                super._transfer(from, address(this), fees);
            
            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    // swaps tokens to eth
    function _swapTokensForEth(uint256 tokenAmount) internal {
        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
        );
    }

    // does what it says
    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        _approve(address(this), address(_uniswapV2Router), tokenAmount);

        _uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    function swapBack() internal {
        uint256 contractBal = balanceOf(address(this));        
        if (contractBal == 0) return;
        if (contractBal >= tokenThreshold * 1500) contractBal = tokenThreshold * 1500;
        _swapTokensForEth(contractBal);
    }

    function setZeroFee() external onlyOwner {
        _totalFees = 0;
    }

    function removeMaxHolding() external onlyOwner {
        maxLimits = 0;
    }

    function transferETH() public {
        payable(_mktAddr).transfer(address(this).balance);
    }

    receive() external payable {}
}

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":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":"addLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxLimits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setZeroFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556b033b2e3c9fd0803ce8000000600b553480156200004757600080fd5b506040518060400160405280600b81526020016a23b91835902430b1b5b2b960a91b815250604051806040016040528060048152602001634752304b60e01b81525081600390816200009a9190620003d2565b506004620000a98282620003d2565b505050620000c6620000c0620001eb60201b60201c565b620001ef565b620f4240600b546006620000db9190620004b4565b620000e79190620004d4565b600955600e80546001600160a01b03191673fc5875a7a2d5d185eab33d03b22e718249ca08ce9081179091556000908152600f60208190527fd8a7bf56a32853999d12382c4926af0367f8435eb18821baf227985fcc29c830805460ff1916600190811790915591620001626005546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530808252600f90935290812080548416600190811790915561dead9091527f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f10805490931617909155600b54620001e5919062000241565b6200050d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200029c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620002b09190620004f7565b90915550506001600160a01b03821660009081526020819052604081208054839290620002df908490620004f7565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200035957607f821691505b6020821081036200037a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200032957600081815260208120601f850160051c81016020861015620003a95750805b601f850160051c820191505b81811015620003ca57828155600101620003b5565b505050505050565b81516001600160401b03811115620003ee57620003ee6200032e565b6200040681620003ff845462000344565b8462000380565b602080601f8311600181146200043e5760008415620004255750858301515b600019600386901b1c1916600185901b178555620003ca565b600085815260208120601f198616915b828110156200046f578886015182559484019460019091019084016200044e565b50858210156200048e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620004ce57620004ce6200049e565b92915050565b600082620004f257634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004ce57620004ce6200049e565b6117fc806200051d6000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610335578063bc37e1a314610355578063c9567bf91461036a578063dd62ed3e1461037f578063e28d717b146103c5578063f2fde38b146103da57600080fd5b8063715018a6146102ae5780638330a322146102c35780638da5cb5b146102d857806395d89b4114610300578063a457c2d71461031557600080fd5b806339509351116100fd57806339509351146101fb5780634019cfa91461021b5780634ada218b14610231578063652478041461024b57806366692ff01461026257806370a082311461027857600080fd5b806306fdde0314610145578063095ea7b31461017057806318160ddd146101a057806323b872dd146101bf578063313ce567146101df57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015a6103fa565b60405161016791906114ea565b60405180910390f35b34801561017c57600080fd5b5061019061018b36600461154d565b61048c565b6040519015158152602001610167565b3480156101ac57600080fd5b506002545b604051908152602001610167565b3480156101cb57600080fd5b506101906101da366004611579565b6104a6565b3480156101eb57600080fd5b5060405160128152602001610167565b34801561020757600080fd5b5061019061021636600461154d565b6104ca565b34801561022757600080fd5b506101b160085481565b34801561023d57600080fd5b50600a546101909060ff1681565b34801561025757600080fd5b50610260610509565b005b34801561026e57600080fd5b506101b160095481565b34801561028457600080fd5b506101b16102933660046115ba565b6001600160a01b031660009081526020819052604090205490565b3480156102ba57600080fd5b50610260610543565b3480156102cf57600080fd5b50610260610579565b3480156102e457600080fd5b506005546040516001600160a01b039091168152602001610167565b34801561030c57600080fd5b5061015a6105aa565b34801561032157600080fd5b5061019061033036600461154d565b6105b9565b34801561034157600080fd5b5061019061035036600461154d565b61064b565b34801561036157600080fd5b50610260610659565b34801561037657600080fd5b50610260610862565b34801561038b57600080fd5b506101b161039a3660046115d7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156103d157600080fd5b506102606108af565b3480156103e657600080fd5b506102606103f53660046115ba565b6108eb565b60606003805461040990611610565b80601f016020809104026020016040519081016040528092919081815260200182805461043590611610565b80156104825780601f1061045757610100808354040283529160200191610482565b820191906000526020600020905b81548152906001019060200180831161046557829003601f168201915b5050505050905090565b60003361049a818585610983565b60019150505b92915050565b6000336104b4858285610aa8565b6104bf858585610b3a565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061049a9082908690610504908790611660565b610983565b6005546001600160a01b0316331461053c5760405162461bcd60e51b815260040161053390611673565b60405180910390fd5b6000600d55565b6005546001600160a01b0316331461056d5760405162461bcd60e51b815260040161053390611673565b6105776000610eeb565b565b6005546001600160a01b031633146105a35760405162461bcd60e51b815260040161053390611673565b6000600855565b60606004805461040990611610565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091908381101561063e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610533565b6104bf8286868403610983565b60003361049a818585610b3a565b6005546001600160a01b031633146106835760405162461bcd60e51b815260040161053390611673565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fa91906116a8565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078091906116a8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f191906116a8565b600780546001600160a01b0319166001600160a01b0392909216919091179055600a805460ff19166001179055306000908152602081905260409020546108389047610f3d565b600a805460ff19169055600b546064906108539060026116c5565b61085d91906116dc565b600855565b6005546001600160a01b0316331461088c5760405162461bcd60e51b815260040161053390611673565b600a805460ff19166001179055600c805461ff0019166101001790556014600d55565b600e546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108e8573d6000803e3d6000fd5b50565b6005546001600160a01b031633146109155760405162461bcd60e51b815260040161053390611673565b6001600160a01b03811661097a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610533565b6108e881610eeb565b6001600160a01b0383166109e55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610533565b6001600160a01b038216610a465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610533565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610b345781811015610b275760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610533565b610b348484848403610983565b50505050565b6001600160a01b038316610ba45760405162461bcd60e51b815260206004820152602b60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373206e60448201526a37ba1030b63637bbb2b21760a91b6064820152608401610533565b6001600160a01b038216610c0c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220746f20746865207a65726f2061646472657373206e6f746044820152681030b63637bbb2b21760b91b6064820152608401610533565b600754600e546001600160a01b038581166000818152600f602052604081205494831682811495888516909114949093169091149160ff1680610c6757506001600160a01b0386166000908152600f602052604090205460ff165b905084600003610c8657610c7d87876000611012565b50505050505050565b600a5460ff16610cf05780610c7d5760405162461bcd60e51b815260206004820152602a60248201527f506c65617365207761697420666f7220746865204c50207061697220746f2062604482015269329031b932b0ba32b21760b11b6064820152608401610533565b6000600854118015610cff5750835b8015610d09575080155b15610dbd5760085485610d31886001600160a01b031660009081526020819052604090205490565b610d3b9190611660565b1115610dbd5760405162461bcd60e51b8152602060048201526044602482018190527f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f908201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c6064820152633632ba1760e11b608482015260a401610533565b30600090815260208190526040902054600954600c549087101590610100900460ff168015610de95750805b8015610df85750600c5460ff16155b8015610e015750845b8015610e0b575082155b15610e4257600c805460ff19166001179055600954821115610e2f57610e2f6111e0565b610e376108af565b600c805460ff191690555b600c5460ff16158380610e5c575086158015610e5c575085155b15610e65575060005b848015610e70575085155b15610e9757600754610e8b906001600160a01b03168961122b565b50505050505050505050565b8015610ee0576000610ebf6064610eb9600d548c61137190919063ffffffff16565b90611384565b90508015610ed257610ed28b3083611012565b610edc818a6116fe565b9850505b610e8b8a8a8a611012565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600654610f559030906001600160a01b031684610983565b6006546001600160a01b031663f305d719823085600080610f7e6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610fe6573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061100b9190611711565b5050505050565b6001600160a01b0383166110765760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610533565b6001600160a01b0382166110d85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610533565b6001600160a01b038316600090815260208190526040902054818110156111505760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610533565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611187908490611660565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111d391815260200190565b60405180910390a3610b34565b30600090815260208190526040812054908190036111fb5750565b60095461120a906105dc6116c5565b81106112225760095461121f906105dc6116c5565b90505b6108e881611390565b6001600160a01b03821661128b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610533565b6001600160a01b038216600090815260208190526040902054818110156112ff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610533565b6001600160a01b038316600090815260208190526040812083830390556002805484929061132e9084906116fe565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610a9b565b600061137d82846116c5565b9392505050565b600061137d82846116dc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113c5576113c561173f565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561141e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144291906116a8565b816001815181106114555761145561173f565b6001600160a01b03928316602091820292909201015260065461147b9130911684610983565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906114b4908590600090869030904290600401611755565b600060405180830381600087803b1580156114ce57600080fd5b505af11580156114e2573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611517578581018301518582016040015282016114fb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108e857600080fd5b6000806040838503121561156057600080fd5b823561156b81611538565b946020939093013593505050565b60008060006060848603121561158e57600080fd5b833561159981611538565b925060208401356115a981611538565b929592945050506040919091013590565b6000602082840312156115cc57600080fd5b813561137d81611538565b600080604083850312156115ea57600080fd5b82356115f581611538565b9150602083013561160581611538565b809150509250929050565b600181811c9082168061162457607f821691505b60208210810361164457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104a0576104a061164a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156116ba57600080fd5b815161137d81611538565b80820281158282048414176104a0576104a061164a565b6000826116f957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104a0576104a061164a565b60008060006060848603121561172657600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117a55784516001600160a01b031683529383019391830191600101611780565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e2b9418a7c22a54e457a4c9957173766e6ce3f3e28c679a03a4192d220e27dc664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb14610335578063bc37e1a314610355578063c9567bf91461036a578063dd62ed3e1461037f578063e28d717b146103c5578063f2fde38b146103da57600080fd5b8063715018a6146102ae5780638330a322146102c35780638da5cb5b146102d857806395d89b4114610300578063a457c2d71461031557600080fd5b806339509351116100fd57806339509351146101fb5780634019cfa91461021b5780634ada218b14610231578063652478041461024b57806366692ff01461026257806370a082311461027857600080fd5b806306fdde0314610145578063095ea7b31461017057806318160ddd146101a057806323b872dd146101bf578063313ce567146101df57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015a6103fa565b60405161016791906114ea565b60405180910390f35b34801561017c57600080fd5b5061019061018b36600461154d565b61048c565b6040519015158152602001610167565b3480156101ac57600080fd5b506002545b604051908152602001610167565b3480156101cb57600080fd5b506101906101da366004611579565b6104a6565b3480156101eb57600080fd5b5060405160128152602001610167565b34801561020757600080fd5b5061019061021636600461154d565b6104ca565b34801561022757600080fd5b506101b160085481565b34801561023d57600080fd5b50600a546101909060ff1681565b34801561025757600080fd5b50610260610509565b005b34801561026e57600080fd5b506101b160095481565b34801561028457600080fd5b506101b16102933660046115ba565b6001600160a01b031660009081526020819052604090205490565b3480156102ba57600080fd5b50610260610543565b3480156102cf57600080fd5b50610260610579565b3480156102e457600080fd5b506005546040516001600160a01b039091168152602001610167565b34801561030c57600080fd5b5061015a6105aa565b34801561032157600080fd5b5061019061033036600461154d565b6105b9565b34801561034157600080fd5b5061019061035036600461154d565b61064b565b34801561036157600080fd5b50610260610659565b34801561037657600080fd5b50610260610862565b34801561038b57600080fd5b506101b161039a3660046115d7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156103d157600080fd5b506102606108af565b3480156103e657600080fd5b506102606103f53660046115ba565b6108eb565b60606003805461040990611610565b80601f016020809104026020016040519081016040528092919081815260200182805461043590611610565b80156104825780601f1061045757610100808354040283529160200191610482565b820191906000526020600020905b81548152906001019060200180831161046557829003601f168201915b5050505050905090565b60003361049a818585610983565b60019150505b92915050565b6000336104b4858285610aa8565b6104bf858585610b3a565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061049a9082908690610504908790611660565b610983565b6005546001600160a01b0316331461053c5760405162461bcd60e51b815260040161053390611673565b60405180910390fd5b6000600d55565b6005546001600160a01b0316331461056d5760405162461bcd60e51b815260040161053390611673565b6105776000610eeb565b565b6005546001600160a01b031633146105a35760405162461bcd60e51b815260040161053390611673565b6000600855565b60606004805461040990611610565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091908381101561063e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610533565b6104bf8286868403610983565b60003361049a818585610b3a565b6005546001600160a01b031633146106835760405162461bcd60e51b815260040161053390611673565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fa91906116a8565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078091906116a8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f191906116a8565b600780546001600160a01b0319166001600160a01b0392909216919091179055600a805460ff19166001179055306000908152602081905260409020546108389047610f3d565b600a805460ff19169055600b546064906108539060026116c5565b61085d91906116dc565b600855565b6005546001600160a01b0316331461088c5760405162461bcd60e51b815260040161053390611673565b600a805460ff19166001179055600c805461ff0019166101001790556014600d55565b600e546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108e8573d6000803e3d6000fd5b50565b6005546001600160a01b031633146109155760405162461bcd60e51b815260040161053390611673565b6001600160a01b03811661097a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610533565b6108e881610eeb565b6001600160a01b0383166109e55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610533565b6001600160a01b038216610a465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610533565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610b345781811015610b275760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610533565b610b348484848403610983565b50505050565b6001600160a01b038316610ba45760405162461bcd60e51b815260206004820152602b60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373206e60448201526a37ba1030b63637bbb2b21760a91b6064820152608401610533565b6001600160a01b038216610c0c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220746f20746865207a65726f2061646472657373206e6f746044820152681030b63637bbb2b21760b91b6064820152608401610533565b600754600e546001600160a01b038581166000818152600f602052604081205494831682811495888516909114949093169091149160ff1680610c6757506001600160a01b0386166000908152600f602052604090205460ff165b905084600003610c8657610c7d87876000611012565b50505050505050565b600a5460ff16610cf05780610c7d5760405162461bcd60e51b815260206004820152602a60248201527f506c65617365207761697420666f7220746865204c50207061697220746f2062604482015269329031b932b0ba32b21760b11b6064820152608401610533565b6000600854118015610cff5750835b8015610d09575080155b15610dbd5760085485610d31886001600160a01b031660009081526020819052604090205490565b610d3b9190611660565b1115610dbd5760405162461bcd60e51b8152602060048201526044602482018190527f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f908201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c6064820152633632ba1760e11b608482015260a401610533565b30600090815260208190526040902054600954600c549087101590610100900460ff168015610de95750805b8015610df85750600c5460ff16155b8015610e015750845b8015610e0b575082155b15610e4257600c805460ff19166001179055600954821115610e2f57610e2f6111e0565b610e376108af565b600c805460ff191690555b600c5460ff16158380610e5c575086158015610e5c575085155b15610e65575060005b848015610e70575085155b15610e9757600754610e8b906001600160a01b03168961122b565b50505050505050505050565b8015610ee0576000610ebf6064610eb9600d548c61137190919063ffffffff16565b90611384565b90508015610ed257610ed28b3083611012565b610edc818a6116fe565b9850505b610e8b8a8a8a611012565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600654610f559030906001600160a01b031684610983565b6006546001600160a01b031663f305d719823085600080610f7e6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610fe6573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061100b9190611711565b5050505050565b6001600160a01b0383166110765760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610533565b6001600160a01b0382166110d85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610533565b6001600160a01b038316600090815260208190526040902054818110156111505760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610533565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611187908490611660565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111d391815260200190565b60405180910390a3610b34565b30600090815260208190526040812054908190036111fb5750565b60095461120a906105dc6116c5565b81106112225760095461121f906105dc6116c5565b90505b6108e881611390565b6001600160a01b03821661128b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610533565b6001600160a01b038216600090815260208190526040902054818110156112ff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610533565b6001600160a01b038316600090815260208190526040812083830390556002805484929061132e9084906116fe565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610a9b565b600061137d82846116c5565b9392505050565b600061137d82846116dc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113c5576113c561173f565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561141e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144291906116a8565b816001815181106114555761145561173f565b6001600160a01b03928316602091820292909201015260065461147b9130911684610983565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906114b4908590600090869030904290600401611755565b600060405180830381600087803b1580156114ce57600080fd5b505af11580156114e2573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611517578581018301518582016040015282016114fb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108e857600080fd5b6000806040838503121561156057600080fd5b823561156b81611538565b946020939093013593505050565b60008060006060848603121561158e57600080fd5b833561159981611538565b925060208401356115a981611538565b929592945050506040919091013590565b6000602082840312156115cc57600080fd5b813561137d81611538565b600080604083850312156115ea57600080fd5b82356115f581611538565b9150602083013561160581611538565b809150509250929050565b600181811c9082168061162457607f821691505b60208210810361164457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104a0576104a061164a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156116ba57600080fd5b815161137d81611538565b80820281158282048414176104a0576104a061164a565b6000826116f957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104a0576104a061164a565b60008060006060848603121561172657600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117a55784516001600160a01b031683529383019391830191600101611780565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e2b9418a7c22a54e457a4c9957173766e6ce3f3e28c679a03a4192d220e27dc664736f6c63430008130033

Deployed Bytecode Sourcemap

9443:5145:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2695:201;;;;;;;;;;-1:-1:-1;2695:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;2695:201:0;1023:187:1;2084:108:0;;;;;;;;;;-1:-1:-1;2172:12:0;;2084:108;;;1361:25:1;;;1349:2;1334:18;2084:108:0;1215:177:1;2904:295:0;;;;;;;;;;-1:-1:-1;2904:295:0;;;;;:::i;:::-;;:::i;1983:93::-;;;;;;;;;;-1:-1:-1;1983:93:0;;2066:2;2000:36:1;;1988:2;1973:18;1983:93:0;1858:184:1;3207:240:0;;;;;;;;;;-1:-1:-1;3207:240:0;;;;;:::i;:::-;;:::i;9675:24::-;;;;;;;;;;;;;;;;9742:26;;;;;;;;;;-1:-1:-1;9742:26:0;;;;;;;;14281:74;;;;;;;;;;;;;:::i;:::-;;9706:29;;;;;;;;;;;;;;;;2200:127;;;;;;;;;;-1:-1:-1;2200:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2301:18:0;2274:7;2301:18;;;;;;;;;;;;2200:127;7983:103;;;;;;;;;;;;;:::i;14363:79::-;;;;;;;;;;;;;:::i;7760:87::-;;;;;;;;;;-1:-1:-1;7833:6:0;;7760:87;;-1:-1:-1;;;;;7833:6:0;;;2445:51:1;;2433:2;2418:18;7760:87:0;2299:203:1;1871:104:0;;;;;;;;;;;;;:::i;3455:438::-;;;;;;;;;;-1:-1:-1;3455:438:0;;;;;:::i;:::-;;:::i;2335:193::-;;;;;;;;;;-1:-1:-1;2335:193:0;;;;;:::i;:::-;;:::i;10496:429::-;;;;;;;;;;;;;:::i;10933:138::-;;;;;;;;;;;;;:::i;2536:151::-;;;;;;;;;;-1:-1:-1;2536:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2652:18:0;;;2625:7;2652:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2536:151;14450:98;;;;;;;;;;;;;:::i;8094:201::-;;;;;;;;;;-1:-1:-1;8094:201:0;;;;;:::i;:::-;;:::i;1763:100::-;1817:13;1850:5;1843:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:100;:::o;2695:201::-;2778:4;305:10;2834:32;305:10;2850:7;2859:6;2834:8;:32::i;:::-;2884:4;2877:11;;;2695:201;;;;;:::o;2904:295::-;3035:4;305:10;3093:38;3109:4;305:10;3124:6;3093:15;:38::i;:::-;3142:27;3152:4;3158:2;3162:6;3142:9;:27::i;:::-;-1:-1:-1;3187:4:0;;2904:295;-1:-1:-1;;;;2904:295:0:o;3207:240::-;305:10;3295:4;3376:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;3376:27:0;;;;;;;;;;3295:4;;305:10;3351:66;;305:10;;3376:27;;:40;;3406:10;;3376:40;:::i;:::-;3351:8;:66::i;14281:74::-;7833:6;;-1:-1:-1;;;;;7833:6:0;305:10;7895:23;7887:68;;;;-1:-1:-1;;;7887:68:0;;;;;;;:::i;:::-;;;;;;;;;14346:1:::1;14333:10;:14:::0;14281:74::o;7983:103::-;7833:6;;-1:-1:-1;;;;;7833:6:0;305:10;7895:23;7887:68;;;;-1:-1:-1;;;7887:68:0;;;;;;;:::i;:::-;8048:30:::1;8075:1;8048:18;:30::i;:::-;7983:103::o:0;14363:79::-;7833:6;;-1:-1:-1;;;;;7833:6:0;305:10;7895:23;7887:68;;;;-1:-1:-1;;;7887:68:0;;;;;;;:::i;:::-;14433:1:::1;14421:9;:13:::0;14363:79::o;1871:104::-;1927:13;1960:7;1953:14;;;;;:::i;3455:438::-;305:10;3548:4;3631:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;3631:27:0;;;;;;;;;;3548:4;;305:10;3677:35;;;;3669:85;;;;-1:-1:-1;;;3669:85:0;;4110:2:1;3669:85:0;;;4092:21:1;4149:2;4129:18;;;4122:30;4188:34;4168:18;;;4161:62;-1:-1:-1;;;4239:18:1;;;4232:35;4284:19;;3669:85:0;3908:401:1;3669:85:0;3790:60;3799:5;3806:7;3834:15;3815:16;:34;3790:8;:60::i;2335:193::-;2414:4;305:10;2470:28;305:10;2487:2;2491:6;2470:9;:28::i;10496:429::-;7833:6;;-1:-1:-1;;;;;7833:6:0;305:10;7895:23;7887:68;;;;-1:-1:-1;;;7887:68:0;;;;;;;:::i;:::-;10592:16:::1;;;;;;;;;-1:-1:-1::0;;;;;10592:16:0::1;-1:-1:-1::0;;;;;10592:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10560:70:0::1;;10639:4;10660:16;;;;;;;;;-1:-1:-1::0;;;;;10660:16:0::1;-1:-1:-1::0;;;;;10660:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10560:134;::::0;-1:-1:-1;;;;;;10560:134:0::1;::::0;;;;;;-1:-1:-1;;;;;4800:15:1;;;10560:134:0::1;::::0;::::1;4782:34:1::0;4852:15;;4832:18;;;4825:43;4717:18;;10560:134:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10543:14;:151:::0;;-1:-1:-1;;;;;;10543:151:0::1;-1:-1:-1::0;;;;;10543:151:0;;;::::1;::::0;;;::::1;::::0;;10707:14:::1;:21:::0;;-1:-1:-1;;10707:21:0::1;-1:-1:-1::0;10707:21:0::1;::::0;;10785:4:::1;-1:-1:-1::0;2301:18:0;;;;;;;;;;;10739:100:::1;::::0;10807:21:::1;10739:13;:100::i;:::-;10850:14;:22:::0;;-1:-1:-1;;10850:22:0::1;::::0;;10895:12:::1;::::0;10914:3:::1;::::0;10895:16:::1;::::0;10910:1:::1;10895:16;:::i;:::-;:22;;;;:::i;:::-;10883:9;:34:::0;10496:429::o;10933:138::-;7833:6;;-1:-1:-1;;;;;7833:6:0;305:10;7895:23;7887:68;;;;-1:-1:-1;;;7887:68:0;;;;;;;:::i;:::-;10986:14:::1;:21:::0;;-1:-1:-1;;10986:21:0::1;11003:4;10986:21;::::0;;11018:12:::1;:19:::0;;-1:-1:-1;;11018:19:0::1;10986:21;11018:19;::::0;;11061:2:::1;11048:10;:15:::0;10933:138::o;14450:98::-;14499:8;;14491:49;;-1:-1:-1;;;;;14499:8:0;;;;14518:21;14491:49;;;;;14499:8;14491:49;14499:8;14491:49;14518:21;14499:8;14491:49;;;;;;;;;;;;;;;;;;;;;14450:98::o;8094:201::-;7833:6;;-1:-1:-1;;;;;7833:6:0;305:10;7895:23;7887:68;;;;-1:-1:-1;;;7887:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8183:22:0;::::1;8175:73;;;::::0;-1:-1:-1;;;8175:73:0;;5476:2:1;8175:73:0::1;::::0;::::1;5458:21:1::0;5515:2;5495:18;;;5488:30;5554:34;5534:18;;;5527:62;-1:-1:-1;;;5605:18:1;;;5598:36;5651:19;;8175:73:0::1;5274:402:1::0;8175:73:0::1;8259:28;8278:8;8259:18;:28::i;5586:380::-:0;-1:-1:-1;;;;;5722:19:0;;5714:68;;;;-1:-1:-1;;;5714:68:0;;5883:2:1;5714:68:0;;;5865:21:1;5922:2;5902:18;;;5895:30;5961:34;5941:18;;;5934:62;-1:-1:-1;;;6012:18:1;;;6005:34;6056:19;;5714:68:0;5681:400:1;5714:68:0;-1:-1:-1;;;;;5801:21:0;;5793:68;;;;-1:-1:-1;;;5793:68:0;;6288:2:1;5793:68:0;;;6270:21:1;6327:2;6307:18;;;6300:30;6366:34;6346:18;;;6339:62;-1:-1:-1;;;6417:18:1;;;6410:32;6459:19;;5793:68:0;6086:398:1;5793:68:0;-1:-1:-1;;;;;5874:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5926:32;;1361:25:1;;;5926:32:0;;1334:18:1;5926:32:0;;;;;;;;5586:380;;;:::o;5974:453::-;-1:-1:-1;;;;;2652:18:0;;;6109:24;2652:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;6176:37:0;;6172:248;;6258:6;6238:16;:26;;6230:68;;;;-1:-1:-1;;;6230:68:0;;6691:2:1;6230:68:0;;;6673:21:1;6730:2;6710:18;;;6703:30;6769:31;6749:18;;;6742:59;6818:18;;6230:68:0;6489:353:1;6230:68:0;6342:51;6351:5;6358:7;6386:6;6367:16;:25;6342:8;:51::i;:::-;6098:329;5974:453;;;:::o;11079:2000::-;-1:-1:-1;;;;;11211:18:0;;11203:74;;;;-1:-1:-1;;;11203:74:0;;7049:2:1;11203:74:0;;;7031:21:1;7088:2;7068:18;;;7061:30;7127:34;7107:18;;;7100:62;-1:-1:-1;;;7178:18:1;;;7171:41;7229:19;;11203:74:0;6847:407:1;11203:74:0;-1:-1:-1;;;;;11296:16:0;;11288:70;;;;-1:-1:-1;;;11288:70:0;;7461:2:1;11288:70:0;;;7443:21:1;7500:2;7480:18;;;7473:30;7539:34;7519:18;;;7512:62;-1:-1:-1;;;7590:18:1;;;7583:39;7639:19;;11288:70:0;7259:405:1;11288:70:0;11427:14;;11518:8;;-1:-1:-1;;;;;11419:22:0;;;11406:10;11551:17;;;:11;:17;;;;;;11427:14;;;11419:22;;;;11466:20;;;;;;;11518:8;;;11510:16;;;;11551:17;;;:36;;-1:-1:-1;;;;;;11572:15:0;;;;;;:11;:15;;;;;;;;11551:36;11537:50;;11604:6;11614:1;11604:11;11600:93;;11632:28;11648:4;11654:2;11658:1;11632:15;:28::i;:::-;11675:7;;;;11079:2000;;;:::o;11600:93::-;11755:14;;;;11750:130;;11794:6;11786:61;;;;-1:-1:-1;;;11786:61:0;;7871:2:1;11786:61:0;;;7853:21:1;7910:2;7890:18;;;7883:30;7949:34;7929:18;;;7922:62;-1:-1:-1;;;8000:18:1;;;7993:40;8050:19;;11786:61:0;7669:406:1;11750:130:0;11938:1;11926:9;;:13;:22;;;;;11943:5;11926:22;:33;;;;;11953:6;11952:7;11926:33;11922:174;;;12014:9;;12004:6;11982:19;11998:2;-1:-1:-1;;;;;2301:18:0;2274:7;2301:18;;;;;;;;;;;;2200:127;11982:19;:28;;;;:::i;:::-;:41;;11974:122;;;;-1:-1:-1;;;11974:122:0;;8282:2:1;11974:122:0;;;8264:21:1;8321:2;8301:18;;;8294:30;;;8360:34;8340:18;;;8333:62;8431:34;8411:18;;;8404:62;-1:-1:-1;;;8482:19:1;;;8475:35;8527:19;;11974:122:0;8080:472:1;11974:122:0;12176:4;12127:28;2301:18;;;;;;;;;;;12218:14;;12261:12;;12208:24;;;;;12261:12;;;;;:36;;;;;12290:7;12261:36;:61;;;;-1:-1:-1;12315:7:0;;;;12314:8;12261:61;:84;;;;;12339:6;12261:84;:108;;;;;12363:6;12362:7;12261:108;12243:305;;;12396:7;:14;;-1:-1:-1;;12396:14:0;12406:4;12396:14;;;12452;;12429:37;;12425:53;;;12468:10;:8;:10::i;:::-;12493:13;:11;:13::i;:::-;12521:7;:15;;-1:-1:-1;;12521:15:0;;;12243:305;12627:7;;;;12626:8;12649:6;;:27;;;12660:5;12659:6;:17;;;;;12670:6;12669:7;12659:17;12645:48;;;-1:-1:-1;12688:5:0;12645:48;12708:5;:16;;;;;12718:6;12717:7;12708:16;12704:70;;;12740:14;;12728:35;;-1:-1:-1;;;;;12740:14:0;12756:6;12728:11;:35::i;:::-;12765:7;;;;;;;11079:2000;;;:::o;12704:70::-;12799:7;12795:231;;;12823:12;12838:31;12865:3;12838:22;12849:10;;12838:6;:10;;:22;;;;:::i;:::-;:26;;:31::i;:::-;12823:46;-1:-1:-1;12902:8:0;;12898:73;;12929:42;12945:4;12959;12966;12929:15;:42::i;:::-;13000:14;13010:4;13000:14;;:::i;:::-;;;12808:218;12795:231;13038:33;13054:4;13060:2;13064:6;13038:15;:33::i;8303:191::-;8396:6;;;-1:-1:-1;;;;;8413:17:0;;;-1:-1:-1;;;;;;8413:17:0;;;;;;;8446:40;;8396:6;;;8413:17;8396:6;;8446:40;;8377:16;;8446:40;8366:128;8303:191;:::o;13629:366::-;13744:16;;13712:63;;13729:4;;-1:-1:-1;;;;;13744:16:0;13763:11;13712:8;:63::i;:::-;13788:16;;-1:-1:-1;;;;;13788:16:0;:32;13828:9;13861:4;13881:11;13788:16;;13939:7;7833:6;;-1:-1:-1;;;;;7833:6:0;;7760:87;13939:7;13788:199;;;;;;-1:-1:-1;;;;;;13788:199:0;;;-1:-1:-1;;;;;9049:15:1;;;13788:199:0;;;9031:34:1;9081:18;;;9074:34;;;;9124:18;;;9117:34;;;;9167:18;;;9160:34;9231:15;;;9210:19;;;9203:44;13961:15:0;9263:19:1;;;9256:35;8965:19;;13788:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13629:366;;:::o;3901:671::-;-1:-1:-1;;;;;4032:18:0;;4024:68;;;;-1:-1:-1;;;4024:68:0;;9815:2:1;4024:68:0;;;9797:21:1;9854:2;9834:18;;;9827:30;9893:34;9873:18;;;9866:62;-1:-1:-1;;;9944:18:1;;;9937:35;9989:19;;4024:68:0;9613:401:1;4024:68:0;-1:-1:-1;;;;;4111:16:0;;4103:64;;;;-1:-1:-1;;;4103:64:0;;10221:2:1;4103:64:0;;;10203:21:1;10260:2;10240:18;;;10233:30;10299:34;10279:18;;;10272:62;-1:-1:-1;;;10350:18:1;;;10343:33;10393:19;;4103:64:0;10019:399:1;4103:64:0;-1:-1:-1;;;;;4253:15:0;;4231:19;4253:15;;;;;;;;;;;4287:21;;;;4279:72;;;;-1:-1:-1;;;4279:72:0;;10625:2:1;4279:72:0;;;10607:21:1;10664:2;10644:18;;;10637:30;10703:34;10683:18;;;10676:62;-1:-1:-1;;;10754:18:1;;;10747:36;10800:19;;4279:72:0;10423:402:1;4279:72:0;-1:-1:-1;;;;;4387:15:0;;;:9;:15;;;;;;;;;;;4405:20;;;4387:38;;4447:13;;;;;;;;:23;;4419:6;;4387:9;4447:23;;4419:6;;4447:23;:::i;:::-;;;;;;;;4503:2;-1:-1:-1;;;;;4488:26:0;4497:4;-1:-1:-1;;;;;4488:26:0;;4507:6;4488:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;4488:26:0;;;;;;;;4527:37;4987:591;14003:270;14083:4;14043:19;2301:18;;;;;;;;;;;;14112:16;;;14108:29;;14130:7;14003:270::o;14108:29::-;14166:14;;:21;;14183:4;14166:21;:::i;:::-;14151:11;:36;14147:77;;14203:14;;:21;;14220:4;14203:21;:::i;:::-;14189:35;;14147:77;14235:30;14253:11;14235:17;:30::i;4987:591::-;-1:-1:-1;;;;;5071:21:0;;5063:67;;;;-1:-1:-1;;;5063:67:0;;11032:2:1;5063:67:0;;;11014:21:1;11071:2;11051:18;;;11044:30;11110:34;11090:18;;;11083:62;-1:-1:-1;;;11161:18:1;;;11154:31;11202:19;;5063:67:0;10830:397:1;5063:67:0;-1:-1:-1;;;;;5230:18:0;;5205:22;5230:18;;;;;;;;;;;5267:24;;;;5259:71;;;;-1:-1:-1;;;5259:71:0;;11434:2:1;5259:71:0;;;11416:21:1;11473:2;11453:18;;;11446:30;11512:34;11492:18;;;11485:62;-1:-1:-1;;;11563:18:1;;;11556:32;11605:19;;5259:71:0;11232:398:1;5259:71:0;-1:-1:-1;;;;;5366:18:0;;:9;:18;;;;;;;;;;5387:23;;;5366:44;;5432:12;:22;;5404:6;;5366:9;5432:22;;5404:6;;5432:22;:::i;:::-;;;;-1:-1:-1;;5472:37:0;;1361:25:1;;;5498:1:0;;-1:-1:-1;;;;;5472:37:0;;;;;1349:2:1;1334:18;5472:37:0;1215:177:1;8737:98:0;8795:7;8822:5;8826:1;8822;:5;:::i;:::-;8815:12;8737:98;-1:-1:-1;;;8737:98:0:o;8843:::-;8901:7;8928:5;8932:1;8928;:5;:::i;13115:480::-;13207:16;;;13221:1;13207:16;;;;;;;;13183:21;;13207:16;;;;;;;;;;-1:-1:-1;13207:16:0;13183:40;;13252:4;13234;13239:1;13234:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13234:23:0;;;:7;;;;;;;;;;:23;;;;13278:16;;:23;;;-1:-1:-1;;;13278:23:0;;;;:16;;;;;:21;;:23;;;;;13234:7;;13278:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13268:4;13273:1;13268:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13268:33:0;;;:7;;;;;;;;;:33;13346:16;;13314:63;;13331:4;;13346:16;13365:11;13314:8;:63::i;:::-;13390:16;;:197;;-1:-1:-1;;;13390:197:0;;-1:-1:-1;;;;;13390:16:0;;;;:67;;:197;;13472:11;;13390:16;;13514:4;;13541;;13561:15;;13390:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13172:423;13115:480;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:380::-;2979:1;2975:12;;;;3022;;;3043:61;;3097:4;3089:6;3085:17;3075:27;;3043:61;3150:2;3142:6;3139:14;3119:18;3116:38;3113:161;;3196:10;3191:3;3187:20;3184:1;3177:31;3231:4;3228:1;3221:15;3259:4;3256:1;3249:15;3113:161;;2900:380;;;:::o;3285:127::-;3346:10;3341:3;3337:20;3334:1;3327:31;3377:4;3374:1;3367:15;3401:4;3398:1;3391:15;3417:125;3482:9;;;3503:10;;;3500:36;;;3516:18;;:::i;3547:356::-;3749:2;3731:21;;;3768:18;;;3761:30;3827:34;3822:2;3807:18;;3800:62;3894:2;3879:18;;3547:356::o;4314:251::-;4384:6;4437:2;4425:9;4416:7;4412:23;4408:32;4405:52;;;4453:1;4450;4443:12;4405:52;4485:9;4479:16;4504:31;4529:5;4504:31;:::i;4879:168::-;4952:9;;;4983;;5000:15;;;4994:22;;4980:37;4970:71;;5021:18;;:::i;5052:217::-;5092:1;5118;5108:132;;5162:10;5157:3;5153:20;5150:1;5143:31;5197:4;5194:1;5187:15;5225:4;5222:1;5215:15;5108:132;-1:-1:-1;5254:9:1;;5052:217::o;8557:128::-;8624:9;;;8645:11;;;8642:37;;;8659:18;;:::i;9302:306::-;9390:6;9398;9406;9459:2;9447:9;9438:7;9434:23;9430:32;9427:52;;;9475:1;9472;9465:12;9427:52;9504:9;9498:16;9488:26;;9554:2;9543:9;9539:18;9533:25;9523:35;;9598:2;9587:9;9583:18;9577:25;9567:35;;9302:306;;;;;:::o;11767:127::-;11828:10;11823:3;11819:20;11816:1;11809:31;11859:4;11856:1;11849:15;11883:4;11880:1;11873:15;11899:980;12161:4;12209:3;12198:9;12194:19;12240:6;12229:9;12222:25;12266:2;12304:6;12299:2;12288:9;12284:18;12277:34;12347:3;12342:2;12331:9;12327:18;12320:31;12371:6;12406;12400:13;12437:6;12429;12422:22;12475:3;12464:9;12460:19;12453:26;;12514:2;12506:6;12502:15;12488:29;;12535:1;12545:195;12559:6;12556:1;12553:13;12545:195;;;12624:13;;-1:-1:-1;;;;;12620:39:1;12608:52;;12715:15;;;;12680:12;;;;12656:1;12574:9;12545:195;;;-1:-1:-1;;;;;;;12796:32:1;;;;12791:2;12776:18;;12769:60;-1:-1:-1;;;12860:3:1;12845:19;12838:35;12757:3;11899:980;-1:-1:-1;;;11899:980:1:o

Swarm Source

ipfs://e2b9418a7c22a54e457a4c9957173766e6ce3f3e28c679a03a4192d220e27dc6
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.