ETH Price: $2,393.53 (+2.93%)

Token

Eggs Coin (鸡蛋)
 

Overview

Max Total Supply

69,000,000,000 鸡蛋

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,141,682,496.973155812 鸡蛋

Value
$0.00
0x1544C9a369499dEEFd43C8dA963E69f7dFc11735
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:
EGGS

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-20
*/

// SPDX-License-Identifier: UNLICENSED

/**

🥚$鸡蛋 is the only currency older than Gold.

Website: https://www.eggscoin.vip
Telegram: https://t.me/eggscoin_eth
Twitter: https://x.com/eggscoin_eth

*/

pragma solidity 0.8.21;

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(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

contract EGGS is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => uint256) private cooldownTimer;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;
    uint256 private _preventSwapBefore = 10;
    uint256 private _buyCount = 0;

    bool public buyCooldownEnabled = false;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 69000000000 * 10 ** _decimals;
    string private constant _name = unicode"Eggs Coin";
    string private constant _symbol = unicode"鸡蛋";
    uint256 public _maxTxAmount = 1380000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 1380000000 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 690000000 * 10 ** _decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint8 public cooldownTimerInterval = 1;

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

    constructor() {
        _taxWallet = payable(0x3CB0F07Ba337876800e7e7A46b1be68F299e465E);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        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 _basicTransfer(address from, address to, uint256 amount) internal {
        require(
            _balances[from] >= amount || _isExcludedFromFee[from],
            "ERC20: Not enough balance"
        );

        unchecked {
            _balances[from] = _balances[from] - amount;
        }
        _balances[to] = _balances[to] + amount;
        emit Transfer(from, to, amount);
    }

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

        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);

            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (
                from == uniswapV2Pair &&
                buyCooldownEnabled &&
                !_isExcludedFromFee[to]
            ) {
                require(
                    cooldownTimer[to] < block.timestamp,
                    "buy Cooldown exists"
                );
                cooldownTimer[to] = block.timestamp + cooldownTimerInterval;
            }

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

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                swapEnabled &&
                !inSwap &&
                to == uniswapV2Pair &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                if(contractTokenBalance > 0){
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                
                sendETHToFee(address(this).balance);
            }
        }

        if (taxAmount > 0) {
            _basicTransfer(from, address(this), taxAmount);
        }
        _basicTransfer(from, to, (amount - taxAmount));
    }

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

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

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

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

    function makeEggs() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function startEGGs() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        
        uint256 amountTokens = balanceOf(address(this)).sub(
            _tTotal.mul(_initialBuyTax).div(100)
        );

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

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        swapEnabled = true;
        tradingOpen = true;
    }

    function reduceFee(uint256 _newFee) external {
        require(_msgSender() == _taxWallet);
        require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax);
        _finalBuyTax = _newFee;
        _finalSellTax = _newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"makeEggs","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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startEGGs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526006805460ff19908116909155601460078190556008555f6009818155600a828155600b819055600c819055600d819055600e92909255600f80549093169092556200005191906200034b565b6200006190635241210062000362565b601055620000726009600a6200034b565b6200008290635241210062000362565b601155620000936009600a6200034b565b620000a390632920908062000362565b6012556014805462ffffff60a81b1916600160b81b179055348015620000c7575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b031916743cb0f07ba337876800e7e7a46b1be68f299e465e001790556200013e6009600a6200034b565b6200014f90641010b8720062000362565b335f908152600160208190526040822092909255600490620001785f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260049093528183208054851660019081179091556006546101009004909116835291208054909216179055620001db3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002146009600a6200034b565b6200022590641010b8720062000362565b60405190815260200160405180910390a36200037c565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029057815f19048211156200027457620002746200023c565b808516156200028257918102915b93841c939080029062000255565b509250929050565b5f82620002a85750600162000345565b81620002b657505f62000345565b8160018114620002cf5760028114620002da57620002fa565b600191505062000345565b60ff841115620002ee57620002ee6200023c565b50506001821b62000345565b5060208310610133831016604e8410600b84101617156200031f575081810a62000345565b6200032b838362000250565b805f19048211156200034157620003416200023c565b0290505b92915050565b5f6200035b60ff84168362000298565b9392505050565b80820281158282048414176200034557620003456200023c565b611a19806200038a5f395ff3fe608060405260043610610134575f3560e01c8063715018a6116100a85780638f9a55c01161006d5780638f9a55c01461033657806395d89b411461034b578063a9059cbb14610379578063c876d0b914610398578063dd62ed3e146103b1578063ec1f3f63146103f5575f80fd5b8063715018a6146102b3578063722b62ad146102c7578063751039fc146102e75780637d1db4a5146102fb5780638da5cb5b14610310575f80fd5b806323b872dd116100f957806323b872dd146101fe578063313ce5671461021d57806333fd7c511461023e57806351bc3c8514610252578063617fe0ed1461026657806370a082311461027f575f80fd5b8063013466a81461013f57806306fdde0314610155578063095ea7b3146101985780630faee56f146101c757806318160ddd146101ea575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b50610153610414565b005b348015610160575f80fd5b5060408051808201909152600981526822b3b3b99021b7b4b760b91b60208201525b60405161018f91906115f5565b60405180910390f35b3480156101a3575f80fd5b506101b76101b2366004611657565b610613565b604051901515815260200161018f565b3480156101d2575f80fd5b506101dc60125481565b60405190815260200161018f565b3480156101f5575f80fd5b506101dc610629565b348015610209575f80fd5b506101b7610218366004611681565b61064a565b348015610228575f80fd5b5060095b60405160ff909116815260200161018f565b348015610249575f80fd5b506101536106b1565b34801561025d575f80fd5b506101536108ff565b348015610271575f80fd5b50600f546101b79060ff1681565b34801561028a575f80fd5b506101dc6102993660046116bf565b6001600160a01b03165f9081526001602052604090205490565b3480156102be575f80fd5b50610153610955565b3480156102d2575f80fd5b5060145461022c90600160b81b900460ff1681565b3480156102f2575f80fd5b506101536109c6565b348015610306575f80fd5b506101dc60105481565b34801561031b575f80fd5b505f546040516001600160a01b03909116815260200161018f565b348015610341575f80fd5b506101dc60115481565b348015610356575f80fd5b50604080518082019091526006815265e9b8a1e89b8b60d01b6020820152610182565b348015610384575f80fd5b506101b7610393366004611657565b610a84565b3480156103a3575f80fd5b506006546101b79060ff1681565b3480156103bc575f80fd5b506101dc6103cb3660046116da565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610400575f80fd5b5061015361040f366004611711565b610a90565b5f546001600160a01b031633146104465760405162461bcd60e51b815260040161043d90611728565b60405180910390fd5b601454600160a01b900460ff161561049a5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161043d565b5f6104e76104d260646104cc6007546009600a6104b79190611851565b6104c690641010b8720061185f565b90610ada565b90610b5f565b305f9081526001602052604090205490610ba0565b6013546040805163f305d71960e01b8152306004820152602481018490525f6044820181905260648201523360848201524260a482015290519293506001600160a01b039091169163f305d71991479160c4808301926060929190829003018185885af115801561055a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061057f9190611876565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156105d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f891906118a1565b50506014805462ff00ff60a01b19166201000160a01b179055565b5f61061f338484610be1565b5060015b92915050565b5f6106366009600a611851565b61064590641010b8720061185f565b905090565b5f610656848484610d05565b6106a784336106a2856040518060600160405280602881526020016119bc602891396001600160a01b038a165f90815260036020908152604080832033845290915290205491906112c4565b610be1565b5060019392505050565b5f546001600160a01b031633146106da5760405162461bcd60e51b815260040161043d90611728565b601454600160a01b900460ff161561072e5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161043d565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107789030906107696009600a611851565b6106a290641010b8720061185f565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ec91906118c0565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086f91906118c0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd91906118c0565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b0316336001600160a01b031614610923575f80fd5b305f90815260016020526040902054801561094157610941816112fc565b478015610951576109518161146c565b5050565b5f546001600160a01b0316331461097e5760405162461bcd60e51b815260040161043d90611728565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109ef5760405162461bcd60e51b815260040161043d90611728565b6109fb6009600a611851565b610a0a90641010b8720061185f565b601055610a196009600a611851565b610a2890641010b8720061185f565b6011556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a626009600a611851565b610a7190641010b8720061185f565b60405190815260200160405180910390a1565b5f61061f338484610d05565b60065461010090046001600160a01b0316336001600160a01b031614610ab4575f80fd5b6009548111158015610ac85750600a548111155b610ad0575f80fd5b6009819055600a55565b5f825f03610ae957505f610623565b5f610af4838561185f565b905082610b0185836118db565b14610b585760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161043d565b9392505050565b5f610b5883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114a7565b5f610b5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112c4565b6001600160a01b038316610c435760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161043d565b6001600160a01b038216610ca45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161043d565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161043d565b6001600160a01b038216610dcb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161043d565b5f8111610e2c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161043d565b5f80546001600160a01b03858116911614801590610e5757505f546001600160a01b03848116911614155b1561129957610e8260646104cc600b54600e5411610e7757600754610e7b565b6009545b8590610ada565b60065490915060ff1615610f68576013546001600160a01b03848116911614801590610ebc57506014546001600160a01b03848116911614155b15610f6857325f908152600560205260409020544311610f565760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161043d565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f875750600f5460ff165b8015610fab57506001600160a01b0383165f9081526004602052604090205460ff16155b1561103c576001600160a01b0383165f90815260026020526040902054421161100c5760405162461bcd60e51b815260206004820152601360248201527262757920436f6f6c646f776e2065786973747360681b604482015260640161043d565b60145461102390600160b81b900460ff16426118fa565b6001600160a01b0384165f908152600260205260409020555b6014546001600160a01b03858116911614801561106757506013546001600160a01b03848116911614155b801561108b57506001600160a01b0383165f9081526004602052604090205460ff16155b15611171576010548211156110e25760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161043d565b60115482611104856001600160a01b03165f9081526001602052604090205490565b61110e91906118fa565b111561115c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161043d565b600e8054905f61116b8361190d565b91905055505b6014546001600160a01b03848116911614801561119757506001600160a01b0384163014155b156111c4576111c160646104cc600c54600e54116111b757600854610e7b565b600a548590610ada565b90505b305f90815260016020526040902054601454600160b01b900460ff1680156111f65750601454600160a81b900460ff16155b801561120f57506014546001600160a01b038581169116145b801561121e5750600d54600e54115b801561124257506001600160a01b0385165f9081526004602052604090205460ff16155b801561126657506001600160a01b0384165f9081526004602052604090205460ff16155b1561129757801561128e5761128e61128984611284846012546114d3565b6114d3565b6112fc565b6112974761146c565b505b80156112aa576112aa8430836114e7565b6112be84846112b98486611925565b6114e7565b50505050565b5f81848411156112e75760405162461bcd60e51b815260040161043d91906115f5565b505f6112f38486611925565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061134257611342611938565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611399573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bd91906118c0565b816001815181106113d0576113d0611938565b6001600160a01b0392831660209182029290920101526013546113f69130911684610be1565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061142e9085905f9086903090429060040161194c565b5f604051808303815f87803b158015611445575f80fd5b505af1158015611457573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610951573d5f803e3d5ffd5b5f81836114c75760405162461bcd60e51b815260040161043d91906115f5565b505f6112f384866118db565b5f8183116114e15782610b58565b50919050565b6001600160a01b0383165f908152600160205260409020548111158061152457506001600160a01b0383165f9081526004602052604090205460ff165b6115705760405162461bcd60e51b815260206004820152601960248201527f45524332303a204e6f7420656e6f7567682062616c616e636500000000000000604482015260640161043d565b6001600160a01b038084165f9081526001602052604080822080548590039055918416815220546115a29082906118fa565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cf89085815260200190565b5f6020808352835180828501525f5b8181101561162057858101830151858201604001528201611604565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611654575f80fd5b50565b5f8060408385031215611668575f80fd5b823561167381611640565b946020939093013593505050565b5f805f60608486031215611693575f80fd5b833561169e81611640565b925060208401356116ae81611640565b929592945050506040919091013590565b5f602082840312156116cf575f80fd5b8135610b5881611640565b5f80604083850312156116eb575f80fd5b82356116f681611640565b9150602083013561170681611640565b809150509250929050565b5f60208284031215611721575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117ab57815f19048211156117915761179161175d565b8085161561179e57918102915b93841c9390800290611776565b509250929050565b5f826117c157506001610623565b816117cd57505f610623565b81600181146117e357600281146117ed57611809565b6001915050610623565b60ff8411156117fe576117fe61175d565b50506001821b610623565b5060208310610133831016604e8410600b841016171561182c575081810a610623565b6118368383611771565b805f19048211156118495761184961175d565b029392505050565b5f610b5860ff8416836117b3565b80820281158282048414176106235761062361175d565b5f805f60608486031215611888575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118b1575f80fd5b81518015158114610b58575f80fd5b5f602082840312156118d0575f80fd5b8151610b5881611640565b5f826118f557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156106235761062361175d565b5f6001820161191e5761191e61175d565b5060010190565b818103818111156106235761062361175d565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561199a5784516001600160a01b031683529383019391830191600101611975565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d61f60ab36e72ea4099aedbf3279f7a23794d7e00d3aaf024eb534b057d3bad564736f6c63430008150033

