ETH Price: $3,349.15 (+0.99%)
 

Overview

Max Total Supply

1,000,000,000,000 WAG

Holders

114 (0.00%)

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Memgen: Unleashing meme magic & defi power! Stake, vote, and meme your way to the moon.

Contract Source Code Verified (Exact Match)

Contract Name:
WAG

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2024-07-01
*/

// Website 
// memgen.io 

// Twitter 
// https://x.com/memgen_io

// SPDX-License-Identifier: MIT */

pragma solidity 0.8.21;

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

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

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

library Address {
    function sendValue(address payable recipient, uint256 amount) internal returns(bool){
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        return success; // always proceeds
    }
}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor () {
        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;
    }
}

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

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

        return true;
    }

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

contract WAG is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public  feeOnBuy;
    uint256 public  feeOnSell;

    address public  feeReceiver;

    uint256 public  swapTokensAtAmount;
    bool    private swapping;

    bool    public swapEnabled;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);

    constructor () ERC20("WAG", "WAG") 
    {   
        address router = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        transferOwnership(0x77d9b33Ebd49c12E2FA83331092aC050DE2Fb3D2);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        feeOnBuy  = 5;
        feeOnSell = 5;

        feeReceiver = 0x0000000000000000000000000000000000000000;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[feeReceiver] = true;

        _mintOnce(owner(), 1e12 * (10 ** decimals()));
        swapTokensAtAmount = totalSupply() / 5_000;

        swapEnabled = false;
    }

    receive() external payable {}

    function creator() public pure returns (string memory) {
        return "t.me/coinsult_tg";
    }

    function claimStuckTokens(address token) external {
        require(msg.sender == feeReceiver || msg.sender == owner(), "Not allowed");
        require(token != address(this), "CSLT: Owner cannot claim contract's balance of its own tokens");
        if (token == address(0x0)) {
            payable(msg.sender).sendValue(address(this).balance);
            return;
        }
        
        IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
    }

    function excludeFromFees(address account, bool excluded) external {
        require(msg.sender == feeReceiver || msg.sender == owner(), "Not allowed");
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    event FeeReceiverChanged(address feeReceiver);

    function changeFeeReceiver(address _feeReceiver) external {
        require(_feeReceiver != address(0), "CSLT: Fee receiver cannot be the zero address");
        require(msg.sender == feeReceiver || msg.sender == owner(), "Not allowed");

        feeReceiver = _feeReceiver;

        emit FeeReceiverChanged(feeReceiver);
    }
    
    event TradingEnabled(bool tradingEnabled);

    bool public tradingEnabled;

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "CSLT: Trading already enabled.");
        tradingEnabled = true;
        swapEnabled = true;

        emit TradingEnabled(tradingEnabled);
    }

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "CSLT: transfer from the zero address");
        require(to != address(0), "CSLT: transfer to the zero address");
        require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "CSLT: Trading not yet enabled!");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            to == uniswapV2Pair &&
            feeOnBuy + feeOnSell > 0 &&
            !_isExcludedFromFees[from] &&
            swapEnabled
        ) {
            swapping = true;

            swapAndSendFee(contractTokenBalance);     

            swapping = false;
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            _totalFees = 50; // 5% (divide by 1000)
        } else if (to == uniswapV2Pair) {
            _totalFees =  50; // 5% (divide by 1000)
        } else {
            _totalFees = 2; // 0.2% (divide by 1000)
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 1_000;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

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

    function setSwapTokensAtAmount(uint256 newAmount, bool _swapEnabled) external onlyOwner{
        require(newAmount > totalSupply() / 1_000_000, "CSLT: SwapTokensAtAmount must be greater than 0.0001% of total supply");
        swapTokensAtAmount = newAmount;
        swapEnabled = _swapEnabled;

        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
    }

    function swapAndSendFee(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 newBalance = address(this).balance - initialBalance;

        payable(feeReceiver).sendValue(newBalance);

        emit SwapAndSendFee(tokenAmount, newBalance);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeReceiver","type":"address"}],"name":"FeeReceiverChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"}],"name":"TradingEnabled","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":[{"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":"_feeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creator","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"newAmount","type":"uint256"},{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"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"}]

