ETH Price: $3,239.37 (+2.73%)
Gas: 3 Gwei

Token

MegaScan AI (MEGAS)
 

Overview

Max Total Supply

1,000,000,000 MEGAS

Holders

93

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,496,121.620359585 MEGAS

Value
$0.00
0x4E0C8a58a977E935Bbe6421Ad32422147e88F08b
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:
MegaScan

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-23
*/

pragma solidity 0.8.17;

// SPDX-License-Identifier: MIT

/**

MegaScan AI is committed to integrating the most advanced AI technologies in redefining how users interact with blockchain data.

Website: https://megascan.org
Telegram: https://t.me/megascan_erc
Twitter: https://twitter.com/megascan_erc
Dapp: https://app.megascan.org

**/

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

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

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

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function 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);
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
}

contract MegaScan is Context, IERC20, Ownable {
    address payable private opSendor;
    address payable private mkSendor;
    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;

    modifier lockTheSwap() {
        inSwapLock = true;
        _;
        inSwapLock = false;
    }

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotals = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"MegaScan AI";
    string private constant _symbol = unicode"MEGAS";
    uint256 private minSwapAmounts = 1000 * 10 ** _decimals;
    uint256 public swapTxLimits = 20000000 * 10 ** _decimals;
    uint256 private maxSwapValues = 20000000 * 10 ** _decimals;
    uint256 private buyTotalFees = 30;
    uint256 private sellTotalFees = 40;
    uint256 private buyTotalCounts = 0;

    event ExcludeFromFeesUpdated(address indexed account);
    event includeFromFeesUpdated(address indexed account);
    event ERC20TokenRecovered(uint256 indexed _amount);
    event TradingEnabledUpdated();
    event ETHBalancesRecovered();

    bool private inSwapLock = false;
    bool public tradeEnabled = false;
    bool private swapEnabled = false;

    mapping(address => uint256) private _tBalances;
    mapping(address => bool) private _isFeeExcempts;
    mapping(address => mapping(address => uint256)) private _allowances;
    
    address private uniswapV2Pair;
    IUniswapV2Router public uniswapV2Router;

    constructor() {
        opSendor = payable(0xCEda894459B68Dc5F19b05A3E54D02e4E6cf59aa);
        mkSendor = payable(0x6a7166424f4dD8c3B6669522bcba7CD8F9Dfb027);
        _tBalances[_msgSender()] = _tTotals;
        _isFeeExcempts[opSendor] = true;
        _isFeeExcempts[mkSendor] = true;
        _isFeeExcempts[deadAddress] = true;
        _isFeeExcempts[_msgSender()] = true;
        _isFeeExcempts[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _tTotals);
    }

    function excludeFromFees(address account) external onlyOwner {
        require(
            _isFeeExcempts[account] != true,
            "Account is already excluded"
        );
        _isFeeExcempts[account] = true;
        emit ExcludeFromFeesUpdated(account);
    }

    function includeFromFees(address account) external onlyOwner {
        require(
            _isFeeExcempts[account] != false,
            "Account is already included"
        );
        _isFeeExcempts[account] = false;
        emit includeFromFeesUpdated(account);
    }

    function sendETHToMegas(uint256 amount) private {
        require(amount > 0, "amount must be greeter than 0");
        opSendor.transfer(amount / 2);
        mkSendor.transfer(amount / 2);
    }

    function launchMEGAS() external onlyOwner {
        require(!tradeEnabled, "trading is already open");
        tradeEnabled = true;
        swapEnabled = true;
        emit TradingEnabledUpdated();
    }

    function setFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 100 && _sellFee <= 100, "revert wrong fee settings");
        buyTotalFees = _buyFee;
        sellTotalFees = _sellFee;
    }

    function removeLimits() external onlyOwner {
        swapTxLimits = _tTotals;

        buyTotalFees = 2;
        sellTotalFees = 2;
    }

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

    function swapForETHs(uint256 tokenAmount) private lockTheSwap {
        require(tokenAmount > 0, "amount must be greeter than 0");
        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 recoverTokensOf(
        address _tokenAddy,
        uint256 _amount
    ) external onlyOwner {
        require(
            _tokenAddy != address(this),
            "Owner can't claim contract's balance of its own tokens"
        );
        require(_amount > 0, "Amount should be greater than zero");
        require(
            _amount <= IERC20(_tokenAddy).balanceOf(address(this)),
            "Insufficient Amount"
        );
        IERC20(_tokenAddy).transfer(mkSendor, _amount);
        emit ERC20TokenRecovered(_amount);
    }

    function recoverETHsOf() external {
        uint256 contractETHs = address(this).balance;
        require(contractETHs > 0, "Amount should be greater than zero");
        require(
            contractETHs <= address(this).balance,
            "Insufficient Amount"
        );
        payable(address(mkSendor)).transfer(contractETHs);
        emit ETHBalancesRecovered();
    }

    function initializeLP() external payable onlyOwner {
        uniswapV2Router = IUniswapV2Router(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        _approve(address(this), address(uniswapV2Router), ~uint256(0));

        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    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 _tTotals;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _tBalances[account];
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 _totalFees = 0;
        _totalFees = buyTotalFees;

        if (!_isFeeExcempts[from] && !_isFeeExcempts[to]) {
            require(tradeEnabled, "Trading not enabled");
        }

        if (inSwapLock || !swapEnabled) {
            _tBalances[from] -= amount;
            _tBalances[to] += amount;
            emit Transfer(from, to, amount);
            return;
        }

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

        if (
            from != uniswapV2Pair &&
            !_isFeeExcempts[from] &&
            !_isFeeExcempts[to]
        ) {
            require(amount <= swapTxLimits, "Exceeds the _maxTxAmount.");
        }

        if (
            to == uniswapV2Pair &&
            from != address(this) &&
            !_isFeeExcempts[from] &&
            !_isFeeExcempts[to]
        ) {
            _totalFees = sellTotalFees;
        }

        uint256 contractTokens = balanceOf(address(this));
        if (
            buyTotalCounts > 0 &&
            !inSwapLock &&
            amount >= minSwapAmounts &&
            to == uniswapV2Pair &&
            contractTokens >= minSwapAmounts &&
            swapEnabled &&
            !_isFeeExcempts[from] &&
            !_isFeeExcempts[to]
        ) {
            swapForETHs(min(amount, min(contractTokens, maxSwapValues)));
            uint256 contractETHs = address(this).balance;
            if (contractETHs > 0) {
                sendETHToMegas(address(this).balance);
            }
        }

        if (_totalFees != 0) {
            uint256 mFees = (amount * _totalFees) / 100;
            uint256 mAmounts = amount - mFees;
            address mSendor = _isFeeExcempts[from] ? from : address(this);
            mFees = _isFeeExcempts[from] ? amount : mFees;
            _tBalances[mSendor] += mFees;
            emit Transfer(from, address(this), mFees);
            _tBalances[from] -= amount;
            _tBalances[to] += mAmounts;
            emit Transfer(from, to, mAmounts);
        } else {
            _tBalances[from] -= amount;
            _tBalances[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transfer(
        address 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;
    }
}

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":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokenRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalancesRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeesUpdated","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":[],"name":"TradingEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeesUpdated","type":"event"},{"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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initializeLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"launchMEGAS","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":"recoverETHsOf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverTokensOf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTxLimits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000343565b62000020906103e86200035b565b600355620000316009600a62000343565b62000041906301312d006200035b565b600455620000526009600a62000343565b62000062906301312d006200035b565b600555601e600655602860075560006008556009805462ffffff191690553480156200008d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b031990811673ceda894459b68dc5f19b05a3e54d02e4e6cf59aa1790915560028054909116736a7166424f4dd8c3b6669522bcba7cd8f9dfb027179055620001256009600a62000343565b6200013590633b9aca006200035b565b336000818152600a6020908152604080832094909455600180546001600160a01b039081168452600b909252848320805460ff199081168317909155600254909216835284832080548316821790557f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac3415805483168217905583835284832080548316821790553083529390912080549091169092179091556001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002076009600a62000343565b6200021790633b9aca006200035b565b60405190815260200160405180910390a362000375565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002855781600019048211156200026957620002696200022e565b808516156200027757918102915b93841c939080029062000249565b509250929050565b6000826200029e575060016200033d565b81620002ad575060006200033d565b8160018114620002c65760028114620002d157620002f1565b60019150506200033d565b60ff841115620002e557620002e56200022e565b50506001821b6200033d565b5060208310610133831016604e8410600b841016171562000316575081810a6200033d565b62000322838362000244565b80600019048211156200033957620003396200022e565b0290505b92915050565b60006200035460ff8416836200028d565b9392505050565b80820281158282048414176200033d576200033d6200022e565b61204780620003856000396000f3fe60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063d621e8131161006f578063d621e813146103c9578063dd62ed3e146103e8578063e17594c21461042e578063e57f14e114610443578063e8a1eb9f14610463578063f2fde38b1461047957600080fd5b80638da5cb5b1461032057806395d89b411461033e578063a6690cf91461036c578063a9059cbb14610374578063acc7ae2314610394578063c2f65856146103b457600080fd5b806323b872dd1161010857806323b872dd1461026e57806327c8f8351461028e578063313ce567146102a457806370a08231146102c0578063715018a6146102f6578063751039fc1461030b57600080fd5b806306fdde031461015b578063095ea7b3146101a15780630b78f9c0146101d15780631694505e146101f357806318160ddd1461022b57806320b581a41461024e57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600b81526a4d6567615363616e20414960a81b60208201525b6040516101989190611ba4565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611c07565b610499565b6040519015158152602001610198565b3480156101dd57600080fd5b506101f16101ec366004611c33565b6104b0565b005b3480156101ff57600080fd5b50600e54610213906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b34801561023757600080fd5b5061024061054c565b604051908152602001610198565b34801561025a57600080fd5b506101f1610269366004611c07565b61056d565b34801561027a57600080fd5b506101c1610289366004611c55565b610782565b34801561029a57600080fd5b5061021361dead81565b3480156102b057600080fd5b5060405160098152602001610198565b3480156102cc57600080fd5b506102406102db366004611c96565b6001600160a01b03166000908152600a602052604090205490565b34801561030257600080fd5b506101f1610831565b34801561031757600080fd5b506101f16108a5565b34801561032c57600080fd5b506000546001600160a01b0316610213565b34801561034a57600080fd5b506040805180820190915260058152644d4547415360d81b602082015261018b565b6101f16108f8565b34801561038057600080fd5b506101c161038f366004611c07565b610ba8565b3480156103a057600080fd5b506101f16103af366004611c96565b610bb5565b3480156103c057600080fd5b506101f1610c94565b3480156103d557600080fd5b506009546101c190610100900460ff1681565b3480156103f457600080fd5b50610240610403366004611cb3565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561043a57600080fd5b506101f1610d52565b34801561044f57600080fd5b506101f161045e366004611c96565b610e1d565b34801561046f57600080fd5b5061024060045481565b34801561048557600080fd5b506101f1610494366004611c96565b610f00565b60006104a6338484610f9b565b5060015b92915050565b6000546001600160a01b031633146104e35760405162461bcd60e51b81526004016104da90611cec565b60405180910390fd5b606482111580156104f5575060648111155b6105415760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104da565b600691909155600755565b600061055a6009600a611e1b565b61056890633b9aca00611e2a565b905090565b6000546001600160a01b031633146105975760405162461bcd60e51b81526004016104da90611cec565b306001600160a01b0383160361060e5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104da565b6000811161062e5760405162461bcd60e51b81526004016104da90611e41565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106969190611e83565b8111156106db5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104da565b60025460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af115801561072e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107529190611e9c565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a9090600090a25050565b6001600160a01b0383166000908152600c60209081526040808320338452909152812054828110156108075760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104da565b6108128585856110bf565b61082685336108218685611ebe565b610f9b565b506001949350505050565b6000546001600160a01b0316331461085b5760405162461bcd60e51b81526004016104da90611cec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b81526004016104da90611cec565b6108db6009600a611e1b565b6108e990633b9aca00611e2a565b60045560026006819055600755565b6000546001600160a01b031633146109225760405162461bcd60e51b81526004016104da90611cec565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190611ed1565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190611ed1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa19190611ed1565b600d80546001600160a01b0319166001600160a01b03928316179055600e54610acf91309116600019610f9b565b600e546001600160a01b031663f305d7193430610b01816001600160a01b03166000908152600a602052604090205490565b600080610b166000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b7e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ba39190611eee565b505050565b60006104a63384846110bf565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b81526004016104da90611cec565b6001600160a01b0381166000908152600b602052604081205460ff1615159003610c4b5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104da565b6001600160a01b0381166000818152600b6020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b6000546001600160a01b03163314610cbe5760405162461bcd60e51b81526004016104da90611cec565b600954610100900460ff1615610d165760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104da565b6009805462ffff001916620101001790556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b490600090a1565b4780610d705760405162461bcd60e51b81526004016104da90611e41565b47811115610db65760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104da565b6002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610df0573d6000803e3d6000fd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d7290600090a150565b6000546001600160a01b03163314610e475760405162461bcd60e51b81526004016104da90611cec565b6001600160a01b0381166000908152600b602052604090205460ff161515600103610eb45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104da565b6001600160a01b0381166000818152600b6020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b6000546001600160a01b03163314610f2a5760405162461bcd60e51b81526004016104da90611cec565b6001600160a01b038116610f8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104da565b610f98816118a3565b50565b6001600160a01b038316610ffd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104da565b6001600160a01b03821661105e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104da565b6001600160a01b038381166000818152600c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111235760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104da565b6001600160a01b0382166111855760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104da565b600081116111e75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104da565b6006546001600160a01b0384166000908152600b602052604090205460ff1615801561122c57506001600160a01b0383166000908152600b602052604090205460ff16155b1561127e57600954610100900460ff1661127e5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104da565b60095460ff1680611298575060095462010000900460ff16155b1561133a576001600160a01b0384166000908152600a6020526040812080548492906112c5908490611ebe565b90915550506001600160a01b0383166000908152600a6020526040812080548492906112f2908490611f1c565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611ff28339815191528460405161132c91815260200190565b60405180910390a350505050565b600d546001600160a01b0385811691161480156113655750600e546001600160a01b03848116911614155b801561138a57506001600160a01b0383166000908152600b602052604090205460ff16155b1561146e576004548211156113dd5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104da565b60045482611400856001600160a01b03166000908152600a602052604090205490565b61140a9190611f1c565b11156114585760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104da565b6008805490600061146883611f2f565b91905055505b600d546001600160a01b038581169116148015906114a557506001600160a01b0384166000908152600b602052604090205460ff16155b80156114ca57506001600160a01b0383166000908152600b602052604090205460ff16155b1561151d5760045482111561151d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104da565b600d546001600160a01b03848116911614801561154357506001600160a01b0384163014155b801561156857506001600160a01b0384166000908152600b602052604090205460ff16155b801561158d57506001600160a01b0383166000908152600b602052604090205460ff16155b1561159757506007545b306000908152600a6020526040902054600854158015906115bb575060095460ff16155b80156115c957506003548310155b80156115e25750600d546001600160a01b038581169116145b80156115f057506003548110155b8015611604575060095462010000900460ff165b801561162957506001600160a01b0385166000908152600b602052604090205460ff16155b801561164e57506001600160a01b0384166000908152600b602052604090205460ff16155b156116825761167061166b84611666846005546118f3565b6118f3565b61190b565b4780156116805761168047611ac9565b505b811561180457600060646116968486611e2a565b6116a09190611f48565b905060006116ae8286611ebe565b6001600160a01b0388166000908152600b60205260408120549192509060ff166116d857306116da565b875b6001600160a01b0389166000908152600b602052604090205490915060ff166117035782611705565b855b6001600160a01b0382166000908152600a6020526040812080549295508592909190611732908490611f1c565b909155505060405183815230906001600160a01b038a1690600080516020611ff28339815191529060200160405180910390a36001600160a01b0388166000908152600a60205260408120805488929061178d908490611ebe565b90915550506001600160a01b0387166000908152600a6020526040812080548492906117ba908490611f1c565b92505081905550866001600160a01b0316886001600160a01b0316600080516020611ff2833981519152846040516117f491815260200190565b60405180910390a350505061189c565b6001600160a01b0385166000908152600a60205260408120805485929061182c908490611ebe565b90915550506001600160a01b0384166000908152600a602052604081208054859290611859908490611f1c565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611ff28339815191528560405161189391815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116119025782611904565b815b9392505050565b6009805460ff19166001179055806119655760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104da565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061199a5761199a611f6a565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a179190611ed1565b81600181518110611a2a57611a2a611f6a565b6001600160a01b039283166020918202929092010152600e54611a509130911684610f9b565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a89908590600090869030904290600401611f80565b600060405180830381600087803b158015611aa357600080fd5b505af1158015611ab7573d6000803e3d6000fd5b50506009805460ff1916905550505050565b60008111611b195760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104da565b6001546001600160a01b03166108fc611b33600284611f48565b6040518115909202916000818181858888f19350505050158015611b5b573d6000803e3d6000fd5b50600280546001600160a01b0316906108fc90611b789084611f48565b6040518115909202916000818181858888f19350505050158015611ba0573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b81811015611bd157858101830151858201604001528201611bb5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f9857600080fd5b60008060408385031215611c1a57600080fd5b8235611c2581611bf2565b946020939093013593505050565b60008060408385031215611c4657600080fd5b50508035926020909101359150565b600080600060608486031215611c6a57600080fd5b8335611c7581611bf2565b92506020840135611c8581611bf2565b929592945050506040919091013590565b600060208284031215611ca857600080fd5b813561190481611bf2565b60008060408385031215611cc657600080fd5b8235611cd181611bf2565b91506020830135611ce181611bf2565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611d72578160001904821115611d5857611d58611d21565b80851615611d6557918102915b93841c9390800290611d3c565b509250929050565b600082611d89575060016104aa565b81611d96575060006104aa565b8160018114611dac5760028114611db657611dd2565b60019150506104aa565b60ff841115611dc757611dc7611d21565b50506001821b6104aa565b5060208310610133831016604e8410600b8410161715611df5575081810a6104aa565b611dff8383611d37565b8060001904821115611e1357611e13611d21565b029392505050565b600061190460ff841683611d7a565b80820281158282048414176104aa576104aa611d21565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b600060208284031215611e9557600080fd5b5051919050565b600060208284031215611eae57600080fd5b8151801515811461190457600080fd5b818103818111156104aa576104aa611d21565b600060208284031215611ee357600080fd5b815161190481611bf2565b600080600060608486031215611f0357600080fd5b8351925060208401519150604084015190509250925092565b808201808211156104aa576104aa611d21565b600060018201611f4157611f41611d21565b5060010190565b600082611f6557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fd05784516001600160a01b031683529383019391830191600101611fab565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f63acce0e9f5d07dede7f5f593568cc0304d9e7fced3af80b726b26f07cdf8cc64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063d621e8131161006f578063d621e813146103c9578063dd62ed3e146103e8578063e17594c21461042e578063e57f14e114610443578063e8a1eb9f14610463578063f2fde38b1461047957600080fd5b80638da5cb5b1461032057806395d89b411461033e578063a6690cf91461036c578063a9059cbb14610374578063acc7ae2314610394578063c2f65856146103b457600080fd5b806323b872dd1161010857806323b872dd1461026e57806327c8f8351461028e578063313ce567146102a457806370a08231146102c0578063715018a6146102f6578063751039fc1461030b57600080fd5b806306fdde031461015b578063095ea7b3146101a15780630b78f9c0146101d15780631694505e146101f357806318160ddd1461022b57806320b581a41461024e57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600b81526a4d6567615363616e20414960a81b60208201525b6040516101989190611ba4565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611c07565b610499565b6040519015158152602001610198565b3480156101dd57600080fd5b506101f16101ec366004611c33565b6104b0565b005b3480156101ff57600080fd5b50600e54610213906001600160a01b031681565b6040516001600160a01b039091168152602001610198565b34801561023757600080fd5b5061024061054c565b604051908152602001610198565b34801561025a57600080fd5b506101f1610269366004611c07565b61056d565b34801561027a57600080fd5b506101c1610289366004611c55565b610782565b34801561029a57600080fd5b5061021361dead81565b3480156102b057600080fd5b5060405160098152602001610198565b3480156102cc57600080fd5b506102406102db366004611c96565b6001600160a01b03166000908152600a602052604090205490565b34801561030257600080fd5b506101f1610831565b34801561031757600080fd5b506101f16108a5565b34801561032c57600080fd5b506000546001600160a01b0316610213565b34801561034a57600080fd5b506040805180820190915260058152644d4547415360d81b602082015261018b565b6101f16108f8565b34801561038057600080fd5b506101c161038f366004611c07565b610ba8565b3480156103a057600080fd5b506101f16103af366004611c96565b610bb5565b3480156103c057600080fd5b506101f1610c94565b3480156103d557600080fd5b506009546101c190610100900460ff1681565b3480156103f457600080fd5b50610240610403366004611cb3565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561043a57600080fd5b506101f1610d52565b34801561044f57600080fd5b506101f161045e366004611c96565b610e1d565b34801561046f57600080fd5b5061024060045481565b34801561048557600080fd5b506101f1610494366004611c96565b610f00565b60006104a6338484610f9b565b5060015b92915050565b6000546001600160a01b031633146104e35760405162461bcd60e51b81526004016104da90611cec565b60405180910390fd5b606482111580156104f5575060648111155b6105415760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104da565b600691909155600755565b600061055a6009600a611e1b565b61056890633b9aca00611e2a565b905090565b6000546001600160a01b031633146105975760405162461bcd60e51b81526004016104da90611cec565b306001600160a01b0383160361060e5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104da565b6000811161062e5760405162461bcd60e51b81526004016104da90611e41565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106969190611e83565b8111156106db5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104da565b60025460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af115801561072e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107529190611e9c565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a9090600090a25050565b6001600160a01b0383166000908152600c60209081526040808320338452909152812054828110156108075760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104da565b6108128585856110bf565b61082685336108218685611ebe565b610f9b565b506001949350505050565b6000546001600160a01b0316331461085b5760405162461bcd60e51b81526004016104da90611cec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b81526004016104da90611cec565b6108db6009600a611e1b565b6108e990633b9aca00611e2a565b60045560026006819055600755565b6000546001600160a01b031633146109225760405162461bcd60e51b81526004016104da90611cec565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190611ed1565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a309190611ed1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa19190611ed1565b600d80546001600160a01b0319166001600160a01b03928316179055600e54610acf91309116600019610f9b565b600e546001600160a01b031663f305d7193430610b01816001600160a01b03166000908152600a602052604090205490565b600080610b166000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b7e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ba39190611eee565b505050565b60006104a63384846110bf565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b81526004016104da90611cec565b6001600160a01b0381166000908152600b602052604081205460ff1615159003610c4b5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104da565b6001600160a01b0381166000818152600b6020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b6000546001600160a01b03163314610cbe5760405162461bcd60e51b81526004016104da90611cec565b600954610100900460ff1615610d165760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104da565b6009805462ffff001916620101001790556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b490600090a1565b4780610d705760405162461bcd60e51b81526004016104da90611e41565b47811115610db65760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104da565b6002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610df0573d6000803e3d6000fd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d7290600090a150565b6000546001600160a01b03163314610e475760405162461bcd60e51b81526004016104da90611cec565b6001600160a01b0381166000908152600b602052604090205460ff161515600103610eb45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104da565b6001600160a01b0381166000818152600b6020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b6000546001600160a01b03163314610f2a5760405162461bcd60e51b81526004016104da90611cec565b6001600160a01b038116610f8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104da565b610f98816118a3565b50565b6001600160a01b038316610ffd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104da565b6001600160a01b03821661105e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104da565b6001600160a01b038381166000818152600c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111235760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104da565b6001600160a01b0382166111855760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104da565b600081116111e75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104da565b6006546001600160a01b0384166000908152600b602052604090205460ff1615801561122c57506001600160a01b0383166000908152600b602052604090205460ff16155b1561127e57600954610100900460ff1661127e5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104da565b60095460ff1680611298575060095462010000900460ff16155b1561133a576001600160a01b0384166000908152600a6020526040812080548492906112c5908490611ebe565b90915550506001600160a01b0383166000908152600a6020526040812080548492906112f2908490611f1c565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611ff28339815191528460405161132c91815260200190565b60405180910390a350505050565b600d546001600160a01b0385811691161480156113655750600e546001600160a01b03848116911614155b801561138a57506001600160a01b0383166000908152600b602052604090205460ff16155b1561146e576004548211156113dd5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104da565b60045482611400856001600160a01b03166000908152600a602052604090205490565b61140a9190611f1c565b11156114585760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104da565b6008805490600061146883611f2f565b91905055505b600d546001600160a01b038581169116148015906114a557506001600160a01b0384166000908152600b602052604090205460ff16155b80156114ca57506001600160a01b0383166000908152600b602052604090205460ff16155b1561151d5760045482111561151d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104da565b600d546001600160a01b03848116911614801561154357506001600160a01b0384163014155b801561156857506001600160a01b0384166000908152600b602052604090205460ff16155b801561158d57506001600160a01b0383166000908152600b602052604090205460ff16155b1561159757506007545b306000908152600a6020526040902054600854158015906115bb575060095460ff16155b80156115c957506003548310155b80156115e25750600d546001600160a01b038581169116145b80156115f057506003548110155b8015611604575060095462010000900460ff165b801561162957506001600160a01b0385166000908152600b602052604090205460ff16155b801561164e57506001600160a01b0384166000908152600b602052604090205460ff16155b156116825761167061166b84611666846005546118f3565b6118f3565b61190b565b4780156116805761168047611ac9565b505b811561180457600060646116968486611e2a565b6116a09190611f48565b905060006116ae8286611ebe565b6001600160a01b0388166000908152600b60205260408120549192509060ff166116d857306116da565b875b6001600160a01b0389166000908152600b602052604090205490915060ff166117035782611705565b855b6001600160a01b0382166000908152600a6020526040812080549295508592909190611732908490611f1c565b909155505060405183815230906001600160a01b038a1690600080516020611ff28339815191529060200160405180910390a36001600160a01b0388166000908152600a60205260408120805488929061178d908490611ebe565b90915550506001600160a01b0387166000908152600a6020526040812080548492906117ba908490611f1c565b92505081905550866001600160a01b0316886001600160a01b0316600080516020611ff2833981519152846040516117f491815260200190565b60405180910390a350505061189c565b6001600160a01b0385166000908152600a60205260408120805485929061182c908490611ebe565b90915550506001600160a01b0384166000908152600a602052604081208054859290611859908490611f1c565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611ff28339815191528560405161189391815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116119025782611904565b815b9392505050565b6009805460ff19166001179055806119655760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104da565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061199a5761199a611f6a565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a179190611ed1565b81600181518110611a2a57611a2a611f6a565b6001600160a01b039283166020918202929092010152600e54611a509130911684610f9b565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a89908590600090869030904290600401611f80565b600060405180830381600087803b158015611aa357600080fd5b505af1158015611ab7573d6000803e3d6000fd5b50506009805460ff1916905550505050565b60008111611b195760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104da565b6001546001600160a01b03166108fc611b33600284611f48565b6040518115909202916000818181858888f19350505050158015611b5b573d6000803e3d6000fd5b50600280546001600160a01b0316906108fc90611b789084611f48565b6040518115909202916000818181858888f19350505050158015611ba0573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b81811015611bd157858101830151858201604001528201611bb5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f9857600080fd5b60008060408385031215611c1a57600080fd5b8235611c2581611bf2565b946020939093013593505050565b60008060408385031215611c4657600080fd5b50508035926020909101359150565b600080600060608486031215611c6a57600080fd5b8335611c7581611bf2565b92506020840135611c8581611bf2565b929592945050506040919091013590565b600060208284031215611ca857600080fd5b813561190481611bf2565b60008060408385031215611cc657600080fd5b8235611cd181611bf2565b91506020830135611ce181611bf2565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611d72578160001904821115611d5857611d58611d21565b80851615611d6557918102915b93841c9390800290611d3c565b509250929050565b600082611d89575060016104aa565b81611d96575060006104aa565b8160018114611dac5760028114611db657611dd2565b60019150506104aa565b60ff841115611dc757611dc7611d21565b50506001821b6104aa565b5060208310610133831016604e8410600b8410161715611df5575081810a6104aa565b611dff8383611d37565b8060001904821115611e1357611e13611d21565b029392505050565b600061190460ff841683611d7a565b80820281158282048414176104aa576104aa611d21565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b600060208284031215611e9557600080fd5b5051919050565b600060208284031215611eae57600080fd5b8151801515811461190457600080fd5b818103818111156104aa576104aa611d21565b600060208284031215611ee357600080fd5b815161190481611bf2565b600080600060608486031215611f0357600080fd5b8351925060208401519150604084015190509250925092565b808201808211156104aa576104aa611d21565b600060018201611f4157611f41611d21565b5060010190565b600082611f6557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fd05784516001600160a01b031683529383019391830191600101611fab565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f63acce0e9f5d07dede7f5f593568cc0304d9e7fced3af80b726b26f07cdf8cc64736f6c63430008110033

Deployed Bytecode Sourcemap

3934:10454:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9595:83;;;;;;;;;;-1:-1:-1;9665:5:0;;;;;;;;;;;;-1:-1:-1;;;9665:5:0;;;;9595:83;;;;;;;:::i;:::-;;;;;;;;14199:186;;;;;;;;;;-1:-1:-1;14199:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;14199:186:0;1023:187:1;6940:229:0;;;;;;;;;;-1:-1:-1;6940:229:0;;;;;:::i;:::-;;:::i;:::-;;5395:39;;;;;;;;;;-1:-1:-1;5395:39:0;;;;-1:-1:-1;;;;;5395:39:0;;;;;;-1:-1:-1;;;;;1656:32:1;;;1638:51;;1626:2;1611:18;5395:39:0;1468:227:1;9866:96:0;;;;;;;;;;;;;:::i;:::-;;;1846:25:1;;;1834:2;1819:18;9866:96:0;1700:177:1;7996:560:0;;;;;;;;;;-1:-1:-1;7996:560:0;;;;;:::i;:::-;;:::i;12999:481::-;;;;;;;;;;-1:-1:-1;12999:481:0;;;;;:::i;:::-;;:::i;4065:80::-;;;;;;;;;;;;4103:42;4065:80;;9777:83;;;;;;;;;;-1:-1:-1;9777:83:0;;4297:1;2693:36:1;;2681:2;2666:18;9777:83:0;2551:184:1;9968:120:0;;;;;;;;;;-1:-1:-1;9968:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;10061:19:0;10034:7;10061:19;;;:10;:19;;;;;;;9968:120;3135:148;;;;;;;;;;;;;:::i;7177:142::-;;;;;;;;;;;;;:::i;2484:79::-;;;;;;;;;;-1:-1:-1;2522:7:0;2549:6;-1:-1:-1;;;;;2549:6:0;2484:79;;9684:87;;;;;;;;;;-1:-1:-1;9756:7:0;;;;;;;;;;;;-1:-1:-1;;;9756:7:0;;;;9684:87;;8958:629;;;:::i;13827:192::-;;;;;;;;;;-1:-1:-1;13827:192:0;;;;;:::i;:::-;;:::i;6231:278::-;;;;;;;;;;-1:-1:-1;6231:278:0;;;;;:::i;:::-;;:::i;6724:208::-;;;;;;;;;;;;;:::i;5092:32::-;;;;;;;;;;-1:-1:-1;5092:32:0;;;;;;;;;;;14025:168;;;;;;;;;;-1:-1:-1;14025:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;14158:18:0;;;14131:7;14158:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14025:168;8564:386;;;;;;;;;;;;;:::i;5947:276::-;;;;;;;;;;-1:-1:-1;5947:276:0;;;;;:::i;:::-;;:::i;4552:56::-;;;;;;;;;;;;;;;;2694:238;;;;;;;;;;-1:-1:-1;2694:238:0;;;;;:::i;:::-;;:::i;14199:186::-;14299:4;14316:39;1261:10;14339:7;14348:6;14316:8;:39::i;:::-;-1:-1:-1;14373:4:0;14199:186;;;;;:::o;6940:229::-;2609:6;;-1:-1:-1;;;;;2609:6:0;1261:10;2609:22;2601:67;;;;-1:-1:-1;;;2601:67:0;;;;;;;:::i;:::-;;;;;;;;;7041:3:::1;7030:7;:14;;:33;;;;;7060:3;7048:8;:15;;7030:33;7022:71;;;::::0;-1:-1:-1;;;7022:71:0;;3948:2:1;7022:71:0::1;::::0;::::1;3930:21:1::0;3987:2;3967:18;;;3960:30;4026:27;4006:18;;;3999:55;4071:18;;7022:71:0::1;3746:349:1::0;7022:71:0::1;7104:12;:22:::0;;;;7137:13:::1;:24:::0;6940:229::o;9866:96::-;9919:7;4354:15;4297:1;4354:2;:15;:::i;:::-;4341:28;;:10;:28;:::i;:::-;9939:15;;9866:96;:::o;7996:560::-;2609:6;;-1:-1:-1;;;;;2609:6:0;1261:10;2609:22;2601:67;;;;-1:-1:-1;;;2601:67:0;;;;;;;:::i;:::-;8157:4:::1;-1:-1:-1::0;;;;;8135:27:0;::::1;::::0;8113:131:::1;;;::::0;-1:-1:-1;;;8113:131:0;;5990:2:1;8113:131:0::1;::::0;::::1;5972:21:1::0;6029:2;6009:18;;;6002:30;6068:34;6048:18;;;6041:62;-1:-1:-1;;;6119:18:1;;;6112:52;6181:19;;8113:131:0::1;5788:418:1::0;8113:131:0::1;8273:1;8263:7;:11;8255:58;;;;-1:-1:-1::0;;;8255:58:0::1;;;;;;;:::i;:::-;8357:43;::::0;-1:-1:-1;;;8357:43:0;;8394:4:::1;8357:43;::::0;::::1;1638:51:1::0;-1:-1:-1;;;;;8357:28:0;::::1;::::0;::::1;::::0;1611:18:1;;8357:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8346:7;:54;;8324:123;;;::::0;-1:-1:-1;;;8324:123:0;;7005:2:1;8324:123:0::1;::::0;::::1;6987:21:1::0;7044:2;7024:18;;;7017:30;-1:-1:-1;;;7063:18:1;;;7056:49;7122:18;;8324:123:0::1;6803:343:1::0;8324:123:0::1;8486:8;::::0;8458:46:::1;::::0;-1:-1:-1;;;8458:46:0;;-1:-1:-1;;;;;8486:8:0;;::::1;8458:46;::::0;::::1;7333:51:1::0;7400:18;;;7393:34;;;8458:27:0;;::::1;::::0;::::1;::::0;7306:18:1;;8458:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;8520:28:0::1;::::0;8540:7;;8520:28:::1;::::0;;;::::1;7996:560:::0;;:::o;12999:481::-;-1:-1:-1;;;;;13175:19:0;;13131:4;13175:19;;;:11;:19;;;;;;;;1261:10;13175:33;;;;;;;;13241:26;;;;13219:116;;;;-1:-1:-1;;;13219:116:0;;7922:2:1;13219:116:0;;;7904:21:1;7961:2;7941:18;;;7934:30;8000:34;7980:18;;;7973:62;-1:-1:-1;;;8051:18:1;;;8044:38;8099:19;;13219:116:0;7720:404:1;13219:116:0;13346:36;13356:6;13364:9;13375:6;13346:9;:36::i;:::-;13393:57;13402:6;1261:10;13424:25;13443:6;13424:16;:25;:::i;:::-;13393:8;:57::i;:::-;-1:-1:-1;13468:4:0;;12999:481;-1:-1:-1;;;;12999:481:0:o;3135:148::-;2609:6;;-1:-1:-1;;;;;2609:6:0;1261:10;2609:22;2601:67;;;;-1:-1:-1;;;2601:67:0;;;;;;;:::i;:::-;3242:1:::1;3226:6:::0;;3205:40:::1;::::0;-1:-1:-1;;;;;3226:6:0;;::::1;::::0;3205:40:::1;::::0;3242:1;;3205:40:::1;3273:1;3256:19:::0;;-1:-1:-1;;;;;;3256:19:0::1;::::0;;3135:148::o;7177:142::-;2609:6;;-1:-1:-1;;;;;2609:6:0;1261:10;2609:22;2601:67;;;;-1:-1:-1;;;2601:67:0;;;;;;;:::i;:::-;4354:15:::1;4297:1;4354:2;:15;:::i;:::-;4341:28;::::0;:10:::1;:28;:::i;:::-;7231:12;:23:::0;7282:1:::1;7267:12;:16:::0;;;7294:13:::1;:17:::0;7177:142::o;8958:629::-;2609:6;;-1:-1:-1;;;;;2609:6:0;1261:10;2609:22;2601:67;;;;-1:-1:-1;;;2601:67:0;;;;;;;:::i;:::-;9020:15:::1;:102:::0;;-1:-1:-1;;;;;;9020:102:0::1;9069:42;9020:102:::0;;::::1;::::0;;;9167:25:::1;::::0;;-1:-1:-1;;;9167:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;9069:42;9167:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9149:55:0::1;;9227:4;9247:15;;;;;;;;;-1:-1:-1::0;;;;;9247:15:0::1;-1:-1:-1::0;;;;;9247:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9149:131;::::0;-1:-1:-1;;;;;;9149:131:0::1;::::0;;;;;;-1:-1:-1;;;;;8748:15:1;;;9149:131:0::1;::::0;::::1;8730:34:1::0;8800:15;;8780:18;;;8773:43;8665:18;;9149:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9133:13;:147:::0;;-1:-1:-1;;;;;;9133:147:0::1;-1:-1:-1::0;;;;;9133:147:0;;::::1;;::::0;;9325:15:::1;::::0;9293:62:::1;::::0;9310:4:::1;::::0;9325:15:::1;-1:-1:-1::0;;9293:8:0::1;:62::i;:::-;9368:15;::::0;-1:-1:-1;;;;;9368:15:0::1;:31;9407:9;9440:4;9460:24;9440:4:::0;-1:-1:-1;;;;;10061:19:0;10034:7;10061:19;;;:10;:19;;;;;;;9968:120;9460:24:::1;9499:1;9515::::0;9531:7:::1;2522::::0;2549:6;-1:-1:-1;;;;;2549:6:0;;2484:79;9531:7:::1;9368:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9368:211:0;;;-1:-1:-1;;;;;9186:15:1;;;9368:211:0::1;::::0;::::1;9168:34:1::0;9218:18;;;9211:34;;;;9261:18;;;9254:34;;;;9304:18;;;9297:34;9368:15;;;9347:19;;;9340:44;9553:15:0::1;9400:19:1::0;;;9393:35;9102:19;;9368:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8958:629::o:0;13827:192::-;13930:4;13947:42;1261:10;13971:9;13982:6;13947:9;:42::i;6231:278::-;2609:6;;-1:-1:-1;;;;;2609:6:0;1261:10;2609:22;2601:67;;;;-1:-1:-1;;;2601:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6325:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;::::1;;:32;;::::0;;6303:109:::1;;;::::0;-1:-1:-1;;;6303:109:0;;9952:2:1;6303:109:0::1;::::0;::::1;9934:21:1::0;9991:2;9971:18;;;9964:30;10030:29;10010:18;;;10003:57;10077:18;;6303:109:0::1;9750:351:1::0;6303:109:0::1;-1:-1:-1::0;;;;;6423:23:0;::::1;6449:5;6423:23:::0;;;:14:::1;:23;::::0;;;;;:31;;-1:-1:-1;;6423:31:0::1;::::0;;6470;::::1;::::0;6449:5;6470:31:::1;6231:278:::0;:::o;6724:208::-;2609:6;;-1:-1:-1;;;;;2609:6:0;1261:10;2609:22;2601:67;;;;-1:-1:-1;;;2601:67:0;;;;;;;:::i;:::-;6786:12:::1;::::0;::::1;::::0;::::1;;;6785:13;6777:49;;;::::0;-1:-1:-1;;;6777:49:0;;10308:2:1;6777:49:0::1;::::0;::::1;10290:21:1::0;10347:2;10327:18;;;10320:30;10386:25;10366:18;;;10359:53;10429:18;;6777:49:0::1;10106:347:1::0;6777:49:0::1;6837:12;:19:::0;;-1:-1:-1;;6867:18:0;;;;;6901:23:::1;::::0;::::1;::::0;-1:-1:-1;;6901:23:0::1;6724:208::o:0;8564:386::-;8632:21;8672:16;8664:63;;;;-1:-1:-1;;;8664:63:0;;;;;;;:::i;:::-;8776:21;8760:12;:37;;8738:106;;;;-1:-1:-1;;;8738:106:0;;7005:2:1;8738:106:0;;;6987:21:1;7044:2;7024:18;;;7017:30;-1:-1:-1;;;7063:18:1;;;7056:49;7122:18;;8738:106:0;6803:343:1;8738:106:0;8871:8;;8855:49;;-1:-1:-1;;;;;8871:8:0;;;;8855:49;;;;;8891:12;;8871:8;8855:49;8871:8;8855:49;8891:12;8871:8;8855:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8920:22:0;;;;;;;8598:352;8564:386::o;5947:276::-;2609:6;;-1:-1:-1;;;;;2609:6:0;1261:10;2609:22;2601:67;;;;-1:-1:-1;;;2601:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6041:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;::::1;;:31;;:23:::0;:31;6019:108:::1;;;::::0;-1:-1:-1;;;6019:108:0;;10660:2:1;6019:108:0::1;::::0;::::1;10642:21:1::0;10699:2;10679:18;;;10672:30;10738:29;10718:18;;;10711:57;10785:18;;6019:108:0::1;10458:351:1::0;6019:108:0::1;-1:-1:-1::0;;;;;6138:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;:30;;-1:-1:-1;;6138:30:0::1;6164:4;6138:30;::::0;;6184:31;::::1;::::0;6138:23;6184:31:::1;5947:276:::0;:::o;2694:238::-;2609:6;;-1:-1:-1;;;;;2609:6:0;1261:10;2609:22;2601:67;;;;-1:-1:-1;;;2601:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2797:22:0;::::1;2775:110;;;::::0;-1:-1:-1;;;2775:110:0;;11016:2:1;2775:110:0::1;::::0;::::1;10998:21:1::0;11055:2;11035:18;;;11028:30;11094:34;11074:18;;;11067:62;-1:-1:-1;;;11145:18:1;;;11138:36;11191:19;;2775:110:0::1;10814:402:1::0;2775:110:0::1;2896:28;2915:8;2896:18;:28::i;:::-;2694:238:::0;:::o;13486:335::-;-1:-1:-1;;;;;13579:19:0;;13571:68;;;;-1:-1:-1;;;13571:68:0;;11423:2:1;13571:68:0;;;11405:21:1;11462:2;11442:18;;;11435:30;11501:34;11481:18;;;11474:62;-1:-1:-1;;;11552:18:1;;;11545:34;11596:19;;13571:68:0;11221:400:1;13571:68:0;-1:-1:-1;;;;;13658:21:0;;13650:68;;;;-1:-1:-1;;;13650:68:0;;11828:2:1;13650:68:0;;;11810:21:1;11867:2;11847:18;;;11840:30;11906:34;11886:18;;;11879:62;-1:-1:-1;;;11957:18:1;;;11950:32;11999:19;;13650:68:0;11626:398:1;13650:68:0;-1:-1:-1;;;;;13729:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13781:32;;1846:25:1;;;13781:32:0;;1819:18:1;13781:32:0;;;;;;;13486:335;;;:::o;10096:2858::-;-1:-1:-1;;;;;10184:18:0;;10176:68;;;;-1:-1:-1;;;10176:68:0;;12231:2:1;10176:68:0;;;12213:21:1;12270:2;12250:18;;;12243:30;12309:34;12289:18;;;12282:62;-1:-1:-1;;;12360:18:1;;;12353:35;12405:19;;10176:68:0;12029:401:1;10176:68:0;-1:-1:-1;;;;;10263:16:0;;10255:64;;;;-1:-1:-1;;;10255:64:0;;12637:2:1;10255:64:0;;;12619:21:1;12676:2;12656:18;;;12649:30;12715:34;12695:18;;;12688:62;-1:-1:-1;;;12766:18:1;;;12759:33;12809:19;;10255:64:0;12435:399:1;10255:64:0;10347:1;10338:6;:10;10330:64;;;;-1:-1:-1;;;10330:64:0;;13041:2:1;10330:64:0;;;13023:21:1;13080:2;13060:18;;;13053:30;13119:34;13099:18;;;13092:62;-1:-1:-1;;;13170:18:1;;;13163:39;13219:19;;10330:64:0;12839:405:1;10330:64:0;10453:12;;-1:-1:-1;;;;;10483:20:0;;10407:18;10483:20;;;:14;:20;;;;;;;;10482:21;:44;;;;-1:-1:-1;;;;;;10508:18:0;;;;;;:14;:18;;;;;;;;10507:19;10482:44;10478:121;;;10551:12;;;;;;;10543:44;;;;-1:-1:-1;;;10543:44:0;;13451:2:1;10543:44:0;;;13433:21:1;13490:2;13470:18;;;13463:30;-1:-1:-1;;;13509:18:1;;;13502:49;13568:18;;10543:44:0;13249:343:1;10543:44:0;10615:10;;;;;:26;;-1:-1:-1;10630:11:0;;;;;;;10629:12;10615:26;10611:191;;;-1:-1:-1;;;;;10658:16:0;;;;;;:10;:16;;;;;:26;;10678:6;;10658:16;:26;;10678:6;;10658:26;:::i;:::-;;;;-1:-1:-1;;;;;;;10699:14:0;;;;;;:10;:14;;;;;:24;;10717:6;;10699:14;:24;;10717:6;;10699:24;:::i;:::-;;;;;;;;10758:2;-1:-1:-1;;;;;10743:26:0;10752:4;-1:-1:-1;;;;;10743:26:0;-1:-1:-1;;;;;;;;;;;10762:6:0;10743:26;;;;1846:25:1;;1834:2;1819:18;;1700:177;10743:26:0;;;;;;;;10784:7;10096:2858;;;:::o;10611:191::-;10840:13;;-1:-1:-1;;;;;10832:21:0;;;10840:13;;10832:21;:68;;;;-1:-1:-1;10884:15:0;;-1:-1:-1;;;;;10870:30:0;;;10884:15;;10870:30;;10832:68;:104;;;;-1:-1:-1;;;;;;10918:18:0;;;;;;:14;:18;;;;;;;;10917:19;10832:104;10814:393;;;10981:12;;10971:6;:22;;10963:60;;;;-1:-1:-1;;;10963:60:0;;13929:2:1;10963:60:0;;;13911:21:1;13968:2;13948:18;;;13941:30;-1:-1:-1;;;13987:18:1;;;13980:55;14052:18;;10963:60:0;13727:349:1;10963:60:0;11090:12;;11080:6;11064:13;11074:2;-1:-1:-1;;;;;10061:19:0;10034:7;10061:19;;;:10;:19;;;;;;;9968:120;11064:13;:22;;;;:::i;:::-;:38;;11038:126;;;;-1:-1:-1;;;11038:126:0;;14283:2:1;11038:126:0;;;14265:21:1;14322:2;14302:18;;;14295:30;14361:28;14341:18;;;14334:56;14407:18;;11038:126:0;14081:350:1;11038:126:0;11179:14;:16;;;:14;:16;;;:::i;:::-;;;;;;10814:393;11245:13;;-1:-1:-1;;;;;11237:21:0;;;11245:13;;11237:21;;;;:59;;-1:-1:-1;;;;;;11276:20:0;;;;;;:14;:20;;;;;;;;11275:21;11237:59;:95;;;;-1:-1:-1;;;;;;11314:18:0;;;;;;:14;:18;;;;;;;;11313:19;11237:95;11219:212;;;11377:12;;11367:6;:22;;11359:60;;;;-1:-1:-1;;;11359:60:0;;13929:2:1;11359:60:0;;;13911:21:1;13968:2;13948:18;;;13941:30;-1:-1:-1;;;13987:18:1;;;13980:55;14052:18;;11359:60:0;13727:349:1;11359:60:0;11467:13;;-1:-1:-1;;;;;11461:19:0;;;11467:13;;11461:19;:57;;;;-1:-1:-1;;;;;;11497:21:0;;11513:4;11497:21;;11461:57;:95;;;;-1:-1:-1;;;;;;11536:20:0;;;;;;:14;:20;;;;;;;;11535:21;11461:95;:131;;;;-1:-1:-1;;;;;;11574:18:0;;;;;;:14;:18;;;;;;;;11573:19;11461:131;11443:214;;;-1:-1:-1;11632:13:0;;11443:214;11712:4;11669:22;10061:19;;;:10;:19;;;;;;11747:14;;:18;;;;:46;;-1:-1:-1;11783:10:0;;;;11782:11;11747:46;:87;;;;;11820:14;;11810:6;:24;;11747:87;:123;;;;-1:-1:-1;11857:13:0;;-1:-1:-1;;;;;11851:19:0;;;11857:13;;11851:19;11747:123;:172;;;;;11905:14;;11887;:32;;11747:172;:200;;;;-1:-1:-1;11936:11:0;;;;;;;11747:200;:238;;;;-1:-1:-1;;;;;;11965:20:0;;;;;;:14;:20;;;;;;;;11964:21;11747:238;:274;;;;-1:-1:-1;;;;;;12003:18:0;;;;;;:14;:18;;;;;;;;12002:19;11747:274;11729:558;;;12048:60;12060:47;12064:6;12072:34;12076:14;12092:13;;12072:3;:34::i;:::-;12060:3;:47::i;:::-;12048:11;:60::i;:::-;12146:21;12186:16;;12182:94;;12223:37;12238:21;12223:14;:37::i;:::-;12033:254;11729:558;12303:15;;12299:648;;12335:13;12375:3;12352:19;12361:10;12352:6;:19;:::i;:::-;12351:27;;;;:::i;:::-;12335:43;-1:-1:-1;12393:16:0;12412:14;12335:43;12412:6;:14;:::i;:::-;-1:-1:-1;;;;;12459:20:0;;12441:15;12459:20;;;:14;:20;;;;;;12393:33;;-1:-1:-1;12441:15:0;12459:20;;:43;;12497:4;12459:43;;;12482:4;12459:43;-1:-1:-1;;;;;12525:20:0;;;;;;:14;:20;;;;;;12441:61;;-1:-1:-1;12525:20:0;;:37;;12557:5;12525:37;;;12548:6;12525:37;-1:-1:-1;;;;;12577:19:0;;;;;;:10;:19;;;;;:28;;12517:45;;-1:-1:-1;12517:45:0;;12577:19;;;:28;;12517:45;;12577:28;:::i;:::-;;;;-1:-1:-1;;12625:36:0;;1846:25:1;;;12648:4:0;;-1:-1:-1;;;;;12625:36:0;;;-1:-1:-1;;;;;;;;;;;12625:36:0;1834:2:1;1819:18;12625:36:0;;;;;;;-1:-1:-1;;;;;12676:16:0;;;;;;:10;:16;;;;;:26;;12696:6;;12676:16;:26;;12696:6;;12676:26;:::i;:::-;;;;-1:-1:-1;;;;;;;12717:14:0;;;;;;:10;:14;;;;;:26;;12735:8;;12717:14;:26;;12735:8;;12717:26;:::i;:::-;;;;;;;;12778:2;-1:-1:-1;;;;;12763:28:0;12772:4;-1:-1:-1;;;;;12763:28:0;-1:-1:-1;;;;;;;;;;;12782:8:0;12763:28;;;;1846:25:1;;1834:2;1819:18;;1700:177;12763:28:0;;;;;;;;12320:483;;;12299:648;;;-1:-1:-1;;;;;12824:16:0;;;;;;:10;:16;;;;;:26;;12844:6;;12824:16;:26;;12844:6;;12824:26;:::i;:::-;;;;-1:-1:-1;;;;;;;12865:14:0;;;;;;:10;:14;;;;;:24;;12883:6;;12865:14;:24;;12883:6;;12865:24;:::i;:::-;;;;;;;;12924:2;-1:-1:-1;;;;;12909:26:0;12918:4;-1:-1:-1;;;;;12909:26:0;-1:-1:-1;;;;;;;;;;;12928:6:0;12909:26;;;;1846:25:1;;1834:2;1819:18;;1700:177;12909:26:0;;;;;;;;12299:648;10165:2789;;10096:2858;;;:::o;2938:191::-;3012:16;3031:6;;-1:-1:-1;;;;;3048:17:0;;;-1:-1:-1;;;;;;3048:17:0;;;;;;3081:40;;3031:6;;;;;;;3081:40;;3012:16;3081:40;3001:128;2938:191;:::o;7327:107::-;7384:7;7416:1;7412;:5;7411:15;;7425:1;7411:15;;;7421:1;7411:15;7404:22;7327:107;-1:-1:-1;;;7327:107:0:o;7442:546::-;4188:10;:17;;-1:-1:-1;;4188:17:0;4201:4;4188:17;;;7523:15;7515:57:::1;;;::::0;-1:-1:-1;;;7515:57:0;;15000:2:1;7515:57:0::1;::::0;::::1;14982:21:1::0;15039:2;15019:18;;;15012:30;15078:31;15058:18;;;15051:59;15127:18;;7515:57:0::1;14798:353:1::0;7515:57:0::1;7607:16;::::0;;7621:1:::1;7607:16:::0;;;;;::::1;::::0;;7583:21:::1;::::0;7607:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;7607:16:0::1;7583:40;;7652:4;7634;7639:1;7634:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7634:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;7678:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;7678:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;7634:7;;7678:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7668:4;7673:1;7668:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7668:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;7743:15:::1;::::0;7711:62:::1;::::0;7728:4:::1;::::0;7743:15:::1;7761:11:::0;7711:8:::1;:62::i;:::-;7784:15;::::0;:196:::1;::::0;-1:-1:-1;;;7784:196:0;;-1:-1:-1;;;;;7784:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;7865:11;;7784:15:::1;::::0;7907:4;;7934::::1;::::0;7954:15:::1;::::0;7784:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4228:10:0;:18;;-1:-1:-1;;4228:18:0;;;-1:-1:-1;;;;7442:546:0:o;6517:199::-;6593:1;6584:6;:10;6576:52;;;;-1:-1:-1;;;6576:52:0;;15000:2:1;6576:52:0;;;14982:21:1;15039:2;15019:18;;;15012:30;15078:31;15058:18;;;15051:59;15127:18;;6576:52:0;14798:353:1;6576:52:0;6639:8;;-1:-1:-1;;;;;6639:8:0;:29;6657:10;6666:1;6657:6;:10;:::i;:::-;6639:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6679:8:0;;;-1:-1:-1;;;;;6679:8:0;;:29;;6697:10;;:6;:10;:::i;:::-;6679:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6517:199;:::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;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1882:456::-;1959:6;1967;1975;2028:2;2016:9;2007:7;2003:23;1999:32;1996:52;;;2044:1;2041;2034:12;1996:52;2083:9;2070:23;2102:31;2127:5;2102:31;:::i;:::-;2152:5;-1:-1:-1;2209:2:1;2194:18;;2181:32;2222:33;2181:32;2222:33;:::i;:::-;1882:456;;2274:7;;-1:-1:-1;;;2328:2:1;2313:18;;;;2300:32;;1882:456::o;2740:247::-;2799:6;2852:2;2840:9;2831:7;2827:23;2823:32;2820:52;;;2868:1;2865;2858:12;2820:52;2907:9;2894:23;2926:31;2951:5;2926:31;:::i;2992:388::-;3060:6;3068;3121:2;3109:9;3100:7;3096:23;3092:32;3089:52;;;3137:1;3134;3127:12;3089:52;3176:9;3163:23;3195:31;3220:5;3195:31;:::i;:::-;3245:5;-1:-1:-1;3302:2:1;3287:18;;3274:32;3315:33;3274:32;3315:33;:::i;:::-;3367:7;3357:17;;;2992:388;;;;;:::o;3385:356::-;3587:2;3569:21;;;3606:18;;;3599:30;3665:34;3660:2;3645:18;;3638:62;3732:2;3717:18;;3385:356::o;4100:127::-;4161:10;4156:3;4152:20;4149:1;4142:31;4192:4;4189:1;4182:15;4216:4;4213:1;4206:15;4232:422;4321:1;4364:5;4321:1;4378:270;4399:7;4389:8;4386:21;4378:270;;;4458:4;4454:1;4450:6;4446:17;4440:4;4437:27;4434:53;;;4467:18;;:::i;:::-;4517:7;4507:8;4503:22;4500:55;;;4537:16;;;;4500:55;4616:22;;;;4576:15;;;;4378:270;;;4382:3;4232:422;;;;;:::o;4659:806::-;4708:5;4738:8;4728:80;;-1:-1:-1;4779:1:1;4793:5;;4728:80;4827:4;4817:76;;-1:-1:-1;4864:1:1;4878:5;;4817:76;4909:4;4927:1;4922:59;;;;4995:1;4990:130;;;;4902:218;;4922:59;4952:1;4943:10;;4966:5;;;4990:130;5027:3;5017:8;5014:17;5011:43;;;5034:18;;:::i;:::-;-1:-1:-1;;5090:1:1;5076:16;;5105:5;;4902:218;;5204:2;5194:8;5191:16;5185:3;5179:4;5176:13;5172:36;5166:2;5156:8;5153:16;5148:2;5142:4;5139:12;5135:35;5132:77;5129:159;;;-1:-1:-1;5241:19:1;;;5273:5;;5129:159;5320:34;5345:8;5339:4;5320:34;:::i;:::-;5390:6;5386:1;5382:6;5378:19;5369:7;5366:32;5363:58;;;5401:18;;:::i;:::-;5439:20;;4659:806;-1:-1:-1;;;4659:806:1:o;5470:140::-;5528:5;5557:47;5598:4;5588:8;5584:19;5578:4;5557:47;:::i;5615:168::-;5688:9;;;5719;;5736:15;;;5730:22;;5716:37;5706:71;;5757:18;;:::i;6211:398::-;6413:2;6395:21;;;6452:2;6432:18;;;6425:30;6491:34;6486:2;6471:18;;6464:62;-1:-1:-1;;;6557:2:1;6542:18;;6535:32;6599:3;6584:19;;6211:398::o;6614:184::-;6684:6;6737:2;6725:9;6716:7;6712:23;6708:32;6705:52;;;6753:1;6750;6743:12;6705:52;-1:-1:-1;6776:16:1;;6614:184;-1:-1:-1;6614:184:1:o;7438:277::-;7505:6;7558:2;7546:9;7537:7;7533:23;7529:32;7526:52;;;7574:1;7571;7564:12;7526:52;7606:9;7600:16;7659:5;7652:13;7645:21;7638:5;7635:32;7625:60;;7681:1;7678;7671:12;8129:128;8196:9;;;8217:11;;;8214:37;;;8231:18;;:::i;8262:251::-;8332:6;8385:2;8373:9;8364:7;8360:23;8356:32;8353:52;;;8401:1;8398;8391:12;8353:52;8433:9;8427:16;8452:31;8477:5;8452:31;:::i;9439:306::-;9527:6;9535;9543;9596:2;9584:9;9575:7;9571:23;9567:32;9564:52;;;9612:1;9609;9602:12;9564:52;9641:9;9635:16;9625:26;;9691:2;9680:9;9676:18;9670:25;9660:35;;9735:2;9724:9;9720:18;9714:25;9704:35;;9439:306;;;;;:::o;13597:125::-;13662:9;;;13683:10;;;13680:36;;;13696:18;;:::i;14436:135::-;14475:3;14496:17;;;14493:43;;14516:18;;:::i;:::-;-1:-1:-1;14563:1:1;14552:13;;14436:135::o;14576:217::-;14616:1;14642;14632:132;;14686:10;14681:3;14677:20;14674:1;14667:31;14721:4;14718:1;14711:15;14749:4;14746:1;14739:15;14632:132;-1:-1:-1;14778:9:1;;14576:217::o;15288:127::-;15349:10;15344:3;15340:20;15337:1;15330:31;15380:4;15377:1;15370:15;15404:4;15401:1;15394:15;15420:980;15682:4;15730:3;15719:9;15715:19;15761:6;15750:9;15743:25;15787:2;15825:6;15820:2;15809:9;15805:18;15798:34;15868:3;15863:2;15852:9;15848:18;15841:31;15892:6;15927;15921:13;15958:6;15950;15943:22;15996:3;15985:9;15981:19;15974:26;;16035:2;16027:6;16023:15;16009:29;;16056:1;16066:195;16080:6;16077:1;16074:13;16066:195;;;16145:13;;-1:-1:-1;;;;;16141:39:1;16129:52;;16236:15;;;;16201:12;;;;16177:1;16095:9;16066:195;;;-1:-1:-1;;;;;;;16317:32:1;;;;16312:2;16297:18;;16290:60;-1:-1:-1;;;16381:3:1;16366:19;16359:35;16278:3;15420:980;-1:-1:-1;;;15420:980:1:o

Swarm Source

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