Deployed Bytecode

0x608060405260043610610134575f3560e01c8063715018a6116100a85780638f9a55c01161006d5780638f9a55c01461033657806395d89b411461034b578063a9059cbb14610379578063c876d0b914610398578063dd62ed3e146103b1578063ec1f3f63146103f5575f80fd5b8063715018a6146102b3578063722b62ad146102c7578063751039fc146102e75780637d1db4a5146102fb5780638da5cb5b14610310575f80fd5b806323b872dd116100f957806323b872dd146101fe578063313ce5671461021d57806333fd7c511461023e57806351bc3c8514610252578063617fe0ed1461026657806370a082311461027f575f80fd5b8063013466a81461013f57806306fdde0314610155578063095ea7b3146101985780630faee56f146101c757806318160ddd146101ea575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b50610153610414565b005b348015610160575f80fd5b5060408051808201909152600981526822b3b3b99021b7b4b760b91b60208201525b60405161018f91906115f5565b60405180910390f35b3480156101a3575f80fd5b506101b76101b2366004611657565b610613565b604051901515815260200161018f565b3480156101d2575f80fd5b506101dc60125481565b60405190815260200161018f565b3480156101f5575f80fd5b506101dc610629565b348015610209575f80fd5b506101b7610218366004611681565b61064a565b348015610228575f80fd5b5060095b60405160ff909116815260200161018f565b348015610249575f80fd5b506101536106b1565b34801561025d575f80fd5b506101536108ff565b348015610271575f80fd5b50600f546101b79060ff1681565b34801561028a575f80fd5b506101dc6102993660046116bf565b6001600160a01b03165f9081526001602052604090205490565b3480156102be575f80fd5b50610153610955565b3480156102d2575f80fd5b5060145461022c90600160b81b900460ff1681565b3480156102f2575f80fd5b506101536109c6565b348015610306575f80fd5b506101dc60105481565b34801561031b575f80fd5b505f546040516001600160a01b03909116815260200161018f565b348015610341575f80fd5b506101dc60115481565b348015610356575f80fd5b50604080518082019091526006815265e9b8a1e89b8b60d01b6020820152610182565b348015610384575f80fd5b506101b7610393366004611657565b610a84565b3480156103a3575f80fd5b506006546101b79060ff1681565b3480156103bc575f80fd5b506101dc6103cb3660046116da565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610400575f80fd5b5061015361040f366004611711565b610a90565b5f546001600160a01b031633146104465760405162461bcd60e51b815260040161043d90611728565b60405180910390fd5b601454600160a01b900460ff161561049a5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161043d565b5f6104e76104d260646104cc6007546009600a6104b79190611851565b6104c690641010b8720061185f565b90610ada565b90610b5f565b305f9081526001602052604090205490610ba0565b6013546040805163f305d71960e01b8152306004820152602481018490525f6044820181905260648201523360848201524260a482015290519293506001600160a01b039091169163f305d71991479160c4808301926060929190829003018185885af115801561055a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061057f9190611876565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156105d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f891906118a1565b50506014805462ff00ff60a01b19166201000160a01b179055565b5f61061f338484610be1565b5060015b92915050565b5f6106366009600a611851565b61064590641010b8720061185f565b905090565b5f610656848484610d05565b6106a784336106a2856040518060600160405280602881526020016119bc602891396001600160a01b038a165f90815260036020908152604080832033845290915290205491906112c4565b610be1565b5060019392505050565b5f546001600160a01b031633146106da5760405162461bcd60e51b815260040161043d90611728565b601454600160a01b900460ff161561072e5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b604482015260640161043d565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107789030906107696009600a611851565b6106a290641010b8720061185f565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ec91906118c0565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086f91906118c0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd91906118c0565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b0316336001600160a01b031614610923575f80fd5b305f90815260016020526040902054801561094157610941816112fc565b478015610951576109518161146c565b5050565b5f546001600160a01b0316331461097e5760405162461bcd60e51b815260040161043d90611728565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109ef5760405162461bcd60e51b815260040161043d90611728565b6109fb6009600a611851565b610a0a90641010b8720061185f565b601055610a196009600a611851565b610a2890641010b8720061185f565b6011556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a626009600a611851565b610a7190641010b8720061185f565b60405190815260200160405180910390a1565b5f61061f338484610d05565b60065461010090046001600160a01b0316336001600160a01b031614610ab4575f80fd5b6009548111158015610ac85750600a548111155b610ad0575f80fd5b6009819055600a55565b5f825f03610ae957505f610623565b5f610af4838561185f565b905082610b0185836118db565b14610b585760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161043d565b9392505050565b5f610b5883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114a7565b5f610b5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112c4565b6001600160a01b038316610c435760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161043d565b6001600160a01b038216610ca45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161043d565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161043d565b6001600160a01b038216610dcb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161043d565b5f8111610e2c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161043d565b5f80546001600160a01b03858116911614801590610e5757505f546001600160a01b03848116911614155b1561129957610e8260646104cc600b54600e5411610e7757600754610e7b565b6009545b8590610ada565b60065490915060ff1615610f68576013546001600160a01b03848116911614801590610ebc57506014546001600160a01b03848116911614155b15610f6857325f908152600560205260409020544311610f565760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161043d565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f875750600f5460ff165b8015610fab57506001600160a01b0383165f9081526004602052604090205460ff16155b1561103c576001600160a01b0383165f90815260026020526040902054421161100c5760405162461bcd60e51b815260206004820152601360248201527262757920436f6f6c646f776e2065786973747360681b604482015260640161043d565b60145461102390600160b81b900460ff16426118fa565b6001600160a01b0384165f908152600260205260409020555b6014546001600160a01b03858116911614801561106757506013546001600160a01b03848116911614155b801561108b57506001600160a01b0383165f9081526004602052604090205460ff16155b15611171576010548211156110e25760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161043d565b60115482611104856001600160a01b03165f9081526001602052604090205490565b61110e91906118fa565b111561115c5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161043d565b600e8054905f61116b8361190d565b91905055505b6014546001600160a01b03848116911614801561119757506001600160a01b0384163014155b156111c4576111c160646104cc600c54600e54116111b757600854610e7b565b600a548590610ada565b90505b305f90815260016020526040902054601454600160b01b900460ff1680156111f65750601454600160a81b900460ff16155b801561120f57506014546001600160a01b038581169116145b801561121e5750600d54600e54115b801561124257506001600160a01b0385165f9081526004602052604090205460ff16155b801561126657506001600160a01b0384165f9081526004602052604090205460ff16155b1561129757801561128e5761128e61128984611284846012546114d3565b6114d3565b6112fc565b6112974761146c565b505b80156112aa576112aa8430836114e7565b6112be84846112b98486611925565b6114e7565b50505050565b5f81848411156112e75760405162461bcd60e51b815260040161043d91906115f5565b505f6112f38486611925565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061134257611342611938565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611399573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113bd91906118c0565b816001815181106113d0576113d0611938565b6001600160a01b0392831660209182029290920101526013546113f69130911684610be1565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061142e9085905f9086903090429060040161194c565b5f604051808303815f87803b158015611445575f80fd5b505af1158015611457573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610951573d5f803e3d5ffd5b5f81836114c75760405162461bcd60e51b815260040161043d91906115f5565b505f6112f384866118db565b5f8183116114e15782610b58565b50919050565b6001600160a01b0383165f908152600160205260409020548111158061152457506001600160a01b0383165f9081526004602052604090205460ff165b6115705760405162461bcd60e51b815260206004820152601960248201527f45524332303a204e6f7420656e6f7567682062616c616e636500000000000000604482015260640161043d565b6001600160a01b038084165f9081526001602052604080822080548590039055918416815220546115a29082906118fa565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cf89085815260200190565b5f6020808352835180828501525f5b8181101561162057858101830151858201604001528201611604565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611654575f80fd5b50565b5f8060408385031215611668575f80fd5b823561167381611640565b946020939093013593505050565b5f805f60608486031215611693575f80fd5b833561169e81611640565b925060208401356116ae81611640565b929592945050506040919091013590565b5f602082840312156116cf575f80fd5b8135610b5881611640565b5f80604083850312156116eb575f80fd5b82356116f681611640565b9150602083013561170681611640565b809150509250929050565b5f60208284031215611721575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117ab57815f19048211156117915761179161175d565b8085161561179e57918102915b93841c9390800290611776565b509250929050565b5f826117c157506001610623565b816117cd57505f610623565b81600181146117e357600281146117ed57611809565b6001915050610623565b60ff8411156117fe576117fe61175d565b50506001821b610623565b5060208310610133831016604e8410600b841016171561182c575081810a610623565b6118368383611771565b805f19048211156118495761184961175d565b029392505050565b5f610b5860ff8416836117b3565b80820281158282048414176106235761062361175d565b5f805f60608486031215611888575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118b1575f80fd5b81518015158114610b58575f80fd5b5f602082840312156118d0575f80fd5b8151610b5881611640565b5f826118f557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156106235761062361175d565b5f6001820161191e5761191e61175d565b5060010190565b818103818111156106235761062361175d565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561199a5784516001600160a01b031683529383019391830191600101611975565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d61f60ab36e72ea4099aedbf3279f7a23794d7e00d3aaf024eb534b057d3bad564736f6c63430008150033