608060405234801562000010575f80fd5b5060408051808201825260038082526257414760e81b602080840182905284518086019095528285528401529091906200004b838262000752565b5060046200005a828262000752565b5050505f6200006e6200039560201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f905f8051602062002414833981519152908290a3505f734752ba5dbc23f44d87826276bf6fd6b1c372ad2490505f8190505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000103573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200012991906200081a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000175573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019b91906200081a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001e6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020c91906200081a565b600680546001600160a01b038086166001600160a01b031992831617909255600780549284169290911691909117905590506200025d7377d9b33ebd49c12e2fa83331092ac050de2fb3d262000399565b600654620002789030906001600160a01b03165f19620004a9565b60056009819055600a55600b80546001600160a01b0319169055600160085f620002aa6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560089093527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054851660019081179091553084528284208054861682179055600b5490911683529120805490921617905562000365620003406005546001600160a01b031690565b6200034e6012600a62000958565b6200035f9064e8d4a5100062000968565b620005d0565b6113886200037260025490565b6200037e919062000982565b600c555050600d805461ff001916905550620009b8565b3390565b6005546001600160a01b03163314620003f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620004605760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620003f0565b6005546040516001600160a01b038084169216905f8051602062002414833981519152905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166200050d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620003f0565b6001600160a01b038216620005705760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620003f0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620006285760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003f0565b8060025f8282546200063b9190620009a2565b90915550506001600160a01b0382165f908152602081905260408120805483929062000669908490620009a2565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620006db57607f821691505b602082108103620006fa57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200074d575f81815260208120601f850160051c81016020861015620007285750805b601f850160051c820191505b81811015620007495782815560010162000734565b5050505b505050565b81516001600160401b038111156200076e576200076e620006b2565b62000786816200077f8454620006c6565b8462000700565b602080601f831160018114620007bc575f8415620007a45750858301515b5f19600386901b1c1916600185901b17855562000749565b5f85815260208120601f198616915b82811015620007ec57888601518255948401946001909101908401620007cb565b50858210156200080a57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200082b575f80fd5b81516001600160a01b038116811462000842575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200089d57815f190482111562000881576200088162000849565b808516156200088f57918102915b93841c939080029062000862565b509250929050565b5f82620008b55750600162000952565b81620008c357505f62000952565b8160018114620008dc5760028114620008e75762000907565b600191505062000952565b60ff841115620008fb57620008fb62000849565b50506001821b62000952565b5060208310610133831016604e8410600b84101617156200092c575081810a62000952565b6200093883836200085d565b805f19048211156200094e576200094e62000849565b0290505b92915050565b5f6200084260ff841683620008a5565b808202811582820484141762000952576200095262000849565b5f826200099d57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111562000952576200095262000849565b611a4e80620009c65f395ff3fe6080604052600436106101bd575f3560e01c8063715018a6116100f2578063b1fde9f811610092578063dd62ed3e11610062578063dd62ed3e14610509578063e2f456051461054d578063f2fde38b14610562578063f9d0831a14610581575f80fd5b8063b1fde9f814610497578063b3f00674146104b6578063bb8c3ee0146104d5578063c0246668146104ea575f80fd5b80638da5cb5b116100cd5780638da5cb5b1461042857806395d89b4114610445578063a457c2d714610459578063a9059cbb14610478575f80fd5b8063715018a6146103df5780637c08b964146103f55780638a8c523c14610414575f80fd5b8063395093511161015d5780634fbee193116101385780634fbee1931461034157806365048d08146103785780636ddd17131461038d57806370a08231146103ab575f80fd5b806339509351146102e457806349bd5a5e146103035780634ada218b14610322575f80fd5b80631694505e116101985780631694505e1461025557806318160ddd1461028c57806323b872dd146102aa578063313ce567146102c9575f80fd5b806302d05d3f146101c857806306fdde0314610212578063095ea7b314610226575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b5060408051808201909152601081526f742e6d652f636f696e73756c745f746760801b60208201525b60405161020991906116c7565b60405180910390f35b34801561021d575f80fd5b506101fc6105a0565b348015610231575f80fd5b50610245610240366004611729565b610630565b6040519015158152602001610209565b348015610260575f80fd5b50600654610274906001600160a01b031681565b6040516001600160a01b039091168152602001610209565b348015610297575f80fd5b506002545b604051908152602001610209565b3480156102b5575f80fd5b506102456102c4366004611753565b610646565b3480156102d4575f80fd5b5060405160128152602001610209565b3480156102ef575f80fd5b506102456102fe366004611729565b6106fa565b34801561030e575f80fd5b50600754610274906001600160a01b031681565b34801561032d575f80fd5b50600d546102459062010000900460ff1681565b34801561034c575f80fd5b5061024561035b366004611791565b6001600160a01b03165f9081526008602052604090205460ff1690565b348015610383575f80fd5b5061029c600a5481565b348015610398575f80fd5b50600d5461024590610100900460ff1681565b3480156103b6575f80fd5b5061029c6103c5366004611791565b6001600160a01b03165f9081526020819052604090205490565b3480156103ea575f80fd5b506103f3610735565b005b348015610400575f80fd5b506103f361040f366004611791565b6107a8565b34801561041f575f80fd5b506103f36108a7565b348015610433575f80fd5b506005546001600160a01b0316610274565b348015610450575f80fd5b506101fc61097f565b348015610464575f80fd5b50610245610473366004611729565b61098e565b348015610483575f80fd5b50610245610492366004611729565b610a26565b3480156104a2575f80fd5b506103f36104b13660046117c0565b610a32565b3480156104c1575f80fd5b50600b54610274906001600160a01b031681565b3480156104e0575f80fd5b5061029c60095481565b3480156104f5575f80fd5b506103f36105043660046117ee565b610b44565b348015610514575f80fd5b5061029c61052336600461181a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610558575f80fd5b5061029c600c5481565b34801561056d575f80fd5b506103f361057c366004611791565b610be1565b34801561058c575f80fd5b506103f361059b366004611791565b610ccb565b6060600380546105af90611846565b80601f01602080910402602001604051908101604052809291908181526020018280546105db90611846565b80156106265780601f106105fd57610100808354040283529160200191610626565b820191905f5260205f20905b81548152906001019060200180831161060957829003601f168201915b5050505050905090565b5f61063c338484610e80565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f1981146106e457828110156106d75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106e48533858403610e80565b6106ef858585610fa3565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161063c918590610730908690611892565b610e80565b6005546001600160a01b0316331461075f5760405162461bcd60e51b81526004016106ce906118a5565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6001600160a01b0381166108145760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b60648201526084016106ce565b600b546001600160a01b031633148061083757506005546001600160a01b031633145b6108535760405162461bcd60e51b81526004016106ce906118da565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146108d15760405162461bcd60e51b81526004016106ce906118a5565b600d5462010000900460ff161561092a5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e000060448201526064016106ce565b600d80546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b6060600480546105af90611846565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610a0f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ce565b610a1c3385858403610e80565b5060019392505050565b5f61063c338484610fa3565b6005546001600160a01b03163314610a5c5760405162461bcd60e51b81526004016106ce906118a5565b620f4240610a6960025490565b610a7391906118ff565b8211610af55760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a4016106ce565b600c829055600d805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b600b546001600160a01b0316331480610b6757506005546001600160a01b031633145b610b835760405162461bcd60e51b81526004016106ce906118da565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c0b5760405162461bcd60e51b81526004016106ce906118a5565b6001600160a01b038116610c705760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ce565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b0316331480610cee57506005546001600160a01b031633145b610d0a5760405162461bcd60e51b81526004016106ce906118da565b306001600160a01b03821603610d885760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e7300000060648201526084016106ce565b6001600160a01b038116610da457610da033476112b1565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610df0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e14919061191e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610e5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da09190611935565b6001600160a01b038316610ee25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ce565b6001600160a01b038216610f435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ce565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110055760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ce565b6001600160a01b0382166110665760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ce565b600d5462010000900460ff168061109457506001600160a01b0383165f9081526008602052604090205460ff165b806110b657506001600160a01b0382165f9081526008602052604090205460ff165b6111025760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c656421000060448201526064016106ce565b805f036111195761111483835f61135b565b505050565b305f90815260208190526040902054600c548110801590819061113f5750600d5460ff16155b801561115857506007546001600160a01b038581169116145b801561117257505f600a546009546111709190611892565b115b801561119657506001600160a01b0385165f9081526008602052604090205460ff16155b80156111a95750600d54610100900460ff165b156111cf57600d805460ff191660011790556111c482611528565b600d805460ff191690555b6001600160a01b0385165f9081526008602052604081205460ff168061120c57506001600160a01b0385165f9081526008602052604090205460ff165b806112195750600d5460ff165b1561122557505f611265565b6007546001600160a01b039081169087160361124357506032611265565b6007546001600160a01b039081169086160361126157506032611265565b5060025b801561129e575f6103e86112798387611950565b61128391906118ff565b905061128f8186611967565b945061129c87308361135b565b505b6112a986868661135b565b505050505050565b5f814710156113025760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106ce565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f811461134b576040519150601f19603f3d011682016040523d82523d5f602084013e611350565b606091505b509095945050505050565b6001600160a01b0383166113bf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ce565b6001600160a01b0382166114215760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ce565b6001600160a01b0383165f90815260208190526040902054818110156114985760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106ce565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906114ce908490611892565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161151a91815260200190565b60405180910390a350505050565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f8151811061155f5761155f61197a565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115da919061198e565b816001815181106115ed576115ed61197a565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906116329086905f908690309042906004016119a9565b5f604051808303815f87803b158015611649575f80fd5b505af192505050801561165a575060015b61166357505050565b5f61166e8347611967565b600b54909150611687906001600160a01b0316826112b1565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b5f6020808352835180828501525f5b818110156116f2578581018301518582016040015282016116d6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611726575f80fd5b50565b5f806040838503121561173a575f80fd5b823561174581611712565b946020939093013593505050565b5f805f60608486031215611765575f80fd5b833561177081611712565b9250602084013561178081611712565b929592945050506040919091013590565b5f602082840312156117a1575f80fd5b81356117ac81611712565b9392505050565b8015158114611726575f80fd5b5f80604083850312156117d1575f80fd5b8235915060208301356117e3816117b3565b809150509250929050565b5f80604083850312156117ff575f80fd5b823561180a81611712565b915060208301356117e3816117b3565b5f806040838503121561182b575f80fd5b823561183681611712565b915060208301356117e381611712565b600181811c9082168061185a57607f821691505b60208210810361187857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106405761064061187e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600b908201526a139bdd08185b1b1bddd95960aa1b604082015260600190565b5f8261191957634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561192e575f80fd5b5051919050565b5f60208284031215611945575f80fd5b81516117ac816117b3565b80820281158282048414176106405761064061187e565b818103818111156106405761064061187e565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561199e575f80fd5b81516117ac81611712565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119f75784516001600160a01b0316835293830193918301916001016119d2565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204ac7a48ab9d6f4830f6c3aa509841c16425ae60802bce6d693d3563340fd1d5764736f6c634300081500338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106101bd575f3560e01c8063715018a6116100f2578063b1fde9f811610092578063dd62ed3e11610062578063dd62ed3e14610509578063e2f456051461054d578063f2fde38b14610562578063f9d0831a14610581575f80fd5b8063b1fde9f814610497578063b3f00674146104b6578063bb8c3ee0146104d5578063c0246668146104ea575f80fd5b80638da5cb5b116100cd5780638da5cb5b1461042857806395d89b4114610445578063a457c2d714610459578063a9059cbb14610478575f80fd5b8063715018a6146103df5780637c08b964146103f55780638a8c523c14610414575f80fd5b8063395093511161015d5780634fbee193116101385780634fbee1931461034157806365048d08146103785780636ddd17131461038d57806370a08231146103ab575f80fd5b806339509351146102e457806349bd5a5e146103035780634ada218b14610322575f80fd5b80631694505e116101985780631694505e1461025557806318160ddd1461028c57806323b872dd146102aa578063313ce567146102c9575f80fd5b806302d05d3f146101c857806306fdde0314610212578063095ea7b314610226575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b5060408051808201909152601081526f742e6d652f636f696e73756c745f746760801b60208201525b60405161020991906116c7565b60405180910390f35b34801561021d575f80fd5b506101fc6105a0565b348015610231575f80fd5b50610245610240366004611729565b610630565b6040519015158152602001610209565b348015610260575f80fd5b50600654610274906001600160a01b031681565b6040516001600160a01b039091168152602001610209565b348015610297575f80fd5b506002545b604051908152602001610209565b3480156102b5575f80fd5b506102456102c4366004611753565b610646565b3480156102d4575f80fd5b5060405160128152602001610209565b3480156102ef575f80fd5b506102456102fe366004611729565b6106fa565b34801561030e575f80fd5b50600754610274906001600160a01b031681565b34801561032d575f80fd5b50600d546102459062010000900460ff1681565b34801561034c575f80fd5b5061024561035b366004611791565b6001600160a01b03165f9081526008602052604090205460ff1690565b348015610383575f80fd5b5061029c600a5481565b348015610398575f80fd5b50600d5461024590610100900460ff1681565b3480156103b6575f80fd5b5061029c6103c5366004611791565b6001600160a01b03165f9081526020819052604090205490565b3480156103ea575f80fd5b506103f3610735565b005b348015610400575f80fd5b506103f361040f366004611791565b6107a8565b34801561041f575f80fd5b506103f36108a7565b348015610433575f80fd5b506005546001600160a01b0316610274565b348015610450575f80fd5b506101fc61097f565b348015610464575f80fd5b50610245610473366004611729565b61098e565b348015610483575f80fd5b50610245610492366004611729565b610a26565b3480156104a2575f80fd5b506103f36104b13660046117c0565b610a32565b3480156104c1575f80fd5b50600b54610274906001600160a01b031681565b3480156104e0575f80fd5b5061029c60095481565b3480156104f5575f80fd5b506103f36105043660046117ee565b610b44565b348015610514575f80fd5b5061029c61052336600461181a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610558575f80fd5b5061029c600c5481565b34801561056d575f80fd5b506103f361057c366004611791565b610be1565b34801561058c575f80fd5b506103f361059b366004611791565b610ccb565b6060600380546105af90611846565b80601f01602080910402602001604051908101604052809291908181526020018280546105db90611846565b80156106265780601f106105fd57610100808354040283529160200191610626565b820191905f5260205f20905b81548152906001019060200180831161060957829003601f168201915b5050505050905090565b5f61063c338484610e80565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f1981146106e457828110156106d75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106e48533858403610e80565b6106ef858585610fa3565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161063c918590610730908690611892565b610e80565b6005546001600160a01b0316331461075f5760405162461bcd60e51b81526004016106ce906118a5565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6001600160a01b0381166108145760405162461bcd60e51b815260206004820152602d60248201527f43534c543a204665652072656365697665722063616e6e6f742062652074686560448201526c207a65726f206164647265737360981b60648201526084016106ce565b600b546001600160a01b031633148061083757506005546001600160a01b031633145b6108535760405162461bcd60e51b81526004016106ce906118da565b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146108d15760405162461bcd60e51b81526004016106ce906118a5565b600d5462010000900460ff161561092a5760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e6720616c726561647920656e61626c65642e000060448201526064016106ce565b600d80546201010062ffff001990911617908190556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b6060600480546105af90611846565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610a0f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ce565b610a1c3385858403610e80565b5060019392505050565b5f61063c338484610fa3565b6005546001600160a01b03163314610a5c5760405162461bcd60e51b81526004016106ce906118a5565b620f4240610a6960025490565b610a7391906118ff565b8211610af55760405162461bcd60e51b815260206004820152604560248201527f43534c543a2053776170546f6b656e734174416d6f756e74206d75737420626560448201527f2067726561746572207468616e20302e3030303125206f6620746f74616c20736064820152647570706c7960d81b608482015260a4016106ce565b600c829055600d805461ff001916610100831515021790556040518281527f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1459060200160405180910390a15050565b600b546001600160a01b0316331480610b6757506005546001600160a01b031633145b610b835760405162461bcd60e51b81526004016106ce906118da565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c0b5760405162461bcd60e51b81526004016106ce906118a5565b6001600160a01b038116610c705760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ce565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b0316331480610cee57506005546001600160a01b031633145b610d0a5760405162461bcd60e51b81526004016106ce906118da565b306001600160a01b03821603610d885760405162461bcd60e51b815260206004820152603d60248201527f43534c543a204f776e65722063616e6e6f7420636c61696d20636f6e7472616360448201527f7427732062616c616e6365206f6620697473206f776e20746f6b656e7300000060648201526084016106ce565b6001600160a01b038116610da457610da033476112b1565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610df0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e14919061191e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610e5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da09190611935565b6001600160a01b038316610ee25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ce565b6001600160a01b038216610f435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ce565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110055760405162461bcd60e51b8152602060048201526024808201527f43534c543a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ce565b6001600160a01b0382166110665760405162461bcd60e51b815260206004820152602260248201527f43534c543a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ce565b600d5462010000900460ff168061109457506001600160a01b0383165f9081526008602052604090205460ff165b806110b657506001600160a01b0382165f9081526008602052604090205460ff165b6111025760405162461bcd60e51b815260206004820152601e60248201527f43534c543a2054726164696e67206e6f742079657420656e61626c656421000060448201526064016106ce565b805f036111195761111483835f61135b565b505050565b305f90815260208190526040902054600c548110801590819061113f5750600d5460ff16155b801561115857506007546001600160a01b038581169116145b801561117257505f600a546009546111709190611892565b115b801561119657506001600160a01b0385165f9081526008602052604090205460ff16155b80156111a95750600d54610100900460ff165b156111cf57600d805460ff191660011790556111c482611528565b600d805460ff191690555b6001600160a01b0385165f9081526008602052604081205460ff168061120c57506001600160a01b0385165f9081526008602052604090205460ff165b806112195750600d5460ff165b1561122557505f611265565b6007546001600160a01b039081169087160361124357506032611265565b6007546001600160a01b039081169086160361126157506032611265565b5060025b801561129e575f6103e86112798387611950565b61128391906118ff565b905061128f8186611967565b945061129c87308361135b565b505b6112a986868661135b565b505050505050565b5f814710156113025760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106ce565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f811461134b576040519150601f19603f3d011682016040523d82523d5f602084013e611350565b606091505b509095945050505050565b6001600160a01b0383166113bf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ce565b6001600160a01b0382166114215760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ce565b6001600160a01b0383165f90815260208190526040902054818110156114985760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106ce565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906114ce908490611892565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161151a91815260200190565b60405180910390a350505050565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f8151811061155f5761155f61197a565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115da919061198e565b816001815181106115ed576115ed61197a565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906116329086905f908690309042906004016119a9565b5f604051808303815f87803b158015611649575f80fd5b505af192505050801561165a575060015b61166357505050565b5f61166e8347611967565b600b54909150611687906001600160a01b0316826112b1565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b5f6020808352835180828501525f5b818110156116f2578581018301518582016040015282016116d6565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611726575f80fd5b50565b5f806040838503121561173a575f80fd5b823561174581611712565b946020939093013593505050565b5f805f60608486031215611765575f80fd5b833561177081611712565b9250602084013561178081611712565b929592945050506040919091013590565b5f602082840312156117a1575f80fd5b81356117ac81611712565b9392505050565b8015158114611726575f80fd5b5f80604083850312156117d1575f80fd5b8235915060208301356117e3816117b3565b809150509250929050565b5f80604083850312156117ff575f80fd5b823561180a81611712565b915060208301356117e3816117b3565b5f806040838503121561182b575f80fd5b823561183681611712565b915060208301356117e381611712565b600181811c9082168061185a57607f821691505b60208210810361187857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106405761064061187e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600b908201526a139bdd08185b1b1bddd95960aa1b604082015260600190565b5f8261191957634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561192e575f80fd5b5051919050565b5f60208284031215611945575f80fd5b81516117ac816117b3565b80820281158282048414176106405761064061187e565b818103818111156106405761064061187e565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561199e575f80fd5b81516117ac81611712565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119f75784516001600160a01b0316835293830193918301916001016119d2565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204ac7a48ab9d6f4830f6c3aa509841c16425ae60802bce6d693d3563340fd1d5764736f6c63430008150033

