ETH Price: $2,649.29 (+0.49%)

Token

GMI Inu (GMI)
 

Overview

Max Total Supply

1,000,000,000,000 GMI

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.746509336 GMI

Value
$0.00
0x51035ec7dbbd4f9b92929e341edbfea0535d9327
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:
GonnaMakeIt

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-03
*/

/*
██     ██ ███████      █████  ██████  ███████      
██     ██ ██          ██   ██ ██   ██ ██           
██  █  ██ █████       ███████ ██████  █████        
██ ███ ██ ██          ██   ██ ██   ██ ██           
 ███ ███  ███████     ██   ██ ██   ██ ███████      
                                                   
                                                   
 ██████   ██████  ███    ██ ███    ██  █████       
██       ██    ██ ████   ██ ████   ██ ██   ██      
██   ███ ██    ██ ██ ██  ██ ██ ██  ██ ███████      
██    ██ ██    ██ ██  ██ ██ ██  ██ ██ ██   ██      
 ██████   ██████  ██   ████ ██   ████ ██   ██      
                                                   
                                                   
███    ███  █████  ██   ██ ███████     ██ ████████ 
████  ████ ██   ██ ██  ██  ██          ██    ██    
██ ████ ██ ███████ █████   █████       ██    ██    
██  ██  ██ ██   ██ ██  ██  ██          ██    ██    
██      ██ ██   ██ ██   ██ ███████     ██    ██    
                                                   
                                                   
 ██████  ███    ███ ██     ██ ███    ██ ██    ██   
██       ████  ████ ██     ██ ████   ██ ██    ██   
██   ███ ██ ████ ██ ██     ██ ██ ██  ██ ██    ██   
██    ██ ██  ██  ██ ██     ██ ██  ██ ██ ██    ██   
 ██████  ██      ██ ██     ██ ██   ████  ██████    
                                                 
*/


// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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);
    }

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

}

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract GonnaMakeIt is Context, IERC20, Ownable {

    using SafeMath for uint256;
    //naming
    string private constant _name = "GMI Inu";
    string private constant _symbol = "GMI";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    //total supply

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000_000_000 * 10**9;
    //fees

    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 1;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 1;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0x2be529757CEC0d550fCFF8f36D5AD7efab6f06FB);
    address payable private _marketingAddress = payable(0x2be529757CEC0d550fCFF8f36D5AD7efab6f06FB);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount =        15_000_000_000 * 10**9;
    uint256 public _maxWalletSize =      15_000_000_000 * 10**9;
    uint256 public _swapTokensAtAmount = 1_000_000_000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

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

    function TradingEnable() external onlyOwner {
    tradingOpen = true;
    }

    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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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 (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

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

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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 sendETHToFee(uint256 amount) private {
        uint256 tfrAmt = amount.div(2);
        _marketingAddress.transfer(tfrAmt);
        _developmentAddress.transfer(amount.sub(tfrAmt));
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

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

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }


    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setmaxWallet(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","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":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setmaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea0000060001962000369565b62000029906000196200038c565b6006556000600881905560016009819055600a829055600b819055600c829055600d819055600e91909155600f5560128054732be529757cec0d550fcff8f36d5ad7efab6f06fb6001600160a01b031991821681179092556013805490911690911790556015805462ffffff60a01b19166201000160a01b17905567d02ab486cedc00006016819055601755670de0b6b3a7640000601855348015620000ce57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200018c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b29190620003b2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000200573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002269190620003b2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029a9190620003b2565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200035a91815260200190565b60405180910390a350620003e4565b6000826200038757634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003ad57634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003c557600080fd5b81516001600160a01b0381168114620003dd57600080fd5b9392505050565b611da880620003f46000396000f3fe6080604052600436106101c55760003560e01c80637d1db4a5116100f7578063a9059cbb11610095578063c492f04611610064578063c492f0461461051c578063dd62ed3e1461053c578063f2fde38b14610582578063fc6b151c146105a257600080fd5b8063a9059cbb146104a2578063bf24a52c146104c2578063bfd79284146104d7578063c3c8cd801461050757600080fd5b80638f9a55c0116100d15780638f9a55c01461042057806395d89b411461043657806398a5c31514610462578063a2a957bb1461048257600080fd5b80637d1db4a5146103bf5780637f2feddc146103d55780638da5cb5b1461040257600080fd5b8063313ce567116101645780636fc3eaec1161013e5780636fc3eaec1461035557806370a082311461036a578063715018a61461038a57806374010ece1461039f57600080fd5b8063313ce567146102f957806349bd5a5e146103155780636b9990531461033557600080fd5b80631694505e116101a05780631694505e1461026557806318160ddd1461029d57806323b872dd146102c35780632fd689e3146102e357600080fd5b8062b8cf2a146101d157806306fdde03146101f3578063095ea7b31461023557600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f16101ec36600461191d565b6105c2565b005b3480156101ff57600080fd5b50604080518082019091526007815266474d4920496e7560c81b60208201525b60405161022c91906119e2565b60405180910390f35b34801561024157600080fd5b50610255610250366004611a37565b610661565b604051901515815260200161022c565b34801561027157600080fd5b50601454610285906001600160a01b031681565b6040516001600160a01b03909116815260200161022c565b3480156102a957600080fd5b50683635c9adc5dea000005b60405190815260200161022c565b3480156102cf57600080fd5b506102556102de366004611a63565b610678565b3480156102ef57600080fd5b506102b560185481565b34801561030557600080fd5b506040516009815260200161022c565b34801561032157600080fd5b50601554610285906001600160a01b031681565b34801561034157600080fd5b506101f1610350366004611aa4565b6106e1565b34801561036157600080fd5b506101f161072c565b34801561037657600080fd5b506102b5610385366004611aa4565b610777565b34801561039657600080fd5b506101f1610799565b3480156103ab57600080fd5b506101f16103ba366004611ac1565b61080d565b3480156103cb57600080fd5b506102b560165481565b3480156103e157600080fd5b506102b56103f0366004611aa4565b60116020526000908152604090205481565b34801561040e57600080fd5b506000546001600160a01b0316610285565b34801561042c57600080fd5b506102b560175481565b34801561044257600080fd5b50604080518082019091526003815262474d4960e81b602082015261021f565b34801561046e57600080fd5b506101f161047d366004611ac1565b61083c565b34801561048e57600080fd5b506101f161049d366004611ada565b61086b565b3480156104ae57600080fd5b506102556104bd366004611a37565b6108a9565b3480156104ce57600080fd5b506101f16108b6565b3480156104e357600080fd5b506102556104f2366004611aa4565b60106020526000908152604090205460ff1681565b34801561051357600080fd5b506101f16108f5565b34801561052857600080fd5b506101f1610537366004611b0c565b610949565b34801561054857600080fd5b506102b5610557366004611b97565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561058e57600080fd5b506101f161059d366004611aa4565b6109ea565b3480156105ae57600080fd5b506101f16105bd366004611ac1565b610ad4565b6000546001600160a01b031633146105f55760405162461bcd60e51b81526004016105ec90611bd0565b60405180910390fd5b60005b815181101561065d5760016010600084848151811061061957610619611c05565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061065581611c31565b9150506105f8565b5050565b600061066e338484610b03565b5060015b92915050565b6000610685848484610c27565b6106d784336106d285604051806060016040528060288152602001611d4b602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611163565b610b03565b5060019392505050565b6000546001600160a01b0316331461070b5760405162461bcd60e51b81526004016105ec90611bd0565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6012546001600160a01b0316336001600160a01b0316148061076157506013546001600160a01b0316336001600160a01b0316145b61076a57600080fd5b476107748161119d565b50565b6001600160a01b0381166000908152600260205260408120546106729061122c565b6000546001600160a01b031633146107c35760405162461bcd60e51b81526004016105ec90611bd0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108375760405162461bcd60e51b81526004016105ec90611bd0565b601655565b6000546001600160a01b031633146108665760405162461bcd60e51b81526004016105ec90611bd0565b601855565b6000546001600160a01b031633146108955760405162461bcd60e51b81526004016105ec90611bd0565b600893909355600a91909155600955600b55565b600061066e338484610c27565b6000546001600160a01b031633146108e05760405162461bcd60e51b81526004016105ec90611bd0565b6015805460ff60a01b1916600160a01b179055565b6012546001600160a01b0316336001600160a01b0316148061092a57506013546001600160a01b0316336001600160a01b0316145b61093357600080fd5b600061093e30610777565b9050610774816112b0565b6000546001600160a01b031633146109735760405162461bcd60e51b81526004016105ec90611bd0565b60005b828110156109e457816005600086868581811061099557610995611c05565b90506020020160208101906109aa9190611aa4565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806109dc81611c31565b915050610976565b50505050565b6000546001600160a01b03163314610a145760405162461bcd60e51b81526004016105ec90611bd0565b6001600160a01b038116610a795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ec565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610afe5760405162461bcd60e51b81526004016105ec90611bd0565b601755565b6001600160a01b038316610b655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ec565b6001600160a01b038216610bc65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ec565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ec565b6001600160a01b038216610ced5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ec565b60008111610d4f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ec565b6000546001600160a01b03848116911614801590610d7b57506000546001600160a01b03838116911614155b1561105c57601554600160a01b900460ff16610e14576000546001600160a01b03848116911614610e145760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105ec565b601654811115610e665760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105ec565b6001600160a01b03831660009081526010602052604090205460ff16158015610ea857506001600160a01b03821660009081526010602052604090205460ff16155b610f005760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105ec565b6015546001600160a01b03838116911614610f855760175481610f2284610777565b610f2c9190611c4c565b10610f855760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105ec565b6000610f9030610777565b601854601654919250821015908210610fa95760165491505b808015610fc05750601554600160a81b900460ff16155b8015610fda57506015546001600160a01b03868116911614155b8015610fef5750601554600160b01b900460ff165b801561101457506001600160a01b03851660009081526005602052604090205460ff16155b801561103957506001600160a01b03841660009081526005602052604090205460ff16155b1561105957611047826112b0565b478015611057576110574761119d565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061109e57506001600160a01b03831660009081526005602052604090205460ff165b806110d057506015546001600160a01b038581169116148015906110d057506015546001600160a01b03848116911614155b156110dd57506000611157565b6015546001600160a01b03858116911614801561110857506014546001600160a01b03848116911614155b1561111a57600854600c55600954600d555b6015546001600160a01b03848116911614801561114557506014546001600160a01b03858116911614155b1561115757600a54600c55600b54600d555b6109e48484848461142a565b600081848411156111875760405162461bcd60e51b81526004016105ec91906119e2565b5060006111948486611c64565b95945050505050565b60006111aa826002611458565b6013546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156111e5573d6000803e3d6000fd5b506012546001600160a01b03166108fc6111ff848461149a565b6040518115909202916000818181858888f19350505050158015611227573d6000803e3d6000fd5b505050565b60006006548211156112935760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105ec565b600061129d6114dc565b90506112a98382611458565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112f8576112f8611c05565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190611c7b565b8160018151811061138857611388611c05565b6001600160a01b0392831660209182029290920101526014546113ae9130911684610b03565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113e7908590600090869030904290600401611c98565b600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b80611437576114376114ff565b61144284848461152d565b806109e4576109e4600e54600c55600f54600d55565b60006112a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611624565b60006112a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611163565b60008060006114e9611652565b90925090506114f88282611458565b9250505090565b600c5415801561150f5750600d54155b1561151657565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061153f87611694565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611571908761149a565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546115a090866116f1565b6001600160a01b0389166000908152600260205260409020556115c281611750565b6115cc848361179a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161161191815260200190565b60405180910390a3505050505050505050565b600081836116455760405162461bcd60e51b81526004016105ec91906119e2565b5060006111948486611d09565b6006546000908190683635c9adc5dea0000061166e8282611458565b82101561168b57505060065492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006116b18a600c54600d546117be565b92509250925060006116c16114dc565b905060008060006116d48e878787611813565b919e509c509a509598509396509194505050505091939550919395565b6000806116fe8385611c4c565b9050838110156112a95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ec565b600061175a6114dc565b905060006117688383611863565b3060009081526002602052604090205490915061178590826116f1565b30600090815260026020526040902055505050565b6006546117a7908361149a565b6006556007546117b790826116f1565b6007555050565b60008080806117d860646117d28989611863565b90611458565b905060006117eb60646117d28a89611863565b90506000611803826117fd8b8661149a565b9061149a565b9992985090965090945050505050565b60008080806118228886611863565b905060006118308887611863565b9050600061183e8888611863565b90506000611850826117fd868661149a565b939b939a50919850919650505050505050565b60008261187257506000610672565b600061187e8385611d2b565b90508261188b8583611d09565b146112a95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ec565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461077457600080fd5b8035611918816118f8565b919050565b6000602080838503121561193057600080fd5b823567ffffffffffffffff8082111561194857600080fd5b818501915085601f83011261195c57600080fd5b81358181111561196e5761196e6118e2565b8060051b604051601f19603f83011681018181108582111715611993576119936118e2565b6040529182528482019250838101850191888311156119b157600080fd5b938501935b828510156119d6576119c78561190d565b845293850193928501926119b6565b98975050505050505050565b600060208083528351808285015260005b81811015611a0f578581018301518582016040015282016119f3565b81811115611a21576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611a4a57600080fd5b8235611a55816118f8565b946020939093013593505050565b600080600060608486031215611a7857600080fd5b8335611a83816118f8565b92506020840135611a93816118f8565b929592945050506040919091013590565b600060208284031215611ab657600080fd5b81356112a9816118f8565b600060208284031215611ad357600080fd5b5035919050565b60008060008060808587031215611af057600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611b2157600080fd5b833567ffffffffffffffff80821115611b3957600080fd5b818601915086601f830112611b4d57600080fd5b813581811115611b5c57600080fd5b8760208260051b8501011115611b7157600080fd5b602092830195509350508401358015158114611b8c57600080fd5b809150509250925092565b60008060408385031215611baa57600080fd5b8235611bb5816118f8565b91506020830135611bc5816118f8565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611c4557611c45611c1b565b5060010190565b60008219821115611c5f57611c5f611c1b565b500190565b600082821015611c7657611c76611c1b565b500390565b600060208284031215611c8d57600080fd5b81516112a9816118f8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ce85784516001600160a01b031683529383019391830191600101611cc3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d2657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d4557611d45611c1b565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f5a7fc6a83fb374b93d1bf62e2bb41aa6aeb7387cd534a3f253c796207426a8264736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106101c55760003560e01c80637d1db4a5116100f7578063a9059cbb11610095578063c492f04611610064578063c492f0461461051c578063dd62ed3e1461053c578063f2fde38b14610582578063fc6b151c146105a257600080fd5b8063a9059cbb146104a2578063bf24a52c146104c2578063bfd79284146104d7578063c3c8cd801461050757600080fd5b80638f9a55c0116100d15780638f9a55c01461042057806395d89b411461043657806398a5c31514610462578063a2a957bb1461048257600080fd5b80637d1db4a5146103bf5780637f2feddc146103d55780638da5cb5b1461040257600080fd5b8063313ce567116101645780636fc3eaec1161013e5780636fc3eaec1461035557806370a082311461036a578063715018a61461038a57806374010ece1461039f57600080fd5b8063313ce567146102f957806349bd5a5e146103155780636b9990531461033557600080fd5b80631694505e116101a05780631694505e1461026557806318160ddd1461029d57806323b872dd146102c35780632fd689e3146102e357600080fd5b8062b8cf2a146101d157806306fdde03146101f3578063095ea7b31461023557600080fd5b366101cc57005b600080fd5b3480156101dd57600080fd5b506101f16101ec36600461191d565b6105c2565b005b3480156101ff57600080fd5b50604080518082019091526007815266474d4920496e7560c81b60208201525b60405161022c91906119e2565b60405180910390f35b34801561024157600080fd5b50610255610250366004611a37565b610661565b604051901515815260200161022c565b34801561027157600080fd5b50601454610285906001600160a01b031681565b6040516001600160a01b03909116815260200161022c565b3480156102a957600080fd5b50683635c9adc5dea000005b60405190815260200161022c565b3480156102cf57600080fd5b506102556102de366004611a63565b610678565b3480156102ef57600080fd5b506102b560185481565b34801561030557600080fd5b506040516009815260200161022c565b34801561032157600080fd5b50601554610285906001600160a01b031681565b34801561034157600080fd5b506101f1610350366004611aa4565b6106e1565b34801561036157600080fd5b506101f161072c565b34801561037657600080fd5b506102b5610385366004611aa4565b610777565b34801561039657600080fd5b506101f1610799565b3480156103ab57600080fd5b506101f16103ba366004611ac1565b61080d565b3480156103cb57600080fd5b506102b560165481565b3480156103e157600080fd5b506102b56103f0366004611aa4565b60116020526000908152604090205481565b34801561040e57600080fd5b506000546001600160a01b0316610285565b34801561042c57600080fd5b506102b560175481565b34801561044257600080fd5b50604080518082019091526003815262474d4960e81b602082015261021f565b34801561046e57600080fd5b506101f161047d366004611ac1565b61083c565b34801561048e57600080fd5b506101f161049d366004611ada565b61086b565b3480156104ae57600080fd5b506102556104bd366004611a37565b6108a9565b3480156104ce57600080fd5b506101f16108b6565b3480156104e357600080fd5b506102556104f2366004611aa4565b60106020526000908152604090205460ff1681565b34801561051357600080fd5b506101f16108f5565b34801561052857600080fd5b506101f1610537366004611b0c565b610949565b34801561054857600080fd5b506102b5610557366004611b97565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561058e57600080fd5b506101f161059d366004611aa4565b6109ea565b3480156105ae57600080fd5b506101f16105bd366004611ac1565b610ad4565b6000546001600160a01b031633146105f55760405162461bcd60e51b81526004016105ec90611bd0565b60405180910390fd5b60005b815181101561065d5760016010600084848151811061061957610619611c05565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061065581611c31565b9150506105f8565b5050565b600061066e338484610b03565b5060015b92915050565b6000610685848484610c27565b6106d784336106d285604051806060016040528060288152602001611d4b602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611163565b610b03565b5060019392505050565b6000546001600160a01b0316331461070b5760405162461bcd60e51b81526004016105ec90611bd0565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6012546001600160a01b0316336001600160a01b0316148061076157506013546001600160a01b0316336001600160a01b0316145b61076a57600080fd5b476107748161119d565b50565b6001600160a01b0381166000908152600260205260408120546106729061122c565b6000546001600160a01b031633146107c35760405162461bcd60e51b81526004016105ec90611bd0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108375760405162461bcd60e51b81526004016105ec90611bd0565b601655565b6000546001600160a01b031633146108665760405162461bcd60e51b81526004016105ec90611bd0565b601855565b6000546001600160a01b031633146108955760405162461bcd60e51b81526004016105ec90611bd0565b600893909355600a91909155600955600b55565b600061066e338484610c27565b6000546001600160a01b031633146108e05760405162461bcd60e51b81526004016105ec90611bd0565b6015805460ff60a01b1916600160a01b179055565b6012546001600160a01b0316336001600160a01b0316148061092a57506013546001600160a01b0316336001600160a01b0316145b61093357600080fd5b600061093e30610777565b9050610774816112b0565b6000546001600160a01b031633146109735760405162461bcd60e51b81526004016105ec90611bd0565b60005b828110156109e457816005600086868581811061099557610995611c05565b90506020020160208101906109aa9190611aa4565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806109dc81611c31565b915050610976565b50505050565b6000546001600160a01b03163314610a145760405162461bcd60e51b81526004016105ec90611bd0565b6001600160a01b038116610a795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ec565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610afe5760405162461bcd60e51b81526004016105ec90611bd0565b601755565b6001600160a01b038316610b655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ec565b6001600160a01b038216610bc65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ec565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ec565b6001600160a01b038216610ced5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ec565b60008111610d4f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ec565b6000546001600160a01b03848116911614801590610d7b57506000546001600160a01b03838116911614155b1561105c57601554600160a01b900460ff16610e14576000546001600160a01b03848116911614610e145760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105ec565b601654811115610e665760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105ec565b6001600160a01b03831660009081526010602052604090205460ff16158015610ea857506001600160a01b03821660009081526010602052604090205460ff16155b610f005760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105ec565b6015546001600160a01b03838116911614610f855760175481610f2284610777565b610f2c9190611c4c565b10610f855760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105ec565b6000610f9030610777565b601854601654919250821015908210610fa95760165491505b808015610fc05750601554600160a81b900460ff16155b8015610fda57506015546001600160a01b03868116911614155b8015610fef5750601554600160b01b900460ff165b801561101457506001600160a01b03851660009081526005602052604090205460ff16155b801561103957506001600160a01b03841660009081526005602052604090205460ff16155b1561105957611047826112b0565b478015611057576110574761119d565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061109e57506001600160a01b03831660009081526005602052604090205460ff165b806110d057506015546001600160a01b038581169116148015906110d057506015546001600160a01b03848116911614155b156110dd57506000611157565b6015546001600160a01b03858116911614801561110857506014546001600160a01b03848116911614155b1561111a57600854600c55600954600d555b6015546001600160a01b03848116911614801561114557506014546001600160a01b03858116911614155b1561115757600a54600c55600b54600d555b6109e48484848461142a565b600081848411156111875760405162461bcd60e51b81526004016105ec91906119e2565b5060006111948486611c64565b95945050505050565b60006111aa826002611458565b6013546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156111e5573d6000803e3d6000fd5b506012546001600160a01b03166108fc6111ff848461149a565b6040518115909202916000818181858888f19350505050158015611227573d6000803e3d6000fd5b505050565b60006006548211156112935760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105ec565b600061129d6114dc565b90506112a98382611458565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112f8576112f8611c05565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190611c7b565b8160018151811061138857611388611c05565b6001600160a01b0392831660209182029290920101526014546113ae9130911684610b03565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113e7908590600090869030904290600401611c98565b600060405180830381600087803b15801561140157600080fd5b505af1158015611415573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b80611437576114376114ff565b61144284848461152d565b806109e4576109e4600e54600c55600f54600d55565b60006112a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611624565b60006112a983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611163565b60008060006114e9611652565b90925090506114f88282611458565b9250505090565b600c5415801561150f5750600d54155b1561151657565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061153f87611694565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611571908761149a565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546115a090866116f1565b6001600160a01b0389166000908152600260205260409020556115c281611750565b6115cc848361179a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161161191815260200190565b60405180910390a3505050505050505050565b600081836116455760405162461bcd60e51b81526004016105ec91906119e2565b5060006111948486611d09565b6006546000908190683635c9adc5dea0000061166e8282611458565b82101561168b57505060065492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006116b18a600c54600d546117be565b92509250925060006116c16114dc565b905060008060006116d48e878787611813565b919e509c509a509598509396509194505050505091939550919395565b6000806116fe8385611c4c565b9050838110156112a95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ec565b600061175a6114dc565b905060006117688383611863565b3060009081526002602052604090205490915061178590826116f1565b30600090815260026020526040902055505050565b6006546117a7908361149a565b6006556007546117b790826116f1565b6007555050565b60008080806117d860646117d28989611863565b90611458565b905060006117eb60646117d28a89611863565b90506000611803826117fd8b8661149a565b9061149a565b9992985090965090945050505050565b60008080806118228886611863565b905060006118308887611863565b9050600061183e8888611863565b90506000611850826117fd868661149a565b939b939a50919850919650505050505050565b60008261187257506000610672565b600061187e8385611d2b565b90508261188b8583611d09565b146112a95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ec565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461077457600080fd5b8035611918816118f8565b919050565b6000602080838503121561193057600080fd5b823567ffffffffffffffff8082111561194857600080fd5b818501915085601f83011261195c57600080fd5b81358181111561196e5761196e6118e2565b8060051b604051601f19603f83011681018181108582111715611993576119936118e2565b6040529182528482019250838101850191888311156119b157600080fd5b938501935b828510156119d6576119c78561190d565b845293850193928501926119b6565b98975050505050505050565b600060208083528351808285015260005b81811015611a0f578581018301518582016040015282016119f3565b81811115611a21576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611a4a57600080fd5b8235611a55816118f8565b946020939093013593505050565b600080600060608486031215611a7857600080fd5b8335611a83816118f8565b92506020840135611a93816118f8565b929592945050506040919091013590565b600060208284031215611ab657600080fd5b81356112a9816118f8565b600060208284031215611ad357600080fd5b5035919050565b60008060008060808587031215611af057600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611b2157600080fd5b833567ffffffffffffffff80821115611b3957600080fd5b818601915086601f830112611b4d57600080fd5b813581811115611b5c57600080fd5b8760208260051b8501011115611b7157600080fd5b602092830195509350508401358015158114611b8c57600080fd5b809150509250925092565b60008060408385031215611baa57600080fd5b8235611bb5816118f8565b91506020830135611bc5816118f8565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611c4557611c45611c1b565b5060010190565b60008219821115611c5f57611c5f611c1b565b500190565b600082821015611c7657611c76611c1b565b500390565b600060208284031215611c8d57600080fd5b81516112a9816118f8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ce85784516001600160a01b031683529383019391830191600101611cc3565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d2657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611d4557611d45611c1b565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f5a7fc6a83fb374b93d1bf62e2bb41aa6aeb7387cd534a3f253c796207426a8264736f6c634300080c0033

Deployed Bytecode Sourcemap

6511:13506:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15345:169;;;;;;;;;;-1:-1:-1;15345:169:0;;;;;:::i;:::-;;:::i;:::-;;9182:83;;;;;;;;;;-1:-1:-1;9252:5:0;;;;;;;;;;;;-1:-1:-1;;;9252:5:0;;;;9182:83;;;;;;;:::i;:::-;;;;;;;;10107:193;;;;;;;;;;-1:-1:-1;10107:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;10107:193:0;2469:187:1;7908:41:0;;;;;;;;;;-1:-1:-1;7908:41:0;;;;-1:-1:-1;;;;;7908:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;7908:41:0;2661:229:1;9459:95:0;;;;;;;;;;-1:-1:-1;7093:25:0;9459:95;;;3041:25:1;;;3029:2;3014:18;9459:95:0;2895:177:1;10308:446:0;;;;;;;;;;-1:-1:-1;10308:446:0;;;;;:::i;:::-;;:::i;8237:58::-;;;;;;;;;;;;;;;;9368:83;;;;;;;;;;-1:-1:-1;9368:83:0;;6745:1;3680:36:1;;3668:2;3653:18;9368:83:0;3538:184:1;7956:28:0;;;;;;;;;;-1:-1:-1;7956:28:0;;;;-1:-1:-1;;;;;7956:28:0;;;15522:92;;;;;;;;;;-1:-1:-1;15522:92:0;;;;;:::i;:::-;;:::i;15102:235::-;;;;;;;;;;;;;:::i;9562:138::-;;;;;;;;;;-1:-1:-1;9562:138:0;;;;;:::i;:::-;;:::i;3998:148::-;;;;;;;;;;;;;:::i;19543:108::-;;;;;;;;;;-1:-1:-1;19543:108:0;;;;;:::i;:::-;;:::i;8105:59::-;;;;;;;;;;;;;;;;7650:43;;;;;;;;;;-1:-1:-1;7650:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;3784:79;;;;;;;;;;-1:-1:-1;3822:7:0;3849:6;-1:-1:-1;;;;;3849:6:0;3784:79;;8171:59;;;;;;;;;;;;;;;;9273:87;;;;;;;;;;-1:-1:-1;9345:7:0;;;;;;;;;;;;-1:-1:-1;;;9345:7:0;;;;9273:87;;19363:139;;;;;;;;;;-1:-1:-1;19363:139:0;;;;;:::i;:::-;;:::i;19020:291::-;;;;;;;;;;-1:-1:-1;19020:291:0;;;;;:::i;:::-;;:::i;9708:199::-;;;;;;;;;;-1:-1:-1;9708:199:0;;;;;:::i;:::-;;:::i;9097:77::-;;;;;;;;;;;;;:::i;7612:36::-;;;;;;;;;;-1:-1:-1;7612:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14858:236;;;;;;;;;;;;;:::i;19778:234::-;;;;;;;;;;-1:-1:-1;19778:234:0;;;;;:::i;:::-;;:::i;9915:184::-;;;;;;;;;;-1:-1:-1;9915:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;10064:18:0;;;10032:7;10064:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9915:184;4154:244;;;;;;;;;;-1:-1:-1;4154:244:0;;;;;:::i;:::-;;:::i;19659:111::-;;;;;;;;;;-1:-1:-1;19659:111:0;;;;;:::i;:::-;;:::i;15345:169::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;;;;;;;;;15421:9:::1;15416:91;15440:5;:12;15436:1;:16;15416:91;;;15491:4;15474;:14;15479:5;15485:1;15479:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15474:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15474:14:0;:21;;-1:-1:-1;;15474:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15454:3;::::1;::::0;::::1;:::i;:::-;;;;15416:91;;;;15345:169:::0;:::o;10107:193::-;10209:4;10231:39;2623:10;10254:7;10263:6;10231:8;:39::i;:::-;-1:-1:-1;10288:4:0;10107:193;;;;;:::o;10308:446::-;10440:4;10457:36;10467:6;10475:9;10486:6;10457:9;:36::i;:::-;10504:220;10527:6;2623:10;10575:138;10631:6;10575:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10575:19:0;;;;;;:11;:19;;;;;;;;2623:10;10575:33;;;;;;;;;;:37;:138::i;:::-;10504:8;:220::i;:::-;-1:-1:-1;10742:4:0;10308:446;;;;;:::o;15522:92::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15586:12:0::1;15601:5;15586:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;15586:20:0::1;::::0;;15522:92::o;15102:235::-;15168:19;;-1:-1:-1;;;;;15168:19:0;2623:10;-1:-1:-1;;;;;15152:35:0;;:72;;;-1:-1:-1;15207:17:0;;-1:-1:-1;;;;;15207:17:0;2623:10;-1:-1:-1;;;;;15191:33:0;;15152:72;15144:81;;;;;;15265:21;15297:32;15265:21;15297:12;:32::i;:::-;15133:204;15102:235::o;9562:138::-;-1:-1:-1;;;;;9675:16:0;;9628:7;9675:16;;;:7;:16;;;;;;9655:37;;:19;:37::i;3998:148::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;4105:1:::1;4089:6:::0;;4068:40:::1;::::0;-1:-1:-1;;;;;4089:6:0;;::::1;::::0;4068:40:::1;::::0;4105:1;;4068:40:::1;4136:1;4119:19:::0;;-1:-1:-1;;;;;;4119:19:0::1;::::0;;3998:148::o;19543:108::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;19617:12:::1;:26:::0;19543:108::o;19363:139::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;19454:19:::1;:40:::0;19363:139::o;19020:291::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;19154:14:::1;:30:::0;;;;19195:15:::1;:32:::0;;;;19238:12:::1;:26:::0;19275:13:::1;:28:::0;19020:291::o;9708:199::-;9813:4;9835:42;2623:10;9859:9;9870:6;9835:9;:42::i;9097:77::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;9148:11:::1;:18:::0;;-1:-1:-1;;;;9148:18:0::1;-1:-1:-1::0;;;9148:18:0::1;::::0;;9097:77::o;14858:236::-;14924:19;;-1:-1:-1;;;;;14924:19:0;2623:10;-1:-1:-1;;;;;14908:35:0;;:72;;;-1:-1:-1;14963:17:0;;-1:-1:-1;;;;;14963:17:0;2623:10;-1:-1:-1;;;;;14947:33:0;;14908:72;14900:81;;;;;;14992:23;15018:24;15036:4;15018:9;:24::i;:::-;14992:50;;15053:33;15070:15;15053:16;:33::i;19778:234::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;19895:9:::1;19891:114;19910:19:::0;;::::1;19891:114;;;19985:8;19951:18;:31;19970:8;;19979:1;19970:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19951:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19951:31:0;:42;;-1:-1:-1;;19951:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19931:3;::::1;::::0;::::1;:::i;:::-;;;;19891:114;;;;19778:234:::0;;;:::o;4154:244::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4243:22:0;::::1;4235:73;;;::::0;-1:-1:-1;;;4235:73:0;;6909:2:1;4235:73:0::1;::::0;::::1;6891:21:1::0;6948:2;6928:18;;;6921:30;6987:34;6967:18;;;6960:62;-1:-1:-1;;;7038:18:1;;;7031:36;7084:19;;4235:73:0::1;6707:402:1::0;4235:73:0::1;4345:6;::::0;;4324:38:::1;::::0;-1:-1:-1;;;;;4324:38:0;;::::1;::::0;4345:6;::::1;::::0;4324:38:::1;::::0;::::1;4373:6;:17:::0;;-1:-1:-1;;;;;;4373:17:0::1;-1:-1:-1::0;;;;;4373:17:0;;;::::1;::::0;;;::::1;::::0;;4154:244::o;19659:111::-;3911:6;;-1:-1:-1;;;;;3911:6:0;2623:10;3911:22;3903:67;;;;-1:-1:-1;;;3903:67:0;;;;;;;:::i;:::-;19732:14:::1;:30:::0;19659:111::o;11445:369::-;-1:-1:-1;;;;;11572:19:0;;11564:68;;;;-1:-1:-1;;;11564:68:0;;7316:2:1;11564:68:0;;;7298:21:1;7355:2;7335:18;;;7328:30;7394:34;7374:18;;;7367:62;-1:-1:-1;;;7445:18:1;;;7438:34;7489:19;;11564:68:0;7114:400:1;11564:68:0;-1:-1:-1;;;;;11651:21:0;;11643:68;;;;-1:-1:-1;;;11643:68:0;;7721:2:1;11643:68:0;;;7703:21:1;7760:2;7740:18;;;7733:30;7799:34;7779:18;;;7772:62;-1:-1:-1;;;7850:18:1;;;7843:32;7892:19;;11643:68:0;7519:398:1;11643:68:0;-1:-1:-1;;;;;11722:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11774:32;;3041:25:1;;;11774:32:0;;3014:18:1;11774:32:0;;;;;;;11445:369;;;:::o;11822:2330::-;-1:-1:-1;;;;;11944:18:0;;11936:68;;;;-1:-1:-1;;;11936:68:0;;8124:2:1;11936:68:0;;;8106:21:1;8163:2;8143:18;;;8136:30;8202:34;8182:18;;;8175:62;-1:-1:-1;;;8253:18:1;;;8246:35;8298:19;;11936:68:0;7922:401:1;11936:68:0;-1:-1:-1;;;;;12023:16:0;;12015:64;;;;-1:-1:-1;;;12015:64:0;;8530:2:1;12015:64:0;;;8512:21:1;8569:2;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;-1:-1:-1;;;8659:18:1;;;8652:33;8702:19;;12015:64:0;8328:399:1;12015:64:0;12107:1;12098:6;:10;12090:64;;;;-1:-1:-1;;;12090:64:0;;8934:2:1;12090:64:0;;;8916:21:1;8973:2;8953:18;;;8946:30;9012:34;8992:18;;;8985:62;-1:-1:-1;;;9063:18:1;;;9056:39;9112:19;;12090:64:0;8732:405:1;12090:64:0;3822:7;3849:6;-1:-1:-1;;;;;12171:15:0;;;3849:6;;12171:15;;;;:32;;-1:-1:-1;3822:7:0;3849:6;-1:-1:-1;;;;;12190:13:0;;;3849:6;;12190:13;;12171:32;12167:1259;;;12260:11;;-1:-1:-1;;;12260:11:0;;;;12255:144;;3822:7;3849:6;-1:-1:-1;;;;;12300:15:0;;;3849:6;;12300:15;12292:91;;;;-1:-1:-1;;;12292:91:0;;9344:2:1;12292:91:0;;;9326:21:1;9383:2;9363:18;;;9356:30;9422:34;9402:18;;;9395:62;9493:33;9473:18;;;9466:61;9544:19;;12292:91:0;9142:427:1;12292:91:0;12433:12;;12423:6;:22;;12415:63;;;;-1:-1:-1;;;12415:63:0;;9776:2:1;12415:63:0;;;9758:21:1;9815:2;9795:18;;;9788:30;9854;9834:18;;;9827:58;9902:18;;12415:63:0;9574:352:1;12415:63:0;-1:-1:-1;;;;;12502:10:0;;;;;;:4;:10;;;;;;;;12501:11;:24;;;;-1:-1:-1;;;;;;12517:8:0;;;;;;:4;:8;;;;;;;;12516:9;12501:24;12493:72;;;;-1:-1:-1;;;12493:72:0;;10133:2:1;12493:72:0;;;10115:21:1;10172:2;10152:18;;;10145:30;10211:34;10191:18;;;10184:62;-1:-1:-1;;;10262:18:1;;;10255:33;10305:19;;12493:72:0;9931:399:1;12493:72:0;12591:13;;-1:-1:-1;;;;;12585:19:0;;;12591:13;;12585:19;12582:146;;12658:14;;12649:6;12633:13;12643:2;12633:9;:13::i;:::-;:22;;;;:::i;:::-;:39;12625:87;;;;-1:-1:-1;;;12625:87:0;;10670:2:1;12625:87:0;;;10652:21:1;10709:2;10689:18;;;10682:30;10748:34;10728:18;;;10721:62;-1:-1:-1;;;10799:18:1;;;10792:33;10842:19;;12625:87:0;10468:399:1;12625:87:0;12744:28;12775:24;12793:4;12775:9;:24::i;:::-;12853:19;;12916:12;;12744:55;;-1:-1:-1;12829:43:0;;;;12892:36;;12889:124;;12985:12;;12962:35;;12889:124;13033:7;:18;;;;-1:-1:-1;13045:6:0;;-1:-1:-1;;;13045:6:0;;;;13044:7;13033:18;:43;;;;-1:-1:-1;13063:13:0;;-1:-1:-1;;;;;13055:21:0;;;13063:13;;13055:21;;13033:43;:58;;;;-1:-1:-1;13080:11:0;;-1:-1:-1;;;13080:11:0;;;;13033:58;:87;;;;-1:-1:-1;;;;;;13096:24:0;;;;;;:18;:24;;;;;;;;13095:25;13033:87;:114;;;;-1:-1:-1;;;;;;13125:22:0;;;;;;:18;:22;;;;;;;;13124:23;13033:114;13029:386;;;13168:38;13185:20;13168:16;:38::i;:::-;13254:21;13298:22;;13294:106;;13345:35;13358:21;13345:12;:35::i;:::-;13149:266;13029:386;12205:1221;;12167:1259;-1:-1:-1;;;;;13502:24:0;;13438:12;13502:24;;;:18;:24;;;;;;13453:4;;13502:24;;;:50;;-1:-1:-1;;;;;;13530:22:0;;;;;;:18;:22;;;;;;;;13502:50;13501:102;;;-1:-1:-1;13566:13:0;;-1:-1:-1;;;;;13558:21:0;;;13566:13;;13558:21;;;;:44;;-1:-1:-1;13589:13:0;;-1:-1:-1;;;;;13583:19:0;;;13589:13;;13583:19;;13558:44;13497:594;;;-1:-1:-1;13630:5:0;13497:594;;;13713:13;;-1:-1:-1;;;;;13705:21:0;;;13713:13;;13705:21;:55;;;;-1:-1:-1;13744:15:0;;-1:-1:-1;;;;;13730:30:0;;;13744:15;;13730:30;;13705:55;13702:162;;;13793:14;;13781:9;:26;13836:12;;13826:7;:22;13702:162;13923:13;;-1:-1:-1;;;;;13917:19:0;;;13923:13;;13917:19;:55;;;;-1:-1:-1;13956:15:0;;-1:-1:-1;;;;;13940:32:0;;;13956:15;;13940:32;;13917:55;13913:165;;;14005:15;;13993:9;:27;14049:13;;14039:7;:23;13913:165;14103:41;14118:4;14124:2;14128:6;14136:7;14103:14;:41::i;4762:224::-;4882:7;4918:12;4910:6;;;;4902:29;;;;-1:-1:-1;;;4902:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4942:9:0;4954:5;4958:1;4954;:5;:::i;:::-;4942:17;4762:224;-1:-1:-1;;;;;4762:224:0:o;14651:199::-;14708:14;14725:13;:6;14736:1;14725:10;:13::i;:::-;14749:17;;:34;;14708:30;;-1:-1:-1;;;;;;14749:17:0;;:34;;;;;14708:30;;14749:17;:34;:17;:34;14708:30;14749:17;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14794:19:0;;-1:-1:-1;;;;;14794:19:0;:48;14823:18;:6;14834;14823:10;:18::i;:::-;14794:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14697:153;14651:199;:::o;10762:323::-;10857:7;10915;;10904;:18;;10882:110;;;;-1:-1:-1;;;10882:110:0;;11204:2:1;10882:110:0;;;11186:21:1;11243:2;11223:18;;;11216:30;11282:34;11262:18;;;11255:62;-1:-1:-1;;;11333:18:1;;;11326:40;11383:19;;10882:110:0;11002:406:1;10882:110:0;11003:19;11025:10;:8;:10::i;:::-;11003:32;-1:-1:-1;11053:24:0;:7;11003:32;11053:11;:24::i;:::-;11046:31;10762:323;-1:-1:-1;;;10762:323:0:o;14160:483::-;8389:6;:13;;-1:-1:-1;;;;8389:13:0;-1:-1:-1;;;8389:13:0;;;14262:16:::1;::::0;;14276:1:::1;14262:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14262:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14262:16:0::1;14238:40;;14307:4;14289;14294:1;14289:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14289:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14333:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14333:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14289:7;;14333:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14323:4;14328:1;14323:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14323:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14398:15:::1;::::0;14366:62:::1;::::0;14383:4:::1;::::0;14398:15:::1;14416:11:::0;14366:8:::1;:62::i;:::-;14439:15;::::0;:196:::1;::::0;-1:-1:-1;;;14439:196:0;;-1:-1:-1;;;;;14439:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;14520:11;;14439:15:::1;::::0;14562:4;;14589::::1;::::0;14609:15:::1;::::0;14439:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8425:6:0;:14;;-1:-1:-1;;;;8425:14:0;;;-1:-1:-1;;;;14160:483:0:o;15622:282::-;15778:7;15773:28;;15787:14;:12;:14::i;:::-;15812:44;15830:6;15838:9;15849:6;15812:17;:44::i;:::-;15872:7;15867:29;;15881:15;11376:17;;11364:9;:29;11414:15;;11404:7;:25;11320:117;5248:132;5306:7;5333:39;5337:1;5340;5333:39;;;;;;;;;;;;;;;;;:3;:39::i;4618:136::-;4676:7;4703:43;4707:1;4710;4703:43;;;;;;;;;;;;;;;;;:3;:43::i;18583:164::-;18625:7;18646:15;18663;18682:19;:17;:19::i;:::-;18645:56;;-1:-1:-1;18645:56:0;-1:-1:-1;18719:20:0;18645:56;;18719:11;:20::i;:::-;18712:27;;;;18583:164;:::o;11093:219::-;11140:9;;:14;:30;;;;-1:-1:-1;11158:7:0;;:12;11140:30;11136:43;;;11093:219::o;11136:43::-;11211:9;;;11191:17;:29;11249:7;;;11231:15;:25;-1:-1:-1;11269:13:0;;;;11293:11;11093:219::o;15912:610::-;16059:15;16089:23;16127:12;16154:23;16192:12;16219:13;16246:19;16257:7;16246:10;:19::i;:::-;-1:-1:-1;;;;;16294:15:0;;;;;;:7;:15;;;;;;16044:221;;-1:-1:-1;16044:221:0;;-1:-1:-1;16044:221:0;;-1:-1:-1;16044:221:0;-1:-1:-1;16044:221:0;-1:-1:-1;16044:221:0;-1:-1:-1;16294:28:0;;16044:221;16294:19;:28::i;:::-;-1:-1:-1;;;;;16276:15:0;;;;;;;:7;:15;;;;;;:46;;;;16354:18;;;;;;;:39;;16377:15;16354:22;:39::i;:::-;-1:-1:-1;;;;;16333:18:0;;;;;;:7;:18;;;;;:60;16404:16;16414:5;16404:9;:16::i;:::-;16431:23;16443:4;16449;16431:11;:23::i;:::-;16487:9;-1:-1:-1;;;;;16470:44:0;16479:6;-1:-1:-1;;;;;16470:44:0;;16498:15;16470:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;16470:44:0;;;;;;;;16033:489;;;;;;15912:610;;;:::o;5388:223::-;5508:7;5543:12;5536:5;5528:28;;;;-1:-1:-1;;;5528:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5567:9:0;5579:5;5583:1;5579;:5;:::i;18755:257::-;18853:7;;18806;;;;7093:25;18921:20;18853:7;7093:25;18921:11;:20::i;:::-;18911:7;:30;18907:61;;;-1:-1:-1;;18951:7:0;;;7093:25;;-1:-1:-1;18755:257:0;-1:-1:-1;18755:257:0:o;18907:61::-;18987:7;;18996;;-1:-1:-1;18755:257:0;-1:-1:-1;18755:257:0:o;16941:615::-;17041:7;17063;17085;17107;17129;17151;17187:23;17212:12;17226:13;17256:40;17268:7;17277:9;;17288:7;;17256:11;:40::i;:::-;17186:110;;;;;;17307:19;17329:10;:8;:10::i;:::-;17307:32;;17351:15;17368:23;17393:12;17422:46;17434:7;17443:4;17449:5;17456:11;17422;:46::i;:::-;17350:118;;-1:-1:-1;17350:118:0;-1:-1:-1;17350:118:0;-1:-1:-1;17519:15:0;;-1:-1:-1;17536:4:0;;-1:-1:-1;17542:5:0;;-1:-1:-1;;;;;16941:615:0;;;;;;;:::o;4431:179::-;4489:7;;4521:5;4525:1;4521;:5;:::i;:::-;4509:17;;4550:1;4545;:6;;4537:46;;;;-1:-1:-1;;;4537:46:0;;13078:2:1;4537:46:0;;;13060:21:1;13117:2;13097:18;;;13090:30;13156:29;13136:18;;;13129:57;13203:18;;4537:46:0;12876:351:1;16530:211:0;16583:19;16605:10;:8;:10::i;:::-;16583:32;-1:-1:-1;16626:13:0;16642:22;:5;16583:32;16642:9;:22::i;:::-;16716:4;16700:22;;;;:7;:22;;;;;;16626:38;;-1:-1:-1;16700:33:0;;16626:38;16700:26;:33::i;:::-;16691:4;16675:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;16530:211:0:o;16749:147::-;16827:7;;:17;;16839:4;16827:11;:17::i;:::-;16817:7;:27;16868:10;;:20;;16883:4;16868:14;:20::i;:::-;16855:10;:33;-1:-1:-1;;16749:147:0:o;17564:469::-;17733:7;;;;17827:30;17853:3;17827:21;:7;17839:8;17827:11;:21::i;:::-;:25;;:30::i;:::-;17812:45;-1:-1:-1;17868:13:0;17884:28;17908:3;17884:19;:7;17896:6;17884:11;:19::i;:28::-;17868:44;-1:-1:-1;17923:23:0;17949:28;17868:44;17949:17;:7;17961:4;17949:11;:17::i;:::-;:21;;:28::i;:::-;17923:54;18013:4;;-1:-1:-1;18019:5:0;;-1:-1:-1;17564:469:0;;-1:-1:-1;;;;;17564:469:0:o;18041:534::-;18235:7;;;;18332:24;:7;18344:11;18332;:24::i;:::-;18314:42;-1:-1:-1;18367:12:0;18382:21;:4;18391:11;18382:8;:21::i;:::-;18367:36;-1:-1:-1;18414:13:0;18430:22;:5;18440:11;18430:9;:22::i;:::-;18414:38;-1:-1:-1;18463:23:0;18489:28;18414:38;18489:17;:7;18501:4;18489:11;:17::i;:28::-;18536:7;;;;-1:-1:-1;18562:4:0;;-1:-1:-1;18041:534:0;;-1:-1:-1;;;;;;;18041:534:0:o;4994:246::-;5052:7;5076:6;5072:47;;-1:-1:-1;5106:1:0;5099:8;;5072:47;5129:9;5141:5;5145:1;5141;:5;:::i;:::-;5129:17;-1:-1:-1;5174:1:0;5165:5;5169:1;5129:17;5165:5;:::i;:::-;:10;5157:56;;;;-1:-1:-1;;;5157:56:0;;13607:2:1;5157:56:0;;;13589:21:1;13646:2;13626:18;;;13619:30;13685:34;13665:18;;;13658:62;-1:-1:-1;;;13736:18:1;;;13729:31;13777:19;;5157:56:0;13405:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:456::-;3154:6;3162;3170;3223:2;3211:9;3202:7;3198:23;3194:32;3191:52;;;3239:1;3236;3229:12;3191:52;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:1;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3077:456;;3469:7;;-1:-1:-1;;;3523:2:1;3508:18;;;;3495:32;;3077:456::o;3935:247::-;3994:6;4047:2;4035:9;4026:7;4022:23;4018:32;4015:52;;;4063:1;4060;4053:12;4015:52;4102:9;4089:23;4121:31;4146:5;4121:31;:::i;4187:180::-;4246:6;4299:2;4287:9;4278:7;4274:23;4270:32;4267:52;;;4315:1;4312;4305:12;4267:52;-1:-1:-1;4338:23:1;;4187:180;-1:-1:-1;4187:180:1:o;4372:385::-;4458:6;4466;4474;4482;4535:3;4523:9;4514:7;4510:23;4506:33;4503:53;;;4552:1;4549;4542:12;4503:53;-1:-1:-1;;4575:23:1;;;4645:2;4630:18;;4617:32;;-1:-1:-1;4696:2:1;4681:18;;4668:32;;4747:2;4732:18;4719:32;;-1:-1:-1;4372:385:1;-1:-1:-1;4372:385:1:o;4762:782::-;4854:6;4862;4870;4923:2;4911:9;4902:7;4898:23;4894:32;4891:52;;;4939:1;4936;4929:12;4891:52;4979:9;4966:23;5008:18;5049:2;5041:6;5038:14;5035:34;;;5065:1;5062;5055:12;5035:34;5103:6;5092:9;5088:22;5078:32;;5148:7;5141:4;5137:2;5133:13;5129:27;5119:55;;5170:1;5167;5160:12;5119:55;5210:2;5197:16;5236:2;5228:6;5225:14;5222:34;;;5252:1;5249;5242:12;5222:34;5307:7;5300:4;5290:6;5287:1;5283:14;5279:2;5275:23;5271:34;5268:47;5265:67;;;5328:1;5325;5318:12;5265:67;5359:4;5351:13;;;;-1:-1:-1;5383:6:1;-1:-1:-1;;5424:20:1;;5411:34;5481:13;;5474:21;5464:32;;5454:60;;5510:1;5507;5500:12;5454:60;5533:5;5523:15;;;4762:782;;;;;:::o;5549:388::-;5617:6;5625;5678:2;5666:9;5657:7;5653:23;5649:32;5646:52;;;5694:1;5691;5684:12;5646:52;5733:9;5720:23;5752:31;5777:5;5752:31;:::i;:::-;5802:5;-1:-1:-1;5859:2:1;5844:18;;5831:32;5872:33;5831:32;5872:33;:::i;:::-;5924:7;5914:17;;;5549:388;;;;;:::o;5942:356::-;6144:2;6126:21;;;6163:18;;;6156:30;6222:34;6217:2;6202:18;;6195:62;6289:2;6274:18;;5942:356::o;6303:127::-;6364:10;6359:3;6355:20;6352:1;6345:31;6395:4;6392:1;6385:15;6419:4;6416:1;6409:15;6435:127;6496:10;6491:3;6487:20;6484:1;6477:31;6527:4;6524:1;6517:15;6551:4;6548:1;6541:15;6567:135;6606:3;-1:-1:-1;;6627:17:1;;6624:43;;;6647:18;;:::i;:::-;-1:-1:-1;6694:1:1;6683:13;;6567:135::o;10335:128::-;10375:3;10406:1;10402:6;10399:1;10396:13;10393:39;;;10412:18;;:::i;:::-;-1:-1:-1;10448:9:1;;10335:128::o;10872:125::-;10912:4;10940:1;10937;10934:8;10931:34;;;10945:18;;:::i;:::-;-1:-1:-1;10982:9:1;;10872:125::o;11413:251::-;11483:6;11536:2;11524:9;11515:7;11511:23;11507:32;11504:52;;;11552:1;11549;11542:12;11504:52;11584:9;11578:16;11603:31;11628:5;11603:31;:::i;11669:980::-;11931:4;11979:3;11968:9;11964:19;12010:6;11999:9;11992:25;12036:2;12074:6;12069:2;12058:9;12054:18;12047:34;12117:3;12112:2;12101:9;12097:18;12090:31;12141:6;12176;12170:13;12207:6;12199;12192:22;12245:3;12234:9;12230:19;12223:26;;12284:2;12276:6;12272:15;12258:29;;12305:1;12315:195;12329:6;12326:1;12323:13;12315:195;;;12394:13;;-1:-1:-1;;;;;12390:39:1;12378:52;;12485:15;;;;12450:12;;;;12426:1;12344:9;12315:195;;;-1:-1:-1;;;;;;;12566:32:1;;;;12561:2;12546:18;;12539:60;-1:-1:-1;;;12630:3:1;12615:19;12608:35;12527:3;11669:980;-1:-1:-1;;;11669:980:1:o;12654:217::-;12694:1;12720;12710:132;;12764:10;12759:3;12755:20;12752:1;12745:31;12799:4;12796:1;12789:15;12827:4;12824:1;12817:15;12710:132;-1:-1:-1;12856:9:1;;12654:217::o;13232:168::-;13272:7;13338:1;13334;13330:6;13326:14;13323:1;13320:21;13315:1;13308:9;13301:17;13297:45;13294:71;;;13345:18;;:::i;:::-;-1:-1:-1;13385:9:1;;13232:168::o

Swarm Source

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