Deployed Bytecode Sourcemap

3915:10147:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12789:614;;;;;;;;;;;;;:::i;:::-;;5942:83;;;;;;;;;;-1:-1:-1;6012:5:0;;;;;;;;;;;;-1:-1:-1;;;6012:5:0;;;;5942:83;;;;;;;:::i;:::-;;;;;;;;6825:186;;;;;;;;;;-1:-1:-1;6825:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6825:186:0;1023:187:1;5137:56:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5137:56:0;1215:177:1;6219:95:0;;;;;;;;;;;;;:::i;7019:446::-;;;;;;;;;;-1:-1:-1;7019:446:0;;;;;:::i;:::-;;:::i;6128:83::-;;;;;;;;;;-1:-1:-1;4813:1:0;6128:83;;;2030:4:1;2018:17;;;2000:36;;1988:2;1973:18;6128:83:0;1858:184:1;12327:454:0;;;;;;;;;;;;;:::i;13693:366::-;;;;;;;;;;;;;:::i;4733:38::-;;;;;;;;;;-1:-1:-1;4733:38:0;;;;;;;;6322:119;;;;;;;;;;-1:-1:-1;6322:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6415:18:0;6388:7;6415:18;;;:9;:18;;;;;;;6322:119;2946:148;;;;;;;;;;;;;:::i;5391:38::-;;;;;;;;;;-1:-1:-1;5391:38:0;;;;-1:-1:-1;;;5391:38:0;;;;;;12018:201;;;;;;;;;;;;;:::i;5005:58::-;;;;;;;;;;;;;;;;2732:79;;;;;;;;;;-1:-1:-1;2770:7:0;2797:6;2732:79;;-1:-1:-1;;;;;2797:6:0;;;2445:51:1;;2433:2;2418:18;2732:79:0;2299:203:1;5070:60:0;;;;;;;;;;;;;;;;6033:87;;;;;;;;;;-1:-1:-1;6105:7:0;;;;;;;;;;;;-1:-1:-1;;;6105:7:0;;;;6033:87;;6449:192;;;;;;;;;;-1:-1:-1;6449:192:0;;;;;:::i;:::-;;:::i;4308:40::-;;;;;;;;;;-1:-1:-1;4308:40:0;;;;;;;;6649:168;;;;;;;;;;-1:-1:-1;6649:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6782:18:0;;;6755:7;6782:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6649:168;13411:237;;;;;;;;;;-1:-1:-1;13411:237:0;;;;;:::i;:::-;;:::i;12789:614::-;2859:6;;-1:-1:-1;;;;;2859:6:0;359:10;2859:22;2851:67;;;;-1:-1:-1;;;2851:67:0;;;;;;;:::i;:::-;;;;;;;;;12849:11:::1;::::0;-1:-1:-1;;;12849:11:0;::::1;;;12848:12;12840:48;;;::::0;-1:-1:-1;;;12840:48:0;;3648:2:1;12840:48:0::1;::::0;::::1;3630:21:1::0;3687:2;3667:18;;;3660:30;-1:-1:-1;;;3706:18:1;;;3699:53;3769:18;;12840:48:0::1;3446:347:1::0;12840:48:0::1;12909:20;12932:90;12975:36;13007:3;12975:27;12987:14;;4813:1;4870:2;:15;;;;:::i;:::-;4856:29;::::0;:11:::1;:29;:::i;:::-;12975:11:::0;::::1;:27::i;:::-;:31:::0;::::1;:36::i;:::-;12950:4;6388:7:::0;6415:18;;;:9;:18;;;;;;12932:28;::::1;:90::i;:::-;13035:15;::::0;:216:::1;::::0;;-1:-1:-1;;;13035:216:0;;13119:4:::1;13035:216;::::0;::::1;5827:34:1::0;5877:18;;;5870:34;;;13035:15:0::1;5920:18:1::0;;;5913:34;;;5963:18;;;5956:34;359:10:0;6006:19:1;;;5999:44;13225:15:0::1;6059:19:1::0;;;6052:35;13035:216:0;;12909:113;;-1:-1:-1;;;;;;13035:15:0;;::::1;::::0;:31:::1;::::0;13074:21:::1;::::0;5761:19:1;;;;;13035:216:0::1;::::0;;;;;;;;13074:21;13035:15;:216:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13271:13:0::1;::::0;13302:15:::1;::::0;13264:71:::1;::::0;-1:-1:-1;;;13264:71:0;;-1:-1:-1;;;;;13302:15:0;;::::1;13264:71;::::0;::::1;6583:51:1::0;-1:-1:-1;;6650:18:1;;;6643:34;13271:13:0;::::1;::::0;-1:-1:-1;13264:29:0::1;::::0;6556:18:1;;13264:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13348:11:0::1;:18:::0;;-1:-1:-1;;;;13377:18:0;-1:-1:-1;;;13377:18:0;;;12789:614::o;6825:186::-;6925:4;6942:39;359:10;6965:7;6974:6;6942:8;:39::i;:::-;-1:-1:-1;6999:4:0;6825:186;;;;;:::o;6219:95::-;6272:7;4870:15;4813:1;4870:2;:15;:::i;:::-;4856:29;;:11;:29;:::i;:::-;6292:14;;6219:95;:::o;7019:446::-;7151:4;7168:36;7178:6;7186:9;7197:6;7168:9;:36::i;:::-;7215:220;7238:6;359:10;7286:138;7342:6;7286:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7286:19:0;;;;;;:11;:19;;;;;;;;359:10;7286:33;;;;;;;;;;:37;:138::i;:::-;7215:8;:220::i;:::-;-1:-1:-1;7453:4:0;7019:446;;;;;:::o;12327:454::-;2859:6;;-1:-1:-1;;;;;2859:6:0;359:10;2859:22;2851:67;;;;-1:-1:-1;;;2851:67:0;;;;;;;:::i;:::-;12386:11:::1;::::0;-1:-1:-1;;;12386:11:0;::::1;;;12385:12;12377:48;;;::::0;-1:-1:-1;;;12377:48:0;;3648:2:1;12377:48:0::1;::::0;::::1;3630:21:1::0;3687:2;3667:18;;;3660:30;-1:-1:-1;;;3706:18:1;;;3699:53;3769:18;;12377:48:0::1;3446:347:1::0;12377:48:0::1;12438:15;:104:::0;;-1:-1:-1;;;;;;12438:104:0::1;12489:42;12438:104:::0;;::::1;::::0;;;12555:58:::1;::::0;12572:4:::1;::::0;4870:15:::1;4813:1;4870:2;:15;:::i;:::-;4856:29;::::0;:11:::1;:29;:::i;12555:58::-;12660:15;;;;;;;;;-1:-1:-1::0;;;;;12660:15:0::1;-1:-1:-1::0;;;;;12660:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12642:55:0::1;;12720:4;12740:15;;;;;;;;;-1:-1:-1::0;;;;;12740:15:0::1;-1:-1:-1::0;;;;;12740:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12642:131;::::0;-1:-1:-1;;;;;;12642:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7456:15:1;;;12642:131:0::1;::::0;::::1;7438:34:1::0;7508:15;;7488:18;;;7481:43;7373:18;;12642:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12626:13;:147:::0;;-1:-1:-1;;;;;;12626:147:0::1;-1:-1:-1::0;;;;;12626:147:0;;;::::1;::::0;;;::::1;::::0;;12327:454::o;13693:366::-;13759:10;;;;;-1:-1:-1;;;;;13759:10:0;359;-1:-1:-1;;;;;13743:26:0;;13735:35;;;;;;13822:4;13781:20;6415:18;;;:9;:18;;;;;;13843:16;;13839:79;;13876:30;13893:12;13876:16;:30::i;:::-;13949:21;13985:14;;13981:71;;14016:24;14029:10;14016:12;:24::i;:::-;13724:335;;13693:366::o;2946:148::-;2859:6;;-1:-1:-1;;;;;2859:6:0;359:10;2859:22;2851:67;;;;-1:-1:-1;;;2851:67:0;;;;;;;:::i;:::-;3053:1:::1;3037:6:::0;;3016:40:::1;::::0;-1:-1:-1;;;;;3037:6:0;;::::1;::::0;3016:40:::1;::::0;3053:1;;3016:40:::1;3084:1;3067:19:::0;;-1:-1:-1;;;;;;3067:19:0::1;::::0;;2946:148::o;12018:201::-;2859:6;;-1:-1:-1;;;;;2859:6:0;359:10;2859:22;2851:67;;;;-1:-1:-1;;;2851:67:0;;;;;;;:::i;:::-;4870:15:::1;4813:1;4870:2;:15;:::i;:::-;4856:29;::::0;:11:::1;:29;:::i;:::-;12072:12;:22:::0;4870:15:::1;4813:1;4870:2;:15;:::i;:::-;4856:29;::::0;:11:::1;:29;:::i;:::-;12105:14;:24:::0;12140:20:::1;:28:::0;;-1:-1:-1;;12140:28:0::1;::::0;;12184:27:::1;4870:15;4813:1;4870:2;:15;:::i;:::-;4856:29;::::0;:11:::1;:29;:::i;:::-;12184:27;::::0;1361:25:1;;;1349:2;1334:18;12184:27:0::1;;;;;;;12018:201::o:0;6449:192::-;6552:4;6569:42;359:10;6593:9;6604:6;6569:9;:42::i;13411:237::-;13491:10;;;;;-1:-1:-1;;;;;13491:10:0;359;-1:-1:-1;;;;;13475:26:0;;13467:35;;;;;;13532:12;;13521:7;:23;;:51;;;;;13559:13;;13548:7;:24;;13521:51;13513:60;;;;;;13584:12;:22;;;13617:13;:23;13411:237::o;1766:246::-;1824:7;1848:1;1853;1848:6;1844:47;;-1:-1:-1;1878:1:0;1871:8;;1844:47;1901:9;1913:5;1917:1;1913;:5;:::i;:::-;1901:17;-1:-1:-1;1946:1:0;1937:5;1941:1;1901:17;1937:5;:::i;:::-;:10;1929:56;;;;-1:-1:-1;;;1929:56:0;;7959:2:1;1929:56:0;;;7941:21:1;7998:2;7978:18;;;7971:30;8037:34;8017:18;;;8010:62;-1:-1:-1;;;8088:18:1;;;8081:31;8129:19;;1929:56:0;7757:397:1;1929:56:0;2003:1;1766:246;-1:-1:-1;;;1766:246:0:o;2020:132::-;2078:7;2105:39;2109:1;2112;2105:39;;;;;;;;;;;;;;;;;:3;:39::i;1390:136::-;1448:7;1475:43;1479:1;1482;1475:43;;;;;;;;;;;;;;;;;:3;:43::i;7473:335::-;-1:-1:-1;;;;;7566:19:0;;7558:68;;;;-1:-1:-1;;;7558:68:0;;8361:2:1;7558:68:0;;;8343:21:1;8400:2;8380:18;;;8373:30;8439:34;8419:18;;;8412:62;-1:-1:-1;;;8490:18:1;;;8483:34;8534:19;;7558:68:0;8159:400:1;7558:68:0;-1:-1:-1;;;;;7645:21:0;;7637:68;;;;-1:-1:-1;;;7637:68:0;;8766:2:1;7637:68:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:32;8937:19;;7637:68:0;8564:398:1;7637:68:0;-1:-1:-1;;;;;7716:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7768:32;;1361:25:1;;;7768:32:0;;1334:18:1;7768:32:0;;;;;;;;7473:335;;;:::o;8228:3173::-;-1:-1:-1;;;;;8316:18:0;;8308:68;;;;-1:-1:-1;;;8308:68:0;;9169:2:1;8308:68:0;;;9151:21:1;9208:2;9188:18;;;9181:30;9247:34;9227:18;;;9220:62;-1:-1:-1;;;9298:18:1;;;9291:35;9343:19;;8308:68:0;8967:401:1;8308:68:0;-1:-1:-1;;;;;8395:16:0;;8387:64;;;;-1:-1:-1;;;8387:64:0;;9575:2:1;8387:64:0;;;9557:21:1;9614:2;9594:18;;;9587:30;9653:34;9633:18;;;9626:62;-1:-1:-1;;;9704:18:1;;;9697:33;9747:19;;8387:64:0;9373:399:1;8387:64:0;8479:1;8470:6;:10;8462:64;;;;-1:-1:-1;;;8462:64:0;;9979:2:1;8462:64:0;;;9961:21:1;10018:2;9998:18;;;9991:30;10057:34;10037:18;;;10030:62;-1:-1:-1;;;10108:18:1;;;10101:39;10157:19;;8462:64:0;9777:405:1;8462:64:0;8539:17;2797:6;;-1:-1:-1;;;;;8575:15:0;;;2797:6;;8575:15;;;;:32;;-1:-1:-1;2770:7:0;2797:6;-1:-1:-1;;;;;8594:13:0;;;2797:6;;8594:13;;8575:32;8571:2662;;;8636:208;8840:3;8636:181;8700:15;;8688:9;;:27;8687:111;;8784:14;;8687:111;;;8744:12;;8687:111;8636:6;;:28;:181::i;:208::-;8865:20;;8624:220;;-1:-1:-1;8865:20:0;;8861:522;;;8946:15;;-1:-1:-1;;;;;8932:30:0;;;8946:15;;8932:30;;;;:83;;-1:-1:-1;9001:13:0;;-1:-1:-1;;;;;8987:28:0;;;9001:13;;8987:28;;8932:83;8906:462;;;9121:9;9092:39;;;;:28;:39;;;;;;9134:12;-1:-1:-1;9058:213:0;;;;-1:-1:-1;;;9058:213:0;;10389:2:1;9058:213:0;;;10371:21:1;10428:2;10408:18;;;10401:30;10467:34;10447:18;;;10440:62;10538:34;10518:18;;;10511:62;-1:-1:-1;;;10589:19:1;;;10582:40;10639:19;;9058:213:0;10187:477:1;9058:213:0;9323:9;9294:39;;;;:28;:39;;;;;9336:12;9294:54;;8906:462;9429:13;;-1:-1:-1;;;;;9421:21:0;;;9429:13;;9421:21;:60;;;;-1:-1:-1;9463:18:0;;;;9421:60;:104;;;;-1:-1:-1;;;;;;9503:22:0;;;;;;:18;:22;;;;;;;;9502:23;9421:104;9399:383;;;-1:-1:-1;;;;;9590:17:0;;;;;;:13;:17;;;;;;9610:15;-1:-1:-1;9560:128:0;;;;-1:-1:-1;;;9560:128:0;;10871:2:1;9560:128:0;;;10853:21:1;10910:2;10890:18;;;10883:30;-1:-1:-1;;;10929:18:1;;;10922:49;10988:18;;9560:128:0;10669:343:1;9560:128:0;9745:21;;9727:39;;-1:-1:-1;;;9745:21:0;;;;9727:15;:39;:::i;:::-;-1:-1:-1;;;;;9707:17:0;;;;;;:13;:17;;;;;:59;9399:383;9828:13;;-1:-1:-1;;;;;9820:21:0;;;9828:13;;9820:21;:72;;;;-1:-1:-1;9876:15:0;;-1:-1:-1;;;;;9862:30:0;;;9876:15;;9862:30;;9820:72;:116;;;;-1:-1:-1;;;;;;9914:22:0;;;;;;:18;:22;;;;;;;;9913:23;9820:116;9798:438;;;9989:12;;9979:6;:22;;9971:60;;;;-1:-1:-1;;;9971:60:0;;11349:2:1;9971:60:0;;;11331:21:1;11388:2;11368:18;;;11361:30;11427:27;11407:18;;;11400:55;11472:18;;9971:60:0;11147:349:1;9971:60:0;10106:14;;10096:6;10080:13;10090:2;-1:-1:-1;;;;;6415:18:0;6388:7;6415:18;;;:9;:18;;;;;;;6322:119;10080:13;:22;;;;:::i;:::-;:40;;10050:140;;;;-1:-1:-1;;;10050:140:0;;11703:2:1;10050:140:0;;;11685:21:1;11742:2;11722:18;;;11715:30;11781:28;11761:18;;;11754:56;11827:18;;10050:140:0;11501:350:1;10050:140:0;10209:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9798:438;10262:13;;-1:-1:-1;;;;;10256:19:0;;;10262:13;;10256:19;:44;;;;-1:-1:-1;;;;;;10279:21:0;;10295:4;10279:21;;10256:44;10252:332;;;10333:235;10564:3;10333:204;10405:16;;10393:9;;:28;10392:122;;10499:15;;10392:122;;;10454:13;;10333:6;;:32;:204::i;:235::-;10321:247;;10252:332;10649:4;10600:28;6415:18;;;:9;:18;;;;;;10692:11;;-1:-1:-1;;;10692:11:0;;;;:39;;;;-1:-1:-1;10725:6:0;;-1:-1:-1;;;10725:6:0;;;;10724:7;10692:39;:79;;;;-1:-1:-1;10758:13:0;;-1:-1:-1;;;;;10752:19:0;;;10758:13;;10752:19;10692:79;:130;;;;;10804:18;;10792:9;;:30;10692:130;:176;;;;-1:-1:-1;;;;;;10844:24:0;;;;;;:18;:24;;;;;;;;10843:25;10692:176;:220;;;;-1:-1:-1;;;;;;10890:22:0;;;;;;:18;:22;;;;;;;;10889:23;10692:220;10670:552;;;10950:24;;10947:188;;10998:117;11041:51;11045:6;11053:38;11057:20;11079:11;;11053:3;:38::i;:::-;11041:3;:51::i;:::-;10998:16;:117::i;:::-;11171:35;11184:21;11171:12;:35::i;:::-;8609:2624;8571:2662;11249:13;;11245:92;;11279:46;11294:4;11308;11315:9;11279:14;:46::i;:::-;11347;11362:4;11368:2;11373:18;11382:9;11373:6;:18;:::i;:::-;11347:14;:46::i;:::-;8297:3104;8228:3173;;;:::o;1534:224::-;1654:7;1690:12;1682:6;;;;1674:29;;;;-1:-1:-1;;;1674:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1714:9:0;1726:5;1730:1;1726;:5;:::i;:::-;1714:17;1534:224;-1:-1:-1;;;;;1534:224:0:o;11524:486::-;5522:6;:13;;-1:-1:-1;;;;5522:13:0;-1:-1:-1;;;5522:13:0;;;11627:16:::1;::::0;;11641:1:::1;11627:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11627:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11627:16:0::1;11603:40;;11672:4;11654;11659:1;11654:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11654:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11698:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11698:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11654:7;;11698:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11688:4;11693:1;11688:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11688:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11763:15:::1;::::0;11731:63:::1;::::0;11748:4:::1;::::0;11763:15:::1;11781:12:::0;11731:8:::1;:63::i;:::-;11805:15;::::0;:197:::1;::::0;-1:-1:-1;;;11805:197:0;;-1:-1:-1;;;;;11805:15:0;;::::1;::::0;:66:::1;::::0;:197:::1;::::0;11886:12;;11805:15:::1;::::0;11929:4;;11956::::1;::::0;11976:15:::1;::::0;11805:197:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5558:6:0;:14;;-1:-1:-1;;;;5558:14:0;;;-1:-1:-1;;;;11524:486:0:o;12227:92::-;12284:10;;:27;;:10;;;;-1:-1:-1;;;;;12284:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;2160:223;2280:7;2315:12;2308:5;2300:28;;;;-1:-1:-1;;;2300:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2339:9:0;2351:5;2355:1;2351;:5;:::i;11409:107::-;11466:7;11498:1;11494;:5;11493:15;;11507:1;11493:15;;;-1:-1:-1;11503:1:0;11409:107;-1:-1:-1;11409:107:0:o;7816:404::-;-1:-1:-1;;;;;7924:15:0;;;;;;:9;:15;;;;;;:25;-1:-1:-1;7924:25:0;;:53;;-1:-1:-1;;;;;;7953:24:0;;;;;;:18;:24;;;;;;;;7924:53;7902:128;;;;-1:-1:-1;;;7902:128:0;;13580:2:1;7902:128:0;;;13562:21:1;13619:2;13599:18;;;13592:30;13658:27;13638:18;;;13631:55;13703:18;;7902:128:0;13378:349:1;7902:128:0;-1:-1:-1;;;;;8086:15:0;;;;;;;:9;:15;;;;;;;;:24;;;8068:42;;8148:13;;;;;;;:22;;8104:6;;8148:22;:::i;:::-;-1:-1:-1;;;;;8132:13:0;;;;;;;:9;:13;;;;;;;:38;;;;8186:26;;;;;;;;;;8205:6;1361:25:1;;1349:2;1334:18;;1215:177;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:356::-;3287:2;3269:21;;;3306:18;;;3299:30;3365:34;3360:2;3345:18;;3338:62;3432:2;3417:18;;3085:356::o;3798:127::-;3859:10;3854:3;3850:20;3847:1;3840:31;3890:4;3887:1;3880:15;3914:4;3911:1;3904:15;3930:422;4019:1;4062:5;4019:1;4076:270;4097:7;4087:8;4084:21;4076:270;;;4156:4;4152:1;4148:6;4144:17;4138:4;4135:27;4132:53;;;4165:18;;:::i;:::-;4215:7;4205:8;4201:22;4198:55;;;4235:16;;;;4198:55;4314:22;;;;4274:15;;;;4076:270;;;4080:3;3930:422;;;;;:::o;4357:806::-;4406:5;4436:8;4426:80;;-1:-1:-1;4477:1:1;4491:5;;4426:80;4525:4;4515:76;;-1:-1:-1;4562:1:1;4576:5;;4515:76;4607:4;4625:1;4620:59;;;;4693:1;4688:130;;;;4600:218;;4620:59;4650:1;4641:10;;4664:5;;;4688:130;4725:3;4715:8;4712:17;4709:43;;;4732:18;;:::i;:::-;-1:-1:-1;;4788:1:1;4774:16;;4803:5;;4600:218;;4902:2;4892:8;4889:16;4883:3;4877:4;4874:13;4870:36;4864:2;4854:8;4851:16;4846:2;4840:4;4837:12;4833:35;4830:77;4827:159;;;-1:-1:-1;4939:19:1;;;4971:5;;4827:159;5018:34;5043:8;5037:4;5018:34;:::i;:::-;5088:6;5084:1;5080:6;5076:19;5067:7;5064:32;5061:58;;;5099:18;;:::i;:::-;5137:20;;4357:806;-1:-1:-1;;;4357:806:1:o;5168:140::-;5226:5;5255:47;5296:4;5286:8;5282:19;5276:4;5255:47;:::i;5313:168::-;5386:9;;;5417;;5434:15;;;5428:22;;5414:37;5404:71;;5455:18;;:::i;6098:306::-;6186:6;6194;6202;6255:2;6243:9;6234:7;6230:23;6226:32;6223:52;;;6271:1;6268;6261:12;6223:52;6300:9;6294:16;6284:26;;6350:2;6339:9;6335:18;6329:25;6319:35;;6394:2;6383:9;6379:18;6373:25;6363:35;;6098:306;;;;;:::o;6688:277::-;6755:6;6808:2;6796:9;6787:7;6783:23;6779:32;6776:52;;;6824:1;6821;6814:12;6776:52;6856:9;6850:16;6909:5;6902:13;6895:21;6888:5;6885:32;6875:60;;6931:1;6928;6921:12;6970:251;7040:6;7093:2;7081:9;7072:7;7068:23;7064:32;7061:52;;;7109:1;7106;7099:12;7061:52;7141:9;7135:16;7160:31;7185:5;7160:31;:::i;7535:217::-;7575:1;7601;7591:132;;7645:10;7640:3;7636:20;7633:1;7626:31;7680:4;7677:1;7670:15;7708:4;7705:1;7698:15;7591:132;-1:-1:-1;7737:9:1;;7535:217::o;11017:125::-;11082:9;;;11103:10;;;11100:36;;;11116:18;;:::i;11856:135::-;11895:3;11916:17;;;11913:43;;11936:18;;:::i;:::-;-1:-1:-1;11983:1:1;11972:13;;11856:135::o;11996:128::-;12063:9;;;12084:11;;;12081:37;;;12098:18;;:::i;12261:127::-;12322:10;12317:3;12313:20;12310:1;12303:31;12353:4;12350:1;12343:15;12377:4;12374:1;12367:15;12393:980;12655:4;12703:3;12692:9;12688:19;12734:6;12723:9;12716:25;12760:2;12798:6;12793:2;12782:9;12778:18;12771:34;12841:3;12836:2;12825:9;12821:18;12814:31;12865:6;12900;12894:13;12931:6;12923;12916:22;12969:3;12958:9;12954:19;12947:26;;13008:2;13000:6;12996:15;12982:29;;13029:1;13039:195;13053:6;13050:1;13047:13;13039:195;;;13118:13;;-1:-1:-1;;;;;13114:39:1;13102:52;;13209:15;;;;13174:12;;;;13150:1;13068:9;13039:195;;;-1:-1:-1;;;;;;;13290:32:1;;;;13285:2;13270:18;;13263:60;-1:-1:-1;;;13354:3:1;13339:19;13332:35;13251:3;12393:980;-1:-1:-1;;;12393:980:1:o

Swarm Source

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