Deployed Bytecode Sourcemap

8032:6147:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9776:99;;;;;;;;;;-1:-1:-1;9842:25:0;;;;;;;;;;;;-1:-1:-1;;;9842:25:0;;;;9776:99;;;;;;;:::i;:::-;;;;;;;;3943:100;;;;;;;;;;;;;:::i;4857:169::-;;;;;;;;;;-1:-1:-1;4857:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4857:169:0;1023:187:1;8112:41:0;;;;;;;;;;-1:-1:-1;8112:41:0;;;;-1:-1:-1;;;;;8112:41:0;;;;;;-1:-1:-1;;;;;1404:32:1;;;1386:51;;1374:2;1359:18;8112:41:0;1215:228:1;4264:108:0;;;;;;;;;;-1:-1:-1;4352:12:0;;4264:108;;;1594:25:1;;;1582:2;1567:18;4264:108:0;1448:177:1;5034:573:0;;;;;;;;;;-1:-1:-1;5034:573:0;;;;;:::i;:::-;;:::i;4163:93::-;;;;;;;;;;-1:-1:-1;4163:93:0;;4246:2;2233:36:1;;2221:2;2206:18;4163:93:0;2091:184:1;5615:215:0;;;;;;;;;;-1:-1:-1;5615:215:0;;;;;:::i;:::-;;:::i;8160:29::-;;;;;;;;;;-1:-1:-1;8160:29:0;;;;-1:-1:-1;;;;;8160:29:0;;;11225:26;;;;;;;;;;-1:-1:-1;11225:26:0;;;;;;;;;;;10642:125;;;;;;;;;;-1:-1:-1;10642:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;10731:28:0;10707:4;10731:28;;;:19;:28;;;;;;;;;10642:125;8291:25;;;;;;;;;;;;;;;;8435:26;;;;;;;;;;-1:-1:-1;8435:26:0;;;;;;;;;;;4380:127;;;;;;;;;;-1:-1:-1;4380:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4481:18:0;4454:7;4481:18;;;;;;;;;;;;4380:127;3132:148;;;;;;;;;;;;;:::i;:::-;;10829:334;;;;;;;;;;-1:-1:-1;10829:334:0;;;;;:::i;:::-;;:::i;11260:229::-;;;;;;;;;;;;;:::i;2918:79::-;;;;;;;;;;-1:-1:-1;2983:6:0;;-1:-1:-1;;;;;2983:6:0;2918:79;;4051:104;;;;;;;;;;;;;:::i;5838:413::-;;;;;;;;;;-1:-1:-1;5838:413:0;;;;;:::i;:::-;;:::i;4515:175::-;;;;;;;;;;-1:-1:-1;4515:175:0;;;;;:::i;:::-;;:::i;13115:366::-;;;;;;;;;;-1:-1:-1;13115:366:0;;;;;:::i;:::-;;:::i;8325:27::-;;;;;;;;;;-1:-1:-1;8325:27:0;;;;-1:-1:-1;;;;;8325:27:0;;;8260:24;;;;;;;;;;;;;;;;10373:261;;;;;;;;;;-1:-1:-1;10373:261:0;;;;;:::i;:::-;;:::i;4698:151::-;;;;;;;;;;-1:-1:-1;4698:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4814:18:0;;;4787:7;4814:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4698:151;8361:34;;;;;;;;;;;;;;;;3288:244;;;;;;;;;;-1:-1:-1;3288:244:0;;;;;:::i;:::-;;:::i;9883:482::-;;;;;;;;;;-1:-1:-1;9883:482:0;;;;;:::i;:::-;;:::i;3943:100::-;3997:13;4030:5;4023:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3943:100;:::o;4857:169::-;4940:4;4957:39;2321:10;4980:7;4989:6;4957:8;:39::i;:::-;-1:-1:-1;5014:4:0;4857:169;;;;;:::o;5034:573::-;-1:-1:-1;;;;;5218:19:0;;5174:4;5218:19;;;:11;:19;;;;;;;;2321:10;5218:33;;;;;;;;-1:-1:-1;;5266:37:0;;5262:265;;5348:6;5328:16;:26;;5320:79;;;;-1:-1:-1;;;5320:79:0;;4544:2:1;5320:79:0;;;4526:21:1;4583:2;4563:18;;;4556:30;4622:34;4602:18;;;4595:62;-1:-1:-1;;;4673:18:1;;;4666:38;4721:19;;5320:79:0;;;;;;;;;5443:57;5452:6;2321:10;5493:6;5474:16;:25;5443:8;:57::i;:::-;5539:36;5549:6;5557:9;5568:6;5539:9;:36::i;:::-;-1:-1:-1;5595:4:0;;5034:573;-1:-1:-1;;;;5034:573:0:o;5615:215::-;2321:10;5703:4;5752:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5752:34:0;;;;;;;;;;5703:4;;5720:80;;5743:7;;5752:47;;5789:10;;5752:47;:::i;:::-;5720:8;:80::i;3132:148::-;3045:6;;-1:-1:-1;;;;;3045:6:0;2321:10;3045:22;3037:67;;;;-1:-1:-1;;;3037:67:0;;;;;;;:::i;:::-;3223:6:::1;::::0;3202:40:::1;::::0;3239:1:::1;::::0;-1:-1:-1;;;;;3223:6:0::1;::::0;3202:40:::1;::::0;3239:1;;3202:40:::1;3253:6;:19:::0;;-1:-1:-1;;;;;;3253:19:0::1;::::0;;3132:148::o;10829:334::-;-1:-1:-1;;;;;10906:26:0;;10898:84;;;;-1:-1:-1;;;10898:84:0;;5576:2:1;10898:84:0;;;5558:21:1;5615:2;5595:18;;;5588:30;5654:34;5634:18;;;5627:62;-1:-1:-1;;;5705:18:1;;;5698:43;5758:19;;10898:84:0;5374:409:1;10898:84:0;11015:11;;-1:-1:-1;;;;;11015:11:0;11001:10;:25;;:50;;-1:-1:-1;2983:6:0;;-1:-1:-1;;;;;2983:6:0;11030:10;:21;11001:50;10993:74;;;;-1:-1:-1;;;10993:74:0;;;;;;;:::i;:::-;11080:11;:26;;-1:-1:-1;;;;;;11080:26:0;-1:-1:-1;;;;;11080:26:0;;;;;;;;11124:31;;1386:51:1;;;11124:31:0;;1374:2:1;1359:18;11124:31:0;;;;;;;10829:334;:::o;11260:229::-;3045:6;;-1:-1:-1;;;;;3045:6:0;2321:10;3045:22;3037:67;;;;-1:-1:-1;;;3037:67:0;;;;;;;:::i;:::-;11323:14:::1;::::0;;;::::1;;;11322:15;11314:58;;;::::0;-1:-1:-1;;;11314:58:0;;6330:2:1;11314:58:0::1;::::0;::::1;6312:21:1::0;6369:2;6349:18;;;6342:30;6408:32;6388:18;;;6381:60;6458:18;;11314:58:0::1;6128:354:1::0;11314:58:0::1;11383:14;:21:::0;;11415:18;-1:-1:-1;;11415:18:0;;;;;;;;11451:30:::1;::::0;11383:21;11466:14;;::::1;11383:21;11466:14;1188::1::0;1181:22;1163:41;;11451:30:0::1;::::0;1151:2:1;1136:18;11451:30:0::1;;;;;;;11260:229::o:0;4051:104::-;4107:13;4140:7;4133:14;;;;;:::i;5838:413::-;2321:10;5931:4;5975:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5975:34:0;;;;;;;;;;6028:35;;;;6020:85;;;;-1:-1:-1;;;6020:85:0;;6689:2:1;6020:85:0;;;6671:21:1;6728:2;6708:18;;;6701:30;6767:34;6747:18;;;6740:62;-1:-1:-1;;;6818:18:1;;;6811:35;6863:19;;6020:85:0;6487:401:1;6020:85:0;6141:67;2321:10;6164:7;6192:15;6173:16;:34;6141:8;:67::i;:::-;-1:-1:-1;6239:4:0;;5838:413;-1:-1:-1;;;5838:413:0:o;4515:175::-;4601:4;4618:42;2321:10;4642:9;4653:6;4618:9;:42::i;13115:366::-;3045:6;;-1:-1:-1;;;;;3045:6:0;2321:10;3045:22;3037:67;;;;-1:-1:-1;;;3037:67:0;;;;;;;:::i;:::-;13249:9:::1;13233:13;4352:12:::0;;;4264:108;13233:13:::1;:25;;;;:::i;:::-;13221:9;:37;13213:119;;;::::0;-1:-1:-1;;;13213:119:0;;7317:2:1;13213:119:0::1;::::0;::::1;7299:21:1::0;7356:2;7336:18;;;7329:30;7395:34;7375:18;;;7368:62;7466:34;7446:18;;;7439:62;-1:-1:-1;;;7517:19:1;;;7510:36;7563:19;;13213:119:0::1;7115:473:1::0;13213:119:0::1;13343:18;:30:::0;;;13384:11:::1;:26:::0;;-1:-1:-1;;13384:26:0::1;;::::0;::::1;;;;::::0;;13428:45:::1;::::0;1594:25:1;;;13428:45:0::1;::::0;1582:2:1;1567:18;13428:45:0::1;;;;;;;13115:366:::0;;:::o;10373:261::-;10472:11;;-1:-1:-1;;;;;10472:11:0;10458:10;:25;;:50;;-1:-1:-1;2983:6:0;;-1:-1:-1;;;;;2983:6:0;10487:10;:21;10458:50;10450:74;;;;-1:-1:-1;;;10450:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10535:28:0;;;;;;:19;:28;;;;;;;;;:39;;-1:-1:-1;;10535:39:0;;;;;;;;;;10592:34;;1163:41:1;;;10592:34:0;;1136:18:1;10592:34:0;;;;;;;10373:261;;:::o;3288:244::-;3045:6;;-1:-1:-1;;;;;3045:6:0;2321:10;3045:22;3037:67;;;;-1:-1:-1;;;3037:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3377:22:0;::::1;3369:73;;;::::0;-1:-1:-1;;;3369:73:0;;7795:2:1;3369:73:0::1;::::0;::::1;7777:21:1::0;7834:2;7814:18;;;7807:30;7873:34;7853:18;;;7846:62;-1:-1:-1;;;7924:18:1;;;7917:36;7970:19;;3369:73:0::1;7593:402:1::0;3369:73:0::1;3479:6;::::0;3458:38:::1;::::0;-1:-1:-1;;;;;3458:38:0;;::::1;::::0;3479:6:::1;::::0;3458:38:::1;::::0;3479:6:::1;::::0;3458:38:::1;3507:6;:17:::0;;-1:-1:-1;;;;;;3507:17:0::1;-1:-1:-1::0;;;;;3507:17:0;;;::::1;::::0;;;::::1;::::0;;3288:244::o;9883:482::-;9966:11;;-1:-1:-1;;;;;9966:11:0;9952:10;:25;;:50;;-1:-1:-1;2983:6:0;;-1:-1:-1;;;;;2983:6:0;9981:10;:21;9952:50;9944:74;;;;-1:-1:-1;;;9944:74:0;;;;;;;:::i;:::-;10054:4;-1:-1:-1;;;;;10037:22:0;;;10029:96;;;;-1:-1:-1;;;10029:96:0;;8202:2:1;10029:96:0;;;8184:21:1;8241:2;8221:18;;;8214:30;8280:34;8260:18;;;8253:62;8351:31;8331:18;;;8324:59;8400:19;;10029:96:0;8000:425:1;10029:96:0;-1:-1:-1;;;;;10140:21:0;;10136:127;;10178:52;10186:10;10208:21;10178:29;:52::i;:::-;;9883:482;:::o;10136:127::-;10318:38;;-1:-1:-1;;;10318:38:0;;10350:4;10318:38;;;1386:51:1;-1:-1:-1;;;;;10283:22:0;;;;;10306:10;;10283:22;;10318:23;;1359:18:1;;10318:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10283:74;;-1:-1:-1;;;;;;10283:74:0;;;;;;;-1:-1:-1;;;;;8811:32:1;;;10283:74:0;;;8793:51:1;8860:18;;;8853:34;8766:18;;10283:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7645:380::-;-1:-1:-1;;;;;7781:19:0;;7773:68;;;;-1:-1:-1;;;7773:68:0;;9350:2:1;7773:68:0;;;9332:21:1;9389:2;9369:18;;;9362:30;9428:34;9408:18;;;9401:62;-1:-1:-1;;;9479:18:1;;;9472:34;9523:19;;7773:68:0;9148:400:1;7773:68:0;-1:-1:-1;;;;;7860:21:0;;7852:68;;;;-1:-1:-1;;;7852:68:0;;9755:2:1;7852:68:0;;;9737:21:1;9794:2;9774:18;;;9767:30;9833:34;9813:18;;;9806:62;-1:-1:-1;;;9884:18:1;;;9877:32;9926:19;;7852:68:0;9553:398:1;7852:68:0;-1:-1:-1;;;;;7933:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7985:32;;1594:25:1;;;7985:32:0;;1567:18:1;7985:32:0;;;;;;;7645:380;;;:::o;11497:1610::-;-1:-1:-1;;;;;11594:18:0;;11586:67;;;;-1:-1:-1;;;11586:67:0;;10158:2:1;11586:67:0;;;10140:21:1;10197:2;10177:18;;;10170:30;10236:34;10216:18;;;10209:62;-1:-1:-1;;;10287:18:1;;;10280:34;10331:19;;11586:67:0;9956:400:1;11586:67:0;-1:-1:-1;;;;;11672:16:0;;11664:63;;;;-1:-1:-1;;;11664:63:0;;10563:2:1;11664:63:0;;;10545:21:1;10602:2;10582:18;;;10575:30;10641:34;10621:18;;;10614:62;-1:-1:-1;;;10692:18:1;;;10685:32;10734:19;;11664:63:0;10361:398:1;11664:63:0;11746:14;;;;;;;;:43;;-1:-1:-1;;;;;;11764:25:0;;;;;;:19;:25;;;;;;;;11746:43;:70;;;-1:-1:-1;;;;;;11793:23:0;;;;;;:19;:23;;;;;;;;11746:70;11738:113;;;;-1:-1:-1;;;11738:113:0;;10966:2:1;11738:113:0;;;10948:21:1;11005:2;10985:18;;;10978:30;11044:32;11024:18;;;11017:60;11094:18;;11738:113:0;10764:354:1;11738:113:0;11875:6;11885:1;11875:11;11871:93;;11903:28;11919:4;11925:2;11929:1;11903:15;:28::i;:::-;11497:1610;;;:::o;11871:93::-;12019:4;11970:28;4481:18;;;;;;;;;;;12077;;12053:42;;;;;;;12112:33;;-1:-1:-1;12137:8:0;;;;12136:9;12112:33;:69;;;;-1:-1:-1;12168:13:0;;-1:-1:-1;;;;;12162:19:0;;;12168:13;;12162:19;12112:69;:110;;;;;12221:1;12209:9;;12198:8;;:20;;;;:::i;:::-;:24;12112:110;:153;;;;-1:-1:-1;;;;;;12240:25:0;;;;;;:19;:25;;;;;;;;12239:26;12112:153;:181;;;;-1:-1:-1;12282:11:0;;;;;;;12112:181;12108:330;;;12320:8;:15;;-1:-1:-1;;12320:15:0;12331:4;12320:15;;;12352:36;12367:20;12352:14;:36::i;:::-;12410:8;:16;;-1:-1:-1;;12410:16:0;;;12108:330;-1:-1:-1;;;;;12483:25:0;;12450:18;12483:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;12512:23:0;;;;;;:19;:23;;;;;;;;12483:52;:64;;;-1:-1:-1;12539:8:0;;;;12483:64;12479:378;;;-1:-1:-1;12577:1:0;12479:378;;;12608:13;;-1:-1:-1;;;;;12608:13:0;;;12600:21;;;;12596:261;;-1:-1:-1;12651:2:0;12596:261;;;12704:13;;-1:-1:-1;;;;;12704:13:0;;;12698:19;;;;12694:163;;-1:-1:-1;12748:2:0;12694:163;;;-1:-1:-1;12819:1:0;12694:163;12873:14;;12869:185;;12904:12;12943:5;12920:19;12929:10;12920:6;:19;:::i;:::-;12919:29;;;;:::i;:::-;12904:44;-1:-1:-1;12972:13:0;12904:44;12972:6;:13;:::i;:::-;12963:22;;13000:42;13016:4;13030;13037;13000:15;:42::i;:::-;12889:165;12869:185;13066:33;13082:4;13088:2;13092:6;13066:15;:33::i;:::-;11575:1532;;;11497:1610;;;:::o;1916:285::-;1995:4;2044:6;2019:21;:31;;2011:73;;;;-1:-1:-1;;;2011:73:0;;11631:2:1;2011:73:0;;;11613:21:1;11670:2;11650:18;;;11643:30;11709:31;11689:18;;;11682:59;11758:18;;2011:73:0;11429:353:1;2011:73:0;2098:12;2116:9;-1:-1:-1;;;;;2116:14:0;2138:6;2116:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2097:52:0;;1916:285;-1:-1:-1;;;;;1916:285:0:o;6259:614::-;-1:-1:-1;;;;;6399:20:0;;6391:70;;;;-1:-1:-1;;;6391:70:0;;12199:2:1;6391:70:0;;;12181:21:1;12238:2;12218:18;;;12211:30;12277:34;12257:18;;;12250:62;-1:-1:-1;;;12328:18:1;;;12321:35;12373:19;;6391:70:0;11997:401:1;6391:70:0;-1:-1:-1;;;;;6480:23:0;;6472:71;;;;-1:-1:-1;;;6472:71:0;;12605:2:1;6472:71:0;;;12587:21:1;12644:2;12624:18;;;12617:30;12683:34;12663:18;;;12656:62;-1:-1:-1;;;12734:18:1;;;12727:33;12777:19;;6472:71:0;12403:399:1;6472:71:0;-1:-1:-1;;;;;6580:17:0;;6556:21;6580:17;;;;;;;;;;;6616:23;;;;6608:74;;;;-1:-1:-1;;;6608:74:0;;13009:2:1;6608:74:0;;;12991:21:1;13048:2;13028:18;;;13021:30;13087:34;13067:18;;;13060:62;-1:-1:-1;;;13138:18:1;;;13131:36;13184:19;;6608:74:0;12807:402:1;6608:74:0;-1:-1:-1;;;;;6718:17:0;;;:9;:17;;;;;;;;;;;6738:22;;;6718:42;;6782:20;;;;;;;;:30;;6754:6;;6718:9;6782:30;;6754:6;;6782:30;:::i;:::-;;;;;;;;6847:9;-1:-1:-1;;;;;6830:35:0;6839:6;-1:-1:-1;;;;;6830:35:0;;6858:6;6830:35;;;;1594:25:1;;1582:2;1567:18;;1448:177;6830:35:0;;;;;;;;6380:493;6259:614;;;:::o;13489:687::-;13636:16;;;13650:1;13636:16;;;;;;;;13578:21;;13553:22;;13636:16;13650:1;13636:16;;;;;;;;;;-1:-1:-1;13636:16:0;13612:40;;13681:4;13663;13668:1;13663:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13663:23:0;;;:7;;;;;;;;;;:23;;;;13707:15;;:22;;;-1:-1:-1;;;13707:22:0;;;;:15;;;;;:20;;:22;;;;;13663:7;;13707:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13697:4;13702:1;13697:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13697:32:0;;;:7;;;;;;;;;:32;13746:15;;:196;;-1:-1:-1;;;13746:196:0;;:15;;;:66;;:196;;13827:11;;13746:15;;13869:4;;13896;;13916:15;;13746:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13742:243;;13967:7;;13489:687;:::o;13742:243::-;13997:18;14018:38;14042:14;14018:21;:38;:::i;:::-;14077:11;;13997:59;;-1:-1:-1;14069:42:0;;-1:-1:-1;;;;;14077:11:0;13997:59;14069:30;:42::i;:::-;-1:-1:-1;14129:39:0;;;14893:25:1;;;14949:2;14934:18;;14927:34;;;14129:39:0;;14866:18:1;14129:39:0;;;;;;;13542:634;;;13489:687;:::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;622:70;567:131;:::o;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;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2488:247::-;2547:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:52;;;2616:1;2613;2606:12;2568:52;2655:9;2642:23;2674:31;2699:5;2674:31;:::i;:::-;2724:5;2488:247;-1:-1:-1;;;2488:247:1:o;2740:118::-;2826:5;2819:13;2812:21;2805:5;2802:32;2792:60;;2848:1;2845;2838:12;2863:309;2928:6;2936;2989:2;2977:9;2968:7;2964:23;2960:32;2957:52;;;3005:1;3002;2995:12;2957:52;3041:9;3028:23;3018:33;;3101:2;3090:9;3086:18;3073:32;3114:28;3136:5;3114:28;:::i;:::-;3161:5;3151:15;;;2863:309;;;;;:::o;3177:382::-;3242:6;3250;3303:2;3291:9;3282:7;3278:23;3274:32;3271:52;;;3319:1;3316;3309:12;3271:52;3358:9;3345:23;3377:31;3402:5;3377:31;:::i;:::-;3427:5;-1:-1:-1;3484:2:1;3469:18;;3456:32;3497:30;3456:32;3497:30;:::i;3564:388::-;3632:6;3640;3693:2;3681:9;3672:7;3668:23;3664:32;3661:52;;;3709:1;3706;3699:12;3661:52;3748:9;3735:23;3767:31;3792:5;3767:31;:::i;:::-;3817:5;-1:-1:-1;3874:2:1;3859:18;;3846:32;3887:33;3846:32;3887:33;:::i;3957:380::-;4036:1;4032:12;;;;4079;;;4100:61;;4154:4;4146:6;4142:17;4132:27;;4100:61;4207:2;4199:6;4196:14;4176:18;4173:38;4170:161;;4253:10;4248:3;4244:20;4241:1;4234:31;4288:4;4285:1;4278:15;4316:4;4313:1;4306:15;4170:161;;3957:380;;;:::o;4751:127::-;4812:10;4807:3;4803:20;4800:1;4793:31;4843:4;4840:1;4833:15;4867:4;4864:1;4857:15;4883:125;4948:9;;;4969:10;;;4966:36;;;4982:18;;:::i;5013:356::-;5215:2;5197:21;;;5234:18;;;5227:30;5293:34;5288:2;5273:18;;5266:62;5360:2;5345:18;;5013:356::o;5788:335::-;5990:2;5972:21;;;6029:2;6009:18;;;6002:30;-1:-1:-1;;;6063:2:1;6048:18;;6041:41;6114:2;6099:18;;5788:335::o;6893:217::-;6933:1;6959;6949:132;;7003:10;6998:3;6994:20;6991:1;6984:31;7038:4;7035:1;7028:15;7066:4;7063:1;7056:15;6949:132;-1:-1:-1;7095:9:1;;6893:217::o;8430:184::-;8500:6;8553:2;8541:9;8532:7;8528:23;8524:32;8521:52;;;8569:1;8566;8559:12;8521:52;-1:-1:-1;8592:16:1;;8430:184;-1:-1:-1;8430:184:1:o;8898:245::-;8965:6;9018:2;9006:9;8997:7;8993:23;8989:32;8986:52;;;9034:1;9031;9024:12;8986:52;9066:9;9060:16;9085:28;9107:5;9085:28;:::i;11123:168::-;11196:9;;;11227;;11244:15;;;11238:22;;11224:37;11214:71;;11265:18;;:::i;11296:128::-;11363:9;;;11384:11;;;11381:37;;;11398:18;;:::i;13346:127::-;13407:10;13402:3;13398:20;13395:1;13388:31;13438:4;13435:1;13428:15;13462:4;13459:1;13452:15;13478:251;13548:6;13601:2;13589:9;13580:7;13576:23;13572:32;13569:52;;;13617:1;13614;13607:12;13569:52;13649:9;13643:16;13668:31;13693:5;13668:31;:::i;13734:980::-;13996:4;14044:3;14033:9;14029:19;14075:6;14064:9;14057:25;14101:2;14139:6;14134:2;14123:9;14119:18;14112:34;14182:3;14177:2;14166:9;14162:18;14155:31;14206:6;14241;14235:13;14272:6;14264;14257:22;14310:3;14299:9;14295:19;14288:26;;14349:2;14341:6;14337:15;14323:29;;14370:1;14380:195;14394:6;14391:1;14388:13;14380:195;;;14459:13;;-1:-1:-1;;;;;14455:39:1;14443:52;;14550:15;;;;14515:12;;;;14491:1;14409:9;14380:195;;;-1:-1:-1;;;;;;;14631:32:1;;;;14626:2;14611:18;;14604:60;-1:-1:-1;;;14695:3:1;14680:19;14673:35;14592:3;13734:980;-1:-1:-1;;;13734:980:1:o

Swarm Source

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