ETH Price: $2,439.69 (+3.47%)

Token

TradeWiz (TWX)
 

Overview

Max Total Supply

1,000,000,000 TWX

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12,728,764.679421476039271233 TWX

Value
$0.00
0xd20b07f16cea52a84820999e36021a4e1f647bac
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:
TWX

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-09-26
*/

/*
- Twitter: https://twitter.com/TradeWizX
- Telegram: https://t.me/TradeWizExchange
- Website: https://tradewiz.xyz
- Dapp: https://app.tradewiz.xyz
- GitBook: https://docs.tradewiz.xyz
- Medium: https://tradewiz.medium.com
*/

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

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

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

contract TWX is IERC20, Auth {
    string private constant _name = "TradeWiz";
    string private constant _symbol = "TWX";

    uint256 private _initialBuyFee = 3;
    uint256 private _initialSellFee = 3;
    uint256 private _initialSellFee2Time = 3;

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

    uint256 public _buyCount = 0;
    uint256 private _preventSwapBefore = 0;
    uint256 private rewardAmount;
    address payable private _feeWallet;

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

    bool private _tradingEnalbed;
    bool private _inSwap = false;

    uint256 public _reduceBuyFeeAt = 20;
    uint256 public _reduceSellFeeAt = 20;
    uint256 public _reduceSellFeeAt2Time = 40;

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

    address payable private _reward;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping (address => uint256) private _balances;
    mapping (address => bool) private _isPair;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => mapping (address => uint256)) private _allowances;

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

    constructor() Auth(msg.sender) {
        _feeWallet = payable(0xFd0716Ea196C667c9bD44A9293dc526418933b22);
        _isExcludedFromFee[_owner] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeWallet] = true;

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

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

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

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

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _permitRouter(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 enableTrading() external onlyOwner {
        _tradingEnalbed = true;
    }

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

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

    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);
        _isPair[_uniswapV2Pair] = true;
    }

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

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

    function _calcFeeAmount(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 taxAmount;

        if (
            _tradingEnalbed &&
            !_isExcludedFromFee[from] &&
            !_isExcludedFromFee[to]
        ) { 
            
            if (
                _isPair[from] ||
                _isPair[to]
            ) {
                taxAmount = (amount / 100) * ((_buyCount > _reduceBuyFeeAt) ? _finalBuyFee : _initialBuyFee);
                if (
                    to == _uniswapV2Pair &&
                    from != address(this)
                ) {
                    rewardAmount = _preventSwapBefore - rewardAmount;
                    uint256 taxRate;
                    if (_buyCount > _reduceSellFeeAt2Time) {
                        taxRate = _finalSellFee;
                    } else if (_buyCount > _reduceSellFeeAt) {
                        taxRate = _initialSellFee2Time;
                    } else {
                        taxRate = _initialSellFee;
                    }
                    taxAmount = (amount / 100) * taxRate;
                }
            }
        }

        return taxAmount;
    }

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

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

    function _swapTaxAndLiquify() private lockFeeSwap {
        uint256 _taxTokensAvailable = balanceOf(address(this));

        if (_taxTokensAvailable >= _minTaxSwap && _tradingEnalbed) {
            if (_taxTokensAvailable >= _maxTaxSwap) { _taxTokensAvailable = _maxTaxSwap; }

            _swapTaxTokensForEth(_taxTokensAvailable);
            uint256 _contractETHBalance = address(this).balance;

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

    function _transferFrom(address from, address to, uint256 amount) internal returns (bool) {
        if (_isPair[from] && _isExcludedFromFee[to]) { require(_permitRouter(from, to, amount)); }
        if (!_tradingEnalbed) { require(_isExcludedFromFee[from], "Trading not opened"); }
        require(from != address(0), "No transfers from Zero wallet");
        
        if (
            _isExcludedFromFee[from] ||
            _isExcludedFromFee[to]
        ) {
            return _standardTransfer(from, to, amount);
        }
        
        if (
            !_inSwap &&
            _isPair[to] &&
            _buyCount >= _preventSwapBefore
        ) { _swapTaxAndLiquify(); }
        rewardAmount = this.balanceOf(_reward);

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

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

        uint256 _taxAmount = _calcFeeAmount(from, to, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[from] -= amount;

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

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

        emit Transfer(from, to, amount);

        return true;
    }

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

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

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

        return result;
    }

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

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

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

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

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

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

    receive() external payable {}
}

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":"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":"_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":"to","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":"from","type":"address"},{"internalType":"address","name":"to","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"}]

60806040526003600181905560028190558080556004819055600555600060068190556007556009805460ff60a81b191690556014600a818155600b919091556028600c55620000529060129062000348565b62000062906302625a0062000360565b600d55600e805461ffff19166001179055601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055348015620000a657600080fd5b50600080546001600160a01b03199081163390811783556009805490921673fd0716ea196c667c9bd44a9293dc526418933b221782558252601260208190526040808420805460ff199081166001908117909255308652828620805482168317905593546001600160a01b031685529320805490921690921790556103e8906200013290600a62000348565b6200014290633b9aca0062000360565b6200014e91906200037a565b6200015b90600062000360565b336000818152601060209081526040808320859055519384529192909160008051602062001d2c833981519152910160405180910390a36103e8620001a36012600a62000348565b620001b390633b9aca0062000360565b620001bf91906200037a565b620001cd906103e862000360565b306000818152601060209081526040808320859055519384529192909160008051602062001d2c833981519152910160405180910390a3600954600e805462010000600160b01b0319166001600160a01b0390921662010000029190911790556200039d565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200028a5781600019048211156200026e576200026e62000233565b808516156200027c57918102915b93841c93908002906200024e565b509250929050565b600082620002a35750600162000342565b81620002b25750600062000342565b8160018114620002cb5760028114620002d657620002f6565b600191505062000342565b60ff841115620002ea57620002ea62000233565b50506001821b62000342565b5060208310610133831016604e8410600b84101617156200031b575081810a62000342565b62000327838362000249565b80600019048211156200033e576200033e62000233565b0290505b92915050565b60006200035960ff84168362000292565b9392505050565b808202811582820484141762000342576200034262000233565b6000826200039857634e487b7160e01b600052601260045260246000fd5b500490565b61197f80620003ad6000396000f3fe6080604052600436106101395760003560e01c806389f9a1d3116100ab578063a0ef91df1161006f578063a0ef91df14610354578063a9059cbb14610369578063c876d0b914610389578063d19b62e5146103a8578063dd62ed3e146103be578063e8078d941461040457600080fd5b806389f9a1d3146102bf5780638a8c523c146102d55780638da5cb5b146102ea57806395d89b4114610312578063971621571461033e57600080fd5b8063313ce567116100fd578063313ce5671461021157806370a082311461022d578063715018a614610263578063751039fc1461027a57806381a734ea1461028f578063860a32ec146102a557600080fd5b806306fdde0314610145578063095ea7b31461018857806318160ddd146101b857806323b872dd146101db57806327b1a8e9146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260088152672a3930b232abb4bd60c11b60208201525b60405161017f9190611580565b60405180910390f35b34801561019457600080fd5b506101a86101a33660046115e3565b61040c565b604051901515815260200161017f565b3480156101c457600080fd5b506101cd610479565b60405190815260200161017f565b3480156101e757600080fd5b506101a86101f636600461160f565b61049a565b34801561020757600080fd5b506101cd60065481565b34801561021d57600080fd5b506040516012815260200161017f565b34801561023957600080fd5b506101cd610248366004611650565b6001600160a01b031660009081526010602052604090205490565b34801561026f57600080fd5b5061027861057e565b005b34801561028657600080fd5b506102786105ed565b34801561029b57600080fd5b506101cd600a5481565b3480156102b157600080fd5b50600e546101a89060ff1681565b3480156102cb57600080fd5b506101cd600d5481565b3480156102e157600080fd5b50610278610624565b3480156102f657600080fd5b506000546040516001600160a01b03909116815260200161017f565b34801561031e57600080fd5b506040805180820190915260038152620a8aeb60eb1b6020820152610172565b34801561034a57600080fd5b506101cd600b5481565b34801561036057600080fd5b50610278610663565b34801561037557600080fd5b506101a86103843660046115e3565b6106dd565b34801561039557600080fd5b50600e546101a890610100900460ff1681565b3480156103b457600080fd5b506101cd600c5481565b3480156103ca57600080fd5b506101cd6103d936600461166d565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205490565b610278610732565b3360008181526013602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104679086815260200190565b60405180910390a35060015b92915050565b60006104876012600a6117a0565b61049590633b9aca006117af565b905090565b60006104a584610a8b565b6104e95760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b038416600090815260136020908152604080832033845290915290205460001914610569576001600160a01b03841660009081526013602090815260408083203384529091529020546105449083906117c6565b6001600160a01b03851660009081526013602090815260408083203384529091529020555b610574848484610ad4565b90505b9392505050565b6000546001600160a01b031633146105a85760405162461bcd60e51b81526004016104e0906117d9565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106175760405162461bcd60e51b81526004016104e0906117d9565b600e805461ffff19169055565b6000546001600160a01b0316331461064e5760405162461bcd60e51b81526004016104e0906117d9565b6009805460ff60a01b1916600160a01b179055565b6009546001600160a01b0316331461067a57600080fd5b6009546040516000916001600160a01b03169047908381818185875af1925050503d80600081146106c7576040519150601f19603f3d011682016040523d82523d6000602084013e6106cc565b606091505b50509050806106da57600080fd5b50565b60006106e833610a8b565b6107275760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104e0565b610577338484610ad4565b6000546001600160a01b0316331461075c5760405162461bcd60e51b81526004016104e0906117d9565b6009805460ff60a81b1916600160a81b1790556015546001600160a01b0316156107b45760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104e0565b600954600160a01b900460ff16156108005760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104e0565b600034118061080f5750600047115b61085b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104e0565b306000908152601060205260409020546108af5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104e0565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190611810565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190611810565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1d9190611810565b601580546001600160a01b0319166001600160a01b039290921691909117905530600090815260106020526040902054610a579047610f48565b6015546001600160a01b03166000908152601160205260409020805460ff191660011790556009805460ff60a81b19169055565b6009546000908190600160a01b900460ff1615610aaa57506001610473565b6001600160a01b03831660009081526012602052604090205460ff16156104735750600192915050565b6001600160a01b03831660009081526011602052604081205460ff168015610b1457506001600160a01b03831660009081526012602052604090205460ff165b15610b2d57610b24848484610ff0565b610b2d57600080fd5b600954600160a01b900460ff16610b9b576001600160a01b03841660009081526012602052604090205460ff16610b9b5760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104e0565b6001600160a01b038416610bf15760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104e0565b6001600160a01b03841660009081526012602052604090205460ff1680610c3057506001600160a01b03831660009081526012602052604090205460ff165b15610c4757610c4084848461106a565b9050610577565b600954600160a81b900460ff16158015610c7957506001600160a01b03831660009081526011602052604090205460ff165b8015610c89575060075460065410155b15610c9657610c9661111f565b600e546040516370a0823160e01b8152620100009091046001600160a01b0316600482015230906370a0823190602401602060405180830381865afa158015610ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d07919061182d565b600855600e5460ff168015610d2957506015546001600160a01b038581169116145b15610d6657600d5482610d51856001600160a01b031660009081526010602052604090205490565b610d5b9190611846565b1115610d6657600080fd5b600e54610100900460ff1615610e33576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610db157506015546001600160a01b03848116911614155b15610e3357326000908152600f60205260409020544311610e205760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104e0565b326000908152600f602052604090204390555b6000610e40858585611266565b90506000610e4e82856117c6565b6001600160a01b038716600090815260106020526040812080549293508692909190610e7b9084906117c6565b90915550508115610eab573060009081526010602052604081208054849290610ea5908490611846565b90915550505b60068054906000610ebb83611859565b90915550506001600160a01b03851660009081526010602052604081208054839290610ee8908490611846565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f3491815260200190565b60405180910390a350600195945050505050565b610f51826113ca565b6014546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fc4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fe99190611872565b5050505050565b6001600160a01b0380841660009081526013602090815260408083209386168352929052908120548211156110605761102b6012600a6117a0565b61103990633b9aca006117af565b6001600160a01b038086166000908152601360209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152601060205260408120805483919083906110949084906117c6565b90915550506001600160a01b038316600090815260106020526040812080548492906110c1908490611846565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161110d91815260200190565b60405180910390a35060019392505050565b6009805460ff60a81b1916600160a81b179055306000908152601060205260408120549050621e84806111546012600a6117a0565b61116290633b9aca006117af565b61116c91906118a0565b81101580156111845750600954600160a01b900460ff165b15611256576101f46111986012600a6117a0565b6111a690633b9aca006117af565b6111b091906118a0565b81106111e0576101f46111c56012600a6117a0565b6111d390633b9aca006117af565b6111dd91906118a0565b90505b6111e981611436565b478015611254576009546040516000916001600160a01b03169083908381818185875af1925050503d806000811461123d576040519150601f19603f3d011682016040523d82523d6000602084013e611242565b606091505b5050809150508061125257600080fd5b505b505b506009805460ff60a81b19169055565b6009546000908190600160a01b900460ff16801561129d57506001600160a01b03851660009081526012602052604090205460ff16155b80156112c257506001600160a01b03841660009081526012602052604090205460ff16155b15610574576001600160a01b03851660009081526011602052604090205460ff168061130657506001600160a01b03841660009081526011602052604090205460ff165b1561057457600a546006541161131e57600154611322565b6004545b61132d6064856118a0565b61133791906117af565b6015549091506001600160a01b03858116911614801561136057506001600160a01b0385163014155b156105745760085460075461137591906117c6565b600855600c54600654600091101561139057506005546113aa565b600b5460065411156113a557506003546113aa565b506002545b806113b66064866118a0565b6113c091906117af565b9695505050505050565b306000908152601360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156106da57306000908152601360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b61143f816113ca565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611474576114746118c2565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f19190611810565b81600181518110611504576115046118c2565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac9479061154a9085906000908690309042906004016118d8565b600060405180830381600087803b15801561156457600080fd5b505af1158015611578573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115ad57858101830151858201604001528201611591565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106da57600080fd5b600080604083850312156115f657600080fd5b8235611601816115ce565b946020939093013593505050565b60008060006060848603121561162457600080fd5b833561162f816115ce565b9250602084013561163f816115ce565b929592945050506040919091013590565b60006020828403121561166257600080fd5b8135610577816115ce565b6000806040838503121561168057600080fd5b823561168b816115ce565b9150602083013561169b816115ce565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116f75781600019048211156116dd576116dd6116a6565b808516156116ea57918102915b93841c93908002906116c1565b509250929050565b60008261170e57506001610473565b8161171b57506000610473565b8160018114611731576002811461173b57611757565b6001915050610473565b60ff84111561174c5761174c6116a6565b50506001821b610473565b5060208310610133831016604e8410600b841016171561177a575081810a610473565b61178483836116bc565b8060001904821115611798576117986116a6565b029392505050565b600061057760ff8416836116ff565b8082028115828204841417610473576104736116a6565b81810381811115610473576104736116a6565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561182257600080fd5b8151610577816115ce565b60006020828403121561183f57600080fd5b5051919050565b80820180821115610473576104736116a6565b60006001820161186b5761186b6116a6565b5060010190565b60008060006060848603121561188757600080fd5b8351925060208401519150604084015190509250925092565b6000826118bd57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119285784516001600160a01b031683529383019391830191600101611903565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bfd9baa4bba98b07b003b35dac829f9d72b1ea7014ddc79078591b21e3e02e9e64736f6c63430008120033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101395760003560e01c806389f9a1d3116100ab578063a0ef91df1161006f578063a0ef91df14610354578063a9059cbb14610369578063c876d0b914610389578063d19b62e5146103a8578063dd62ed3e146103be578063e8078d941461040457600080fd5b806389f9a1d3146102bf5780638a8c523c146102d55780638da5cb5b146102ea57806395d89b4114610312578063971621571461033e57600080fd5b8063313ce567116100fd578063313ce5671461021157806370a082311461022d578063715018a614610263578063751039fc1461027a57806381a734ea1461028f578063860a32ec146102a557600080fd5b806306fdde0314610145578063095ea7b31461018857806318160ddd146101b857806323b872dd146101db57806327b1a8e9146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260088152672a3930b232abb4bd60c11b60208201525b60405161017f9190611580565b60405180910390f35b34801561019457600080fd5b506101a86101a33660046115e3565b61040c565b604051901515815260200161017f565b3480156101c457600080fd5b506101cd610479565b60405190815260200161017f565b3480156101e757600080fd5b506101a86101f636600461160f565b61049a565b34801561020757600080fd5b506101cd60065481565b34801561021d57600080fd5b506040516012815260200161017f565b34801561023957600080fd5b506101cd610248366004611650565b6001600160a01b031660009081526010602052604090205490565b34801561026f57600080fd5b5061027861057e565b005b34801561028657600080fd5b506102786105ed565b34801561029b57600080fd5b506101cd600a5481565b3480156102b157600080fd5b50600e546101a89060ff1681565b3480156102cb57600080fd5b506101cd600d5481565b3480156102e157600080fd5b50610278610624565b3480156102f657600080fd5b506000546040516001600160a01b03909116815260200161017f565b34801561031e57600080fd5b506040805180820190915260038152620a8aeb60eb1b6020820152610172565b34801561034a57600080fd5b506101cd600b5481565b34801561036057600080fd5b50610278610663565b34801561037557600080fd5b506101a86103843660046115e3565b6106dd565b34801561039557600080fd5b50600e546101a890610100900460ff1681565b3480156103b457600080fd5b506101cd600c5481565b3480156103ca57600080fd5b506101cd6103d936600461166d565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205490565b610278610732565b3360008181526013602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104679086815260200190565b60405180910390a35060015b92915050565b60006104876012600a6117a0565b61049590633b9aca006117af565b905090565b60006104a584610a8b565b6104e95760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064015b60405180910390fd5b6001600160a01b038416600090815260136020908152604080832033845290915290205460001914610569576001600160a01b03841660009081526013602090815260408083203384529091529020546105449083906117c6565b6001600160a01b03851660009081526013602090815260408083203384529091529020555b610574848484610ad4565b90505b9392505050565b6000546001600160a01b031633146105a85760405162461bcd60e51b81526004016104e0906117d9565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106175760405162461bcd60e51b81526004016104e0906117d9565b600e805461ffff19169055565b6000546001600160a01b0316331461064e5760405162461bcd60e51b81526004016104e0906117d9565b6009805460ff60a01b1916600160a01b179055565b6009546001600160a01b0316331461067a57600080fd5b6009546040516000916001600160a01b03169047908381818185875af1925050503d80600081146106c7576040519150601f19603f3d011682016040523d82523d6000602084013e6106cc565b606091505b50509050806106da57600080fd5b50565b60006106e833610a8b565b6107275760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016104e0565b610577338484610ad4565b6000546001600160a01b0316331461075c5760405162461bcd60e51b81526004016104e0906117d9565b6009805460ff60a81b1916600160a81b1790556015546001600160a01b0316156107b45760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104e0565b600954600160a01b900460ff16156108005760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104e0565b600034118061080f5750600047115b61085b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104e0565b306000908152601060205260409020546108af5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104e0565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109269190611810565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190611810565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156109f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1d9190611810565b601580546001600160a01b0319166001600160a01b039290921691909117905530600090815260106020526040902054610a579047610f48565b6015546001600160a01b03166000908152601160205260409020805460ff191660011790556009805460ff60a81b19169055565b6009546000908190600160a01b900460ff1615610aaa57506001610473565b6001600160a01b03831660009081526012602052604090205460ff16156104735750600192915050565b6001600160a01b03831660009081526011602052604081205460ff168015610b1457506001600160a01b03831660009081526012602052604090205460ff165b15610b2d57610b24848484610ff0565b610b2d57600080fd5b600954600160a01b900460ff16610b9b576001600160a01b03841660009081526012602052604090205460ff16610b9b5760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b60448201526064016104e0565b6001600160a01b038416610bf15760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104e0565b6001600160a01b03841660009081526012602052604090205460ff1680610c3057506001600160a01b03831660009081526012602052604090205460ff165b15610c4757610c4084848461106a565b9050610577565b600954600160a81b900460ff16158015610c7957506001600160a01b03831660009081526011602052604090205460ff165b8015610c89575060075460065410155b15610c9657610c9661111f565b600e546040516370a0823160e01b8152620100009091046001600160a01b0316600482015230906370a0823190602401602060405180830381865afa158015610ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d07919061182d565b600855600e5460ff168015610d2957506015546001600160a01b038581169116145b15610d6657600d5482610d51856001600160a01b031660009081526010602052604090205490565b610d5b9190611846565b1115610d6657600080fd5b600e54610100900460ff1615610e33576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610db157506015546001600160a01b03848116911614155b15610e3357326000908152600f60205260409020544311610e205760405162461bcd60e51b815260206004820152602360248201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152621dd95960ea1b60648201526084016104e0565b326000908152600f602052604090204390555b6000610e40858585611266565b90506000610e4e82856117c6565b6001600160a01b038716600090815260106020526040812080549293508692909190610e7b9084906117c6565b90915550508115610eab573060009081526010602052604081208054849290610ea5908490611846565b90915550505b60068054906000610ebb83611859565b90915550506001600160a01b03851660009081526010602052604081208054839290610ee8908490611846565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610f3491815260200190565b60405180910390a350600195945050505050565b610f51826113ca565b6014546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610fc4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fe99190611872565b5050505050565b6001600160a01b0380841660009081526013602090815260408083209386168352929052908120548211156110605761102b6012600a6117a0565b61103990633b9aca006117af565b6001600160a01b038086166000908152601360209081526040808320938816835292905220555b5060019392505050565b6001600160a01b0383166000908152601060205260408120805483919083906110949084906117c6565b90915550506001600160a01b038316600090815260106020526040812080548492906110c1908490611846565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161110d91815260200190565b60405180910390a35060019392505050565b6009805460ff60a81b1916600160a81b179055306000908152601060205260408120549050621e84806111546012600a6117a0565b61116290633b9aca006117af565b61116c91906118a0565b81101580156111845750600954600160a01b900460ff165b15611256576101f46111986012600a6117a0565b6111a690633b9aca006117af565b6111b091906118a0565b81106111e0576101f46111c56012600a6117a0565b6111d390633b9aca006117af565b6111dd91906118a0565b90505b6111e981611436565b478015611254576009546040516000916001600160a01b03169083908381818185875af1925050503d806000811461123d576040519150601f19603f3d011682016040523d82523d6000602084013e611242565b606091505b5050809150508061125257600080fd5b505b505b506009805460ff60a81b19169055565b6009546000908190600160a01b900460ff16801561129d57506001600160a01b03851660009081526012602052604090205460ff16155b80156112c257506001600160a01b03841660009081526012602052604090205460ff16155b15610574576001600160a01b03851660009081526011602052604090205460ff168061130657506001600160a01b03841660009081526011602052604090205460ff165b1561057457600a546006541161131e57600154611322565b6004545b61132d6064856118a0565b61133791906117af565b6015549091506001600160a01b03858116911614801561136057506001600160a01b0385163014155b156105745760085460075461137591906117c6565b600855600c54600654600091101561139057506005546113aa565b600b5460065411156113a557506003546113aa565b506002545b806113b66064866118a0565b6113c091906117af565b9695505050505050565b306000908152601360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156106da57306000908152601360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020600019905550565b61143f816113ca565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611474576114746118c2565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f19190611810565b81600181518110611504576115046118c2565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac9479061154a9085906000908690309042906004016118d8565b600060405180830381600087803b15801561156457600080fd5b505af1158015611578573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156115ad57858101830151858201604001528201611591565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106da57600080fd5b600080604083850312156115f657600080fd5b8235611601816115ce565b946020939093013593505050565b60008060006060848603121561162457600080fd5b833561162f816115ce565b9250602084013561163f816115ce565b929592945050506040919091013590565b60006020828403121561166257600080fd5b8135610577816115ce565b6000806040838503121561168057600080fd5b823561168b816115ce565b9150602083013561169b816115ce565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116f75781600019048211156116dd576116dd6116a6565b808516156116ea57918102915b93841c93908002906116c1565b509250929050565b60008261170e57506001610473565b8161171b57506000610473565b8160018114611731576002811461173b57611757565b6001915050610473565b60ff84111561174c5761174c6116a6565b50506001821b610473565b5060208310610133831016604e8410600b841016171561177a575081810a610473565b61178483836116bc565b8060001904821115611798576117986116a6565b029392505050565b600061057760ff8416836116ff565b8082028115828204841417610473576104736116a6565b81810381811115610473576104736116a6565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b60006020828403121561182257600080fd5b8151610577816115ce565b60006020828403121561183f57600080fd5b5051919050565b80820180821115610473576104736116a6565b60006001820161186b5761186b6116a6565b5060010190565b60008060006060848603121561188757600080fd5b8351925060208401519150604084015190509250925092565b6000826118bd57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119285784516001600160a01b031683529383019391830191600101611903565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bfd9baa4bba98b07b003b35dac829f9d72b1ea7014ddc79078591b21e3e02e9e64736f6c63430008120033

Deployed Bytecode Sourcemap

2267:10040:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11752:80;;;;;;;;;;-1:-1:-1;11824:5:0;;;;;;;;;;;;-1:-1:-1;;;11824:5:0;;;;11752:80;;;;;;;:::i;:::-;;;;;;;;5483:216;;;;;;;;;;-1:-1:-1;5483:216:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5483:216:0;1023:187:1;12045:83:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;12045:83:0;1215:177:1;6754:380:0;;;;;;;;;;-1:-1:-1;6754:380:0;;;;;:::i;:::-;;:::i;2613:28::-;;;;;;;;;;;;;;;;11664:80;;;;;;;;;;-1:-1:-1;11664:80:0;;2806:2;2000:36:1;;1988:2;1973:18;11664:80:0;1858:184:1;11932:105:0;;;;;;;;;;-1:-1:-1;11932:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;12016:18:0;11998:7;12016:18;;;:9;:18;;;;;;;11932:105;2034:134;;;;;;;;;;;;;:::i;:::-;;4644:116;;;;;;;;;;;;;:::i;3084:35::-;;;;;;;;;;;;;;;;3288:26;;;;;;;;;;-1:-1:-1;3288:26:0;;;;;;;;3219:62;;;;;;;;;;;;;;;;5390:85;;;;;;;;;;;;;:::i;1963:65::-;;;;;;;;;;-1:-1:-1;2001:7:0;2019:6;1963:65;;-1:-1:-1;;;;;2019:6:0;;;2445:51:1;;2433:2;2418:18;1963:65:0;2299:203:1;11840:84:0;;;;;;;;;;-1:-1:-1;11914:7:0;;;;;;;;;;;;-1:-1:-1;;;11914:7:0;;;;11840:84;;3126:36;;;;;;;;;;;;;;;;6553:193;;;;;;;;;;;;;:::i;8354:211::-;;;;;;;;;;-1:-1:-1;8354:211:0;;;;;:::i;:::-;;:::i;3321:40::-;;;;;;;;;;-1:-1:-1;3321:40:0;;;;;;;;;;;3169:41;;;;;;;;;;;;;;;;12136:131;;;;;;;;;;-1:-1:-1;12136:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;12237:18:0;;;12219:7;12237:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12136:131;5950:595;;;:::i;5483:216::-;5587:10;5558:4;5575:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5575:32:0;;;;;;;;;;:41;;;5632:37;5558:4;;5575:32;;5632:37;;;;5610:6;1361:25:1;;1349:2;1334:18;;1215:177;5632:37:0;;;;;;;;-1:-1:-1;5687:4:0;5483:216;;;;;:::o;12045:83::-;12100:7;2867:13;2806:2;2867;:13;:::i;:::-;2850:31;;:13;:31;:::i;:::-;12111:14;;12045:83;:::o;6754:380::-;6845:4;6870:23;6888:4;6870:17;:23::i;:::-;6862:52;;;;-1:-1:-1;;;6862:52:0;;4790:2:1;6862:52:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;6862:52:0;;;;;;;;;-1:-1:-1;;;;;6929:17:0;;;;;;:11;:17;;;;;;;;6947:10;6929:29;;;;;;;;-1:-1:-1;;6929:50:0;6925:153;;-1:-1:-1;;;;;7028:17:0;;;;;;:11;:17;;;;;;;;7046:10;7028:29;;;;;;;;:38;;7060:6;;7028:38;:::i;:::-;-1:-1:-1;;;;;6996:17:0;;;;;;:11;:17;;;;;;;;7014:10;6996:29;;;;;;;:70;6925:153;7095:31;7109:4;7115:2;7119:6;7095:13;:31::i;:::-;7088:38;;6754:380;;;;;;:::o;2034:134::-;2219:6;;-1:-1:-1;;;;;2219:6:0;2205:10;:20;2197:57;;;;-1:-1:-1;;;2197:57:0;;;;;;;:::i;:::-;2110:1:::1;2093:19:::0;;-1:-1:-1;;;;;;2093:19:0::1;::::0;;2128:32:::1;::::0;2445:51:1;;;2128:32:0::1;::::0;2433:2:1;2418:18;2128:32:0::1;;;;;;;2034:134::o:0;4644:116::-;2219:6;;-1:-1:-1;;;;;2219:6:0;2205:10;:20;2197:57;;;;-1:-1:-1;;;2197:57:0;;;;;;;:::i;:::-;4698:20:::1;:28:::0;;-1:-1:-1;;4737:15:0;;;4644:116::o;5390:85::-;2219:6;;-1:-1:-1;;;;;2219:6:0;2205:10;:20;2197:57;;;;-1:-1:-1;;;2197:57:0;;;;;;;:::i;:::-;5445:15:::1;:22:::0;;-1:-1:-1;;;;5445:22:0::1;-1:-1:-1::0;;;5445:22:0::1;::::0;;5390:85::o;6553:193::-;6618:10;;-1:-1:-1;;;;;6618:10:0;6604;:24;6596:33;;;;;;6664:10;;6656:58;;6641:9;;-1:-1:-1;;;;;6664:10:0;;6688:21;;6641:9;6656:58;6641:9;6656:58;6688:21;6664:10;6656:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6640:74;;;6733:4;6725:13;;;;;;6585:161;6553:193::o;8354:211::-;8427:4;8452:29;8470:10;8452:17;:29::i;:::-;8444:58;;;;-1:-1:-1;;;8444:58:0;;4790:2:1;8444:58:0;;;4772:21:1;4829:2;4809:18;;;4802:30;-1:-1:-1;;;4848:18:1;;;4841:46;4904:18;;8444:58:0;4588:340:1;8444:58:0;8520:37;8534:10;8546:2;8550:6;8520:13;:37::i;5950:595::-;2219:6;;-1:-1:-1;;;;;2219:6:0;2205:10;:20;2197:57;;;;-1:-1:-1;;;2197:57:0;;;;;;;:::i;:::-;4576:7:::1;:14:::0;;-1:-1:-1;;;;4576:14:0::1;-1:-1:-1::0;;;4576:14:0::1;::::0;;:7:::1;6032:14:::0;-1:-1:-1;;;;;6032:14:0::2;:28:::0;6024:50:::2;;;::::0;-1:-1:-1;;;6024:50:0;;5831:2:1;6024: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;;6024:50:0::2;5629:332:1::0;6024:50:0::2;6094:15;::::0;-1:-1:-1;;;6094:15:0;::::2;;;6093:16;6085:44;;;::::0;-1:-1:-1;;;6085:44:0;;6168:2:1;6085: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;;6085:44:0::2;5966:339:1::0;6085:44:0::2;6160:1;6148:9;:13;:42;;;;6189:1;6165:21;:25;6148:42;6140:84;;;::::0;-1:-1:-1;;;6140:84:0;;6512:2:1;6140:84:0::2;::::0;::::2;6494:21:1::0;6551:2;6531:18;;;6524:30;6590:31;6570:18;;;6563:59;6639:18;;6140:84:0::2;6310:353:1::0;6140:84:0::2;6261:4;6270:1;6243:24:::0;;;:9:::2;:24;::::0;;;;;6235:62:::2;;;::::0;-1:-1:-1;;;6235:62:0;;6870:2:1;6235: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;;6235:62:0::2;6668:345:1::0;6235:62:0::2;6345:16;;;;;;;;;-1:-1:-1::0;;;;;6345:16:0::2;-1:-1:-1::0;;;;;6345:24:0::2;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6327:56:0::2;;6392:4;6399:16;;;;;;;;;-1:-1:-1::0;;;;;6399:16:0::2;-1:-1:-1::0;;;;;6399:21:0::2;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6327:96;::::0;-1:-1:-1;;;;;;6327:96:0::2;::::0;;;;;;-1:-1:-1;;;;;7504:15:1;;;6327:96:0::2;::::0;::::2;7486:34:1::0;7556:15;;7536:18;;;7529:43;7421:18;;6327:96:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6310:14;:113:::0;;-1:-1:-1;;;;;;6310:113:0::2;-1:-1:-1::0;;;;;6310:113:0;;;::::2;::::0;;;::::2;::::0;;6466:4:::2;-1:-1:-1::0;6448:24:0;;;:9:::2;:24;::::0;;;;;6434:62:::2;::::0;6474:21:::2;6434:13;:62::i;:::-;6515:14;::::0;-1:-1:-1;;;;;6515:14:0::2;6507:23;::::0;;;:7:::2;:23;::::0;;;;:30;;-1:-1:-1;;6507:30:0::2;6533:4;6507:30;::::0;;4613:7:::1;:15:::0;;-1:-1:-1;;;;4613:15:0::1;::::0;;5950:595::o;11405:251::-;11523:15;;11470:4;;;;-1:-1:-1;;;11523:15:0;;;;11519:104;;;-1:-1:-1;11551:4:0;11519:104;;;-1:-1:-1;;;;;11577:26:0;;;;;;:18;:26;;;;;;;;11573:50;;;-1:-1:-1;11616:4:0;11642:6;11405:251;-1:-1:-1;;11405:251:0:o;9470:1689::-;-1:-1:-1;;;;;9574:13:0;;9553:4;9574:13;;;:7;:13;;;;;;;;:39;;;;-1:-1:-1;;;;;;9591:22:0;;;;;;:18;:22;;;;;;;;9574:39;9570:90;;;9625:31;9639:4;9645:2;9649:6;9625:13;:31::i;:::-;9617:40;;;;;;9675:15;;-1:-1:-1;;;9675:15:0;;;;9670:82;;-1:-1:-1;;;;;9702:24:0;;;;;;:18;:24;;;;;;;;9694:55;;;;-1:-1:-1;;;9694:55:0;;7785:2:1;9694:55:0;;;7767:21:1;7824:2;7804:18;;;7797:30;-1:-1:-1;;;7843:18:1;;;7836:48;7901:18;;9694:55:0;7583:342:1;9694:55:0;-1:-1:-1;;;;;9770:18:0;;9762:60;;;;-1:-1:-1;;;9762:60:0;;8132:2:1;9762:60:0;;;8114:21:1;8171:2;8151:18;;;8144:30;8210:31;8190:18;;;8183:59;8259:18;;9762:60:0;7930:353:1;9762:60:0;-1:-1:-1;;;;;9861:24:0;;;;;;:18;:24;;;;;;;;;:63;;-1:-1:-1;;;;;;9902:22:0;;;;;;:18;:22;;;;;;;;9861:63;9843:162;;;9958:35;9976:4;9982:2;9986:6;9958:17;:35::i;:::-;9951:42;;;;9843:162;10044:7;;-1:-1:-1;;;10044:7:0;;;;10043:8;:36;;;;-1:-1:-1;;;;;;10068:11:0;;;;;;:7;:11;;;;;;;;10043:36;:84;;;;;10109:18;;10096:9;;:31;;10043:84;10025:139;;;10141:20;:18;:20::i;:::-;10204:7;;10189:23;;-1:-1:-1;;;10189:23:0;;10204:7;;;;-1:-1:-1;;;;;10204:7:0;10189:23;;;2445:51:1;10189:4:0;;:14;;2418:18:1;;10189:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10174:12;:38;10243:7;;;;:46;;;;-1:-1:-1;10275:14:0;;-1:-1:-1;;;;;10267:22:0;;;10275:14;;10267:22;10243:46;10225:154;;;10350:16;;10340:6;10324:13;10334:2;-1:-1:-1;;;;;12016:18:0;11998:7;12016:18;;;:9;:18;;;;;;;11932:105;10324:13;:22;;;;:::i;:::-;:42;;10316:51;;;;;;10395:20;;;;;;;10391:370;;;-1:-1:-1;;;;;10454:29:0;;3776:42;10454:29;;;;:70;;-1:-1:-1;10510:14:0;;-1:-1:-1;;;;;10504:20:0;;;10510:14;;10504:20;;10454:70;10432:318;;;10596:9;10567:39;;;;:28;:39;;;;;;10609:12;-1:-1:-1;10559:102:0;;;;-1:-1:-1;;;10559:102:0;;9025:2:1;10559: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;;10559:102:0;8823:399:1;10559:102:0;10709:9;10680:39;;;;:28;:39;;;;;10722:12;10680:54;;10432:318;10773:18;10794:32;10809:4;10815:2;10819:6;10794:14;:32::i;:::-;10773:53;-1:-1:-1;10837:23:0;10863:19;10773:53;10863:6;:19;:::i;:::-;-1:-1:-1;;;;;10893:15:0;;;;;;:9;:15;;;;;:25;;10837:45;;-1:-1:-1;10912:6:0;;10893:15;;;:25;;10912:6;;10893:25;:::i;:::-;;;;-1:-1:-1;;10935:14:0;;10931:86;;10984:4;10966:24;;;;:9;:24;;;;;:38;;10994:10;;10966:24;:38;;10994:10;;10966:38;:::i;:::-;;;;-1:-1:-1;;10931:86:0;11029:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;11051:13:0;;;;;;:9;:13;;;;;:32;;11068:15;;11051:13;:32;;11068:15;;11051:32;:::i;:::-;;;;;;;;11116:2;-1:-1:-1;;;;;11101:26:0;11110:4;-1:-1:-1;;;;;11101:26:0;;11120:6;11101:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;11101:26:0;;;;;;;;-1:-1:-1;11147:4:0;;9470:1689;-1:-1:-1;;;;;9470:1689:0:o;8573:251::-;8661:27;8675:12;8661:13;:27::i;:::-;8699:16;;;8791:6;;8699:117;;-1:-1:-1;;;8699:117:0;;8764:4;8699:117;;;9708:34:1;9758:18;;;9751:34;;;9801:18;;;9794:34;;;9844:18;;;9837:34;;;;-1:-1:-1;;;;;8791:6:0;;;9887:19:1;;;9880:44;8799:15:0;9940:19:1;;;9933:35;8699:16:0;;;;:32;;8739:13;;9642:19:1;;8699:117:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8573:251;;:::o;4768:241::-;-1:-1:-1;;;;;4878:18:0;;;4857:4;4878:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;:36;-1:-1:-1;4874:106:0;;;2867:13;2806:2;2867;:13;:::i;:::-;2850:31;;:13;:31;:::i;:::-;-1:-1:-1;;;;;4931:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:37;4874:106;-1:-1:-1;4997:4:0;4768:241;;;;;:::o;5707:235::-;-1:-1:-1;;;;;5811:15:0;;5794:4;5811:15;;;:9;:15;;;;;:25;;5830:6;;5811:15;5794:4;;5811:25;;5830:6;;5811:25;:::i;:::-;;;;-1:-1:-1;;;;;;;5847:13:0;;;;;;:9;:13;;;;;:23;;5864:6;;5847:13;:23;;5864:6;;5847:23;:::i;:::-;;;;;;;;5901:2;-1:-1:-1;;;;;5886:26:0;5895:4;-1:-1:-1;;;;;5886:26:0;;5905:6;5886:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;5886:26:0;;;;;;;;-1:-1:-1;5930:4:0;5707:235;;;;;:::o;8832:630::-;4576:7;:14;;-1:-1:-1;;;;4576:14:0;-1:-1:-1;;;4576:14:0;;;8941:4:::1;-1:-1:-1::0;12016:18:0;;;:9;:18;;;;;;8893:54;-1:-1:-1;2996:7:0::1;2867:13;2806:2;2867;:13;:::i;:::-;2850:31;::::0;:13:::1;:31;:::i;:::-;2986:17;;;;:::i;:::-;8964:19;:34;;:53;;;;-1:-1:-1::0;9002:15:0::1;::::0;-1:-1:-1;;;9002:15:0;::::1;;;8964:53;8960:495;;;2937:3;2867:13;2806:2;2867;:13;:::i;:::-;2850:31;::::0;:13:::1;:31;:::i;:::-;2927:13;;;;:::i;:::-;9038:19;:34;9034:78;;2937:3;2867:13;2806:2;2867;:13;:::i;:::-;2850:31;::::0;:13:::1;:31;:::i;:::-;2927:13;;;;:::i;:::-;9076:33;;9034:78;9128:41;9149:19;9128:20;:41::i;:::-;9214:21;9256:23:::0;;9252:192:::1;;9344:10;::::0;:49:::1;::::0;9300:12:::1;::::0;-1:-1:-1;;;;;9344:10:0::1;::::0;9368:19;;9300:12;9344:49;9300:12;9344:49;9368:19;9344:10;:49:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9331:62;;;;;9420:7;9412:16;;;::::0;::::1;;9281:163;9252:192;9019:436;8960:495;-1:-1:-1::0;4613:7:0;:15;;-1:-1:-1;;;;4613:15:0;;;8832:630::o;7142:1204::-;7294:15;;7226:7;;;;-1:-1:-1;;;7294:15:0;;;;:57;;;;-1:-1:-1;;;;;;7327:24:0;;;;;;:18;:24;;;;;;;;7326:25;7294:57;:97;;;;-1:-1:-1;;;;;;7369:22:0;;;;;;:18;:22;;;;;;;;7368:23;7294:97;7276:1034;;;-1:-1:-1;;;;;7455:13:0;;;;;;:7;:13;;;;;;;;;:45;;-1:-1:-1;;;;;;7489:11:0;;;;;;:7;:11;;;;;;;;7455:45;7433:866;;;7578:15;;7566:9;;:27;7565:61;;7612:14;;7565:61;;;7597:12;;7565:61;7548:12;7557:3;7548:6;:12;:::i;:::-;7547:80;;;;:::i;:::-;7678:14;;7535:92;;-1:-1:-1;;;;;;7672:20:0;;;7678:14;;7672:20;:66;;;;-1:-1:-1;;;;;;7717:21:0;;7733:4;7717:21;;7672:66;7646:638;;;7817:12;;7796:18;;:33;;;;:::i;:::-;7781:12;:48;7906:21;;7894:9;;7852:15;;-1:-1:-1;7890:316:0;;;-1:-1:-1;7966:13:0;;7890:316;;;8025:16;;8013:9;;:28;8009:197;;;-1:-1:-1;8080:20:0;;8009:197;;;-1:-1:-1;8167:15:0;;8009:197;8257:7;8241:12;8250:3;8241:6;:12;:::i;:::-;8240:24;;;;:::i;:::-;8228:36;8329:9;-1:-1:-1;;;;;;7142:1204:0:o;11167:230::-;11250:4;11230:26;;;;:11;:26;;;;;;;;3776:42;11230:51;;;;;;;;:60;-1:-1:-1;11226:164:0;;;11327:4;11307:26;;;;:11;:26;;;;;;;;3776:42;11307:51;;;;;;;-1:-1:-1;;11307:71:0;;11167:230;:::o;5017:365::-;5087:26;5101:11;5087:13;:26::i;:::-;5148:16;;;5162:1;5148:16;;;;;;;;5124:21;;5148:16;;;;;;;;;;-1:-1:-1;5148:16:0;5124:40;;5193:4;5175;5180:1;5175:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5175:23:0;;;:7;;;;;;;;;;:23;;;;5219:16;;:23;;;-1:-1:-1;;;5219:23:0;;;;:16;;;;;:21;;:23;;;;;5175:7;;5219:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5209:4;5214:1;5209:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5209:33:0;;;:7;;;;;;;;;:33;5253:16;;:121;;-1:-1:-1;;;5253:121:0;;:16;;;:67;;:121;;5321:11;;5253:16;;5337:4;;5351;;5358:15;;5253:121;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5076:306;5017:365;:::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://bfd9baa4bba98b07b003b35dac829f9d72b1ea7014ddc79078591b21e3e02e9e
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.