ETH Price: $2,907.25 (+3.03%)
 

Overview

Max Total Supply

1,000,000,000 TETSUYA2

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,226,335.821594204613110973 TETSUYA2

Value
$0.00
0xc8D6C05CeCeD6123BdA8A5DA8ce3D0bC5955EbaA
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:
TETSUYA2

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-15
*/

/**
Telegram: https://t.me/tetsuya2eth

Website: https://tetsuya2.xyz

X: https://x.com/tetsuya2eth
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.18;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

contract TETSUYA2 is IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply = 1e27;
    string private _name = "Tetsuya #2";
    string private _symbol = "TETSUYA2";
    uint8 private _decimals = 18;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private swapping;

    address public marketingWallet;

    uint256 public maxTransaction = (_totalSupply * 2) / 100;
    uint256 public swapTokensAtAmount = (_totalSupply * 5) / 1000000;
    uint256 public maxWallet = (_totalSupply * 2) / 100;

    bool public limitEnabled = true;
    bool public tradingEnabled = false;
    bool public swapEnabled = false;

    uint256 public _buyTaxes = 0;

    uint256 public _sellTaxes = 0;

    mapping(address => bool) private _isBlackList;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedmaxTransaction;

    mapping(address => bool) public ammPairs;

    constructor() {
        marketingWallet = address(0x9390e0B239b1B624Ac34039f91242501F1aFd778);

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _approve(address(this), address(uniswapV2Router), _totalSupply);

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[address(marketingWallet)] = true;

        _isExcludedmaxTransaction[owner()] = true;
        _isExcludedmaxTransaction[address(this)] = true;
        _isExcludedmaxTransaction[address(marketingWallet)] = true;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    receive() external payable {}

    function createPair() external onlyOwner {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        ammPairs[uniswapV2Pair] = true;
        _isExcludedmaxTransaction[uniswapV2Pair] = true;

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

        tradingEnabled = true;
        swapEnabled = true;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitEnabled = false;
        return true;
    }

    function setFees(uint256 buyFee, uint256 sellFee) external onlyOwner {
        require(buyFee <= 99 && sellFee <= 99, "Must keep fees at 99% or less");
        _buyTaxes = buyFee;
        _sellTaxes = sellFee;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "ERC20: transfer amount must be greater than 0");
        require(!_isBlackList[from] && !_isBlackList[to], "blacklisted");

        if (limitEnabled) {
            if (from != owner() && to != owner()) {
                if (!tradingEnabled) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                if (ammPairs[from] && !_isExcludedmaxTransaction[to]) {
                    require(amount <= maxTransaction, "Max tx exceeded");
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                } else if (ammPairs[to] && !_isExcludedmaxTransaction[from]) {
                    require(amount <= maxTransaction, "Max tx exceeded");
                } else if (!_isExcludedmaxTransaction[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        if (
            swapEnabled &&
            !swapping &&
            ammPairs[to] &&
            !_isExcludedFromFees[from]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        basicTransfer(from, to, amount);
    }

    function basicTransfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        if (
            from == owner() ||
            to == owner() ||
            from == address(this) ||
            to == address(this)
        ) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }

        (uint256 fromAmount, uint256 toAmount) = handleTax(from, to, amount);
        _balances[from] = _balances[from].sub(fromAmount);
        _balances[to] = _balances[to].add(toAmount);
        emit Transfer(from, to, toAmount);
    }

    function handleTax(
        address from,
        address to,
        uint256 amount
    ) internal returns (uint256, uint256) {
        bool takeFee = !(_isExcludedFromFees[from] || _isExcludedFromFees[to]);

        uint256 fees = 0;

        if (takeFee) {
            if (ammPairs[to] && _sellTaxes > 0) {
                fees = amount.mul(_sellTaxes).div(100);
            } else if (ammPairs[from] && _buyTaxes > 0) {
                fees = amount.mul(_buyTaxes).div(100);
            }

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

        return (fees, amount - fees);
    }

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

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));

        if (contractBalance > swapTokensAtAmount * 2000) {
            contractBalance = swapTokensAtAmount * 2000;
        }

        if (contractBalance > swapTokensAtAmount)
            swapTokensForEth(contractBalance);

        payable(marketingWallet).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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"}]

6b033b2e3c9fd0803ce800000060035560c0604052600a6080908152692a32ba39babcb090119960b11b60a0526004906200003b9082620004cf565b506040805180820190915260088152672a22aa29aaaca09960c11b60208201526005906200006a9082620004cf565b506006805460ff191660121790556003546064906200008b9060026200059b565b620000979190620005c7565b600955620f42406003546005620000af91906200059b565b620000bb9190620005c7565b600a5560646003546002620000d191906200059b565b620000dd9190620005c7565b600b55600c805462ffffff191660011790556000600d819055600e553480156200010657600080fd5b506200011233620002ae565b600880546001600160a01b031916739390e0b239b1b624ac34039f91242501f1afd77817905560068054747a250d5630b4cf539739df2c5dacb4c659f2488d00610100600160a81b03199091161790819055600354620001849130916101009091046001600160a01b031690620002fe565b6001601060006200019d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260109093528183208054851660019081179091556008549091168352908220805490931681179092556011906200020d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526011845282812080548616600190811790915560085490921681528281208054909516821790945560035433808652918452828520819055915191825292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005ea565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620003665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003c95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200035d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200045557607f821691505b6020821081036200047657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004ca57600081815260208120601f850160051c81016020861015620004a55750805b601f850160051c820191505b81811015620004c657828155600101620004b1565b5050505b505050565b81516001600160401b03811115620004eb57620004eb6200042a565b6200050381620004fc845462000440565b846200047c565b602080601f8311600181146200053b5760008415620005225750858301515b600019600386901b1c1916600185901b178555620004c6565b600085815260208120601f198616915b828110156200056c578886015182559484019460019091019084016200054b565b50858210156200058b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417620005c157634e487b7160e01b600052601160045260246000fd5b92915050565b600082620005e557634e487b7160e01b600052601260045260246000fd5b500490565b611c5080620005fa6000396000f3fe6080604052600436106101bb5760003560e01c806375f0a874116100ec578063c3f70b521161008a578063e1bc339411610064578063e1bc3394146104fb578063e2f456051461052b578063f2fde38b14610541578063f8b45b051461056157600080fd5b8063c3f70b5214610489578063c6831cd81461049f578063dd62ed3e146104b557600080fd5b806395d89b41116100c657806395d89b411461040f5780639e78fb4f14610424578063a72905a214610439578063a9059cbb1461046957600080fd5b806375f0a874146103bb5780637b45d431146103db5780638da5cb5b146103f157600080fd5b806349bd5a5e116101595780636ddd1713116101335780636ddd17131461033b57806370a082311461035b578063715018a614610391578063751039fc146103a657600080fd5b806349bd5a5e146102e25780634ada218b146103025780636d800a3c1461032157600080fd5b80631694505e116101955780631694505e1461024457806318160ddd1461028157806323b872dd146102a0578063313ce567146102c057600080fd5b806306fdde03146101c7578063095ea7b3146101f25780630b78f9c01461022257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610577565b6040516101e991906118f4565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611957565b610609565b60405190151581526020016101e9565b34801561022e57600080fd5b5061024261023d366004611983565b610620565b005b34801561025057600080fd5b506006546102699061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b34801561028d57600080fd5b506003545b6040519081526020016101e9565b3480156102ac57600080fd5b506102126102bb3660046119a5565b6106bc565b3480156102cc57600080fd5b5060065460405160ff90911681526020016101e9565b3480156102ee57600080fd5b50600754610269906001600160a01b031681565b34801561030e57600080fd5b50600c5461021290610100900460ff1681565b34801561032d57600080fd5b50600c546102129060ff1681565b34801561034757600080fd5b50600c546102129062010000900460ff1681565b34801561036757600080fd5b506102926103763660046119e6565b6001600160a01b031660009081526001602052604090205490565b34801561039d57600080fd5b50610242610725565b3480156103b257600080fd5b5061021261075b565b3480156103c757600080fd5b50600854610269906001600160a01b031681565b3480156103e757600080fd5b50610292600d5481565b3480156103fd57600080fd5b506000546001600160a01b0316610269565b34801561041b57600080fd5b506101dc610796565b34801561043057600080fd5b506102426107a5565b34801561044557600080fd5b506102126104543660046119e6565b60126020526000908152604090205460ff1681565b34801561047557600080fd5b50610212610484366004611957565b610a7a565b34801561049557600080fd5b5061029260095481565b3480156104ab57600080fd5b50610292600e5481565b3480156104c157600080fd5b506102926104d0366004611a03565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561050757600080fd5b506102126105163660046119e6565b60116020526000908152604090205460ff1681565b34801561053757600080fd5b50610292600a5481565b34801561054d57600080fd5b5061024261055c3660046119e6565b610a87565b34801561056d57600080fd5b50610292600b5481565b60606004805461058690611a3c565b80601f01602080910402602001604051908101604052809291908181526020018280546105b290611a3c565b80156105ff5780601f106105d4576101008083540402835291602001916105ff565b820191906000526020600020905b8154815290600101906020018083116105e257829003601f168201915b5050505050905090565b6000610616338484610b22565b5060015b92915050565b6000546001600160a01b031633146106535760405162461bcd60e51b815260040161064a90611a76565b60405180910390fd5b60638211158015610665575060638111155b6106b15760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c657373000000604482015260640161064a565b600d91909155600e55565b60006106c9848484610c47565b61071b843361071685604051806060016040528060288152602001611bf3602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611174565b610b22565b5060019392505050565b6000546001600160a01b0316331461074f5760405162461bcd60e51b815260040161064a90611a76565b61075960006111ae565b565b600080546001600160a01b031633146107865760405162461bcd60e51b815260040161064a90611a76565b50600c805460ff19169055600190565b60606005805461058690611a3c565b6000546001600160a01b031633146107cf5760405162461bcd60e51b815260040161064a90611a76565b600660019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610822573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108469190611aab565b6001600160a01b031663c9c6539630600660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cc9190611aab565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d9190611aab565b600780546001600160a01b039283166001600160a01b0319909116811782556000908152601260209081526040808320805460ff1990811660019081179092559454861684526011909252909120805490921617905560065461010090041663f305d71947306109c2816001600160a01b031660009081526001602052604090205490565b6000806109d76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a3f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a649190611ac8565b5050600c805462ffff0019166201010017905550565b6000610616338484610c47565b6000546001600160a01b03163314610ab15760405162461bcd60e51b815260040161064a90611a76565b6001600160a01b038116610b165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161064a565b610b1f816111ae565b50565b6001600160a01b038316610b845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161064a565b6001600160a01b038216610be55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161064a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161064a565b6001600160a01b038216610d0d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161064a565b60008111610d735760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b606482015260840161064a565b6001600160a01b0383166000908152600f602052604090205460ff16158015610db557506001600160a01b0382166000908152600f602052604090205460ff16155b610def5760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b604482015260640161064a565b600c5460ff16156110cb576000546001600160a01b03848116911614801590610e2657506000546001600160a01b03838116911614155b156110cb57600c54610100900460ff16610ebe576001600160a01b03831660009081526010602052604090205460ff1680610e7957506001600160a01b03821660009081526010602052604090205460ff165b610ebe5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161064a565b6001600160a01b03831660009081526012602052604090205460ff168015610eff57506001600160a01b03821660009081526011602052604090205460ff16155b15610fb757600954811115610f485760405162461bcd60e51b815260206004820152600f60248201526e13585e081d1e08195e18d959591959608a1b604482015260640161064a565b600b546001600160a01b038316600090815260016020526040902054610f6e9083611b0c565b1115610fb25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161064a565b6110cb565b6001600160a01b03821660009081526012602052604090205460ff168015610ff857506001600160a01b03831660009081526011602052604090205460ff16155b1561104157600954811115610fb25760405162461bcd60e51b815260206004820152600f60248201526e13585e081d1e08195e18d959591959608a1b604482015260640161064a565b6001600160a01b03821660009081526011602052604090205460ff166110cb57600b546001600160a01b0383166000908152600160205260409020546110879083611b0c565b11156110cb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161064a565b600c5462010000900460ff1680156110ed5750600754600160a01b900460ff16155b801561111157506001600160a01b03821660009081526012602052604090205460ff165b801561113657506001600160a01b03831660009081526010602052604090205460ff16155b15611164576007805460ff60a01b1916600160a01b1790556111566111fe565b6007805460ff60a01b191690555b61116f838383611286565b505050565b600081848411156111985760405162461bcd60e51b815260040161064a91906118f4565b5060006111a58486611b1f565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b30600090815260016020526040902054600a5461121d906107d0611b32565b81111561123657600a54611233906107d0611b32565b90505b600a548111156112495761124981611448565b6008546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611282573d6000803e3d6000fd5b5050565b6000546001600160a01b03848116911614806112af57506000546001600160a01b038381169116145b806112c257506001600160a01b03831630145b806112d557506001600160a01b03821630145b15611380576001600160a01b0383166000908152600160205260409020546112fd90826115c5565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461132c908261160e565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c3a9085815260200190565b60008061138e85858561166d565b6001600160a01b03871660009081526001602052604090205491935091506113b690836115c5565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546113e5908261160e565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114399085815260200190565b60405180910390a35050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061147d5761147d611b49565b60200260200101906001600160a01b031690816001600160a01b031681525050600660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115149190611aab565b8160018151811061152757611527611b49565b6001600160a01b03928316602091820292909201015260065461155291309161010090041684610b22565b60065460405163791ac94760e01b81526101009091046001600160a01b03169063791ac9479061158f908590600090869030904290600401611b5f565b600060405180830381600087803b1580156115a957600080fd5b505af11580156115bd573d6000803e3d6000fd5b505050505050565b600061160783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611174565b9392505050565b60008061161b8385611b0c565b9050838110156116075760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161064a565b6001600160a01b0383166000908152601060205260408120548190819060ff16806116b057506001600160a01b03851660009081526010602052604090205460ff165b159050600081156117ed576001600160a01b03861660009081526012602052604090205460ff1680156116e557506000600e54115b156117115761170a6064611704600e548861180790919063ffffffff16565b90611889565b905061175d565b6001600160a01b03871660009081526012602052604090205460ff16801561173b57506000600d54115b1561175d5761175a6064611704600d548861180790919063ffffffff16565b90505b80156117d7573060009081526001602052604090205461177d908261160e565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ce9085815260200190565b60405180910390a35b846117e28282611b1f565b9350935050506117ff565b806117f88187611b1f565b9350935050505b935093915050565b6000826000036118195750600061061a565b60006118258385611b32565b9050826118328583611bd0565b146116075760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161064a565b600061160783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118e75760405162461bcd60e51b815260040161064a91906118f4565b5060006111a58486611bd0565b600060208083528351808285015260005b8181101561192157858101830151858201604001528201611905565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b1f57600080fd5b6000806040838503121561196a57600080fd5b823561197581611942565b946020939093013593505050565b6000806040838503121561199657600080fd5b50508035926020909101359150565b6000806000606084860312156119ba57600080fd5b83356119c581611942565b925060208401356119d581611942565b929592945050506040919091013590565b6000602082840312156119f857600080fd5b813561160781611942565b60008060408385031215611a1657600080fd5b8235611a2181611942565b91506020830135611a3181611942565b809150509250929050565b600181811c90821680611a5057607f821691505b602082108103611a7057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611abd57600080fd5b815161160781611942565b600080600060608486031215611add57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8082018082111561061a5761061a611af6565b8181038181111561061a5761061a611af6565b808202811582820484141761061a5761061a611af6565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611baf5784516001600160a01b031683529383019391830191600101611b8a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611bed57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200c033d329d6ca6d00a871e1f8e03df2aa6edf7b48fc44eabbeb8d5d193fde4be64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806375f0a874116100ec578063c3f70b521161008a578063e1bc339411610064578063e1bc3394146104fb578063e2f456051461052b578063f2fde38b14610541578063f8b45b051461056157600080fd5b8063c3f70b5214610489578063c6831cd81461049f578063dd62ed3e146104b557600080fd5b806395d89b41116100c657806395d89b411461040f5780639e78fb4f14610424578063a72905a214610439578063a9059cbb1461046957600080fd5b806375f0a874146103bb5780637b45d431146103db5780638da5cb5b146103f157600080fd5b806349bd5a5e116101595780636ddd1713116101335780636ddd17131461033b57806370a082311461035b578063715018a614610391578063751039fc146103a657600080fd5b806349bd5a5e146102e25780634ada218b146103025780636d800a3c1461032157600080fd5b80631694505e116101955780631694505e1461024457806318160ddd1461028157806323b872dd146102a0578063313ce567146102c057600080fd5b806306fdde03146101c7578063095ea7b3146101f25780630b78f9c01461022257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610577565b6040516101e991906118f4565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611957565b610609565b60405190151581526020016101e9565b34801561022e57600080fd5b5061024261023d366004611983565b610620565b005b34801561025057600080fd5b506006546102699061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b34801561028d57600080fd5b506003545b6040519081526020016101e9565b3480156102ac57600080fd5b506102126102bb3660046119a5565b6106bc565b3480156102cc57600080fd5b5060065460405160ff90911681526020016101e9565b3480156102ee57600080fd5b50600754610269906001600160a01b031681565b34801561030e57600080fd5b50600c5461021290610100900460ff1681565b34801561032d57600080fd5b50600c546102129060ff1681565b34801561034757600080fd5b50600c546102129062010000900460ff1681565b34801561036757600080fd5b506102926103763660046119e6565b6001600160a01b031660009081526001602052604090205490565b34801561039d57600080fd5b50610242610725565b3480156103b257600080fd5b5061021261075b565b3480156103c757600080fd5b50600854610269906001600160a01b031681565b3480156103e757600080fd5b50610292600d5481565b3480156103fd57600080fd5b506000546001600160a01b0316610269565b34801561041b57600080fd5b506101dc610796565b34801561043057600080fd5b506102426107a5565b34801561044557600080fd5b506102126104543660046119e6565b60126020526000908152604090205460ff1681565b34801561047557600080fd5b50610212610484366004611957565b610a7a565b34801561049557600080fd5b5061029260095481565b3480156104ab57600080fd5b50610292600e5481565b3480156104c157600080fd5b506102926104d0366004611a03565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561050757600080fd5b506102126105163660046119e6565b60116020526000908152604090205460ff1681565b34801561053757600080fd5b50610292600a5481565b34801561054d57600080fd5b5061024261055c3660046119e6565b610a87565b34801561056d57600080fd5b50610292600b5481565b60606004805461058690611a3c565b80601f01602080910402602001604051908101604052809291908181526020018280546105b290611a3c565b80156105ff5780601f106105d4576101008083540402835291602001916105ff565b820191906000526020600020905b8154815290600101906020018083116105e257829003601f168201915b5050505050905090565b6000610616338484610b22565b5060015b92915050565b6000546001600160a01b031633146106535760405162461bcd60e51b815260040161064a90611a76565b60405180910390fd5b60638211158015610665575060638111155b6106b15760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c657373000000604482015260640161064a565b600d91909155600e55565b60006106c9848484610c47565b61071b843361071685604051806060016040528060288152602001611bf3602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611174565b610b22565b5060019392505050565b6000546001600160a01b0316331461074f5760405162461bcd60e51b815260040161064a90611a76565b61075960006111ae565b565b600080546001600160a01b031633146107865760405162461bcd60e51b815260040161064a90611a76565b50600c805460ff19169055600190565b60606005805461058690611a3c565b6000546001600160a01b031633146107cf5760405162461bcd60e51b815260040161064a90611a76565b600660019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610822573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108469190611aab565b6001600160a01b031663c9c6539630600660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cc9190611aab565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d9190611aab565b600780546001600160a01b039283166001600160a01b0319909116811782556000908152601260209081526040808320805460ff1990811660019081179092559454861684526011909252909120805490921617905560065461010090041663f305d71947306109c2816001600160a01b031660009081526001602052604090205490565b6000806109d76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a3f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a649190611ac8565b5050600c805462ffff0019166201010017905550565b6000610616338484610c47565b6000546001600160a01b03163314610ab15760405162461bcd60e51b815260040161064a90611a76565b6001600160a01b038116610b165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161064a565b610b1f816111ae565b50565b6001600160a01b038316610b845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161064a565b6001600160a01b038216610be55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161064a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161064a565b6001600160a01b038216610d0d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161064a565b60008111610d735760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b606482015260840161064a565b6001600160a01b0383166000908152600f602052604090205460ff16158015610db557506001600160a01b0382166000908152600f602052604090205460ff16155b610def5760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b604482015260640161064a565b600c5460ff16156110cb576000546001600160a01b03848116911614801590610e2657506000546001600160a01b03838116911614155b156110cb57600c54610100900460ff16610ebe576001600160a01b03831660009081526010602052604090205460ff1680610e7957506001600160a01b03821660009081526010602052604090205460ff165b610ebe5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161064a565b6001600160a01b03831660009081526012602052604090205460ff168015610eff57506001600160a01b03821660009081526011602052604090205460ff16155b15610fb757600954811115610f485760405162461bcd60e51b815260206004820152600f60248201526e13585e081d1e08195e18d959591959608a1b604482015260640161064a565b600b546001600160a01b038316600090815260016020526040902054610f6e9083611b0c565b1115610fb25760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161064a565b6110cb565b6001600160a01b03821660009081526012602052604090205460ff168015610ff857506001600160a01b03831660009081526011602052604090205460ff16155b1561104157600954811115610fb25760405162461bcd60e51b815260206004820152600f60248201526e13585e081d1e08195e18d959591959608a1b604482015260640161064a565b6001600160a01b03821660009081526011602052604090205460ff166110cb57600b546001600160a01b0383166000908152600160205260409020546110879083611b0c565b11156110cb5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161064a565b600c5462010000900460ff1680156110ed5750600754600160a01b900460ff16155b801561111157506001600160a01b03821660009081526012602052604090205460ff165b801561113657506001600160a01b03831660009081526010602052604090205460ff16155b15611164576007805460ff60a01b1916600160a01b1790556111566111fe565b6007805460ff60a01b191690555b61116f838383611286565b505050565b600081848411156111985760405162461bcd60e51b815260040161064a91906118f4565b5060006111a58486611b1f565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b30600090815260016020526040902054600a5461121d906107d0611b32565b81111561123657600a54611233906107d0611b32565b90505b600a548111156112495761124981611448565b6008546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611282573d6000803e3d6000fd5b5050565b6000546001600160a01b03848116911614806112af57506000546001600160a01b038381169116145b806112c257506001600160a01b03831630145b806112d557506001600160a01b03821630145b15611380576001600160a01b0383166000908152600160205260409020546112fd90826115c5565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461132c908261160e565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c3a9085815260200190565b60008061138e85858561166d565b6001600160a01b03871660009081526001602052604090205491935091506113b690836115c5565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546113e5908261160e565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114399085815260200190565b60405180910390a35050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061147d5761147d611b49565b60200260200101906001600160a01b031690816001600160a01b031681525050600660019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115149190611aab565b8160018151811061152757611527611b49565b6001600160a01b03928316602091820292909201015260065461155291309161010090041684610b22565b60065460405163791ac94760e01b81526101009091046001600160a01b03169063791ac9479061158f908590600090869030904290600401611b5f565b600060405180830381600087803b1580156115a957600080fd5b505af11580156115bd573d6000803e3d6000fd5b505050505050565b600061160783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611174565b9392505050565b60008061161b8385611b0c565b9050838110156116075760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161064a565b6001600160a01b0383166000908152601060205260408120548190819060ff16806116b057506001600160a01b03851660009081526010602052604090205460ff165b159050600081156117ed576001600160a01b03861660009081526012602052604090205460ff1680156116e557506000600e54115b156117115761170a6064611704600e548861180790919063ffffffff16565b90611889565b905061175d565b6001600160a01b03871660009081526012602052604090205460ff16801561173b57506000600d54115b1561175d5761175a6064611704600d548861180790919063ffffffff16565b90505b80156117d7573060009081526001602052604090205461177d908261160e565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ce9085815260200190565b60405180910390a35b846117e28282611b1f565b9350935050506117ff565b806117f88187611b1f565b9350935050505b935093915050565b6000826000036118195750600061061a565b60006118258385611b32565b9050826118328583611bd0565b146116075760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161064a565b600061160783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118e75760405162461bcd60e51b815260040161064a91906118f4565b5060006111a58486611bd0565b600060208083528351808285015260005b8181101561192157858101830151858201604001528201611905565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b1f57600080fd5b6000806040838503121561196a57600080fd5b823561197581611942565b946020939093013593505050565b6000806040838503121561199657600080fd5b50508035926020909101359150565b6000806000606084860312156119ba57600080fd5b83356119c581611942565b925060208401356119d581611942565b929592945050506040919091013590565b6000602082840312156119f857600080fd5b813561160781611942565b60008060408385031215611a1657600080fd5b8235611a2181611942565b91506020830135611a3181611942565b809150509250929050565b600181811c90821680611a5057607f821691505b602082108103611a7057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611abd57600080fd5b815161160781611942565b600080600060608486031215611add57600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8082018082111561061a5761061a611af6565b8181038181111561061a5761061a611af6565b808202811582820484141761061a5761061a611af6565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611baf5784516001600160a01b031683529383019391830191600101611b8a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611bed57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200c033d329d6ca6d00a871e1f8e03df2aa6edf7b48fc44eabbeb8d5d193fde4be64736f6c63430008130033

Deployed Bytecode Sourcemap

4372:9177:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6268:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7179:193;;;;;;;;;;-1:-1:-1;7179:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7179:193:0;1023:187:1;8990:219:0;;;;;;;;;;-1:-1:-1;8990:219:0;;;;;:::i;:::-;;:::i;:::-;;4740:41;;;;;;;;;;-1:-1:-1;4740:41:0;;;;;;;-1:-1:-1;;;;;4740:41:0;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;4740:41:0;1468:229:1;6545:100:0;;;;;;;;;;-1:-1:-1;6625:12:0;;6545:100;;;1848:25:1;;;1836:2;1821:18;6545:100:0;1702:177:1;7380:446:0;;;;;;;;;;-1:-1:-1;7380:446:0;;;;;:::i;:::-;;:::i;6454:83::-;;;;;;;;;;-1:-1:-1;6520:9:0;;6454:83;;6520:9;;;;2487:36:1;;2475:2;2460:18;6454:83:0;2345:184:1;4788:28:0;;;;;;;;;;-1:-1:-1;4788:28:0;;;;-1:-1:-1;;;;;4788:28:0;;;5126:34;;;;;;;;;;-1:-1:-1;5126:34:0;;;;;;;;;;;5088:31;;;;;;;;;;-1:-1:-1;5088:31:0;;;;;;;;5167;;;;;;;;;;-1:-1:-1;5167:31:0;;;;;;;;;;;6653:119;;;;;;;;;;-1:-1:-1;6653:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6746:18:0;6719:7;6746:18;;;:9;:18;;;;;;;6653:119;911:103;;;;;;;;;;;;;:::i;8863:119::-;;;;;;;;;;;;;:::i;4855:30::-;;;;;;;;;;-1:-1:-1;4855:30:0;;;;-1:-1:-1;;;;;4855:30:0;;;5207:28;;;;;;;;;;;;;;;;688:87;;;;;;;;;;-1:-1:-1;734:7:0;761:6;-1:-1:-1;;;;;761:6:0;688:87;;6359;;;;;;;;;;;;;:::i;8248:607::-;;;;;;;;;;;;;:::i;5459:40::-;;;;;;;;;;-1:-1:-1;5459:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6780:199;;;;;;;;;;-1:-1:-1;6780:199:0;;;;;:::i;:::-;;:::i;4894:56::-;;;;;;;;;;;;;;;;5244:29;;;;;;;;;;;;;;;;6987:184;;;;;;;;;;-1:-1:-1;6987:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7136:18:0;;;7104:7;7136:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6987:184;5393:57;;;;;;;;;;-1:-1:-1;5393:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4957:64;;;;;;;;;;;;;;;;1022:238;;;;;;;;;;-1:-1:-1;1022:238:0;;;;;:::i;:::-;;:::i;5028:51::-;;;;;;;;;;;;;;;;6268:83;6305:13;6338:5;6331:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6268:83;:::o;7179:193::-;7281:4;7303:39;289:10;7326:7;7335:6;7303:8;:39::i;:::-;-1:-1:-1;7360:4:0;7179:193;;;;;:::o;8990:219::-;734:7;761:6;-1:-1:-1;;;;;761:6:0;289:10;823:23;815:68;;;;-1:-1:-1;;;815:68:0;;;;;;;:::i;:::-;;;;;;;;;9088:2:::1;9078:6;:12;;:29;;;;;9105:2;9094:7;:13;;9078:29;9070:71;;;::::0;-1:-1:-1;;;9070:71:0;;4335:2:1;9070:71:0::1;::::0;::::1;4317:21:1::0;4374:2;4354:18;;;4347:30;4413:31;4393:18;;;4386:59;4462:18;;9070:71:0::1;4133:353:1::0;9070:71:0::1;9152:9;:18:::0;;;;9181:10:::1;:20:::0;8990:219::o;7380:446::-;7512:4;7529:36;7539:6;7547:9;7558:6;7529:9;:36::i;:::-;7576:220;7599:6;289:10;7647:138;7703:6;7647:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7647:19:0;;;;;;:11;:19;;;;;;;;289:10;7647:33;;;;;;;;;;:37;:138::i;:::-;7576:8;:220::i;:::-;-1:-1:-1;7814:4:0;7380:446;;;;;:::o;911:103::-;734:7;761:6;-1:-1:-1;;;;;761:6:0;289:10;823:23;815:68;;;;-1:-1:-1;;;815:68:0;;;;;;;:::i;:::-;976:30:::1;1003:1;976:18;:30::i;:::-;911:103::o:0;8863:119::-;8915:4;761:6;;-1:-1:-1;;;;;761:6:0;289:10;823:23;815:68;;;;-1:-1:-1;;;815:68:0;;;;;;;:::i;:::-;-1:-1:-1;8932:12:0::1;:20:::0;;-1:-1:-1;;8932:20:0::1;::::0;;;8863:119;:::o;6359:87::-;6398:13;6431:7;6424:14;;;;;:::i;8248:607::-;734:7;761:6;-1:-1:-1;;;;;761:6:0;289:10;823:23;815:68;;;;-1:-1:-1;;;815:68:0;;;;;;;:::i;:::-;8334:15:::1;;;;;;;;;-1:-1:-1::0;;;;;8334:15:0::1;-1:-1:-1::0;;;;;8334:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8316:55:0::1;;8394:4;8414:15;;;;;;;;;-1:-1:-1::0;;;;;8414:15:0::1;-1:-1:-1::0;;;;;8414:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8316:131;::::0;-1:-1:-1;;;;;;8316:131:0::1;::::0;;;;;;-1:-1:-1;;;;;4977:15:1;;;8316:131:0::1;::::0;::::1;4959:34:1::0;5029:15;;5009:18;;;5002:43;4894:18;;8316:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8300:13;:147:::0;;-1:-1:-1;;;;;8300:147:0;;::::1;-1:-1:-1::0;;;;;;8300:147:0;;::::1;::::0;::::1;::::0;;:13:::1;8460:23:::0;;;:8:::1;:23;::::0;;;;;;;:30;;-1:-1:-1;;8460:30:0;;::::1;8300:147:::0;8460:30;;::::1;::::0;;;8527:13;;;::::1;8501:40:::0;;:25:::1;:40:::0;;;;;;:47;;;;::::1;;::::0;;8561:15:::1;::::0;8300:147:::1;8561:15:::0;::::1;;:31;8600:21;8645:4;8665:24;8645:4:::0;-1:-1:-1;;;;;6746:18:0;6719:7;6746:18;;;:9;:18;;;;;;;6653:119;8665:24:::1;8704:1;8720::::0;8736:7:::1;734::::0;761:6;-1:-1:-1;;;;;761:6:0;;688:87;8736:7:::1;8561:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8561:223:0;;;-1:-1:-1;;;;;5415:15:1;;;8561:223:0::1;::::0;::::1;5397:34:1::0;5447:18;;;5440:34;;;;5490:18;;;5483:34;;;;5533:18;;;5526:34;5597:15;;;5576:19;;;5569:44;8758:15:0::1;5629:19:1::0;;;5622:35;5331:19;;8561:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;8797:14:0::1;:21:::0;;-1:-1:-1;;8829:18:0;;;;;-1:-1:-1;8248:607:0:o;6780:199::-;6885:4;6907:42;289:10;6931:9;6942:6;6907:9;:42::i;1022:238::-;734:7;761:6;-1:-1:-1;;;;;761:6:0;289:10;823:23;815:68;;;;-1:-1:-1;;;815:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1125:22:0;::::1;1103:110;;;::::0;-1:-1:-1;;;1103:110:0;;6181:2:1;1103:110:0::1;::::0;::::1;6163:21:1::0;6220:2;6200:18;;;6193:30;6259:34;6239:18;;;6232:62;-1:-1:-1;;;6310:18:1;;;6303:36;6356:19;;1103:110:0::1;5979:402:1::0;1103:110:0::1;1224:28;1243:8;1224:18;:28::i;:::-;1022:238:::0;:::o;7834:369::-;-1:-1:-1;;;;;7961:19:0;;7953:68;;;;-1:-1:-1;;;7953:68:0;;6588:2:1;7953:68:0;;;6570:21:1;6627:2;6607:18;;;6600:30;6666:34;6646:18;;;6639:62;-1:-1:-1;;;6717:18:1;;;6710:34;6761:19;;7953:68:0;6386:400:1;7953:68:0;-1:-1:-1;;;;;8040:21:0;;8032:68;;;;-1:-1:-1;;;8032:68:0;;6993:2:1;8032:68:0;;;6975:21:1;7032:2;7012:18;;;7005:30;7071:34;7051:18;;;7044:62;-1:-1:-1;;;7122:18:1;;;7115:32;7164:19;;8032:68:0;6791:398:1;8032:68:0;-1:-1:-1;;;;;8111:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8163:32;;1848:25:1;;;8163:32:0;;1821:18:1;8163:32:0;;;;;;;;7834:369;;;:::o;9217:1777::-;-1:-1:-1;;;;;9340:18:0;;9332:68;;;;-1:-1:-1;;;9332:68:0;;7396:2:1;9332:68:0;;;7378:21:1;7435:2;7415:18;;;7408:30;7474:34;7454:18;;;7447:62;-1:-1:-1;;;7525:18:1;;;7518:35;7570:19;;9332:68:0;7194:401:1;9332:68:0;-1:-1:-1;;;;;9419:16:0;;9411:64;;;;-1:-1:-1;;;9411:64:0;;7802:2:1;9411:64:0;;;7784:21:1;7841:2;7821:18;;;7814:30;7880:34;7860:18;;;7853:62;-1:-1:-1;;;7931:18:1;;;7924:33;7974:19;;9411:64:0;7600:399:1;9411:64:0;9503:1;9494:6;:10;9486:68;;;;-1:-1:-1;;;9486:68:0;;8206:2:1;9486:68:0;;;8188:21:1;8245:2;8225:18;;;8218:30;8284:34;8264:18;;;8257:62;-1:-1:-1;;;8335:18:1;;;8328:43;8388:19;;9486:68:0;8004:409:1;9486:68:0;-1:-1:-1;;;;;9574:18:0;;;;;;:12;:18;;;;;;;;9573:19;:40;;;;-1:-1:-1;;;;;;9597:16:0;;;;;;:12;:16;;;;;;;;9596:17;9573:40;9565:64;;;;-1:-1:-1;;;9565:64:0;;8620:2:1;9565:64:0;;;8602:21:1;8659:2;8639:18;;;8632:30;-1:-1:-1;;;8678:18:1;;;8671:41;8729:18;;9565:64:0;8418:335:1;9565:64:0;9646:12;;;;9642:1052;;;734:7;761:6;-1:-1:-1;;;;;9679:15:0;;;761:6;;9679:15;;;;:32;;-1:-1:-1;734:7:0;761:6;-1:-1:-1;;;;;9698:13:0;;;761:6;;9698:13;;9679:32;9675:1008;;;9737:14;;;;;;;9732:224;;-1:-1:-1;;;;;9810:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;9839:23:0;;;;;;:19;:23;;;;;;;;9810:52;9776:160;;;;-1:-1:-1;;;9776:160:0;;8960:2:1;9776:160:0;;;8942:21:1;8999:2;8979:18;;;8972:30;-1:-1:-1;;;9018:18:1;;;9011:52;9080:18;;9776:160:0;8758:346:1;9776:160:0;-1:-1:-1;;;;;9980:14:0;;;;;;:8;:14;;;;;;;;:48;;;;-1:-1:-1;;;;;;9999:29:0;;;;;;:25;:29;;;;;;;;9998:30;9980:48;9976:692;;;10071:14;;10061:6;:24;;10053:52;;;;-1:-1:-1;;;10053:52:0;;9311:2:1;10053:52:0;;;9293:21:1;9350:2;9330:18;;;9323:30;-1:-1:-1;;;9369:18:1;;;9362:45;9424:18;;10053:52:0;9109:339:1;10053:52:0;10188:9;;-1:-1:-1;;;;;6746:18:0;;6719:7;6746:18;;;:9;:18;;;;;;10162:22;;:6;:22;:::i;:::-;:35;;10128:140;;;;-1:-1:-1;;;10128:140:0;;9917:2:1;10128:140:0;;;9899:21:1;9956:2;9936:18;;;9929:30;-1:-1:-1;;;9975:18:1;;;9968:49;10034:18;;10128:140:0;9715:343:1;10128:140:0;9976:692;;;-1:-1:-1;;;;;10298:12:0;;;;;;:8;:12;;;;;;;;:48;;;;-1:-1:-1;;;;;;10315:31:0;;;;;;:25;:31;;;;;;;;10314:32;10298:48;10294:374;;;10389:14;;10379:6;:24;;10371:52;;;;-1:-1:-1;;;10371:52:0;;9311:2:1;10371:52:0;;;9293:21:1;9350:2;9330:18;;;9323:30;-1:-1:-1;;;9369:18:1;;;9362:45;9424:18;;10371:52:0;9109:339:1;10294:374:0;-1:-1:-1;;;;;10454:29:0;;;;;;:25;:29;;;;;;;;10449:219;;10568:9;;-1:-1:-1;;;;;6746:18:0;;6719:7;6746:18;;;:9;:18;;;;;;10542:22;;:6;:22;:::i;:::-;:35;;10508:140;;;;-1:-1:-1;;;10508:140:0;;9917:2:1;10508:140:0;;;9899:21:1;9956:2;9936:18;;;9929:30;-1:-1:-1;;;9975:18:1;;;9968:49;10034:18;;10508:140:0;9715:343:1;10508:140:0;10724:11;;;;;;;:37;;;;-1:-1:-1;10753:8:0;;-1:-1:-1;;;10753:8:0;;;;10752:9;10724:37;:66;;;;-1:-1:-1;;;;;;10778:12:0;;;;;;:8;:12;;;;;;;;10724:66;:109;;;;-1:-1:-1;;;;;;10808:25:0;;;;;;:19;:25;;;;;;;;10807:26;10724:109;10706:237;;;10860:8;:15;;-1:-1:-1;;;;10860:15:0;-1:-1:-1;;;10860:15:0;;;10890:10;:8;:10::i;:::-;10915:8;:16;;-1:-1:-1;;;;10915:16:0;;;10706:237;10955:31;10969:4;10975:2;10979:6;10955:13;:31::i;:::-;9217:1777;;;:::o;2623:224::-;2743:7;2779:12;2771:6;;;;2763:29;;;;-1:-1:-1;;;2763:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2803:9:0;2815:5;2819:1;2815;:5;:::i;:::-;2803:17;2623:224;-1:-1:-1;;;;;2623:224:0:o;1268:191::-;1342:16;1361:6;;-1:-1:-1;;;;;1378:17:0;;;-1:-1:-1;;;;;;1378:17:0;;;;;;1411:40;;1361:6;;;;;;;1411:40;;1342:16;1411:40;1331:128;1268:191;:::o;13148:398::-;13231:4;13187:23;6746:18;;;:9;:18;;;;;;13272;;:25;;13293:4;13272:25;:::i;:::-;13254:15;:43;13250:119;;;13332:18;;:25;;13353:4;13332:25;:::i;:::-;13314:43;;13250:119;13403:18;;13385:15;:36;13381:88;;;13436:33;13453:15;13436:16;:33::i;:::-;13490:15;;13482:56;;-1:-1:-1;;;;;13490:15:0;;;;13516:21;13482:56;;;;;13490:15;13482:56;13490:15;13482:56;13516:21;13490:15;13482:56;;;;;;;;;;;;;;;;;;;;;13176:370;13148:398::o;11002:709::-;734:7;761:6;-1:-1:-1;;;;;11139:15:0;;;761:6;;11139:15;;:45;;-1:-1:-1;734:7:0;761:6;-1:-1:-1;;;;;11171:13:0;;;761:6;;11171:13;11139:45;:83;;;-1:-1:-1;;;;;;11201:21:0;;11217:4;11201:21;11139:83;:119;;;-1:-1:-1;;;;;;11239:19:0;;11253:4;11239:19;11139:119;11121:344;;;-1:-1:-1;;;;;11303:15:0;;;;;;:9;:15;;;;;;:27;;11323:6;11303:19;:27::i;:::-;-1:-1:-1;;;;;11285:15:0;;;;;;;:9;:15;;;;;;:45;;;;11361:13;;;;;;;:25;;11379:6;11361:17;:25::i;:::-;-1:-1:-1;;;;;11345:13:0;;;;;;;:9;:13;;;;;;;:41;;;;11406:26;;;;;;;;;;11425:6;1848:25:1;;1836:2;1821:18;;1702:177;11121:344:0;11478:18;11498:16;11518:27;11528:4;11534:2;11538:6;11518:9;:27::i;:::-;-1:-1:-1;;;;;11574:15:0;;;;;;:9;:15;;;;;;11477:68;;-1:-1:-1;11477:68:0;-1:-1:-1;11574:31:0;;11477:68;11574:19;:31::i;:::-;-1:-1:-1;;;;;11556:15:0;;;;;;;:9;:15;;;;;;:49;;;;11632:13;;;;;;;:27;;11650:8;11632:17;:27::i;:::-;-1:-1:-1;;;;;11616:13:0;;;;;;;:9;:13;;;;;;;:43;;;;11675:28;;;;;;;;;;11694:8;1848:25:1;;1836:2;1821:18;;1702:177;11675:28:0;;;;;;;;11110:601;;11002:709;;;:::o;12637:503::-;12727:16;;;12741:1;12727:16;;;;;;;;12703:21;;12727:16;;;;;;;;;;-1:-1:-1;12727:16:0;12703:40;;12772:4;12754;12759:1;12754:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;12754:23:0;;;-1:-1:-1;;;;;12754:23:0;;;;;12798:15;;;;;;;;;-1:-1:-1;;;;;12798:15:0;-1:-1:-1;;;;;12798:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12788:4;12793:1;12788:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12788:32:0;;;:7;;;;;;;;;:32;12865:15;;12833:62;;12850:4;;12865:15;;;;12883:11;12833:8;:62::i;:::-;12908:15;;:224;;-1:-1:-1;;;12908:224:0;;:15;;;;-1:-1:-1;;;;;12908:15:0;;:66;;:224;;12989:11;;13015:1;;13059:4;;13086;;13106:15;;12908:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12692:448;12637:503;:::o;2479:136::-;2537:7;2564:43;2568:1;2571;2564:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2557:50;2479:136;-1:-1:-1;;;2479:136:0:o;2292:179::-;2350:7;;2382:5;2386:1;2382;:5;:::i;:::-;2370:17;;2411:1;2406;:6;;2398:46;;;;-1:-1:-1;;;2398:46:0;;11820:2:1;2398:46:0;;;11802:21:1;11859:2;11839:18;;;11832:30;11898:29;11878:18;;;11871:57;11945:18;;2398:46:0;11618:351:1;11719:795:0;-1:-1:-1;;;;;11878:25:0;;11832:7;11878:25;;;:19;:25;;;;;;11832:7;;;;11878:25;;;:52;;-1:-1:-1;;;;;;11907:23:0;;;;;;:19;:23;;;;;;;;11878:52;11876:55;11861:70;;11944:12;11977:7;11973:493;;;-1:-1:-1;;;;;12005:12:0;;;;;;:8;:12;;;;;;;;:30;;;;;12034:1;12021:10;;:14;12005:30;12001:224;;;12063:31;12090:3;12063:22;12074:10;;12063:6;:10;;:22;;;;:::i;:::-;:26;;:31::i;:::-;12056:38;;12001:224;;;-1:-1:-1;;;;;12120:14:0;;;;;;:8;:14;;;;;;;;:31;;;;;12150:1;12138:9;;:13;12120:31;12116:109;;;12179:30;12205:3;12179:21;12190:9;;12179:6;:10;;:21;;;;:::i;:30::-;12172:37;;12116:109;12245:8;;12241:169;;12319:4;12301:24;;;;:9;:24;;;;;;:34;;12330:4;12301:28;:34::i;:::-;12292:4;12274:24;;;;:9;:24;;;;;;;:61;;;;12359:35;;-1:-1:-1;;;;;12359:35:0;;;;;;;12389:4;1848:25:1;;1836:2;1821:18;;1702:177;12359:35:0;;;;;;;;12241:169;12432:6;12440:13;12449:4;12432:6;12440:13;:::i;:::-;12424:30;;;;;;;;11973:493;12486:4;12492:13;12486:4;12492:6;:13;:::i;:::-;12478:28;;;;;;11719:795;;;;;;;:::o;2855:246::-;2913:7;2937:1;2942;2937:6;2933:47;;-1:-1:-1;2967:1:0;2960:8;;2933:47;2990:9;3002:5;3006:1;3002;:5;:::i;:::-;2990:17;-1:-1:-1;3035:1:0;3026:5;3030:1;2990:17;3026:5;:::i;:::-;:10;3018:56;;;;-1:-1:-1;;;3018:56:0;;12398:2:1;3018:56:0;;;12380:21:1;12437:2;12417:18;;;12410:30;12476:34;12456:18;;;12449:62;-1:-1:-1;;;12527:18:1;;;12520:31;12568:19;;3018:56:0;12196:397:1;3109:132:0;3167:7;3194:39;3198:1;3201;3194:39;;;;;;;;;;;;;;;;;3369:7;3404:12;3397:5;3389:28;;;;-1:-1:-1;;;3389:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3428:9:0;3440:5;3444:1;3440;:5;:::i;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;1884:456::-;1961:6;1969;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;-1:-1:-1;2211:2:1;2196:18;;2183:32;2224:33;2183:32;2224:33;:::i;:::-;1884:456;;2276:7;;-1:-1:-1;;;2330:2:1;2315:18;;;;2302:32;;1884:456::o;2742:247::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2909:9;2896:23;2928:31;2953:5;2928:31;:::i;2994:388::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3178:9;3165:23;3197:31;3222:5;3197:31;:::i;:::-;3247:5;-1:-1:-1;3304:2:1;3289:18;;3276:32;3317:33;3276:32;3317:33;:::i;:::-;3369:7;3359:17;;;2994:388;;;;;:::o;3387:380::-;3466:1;3462:12;;;;3509;;;3530:61;;3584:4;3576:6;3572:17;3562:27;;3530:61;3637:2;3629:6;3626:14;3606:18;3603:38;3600:161;;3683:10;3678:3;3674:20;3671:1;3664:31;3718:4;3715:1;3708:15;3746:4;3743:1;3736:15;3600:161;;3387:380;;;:::o;3772:356::-;3974:2;3956:21;;;3993:18;;;3986:30;4052:34;4047:2;4032:18;;4025:62;4119:2;4104:18;;3772:356::o;4491:251::-;4561:6;4614:2;4602:9;4593:7;4589:23;4585:32;4582:52;;;4630:1;4627;4620:12;4582:52;4662:9;4656:16;4681:31;4706:5;4681:31;:::i;5668:306::-;5756:6;5764;5772;5825:2;5813:9;5804:7;5800:23;5796:32;5793:52;;;5841:1;5838;5831:12;5793:52;5870:9;5864:16;5854:26;;5920:2;5909:9;5905:18;5899:25;5889:35;;5964:2;5953:9;5949:18;5943:25;5933:35;;5668:306;;;;;:::o;9453:127::-;9514:10;9509:3;9505:20;9502:1;9495:31;9545:4;9542:1;9535:15;9569:4;9566:1;9559:15;9585:125;9650:9;;;9671:10;;;9668:36;;;9684:18;;:::i;10063:128::-;10130:9;;;10151:11;;;10148:37;;;10165:18;;:::i;10196:168::-;10269:9;;;10300;;10317:15;;;10311:22;;10297:37;10287:71;;10338:18;;:::i;10501:127::-;10562:10;10557:3;10553:20;10550:1;10543:31;10593:4;10590:1;10583:15;10617:4;10614:1;10607:15;10633:980;10895:4;10943:3;10932:9;10928:19;10974:6;10963:9;10956:25;11000:2;11038:6;11033:2;11022:9;11018:18;11011:34;11081:3;11076:2;11065:9;11061:18;11054:31;11105:6;11140;11134:13;11171:6;11163;11156:22;11209:3;11198:9;11194:19;11187:26;;11248:2;11240:6;11236:15;11222:29;;11269:1;11279:195;11293:6;11290:1;11287:13;11279:195;;;11358:13;;-1:-1:-1;;;;;11354:39:1;11342:52;;11449:15;;;;11414:12;;;;11390:1;11308:9;11279:195;;;-1:-1:-1;;;;;;;11530:32:1;;;;11525:2;11510:18;;11503:60;-1:-1:-1;;;11594:3:1;11579:19;11572:35;11491:3;10633:980;-1:-1:-1;;;10633:980:1:o;11974:217::-;12014:1;12040;12030:132;;12084:10;12079:3;12075:20;12072:1;12065:31;12119:4;12116:1;12109:15;12147:4;12144:1;12137:15;12030:132;-1:-1:-1;12176:9:1;;11974:217::o

Swarm Source

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