ETH Price: $2,407.74 (-1.26%)

Token

Trump Pump (TRPUMP)
 

Overview

Max Total Supply

1,000,000,000 TRPUMP

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
25,209,189.92307884614056269 TRPUMP

Value
$0.00
0x89bc801e73145ac6684c7543454243fd2fed5337
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:
TRPUMP

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 * https://t.me/trpumperc
 * https://x.com/trpumperc
 * https://trumpump.live
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

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

contract TRPUMP is IERC20, Ownable {
    mapping(address => uint256) private _owned;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply = 1e9 * 10 ** 18;

    string private _name = "Trump Pump";
    string private _symbol = "TRPUMP";

    mapping(address => bool) public feeAllowList;
    mapping(address => bool) public limitAllowList;

    mapping(address => bool) public pairs;
    bool public tradeAllowed;

    uint256 public txAllowLimit = (_totalSupply * 20) / 1000;
    uint256 public holdAllowLimit = (_totalSupply * 20) / 1000;

    address public takeHole;

    uint256 public shortFee;

    uint256 public longFee;

    bool public limitChecked = true;
    uint256 public swapMinLimit = (_totalSupply * 5) / 1000000;
    uint256 public swapMaxLimit = _totalSupply / 100;

    bool public swapAllowed = false;
    bool private swapping;

    address public lp;
    IDexRouter public router;

    uint256 public constant FEE_DIVISOR = 10000;

    event OpenLimits();
    event ResetFees(uint256 _shortFee, uint256 _longFee);

    constructor() {
        router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        takeHole = 0x91C2F8d8070a89ac91D2de4007ed75f18053dd5d;

        shortFee = 2000;
        longFee = 2000;

        limitAllowList[takeHole] = true;
        limitAllowList[msg.sender] = true;
        limitAllowList[address(this)] = true;

        feeAllowList[takeHole] = true;

        _owned[msg.sender] = _totalSupply;

        _approve(address(this), address(router), type(uint256).max);
    }

    receive() external payable {}

    function name() public view virtual returns (string memory) {
        return _name;
    }

    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function _transfer(
        address flit,
        address trat,
        uint256 holes
    ) internal virtual {
        if (
            flit == owner() ||
            trat == owner() ||
            flit == address(this) ||
            trat == address(this)
        ) {
            _standardTransfer(flit, trat, holes);
            return;
        }

        limitCheck(flit, trat, holes);

        holes -= checkFee(flit, trat, holes);

        _standardTransfer(flit, trat, holes);
    }

    function _standardTransfer(
        address flit,
        address trat,
        uint256 holes
    ) internal {
        _owned[flit] = _owned[flit] - holes;
        _owned[trat] = _owned[trat] + holes;
        emit Transfer(flit, trat, holes);
    }

    function startLP() external onlyOwner {
        lp = IDexFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );

        pairs[lp] = true;

        limitAllowList[lp] = true;

        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        tradeAllowed = true;
        swapAllowed = true;
    }

    function resetFees(uint256 _shortFee, uint256 _longFee) external onlyOwner {
        shortFee = _shortFee;
        longFee = _longFee;
        require(shortFee <= 9900 && longFee <= 9900, "Keep tax below 99%");
        emit ResetFees(shortFee, longFee);
    }

    function openLimits() external onlyOwner {
        limitChecked = false;
        txAllowLimit = totalSupply();
        holdAllowLimit = totalSupply();
        emit OpenLimits();
    }

    function limitCheck(
        address flit,
        address trat,
        uint256 holes
    ) internal view {
        require(tradeAllowed, "Trading is not allowed");

        if (limitChecked) {
            if (pairs[flit] && !limitAllowList[trat]) {
                require(holes <= txAllowLimit, "Exceeds tx limit");
                require(
                    holes + balanceOf(trat) <= holdAllowLimit,
                    "Exceeds bag size"
                );
            } else if (pairs[trat] && !limitAllowList[flit]) {
                require(holes <= txAllowLimit, "Exceeds tx limit");
            } else if (!limitAllowList[trat]) {
                require(
                    holes + balanceOf(trat) <= holdAllowLimit,
                    "Exceeds bag size"
                );
            }
        }
    }

    function checkFee(
        address flit,
        address trat,
        uint256 holes
    ) internal returns (uint256) {
        if (
            holes >= swapMinLimit &&
            !swapping &&
            swapAllowed &&
            pairs[trat] &&
            !feeAllowList[flit]
        ) {
            swapping = true;
            swapBackAndSend();
            swapping = false;
        }

        uint256 tax = 0;

        if (!feeAllowList[flit] && !feeAllowList[trat]) {
            if (pairs[trat] && longFee > 0) {
                tax = (holes * longFee) / FEE_DIVISOR;
            } else if (pairs[flit] && shortFee > 0) {
                tax = (holes * shortFee) / FEE_DIVISOR;
            }
            if (tax > 0) {
                _owned[flit] = _owned[flit] - tax;
                _owned[address(this)] = _owned[address(this)] + tax;
                emit Transfer(flit, address(this), tax);
            }
        } else {
            _owned[flit] = _owned[flit] + (holes - tax);
        }

        return tax;
    }

    function swapTokensForETH(uint256 tokens) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = address(router.WETH());

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokens,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBackAndSend() private {
        uint256 contractBalance = balanceOf(address(this));

        if (contractBalance > swapMaxLimit) {
            contractBalance = swapMaxLimit;
        }

        if (contractBalance > swapMinLimit) swapTokensForETH(contractBalance);

        payable(takeHole).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"OpenLimits","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":false,"internalType":"uint256","name":"_shortFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_longFee","type":"uint256"}],"name":"ResetFees","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":"FEE_DIVISOR","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeAllowList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"holdAllowLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"limitAllowList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitChecked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"longFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shortFee","type":"uint256"},{"internalType":"uint256","name":"_longFee","type":"uint256"}],"name":"resetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shortFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMaxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeHole","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txAllowLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6b033b2e3c9fd0803ce800000060035560c0604052600a60809081526905472756d702050756d760b41b60a0526004906200003b908262000410565b506040805180820190915260068152650545250554d560d41b602082015260059062000068908262000410565b506103e860035460146200007d9190620004dc565b62000089919062000508565b600a556103e86003546014620000a09190620004dc565b620000ac919062000508565b600b55600f805460ff19166001179055600354620f424090620000d1906005620004dc565b620000dd919062000508565b6010556064600354620000f1919062000508565b6011556012805460ff191690553480156200010b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601380546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d178255600c80549091167391c2f8d8070a89ac91d2de4007ed75f18053dd5d1781556107d0600d819055600e55600760209081527f8ecbc22112a907f8d757f130e05c87d71cda4e4f5866fb9949effd60d6491a18805460ff1990811660019081179092553360008181526040808220805485168617905530808352818320805486168717905596546001600160a01b039081168352600687528183208054909516861790945560035492825293909452919092205591546200023992166000196200023f565b6200052b565b6001600160a01b038316620002a75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200030a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200029e565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200039657607f821691505b602082108103620003b757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200040b57600081815260208120601f850160051c81016020861015620003e65750805b601f850160051c820191505b818110156200040757828155600101620003f2565b5050505b505050565b81516001600160401b038111156200042c576200042c6200036b565b62000444816200043d845462000381565b84620003bd565b602080601f8311600181146200047c5760008415620004635750858301515b600019600386901b1c1916600185901b17855562000407565b600085815260208120601f198616915b82811015620004ad578886015182559484019460019091019084016200048c565b5085821015620004cc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200050257634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200052657634e487b7160e01b600052601260045260246000fd5b500490565b6119c2806200053b6000396000f3fe6080604052600436106101f25760003560e01c8063684517bc1161010d5780639e93ad8e116100a0578063dd62ed3e1161006f578063dd62ed3e14610554578063e9b652ee14610574578063f2fde38b146105a4578063f887ea40146105c4578063fe33b302146105e457600080fd5b80639e93ad8e146104de578063a457c2d7146104f4578063a9059cbb14610514578063adfe0db51461053457600080fd5b80638c5a963b116100dc5780638c5a963b146104805780638da5cb5b1461049657806395d89b41146104b4578063992db38f146104c957600080fd5b8063684517bc1461040157806370a082311461041b578063715018a6146104515780637a32bae41461046657600080fd5b8063245a263a116101855780633b807270116101545780633b8072701461039f57806342fb3363146103b55780634789d2ef146103cb57806358d09c5a146103eb57600080fd5b8063245a263a1461030e578063313c06a014610325578063313ce56714610363578063395093511461037f57600080fd5b80630c62b2be116101c15780630c62b2be146102a9578063172869c4146102bf57806318160ddd146102d957806323b872dd146102ee57600080fd5b80630673cbe0146101fe57806306fdde0314610243578063095ea7b3146102655780630ad5d06c1461028557600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061022e61021936600461169c565b60066020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561024f57600080fd5b50610258610614565b60405161023a91906116c0565b34801561027157600080fd5b5061022e61028036600461170e565b6106a6565b34801561029157600080fd5b5061029b60105481565b60405190815260200161023a565b3480156102b557600080fd5b5061029b600b5481565b3480156102cb57600080fd5b5060125461022e9060ff1681565b3480156102e557600080fd5b5060035461029b565b3480156102fa57600080fd5b5061022e61030936600461173a565b6106bd565b34801561031a57600080fd5b506103236106e1565b005b34801561033157600080fd5b5060125461034b906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161023a565b34801561036f57600080fd5b506040516012815260200161023a565b34801561038b57600080fd5b5061022e61039a36600461170e565b610755565b3480156103ab57600080fd5b5061029b600d5481565b3480156103c157600080fd5b5061029b600e5481565b3480156103d757600080fd5b50600c5461034b906001600160a01b031681565b3480156103f757600080fd5b5061029b60115481565b34801561040d57600080fd5b50600f5461022e9060ff1681565b34801561042757600080fd5b5061029b61043636600461169c565b6001600160a01b031660009081526001602052604090205490565b34801561045d57600080fd5b50610323610781565b34801561047257600080fd5b5060095461022e9060ff1681565b34801561048c57600080fd5b5061029b600a5481565b3480156104a257600080fd5b506000546001600160a01b031661034b565b3480156104c057600080fd5b506102586107f5565b3480156104d557600080fd5b50610323610804565b3480156104ea57600080fd5b5061029b61271081565b34801561050057600080fd5b5061022e61050f36600461170e565b610af4565b34801561052057600080fd5b5061022e61052f36600461170e565b610b6f565b34801561054057600080fd5b5061032361054f36600461177b565b610b7c565b34801561056057600080fd5b5061029b61056f36600461179d565b610c51565b34801561058057600080fd5b5061022e61058f36600461169c565b60076020526000908152604090205460ff1681565b3480156105b057600080fd5b506103236105bf36600461169c565b610c7c565b3480156105d057600080fd5b5060135461034b906001600160a01b031681565b3480156105f057600080fd5b5061022e6105ff36600461169c565b60086020526000908152604090205460ff1681565b606060048054610623906117d6565b80601f016020809104026020016040519081016040528092919081815260200182805461064f906117d6565b801561069c5780601f106106715761010080835404028352916020019161069c565b820191906000526020600020905b81548152906001019060200180831161067f57829003601f168201915b5050505050905090565b60006106b3338484610d66565b5060015b92915050565b6000336106cb858285610e8b565b6106d6858585610f05565b506001949350505050565b6000546001600160a01b031633146107145760405162461bcd60e51b815260040161070b90611810565b60405180910390fd5b600f805460ff19169055600354600a55600354600b556040517f3ee5bcd6f236020f2d6701b84f07351e01f36135e3b80402c528f1c3a302a10890600090a1565b6000336107778185856107688383610c51565b610772919061185b565b610d66565b5060019392505050565b6000546001600160a01b031633146107ab5760405162461bcd60e51b815260040161070b90611810565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060058054610623906117d6565b6000546001600160a01b0316331461082e5760405162461bcd60e51b815260040161070b90611810565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610881573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a5919061186e565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b919061186e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c919061186e565b601280546001600160a01b039283166201000090810262010000600160b01b03199092169190911780835581900483166000908152600860209081526040808320805460ff199081166001908117909255955494909404861683526007909152902080549092161790556013541663f305d7194730610a30816001600160a01b031660009081526001602052604090205490565b600080610a456000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aad573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ad2919061188b565b505060098054600160ff19918216811790925560128054909116909117905550565b60003381610b028286610c51565b905083811015610b625760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070b565b6106d68286868403610d66565b60006106b3338484610f05565b6000546001600160a01b03163314610ba65760405162461bcd60e51b815260040161070b90611810565b600d829055600e8190556126ac8211801590610bc657506126ac600e5411155b610c075760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772039392560701b604482015260640161070b565b7f1d55e6083e6bb56efd6bf1100e6971701de86a0f97374f560d7776cfa09bbf30600d54600e54604051610c45929190918252602082015260400190565b60405180910390a15050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610ca65760405162461bcd60e51b815260040161070b90611810565b6001600160a01b038116610d0b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dc85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070b565b6001600160a01b038216610e295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610e978484610c51565b90506000198114610eff5781811015610ef25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070b565b610eff8484848403610d66565b50505050565b6000546001600160a01b0384811691161480610f2e57506000546001600160a01b038381169116145b80610f4157506001600160a01b03831630145b80610f5457506001600160a01b03821630145b15610f6957610f64838383610f92565b505050565b610f7483838361103a565b610f7f83838361124f565b610f8990826118b9565b9050610f648383835b6001600160a01b038316600090815260016020526040902054610fb69082906118b9565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610fe690829061185b565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e7e9085815260200190565b60095460ff166110855760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08185b1b1bddd95960521b604482015260640161070b565b600f5460ff1615610f64576001600160a01b03831660009081526008602052604090205460ff1680156110d157506001600160a01b03821660009081526007602052604090205460ff16155b1561118357600a5481111561111b5760405162461bcd60e51b815260206004820152601060248201526f115e18d959591cc81d1e081b1a5b5a5d60821b604482015260640161070b565b600b546001600160a01b0383166000908152600160205260409020545b611142908361185b565b1115610f645760405162461bcd60e51b815260206004820152601060248201526f45786365656473206261672073697a6560801b604482015260640161070b565b6001600160a01b03821660009081526008602052604090205460ff1680156111c457506001600160a01b03831660009081526007602052604090205460ff16155b1561120e57600a54811115610f645760405162461bcd60e51b815260206004820152601060248201526f115e18d959591cc81d1e081b1a5b5a5d60821b604482015260640161070b565b6001600160a01b03821660009081526007602052604090205460ff16610f6457600b546001600160a01b038316600090815260016020526040902054611138565b6000601054821015801561126b5750601254610100900460ff16155b8015611279575060125460ff165b801561129d57506001600160a01b03831660009081526008602052604090205460ff165b80156112c257506001600160a01b03841660009081526006602052604090205460ff16155b156112ea576012805461ff0019166101001790556112de6114d4565b6012805461ff00191690555b6001600160a01b03841660009081526006602052604081205460ff1615801561132c57506001600160a01b03841660009081526006602052604090205460ff16155b15611485576001600160a01b03841660009081526008602052604090205460ff16801561135b57506000600e54115b1561138257612710600e548461137191906118cc565b61137b91906118e3565b90506113cf565b6001600160a01b03851660009081526008602052604090205460ff1680156113ac57506000600d54115b156113cf57612710600d54846113c291906118cc565b6113cc91906118e3565b90505b8015611480576001600160a01b0385166000908152600160205260409020546113f99082906118b9565b6001600160a01b03861660009081526001602052604080822092909255308152205461142690829061185b565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114779085815260200190565b60405180910390a35b6114cc565b61148f81846118b9565b6001600160a01b0386166000908152600160205260409020546114b2919061185b565b6001600160a01b0386166000908152600160205260409020555b949350505050565b306000908152600160205260409020546011548111156114f357506011545b6010548111156115065761150681611543565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561153f573d6000803e3d6000fd5b5050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061157857611578611905565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f5919061186e565b8160018151811061160857611608611905565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac9479061164e90859060009086903090429060040161191b565b600060405180830381600087803b15801561166857600080fd5b505af115801561167c573d6000803e3d6000fd5b505050505050565b6001600160a01b038116811461169957600080fd5b50565b6000602082840312156116ae57600080fd5b81356116b981611684565b9392505050565b600060208083528351808285015260005b818110156116ed578581018301518582016040015282016116d1565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561172157600080fd5b823561172c81611684565b946020939093013593505050565b60008060006060848603121561174f57600080fd5b833561175a81611684565b9250602084013561176a81611684565b929592945050506040919091013590565b6000806040838503121561178e57600080fd5b50508035926020909101359150565b600080604083850312156117b057600080fd5b82356117bb81611684565b915060208301356117cb81611684565b809150509250929050565b600181811c908216806117ea57607f821691505b60208210810361180a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106b7576106b7611845565b60006020828403121561188057600080fd5b81516116b981611684565b6000806000606084860312156118a057600080fd5b8351925060208401519150604084015190509250925092565b818103818111156106b7576106b7611845565b80820281158282048414176106b7576106b7611845565b60008261190057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196b5784516001600160a01b031683529383019391830191600101611946565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f6ea1b5d4766b2361ee39133d2e34b517020a9c17a621f367410a9272047a1cd64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063684517bc1161010d5780639e93ad8e116100a0578063dd62ed3e1161006f578063dd62ed3e14610554578063e9b652ee14610574578063f2fde38b146105a4578063f887ea40146105c4578063fe33b302146105e457600080fd5b80639e93ad8e146104de578063a457c2d7146104f4578063a9059cbb14610514578063adfe0db51461053457600080fd5b80638c5a963b116100dc5780638c5a963b146104805780638da5cb5b1461049657806395d89b41146104b4578063992db38f146104c957600080fd5b8063684517bc1461040157806370a082311461041b578063715018a6146104515780637a32bae41461046657600080fd5b8063245a263a116101855780633b807270116101545780633b8072701461039f57806342fb3363146103b55780634789d2ef146103cb57806358d09c5a146103eb57600080fd5b8063245a263a1461030e578063313c06a014610325578063313ce56714610363578063395093511461037f57600080fd5b80630c62b2be116101c15780630c62b2be146102a9578063172869c4146102bf57806318160ddd146102d957806323b872dd146102ee57600080fd5b80630673cbe0146101fe57806306fdde0314610243578063095ea7b3146102655780630ad5d06c1461028557600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061022e61021936600461169c565b60066020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561024f57600080fd5b50610258610614565b60405161023a91906116c0565b34801561027157600080fd5b5061022e61028036600461170e565b6106a6565b34801561029157600080fd5b5061029b60105481565b60405190815260200161023a565b3480156102b557600080fd5b5061029b600b5481565b3480156102cb57600080fd5b5060125461022e9060ff1681565b3480156102e557600080fd5b5060035461029b565b3480156102fa57600080fd5b5061022e61030936600461173a565b6106bd565b34801561031a57600080fd5b506103236106e1565b005b34801561033157600080fd5b5060125461034b906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161023a565b34801561036f57600080fd5b506040516012815260200161023a565b34801561038b57600080fd5b5061022e61039a36600461170e565b610755565b3480156103ab57600080fd5b5061029b600d5481565b3480156103c157600080fd5b5061029b600e5481565b3480156103d757600080fd5b50600c5461034b906001600160a01b031681565b3480156103f757600080fd5b5061029b60115481565b34801561040d57600080fd5b50600f5461022e9060ff1681565b34801561042757600080fd5b5061029b61043636600461169c565b6001600160a01b031660009081526001602052604090205490565b34801561045d57600080fd5b50610323610781565b34801561047257600080fd5b5060095461022e9060ff1681565b34801561048c57600080fd5b5061029b600a5481565b3480156104a257600080fd5b506000546001600160a01b031661034b565b3480156104c057600080fd5b506102586107f5565b3480156104d557600080fd5b50610323610804565b3480156104ea57600080fd5b5061029b61271081565b34801561050057600080fd5b5061022e61050f36600461170e565b610af4565b34801561052057600080fd5b5061022e61052f36600461170e565b610b6f565b34801561054057600080fd5b5061032361054f36600461177b565b610b7c565b34801561056057600080fd5b5061029b61056f36600461179d565b610c51565b34801561058057600080fd5b5061022e61058f36600461169c565b60076020526000908152604090205460ff1681565b3480156105b057600080fd5b506103236105bf36600461169c565b610c7c565b3480156105d057600080fd5b5060135461034b906001600160a01b031681565b3480156105f057600080fd5b5061022e6105ff36600461169c565b60086020526000908152604090205460ff1681565b606060048054610623906117d6565b80601f016020809104026020016040519081016040528092919081815260200182805461064f906117d6565b801561069c5780601f106106715761010080835404028352916020019161069c565b820191906000526020600020905b81548152906001019060200180831161067f57829003601f168201915b5050505050905090565b60006106b3338484610d66565b5060015b92915050565b6000336106cb858285610e8b565b6106d6858585610f05565b506001949350505050565b6000546001600160a01b031633146107145760405162461bcd60e51b815260040161070b90611810565b60405180910390fd5b600f805460ff19169055600354600a55600354600b556040517f3ee5bcd6f236020f2d6701b84f07351e01f36135e3b80402c528f1c3a302a10890600090a1565b6000336107778185856107688383610c51565b610772919061185b565b610d66565b5060019392505050565b6000546001600160a01b031633146107ab5760405162461bcd60e51b815260040161070b90611810565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060058054610623906117d6565b6000546001600160a01b0316331461082e5760405162461bcd60e51b815260040161070b90611810565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610881573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a5919061186e565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b919061186e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c919061186e565b601280546001600160a01b039283166201000090810262010000600160b01b03199092169190911780835581900483166000908152600860209081526040808320805460ff199081166001908117909255955494909404861683526007909152902080549092161790556013541663f305d7194730610a30816001600160a01b031660009081526001602052604090205490565b600080610a456000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610aad573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ad2919061188b565b505060098054600160ff19918216811790925560128054909116909117905550565b60003381610b028286610c51565b905083811015610b625760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070b565b6106d68286868403610d66565b60006106b3338484610f05565b6000546001600160a01b03163314610ba65760405162461bcd60e51b815260040161070b90611810565b600d829055600e8190556126ac8211801590610bc657506126ac600e5411155b610c075760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772039392560701b604482015260640161070b565b7f1d55e6083e6bb56efd6bf1100e6971701de86a0f97374f560d7776cfa09bbf30600d54600e54604051610c45929190918252602082015260400190565b60405180910390a15050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610ca65760405162461bcd60e51b815260040161070b90611810565b6001600160a01b038116610d0b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dc85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070b565b6001600160a01b038216610e295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610e978484610c51565b90506000198114610eff5781811015610ef25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161070b565b610eff8484848403610d66565b50505050565b6000546001600160a01b0384811691161480610f2e57506000546001600160a01b038381169116145b80610f4157506001600160a01b03831630145b80610f5457506001600160a01b03821630145b15610f6957610f64838383610f92565b505050565b610f7483838361103a565b610f7f83838361124f565b610f8990826118b9565b9050610f648383835b6001600160a01b038316600090815260016020526040902054610fb69082906118b9565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610fe690829061185b565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e7e9085815260200190565b60095460ff166110855760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08185b1b1bddd95960521b604482015260640161070b565b600f5460ff1615610f64576001600160a01b03831660009081526008602052604090205460ff1680156110d157506001600160a01b03821660009081526007602052604090205460ff16155b1561118357600a5481111561111b5760405162461bcd60e51b815260206004820152601060248201526f115e18d959591cc81d1e081b1a5b5a5d60821b604482015260640161070b565b600b546001600160a01b0383166000908152600160205260409020545b611142908361185b565b1115610f645760405162461bcd60e51b815260206004820152601060248201526f45786365656473206261672073697a6560801b604482015260640161070b565b6001600160a01b03821660009081526008602052604090205460ff1680156111c457506001600160a01b03831660009081526007602052604090205460ff16155b1561120e57600a54811115610f645760405162461bcd60e51b815260206004820152601060248201526f115e18d959591cc81d1e081b1a5b5a5d60821b604482015260640161070b565b6001600160a01b03821660009081526007602052604090205460ff16610f6457600b546001600160a01b038316600090815260016020526040902054611138565b6000601054821015801561126b5750601254610100900460ff16155b8015611279575060125460ff165b801561129d57506001600160a01b03831660009081526008602052604090205460ff165b80156112c257506001600160a01b03841660009081526006602052604090205460ff16155b156112ea576012805461ff0019166101001790556112de6114d4565b6012805461ff00191690555b6001600160a01b03841660009081526006602052604081205460ff1615801561132c57506001600160a01b03841660009081526006602052604090205460ff16155b15611485576001600160a01b03841660009081526008602052604090205460ff16801561135b57506000600e54115b1561138257612710600e548461137191906118cc565b61137b91906118e3565b90506113cf565b6001600160a01b03851660009081526008602052604090205460ff1680156113ac57506000600d54115b156113cf57612710600d54846113c291906118cc565b6113cc91906118e3565b90505b8015611480576001600160a01b0385166000908152600160205260409020546113f99082906118b9565b6001600160a01b03861660009081526001602052604080822092909255308152205461142690829061185b565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114779085815260200190565b60405180910390a35b6114cc565b61148f81846118b9565b6001600160a01b0386166000908152600160205260409020546114b2919061185b565b6001600160a01b0386166000908152600160205260409020555b949350505050565b306000908152600160205260409020546011548111156114f357506011545b6010548111156115065761150681611543565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561153f573d6000803e3d6000fd5b5050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061157857611578611905565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f5919061186e565b8160018151811061160857611608611905565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac9479061164e90859060009086903090429060040161191b565b600060405180830381600087803b15801561166857600080fd5b505af115801561167c573d6000803e3d6000fd5b505050505050565b6001600160a01b038116811461169957600080fd5b50565b6000602082840312156116ae57600080fd5b81356116b981611684565b9392505050565b600060208083528351808285015260005b818110156116ed578581018301518582016040015282016116d1565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561172157600080fd5b823561172c81611684565b946020939093013593505050565b60008060006060848603121561174f57600080fd5b833561175a81611684565b9250602084013561176a81611684565b929592945050506040919091013590565b6000806040838503121561178e57600080fd5b50508035926020909101359150565b600080604083850312156117b057600080fd5b82356117bb81611684565b915060208301356117cb81611684565b809150509250929050565b600181811c908216806117ea57607f821691505b60208210810361180a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106b7576106b7611845565b60006020828403121561188057600080fd5b81516116b981611684565b6000806000606084860312156118a057600080fd5b8351925060208401519150604084015190509250925092565b818103818111156106b7576106b7611845565b80820281158282048414176106b7576106b7611845565b60008261190057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196b5784516001600160a01b031683529383019391830191600101611946565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f6ea1b5d4766b2361ee39133d2e34b517020a9c17a621f367410a9272047a1cd64736f6c63430008130033

