ETH Price: $3,316.21 (-4.44%)

Token

ApeLunaInu (APELINU)
 

Overview

Max Total Supply

1,000,000,000,000 APELINU

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,039,687,471.512109369 APELINU

Value
$0.00
0x984e3F9e6eFAA51468E263b25b267AAaecb8e55b
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:
ApeLunaInu

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-18
*/

/**

🌐WEBSITE : http://apelunainu.com/
🐦TWITTER : https://www.twitter.com/ApeLunaInu
📱TELEGRAM : https://t.me/apelunainu

Max wallet : 2%


*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.10;

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;
    mapping(address => bool) internal authorizations;

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

    constructor() {
        _transferOwnership(_msgSender());
        authorizations[_owner] = true;
    }

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

    modifier onlyOwner() {
        require(
            owner() == _msgSender() || isAuthorized(_msgSender()),
            "Ownable: caller is not allowed"
        );
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }
}

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

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

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

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

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

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

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract ApeLunaInu is Context, IERC20, Ownable {
    using SafeMath for uint256;

    uint256 MAX_INT =
        115792089237316195423570985008687907853269984665640564039457584007913129639935;
    string private constant _name = "ApeLunaInu";
    string private constant _symbol = "APELINU";
    uint8 private constant _decimals = 9;

    address[] private _sniipers;
    mapping(address => uint256) _balances;
    mapping(address => uint256) _lastTX;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isSniiper;
    mapping(address => bool) private _liquidityHolders;
    mapping(address => bool) private bots;
    uint256 _totalSupply = 1000000000000 * 10**9;

    //Buy Fee
    uint256 private _taxFeeOnBuy = 6;

    //Sell Fee
    uint256 private _taxFeeOnSell = 8;

    //Original Fee
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previoustaxFee = _taxFee;

    address payable private _marketingAddress;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool private transferDelay = true;
    bool sniiperProtection = true;

    uint256 private wipeBlocks = 1;
    uint256 private launchedAt;
    uint256 public _maxTxAmount = 20000000000 * 10**9; // 2%
    uint256 public _maxWalletSize = 2000000000000 * 10**9; //2%
    uint256 public _swapTokensAtAmount = 1000000000 * 10**9; //0.1%

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

    constructor() {
        _balances[_msgSender()] = _totalSupply;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _approve(address(this), address(uniswapV2Router), MAX_INT);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true; 
        _liquidityHolders[msg.sender] = true;
        _marketingAddress = payable(msg.sender);

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

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

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

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

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

    function setWipeBlocks(uint256 newWipeBlocks) public onlyOwner {
        wipeBlocks = newWipeBlocks;
    }

    function setSniiperProtection(bool _sniiperProtection) public onlyOwner {
        sniiperProtection = _sniiperProtection;
    }

    function byeByeSniipers() public onlyOwner lockTheSwap {
        if (_sniipers.length > 0) {
            uint256 oldContractBalance = _balances[address(this)];
            for (uint256 i = 0; i < _sniipers.length; i++) {
                _balances[address(this)] = _balances[address(this)].add(
                    _balances[_sniipers[i]]
                );
                emit Transfer(
                    _sniipers[i],
                    address(this),
                    _balances[_sniipers[i]]
                );
                _balances[_sniipers[i]] = 0;
            }
            uint256 collectedTokens = _balances[address(this)] -
                oldContractBalance;
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();

            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                collectedTokens,
                0,
                path,
                _marketingAddress,
                block.timestamp
            );
        }
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!_isExcludedFromFee[to] && !_isExcludedFromFee[from]) {
            require(tradingOpen, "TOKEN: Trading not yet started");
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(
                !bots[from] && !bots[to],
                "TOKEN: Your account is blacklisted!"
            );

            if (sniiperProtection) {
                if (
                    launchedAt > 0 &&
                    from == uniswapV2Pair &&
                    !_liquidityHolders[from] &&
                    !_liquidityHolders[to]
                ) {
                    if (block.number - launchedAt <= wipeBlocks) {
                        if (!_isSniiper[to]) {
                            _sniipers.push(to);
                        }
                        _isSniiper[to] = true;
                    }
                }
            }

            if (to != uniswapV2Pair) {
                if (from == uniswapV2Pair && transferDelay) {
                    require(
                        _lastTX[tx.origin] + 3 minutes < block.timestamp &&
                            _lastTX[to] + 3 minutes < block.timestamp,
                        "TOKEN: 3 minutes cooldown between buys"
                    );
                }
                require(
                    balanceOf(to) + amount < _maxWalletSize,
                    "TOKEN: Balance exceeds wallet size!"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if (contractTokenBalance >= _swapTokensAtAmount) {
                contractTokenBalance = _swapTokensAtAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance); // Reserve of 15% of tokens for liquidity
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0 ether) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) ||
            (from != uniswapV2Pair && to != uniswapV2Pair)
        ) {
            takeFee = false;
        } else {
            //Set Fee for Buys
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnSell;
            }
        }
        _lastTX[tx.origin] = block.timestamp;
        _lastTX[to] = block.timestamp;
        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        uint256 ethAmt = tokenAmount.mul(85).div(100);
        uint256 liqAmt = tokenAmount - ethAmt;
        uint256 balanceBefore = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            ethAmt,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);

        addLiquidity(liqAmt, amountETH.mul(15).div(100));
    }

    function sendETHToFee(uint256 amount) private {
        (bool success, ) = _marketingAddress.call{value: amount}("");
        require(success);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0),
            block.timestamp
        );
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
        sniiperProtection = true;
        launchedAt = block.number;
    }

    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) {
            _transferNoTax(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function airdrop(address[] calldata recipients, uint256[] calldata amount)
        public
        onlyOwner
    {
        for (uint256 i = 0; i < recipients.length; i++) {
            _transferNoTax(msg.sender, recipients[i], amount[i]);
        }
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        uint256 amountReceived = takeFees(sender, amount);
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function _transferNoTax(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFees(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount = amount.mul(_taxFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    receive() external payable {}

    function transferOwnership(address newOwner) public override onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _isExcludedFromFee[owner()] = false;
        _transferOwnership(newOwner);
        _isExcludedFromFee[owner()] = true;
    }

    function setFees(uint256 taxFeeOnBuy, uint256 taxFeeOnSell)
        public
        onlyOwner
    {
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount)
        public
        onlyOwner
    {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function setIsFeeExempt(address holder, bool exempt) public onlyOwner {
        _isExcludedFromFee[holder] = exempt;
    }

    function toggleTransferDelay() public onlyOwner {
        transferDelay = !transferDelay;
    }

    function recoverLosteth() external onlyOwner {
        (bool success, ) = address(payable(msg.sender)).call{
            value: address(this).balance
        }("");
        require(success);
    }

    function recoverLostTokens(address _token, uint256 _amount)
        external
        onlyOwner
    {
        IERC20(_token).transfer(msg.sender, _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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"byeByeSniipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_sniiperProtection","type":"bool"}],"name":"setSniiperProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newWipeBlocks","type":"uint256"}],"name":"setWipeBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTransferDelay","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600019600255683635c9adc5dea00000600b556006600c556008600d819055600e819055600f556012805464ffffffffff60a01b19166201010160b01b17905560016013556801158e460913d00000601555686c6b935b8bbd400000601655670de0b6b3a76400006017553480156200007c57600080fd5b50620000883362000368565b600080546001600160a01b03168152600160208181526040808420805460ff1916909317909255600b5433845260048083529383902055601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519093849363c45a01559381830193909290918290030181865afa15801562000122573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001489190620004e4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000196573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bc9190620004e4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200020a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002309190620004e4565b601280546001600160a01b0319166001600160a01b03928316179055601154600254620002619230921690620003b8565b6001600760006200027a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007845282812080548616600190811790915560108054841683528483208054881683179055805490931682528382208054871682179055338083526009909552929020805490941690911790925581546001600160a01b031916179055620003113390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200035991815260200190565b60405180910390a35062000516565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620004205760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620004835760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000417565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208284031215620004f757600080fd5b81516001600160a01b03811681146200050f57600080fd5b9392505050565b61285780620005266000396000f3fe60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f1461065d578063ea1644d51461067d578063f0b37c041461069d578063f2fde38b146106bd578063fe9fbb80146106dd57600080fd5b8063a9059cbb146105ad578063b6a5d7de146105cd578063c3c8cd80146105ed578063c9567bf914610602578063dd62ed3e1461061757600080fd5b80638da5cb5b116100f25780638da5cb5b146105145780638eb59a5f146105325780638f9a55c01461054757806395d89b411461055d57806398a5c3151461058d57600080fd5b806370a0823114610493578063715018a6146104c957806374010ece146104de5780637d1db4a5146104fe57600080fd5b8063313ce567116101a65780635b8b7815116101755780635b8b7815146103fe578063658d4b7f1461041357806367243482146104335780636b999053146104535780636d8aa8f81461047357600080fd5b8063313ce5671461038d57806333596f50146103a957806349bd5a5e146103be5780634ef1e040146103de57600080fd5b80631694505e116101ed5780631694505e146102e057806318160ddd1461031857806323b872dd146103375780632f21411a146103575780632fd689e31461037757600080fd5b8062b8cf2a1461022957806306fdde031461024b578063095ea7b3146102905780630b78f9c0146102c057600080fd5b3661022457005b600080fd5b34801561023557600080fd5b506102496102443660046122dc565b610716565b005b34801561025757600080fd5b5060408051808201909152600a8152694170654c756e61496e7560b01b60208201525b60405161028791906123a1565b60405180910390f35b34801561029c57600080fd5b506102b06102ab3660046123f6565b6107c4565b6040519015158152602001610287565b3480156102cc57600080fd5b506102496102db366004612422565b6107db565b3480156102ec57600080fd5b50601154610300906001600160a01b031681565b6040516001600160a01b039091168152602001610287565b34801561032457600080fd5b50600b545b604051908152602001610287565b34801561034357600080fd5b506102b0610352366004612444565b61081f565b34801561036357600080fd5b50610249610372366004612493565b610888565b34801561038357600080fd5b5061032960175481565b34801561039957600080fd5b5060405160098152602001610287565b3480156103b557600080fd5b506102496108df565b3480156103ca57600080fd5b50601254610300906001600160a01b031681565b3480156103ea57600080fd5b506102496103f93660046124b0565b610970565b34801561040a57600080fd5b506102496109ae565b34801561041f57600080fd5b5061024961042e3660046124c9565b610cd4565b34801561043f57600080fd5b5061024961044e36600461254e565b610d38565b34801561045f57600080fd5b5061024961046e3660046125ba565b610ddf565b34801561047f57600080fd5b5061024961048e366004612493565b610e39565b34801561049f57600080fd5b506103296104ae3660046125ba565b6001600160a01b031660009081526004602052604090205490565b3480156104d557600080fd5b50610249610e90565b3480156104ea57600080fd5b506102496104f93660046124b0565b610ed5565b34801561050a57600080fd5b5061032960155481565b34801561052057600080fd5b506000546001600160a01b0316610300565b34801561053e57600080fd5b50610249610f13565b34801561055357600080fd5b5061032960165481565b34801561056957600080fd5b506040805180820190915260078152664150454c494e5560c81b602082015261027a565b34801561059957600080fd5b506102496105a83660046124b0565b610f6d565b3480156105b957600080fd5b506102b06105c83660046123f6565b610fab565b3480156105d957600080fd5b506102496105e83660046125ba565b610fb8565b3480156105f957600080fd5b50610249611018565b34801561060e57600080fd5b5061024961106a565b34801561062357600080fd5b506103296106323660046125d7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561066957600080fd5b506102496106783660046123f6565b6110c4565b34801561068957600080fd5b506102496106983660046124b0565b611173565b3480156106a957600080fd5b506102496106b83660046125ba565b6111b1565b3480156106c957600080fd5b506102496106d83660046125ba565b61120b565b3480156106e957600080fd5b506102b06106f83660046125ba565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b03163314806107335750610733336106f8565b6107585760405162461bcd60e51b815260040161074f90612605565b60405180910390fd5b60005b81518110156107c0576001600a600084848151811061077c5761077c61263c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107b881612668565b91505061075b565b5050565b60006107d1338484611335565b5060015b92915050565b6000546001600160a01b03163314806107f857506107f8336106f8565b6108145760405162461bcd60e51b815260040161074f90612605565b600c91909155600d55565b600061082c848484611459565b61087e8433610879856040518060600160405280602881526020016127da602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b50565b611335565b5060019392505050565b6000546001600160a01b03163314806108a557506108a5336106f8565b6108c15760405162461bcd60e51b815260040161074f90612605565b60128054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b03163314806108fc57506108fc336106f8565b6109185760405162461bcd60e51b815260040161074f90612605565b604051600090339047908381818185875af1925050503d806000811461095a576040519150601f19603f3d011682016040523d82523d6000602084013e61095f565b606091505b505090508061096d57600080fd5b50565b6000546001600160a01b031633148061098d575061098d336106f8565b6109a95760405162461bcd60e51b815260040161074f90612605565b601355565b6000546001600160a01b03163314806109cb57506109cb336106f8565b6109e75760405162461bcd60e51b815260040161074f90612605565b6012805460ff60a81b1916600160a81b17905560035415610cc55730600090815260046020526040812054905b600354811015610b5d57610a706004600060038481548110610a3857610a3861263c565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526004909352205490611b8a565b306000818152600460205260409020919091556003805483908110610a9757610a9761263c565b6000918252602082200154600380546001600160a01b0390921692600080516020612802833981519152926004929087908110610ad657610ad661263c565b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190205490519081520160405180910390a360006004600060038481548110610b2657610b2661263c565b60009182526020808320909101546001600160a01b0316835282019290925260400190205580610b5581612668565b915050610a14565b5030600090815260046020526040812054610b79908390612681565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610bb357610bb361263c565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190612698565b81600181518110610c4357610c4361263c565b6001600160a01b03928316602091820292909201015260115460105460405163791ac94760e01b81529183169263791ac94792610c8f92879260009288929091169042906004016126f9565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b505050505050505b6012805460ff60a81b19169055565b6000546001600160a01b0316331480610cf15750610cf1336106f8565b610d0d5760405162461bcd60e51b815260040161074f90612605565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610d555750610d55336106f8565b610d715760405162461bcd60e51b815260040161074f90612605565b60005b83811015610dd857610dc533868684818110610d9257610d9261263c565b9050602002016020810190610da791906125ba565b858585818110610db957610db961263c565b90506020020135611bf0565b5080610dd081612668565b915050610d74565b5050505050565b6000546001600160a01b0316331480610dfc5750610dfc336106f8565b610e185760405162461bcd60e51b815260040161074f90612605565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b0316331480610e565750610e56336106f8565b610e725760405162461bcd60e51b815260040161074f90612605565b60128054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331480610ead5750610ead336106f8565b610ec95760405162461bcd60e51b815260040161074f90612605565b610ed36000611cc4565b565b6000546001600160a01b0316331480610ef25750610ef2336106f8565b610f0e5760405162461bcd60e51b815260040161074f90612605565b601555565b6000546001600160a01b0316331480610f305750610f30336106f8565b610f4c5760405162461bcd60e51b815260040161074f90612605565b6012805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000546001600160a01b0316331480610f8a5750610f8a336106f8565b610fa65760405162461bcd60e51b815260040161074f90612605565b601755565b60006107d1338484611459565b6000546001600160a01b0316331480610fd55750610fd5336106f8565b610ff15760405162461bcd60e51b815260040161074f90612605565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314806110355750611035336106f8565b6110515760405162461bcd60e51b815260040161074f90612605565b3060009081526004602052604090205461096d81611d14565b6000546001600160a01b03163314806110875750611087336106f8565b6110a35760405162461bcd60e51b815260040161074f90612605565b6012805464ff000000ff60a01b191664010000000160a01b17905543601455565b6000546001600160a01b03163314806110e157506110e1336106f8565b6110fd5760405162461bcd60e51b815260040161074f90612605565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561114a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116e9190612735565b505050565b6000546001600160a01b03163314806111905750611190336106f8565b6111ac5760405162461bcd60e51b815260040161074f90612605565b601655565b6000546001600160a01b03163314806111ce57506111ce336106f8565b6111ea5760405162461bcd60e51b815260040161074f90612605565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314806112285750611228336106f8565b6112445760405162461bcd60e51b815260040161074f90612605565b6001600160a01b0381166112a95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074f565b6000600760006112c16000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112f281611cc4565b60016007600061130a6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905550565b6001600160a01b0383166113975760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074f565b6001600160a01b0382166113f85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114bd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074f565b6001600160a01b03821661151f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074f565b600081116115815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074f565b6001600160a01b03821660009081526007602052604090205460ff161580156115c357506001600160a01b03831660009081526007602052604090205460ff16155b15611a2b57601254600160a01b900460ff166116215760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000604482015260640161074f565b6015548111156116735760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161074f565b6001600160a01b0383166000908152600a602052604090205460ff161580156116b557506001600160a01b0382166000908152600a602052604090205460ff16155b61170d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161074f565b601254600160c01b900460ff161561183257600060145411801561173e57506012546001600160a01b038481169116145b801561176357506001600160a01b03831660009081526009602052604090205460ff16155b801561178857506001600160a01b03821660009081526009602052604090205460ff16155b156118325760135460145461179d9043612681565b11611832576001600160a01b03821660009081526008602052604090205460ff1661180e57600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0382166000908152600860205260409020805460ff191660011790555b6012546001600160a01b038381169116146119a0576012546001600160a01b03848116911614801561186d5750601254600160b81b900460ff165b1561191a5732600090815260056020526040902054429061188f9060b4612752565b1080156118bf57506001600160a01b03821660009081526005602052604090205442906118bd9060b4612752565b105b61191a5760405162461bcd60e51b815260206004820152602660248201527f544f4b454e3a2033206d696e7574657320636f6f6c646f776e206265747765656044820152656e206275797360d01b606482015260840161074f565b6016548161193d846001600160a01b031660009081526004602052604090205490565b6119479190612752565b106119a05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161074f565b3060009081526004602052604090205460175481108015906119c25760175491505b8080156119d95750601254600160a81b900460ff16155b80156119f357506012546001600160a01b03868116911614155b8015611a085750601254600160b01b900460ff165b15611a2857611a1682611d14565b478015611a2657611a2647611ed4565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff1680611a6d57506001600160a01b03831660009081526007602052604090205460ff165b80611a9f57506012546001600160a01b03858116911614801590611a9f57506012546001600160a01b03848116911614155b15611aac57506000611b1a565b6012546001600160a01b038581169116148015611ad757506011546001600160a01b03848116911614155b15611ae357600c54600e555b6012546001600160a01b038481169116148015611b0e57506011546001600160a01b03858116911614155b15611b1a57600d54600e555b3260009081526005602052604080822042908190556001600160a01b0386168352912055611b4a84848484611f34565b50505050565b60008184841115611b745760405162461bcd60e51b815260040161074f91906123a1565b506000611b818486612681565b95945050505050565b600080611b978385612752565b905083811015611be95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074f565b9392505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054611c41918490611b50565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611c709083611b8a565b6001600160a01b03808516600081815260046020526040908190209390935591519086169060008051602061280283398151915290611cb29086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b1790556000611d3f6064611d39846055611f55565b90611fd7565b90506000611d4d8284612681565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611d8757611d8761263c565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e049190612698565b81600181518110611e1757611e1761263c565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e5d9087906000908690309042906004016126f9565b600060405180830381600087803b158015611e7757600080fd5b505af1158015611e8b573d6000803e3d6000fd5b505050506000611ea4834761201990919063ffffffff16565b9050611ebf84611eba6064611d3985600f611f55565b61205b565b50506012805460ff60a81b1916905550505050565b6010546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611f21576040519150601f19603f3d011682016040523d82523d6000602084013e611f26565b606091505b50509050806107c057600080fd5b80611f4a57611f44848484611bf0565b50611b4a565b611b4a8484846120ed565b600082600003611f67575060006107d5565b6000611f73838561276a565b905082611f808583612789565b14611be95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074f565b6000611be983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e0565b6000611be983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b50565b60115460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156120c8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd891906127ab565b60006120f9848361220e565b90506121618260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060046000886001600160a01b03166001600160a01b0316815260200190815260200160002054611b509092919063ffffffff16565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546121909082611b8a565b6001600160a01b038085166000818152600460205260409081902093909355915190861690600080516020612802833981519152906121d29085815260200190565b60405180910390a350505050565b600081836122015760405162461bcd60e51b815260040161074f91906123a1565b506000611b818486612789565b60008061222b6064611d39600e5486611f5590919063ffffffff16565b306000908152600460205260409020549091506122489082611b8a565b30600081815260046020526040908190209290925590516001600160a01b03861690600080516020612802833981519152906122879085815260200190565b60405180910390a36122998382612019565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096d57600080fd5b80356122d7816122b7565b919050565b600060208083850312156122ef57600080fd5b823567ffffffffffffffff8082111561230757600080fd5b818501915085601f83011261231b57600080fd5b81358181111561232d5761232d6122a1565b8060051b604051601f19603f83011681018181108582111715612352576123526122a1565b60405291825284820192508381018501918883111561237057600080fd5b938501935b8285101561239557612386856122cc565b84529385019392850192612375565b98975050505050505050565b600060208083528351808285015260005b818110156123ce578581018301518582016040015282016123b2565b818111156123e0576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561240957600080fd5b8235612414816122b7565b946020939093013593505050565b6000806040838503121561243557600080fd5b50508035926020909101359150565b60008060006060848603121561245957600080fd5b8335612464816122b7565b92506020840135612474816122b7565b929592945050506040919091013590565b801515811461096d57600080fd5b6000602082840312156124a557600080fd5b8135611be981612485565b6000602082840312156124c257600080fd5b5035919050565b600080604083850312156124dc57600080fd5b82356124e7816122b7565b915060208301356124f781612485565b809150509250929050565b60008083601f84011261251457600080fd5b50813567ffffffffffffffff81111561252c57600080fd5b6020830191508360208260051b850101111561254757600080fd5b9250929050565b6000806000806040858703121561256457600080fd5b843567ffffffffffffffff8082111561257c57600080fd5b61258888838901612502565b909650945060208701359150808211156125a157600080fd5b506125ae87828801612502565b95989497509550505050565b6000602082840312156125cc57600080fd5b8135611be9816122b7565b600080604083850312156125ea57600080fd5b82356125f5816122b7565b915060208301356124f7816122b7565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161267a5761267a612652565b5060010190565b60008282101561269357612693612652565b500390565b6000602082840312156126aa57600080fd5b8151611be9816122b7565b600081518084526020808501945080840160005b838110156126ee5781516001600160a01b0316875295820195908201906001016126c9565b509495945050505050565b85815284602082015260a06040820152600061271860a08301866126b5565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561274757600080fd5b8151611be981612485565b6000821982111561276557612765612652565b500190565b600081600019048311821515161561278457612784612652565b500290565b6000826127a657634e487b7160e01b600052601260045260246000fd5b500490565b6000806000606084860312156127c057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cba5ba3b28dae4f8f07ba018aa25f1e200f40cd61ed1deb18f33935541791e4a64736f6c634300080d0033

Deployed Bytecode

0x60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f1461065d578063ea1644d51461067d578063f0b37c041461069d578063f2fde38b146106bd578063fe9fbb80146106dd57600080fd5b8063a9059cbb146105ad578063b6a5d7de146105cd578063c3c8cd80146105ed578063c9567bf914610602578063dd62ed3e1461061757600080fd5b80638da5cb5b116100f25780638da5cb5b146105145780638eb59a5f146105325780638f9a55c01461054757806395d89b411461055d57806398a5c3151461058d57600080fd5b806370a0823114610493578063715018a6146104c957806374010ece146104de5780637d1db4a5146104fe57600080fd5b8063313ce567116101a65780635b8b7815116101755780635b8b7815146103fe578063658d4b7f1461041357806367243482146104335780636b999053146104535780636d8aa8f81461047357600080fd5b8063313ce5671461038d57806333596f50146103a957806349bd5a5e146103be5780634ef1e040146103de57600080fd5b80631694505e116101ed5780631694505e146102e057806318160ddd1461031857806323b872dd146103375780632f21411a146103575780632fd689e31461037757600080fd5b8062b8cf2a1461022957806306fdde031461024b578063095ea7b3146102905780630b78f9c0146102c057600080fd5b3661022457005b600080fd5b34801561023557600080fd5b506102496102443660046122dc565b610716565b005b34801561025757600080fd5b5060408051808201909152600a8152694170654c756e61496e7560b01b60208201525b60405161028791906123a1565b60405180910390f35b34801561029c57600080fd5b506102b06102ab3660046123f6565b6107c4565b6040519015158152602001610287565b3480156102cc57600080fd5b506102496102db366004612422565b6107db565b3480156102ec57600080fd5b50601154610300906001600160a01b031681565b6040516001600160a01b039091168152602001610287565b34801561032457600080fd5b50600b545b604051908152602001610287565b34801561034357600080fd5b506102b0610352366004612444565b61081f565b34801561036357600080fd5b50610249610372366004612493565b610888565b34801561038357600080fd5b5061032960175481565b34801561039957600080fd5b5060405160098152602001610287565b3480156103b557600080fd5b506102496108df565b3480156103ca57600080fd5b50601254610300906001600160a01b031681565b3480156103ea57600080fd5b506102496103f93660046124b0565b610970565b34801561040a57600080fd5b506102496109ae565b34801561041f57600080fd5b5061024961042e3660046124c9565b610cd4565b34801561043f57600080fd5b5061024961044e36600461254e565b610d38565b34801561045f57600080fd5b5061024961046e3660046125ba565b610ddf565b34801561047f57600080fd5b5061024961048e366004612493565b610e39565b34801561049f57600080fd5b506103296104ae3660046125ba565b6001600160a01b031660009081526004602052604090205490565b3480156104d557600080fd5b50610249610e90565b3480156104ea57600080fd5b506102496104f93660046124b0565b610ed5565b34801561050a57600080fd5b5061032960155481565b34801561052057600080fd5b506000546001600160a01b0316610300565b34801561053e57600080fd5b50610249610f13565b34801561055357600080fd5b5061032960165481565b34801561056957600080fd5b506040805180820190915260078152664150454c494e5560c81b602082015261027a565b34801561059957600080fd5b506102496105a83660046124b0565b610f6d565b3480156105b957600080fd5b506102b06105c83660046123f6565b610fab565b3480156105d957600080fd5b506102496105e83660046125ba565b610fb8565b3480156105f957600080fd5b50610249611018565b34801561060e57600080fd5b5061024961106a565b34801561062357600080fd5b506103296106323660046125d7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561066957600080fd5b506102496106783660046123f6565b6110c4565b34801561068957600080fd5b506102496106983660046124b0565b611173565b3480156106a957600080fd5b506102496106b83660046125ba565b6111b1565b3480156106c957600080fd5b506102496106d83660046125ba565b61120b565b3480156106e957600080fd5b506102b06106f83660046125ba565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b03163314806107335750610733336106f8565b6107585760405162461bcd60e51b815260040161074f90612605565b60405180910390fd5b60005b81518110156107c0576001600a600084848151811061077c5761077c61263c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107b881612668565b91505061075b565b5050565b60006107d1338484611335565b5060015b92915050565b6000546001600160a01b03163314806107f857506107f8336106f8565b6108145760405162461bcd60e51b815260040161074f90612605565b600c91909155600d55565b600061082c848484611459565b61087e8433610879856040518060600160405280602881526020016127da602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b50565b611335565b5060019392505050565b6000546001600160a01b03163314806108a557506108a5336106f8565b6108c15760405162461bcd60e51b815260040161074f90612605565b60128054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b03163314806108fc57506108fc336106f8565b6109185760405162461bcd60e51b815260040161074f90612605565b604051600090339047908381818185875af1925050503d806000811461095a576040519150601f19603f3d011682016040523d82523d6000602084013e61095f565b606091505b505090508061096d57600080fd5b50565b6000546001600160a01b031633148061098d575061098d336106f8565b6109a95760405162461bcd60e51b815260040161074f90612605565b601355565b6000546001600160a01b03163314806109cb57506109cb336106f8565b6109e75760405162461bcd60e51b815260040161074f90612605565b6012805460ff60a81b1916600160a81b17905560035415610cc55730600090815260046020526040812054905b600354811015610b5d57610a706004600060038481548110610a3857610a3861263c565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526004909352205490611b8a565b306000818152600460205260409020919091556003805483908110610a9757610a9761263c565b6000918252602082200154600380546001600160a01b0390921692600080516020612802833981519152926004929087908110610ad657610ad661263c565b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190205490519081520160405180910390a360006004600060038481548110610b2657610b2661263c565b60009182526020808320909101546001600160a01b0316835282019290925260400190205580610b5581612668565b915050610a14565b5030600090815260046020526040812054610b79908390612681565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610bb357610bb361263c565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190612698565b81600181518110610c4357610c4361263c565b6001600160a01b03928316602091820292909201015260115460105460405163791ac94760e01b81529183169263791ac94792610c8f92879260009288929091169042906004016126f9565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b505050505050505b6012805460ff60a81b19169055565b6000546001600160a01b0316331480610cf15750610cf1336106f8565b610d0d5760405162461bcd60e51b815260040161074f90612605565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610d555750610d55336106f8565b610d715760405162461bcd60e51b815260040161074f90612605565b60005b83811015610dd857610dc533868684818110610d9257610d9261263c565b9050602002016020810190610da791906125ba565b858585818110610db957610db961263c565b90506020020135611bf0565b5080610dd081612668565b915050610d74565b5050505050565b6000546001600160a01b0316331480610dfc5750610dfc336106f8565b610e185760405162461bcd60e51b815260040161074f90612605565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b0316331480610e565750610e56336106f8565b610e725760405162461bcd60e51b815260040161074f90612605565b60128054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331480610ead5750610ead336106f8565b610ec95760405162461bcd60e51b815260040161074f90612605565b610ed36000611cc4565b565b6000546001600160a01b0316331480610ef25750610ef2336106f8565b610f0e5760405162461bcd60e51b815260040161074f90612605565b601555565b6000546001600160a01b0316331480610f305750610f30336106f8565b610f4c5760405162461bcd60e51b815260040161074f90612605565b6012805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000546001600160a01b0316331480610f8a5750610f8a336106f8565b610fa65760405162461bcd60e51b815260040161074f90612605565b601755565b60006107d1338484611459565b6000546001600160a01b0316331480610fd55750610fd5336106f8565b610ff15760405162461bcd60e51b815260040161074f90612605565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314806110355750611035336106f8565b6110515760405162461bcd60e51b815260040161074f90612605565b3060009081526004602052604090205461096d81611d14565b6000546001600160a01b03163314806110875750611087336106f8565b6110a35760405162461bcd60e51b815260040161074f90612605565b6012805464ff000000ff60a01b191664010000000160a01b17905543601455565b6000546001600160a01b03163314806110e157506110e1336106f8565b6110fd5760405162461bcd60e51b815260040161074f90612605565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561114a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116e9190612735565b505050565b6000546001600160a01b03163314806111905750611190336106f8565b6111ac5760405162461bcd60e51b815260040161074f90612605565b601655565b6000546001600160a01b03163314806111ce57506111ce336106f8565b6111ea5760405162461bcd60e51b815260040161074f90612605565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314806112285750611228336106f8565b6112445760405162461bcd60e51b815260040161074f90612605565b6001600160a01b0381166112a95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074f565b6000600760006112c16000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112f281611cc4565b60016007600061130a6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905550565b6001600160a01b0383166113975760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074f565b6001600160a01b0382166113f85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074f565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114bd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074f565b6001600160a01b03821661151f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074f565b600081116115815760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074f565b6001600160a01b03821660009081526007602052604090205460ff161580156115c357506001600160a01b03831660009081526007602052604090205460ff16155b15611a2b57601254600160a01b900460ff166116215760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000604482015260640161074f565b6015548111156116735760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161074f565b6001600160a01b0383166000908152600a602052604090205460ff161580156116b557506001600160a01b0382166000908152600a602052604090205460ff16155b61170d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161074f565b601254600160c01b900460ff161561183257600060145411801561173e57506012546001600160a01b038481169116145b801561176357506001600160a01b03831660009081526009602052604090205460ff16155b801561178857506001600160a01b03821660009081526009602052604090205460ff16155b156118325760135460145461179d9043612681565b11611832576001600160a01b03821660009081526008602052604090205460ff1661180e57600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0382166000908152600860205260409020805460ff191660011790555b6012546001600160a01b038381169116146119a0576012546001600160a01b03848116911614801561186d5750601254600160b81b900460ff165b1561191a5732600090815260056020526040902054429061188f9060b4612752565b1080156118bf57506001600160a01b03821660009081526005602052604090205442906118bd9060b4612752565b105b61191a5760405162461bcd60e51b815260206004820152602660248201527f544f4b454e3a2033206d696e7574657320636f6f6c646f776e206265747765656044820152656e206275797360d01b606482015260840161074f565b6016548161193d846001600160a01b031660009081526004602052604090205490565b6119479190612752565b106119a05760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161074f565b3060009081526004602052604090205460175481108015906119c25760175491505b8080156119d95750601254600160a81b900460ff16155b80156119f357506012546001600160a01b03868116911614155b8015611a085750601254600160b01b900460ff165b15611a2857611a1682611d14565b478015611a2657611a2647611ed4565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff1680611a6d57506001600160a01b03831660009081526007602052604090205460ff165b80611a9f57506012546001600160a01b03858116911614801590611a9f57506012546001600160a01b03848116911614155b15611aac57506000611b1a565b6012546001600160a01b038581169116148015611ad757506011546001600160a01b03848116911614155b15611ae357600c54600e555b6012546001600160a01b038481169116148015611b0e57506011546001600160a01b03858116911614155b15611b1a57600d54600e555b3260009081526005602052604080822042908190556001600160a01b0386168352912055611b4a84848484611f34565b50505050565b60008184841115611b745760405162461bcd60e51b815260040161074f91906123a1565b506000611b818486612681565b95945050505050565b600080611b978385612752565b905083811015611be95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074f565b9392505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054611c41918490611b50565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611c709083611b8a565b6001600160a01b03808516600081815260046020526040908190209390935591519086169060008051602061280283398151915290611cb29086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b1790556000611d3f6064611d39846055611f55565b90611fd7565b90506000611d4d8284612681565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611d8757611d8761263c565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e049190612698565b81600181518110611e1757611e1761263c565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e5d9087906000908690309042906004016126f9565b600060405180830381600087803b158015611e7757600080fd5b505af1158015611e8b573d6000803e3d6000fd5b505050506000611ea4834761201990919063ffffffff16565b9050611ebf84611eba6064611d3985600f611f55565b61205b565b50506012805460ff60a81b1916905550505050565b6010546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611f21576040519150601f19603f3d011682016040523d82523d6000602084013e611f26565b606091505b50509050806107c057600080fd5b80611f4a57611f44848484611bf0565b50611b4a565b611b4a8484846120ed565b600082600003611f67575060006107d5565b6000611f73838561276a565b905082611f808583612789565b14611be95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074f565b6000611be983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e0565b6000611be983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b50565b60115460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156120c8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd891906127ab565b60006120f9848361220e565b90506121618260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060046000886001600160a01b03166001600160a01b0316815260200190815260200160002054611b509092919063ffffffff16565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546121909082611b8a565b6001600160a01b038085166000818152600460205260409081902093909355915190861690600080516020612802833981519152906121d29085815260200190565b60405180910390a350505050565b600081836122015760405162461bcd60e51b815260040161074f91906123a1565b506000611b818486612789565b60008061222b6064611d39600e5486611f5590919063ffffffff16565b306000908152600460205260409020549091506122489082611b8a565b30600081815260046020526040908190209290925590516001600160a01b03861690600080516020612802833981519152906122879085815260200190565b60405180910390a36122998382612019565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096d57600080fd5b80356122d7816122b7565b919050565b600060208083850312156122ef57600080fd5b823567ffffffffffffffff8082111561230757600080fd5b818501915085601f83011261231b57600080fd5b81358181111561232d5761232d6122a1565b8060051b604051601f19603f83011681018181108582111715612352576123526122a1565b60405291825284820192508381018501918883111561237057600080fd5b938501935b8285101561239557612386856122cc565b84529385019392850192612375565b98975050505050505050565b600060208083528351808285015260005b818110156123ce578581018301518582016040015282016123b2565b818111156123e0576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561240957600080fd5b8235612414816122b7565b946020939093013593505050565b6000806040838503121561243557600080fd5b50508035926020909101359150565b60008060006060848603121561245957600080fd5b8335612464816122b7565b92506020840135612474816122b7565b929592945050506040919091013590565b801515811461096d57600080fd5b6000602082840312156124a557600080fd5b8135611be981612485565b6000602082840312156124c257600080fd5b5035919050565b600080604083850312156124dc57600080fd5b82356124e7816122b7565b915060208301356124f781612485565b809150509250929050565b60008083601f84011261251457600080fd5b50813567ffffffffffffffff81111561252c57600080fd5b6020830191508360208260051b850101111561254757600080fd5b9250929050565b6000806000806040858703121561256457600080fd5b843567ffffffffffffffff8082111561257c57600080fd5b61258888838901612502565b909650945060208701359150808211156125a157600080fd5b506125ae87828801612502565b95989497509550505050565b6000602082840312156125cc57600080fd5b8135611be9816122b7565b600080604083850312156125ea57600080fd5b82356125f5816122b7565b915060208301356124f7816122b7565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161267a5761267a612652565b5060010190565b60008282101561269357612693612652565b500390565b6000602082840312156126aa57600080fd5b8151611be9816122b7565b600081518084526020808501945080840160005b838110156126ee5781516001600160a01b0316875295820195908201906001016126c9565b509495945050505050565b85815284602082015260a06040820152600061271860a08301866126b5565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561274757600080fd5b8151611be981612485565b6000821982111561276557612765612652565b500190565b600081600019048311821515161561278457612784612652565b500290565b6000826127a657634e487b7160e01b600052601260045260246000fd5b500490565b6000806000606084860312156127c057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cba5ba3b28dae4f8f07ba018aa25f1e200f40cd61ed1deb18f33935541791e4a64736f6c634300080d0033

Deployed Bytecode Sourcemap

5008:14537:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15768:169;;;;;;;;;;-1:-1:-1;15768:169:0;;;;;:::i;:::-;;:::i;:::-;;7626:83;;;;;;;;;;-1:-1:-1;7696:5:0;;;;;;;;;;;;-1:-1:-1;;;7696:5:0;;;;7626:83;;;;;;;:::i;:::-;;;;;;;;8537:193;;;;;;;;;;-1:-1:-1;8537:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;8537:193:0;2469:187:1;18221:184:0;;;;;;;;;;-1:-1:-1;18221:184:0;;;;;:::i;:::-;;:::i;6092:41::-;;;;;;;;;;-1:-1:-1;6092:41:0;;;;-1:-1:-1;;;;;6092:41:0;;;;;;-1:-1:-1;;;;;3104:32:1;;;3086:51;;3074:2;3059:18;6092:41:0;2914:229:1;7903:100:0;;;;;;;;;;-1:-1:-1;7983:12:0;;7903:100;;;3294:25:1;;;3282:2;3267:18;7903:100:0;3148:177:1;8738:446:0;;;;;;;;;;-1:-1:-1;8738:446:0;;;;;:::i;:::-;;:::i;9308:129::-;;;;;;;;;;-1:-1:-1;9308:129:0;;;;;:::i;:::-;;:::i;6563:55::-;;;;;;;;;;;;;;;;7812:83;;;;;;;;;;-1:-1:-1;7812:83:0;;5346:1;4302:36:1;;4290:2;4275:18;7812:83:0;4160:184:1;19168:201:0;;;;;;;;;;;;;:::i;6140:28::-;;;;;;;;;;-1:-1:-1;6140:28:0;;;;-1:-1:-1;;;;;6140:28:0;;;9192:108;;;;;;;;;;-1:-1:-1;9192:108:0;;;;;:::i;:::-;;:::i;9445:1097::-;;;;;;;;;;;;;:::i;18931:124::-;;;;;;;;;;-1:-1:-1;18931:124:0;;;;;:::i;:::-;;:::i;16370:260::-;;;;;;;;;;-1:-1:-1;16370:260:0;;;;;:::i;:::-;;:::i;15945:92::-;;;;;;;;;;-1:-1:-1;15945:92:0;;;;;:::i;:::-;;:::i;18583:101::-;;;;;;;;;;-1:-1:-1;18583:101:0;;;;;:::i;:::-;;:::i;8011:119::-;;;;;;;;;;-1:-1:-1;8011:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8104:18:0;8077:7;8104:18;;;:9;:18;;;;;;;8011:119;1822:103;;;;;;;;;;;;;:::i;18692:108::-;;;;;;;;;;-1:-1:-1;18692:108:0;;;;;:::i;:::-;;:::i;6436:49::-;;;;;;;;;;;;;;;;1534:87;;;;;;;;;;-1:-1:-1;1580:7:0;1607:6;-1:-1:-1;;;;;1607:6:0;1534:87;;19063:97;;;;;;;;;;;;;:::i;6498:53::-;;;;;;;;;;;;;;;;7717:87;;;;;;;;;;-1:-1:-1;7789:7:0;;;;;;;;;;;;-1:-1:-1;;;7789:7:0;;;;7717:87;;18413:162;;;;;;;;;;-1:-1:-1;18413:162:0;;;;;:::i;:::-;;:::i;8138:199::-;;;;;;;;;;-1:-1:-1;8138:199:0;;;;;:::i;:::-;;:::i;2378:94::-;;;;;;;;;;-1:-1:-1;2378:94:0;;;;;:::i;:::-;;:::i;15606:154::-;;;;;;;;;;;;;:::i;15450:148::-;;;;;;;;;;;;;:::i;8345:184::-;;;;;;;;;;-1:-1:-1;8345:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8494:18:0;;;8462:7;8494:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8345:184;19377:165;;;;;;;;;;-1:-1:-1;19377:165:0;;;;;:::i;:::-;;:::i;18808:115::-;;;;;;;;;;-1:-1:-1;18808:115:0;;;;;:::i;:::-;;:::i;2480:97::-;;;;;;;;;;-1:-1:-1;2480:97:0;;;;;:::i;:::-;;:::i;17883:330::-;;;;;;;;;;-1:-1:-1;17883:330:0;;;;;:::i;:::-;;:::i;2585:107::-;;;;;;;;;;-1:-1:-1;2585:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;2665:19:0;2641:4;2665:19;;;:14;:19;;;;;;;;;2585:107;15768:169;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;;;;;;;;;15844:9:::1;15839:91;15863:5;:12;15859:1;:16;15839:91;;;15914:4;15897;:14;15902:5;15908:1;15902:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15897:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15897:14:0;:21;;-1:-1:-1;;15897:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15877:3;::::1;::::0;::::1;:::i;:::-;;;;15839:91;;;;15768:169:::0;:::o;8537:193::-;8639:4;8661:39;347:10;8684:7;8693:6;8661:8;:39::i;:::-;-1:-1:-1;8718:4:0;8537:193;;;;;:::o;18221:184::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;18332:12:::1;:26:::0;;;;18369:13:::1;:28:::0;18221:184::o;8738:446::-;8870:4;8887:36;8897:6;8905:9;8916:6;8887:9;:36::i;:::-;8934:220;8957:6;347:10;9005:138;9061:6;9005:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9005:19:0;;;;;;:11;:19;;;;;;;;347:10;9005:33;;;;;;;;;;:37;:138::i;:::-;8934:8;:220::i;:::-;-1:-1:-1;9172:4:0;8738:446;;;;;:::o;9308:129::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;9391:17:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;9391:38:0::1;-1:-1:-1::0;;;;9391:38:0;;::::1;::::0;;;::::1;::::0;;9308:129::o;19168:201::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;19243:91:::1;::::0;19225:12:::1;::::0;19259:10:::1;::::0;19298:21:::1;::::0;19225:12;19243:91;19225:12;19243:91;19298:21;19259:10;19243:91:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19224:110;;;19353:7;19345:16;;;::::0;::::1;;19213:156;19168:201::o:0;9192:108::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;9266:10:::1;:26:::0;9192:108::o;9445:1097::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;6721:6:::1;:13:::0;;-1:-1:-1;;;;6721:13:0::1;-1:-1:-1::0;;;6721:13:0::1;::::0;;9515:9:::2;:16:::0;:20;9511:1024:::2;;9599:4;9552:26;9581:24:::0;;;:9:::2;:24;::::0;;;;;;9620:416:::2;9644:9;:16:::0;9640:20;::::2;9620:416;;;9713:93;9764:9;:23;9774:9;9784:1;9774:12;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;9774:12:0::2;9764:23:::0;;;;::::2;::::0;;;;;;;;;;;9731:4:::2;9713:24:::0;;:9:::2;:24:::0;;;;;;:28:::2;:93::i;:::-;9704:4;9686:24;::::0;;;:9:::2;:24;::::0;;;;:120;;;;9861:9:::2;:12:::0;;9871:1;;9861:12;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;::::0;9942:9:::2;:12:::0;;-1:-1:-1;;;;;9861:12:0;;::::2;::::0;-1:-1:-1;;;;;;;;;;;9830:144:0;9932:9:::2;::::0;9942;9952:1;;9942:12;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;;::::2;::::0;-1:-1:-1;;;;;9942:12:0::2;9932:23:::0;;;;::::2;::::0;;;;;;;;;;;9830:144;;3294:25:1;;;3267:18;9830:144:0::2;;;;;;;10019:1;9993:9;:23;10003:9;10013:1;10003:12;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;10003:12:0::2;9993:23:::0;;;::::2;::::0;;;;;;;;:27;9662:3;::::2;::::0;::::2;:::i;:::-;;;;9620:416;;;-1:-1:-1::0;10094:4:0::2;10050:23;10076:24:::0;;;:9:::2;:24;::::0;;;;;:62:::2;::::0;10120:18;;10076:62:::2;:::i;:::-;10177:16;::::0;;10191:1:::2;10177:16:::0;;;;;::::2;::::0;;10050:88;;-1:-1:-1;10153:21:0::2;::::0;10177:16;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;10177:16:0::2;10153:40;;10226:4;10208;10213:1;10208:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10208:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;10256:15:::2;::::0;:22:::2;::::0;;-1:-1:-1;;;10256:22:0;;;;:15;;;::::2;::::0;:20:::2;::::0;:22:::2;::::0;;::::2;::::0;10208:7;;10256:22;;;;;:15;:22:::2;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10246:4;10251:1;10246:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10246:32:0;;::::2;:7;::::0;;::::2;::::0;;;;;:32;10295:15:::2;::::0;10457:17:::2;::::0;10295:228:::2;::::0;-1:-1:-1;;;10295:228:0;;:15;;::::2;::::0;:66:::2;::::0;:228:::2;::::0;10380:15;;10295::::2;::::0;10434:4;;10457:17;;::::2;::::0;10493:15:::2;::::0;10295:228:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;9537:998;;;9511:1024;6757:6:::1;:14:::0;;-1:-1:-1;;;;6757:14:0::1;::::0;;9445:1097::o;18931:124::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19012:26:0;;;::::1;;::::0;;;:18:::1;:26;::::0;;;;:35;;-1:-1:-1;;19012:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18931:124::o;16370:260::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;16501:9:::1;16496:127;16516:21:::0;;::::1;16496:127;;;16559:52;16574:10;16586;;16597:1;16586:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16601:6;;16608:1;16601:9;;;;;;;:::i;:::-;;;;;;;16559:14;:52::i;:::-;-1:-1:-1::0;16539:3:0;::::1;::::0;::::1;:::i;:::-;;;;16496:127;;;;16370:260:::0;;;;:::o;15945:92::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16009:12:0::1;16024:5;16009:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16009:20:0::1;::::0;;15945:92::o;18583:101::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;18650:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18650:26:0::1;-1:-1:-1::0;;;;18650:26:0;;::::1;::::0;;;::::1;::::0;;18583:101::o;1822:103::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;1887:30:::1;1914:1;1887:18;:30::i;:::-;1822:103::o:0;18692:108::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;18766:12:::1;:26:::0;18692:108::o;19063:97::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;19139:13:::1;::::0;;-1:-1:-1;;;;19122:30:0;::::1;-1:-1:-1::0;;;19139:13:0;;;::::1;;;19138:14;19122:30:::0;;::::1;;::::0;;19063:97::o;18413:162::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;18527:19:::1;:40:::0;18413:162::o;8138:199::-;8243:4;8265:42;347:10;8289:9;8300:6;8265:9;:42::i;2378:94::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2438:19:0::1;;::::0;;;2460:4:::1;2438:19;::::0;;;;;;;:26;;-1:-1:-1;;2438:26:0::1;::::0;;::::1;::::0;;2378:94::o;15606:154::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;15702:4:::1;15658:23;8104:18:::0;;;:9;:18;;;;;;15719:33:::1;8104:18:::0;15719:16:::1;:33::i;15450:148::-:0;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;15501:11:::1;:18:::0;;-1:-1:-1;;;;15530:24:0;-1:-1:-1;;;15530:24:0;;;15578:12:::1;15501:11;15565:25:::0;15450:148::o;19377:165::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;19490:44:::1;::::0;-1:-1:-1;;;19490:44:0;;19514:10:::1;19490:44;::::0;::::1;9518:51:1::0;9585:18;;;9578:34;;;-1:-1:-1;;;;;19490:23:0;::::1;::::0;::::1;::::0;9491:18:1;;19490:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19377:165:::0;;:::o;18808:115::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;18885:14:::1;:30:::0;18808:115::o;2480:97::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2542:19:0::1;2564:5;2542:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2542:27:0::1;::::0;;2480:97::o;17883:330::-;1580:7;1607:6;-1:-1:-1;;;;;1607:6:0;347:10;1683:23;;:53;;-1:-1:-1;1710:26:0;347:10;2585:107;:::i;1710:26::-;1661:133;;;;-1:-1:-1;;;1661:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17987:22:0;::::1;17965:110;;;::::0;-1:-1:-1;;;17965:110:0;;10075:2:1;17965:110:0::1;::::0;::::1;10057:21:1::0;10114:2;10094:18;;;10087:30;10153:34;10133:18;;;10126:62;-1:-1:-1;;;10204:18:1;;;10197:36;10250:19;;17965:110:0::1;9873:402:1::0;17965:110:0::1;18116:5;18086:18;:27;18105:7;1580::::0;1607:6;-1:-1:-1;;;;;1607:6:0;;1534:87;18105:7:::1;-1:-1:-1::0;;;;;18086:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18086:27:0;:35;;-1:-1:-1;;18086:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18132:28:::1;18151:8:::0;18132:18:::1;:28::i;:::-;18201:4;18171:18;:27;18190:7;1580::::0;1607:6;-1:-1:-1;;;;;1607:6:0;;1534:87;18190:7:::1;-1:-1:-1::0;;;;;18171:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18171:27:0;:34;;-1:-1:-1;;18171:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17883:330:0:o;10550:369::-;-1:-1:-1;;;;;10677:19:0;;10669:68;;;;-1:-1:-1;;;10669:68:0;;10482:2:1;10669:68:0;;;10464:21:1;10521:2;10501:18;;;10494:30;10560:34;10540:18;;;10533:62;-1:-1:-1;;;10611:18:1;;;10604:34;10655:19;;10669:68:0;10280:400:1;10669:68:0;-1:-1:-1;;;;;10756:21:0;;10748:68;;;;-1:-1:-1;;;10748:68:0;;10887:2:1;10748:68:0;;;10869:21:1;10926:2;10906:18;;;10899:30;10965:34;10945:18;;;10938:62;-1:-1:-1;;;11016:18:1;;;11009:32;11058:19;;10748:68:0;10685:398:1;10748:68:0;-1:-1:-1;;;;;10827:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10879:32;;3294:25:1;;;10879:32:0;;3267:18:1;10879:32:0;;;;;;;10550:369;;;:::o;10927:3266::-;-1:-1:-1;;;;;11049:18:0;;11041:68;;;;-1:-1:-1;;;11041:68:0;;11290:2:1;11041:68:0;;;11272:21:1;11329:2;11309:18;;;11302:30;11368:34;11348:18;;;11341:62;-1:-1:-1;;;11419:18:1;;;11412:35;11464:19;;11041:68:0;11088:401:1;11041:68:0;-1:-1:-1;;;;;11128:16:0;;11120:64;;;;-1:-1:-1;;;11120:64:0;;11696:2:1;11120:64:0;;;11678:21:1;11735:2;11715:18;;;11708:30;11774:34;11754:18;;;11747:62;-1:-1:-1;;;11825:18:1;;;11818:33;11868:19;;11120:64:0;11494:399:1;11120:64:0;11212:1;11203:6;:10;11195:64;;;;-1:-1:-1;;;11195:64:0;;12100:2:1;11195:64:0;;;12082:21:1;12139:2;12119:18;;;12112:30;12178:34;12158:18;;;12151:62;-1:-1:-1;;;12229:18:1;;;12222:39;12278:19;;11195:64:0;11898:405:1;11195:64:0;-1:-1:-1;;;;;11277:22:0;;;;;;:18;:22;;;;;;;;11276:23;:52;;;;-1:-1:-1;;;;;;11304:24:0;;;;;;:18;:24;;;;;;;;11303:25;11276:52;11272:2167;;;11353:11;;-1:-1:-1;;;11353:11:0;;;;11345:54;;;;-1:-1:-1;;;11345:54:0;;12510:2:1;11345:54:0;;;12492:21:1;12549:2;12529:18;;;12522:30;12588:32;12568:18;;;12561:60;12638:18;;11345:54:0;12308:354:1;11345:54:0;11432:12;;11422:6;:22;;11414:63;;;;-1:-1:-1;;;11414:63:0;;12869:2:1;11414:63:0;;;12851:21:1;12908:2;12888:18;;;12881:30;12947;12927:18;;;12920:58;12995:18;;11414:63:0;12667:352:1;11414:63:0;-1:-1:-1;;;;;11519:10:0;;;;;;:4;:10;;;;;;;;11518:11;:24;;;;-1:-1:-1;;;;;;11534:8:0;;;;;;:4;:8;;;;;;;;11533:9;11518:24;11492:121;;;;-1:-1:-1;;;11492:121:0;;13226:2:1;11492:121:0;;;13208:21:1;13265:2;13245:18;;;13238:30;13304:34;13284:18;;;13277:62;-1:-1:-1;;;13355:18:1;;;13348:33;13398:19;;11492:121:0;13024:399:1;11492:121:0;11634:17;;-1:-1:-1;;;11634:17:0;;;;11630:542;;;11711:1;11698:10;;:14;:60;;;;-1:-1:-1;11745:13:0;;-1:-1:-1;;;;;11737:21:0;;;11745:13;;11737:21;11698:60;:109;;;;-1:-1:-1;;;;;;11784:23:0;;;;;;:17;:23;;;;;;;;11783:24;11698:109;:156;;;;-1:-1:-1;;;;;;11833:21:0;;;;;;:17;:21;;;;;;;;11832:22;11698:156;11672:485;;;11930:10;;11916;;11901:25;;:12;:25;:::i;:::-;:39;11897:241;;-1:-1:-1;;;;;11974:14:0;;;;;;:10;:14;;;;;;;;11969:98;;12021:9;:18;;;;;;;-1:-1:-1;12021:18:0;;;;;;;;-1:-1:-1;;;;;;12021:18:0;-1:-1:-1;;;;;12021:18:0;;;;;11969:98;-1:-1:-1;;;;;12093:14:0;;;;;;:10;:14;;;;;:21;;-1:-1:-1;;12093:21:0;12110:4;12093:21;;;11897:241;12198:13;;-1:-1:-1;;;;;12192:19:0;;;12198:13;;12192:19;12188:559;;12244:13;;-1:-1:-1;;;;;12236:21:0;;;12244:13;;12236:21;:38;;;;-1:-1:-1;12261:13:0;;-1:-1:-1;;;12261:13:0;;;;12236:38;12232:333;;;12341:9;12333:18;;;;:7;:18;;;;;;12366:15;;12333:30;;12354:9;12333:30;:::i;:::-;:48;:122;;;;-1:-1:-1;;;;;;12414:11:0;;;;;;:7;:11;;;;;;12440:15;;12414:23;;12428:9;12414:23;:::i;:::-;:41;12333:122;12299:246;;;;-1:-1:-1;;;12299:246:0;;13763:2:1;12299:246:0;;;13745:21:1;13802:2;13782:18;;;13775:30;13841:34;13821:18;;;13814:62;-1:-1:-1;;;13892:18:1;;;13885:36;13938:19;;12299:246:0;13561:402:1;12299:246:0;12638:14;;12629:6;12613:13;12623:2;-1:-1:-1;;;;;8104:18:0;8077:7;8104:18;;;:9;:18;;;;;;;8011:119;12613:13;:22;;;;:::i;:::-;:39;12583:148;;;;-1:-1:-1;;;12583:148:0;;14170:2:1;12583:148:0;;;14152:21:1;14209:2;14189:18;;;14182:30;14248:34;14228:18;;;14221:62;-1:-1:-1;;;14299:18:1;;;14292:33;14342:19;;12583:148:0;13968:399:1;12583:148:0;12812:4;12763:28;8104:18;;;:9;:18;;;;;;12872:19;;12848:43;;;;;12908:126;;12999:19;;12976:42;;12908:126;13054:7;:18;;;;-1:-1:-1;13066:6:0;;-1:-1:-1;;;13066:6:0;;;;13065:7;13054:18;:43;;;;-1:-1:-1;13084:13:0;;-1:-1:-1;;;;;13076:21:0;;;13084:13;;13076:21;;13054:43;:58;;;;-1:-1:-1;13101:11:0;;-1:-1:-1;;;13101:11:0;;;;13054:58;13050:378;;;13133:38;13150:20;13133:16;:38::i;:::-;13261:21;13305:28;;13301:112;;13358:35;13371:21;13358:12;:35::i;:::-;13114:314;13050:378;11330:2109;;11272:2167;-1:-1:-1;;;;;13529:24:0;;13451:12;13529:24;;;:18;:24;;;;;;13466:4;;13529:24;;;:50;;-1:-1:-1;;;;;;13557:22:0;;;;;;:18;:22;;;;;;;;13529:50;13528:115;;;-1:-1:-1;13606:13:0;;-1:-1:-1;;;;;13598:21:0;;;13606:13;;13598:21;;;;:44;;-1:-1:-1;13629:13:0;;-1:-1:-1;;;;;13623:19:0;;;13629:13;;13623:19;;13598:44;13510:537;;;-1:-1:-1;13680:5:0;13510:537;;;13762:13;;-1:-1:-1;;;;;13754:21:0;;;13762:13;;13754:21;:55;;;;-1:-1:-1;13793:15:0;;-1:-1:-1;;;;;13779:30:0;;;13793:15;;13779:30;;13754:55;13750:118;;;13840:12;;13830:7;:22;13750:118;13927:13;;-1:-1:-1;;;;;13921:19:0;;;13927:13;;13921:19;:55;;;;-1:-1:-1;13960:15:0;;-1:-1:-1;;;;;13944:32:0;;;13960:15;;13944:32;;13921:55;13917:119;;;14007:13;;13997:7;:23;13917:119;14065:9;14057:18;;;;:7;:18;;;;;;14078:15;14057:36;;;;-1:-1:-1;;;;;14104:11:0;;;;;;:29;14144:41;14159:4;14112:2;14169:6;14177:7;14144:14;:41::i;:::-;11030:3163;10927:3266;;;:::o;3054:224::-;3174:7;3210:12;3202:6;;;;3194:29;;;;-1:-1:-1;;;3194:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3234:9:0;3246:5;3250:1;3246;:5;:::i;:::-;3234:17;3054:224;-1:-1:-1;;;;;3054:224:0:o;2723:179::-;2781:7;;2813:5;2817:1;2813;:5;:::i;:::-;2801:17;;2842:1;2837;:6;;2829:46;;;;-1:-1:-1;;;2829:46:0;;14574:2:1;2829:46:0;;;14556:21:1;14613:2;14593:18;;;14586:30;14652:29;14632:18;;;14625:57;14699:18;;2829:46:0;14372:351:1;2829:46:0;2893:1;2723:179;-1:-1:-1;;;2723:179:0:o;17088:401::-;17252:90;;;;;;;;;;;-1:-1:-1;;;17252:90:0;;;;;;;;-1:-1:-1;;;;;17252:17:0;;17215:4;17252:17;;;:9;:17;;;;;;;:90;;17288:6;;17252:21;:90::i;:::-;-1:-1:-1;;;;;17232:17:0;;;;;;;:9;:17;;;;;;:110;;;;17376:20;;;;;;;:32;;17401:6;17376:24;:32::i;:::-;-1:-1:-1;;;;;17353:20:0;;;;;;;:9;:20;;;;;;;:55;;;;17424:35;;;;;;-1:-1:-1;;;;;;;;;;;17424:35:0;;;17452:6;3294:25:1;;3282:2;3267:18;;3148:177;17424:35:0;;;;;;;;-1:-1:-1;17477:4:0;17088:401;;;;;:::o;2179:191::-;2253:16;2272:6;;-1:-1:-1;;;;;2289:17:0;;;-1:-1:-1;;;;;;2289:17:0;;;;;;2322:40;;2272:6;;;;;;;2322:40;;2253:16;2322:40;2242:128;2179:191;:::o;14201:699::-;6721:6;:13;;-1:-1:-1;;;;6721:13:0;-1:-1:-1;;;6721:13:0;;;;14296:28:::1;14320:3;14296:19;:11:::0;14312:2:::1;14296:15;:19::i;:::-;:23:::0;::::1;:28::i;:::-;14279:45:::0;-1:-1:-1;14335:14:0::1;14352:20;14279:45:::0;14352:11;:20:::1;:::i;:::-;14465:16;::::0;;14479:1:::1;14465:16:::0;;;;;::::1;::::0;;14335:37;;-1:-1:-1;14407:21:0::1;::::0;14383::::1;::::0;14465:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14465:16:0::1;14441:40;;14510:4;14492;14497:1;14492:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14492:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14536:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14536:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14492:7;;14536:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14526:4;14531:1;14526:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14526:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14569:15:::1;::::0;:191:::1;::::0;-1:-1:-1;;;14569:191:0;;:15;::::1;::::0;:66:::1;::::0;:191:::1;::::0;14650:6;;14569:15:::1;::::0;14687:4;;14714::::1;::::0;14734:15:::1;::::0;14569:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14771:17;14791:40;14817:13;14791:21;:25;;:40;;;;:::i;:::-;14771:60:::0;-1:-1:-1;14844:48:0::1;14857:6:::0;14865:26:::1;14887:3;14865:17;14771:60:::0;14879:2:::1;14865:13;:17::i;:26::-;14844:12;:48::i;:::-;-1:-1:-1::0;;6757:6:0;:14;;-1:-1:-1;;;;6757:14:0;;;-1:-1:-1;;;;14201:699:0:o;14908:152::-;14984:17;;:41;;14966:12;;-1:-1:-1;;;;;14984:17:0;;15014:6;;14966:12;14984:41;14966:12;14984:41;15014:6;14984:17;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14965:60;;;15044:7;15036:16;;;;;16045:317;16201:7;16196:159;;16225:41;16240:6;16248:9;16259:6;16225:14;:41::i;:::-;;16196:159;;;16299:44;16317:6;16325:9;16336:6;16299:17;:44::i;3286:246::-;3344:7;3368:1;3373;3368:6;3364:47;;-1:-1:-1;3398:1:0;3391:8;;3364:47;3421:9;3433:5;3437:1;3433;:5;:::i;:::-;3421:17;-1:-1:-1;3466:1:0;3457:5;3461:1;3421:17;3457:5;:::i;:::-;:10;3449:56;;;;-1:-1:-1;;;3449:56:0;;15912:2:1;3449:56:0;;;15894:21:1;15951:2;15931:18;;;15924:30;15990:34;15970:18;;;15963:62;-1:-1:-1;;;16041:18:1;;;16034:31;16082:19;;3449:56:0;15710:397:1;3540:132:0;3598:7;3625:39;3629:1;3632;3625:39;;;;;;;;;;;;;;;;;:3;:39::i;2910:136::-;2968:7;2995:43;2999:1;3002;2995:43;;;;;;;;;;;;;;;;;:3;:43::i;15068:374::-;15179:15;;:255;;-1:-1:-1;;;15179:255:0;;15251:4;15179:255;;;16453:34:1;16503:18;;;16496:34;;;15179:15:0;16546:18:1;;;16539:34;;;16589:18;;;16582:34;;;16632:19;;;16625:44;15408:15:0;16685:19:1;;;16678:35;-1:-1:-1;;;;;15179:15:0;;;;:31;;15218:9;;16387:19:1;;15179:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16638:442::-;16769:22;16794:24;16803:6;16811;16794:8;:24::i;:::-;16769:49;;16849:90;16885:6;16849:90;;;;;;;;;;;;;-1:-1:-1;;;16849:90:0;;;:9;:17;16859:6;-1:-1:-1;;;;;16849:17:0;-1:-1:-1;;;;;16849:17:0;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;-1:-1:-1;;;;;16829:17:0;;;;;;;:9;:17;;;;;;:110;;;;16973:20;;;;;;;:40;;16998:14;16973:24;:40::i;:::-;-1:-1:-1;;;;;16950:20:0;;;;;;;:9;:20;;;;;;;:63;;;;17029:43;;;;;;-1:-1:-1;;;;;;;;;;;17029:43:0;;;17057:14;3294:25:1;;3282:2;3267:18;;3148:177;17029:43:0;;;;;;;;16758:322;16638:442;;;:::o;3680:223::-;3800:7;3835:12;3828:5;3820:28;;;;-1:-1:-1;;;3820:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3859:9:0;3871:5;3875:1;3871;:5;:::i;17497:341::-;17583:7;17608:17;17628:28;17652:3;17628:19;17639:7;;17628:6;:10;;:19;;;;:::i;:28::-;17712:4;17694:24;;;;:9;:24;;;;;;17608:48;;-1:-1:-1;17694:39:0;;17608:48;17694:28;:39::i;:::-;17685:4;17667:24;;;;:9;:24;;;;;;;:66;;;;17749:42;;-1:-1:-1;;;;;17749:42:0;;;-1:-1:-1;;;;;;;;;;;17749:42:0;;;17781:9;3294:25:1;;3282:2;3267:18;;3148:177;17749:42:0;;;;;;;;17809:21;:6;17820:9;17809:10;:21::i;:::-;17802:28;17497:341;-1:-1:-1;;;;17497:341:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;2661:248::-;2729:6;2737;2790:2;2778:9;2769:7;2765:23;2761:32;2758:52;;;2806:1;2803;2796:12;2758:52;-1:-1:-1;;2829:23:1;;;2899:2;2884:18;;;2871:32;;-1:-1:-1;2661:248:1:o;3330:456::-;3407:6;3415;3423;3476:2;3464:9;3455:7;3451:23;3447:32;3444:52;;;3492:1;3489;3482:12;3444:52;3531:9;3518:23;3550:31;3575:5;3550:31;:::i;:::-;3600:5;-1:-1:-1;3657:2:1;3642:18;;3629:32;3670:33;3629:32;3670:33;:::i;:::-;3330:456;;3722:7;;-1:-1:-1;;;3776:2:1;3761:18;;;;3748:32;;3330:456::o;3791:118::-;3877:5;3870:13;3863:21;3856:5;3853:32;3843:60;;3899:1;3896;3889:12;3914:241;3970:6;4023:2;4011:9;4002:7;3998:23;3994:32;3991:52;;;4039:1;4036;4029:12;3991:52;4078:9;4065:23;4097:28;4119:5;4097:28;:::i;4557:180::-;4616:6;4669:2;4657:9;4648:7;4644:23;4640:32;4637:52;;;4685:1;4682;4675:12;4637:52;-1:-1:-1;4708:23:1;;4557:180;-1:-1:-1;4557:180:1:o;4742:382::-;4807:6;4815;4868:2;4856:9;4847:7;4843:23;4839:32;4836:52;;;4884:1;4881;4874:12;4836:52;4923:9;4910:23;4942:31;4967:5;4942:31;:::i;:::-;4992:5;-1:-1:-1;5049:2:1;5034:18;;5021:32;5062:30;5021:32;5062:30;:::i;:::-;5111:7;5101:17;;;4742:382;;;;;:::o;5129:367::-;5192:8;5202:6;5256:3;5249:4;5241:6;5237:17;5233:27;5223:55;;5274:1;5271;5264:12;5223:55;-1:-1:-1;5297:20:1;;5340:18;5329:30;;5326:50;;;5372:1;5369;5362:12;5326:50;5409:4;5401:6;5397:17;5385:29;;5469:3;5462:4;5452:6;5449:1;5445:14;5437:6;5433:27;5429:38;5426:47;5423:67;;;5486:1;5483;5476:12;5423:67;5129:367;;;;;:::o;5501:773::-;5623:6;5631;5639;5647;5700:2;5688:9;5679:7;5675:23;5671:32;5668:52;;;5716:1;5713;5706:12;5668:52;5756:9;5743:23;5785:18;5826:2;5818:6;5815:14;5812:34;;;5842:1;5839;5832:12;5812:34;5881:70;5943:7;5934:6;5923:9;5919:22;5881:70;:::i;:::-;5970:8;;-1:-1:-1;5855:96:1;-1:-1:-1;6058:2:1;6043:18;;6030:32;;-1:-1:-1;6074:16:1;;;6071:36;;;6103:1;6100;6093:12;6071:36;;6142:72;6206:7;6195:8;6184:9;6180:24;6142:72;:::i;:::-;5501:773;;;;-1:-1:-1;6233:8:1;-1:-1:-1;;;;5501:773:1:o;6279:247::-;6338:6;6391:2;6379:9;6370:7;6366:23;6362:32;6359:52;;;6407:1;6404;6397:12;6359:52;6446:9;6433:23;6465:31;6490:5;6465:31;:::i;6531:388::-;6599:6;6607;6660:2;6648:9;6639:7;6635:23;6631:32;6628:52;;;6676:1;6673;6666:12;6628:52;6715:9;6702:23;6734:31;6759:5;6734:31;:::i;:::-;6784:5;-1:-1:-1;6841:2:1;6826:18;;6813:32;6854:33;6813:32;6854:33;:::i;6924:354::-;7126:2;7108:21;;;7165:2;7145:18;;;7138:30;7204:32;7199:2;7184:18;;7177:60;7269:2;7254:18;;6924:354::o;7283:127::-;7344:10;7339:3;7335:20;7332:1;7325:31;7375:4;7372:1;7365:15;7399:4;7396:1;7389:15;7415:127;7476:10;7471:3;7467:20;7464:1;7457:31;7507:4;7504:1;7497:15;7531:4;7528:1;7521:15;7547:135;7586:3;7607:17;;;7604:43;;7627:18;;:::i;:::-;-1:-1:-1;7674:1:1;7663:13;;7547:135::o;7897:125::-;7937:4;7965:1;7962;7959:8;7956:34;;;7970:18;;:::i;:::-;-1:-1:-1;8007:9:1;;7897:125::o;8027:251::-;8097:6;8150:2;8138:9;8129:7;8125:23;8121:32;8118:52;;;8166:1;8163;8156:12;8118:52;8198:9;8192:16;8217:31;8242:5;8217:31;:::i;8283:461::-;8336:3;8374:5;8368:12;8401:6;8396:3;8389:19;8427:4;8456:2;8451:3;8447:12;8440:19;;8493:2;8486:5;8482:14;8514:1;8524:195;8538:6;8535:1;8532:13;8524:195;;;8603:13;;-1:-1:-1;;;;;8599:39:1;8587:52;;8659:12;;;;8694:15;;;;8635:1;8553:9;8524:195;;;-1:-1:-1;8735:3:1;;8283:461;-1:-1:-1;;;;;8283:461:1:o;8749:590::-;9056:6;9045:9;9038:25;9099:6;9094:2;9083:9;9079:18;9072:34;9142:3;9137:2;9126:9;9122:18;9115:31;9019:4;9163:57;9215:3;9204:9;9200:19;9192:6;9163:57;:::i;:::-;-1:-1:-1;;;;;9256:32:1;;;;9251:2;9236:18;;9229:60;-1:-1:-1;9320:3:1;9305:19;9298:35;9155:65;8749:590;-1:-1:-1;;;8749:590:1:o;9623:245::-;9690:6;9743:2;9731:9;9722:7;9718:23;9714:32;9711:52;;;9759:1;9756;9749:12;9711:52;9791:9;9785:16;9810:28;9832:5;9810:28;:::i;13428:128::-;13468:3;13499:1;13495:6;13492:1;13489:13;13486:39;;;13505:18;;:::i;:::-;-1:-1:-1;13541:9:1;;13428:128::o;15315:168::-;15355:7;15421:1;15417;15413:6;15409:14;15406:1;15403:21;15398:1;15391:9;15384:17;15380:45;15377:71;;;15428:18;;:::i;:::-;-1:-1:-1;15468:9:1;;15315:168::o;15488:217::-;15528:1;15554;15544:132;;15598:10;15593:3;15589:20;15586:1;15579:31;15633:4;15630:1;15623:15;15661:4;15658:1;15651:15;15544:132;-1:-1:-1;15690:9:1;;15488:217::o;16724:306::-;16812:6;16820;16828;16881:2;16869:9;16860:7;16856:23;16852:32;16849:52;;;16897:1;16894;16887:12;16849:52;16926:9;16920:16;16910:26;;16976:2;16965:9;16961:18;16955:25;16945:35;;17020:2;17009:9;17005:18;16999:25;16989:35;;16724:306;;;;;:::o

Swarm Source

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