ETH Price: $3,254.05 (+2.61%)
Gas: 9 Gwei

Token

Selfie Dog (SELFIE)
 

Overview

Max Total Supply

1,000,000,000 SELFIE

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
12,119,451.875486738 SELFIE

Value
$0.00
0x201b285c5f19fd084d130966ff5b9a3114e8454e
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:
SELFIE

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-06
*/

// SPDX-License-Identifier: MIT

/**
Web:  https://selfiedog.lol
X:    https://x.com/selfiedog_eth
Tg:   https://t.me/selfie_dog_portal
**/

pragma solidity 0.8.4;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

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

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

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

contract SELFIE 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;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Selfie Dog";
    string private constant _symbol = unicode"SELFIE";
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 80 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals;

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

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

    constructor() {
        _taxWallet = payable(0x5B5fB9b9BD3fC3e0a616CCdCd13BE3A07917D979);
        _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 _tokenTransfer(address from, address to, uint256 selfieAmount) internal {       
        uint256 taxFee = 0;
        uint256 tAmount = 0;
        uint256 transferAmount = 0;

        if (!_isExcludedFromFee[from]) {
            taxFee = selfieAmount
            .mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax)
            .div(100);
            if (to == uniswapV2Pair && from != address(this)) {
                taxFee = selfieAmount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }
            tAmount = selfieAmount;
            transferAmount = selfieAmount - taxFee;
        }else{ transferAmount = selfieAmount; }

        if (taxFee > 0) {
            _balances[address(this)] = _balances[address(this)] + taxFee;
            emit Transfer(from, address(this), taxFee);
        }

        _balances[from] = _balances[from] - tAmount;
        _balances[to] = _balances[to] + transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 selfieAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(selfieAmount > 0, "Transfer amount must be greater than zero");
        
        if(!tradingOpen){
            require(_isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading has not enabled!");
        }

        if (!swapEnabled || inSwap) {
            _balances[from] = _balances[from] - selfieAmount;
            _balances[to] = _balances[to] + selfieAmount;
            emit Transfer(from, to, selfieAmount);
            return;
        }

        if (from != owner() && to != owner()) {
            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 &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(selfieAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + selfieAmount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

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

        _tokenTransfer(from, to, selfieAmount);
    }

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

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

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

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

    function addLiquidityETH() 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(uint).max);
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function recoverStuck() external onlyOwner {
        sendETHToFee(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"nonpayable","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverStuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"}]

60806040526006805460ff191681556023600781905560085560006009818155600a8281556014600b819055600c55600d93909355600e91909155620000459162000293565b62000055906301312d0062000361565b600f55620000666009600a62000293565b62000076906301312d0062000361565b601055620000876009600a62000293565b6200009490605062000361565b601155620000a56009600a62000293565b620000b4906298968062000361565b6012556014805461ffff60a81b19169055348015620000d257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b031916745b5fb9b9bd3fc3e0a616ccdcd13be3a07917d979001790556200014a6009600a62000293565b6200015a90633b9aca0062000361565b336000908152600160208190526040822092909255600390620001856000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001e93390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002236009600a62000293565b6200023390633b9aca0062000361565b60405190815260200160405180910390a362000399565b600181815b808511156200028b5781600019048211156200026f576200026f62000383565b808516156200027d57918102915b93841c93908002906200024f565b509250929050565b6000620002a460ff841683620002ab565b9392505050565b600082620002bc575060016200035b565b81620002cb575060006200035b565b8160018114620002e45760028114620002ef576200030f565b60019150506200035b565b60ff84111562000303576200030362000383565b50506001821b6200035b565b5060208310610133831016604e8410600b841016171562000334575081810a6200035b565b6200034083836200024a565b806000190482111562000357576200035762000383565b0290505b92915050565b60008160001904831182151516156200037e576200037e62000383565b500290565b634e487b7160e01b600052601160045260246000fd5b611a4a80620003a96000396000f3fe6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed14610333578063c876d0b914610349578063c9567bf914610363578063dd62ed3e14610378578063ed995307146103be57600080fd5b80637d1db4a5146102905780638da5cb5b146102a65780638f9a55c0146102ce57806395d89b41146102e4578063a9059cbb1461031357600080fd5b8063313ce567116100e7578063313ce567146101fd5780635f3155b31461021957806370a0823114610230578063715018a614610266578063751039fc1461027b57600080fd5b806306fdde031461012f578063095ea7b3146101745780630faee56f146101a457806318160ddd146101c857806323b872dd146101dd57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600a81526953656c66696520446f6760b01b60208201525b60405161016b9190611752565b60405180910390f35b34801561018057600080fd5b5061019461018f3660046116da565b6103d3565b604051901515815260200161016b565b3480156101b057600080fd5b506101ba60125481565b60405190815260200161016b565b3480156101d457600080fd5b506101ba6103ea565b3480156101e957600080fd5b506101946101f836600461169a565b61040b565b34801561020957600080fd5b506040516009815260200161016b565b34801561022557600080fd5b5061022e610474565b005b34801561023c57600080fd5b506101ba61024b36600461162a565b6001600160a01b031660009081526001602052604090205490565b34801561027257600080fd5b5061022e6104b2565b34801561028757600080fd5b5061022e610526565b34801561029c57600080fd5b506101ba600f5481565b3480156102b257600080fd5b506000546040516001600160a01b03909116815260200161016b565b3480156102da57600080fd5b506101ba60105481565b3480156102f057600080fd5b5060408051808201909152600681526553454c46494560d01b602082015261015e565b34801561031f57600080fd5b5061019461032e3660046116da565b6105e2565b34801561033f57600080fd5b506101ba60115481565b34801561035557600080fd5b506006546101949060ff1681565b34801561036f57600080fd5b5061022e6105ef565b34801561038457600080fd5b506101ba610393366004611662565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103ca57600080fd5b5061022e61068c565b60006103e0338484610a22565b5060015b92915050565b60006103f86009600a6118c5565b61040690633b9aca00611970565b905090565b6000610418848484610b47565b61046a8433610465856040518060600160405280602881526020016119ed602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611117565b610a22565b5060019392505050565b6000546001600160a01b031633146104a75760405162461bcd60e51b815260040161049e906117a5565b60405180910390fd5b6104b047611151565b565b6000546001600160a01b031633146104dc5760405162461bcd60e51b815260040161049e906117a5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105505760405162461bcd60e51b815260040161049e906117a5565b61055c6009600a6118c5565b61056a90633b9aca00611970565b600f556105796009600a6118c5565b61058790633b9aca00611970565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c16009600a6118c5565b6105cf90633b9aca00611970565b60405190815260200160405180910390a1565b60006103e0338484610b47565b6000546001600160a01b031633146106195760405162461bcd60e51b815260040161049e906117a5565b601454600160a01b900460ff16156106735760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161049e565b6014805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146106b65760405162461bcd60e51b815260040161049e906117a5565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ff9030906106f16009600a6118c5565b61046590633b9aca00611970565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561074d57600080fd5b505afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107859190611646565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107e257600080fd5b505afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190611646565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561086257600080fd5b505af1158015610876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089a9190611646565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306108e2816001600160a01b031660009081526001602052604090205490565b6000806108f76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561095a57600080fd5b505af115801561096e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109939190611725565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109e757600080fd5b505af11580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190611705565b50565b6001600160a01b038316610a845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049e565b6001600160a01b038216610ae55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049e565b6001600160a01b038216610c0d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049e565b60008111610c6f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049e565b601454600160a01b900460ff16610d0b576001600160a01b03831660009081526003602052604090205460ff1680610cbf57506001600160a01b03821660009081526003602052604090205460ff165b610d0b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720686173206e6f7420656e61626c6564210000000000000000604482015260640161049e565b601454600160b01b900460ff161580610d2d5750601454600160a81b900460ff165b15610dda576001600160a01b038316600090815260016020526040902054610d5690829061198f565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610d8690829061184a565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b3a9085815260200190565b6000546001600160a01b03848116911614801590610e0657506000546001600160a01b03838116911614155b156111075760065460ff1615610ef0576013546001600160a01b03838116911614801590610e4257506014546001600160a01b03838116911614155b15610ef057326000908152600560205260409020544311610edd5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161049e565b3260009081526005602052604090204390555b6014546001600160a01b038481169116148015610f1b57506013546001600160a01b03838116911614155b8015610f4057506001600160a01b03821660009081526003602052604090205460ff16155b1561102857600f54811115610f975760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161049e565b60105481610fba846001600160a01b031660009081526001602052604090205490565b610fc4919061184a565b11156110125760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161049e565b600e8054906000611022836119a6565b91905055505b30600090815260016020526040902054601454600160a81b900460ff1615801561105f57506014546001600160a01b038481169116145b80156110745750601454600160b01b900460ff165b80156110835750600d54600e54115b80156110a857506001600160a01b03841660009081526003602052604090205460ff16155b80156110cd57506001600160a01b03831660009081526003602052604090205460ff16155b15611105576011548111156110f9576110f96110f4836110ef84601254611193565b611193565b6111ab565b4761110347611151565b505b505b611112838383611350565b505050565b6000818484111561113b5760405162461bcd60e51b815260040161049e9190611752565b506000611148848661198f565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561118f573d6000803e3d6000fd5b5050565b60008183116111a257826111a4565b815b9392505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061120157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561125557600080fd5b505afa158015611269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128d9190611646565b816001815181106112ae57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526013546112d49130911684610a22565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061130d9085906000908690309042906004016117da565b600060405180830381600087803b15801561132757600080fd5b505af115801561133b573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6001600160a01b0383166000908152600360205260408120548190819060ff1661140a576113a0606461139a600b54600e541161138f57600754611393565b6009545b8790611540565b906115bf565b6014549093506001600160a01b0386811691161480156113c957506001600160a01b0386163014155b156113f6576113f3606461139a600c54600e54116113e957600854611393565b600a548790611540565b92505b839150611403838361198f565b905061140d565b50825b8215611488573060009081526001602052604090205461142e90849061184a565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061147f9087815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546114ac90839061198f565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546114dc90829061184a565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115309085815260200190565b60405180910390a3505050505050565b60008261154f575060006103e4565b600061155b8385611970565b9050826115688583611862565b146111a45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161049e565b60006111a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361161d5760405162461bcd60e51b815260040161049e9190611752565b5060006111488486611862565b60006020828403121561163b578081fd5b81356111a4816119d7565b600060208284031215611657578081fd5b81516111a4816119d7565b60008060408385031215611674578081fd5b823561167f816119d7565b9150602083013561168f816119d7565b809150509250929050565b6000806000606084860312156116ae578081fd5b83356116b9816119d7565b925060208401356116c9816119d7565b929592945050506040919091013590565b600080604083850312156116ec578182fd5b82356116f7816119d7565b946020939093013593505050565b600060208284031215611716578081fd5b815180151581146111a4578182fd5b600080600060608486031215611739578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561177e57858101830151858201604001528201611762565b8181111561178f5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118295784516001600160a01b031683529383019391830191600101611804565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561185d5761185d6119c1565b500190565b60008261187d57634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156118bd5781600019048211156118a3576118a36119c1565b808516156118b057918102915b93841c9390800290611887565b509250929050565b60006111a460ff8416836000826118de575060016103e4565b816118eb575060006103e4565b8160018114611901576002811461190b57611927565b60019150506103e4565b60ff84111561191c5761191c6119c1565b50506001821b6103e4565b5060208310610133831016604e8410600b841016171561194a575081810a6103e4565b6119548383611882565b8060001904821115611968576119686119c1565b029392505050565b600081600019048311821515161561198a5761198a6119c1565b500290565b6000828210156119a1576119a16119c1565b500390565b60006000198214156119ba576119ba6119c1565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610a1f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122057cf62e2e264f13ec1fbcfd92e961ab11fd5f3a3cb778c75fff07fcb3137c5f464736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed14610333578063c876d0b914610349578063c9567bf914610363578063dd62ed3e14610378578063ed995307146103be57600080fd5b80637d1db4a5146102905780638da5cb5b146102a65780638f9a55c0146102ce57806395d89b41146102e4578063a9059cbb1461031357600080fd5b8063313ce567116100e7578063313ce567146101fd5780635f3155b31461021957806370a0823114610230578063715018a614610266578063751039fc1461027b57600080fd5b806306fdde031461012f578063095ea7b3146101745780630faee56f146101a457806318160ddd146101c857806323b872dd146101dd57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600a81526953656c66696520446f6760b01b60208201525b60405161016b9190611752565b60405180910390f35b34801561018057600080fd5b5061019461018f3660046116da565b6103d3565b604051901515815260200161016b565b3480156101b057600080fd5b506101ba60125481565b60405190815260200161016b565b3480156101d457600080fd5b506101ba6103ea565b3480156101e957600080fd5b506101946101f836600461169a565b61040b565b34801561020957600080fd5b506040516009815260200161016b565b34801561022557600080fd5b5061022e610474565b005b34801561023c57600080fd5b506101ba61024b36600461162a565b6001600160a01b031660009081526001602052604090205490565b34801561027257600080fd5b5061022e6104b2565b34801561028757600080fd5b5061022e610526565b34801561029c57600080fd5b506101ba600f5481565b3480156102b257600080fd5b506000546040516001600160a01b03909116815260200161016b565b3480156102da57600080fd5b506101ba60105481565b3480156102f057600080fd5b5060408051808201909152600681526553454c46494560d01b602082015261015e565b34801561031f57600080fd5b5061019461032e3660046116da565b6105e2565b34801561033f57600080fd5b506101ba60115481565b34801561035557600080fd5b506006546101949060ff1681565b34801561036f57600080fd5b5061022e6105ef565b34801561038457600080fd5b506101ba610393366004611662565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103ca57600080fd5b5061022e61068c565b60006103e0338484610a22565b5060015b92915050565b60006103f86009600a6118c5565b61040690633b9aca00611970565b905090565b6000610418848484610b47565b61046a8433610465856040518060600160405280602881526020016119ed602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611117565b610a22565b5060019392505050565b6000546001600160a01b031633146104a75760405162461bcd60e51b815260040161049e906117a5565b60405180910390fd5b6104b047611151565b565b6000546001600160a01b031633146104dc5760405162461bcd60e51b815260040161049e906117a5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105505760405162461bcd60e51b815260040161049e906117a5565b61055c6009600a6118c5565b61056a90633b9aca00611970565b600f556105796009600a6118c5565b61058790633b9aca00611970565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c16009600a6118c5565b6105cf90633b9aca00611970565b60405190815260200160405180910390a1565b60006103e0338484610b47565b6000546001600160a01b031633146106195760405162461bcd60e51b815260040161049e906117a5565b601454600160a01b900460ff16156106735760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161049e565b6014805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b031633146106b65760405162461bcd60e51b815260040161049e906117a5565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ff9030906106f16009600a6118c5565b61046590633b9aca00611970565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561074d57600080fd5b505afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107859190611646565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107e257600080fd5b505afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190611646565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561086257600080fd5b505af1158015610876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089a9190611646565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d71947306108e2816001600160a01b031660009081526001602052604090205490565b6000806108f76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561095a57600080fd5b505af115801561096e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109939190611725565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109e757600080fd5b505af11580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190611705565b50565b6001600160a01b038316610a845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049e565b6001600160a01b038216610ae55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049e565b6001600160a01b038216610c0d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049e565b60008111610c6f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049e565b601454600160a01b900460ff16610d0b576001600160a01b03831660009081526003602052604090205460ff1680610cbf57506001600160a01b03821660009081526003602052604090205460ff165b610d0b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720686173206e6f7420656e61626c6564210000000000000000604482015260640161049e565b601454600160b01b900460ff161580610d2d5750601454600160a81b900460ff165b15610dda576001600160a01b038316600090815260016020526040902054610d5690829061198f565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610d8690829061184a565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b3a9085815260200190565b6000546001600160a01b03848116911614801590610e0657506000546001600160a01b03838116911614155b156111075760065460ff1615610ef0576013546001600160a01b03838116911614801590610e4257506014546001600160a01b03838116911614155b15610ef057326000908152600560205260409020544311610edd5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161049e565b3260009081526005602052604090204390555b6014546001600160a01b038481169116148015610f1b57506013546001600160a01b03838116911614155b8015610f4057506001600160a01b03821660009081526003602052604090205460ff16155b1561102857600f54811115610f975760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161049e565b60105481610fba846001600160a01b031660009081526001602052604090205490565b610fc4919061184a565b11156110125760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161049e565b600e8054906000611022836119a6565b91905055505b30600090815260016020526040902054601454600160a81b900460ff1615801561105f57506014546001600160a01b038481169116145b80156110745750601454600160b01b900460ff165b80156110835750600d54600e54115b80156110a857506001600160a01b03841660009081526003602052604090205460ff16155b80156110cd57506001600160a01b03831660009081526003602052604090205460ff16155b15611105576011548111156110f9576110f96110f4836110ef84601254611193565b611193565b6111ab565b4761110347611151565b505b505b611112838383611350565b505050565b6000818484111561113b5760405162461bcd60e51b815260040161049e9190611752565b506000611148848661198f565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561118f573d6000803e3d6000fd5b5050565b60008183116111a257826111a4565b815b9392505050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061120157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561125557600080fd5b505afa158015611269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128d9190611646565b816001815181106112ae57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526013546112d49130911684610a22565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061130d9085906000908690309042906004016117da565b600060405180830381600087803b15801561132757600080fd5b505af115801561133b573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6001600160a01b0383166000908152600360205260408120548190819060ff1661140a576113a0606461139a600b54600e541161138f57600754611393565b6009545b8790611540565b906115bf565b6014549093506001600160a01b0386811691161480156113c957506001600160a01b0386163014155b156113f6576113f3606461139a600c54600e54116113e957600854611393565b600a548790611540565b92505b839150611403838361198f565b905061140d565b50825b8215611488573060009081526001602052604090205461142e90849061184a565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061147f9087815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546114ac90839061198f565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546114dc90829061184a565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115309085815260200190565b60405180910390a3505050505050565b60008261154f575060006103e4565b600061155b8385611970565b9050826115688583611862565b146111a45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161049e565b60006111a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361161d5760405162461bcd60e51b815260040161049e9190611752565b5060006111488486611862565b60006020828403121561163b578081fd5b81356111a4816119d7565b600060208284031215611657578081fd5b81516111a4816119d7565b60008060408385031215611674578081fd5b823561167f816119d7565b9150602083013561168f816119d7565b809150509250929050565b6000806000606084860312156116ae578081fd5b83356116b9816119d7565b925060208401356116c9816119d7565b929592945050506040919091013590565b600080604083850312156116ec578182fd5b82356116f7816119d7565b946020939093013593505050565b600060208284031215611716578081fd5b815180151581146111a4578182fd5b600080600060608486031215611739578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561177e57858101830151858201604001528201611762565b8181111561178f5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118295784516001600160a01b031683529383019391830191600101611804565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561185d5761185d6119c1565b500190565b60008261187d57634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156118bd5781600019048211156118a3576118a36119c1565b808516156118b057918102915b93841c9390800290611887565b509250929050565b60006111a460ff8416836000826118de575060016103e4565b816118eb575060006103e4565b8160018114611901576002811461190b57611927565b60019150506103e4565b60ff84111561191c5761191c6119c1565b50506001821b6103e4565b5060208310610133831016604e8410600b841016171561194a575081810a6103e4565b6119548383611882565b8060001904821115611968576119686119c1565b029392505050565b600081600019048311821515161561198a5761198a6119c1565b500290565b6000828210156119a1576119a16119c1565b500390565b60006000198214156119ba576119ba6119c1565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610a1f57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122057cf62e2e264f13ec1fbcfd92e961ab11fd5f3a3cb778c75fff07fcb3137c5f464736f6c63430008040033

Deployed Bytecode Sourcemap

3844:9644:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5827:83;;;;;;;;;;-1:-1:-1;5897:5:0;;;;;;;;;;;;-1:-1:-1;;;5897:5:0;;;;5827:83;;;;;;;:::i;:::-;;;;;;;;6710:186;;;;;;;;;;-1:-1:-1;6710:186:0;;;;;:::i;:::-;;:::i;:::-;;;3942:14:1;;3935:22;3917:41;;3905:2;3890:18;6710:186:0;3872:92:1;5068:55:0;;;;;;;;;;;;;;;;;;;9410:25:1;;;9398:2;9383:18;5068:55:0;9365:76:1;6104:95:0;;;;;;;;;;;;;:::i;6904:446::-;;;;;;;;;;-1:-1:-1;6904:446:0;;;;;:::i;:::-;;:::i;6013:83::-;;;;;;;;;;-1:-1:-1;6013:83:0;;4686:1;10576:36:1;;10564:2;10549:18;6013:83:0;10531:87:1;13388:97:0;;;;;;;;;;;;;:::i;:::-;;6207:119;;;;;;;;;;-1:-1:-1;6207:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6300:18:0;6273:7;6300:18;;;:9;:18;;;;;;;6207:119;3689:148;;;;;;;;;;;;;:::i;12022:201::-;;;;;;;;;;;;;:::i;4878:56::-;;;;;;;;;;;;;;;;3475:79;;;;;;;;;;-1:-1:-1;3513:7:0;3540:6;3475:79;;-1:-1:-1;;;;;3540:6:0;;;2515:51:1;;2503:2;2488:18;3475:79:0;2470:102:1;4941:58:0;;;;;;;;;;;;;;;;5918:87;;;;;;;;;;-1:-1:-1;5990:7:0;;;;;;;;;;;;-1:-1:-1;;;5990:7:0;;;;5918:87;;6334:192;;;;;;;;;;-1:-1:-1;6334:192:0;;;;;:::i;:::-;;:::i;5006:55::-;;;;;;;;;;;;;;;;4227:40;;;;;;;;;;-1:-1:-1;4227:40:0;;;;;;;;13166:177;;;;;;;;;;;;;:::i;6534:168::-;;;;;;;;;;-1:-1:-1;6534:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6667:18:0;;;6640:7;6667:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6534:168;12446:712;;;;;;;;;;;;;:::i;6710:186::-;6810:4;6827:39;1083:10;6850:7;6859:6;6827:8;:39::i;:::-;-1:-1:-1;6884:4:0;6710:186;;;;;:::o;6104:95::-;6157:7;4742:15;4686:1;4742:2;:15;:::i;:::-;4729:28;;:10;:28;:::i;:::-;6177:14;;6104:95;:::o;6904:446::-;7036:4;7053:36;7063:6;7071:9;7082:6;7053:9;:36::i;:::-;7100:220;7123:6;1083:10;7171:138;7227:6;7171:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7171:19:0;;;;;;:11;:19;;;;;;;;1083:10;7171:33;;;;;;;;;;:37;:138::i;:::-;7100:8;:220::i;:::-;-1:-1:-1;7338:4:0;6904:446;;;;;:::o;13388:97::-;3602:6;;-1:-1:-1;;;;;3602:6:0;1083:10;3602:22;3594:67;;;;-1:-1:-1;;;3594:67:0;;;;;;;:::i;:::-;;;;;;;;;13442:35:::1;13455:21;13442:12;:35::i;:::-;13388:97::o:0;3689:148::-;3602:6;;-1:-1:-1;;;;;3602:6:0;1083:10;3602:22;3594:67;;;;-1:-1:-1;;;3594:67:0;;;;;;;:::i;:::-;3796:1:::1;3780:6:::0;;3759:40:::1;::::0;-1:-1:-1;;;;;3780:6:0;;::::1;::::0;3759:40:::1;::::0;3796:1;;3759:40:::1;3827:1;3810:19:::0;;-1:-1:-1;;;;;;3810:19:0::1;::::0;;3689:148::o;12022:201::-;3602:6;;-1:-1:-1;;;;;3602:6:0;1083:10;3602:22;3594:67;;;;-1:-1:-1;;;3594:67:0;;;;;;;:::i;:::-;4742:15:::1;4686:1;4742:2;:15;:::i;:::-;4729:28;::::0;:10:::1;:28;:::i;:::-;12076:12;:22:::0;4742:15:::1;4686:1;4742:2;:15;:::i;:::-;4729:28;::::0;:10:::1;:28;:::i;:::-;12109:14;:24:::0;12144:20:::1;:28:::0;;-1:-1:-1;;12144:28:0::1;::::0;;12188:27:::1;4742:15;4686:1;-1:-1:-1::0;4742:15:0::1;:::i;:::-;4729:28;::::0;:10:::1;:28;:::i;:::-;12188:27;::::0;9410:25:1;;;9398:2;9383:18;12188:27:0::1;;;;;;;12022:201::o:0;6334:192::-;6437:4;6454:42;1083:10;6478:9;6489:6;6454:9;:42::i;13166:177::-;3602:6;;-1:-1:-1;;;;;3602:6:0;1083:10;3602:22;3594:67;;;;-1:-1:-1;;;3594:67:0;;;;;;;:::i;:::-;13228:11:::1;::::0;-1:-1:-1;;;13228:11:0;::::1;;;13227:12;13219:48;;;::::0;-1:-1:-1;;;13219:48:0;;9114:2:1;13219:48:0::1;::::0;::::1;9096:21:1::0;9153:2;9133:18;;;9126:30;9192:25;9172:18;;;9165:53;9235:18;;13219:48:0::1;9086:173:1::0;13219:48:0::1;13288:11;:18:::0;;-1:-1:-1;;;;13317:18:0;-1:-1:-1;;;13317:18:0;;;13166:177::o;12446:712::-;3602:6;;-1:-1:-1;;;;;3602:6:0;1083:10;3602:22;3594:67;;;;-1:-1:-1;;;3594:67:0;;;;;;;:::i;:::-;12503:15:::1;:104:::0;;-1:-1:-1;;;;;;12503:104:0::1;12554:42;12503:104:::0;;::::1;::::0;;;12618:58:::1;::::0;12635:4:::1;::::0;4742:15:::1;4686:1;4742:2;:15;:::i;:::-;4729:28;::::0;:10:::1;:28;:::i;12618:58::-;12721:15;;;;;;;;;-1:-1:-1::0;;;;;12721:15:0::1;-1:-1:-1::0;;;;;12721:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12703:55:0::1;;12781:4;12801:15;;;;;;;;;-1:-1:-1::0;;;;;12801:15:0::1;-1:-1:-1::0;;;;;12801:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12703:131;::::0;-1:-1:-1;;;;;;12703:131:0::1;::::0;;;;;;-1:-1:-1;;;;;2807:15:1;;;12703:131:0::1;::::0;::::1;2789:34:1::0;2859:15;;2839:18;;;2832:43;2724:18;;12703:131:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12687:13;:147:::0;;-1:-1:-1;;;;;12687:147:0;;::::1;-1:-1:-1::0;;;;;;12687:147:0;;::::1;;::::0;;12845:15:::1;::::0;::::1;:31;12884:21;12929:4;12949:24;12929:4:::0;-1:-1:-1;;;;;6300:18:0;6273:7;6300:18;;;:9;:18;;;;;;;6207:119;12949:24:::1;12988:1;13004::::0;13020:7:::1;3513::::0;3540:6;-1:-1:-1;;;;;3540:6:0;;3475:79;13020:7:::1;12845:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12845:223:0;;;-1:-1:-1;;;;;3524:15:1;;;12845:223:0::1;::::0;::::1;3506:34:1::0;3556:18;;;3549:34;;;;3599:18;;;3592:34;;;;3642:18;;;3635:34;3706:15;;;3685:19;;;3678:44;13042:15:0::1;3738:19:1::0;;;3731:35;3440:19;;12845:223:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13086:13:0::1;::::0;13117:15:::1;::::0;13079:71:::1;::::0;-1:-1:-1;;;13079:71:0;;-1:-1:-1;;;;;13117:15:0;;::::1;13079:71;::::0;::::1;3060:51:1::0;-1:-1:-1;;3127:18:1;;;3120:34;13086:13:0;::::1;::::0;-1:-1:-1;13079:29:0::1;::::0;3033:18:1;;13079:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12446:712::o:0;7358:335::-;-1:-1:-1;;;;;7451:19:0;;7443:68;;;;-1:-1:-1;;;7443:68:0;;8709:2:1;7443:68:0;;;8691:21:1;8748:2;8728:18;;;8721:30;8787:34;8767:18;;;8760:62;-1:-1:-1;;;8838:18:1;;;8831:34;8882:19;;7443:68:0;8681:226:1;7443:68:0;-1:-1:-1;;;;;7530:21:0;;7522:68;;;;-1:-1:-1;;;7522:68:0;;5537:2:1;7522:68:0;;;5519:21:1;5576:2;5556:18;;;5549:30;5615:34;5595:18;;;5588:62;-1:-1:-1;;;5666:18:1;;;5659:32;5708:19;;7522:68:0;5509:224:1;7522:68:0;-1:-1:-1;;;;;7601:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7653:32;;9410:25:1;;;7653:32:0;;9383:18:1;7653:32:0;;;;;;;;7358:335;;;:::o;8908:2612::-;-1:-1:-1;;;;;9002:18:0;;8994:68;;;;-1:-1:-1;;;8994:68:0;;7948:2:1;8994:68:0;;;7930:21:1;7987:2;7967:18;;;7960:30;8026:34;8006:18;;;7999:62;-1:-1:-1;;;8077:18:1;;;8070:35;8122:19;;8994:68:0;7920:227:1;8994:68:0;-1:-1:-1;;;;;9081:16:0;;9073:64;;;;-1:-1:-1;;;9073:64:0;;4779:2:1;9073:64:0;;;4761:21:1;4818:2;4798:18;;;4791:30;4857:34;4837:18;;;4830:62;-1:-1:-1;;;4908:18:1;;;4901:33;4951:19;;9073:64:0;4751:225:1;9073:64:0;9171:1;9156:12;:16;9148:70;;;;-1:-1:-1;;;9148:70:0;;7538:2:1;9148:70:0;;;7520:21:1;7577:2;7557:18;;;7550:30;7616:34;7596:18;;;7589:62;-1:-1:-1;;;7667:18:1;;;7660:39;7716:19;;9148:70:0;7510:231:1;9148:70:0;9243:11;;-1:-1:-1;;;9243:11:0;;;;9239:130;;-1:-1:-1;;;;;9278:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9306:22:0;;;;;;:18;:22;;;;;;;;9278:50;9270:87;;;;-1:-1:-1;;;9270:87:0;;6824:2:1;9270:87:0;;;6806:21:1;6863:2;6843:18;;;6836:30;6902:26;6882:18;;;6875:54;6946:18;;9270:87:0;6796:174:1;9270:87:0;9386:11;;-1:-1:-1;;;9386:11:0;;;;9385:12;;:22;;-1:-1:-1;9401:6:0;;-1:-1:-1;;;9401:6:0;;;;9385:22;9381:235;;;-1:-1:-1;;;;;9442:15:0;;;;;;:9;:15;;;;;;:30;;9460:12;;9442:30;:::i;:::-;-1:-1:-1;;;;;9424:15:0;;;;;;;:9;:15;;;;;;:48;;;;9503:13;;;;;;;:28;;9519:12;;9503:28;:::i;:::-;-1:-1:-1;;;;;9487:13:0;;;;;;;:9;:13;;;;;;;:44;;;;9551:32;;;;;;;;;;9570:12;9410:25:1;;9398:2;9383:18;;9365:76;9381:235:0;3513:7;3540:6;-1:-1:-1;;;;;9632:15:0;;;3540:6;;9632:15;;;;:32;;-1:-1:-1;3513:7:0;3540:6;-1:-1:-1;;;;;9651:13:0;;;3540:6;;9651:13;;9632:32;9628:1834;;;9685:20;;;;9681:522;;;9766:15;;-1:-1:-1;;;;;9752:30:0;;;9766:15;;9752:30;;;;:83;;-1:-1:-1;9821:13:0;;-1:-1:-1;;;;;9807:28:0;;;9821:13;;9807:28;;9752:83;9726:462;;;9941:9;9912:39;;;;:28;:39;;;;;;9954:12;-1:-1:-1;9878:213:0;;;;-1:-1:-1;;;9878:213:0;;5940:2:1;9878:213:0;;;5922:21:1;5979:2;5959:18;;;5952:30;6018:34;5998:18;;;5991:62;6089:34;6069:18;;;6062:62;-1:-1:-1;;;6140:19:1;;;6133:40;6190:19;;9878:213:0;5912:303:1;9878:213:0;10143:9;10114:39;;;;:28;:39;;;;;10156:12;10114:54;;9726:462;10249:13;;-1:-1:-1;;;;;10241:21:0;;;10249:13;;10241:21;:72;;;;-1:-1:-1;10297:15:0;;-1:-1:-1;;;;;10283:30:0;;;10297:15;;10283:30;;10241:72;:116;;;;-1:-1:-1;;;;;;10335:22:0;;;;;;:18;:22;;;;;;;;10334:23;10241:116;10219:450;;;10416:12;;10400;:28;;10392:66;;;;-1:-1:-1;;;10392:66:0;;5183:2:1;10392:66:0;;;5165:21:1;5222:2;5202:18;;;5195:30;5261:27;5241:18;;;5234:55;5306:18;;10392:66:0;5155:175:1;10392:66:0;10539:14;;10523:12;10507:13;10517:2;-1:-1:-1;;;;;6300:18:0;6273:7;6300:18;;;:9;:18;;;;;;;6207:119;10507:13;:28;;;;:::i;:::-;:46;;10477:146;;;;-1:-1:-1;;;10477:146:0;;8354:2:1;10477:146:0;;;8336:21:1;8393:2;8373:18;;;8366:30;8432:28;8412:18;;;8405:56;8478:18;;10477:146:0;8326:176:1;10477:146:0;10642:9;:11;;;:9;:11;;;:::i;:::-;;;;;;10219:450;10734:4;10685:28;6300:18;;;:9;:18;;;;;;10778:6;;-1:-1:-1;;;10778:6:0;;;;10777:7;:47;;;;-1:-1:-1;10811:13:0;;-1:-1:-1;;;;;10805:19:0;;;10811:13;;10805:19;10777:47;:79;;;;-1:-1:-1;10845:11:0;;-1:-1:-1;;;10845:11:0;;;;10777:79;:130;;;;;10889:18;;10877:9;;:30;10777:130;:176;;;;-1:-1:-1;;;;;;10929:24:0;;;;;;:18;:24;;;;;;;;10928:25;10777:176;:220;;;;-1:-1:-1;;;;;;10975:22:0;;;;;;:18;:22;;;;;;;;10974:23;10777:220;10755:696;;;11058:17;;11035:20;:40;11032:210;;;11099:123;11142:57;11146:12;11160:38;11164:20;11186:11;;11160:3;:38::i;:::-;11142:3;:57::i;:::-;11099:16;:123::i;:::-;11289:21;11381:35;11394:21;11381:12;:35::i;:::-;10755:696;;9628:1834;;11474:38;11489:4;11495:2;11499:12;11474:14;:38::i;:::-;8908:2612;;;:::o;1614:224::-;1734:7;1770:12;1762:6;;;;1754:29;;;;-1:-1:-1;;;1754:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1794:9:0;1806:5;1810:1;1806;:5;:::i;:::-;1794:17;1614:224;-1:-1:-1;;;;;1614:224:0:o;12346:92::-;12403:10;;:27;;:10;;;;-1:-1:-1;;;;;12403:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;;;12346:92;:::o;12231:107::-;12288:7;12320:1;12316;:5;12315:15;;12329:1;12315:15;;;12325:1;12315:15;12308:22;12231:107;-1:-1:-1;;;12231:107:0:o;11528:486::-;5407:6;:13;;-1:-1:-1;;;;5407:13:0;-1:-1:-1;;;5407:13:0;;;11631:16:::1;::::0;;11645:1:::1;11631:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11631:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11631:16:0::1;11607:40;;11676:4;11658;11663:1;11658:7;;;;;;-1:-1:-1::0;;;11658:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11658:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11702:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11702:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11658:7;;11702:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11692:4;11697:1;11692:7;;;;;;-1:-1:-1::0;;;11692:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11692:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11767:15:::1;::::0;11735:63:::1;::::0;11752:4:::1;::::0;11767:15:::1;11785:12:::0;11735:8:::1;:63::i;:::-;11809:15;::::0;:197:::1;::::0;-1:-1:-1;;;11809:197:0;;-1:-1:-1;;;;;11809:15:0;;::::1;::::0;:66:::1;::::0;:197:::1;::::0;11890:12;;11809:15:::1;::::0;11933:4;;11960::::1;::::0;11980:15:::1;::::0;11809:197:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5443:6:0;:14;;-1:-1:-1;;;;5443:14:0;;;-1:-1:-1;;;;11528:486:0:o;7701:1199::-;-1:-1:-1;;;;;7903:24:0;;7800:14;7903:24;;;:18;:24;;;;;;7800:14;;;;7903:24;;7898:660;;7953:116;8065:3;7953:93;7997:15;;7985:9;;:27;7984:61;;8031:14;;7984:61;;;8016:12;;7984:61;7953:12;;:30;:93::i;:::-;:111;;:116::i;:::-;8094:13;;7944:125;;-1:-1:-1;;;;;;8088:19:0;;;8094:13;;8088:19;:44;;;;-1:-1:-1;;;;;;8111:21:0;;8127:4;8111:21;;8088:44;8084:335;;;8162:241;8399:3;8162:210;8240:16;;8228:9;;:28;8227:122;;8334:15;;8227:122;;;8289:13;;8162:12;;:38;:210::i;:241::-;8153:250;;8084:335;8443:12;;-1:-1:-1;8487:21:0;8502:6;8443:12;8487:21;:::i;:::-;8470:38;;7898:660;;;-1:-1:-1;8543:12:0;7898:660;8574:10;;8570:160;;8646:4;8628:24;;;;:9;:24;;;;;;:33;;8655:6;;8628:33;:::i;:::-;8619:4;8601:24;;;;:9;:24;;;;;;;:60;;;;8681:37;;-1:-1:-1;;;;;8681:37:0;;;;;;;8711:6;9410:25:1;;9398:2;9383:18;;9365:76;8681:37:0;;;;;;;;8570:160;-1:-1:-1;;;;;8760:15:0;;;;;;:9;:15;;;;;;:25;;8778:7;;8760:25;:::i;:::-;-1:-1:-1;;;;;8742:15:0;;;;;;;:9;:15;;;;;;:43;;;;8812:13;;;;;;;:30;;8828:14;;8812:30;:::i;:::-;-1:-1:-1;;;;;8796:13:0;;;;;;;:9;:13;;;;;;;:46;;;;8858:34;;;;;;;;;;8877:14;9410:25:1;;9398:2;9383:18;;9365:76;8858:34:0;;;;;;;;7701:1199;;;;;;:::o;1846:246::-;1904:7;1928:6;1924:47;;-1:-1:-1;1958:1:0;1951:8;;1924:47;1981:9;1993:5;1997:1;1993;:5;:::i;:::-;1981:17;-1:-1:-1;2026:1:0;2017:5;2021:1;1981:17;2017:5;:::i;:::-;:10;2009:56;;;;-1:-1:-1;;;2009:56:0;;6422:2:1;2009:56:0;;;6404:21:1;6461:2;6441:18;;;6434:30;6500:34;6480:18;;;6473:62;-1:-1:-1;;;6551:18:1;;;6544:31;6592:19;;2009:56:0;6394:223:1;2100:132:0;2158:7;2185:39;2189:1;2192;2185:39;;;;;;;;;;;;;;;;;2360:7;2395:12;2388:5;2380:28;;;;-1:-1:-1;;;2380:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2419:9:0;2431:5;2435:1;2431;:5;:::i;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:297::-;1813:6;1866:2;1854:9;1845:7;1841:23;1837:32;1834:2;;;1887:6;1879;1872:22;1834:2;1924:9;1918:16;1977:5;1970:13;1963:21;1956:5;1953:32;1943:2;;2004:6;1996;1989:22;2048:316;2136:6;2144;2152;2205:2;2193:9;2184:7;2180:23;2176:32;2173:2;;;2226:6;2218;2211:22;2173:2;2260:9;2254:16;2244:26;;2310:2;2299:9;2295:18;2289:25;2279:35;;2354:2;2343:9;2339:18;2333:25;2323:35;;2163:201;;;;;:::o;3969:603::-;4081:4;4110:2;4139;4128:9;4121:21;4171:6;4165:13;4214:6;4209:2;4198:9;4194:18;4187:34;4239:4;4252:140;4266:6;4263:1;4260:13;4252:140;;;4361:14;;;4357:23;;4351:30;4327:17;;;4346:2;4323:26;4316:66;4281:10;;4252:140;;;4410:6;4407:1;4404:13;4401:2;;;4480:4;4475:2;4466:6;4455:9;4451:22;4447:31;4440:45;4401:2;-1:-1:-1;4556:2:1;4535:15;-1:-1:-1;;4531:29:1;4516:45;;;;4563:2;4512:54;;4090:482;-1:-1:-1;;;4090:482:1:o;6975:356::-;7177:2;7159:21;;;7196:18;;;7189:30;7255:34;7250:2;7235:18;;7228:62;7322:2;7307:18;;7149:182::o;9446:983::-;9708:4;9756:3;9745:9;9741:19;9787:6;9776:9;9769:25;9813:2;9851:6;9846:2;9835:9;9831:18;9824:34;9894:3;9889:2;9878:9;9874:18;9867:31;9918:6;9953;9947:13;9984:6;9976;9969:22;10022:3;10011:9;10007:19;10000:26;;10061:2;10053:6;10049:15;10035:29;;10082:4;10095:195;10109:6;10106:1;10103:13;10095:195;;;10174:13;;-1:-1:-1;;;;;10170:39:1;10158:52;;10265:15;;;;10230:12;;;;10206:1;10124:9;10095:195;;;-1:-1:-1;;;;;;;10346:32:1;;;;10341:2;10326:18;;10319:60;-1:-1:-1;;;10410:3:1;10395:19;10388:35;10307:3;9717:712;-1:-1:-1;;;9717:712:1:o;10623:128::-;10663:3;10694:1;10690:6;10687:1;10684:13;10681:2;;;10700:18;;:::i;:::-;-1:-1:-1;10736:9:1;;10671:80::o;10756:217::-;10796:1;10822;10812:2;;-1:-1:-1;;;10847:31:1;;10901:4;10898:1;10891:15;10929:4;10854:1;10919:15;10812:2;-1:-1:-1;10958:9:1;;10802:171::o;10978:422::-;11067:1;11110:5;11067:1;11124:270;11145:7;11135:8;11132:21;11124:270;;;11204:4;11200:1;11196:6;11192:17;11186:4;11183:27;11180:2;;;11213:18;;:::i;:::-;11263:7;11253:8;11249:22;11246:2;;;11283:16;;;;11246:2;11362:22;;;;11322:15;;;;11124:270;;;11128:3;11042:358;;;;;:::o;11405:140::-;11463:5;11492:47;11533:4;11523:8;11519:19;11513:4;11599:5;11629:8;11619:2;;-1:-1:-1;11670:1:1;11684:5;;11619:2;11718:4;11708:2;;-1:-1:-1;11755:1:1;11769:5;;11708:2;11800:4;11818:1;11813:59;;;;11886:1;11881:130;;;;11793:218;;11813:59;11843:1;11834:10;;11857:5;;;11881:130;11918:3;11908:8;11905:17;11902:2;;;11925:18;;:::i;:::-;-1:-1:-1;;11981:1:1;11967:16;;11996:5;;11793:218;;12095:2;12085:8;12082:16;12076:3;12070:4;12067:13;12063:36;12057:2;12047:8;12044:16;12039:2;12033:4;12030:12;12026:35;12023:77;12020:2;;;-1:-1:-1;12132:19:1;;;12164:5;;12020:2;12211:34;12236:8;12230:4;12211:34;:::i;:::-;12281:6;12277:1;12273:6;12269:19;12260:7;12257:32;12254:2;;;12292:18;;:::i;:::-;12330:20;;11609:747;-1:-1:-1;;;11609:747:1:o;12361:168::-;12401:7;12467:1;12463;12459:6;12455:14;12452:1;12449:21;12444:1;12437:9;12430:17;12426:45;12423:2;;;12474:18;;:::i;:::-;-1:-1:-1;12514:9:1;;12413:116::o;12534:125::-;12574:4;12602:1;12599;12596:8;12593:2;;;12607:18;;:::i;:::-;-1:-1:-1;12644:9:1;;12583:76::o;12664:135::-;12703:3;-1:-1:-1;;12724:17:1;;12721:2;;;12744:18;;:::i;:::-;-1:-1:-1;12791:1:1;12780:13;;12711:88::o;12804:127::-;12865:10;12860:3;12856:20;12853:1;12846:31;12896:4;12893:1;12886:15;12920:4;12917:1;12910:15;12936:131;-1:-1:-1;;;;;13011:31:1;;13001:42;;12991:2;;13057:1;13054;13047:12

Swarm Source

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