Deployed Bytecode Sourcemap

3067:9206:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3374:44;;;;;;;;;;-1:-1:-1;3374:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;567:14:1;;560:22;542:41;;530:2;515:18;3374:44:0;;;;;;;;4760:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5455:186::-;;;;;;;;;;-1:-1:-1;5455:186:0;;;;;:::i;:::-;;:::i;3820:58::-;;;;;;;;;;;;;;;;;;;1613:25:1;;;1601:2;1586:18;3820:58:0;1467:177:1;3620:58:0;;;;;;;;;;;;;;;;3942:31;;;;;;;;;;-1:-1:-1;3942:31:0;;;;;;;;5054:99;;;;;;;;;;-1:-1:-1;5133:12:0;;5054:99;;5161:286;;;;;;;;;;-1:-1:-1;5161:286:0;;;;;:::i;:::-;;:::i;9408:188::-;;;;;;;;;;;;;:::i;:::-;;4010:17;;;;;;;;;;-1:-1:-1;4010:17:0;;;;;;;-1:-1:-1;;;;;4010:17:0;;;;;;-1:-1:-1;;;;;2274:32:1;;;2256:51;;2244:2;2229:18;4010:17:0;2110:203:1;4962:84:0;;;;;;;;;;-1:-1:-1;4962:84:0;;5036:2;2460:36:1;;2448:2;2433:18;4962:84:0;2318:184:1;5649:263:0;;;;;;;;;;-1:-1:-1;5649:263:0;;;;;:::i;:::-;;:::i;3719:23::-;;;;;;;;;;;;;;;;3751:22;;;;;;;;;;;;;;;;3687:23;;;;;;;;;;-1:-1:-1;3687:23:0;;;;-1:-1:-1;;;;;3687:23:0;;;3885:48;;;;;;;;;;;;;;;;3782:31;;;;;;;;;;-1:-1:-1;3782:31:0;;;;;;;;6602:116;;;;;;;;;;-1:-1:-1;6602:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;6695:15:0;6668:7;6695:15;;;:6;:15;;;;;;;6602:116;1785:150;;;;;;;;;;;;;:::i;3524:24::-;;;;;;;;;;-1:-1:-1;3524:24:0;;;;;;;;3557:56;;;;;;;;;;;;;;;;1571:79;;;;;;;;;;-1:-1:-1;1609:7:0;1636:6;-1:-1:-1;;;;;1636:6:0;1571:79;;4859:95;;;;;;;;;;;;;:::i;8604:524::-;;;;;;;;;;;;;:::i;4067:43::-;;;;;;;;;;;;4105:5;4067:43;;6096:498;;;;;;;;;;-1:-1:-1;6096:498:0;;;;;:::i;:::-;;:::i;7624:192::-;;;;;;;;;;-1:-1:-1;7624:192:0;;;;;:::i;:::-;;:::i;9136:264::-;;;;;;;;;;-1:-1:-1;9136:264:0;;;;;:::i;:::-;;:::i;5920:168::-;;;;;;;;;;-1:-1:-1;5920:168:0;;;;;:::i;:::-;;:::i;3425:46::-;;;;;;;;;;-1:-1:-1;3425:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1943:281;;;;;;;;;;-1:-1:-1;1943:281:0;;;;;:::i;:::-;;:::i;4034:24::-;;;;;;;;;;-1:-1:-1;4034:24:0;;;;-1:-1:-1;;;;;4034:24:0;;;3480:37;;;;;;;;;;-1:-1:-1;3480:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4760:91;4805:13;4838:5;4831:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4760:91;:::o;5455:186::-;5555:4;5572:39;269:10;5595:7;5604:6;5572:8;:39::i;:::-;-1:-1:-1;5629:4:0;5455:186;;;;;:::o;5161:286::-;5283:4;269:10;5341:38;5357:4;269:10;5372:6;5341:15;:38::i;:::-;5390:27;5400:4;5406:2;5410:6;5390:9;:27::i;:::-;-1:-1:-1;5435:4:0;;5161:286;-1:-1:-1;;;;5161:286:0:o;9408:188::-;1698:6;;-1:-1:-1;;;;;1698:6:0;269:10;1698:22;1690:67;;;;-1:-1:-1;;;1690:67:0;;;;;;;:::i;:::-;;;;;;;;;9460:12:::1;:20:::0;;-1:-1:-1;;9460:20:0::1;::::0;;5133:12;;9491::::1;:28:::0;5133:12;;9530:14:::1;:30:::0;9576:12:::1;::::0;::::1;::::0;;;::::1;9408:188::o:0;5649:263::-;5762:4;269:10;5818:64;269:10;5834:7;5871:10;5843:25;269:10;5834:7;5843:9;:25::i;:::-;:38;;;;:::i;:::-;5818:8;:64::i;:::-;-1:-1:-1;5900:4:0;;5649:263;-1:-1:-1;;;5649:263:0:o;1785:150::-;1698:6;;-1:-1:-1;;;;;1698:6:0;269:10;1698:22;1690:67;;;;-1:-1:-1;;;1690:67:0;;;;;;;:::i;:::-;1894:1:::1;1878:6:::0;;1857:40:::1;::::0;-1:-1:-1;;;;;1878:6:0;;::::1;::::0;1857:40:::1;::::0;1894:1;;1857:40:::1;1925:1;1908:19:::0;;-1:-1:-1;;;;;;1908:19:0::1;::::0;;1785:150::o;4859:95::-;4906:13;4939:7;4932:14;;;;;:::i;8604:524::-;1698:6;;-1:-1:-1;;;;;1698:6:0;269:10;1698:22;1690:67;;;;-1:-1:-1;;;1690:67:0;;;;;;;:::i;:::-;8670:6:::1;;;;;;;;;-1:-1:-1::0;;;;;8670:6:0::1;-1:-1:-1::0;;;;;8670:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8658:40:0::1;;8721:4;8741:6;;;;;;;;;-1:-1:-1::0;;;;;8741:6:0::1;-1:-1:-1::0;;;;;8741:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8658:107;::::0;-1:-1:-1;;;;;;8658:107:0::1;::::0;;;;;;-1:-1:-1;;;;;4873:15:1;;;8658:107:0::1;::::0;::::1;4855:34:1::0;4925:15;;4905:18;;;4898:43;4790:18;;8658:107:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8653:2;:112:::0;;-1:-1:-1;;;;;8653:112:0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;;;8653:112:0;;::::1;::::0;;;::::1;::::0;;;8784:2;;::::1;::::0;::::1;-1:-1:-1::0;8778:9:0;;;:5:::1;:9;::::0;;;;;;;:16;;-1:-1:-1;;8778:16:0;;::::1;-1:-1:-1::0;8778:16:0;;::::1;::::0;;;8822:2;;;;;::::1;::::0;::::1;8807:18:::0;;:14:::1;:18:::0;;;;;:25;;;;::::1;;::::0;;8845:6:::1;::::0;::::1;:22;8875:21;8920:4;8940:24;8920:4:::0;-1:-1:-1;;;;;6695:15:0;6668:7;6695:15;;;:6;:15;;;;;;;6602:116;8940:24:::1;8979:1;8995::::0;9011:7:::1;1609::::0;1636:6;-1:-1:-1;;;;;1636:6:0;;1571:79;9011:7:::1;8845:214;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8845:214:0;;;-1:-1:-1;;;;;5311:15:1;;;8845:214:0::1;::::0;::::1;5293:34:1::0;5343:18;;;5336:34;;;;5386:18;;;5379:34;;;;5429:18;;;5422:34;5493:15;;;5472:19;;;5465:44;9033:15:0::1;5525:19:1::0;;;5518:35;5227:19;;8845:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9072:12:0::1;:19:::0;;9087:4:::1;-1:-1:-1::0;;9072:19:0;;::::1;::::0;::::1;::::0;;;9102:11:::1;:18:::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;8604:524:0:o;6096:498::-;6214:4;269:10;6214:4;6297:25;269:10;6314:7;6297:9;:25::i;:::-;6270:52;;6375:15;6355:16;:35;;6333:122;;;;-1:-1:-1;;;6333:122:0;;6077:2:1;6333:122:0;;;6059:21:1;6116:2;6096:18;;;6089:30;6155:34;6135:18;;;6128:62;-1:-1:-1;;;6206:18:1;;;6199:35;6251:19;;6333:122:0;5875:401:1;6333:122:0;6491:60;6500:5;6507:7;6535:15;6516:16;:34;6491:8;:60::i;7624:192::-;7727:4;7744:42;269:10;7768:9;7779:6;7744:9;:42::i;9136:264::-;1698:6;;-1:-1:-1;;;;;1698:6:0;269:10;1698:22;1690:67;;;;-1:-1:-1;;;1690:67:0;;;;;;;:::i;:::-;9222:8:::1;:20:::0;;;9253:7:::1;:18:::0;;;9302:4:::1;9290:16:::0;::::1;::::0;::::1;::::0;:35:::1;;;9321:4;9310:7;;:15;;9290:35;9282:66;;;::::0;-1:-1:-1;;;9282:66:0;;6483:2:1;9282:66:0::1;::::0;::::1;6465:21:1::0;6522:2;6502:18;;;6495:30;-1:-1:-1;;;6541:18:1;;;6534:48;6599:18;;9282:66:0::1;6281:342:1::0;9282:66:0::1;9364:28;9374:8;;9384:7;;9364:28;;;;;;6802:25:1::0;;;6858:2;6843:18;;6836:34;6790:2;6775:18;;6628:248;9364:28:0::1;;;;;;;;9136:264:::0;;:::o;5920:168::-;-1:-1:-1;;;;;6053:18:0;;;6026:7;6053:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5920:168::o;1943:281::-;1698:6;;-1:-1:-1;;;;;1698:6:0;269:10;1698:22;1690:67;;;;-1:-1:-1;;;1690:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2046:22:0;::::1;2024:110;;;::::0;-1:-1:-1;;;2024:110:0;;7083:2:1;2024:110:0::1;::::0;::::1;7065:21:1::0;7122:2;7102:18;;;7095:30;7161:34;7141:18;;;7134:62;-1:-1:-1;;;7212:18:1;;;7205:36;7258:19;;2024:110:0::1;6881:402:1::0;2024:110:0::1;2171:6;::::0;;2150:38:::1;::::0;-1:-1:-1;;;;;2150:38:0;;::::1;::::0;2171:6;::::1;::::0;2150:38:::1;::::0;::::1;2199:6;:17:::0;;-1:-1:-1;;;;;;2199:17:0::1;-1:-1:-1::0;;;;;2199:17:0;;;::::1;::::0;;;::::1;::::0;;1943:281::o;6726:380::-;-1:-1:-1;;;;;6862:19:0;;6854:68;;;;-1:-1:-1;;;6854:68:0;;7490:2:1;6854:68:0;;;7472:21:1;7529:2;7509:18;;;7502:30;7568:34;7548:18;;;7541:62;-1:-1:-1;;;7619:18:1;;;7612:34;7663:19;;6854:68:0;7288:400:1;6854:68:0;-1:-1:-1;;;;;6941:21:0;;6933:68;;;;-1:-1:-1;;;6933:68:0;;7895:2:1;6933:68:0;;;7877:21:1;7934:2;7914:18;;;7907:30;7973:34;7953:18;;;7946:62;-1:-1:-1;;;8024:18:1;;;8017:32;8066:19;;6933:68:0;7693:398:1;6933:68:0;-1:-1:-1;;;;;7014:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7066:32;;1613:25:1;;;7066:32:0;;1586:18:1;7066:32:0;;;;;;;;6726:380;;;:::o;7114:502::-;7249:24;7276:25;7286:5;7293:7;7276:9;:25::i;:::-;7249:52;;-1:-1:-1;;7316:16:0;:37;7312:297;;7416:6;7396:16;:26;;7370:117;;;;-1:-1:-1;;;7370:117:0;;8298:2:1;7370:117:0;;;8280:21:1;8337:2;8317:18;;;8310:30;8376:31;8356:18;;;8349:59;8425:18;;7370:117:0;8096:353:1;7370:117:0;7531:51;7540:5;7547:7;7575:6;7556:16;:25;7531:8;:51::i;:::-;7238:378;7114:502;;;:::o;7824:508::-;1609:7;1636:6;-1:-1:-1;;;;;7966:15:0;;;1636:6;;7966:15;;:47;;-1:-1:-1;1609:7:0;1636:6;-1:-1:-1;;;;;7998:15:0;;;1636:6;;7998:15;7966:47;:85;;;-1:-1:-1;;;;;;8030:21:0;;8046:4;8030:21;7966:85;:123;;;-1:-1:-1;;;;;;8068:21:0;;8084:4;8068:21;7966:123;7948:237;;;8116:36;8134:4;8140;8146:5;8116:17;:36::i;:::-;7824:508;;;:::o;7948:237::-;8197:29;8208:4;8214;8220:5;8197:10;:29::i;:::-;8248:27;8257:4;8263;8269:5;8248:8;:27::i;:::-;8239:36;;;;:::i;:::-;;;8288;8306:4;8312;8318:5;8340:256;-1:-1:-1;;;;;8479:12:0;;;;;;:6;:12;;;;;;:20;;8494:5;;8479:20;:::i;:::-;-1:-1:-1;;;;;8464:12:0;;;;;;;:6;:12;;;;;;:35;;;;8525:12;;;;;;;:20;;8540:5;;8525:20;:::i;:::-;-1:-1:-1;;;;;8510:12:0;;;;;;;:6;:12;;;;;;;:35;;;;8561:27;;;;;;;;;;8582:5;1613:25:1;;1601:2;1586:18;;1467:177;9604:842:0;9734:12;;;;9726:47;;;;-1:-1:-1;;;9726:47:0;;8789:2:1;9726:47:0;;;8771:21:1;8828:2;8808:18;;;8801:30;-1:-1:-1;;;8847:18:1;;;8840:52;8909:18;;9726:47:0;8587:346:1;9726:47:0;9790:12;;;;9786:653;;;-1:-1:-1;;;;;9823:11:0;;;;;;:5;:11;;;;;;;;:36;;;;-1:-1:-1;;;;;;9839:20:0;;;;;;:14;:20;;;;;;;;9838:21;9823:36;9819:609;;;9897:12;;9888:5;:21;;9880:50;;;;-1:-1:-1;;;9880:50:0;;9140:2:1;9880:50:0;;;9122:21:1;9179:2;9159:18;;;9152:30;-1:-1:-1;;;9198:18:1;;;9191:46;9254:18;;9880:50:0;8938:340:1;9880:50:0;10006:14;;-1:-1:-1;;;;;6695:15:0;;6668:7;6695:15;;;:6;:15;;;;;;9987;9979:23;;:5;:23;:::i;:::-;:41;;9949:131;;;;-1:-1:-1;;;9949:131:0;;9485:2:1;9949:131:0;;;9467:21:1;9524:2;9504:18;;;9497:30;-1:-1:-1;;;9543:18:1;;;9536:46;9599:18;;9949:131:0;9283:340:1;9819:609:0;-1:-1:-1;;;;;10106:11:0;;;;;;:5;:11;;;;;;;;:36;;;;-1:-1:-1;;;;;;10122:20:0;;;;;;:14;:20;;;;;;;;10121:21;10106:36;10102:326;;;10180:12;;10171:5;:21;;10163:50;;;;-1:-1:-1;;;10163:50:0;;9140:2:1;10163:50:0;;;9122:21:1;9179:2;9159:18;;;9152:30;-1:-1:-1;;;9198:18:1;;;9191:46;9254:18;;10163:50:0;8938:340:1;10102:326:0;-1:-1:-1;;;;;10240:20:0;;;;;;:14;:20;;;;;;;;10235:193;;10338:14;;-1:-1:-1;;;;;6695:15:0;;6668:7;6695:15;;;:6;:15;;;;;;10319;6602:116;10454:1066;10567:7;10614:12;;10605:5;:21;;:47;;;;-1:-1:-1;10644:8:0;;;;;;;10643:9;10605:47;:75;;;;-1:-1:-1;10669:11:0;;;;10605:75;:103;;;;-1:-1:-1;;;;;;10697:11:0;;;;;;:5;:11;;;;;;;;10605:103;:139;;;;-1:-1:-1;;;;;;10726:18:0;;;;;;:12;:18;;;;;;;;10725:19;10605:139;10587:274;;;10771:8;:15;;-1:-1:-1;;10771:15:0;;;;;10801:17;:15;:17::i;:::-;10833:8;:16;;-1:-1:-1;;10833:16:0;;;10587:274;-1:-1:-1;;;;;10906:18:0;;10873:11;10906:18;;;:12;:18;;;;;;;;10905:19;:42;;;;-1:-1:-1;;;;;;10929:18:0;;;;;;:12;:18;;;;;;;;10928:19;10905:42;10901:589;;;-1:-1:-1;;;;;10968:11:0;;;;;;:5;:11;;;;;;;;:26;;;;;10993:1;10983:7;;:11;10968:26;10964:216;;;4105:5;11030:7;;11022:5;:15;;;;:::i;:::-;11021:31;;;;:::i;:::-;11015:37;;10964:216;;;-1:-1:-1;;;;;11078:11:0;;;;;;:5;:11;;;;;;;;:27;;;;;11104:1;11093:8;;:12;11078:27;11074:106;;;4105:5;11141:8;;11133:5;:16;;;;:::i;:::-;11132:32;;;;:::i;:::-;11126:38;;11074:106;11198:7;;11194:209;;-1:-1:-1;;;;;11241:12:0;;;;;;:6;:12;;;;;;:18;;11256:3;;11241:18;:::i;:::-;-1:-1:-1;;;;;11226:12:0;;;;;;:6;:12;;;;;;:33;;;;11317:4;11302:21;;;;:27;;11326:3;;11302:27;:::i;:::-;11293:4;11278:21;;;;:6;:21;;;;;;;:51;;;;11353:34;;-1:-1:-1;;;;;11353:34:0;;;;;;;11383:3;1613:25:1;;1601:2;1586:18;;1467:177;11353:34:0;;;;;;;;11194:209;10901:589;;;11466:11;11474:3;11466:5;:11;:::i;:::-;-1:-1:-1;;;;;11450:12:0;;;;;;:6;:12;;;;;;:28;;;;:::i;:::-;-1:-1:-1;;;;;11435:12:0;;;;;;:6;:12;;;;;:43;10901:589;11509:3;10454:1066;-1:-1:-1;;;;10454:1066:0:o;11917:353::-;12007:4;11963:23;6695:15;;;:6;:15;;;;;;12048:12;;12030:30;;12026:93;;;-1:-1:-1;12095:12:0;;12026:93;12153:12;;12135:15;:30;12131:69;;;12167:33;12184:15;12167:16;:33::i;:::-;12221:8;;12213:49;;-1:-1:-1;;;;;12221:8:0;;;;12240:21;12213:49;;;;;12221:8;12213:49;12221:8;12213:49;12240:21;12221:8;12213:49;;;;;;;;;;;;;;;;;;;;;11952:318;11917:353::o;11528:381::-;11613:16;;;11627:1;11613:16;;;;;;;;11589:21;;11613:16;;;;;;;;;;-1:-1:-1;11613:16:0;11589:40;;11658:4;11640;11645:1;11640:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11640:23:0;;;:7;;;;;;;;;;:23;;;;11692:6;;:13;;;-1:-1:-1;;;11692:13:0;;;;:6;;;;;:11;;:13;;;;;11640:7;;11692:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11674:4;11679:1;11674:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11674:32:0;;;:7;;;;;;;;;:32;11719:6;;:182;;-1:-1:-1;;;11719:182:0;;:6;;;:57;;:182;;11791:6;;11719;;11828:4;;11855;;11875:15;;11719:182;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11578:331;11528:381;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:1:o;594:548::-;706:4;735:2;764;753:9;746:21;796:6;790:13;839:6;834:2;823:9;819:18;812:34;864:1;874:140;888:6;885:1;882:13;874:140;;;983:14;;;979:23;;973:30;949:17;;;968:2;945:26;938:66;903:10;;874:140;;;878:3;1063:1;1058:2;1049:6;1038:9;1034:22;1030:31;1023:42;1133:2;1126;1122:7;1117:2;1109:6;1105:15;1101:29;1090:9;1086:45;1082:54;1074:62;;;;594:548;;;;:::o;1147:315::-;1215:6;1223;1276:2;1264:9;1255:7;1251:23;1247:32;1244:52;;;1292:1;1289;1282:12;1244:52;1331:9;1318:23;1350:31;1375:5;1350:31;:::i;:::-;1400:5;1452:2;1437:18;;;;1424:32;;-1:-1:-1;;;1147:315:1:o;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2507:248::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;;2675:23:1;;;2745:2;2730:18;;;2717:32;;-1:-1:-1;2507:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3379:380::-;3458:1;3454:12;;;;3501;;;3522:61;;3576:4;3568:6;3564:17;3554:27;;3522:61;3629:2;3621:6;3618:14;3598:18;3595:38;3592:161;;3675:10;3670:3;3666:20;3663:1;3656:31;3710:4;3707:1;3700:15;3738:4;3735:1;3728:15;3592:161;;3379:380;;;:::o;3764:356::-;3966:2;3948:21;;;3985:18;;;3978:30;4044:34;4039:2;4024:18;;4017:62;4111:2;4096:18;;3764:356::o;4125:127::-;4186:10;4181:3;4177:20;4174:1;4167:31;4217:4;4214:1;4207:15;4241:4;4238:1;4231:15;4257:125;4322:9;;;4343:10;;;4340:36;;;4356:18;;:::i;4387:251::-;4457:6;4510:2;4498:9;4489:7;4485:23;4481:32;4478:52;;;4526:1;4523;4516:12;4478:52;4558:9;4552:16;4577:31;4602:5;4577:31;:::i;5564:306::-;5652:6;5660;5668;5721:2;5709:9;5700:7;5696:23;5692:32;5689:52;;;5737:1;5734;5727:12;5689:52;5766:9;5760:16;5750:26;;5816:2;5805:9;5801:18;5795:25;5785:35;;5860:2;5849:9;5845:18;5839:25;5829:35;;5564:306;;;;;:::o;8454:128::-;8521:9;;;8542:11;;;8539:37;;;8556:18;;:::i;9628:168::-;9701:9;;;9732;;9749:15;;;9743:22;;9729:37;9719:71;;9770:18;;:::i;9801:217::-;9841:1;9867;9857:132;;9911:10;9906:3;9902:20;9899:1;9892:31;9946:4;9943:1;9936:15;9974:4;9971:1;9964:15;9857:132;-1:-1:-1;10003:9:1;;9801:217::o;10155:127::-;10216:10;10211:3;10207:20;10204:1;10197:31;10247:4;10244:1;10237:15;10271:4;10268:1;10261:15;10287:980;10549:4;10597:3;10586:9;10582:19;10628:6;10617:9;10610:25;10654:2;10692:6;10687:2;10676:9;10672:18;10665:34;10735:3;10730:2;10719:9;10715:18;10708:31;10759:6;10794;10788:13;10825:6;10817;10810:22;10863:3;10852:9;10848:19;10841:26;;10902:2;10894:6;10890:15;10876:29;;10923:1;10933:195;10947:6;10944:1;10941:13;10933:195;;;11012:13;;-1:-1:-1;;;;;11008:39:1;10996:52;;11103:15;;;;11068:12;;;;11044:1;10962:9;10933:195;;;-1:-1:-1;;;;;;;11184:32:1;;;;11179:2;11164:18;;11157:60;-1:-1:-1;;;11248:3:1;11233:19;11226:35;11145:3;10287:980;-1:-1:-1;;;10287:980:1:o

Swarm Source

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