ETH Price: $3,057.97 (-8.21%)
 

Overview

Max Total Supply

100,000,000 WAIFU

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
650,053.288559466244938027 WAIFU

Value
$0.00
0x2c0cb66e9148da9f045a74703e82b4b67b2ce220
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:
WAIFU

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-06
*/

/*
https://waifulabs.com/
*/
//SPDX-License-Identifier: MIT

pragma solidity 0.7.4;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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

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

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

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

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

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

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

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @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];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @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 _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @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);
    }

    /**
     * @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 to 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 from, address to, uint256 amount) internal virtual { }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

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

contract WAIFU is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 50_000 * 10e18;
    uint256 public maxTxAmount = 100_000_000 * 10**18;
    uint256 public maxWalletAmount = 100_000_000 * 10**18;
    
    address public marketingWallet = 0xDd6846542529B7E88564A82574c2136AC0BaB298;
    address public devWallet = 0xDd6846542529B7E88564A82574c2136AC0BaB298;
    
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 dev;
    }
    
    Taxes public taxes = Taxes(0,0,0);
    Taxes public sellTaxes = Taxes(0,0,0);
    uint256 public totTax = 0;
    uint256 public totSellTax = 0;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) public isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("WAIFU", "WAIFU") {
        _mint(msg.sender, 100000000 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
        //calculate fee
        else{
            if(recipient == pair) fee = amount * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

            // Split the contract balance into halves
            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }


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

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading(uint256 numOfDeadBlocks) external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
        deadblocks = numOfDeadBlocks;
    }

    function setTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        taxes = Taxes(_marketing, _liquidity, _dev);
        totTax = _marketing + _liquidity + _dev;
    }

    function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
        totSellTax = _marketing + _liquidity + _dev;
    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function setIsBot(address account, bool state) external onlyOwner{
        isBot[account] = state;
    }

    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

600060098190556969e10de76676d0800000600a556a52b7d2dcc80cd2e4000000600b819055600c55600d805473dd6846542529b7e88564a82574c2136ac0bab2986001600160a01b03199182168117909255600e80549091169091179055608081905260a081905260c0819052600f8190556010819055601181905561014060405260e08190526101008190526101208190526012819055601381905560148190556015819055601655348015620000b757600080fd5b50604080518082018252600580825264574149465560d81b602080840182815285518087019096529285528401528151919291620000f89160039162000483565b5080516200010e90600490602084019062000483565b5050506200012b620001256200035c60201b60201c565b62000360565b62000152336200013a620003b2565b60ff16600a0a6305f5e10002620003b760201b60201c565b336000908152601760209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a01559260048083019392829003018186803b158015620001b857600080fd5b505afa158015620001cd573d6000803e3d6000fd5b505050506040513d6020811015620001e457600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929187169163ad5c464891600480820192602092909190829003018186803b1580156200023557600080fd5b505afa1580156200024a573d6000803e3d6000fd5b505050506040513d60208110156200026157600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015620002b457600080fd5b505af1158015620002c9573d6000803e3d6000fd5b505050506040513d6020811015620002e057600080fd5b5051600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260176020526040808220805460ff199081166001908117909255600d54851684528284208054821683179055600e549094168352912080549092161790556200052f565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601290565b6001600160a01b03821662000413576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b62000421600083836200047e565b60028054820190556001600160a01b038216600081815260208181526040808320805486019055805185815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35050565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620004bb576000855562000506565b82601f10620004d657805160ff191683800117855562000506565b8280016001018555821562000506579182015b8281111562000506578251825591602001919060010190620004e9565b506200051492915062000518565b5090565b5b8082111562000514576000815560010162000519565b6124c0806200053f6000396000f3fe6080604052600436106102815760003560e01c806375f0a8741161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c14610957578063e545fd6d14610983578063e9dae5ed146109be578063f2fde38b146109f4578063f66895a314610a27578063f887ea4014610a3c57610288565b8063a9059cbb1461083e578063aa4bde2814610877578063aacebbe31461088c578063c18bc195146108bf578063dbe66ca0146108e9578063dd62ed3e1461091c57610288565b80638ea5220f116101135780638ea5220f1461077257806395d89b41146107875780639d0014b11461079c5780639e252f00146107c6578063a457c2d7146107f0578063a8aa1b311461082957610288565b806375f0a874146106b457806382aa7c68146106e55780638c0b5e221461070f5780638cd4426d146107245780638da5cb5b1461075d57610288565b8063293b7ef4116101f357806350c9a88f116101ac57806350c9a88f146105e55780636256d181146105fa5780636ddd17131461062457806370a0823114610639578063715018a61461066c578063728f8eea1461068157610288565b8063293b7ef4146104e9578063313ce567146104fe57806339509351146105295780633bbac5791461056257806340b28c2f146105955780634ada218b146105d057610288565b806318160ddd1161024557806318160ddd146103fe5780631816467f146104135780632253163d1461044657806323b872dd1461045b57806326b5d32f1461049e578063274a533c146104d457610288565b806303c0f5d41461028d5780630445b667146102ca57806306fdde03146102f1578063087332141461037b578063095ea7b3146103b157610288565b3661028857005b600080fd5b34801561029957600080fd5b506102c8600480360360408110156102b057600080fd5b506001600160a01b0381351690602001351515610a51565b005b3480156102d657600080fd5b506102df610ade565b60408051918252519081900360200190f35b3480156102fd57600080fd5b50610306610ae4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610340578181015183820152602001610328565b50505050905090810190601f16801561036d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038757600080fd5b506102c86004803603606081101561039e57600080fd5b5080359060208101359060400135610b7a565b3480156103bd57600080fd5b506103ea600480360360408110156103d457600080fd5b506001600160a01b038135169060200135610c0b565b604080519115158252519081900360200190f35b34801561040a57600080fd5b506102df610c28565b34801561041f57600080fd5b506102c86004803603602081101561043657600080fd5b50356001600160a01b0316610c2e565b34801561045257600080fd5b506102df610cb2565b34801561046757600080fd5b506103ea6004803603606081101561047e57600080fd5b506001600160a01b03813581169160208101359091169060400135610cb8565b3480156104aa57600080fd5b506102c8600480360360608110156104c157600080fd5b5080359060208101359060400135610d67565b3480156104e057600080fd5b506102df610e32565b3480156104f557600080fd5b506102df610e38565b34801561050a57600080fd5b50610513610e3e565b6040805160ff9092168252519081900360200190f35b34801561053557600080fd5b506103ea6004803603604081101561054c57600080fd5b506001600160a01b038135169060200135610e43565b34801561056e57600080fd5b506103ea6004803603602081101561058557600080fd5b50356001600160a01b0316610e8e565b3480156105a157600080fd5b506102c8600480360360408110156105b857600080fd5b506001600160a01b0381358116916020013516610ea3565b3480156105dc57600080fd5b506103ea610f33565b3480156105f157600080fd5b506102df610f43565b34801561060657600080fd5b506102c86004803603602081101561061d57600080fd5b5035610f49565b34801561063057600080fd5b506103ea610fba565b34801561064557600080fd5b506102df6004803603602081101561065c57600080fd5b50356001600160a01b0316610fca565b34801561067857600080fd5b506102c8610fe5565b34801561068d57600080fd5b50610696611053565b60408051938452602084019290925282820152519081900360600190f35b3480156106c057600080fd5b506106c961105f565b604080516001600160a01b039092168252519081900360200190f35b3480156106f157600080fd5b506102c86004803603602081101561070857600080fd5b503561106e565b34801561071b57600080fd5b506102df611153565b34801561073057600080fd5b506102c86004803603604081101561074757600080fd5b506001600160a01b038135169060200135611159565b34801561076957600080fd5b506106c9611249565b34801561077e57600080fd5b506106c9611258565b34801561079357600080fd5b50610306611267565b3480156107a857600080fd5b506102c8600480360360208110156107bf57600080fd5b50356112c8565b3480156107d257600080fd5b506102c8600480360360208110156107e957600080fd5b503561132f565b3480156107fc57600080fd5b506103ea6004803603604081101561081357600080fd5b506001600160a01b0381351690602001356113af565b34801561083557600080fd5b506106c9611447565b34801561084a57600080fd5b506103ea6004803603604081101561086157600080fd5b506001600160a01b038135169060200135611456565b34801561088357600080fd5b506102df61146a565b34801561089857600080fd5b506102c8600480360360208110156108af57600080fd5b50356001600160a01b0316611470565b3480156108cb57600080fd5b506102c8600480360360208110156108e257600080fd5b50356114f4565b3480156108f557600080fd5b506103ea6004803603602081101561090c57600080fd5b50356001600160a01b0316611565565b34801561092857600080fd5b506102df6004803603604081101561093f57600080fd5b506001600160a01b038135811691602001351661157a565b34801561096357600080fd5b506102c86004803603602081101561097a57600080fd5b503515156115a5565b34801561098f57600080fd5b506102c8600480360360408110156109a657600080fd5b506001600160a01b0381351690602001351515611625565b3480156109ca57600080fd5b506102c8600480360360608110156109e157600080fd5b50803590602081013590604001356116b2565b348015610a0057600080fd5b506102c860048036036020811015610a1757600080fd5b50356001600160a01b0316611743565b348015610a3357600080fd5b506106966117f3565b348015610a4857600080fd5b506106c96117ff565b610a5961180e565b6001600160a01b0316610a6a611249565b6001600160a01b031614610ab3576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b600a5481565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b705780601f10610b4557610100808354040283529160200191610b70565b820191906000526020600020905b815481529060010190602001808311610b5357829003601f168201915b5050505050905090565b610b8261180e565b6001600160a01b0316610b93611249565b6001600160a01b031614610bdc576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b604080516060810182528481526020810184905201819052601283905560138290556014819055910101601655565b6000610c1f610c1861180e565b8484611812565b50600192915050565b60025490565b610c3661180e565b6001600160a01b0316610c47611249565b6001600160a01b031614610c90576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60165481565b6000610cc58484846118fe565b6001600160a01b038416600090815260016020526040812081610ce661180e565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905082811015610d485760405162461bcd60e51b81526004018080602001828103825260288152602001806123ac6028913960400191505060405180910390fd5b610d5c85610d5461180e565b858403611812565b506001949350505050565b610d6f61180e565b6001600160a01b0316610d80611249565b6001600160a01b031614610dc9576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b47610dd384611cd0565b478190038215610e0157610e0183850184830281610ded57fe5b600d546001600160a01b0316919004611e7e565b8315610e2b57610e2b83850185830281610e1757fe5b600e546001600160a01b0316919004611e7e565b5050505050565b60085481565b60155481565b601290565b6000610c1f610e5061180e565b848460016000610e5e61180e565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205401611812565b60186020526000908152604090205460ff1681565b610eab61180e565b6001600160a01b0316610ebc611249565b6001600160a01b031614610f05576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b600754600160b01b900460ff1681565b60095481565b610f5161180e565b6001600160a01b0316610f62611249565b6001600160a01b031614610fab576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b670de0b6b3a764000002600b55565b600754600160a81b900460ff1681565b6001600160a01b031660009081526020819052604090205490565b610fed61180e565b6001600160a01b0316610ffe611249565b6001600160a01b031614611047576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6110516000611f68565b565b600f5460105460115483565b600d546001600160a01b031681565b61107661180e565b6001600160a01b0316611087611249565b6001600160a01b0316146110d0576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600754600160b01b900460ff1615611128576040805162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b604482015290519081900360640190fd5b6007805460ff60a81b1960ff60b01b19909116600160b01b1716600160a81b17905543600855600955565b600b5481565b61116161180e565b6001600160a01b0316611172611249565b6001600160a01b0316146111bb576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb6111d2611249565b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050506040513d602081101561124357600080fd5b50505050565b6005546001600160a01b031690565b600e546001600160a01b031681565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b705780601f10610b4557610100808354040283529160200191610b70565b6112d061180e565b6001600160a01b03166112e1611249565b6001600160a01b03161461132a576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600a55565b61133761180e565b6001600160a01b0316611348611249565b6001600160a01b031614611391576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6113ac8161139d611249565b6001600160a01b031690611e7e565b50565b600080600160006113be61180e565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156114295760405162461bcd60e51b81526004018080602001828103825260258152602001806124666025913960400191505060405180910390fd5b61143d61143461180e565b85858403611812565b5060019392505050565b6007546001600160a01b031681565b6000610c1f61146361180e565b84846118fe565b600c5481565b61147861180e565b6001600160a01b0316611489611249565b6001600160a01b0316146114d2576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6114fc61180e565b6001600160a01b031661150d611249565b6001600160a01b031614611556576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b670de0b6b3a764000002600c55565b60176020526000908152604090205460ff1681565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6115ad61180e565b6001600160a01b03166115be611249565b6001600160a01b031614611607576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b60078054911515600160a81b0260ff60a81b19909216919091179055565b61162d61180e565b6001600160a01b031661163e611249565b6001600160a01b031614611687576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6116ba61180e565b6001600160a01b03166116cb611249565b6001600160a01b031614611714576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b604080516060810182528481526020810184905201819052600f83905560108290556011819055910101601555565b61174b61180e565b6001600160a01b031661175c611249565b6001600160a01b0316146117a5576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6001600160a01b0381166117ea5760405162461bcd60e51b81526004018080602001828103825260268152602001806122e36026913960400191505060405180910390fd5b6113ac81611f68565b60125460135460145483565b6006546001600160a01b031681565b3390565b6001600160a01b0383166118575760405162461bcd60e51b81526004018080602001828103825260248152602001806124426024913960400191505060405180910390fd5b6001600160a01b03821661189c5760405162461bcd60e51b81526004018080602001828103825260228152602001806123096022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000811161193d5760405162461bcd60e51b81526004018080602001828103825260298152602001806123f46029913960400191505060405180910390fd5b6001600160a01b03831660009081526018602052604090205460ff1615801561197f57506001600160a01b03821660009081526018602052604090205460ff16155b6119d0576040805162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e7300000000000000604482015290519081900360640190fd5b6001600160a01b03831660009081526017602052604090205460ff16158015611a1257506001600160a01b03821660009081526017602052604090205460ff16155b8015611a285750600754600160a01b900460ff16155b15611bbb57600754600160b01b900460ff16611a84576040805162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b604482015290519081900360640190fd5b43600954600854011115611b04576007546001600160a01b03838116911614611acb576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6007546001600160a01b03848116911614611b04576001600160a01b0383166000908152601860205260409020805460ff191660011790555b600b54811115611b5b576040805162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015290519081900360640190fd5b6007546001600160a01b03838116911614611bbb57600c5481611b7d84610fca565b011115611bbb5760405162461bcd60e51b81526004018080602001828103825260218152602001806123516021913960400191505060405180910390fd5b600754600090600160a01b900460ff1680611bee57506001600160a01b03841660009081526017602052604090205460ff165b80611c1157506001600160a01b03831660009081526017602052604090205460ff165b15611c1e57506000611c5c565b6007546001600160a01b0384811691161415611c4a576064601654830281611c4257fe5b049050611c5c565b6064601554830281611c5857fe5b0490505b600754600160a81b900460ff168015611c7f5750600754600160a01b900460ff16155b8015611c9957506007546001600160a01b03858116911614155b8015611ca55750600081115b15611cb257611cb2611fba565b611cbf84848385036120b1565b8015611243576112438430836120b1565b60408051600280825260608083018452926020830190803683370190505090503081600081518110611cfe57fe5b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d5257600080fd5b505afa158015611d66573d6000803e3d6000fd5b505050506040513d6020811015611d7c57600080fd5b5051815182906001908110611d8d57fe5b6001600160a01b039283166020918202929092010152600654611db39130911684611812565b60065460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015611e39578181015183820152602001611e21565b505050509050019650505050505050600060405180830381600087803b158015611e6257600080fd5b505af1158015611e76573d6000803e3d6000fd5b505050505050565b80471015611ed3576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b5050905080611f635760405162461bcd60e51b815260040180806020018281038252603a815260200180612372603a913960400191505060405180910390fd5b505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611051576007805460ff60a01b1916600160a01b1790556000611fe930610fca565b9050600a5481106120a1576000601654600202905060008160126001015484028161201057fe5b0490508083034761202082611cd0565b60135447829003906000908603828161203557fe5b60135491900491508102801561204f5761204f8682612207565b6012548202600202801561207357600d54612073906001600160a01b031682611e7e565b6014548302600202801561209757600e54612097906001600160a01b031682611e7e565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b0383166120f65760405162461bcd60e51b815260040180806020018281038252602581526020018061241d6025913960400191505060405180910390fd5b6001600160a01b03821661213b5760405162461bcd60e51b81526004018080602001828103825260238152602001806122c06023913960400191505060405180910390fd5b612146838383611f63565b6001600160a01b0383166000908152602081905260409020548181101561219e5760405162461bcd60e51b815260040180806020018281038252602681526020018061232b6026913960400191505060405180910390fd5b6001600160a01b038085166000818152602081815260408083208787039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505050565b60065461221f9030906001600160a01b031684611812565b600654600e546040805163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b15801561229457600080fd5b505af11580156122a8573d6000803e3d6000fd5b50505050506040513d606081101561124357600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365596f752061726520657863656564696e67206d617857616c6c6574416d6f756e74416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d6179206861766520726576657274656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220aeaec4adceb64f490e87f8dae73dd5016f078a4da46ed69b687585a90862185464736f6c63430007040033

Deployed Bytecode

0x6080604052600436106102815760003560e01c806375f0a8741161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c14610957578063e545fd6d14610983578063e9dae5ed146109be578063f2fde38b146109f4578063f66895a314610a27578063f887ea4014610a3c57610288565b8063a9059cbb1461083e578063aa4bde2814610877578063aacebbe31461088c578063c18bc195146108bf578063dbe66ca0146108e9578063dd62ed3e1461091c57610288565b80638ea5220f116101135780638ea5220f1461077257806395d89b41146107875780639d0014b11461079c5780639e252f00146107c6578063a457c2d7146107f0578063a8aa1b311461082957610288565b806375f0a874146106b457806382aa7c68146106e55780638c0b5e221461070f5780638cd4426d146107245780638da5cb5b1461075d57610288565b8063293b7ef4116101f357806350c9a88f116101ac57806350c9a88f146105e55780636256d181146105fa5780636ddd17131461062457806370a0823114610639578063715018a61461066c578063728f8eea1461068157610288565b8063293b7ef4146104e9578063313ce567146104fe57806339509351146105295780633bbac5791461056257806340b28c2f146105955780634ada218b146105d057610288565b806318160ddd1161024557806318160ddd146103fe5780631816467f146104135780632253163d1461044657806323b872dd1461045b57806326b5d32f1461049e578063274a533c146104d457610288565b806303c0f5d41461028d5780630445b667146102ca57806306fdde03146102f1578063087332141461037b578063095ea7b3146103b157610288565b3661028857005b600080fd5b34801561029957600080fd5b506102c8600480360360408110156102b057600080fd5b506001600160a01b0381351690602001351515610a51565b005b3480156102d657600080fd5b506102df610ade565b60408051918252519081900360200190f35b3480156102fd57600080fd5b50610306610ae4565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610340578181015183820152602001610328565b50505050905090810190601f16801561036d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038757600080fd5b506102c86004803603606081101561039e57600080fd5b5080359060208101359060400135610b7a565b3480156103bd57600080fd5b506103ea600480360360408110156103d457600080fd5b506001600160a01b038135169060200135610c0b565b604080519115158252519081900360200190f35b34801561040a57600080fd5b506102df610c28565b34801561041f57600080fd5b506102c86004803603602081101561043657600080fd5b50356001600160a01b0316610c2e565b34801561045257600080fd5b506102df610cb2565b34801561046757600080fd5b506103ea6004803603606081101561047e57600080fd5b506001600160a01b03813581169160208101359091169060400135610cb8565b3480156104aa57600080fd5b506102c8600480360360608110156104c157600080fd5b5080359060208101359060400135610d67565b3480156104e057600080fd5b506102df610e32565b3480156104f557600080fd5b506102df610e38565b34801561050a57600080fd5b50610513610e3e565b6040805160ff9092168252519081900360200190f35b34801561053557600080fd5b506103ea6004803603604081101561054c57600080fd5b506001600160a01b038135169060200135610e43565b34801561056e57600080fd5b506103ea6004803603602081101561058557600080fd5b50356001600160a01b0316610e8e565b3480156105a157600080fd5b506102c8600480360360408110156105b857600080fd5b506001600160a01b0381358116916020013516610ea3565b3480156105dc57600080fd5b506103ea610f33565b3480156105f157600080fd5b506102df610f43565b34801561060657600080fd5b506102c86004803603602081101561061d57600080fd5b5035610f49565b34801561063057600080fd5b506103ea610fba565b34801561064557600080fd5b506102df6004803603602081101561065c57600080fd5b50356001600160a01b0316610fca565b34801561067857600080fd5b506102c8610fe5565b34801561068d57600080fd5b50610696611053565b60408051938452602084019290925282820152519081900360600190f35b3480156106c057600080fd5b506106c961105f565b604080516001600160a01b039092168252519081900360200190f35b3480156106f157600080fd5b506102c86004803603602081101561070857600080fd5b503561106e565b34801561071b57600080fd5b506102df611153565b34801561073057600080fd5b506102c86004803603604081101561074757600080fd5b506001600160a01b038135169060200135611159565b34801561076957600080fd5b506106c9611249565b34801561077e57600080fd5b506106c9611258565b34801561079357600080fd5b50610306611267565b3480156107a857600080fd5b506102c8600480360360208110156107bf57600080fd5b50356112c8565b3480156107d257600080fd5b506102c8600480360360208110156107e957600080fd5b503561132f565b3480156107fc57600080fd5b506103ea6004803603604081101561081357600080fd5b506001600160a01b0381351690602001356113af565b34801561083557600080fd5b506106c9611447565b34801561084a57600080fd5b506103ea6004803603604081101561086157600080fd5b506001600160a01b038135169060200135611456565b34801561088357600080fd5b506102df61146a565b34801561089857600080fd5b506102c8600480360360208110156108af57600080fd5b50356001600160a01b0316611470565b3480156108cb57600080fd5b506102c8600480360360208110156108e257600080fd5b50356114f4565b3480156108f557600080fd5b506103ea6004803603602081101561090c57600080fd5b50356001600160a01b0316611565565b34801561092857600080fd5b506102df6004803603604081101561093f57600080fd5b506001600160a01b038135811691602001351661157a565b34801561096357600080fd5b506102c86004803603602081101561097a57600080fd5b503515156115a5565b34801561098f57600080fd5b506102c8600480360360408110156109a657600080fd5b506001600160a01b0381351690602001351515611625565b3480156109ca57600080fd5b506102c8600480360360608110156109e157600080fd5b50803590602081013590604001356116b2565b348015610a0057600080fd5b506102c860048036036020811015610a1757600080fd5b50356001600160a01b0316611743565b348015610a3357600080fd5b506106966117f3565b348015610a4857600080fd5b506106c96117ff565b610a5961180e565b6001600160a01b0316610a6a611249565b6001600160a01b031614610ab3576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b600a5481565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b705780601f10610b4557610100808354040283529160200191610b70565b820191906000526020600020905b815481529060010190602001808311610b5357829003601f168201915b5050505050905090565b610b8261180e565b6001600160a01b0316610b93611249565b6001600160a01b031614610bdc576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b604080516060810182528481526020810184905201819052601283905560138290556014819055910101601655565b6000610c1f610c1861180e565b8484611812565b50600192915050565b60025490565b610c3661180e565b6001600160a01b0316610c47611249565b6001600160a01b031614610c90576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60165481565b6000610cc58484846118fe565b6001600160a01b038416600090815260016020526040812081610ce661180e565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905082811015610d485760405162461bcd60e51b81526004018080602001828103825260288152602001806123ac6028913960400191505060405180910390fd5b610d5c85610d5461180e565b858403611812565b506001949350505050565b610d6f61180e565b6001600160a01b0316610d80611249565b6001600160a01b031614610dc9576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b47610dd384611cd0565b478190038215610e0157610e0183850184830281610ded57fe5b600d546001600160a01b0316919004611e7e565b8315610e2b57610e2b83850185830281610e1757fe5b600e546001600160a01b0316919004611e7e565b5050505050565b60085481565b60155481565b601290565b6000610c1f610e5061180e565b848460016000610e5e61180e565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205401611812565b60186020526000908152604090205460ff1681565b610eab61180e565b6001600160a01b0316610ebc611249565b6001600160a01b031614610f05576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b600754600160b01b900460ff1681565b60095481565b610f5161180e565b6001600160a01b0316610f62611249565b6001600160a01b031614610fab576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b670de0b6b3a764000002600b55565b600754600160a81b900460ff1681565b6001600160a01b031660009081526020819052604090205490565b610fed61180e565b6001600160a01b0316610ffe611249565b6001600160a01b031614611047576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6110516000611f68565b565b600f5460105460115483565b600d546001600160a01b031681565b61107661180e565b6001600160a01b0316611087611249565b6001600160a01b0316146110d0576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600754600160b01b900460ff1615611128576040805162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b604482015290519081900360640190fd5b6007805460ff60a81b1960ff60b01b19909116600160b01b1716600160a81b17905543600855600955565b600b5481565b61116161180e565b6001600160a01b0316611172611249565b6001600160a01b0316146111bb576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb6111d2611249565b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561121957600080fd5b505af115801561122d573d6000803e3d6000fd5b505050506040513d602081101561124357600080fd5b50505050565b6005546001600160a01b031690565b600e546001600160a01b031681565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b705780601f10610b4557610100808354040283529160200191610b70565b6112d061180e565b6001600160a01b03166112e1611249565b6001600160a01b03161461132a576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600a55565b61133761180e565b6001600160a01b0316611348611249565b6001600160a01b031614611391576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6113ac8161139d611249565b6001600160a01b031690611e7e565b50565b600080600160006113be61180e565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156114295760405162461bcd60e51b81526004018080602001828103825260258152602001806124666025913960400191505060405180910390fd5b61143d61143461180e565b85858403611812565b5060019392505050565b6007546001600160a01b031681565b6000610c1f61146361180e565b84846118fe565b600c5481565b61147861180e565b6001600160a01b0316611489611249565b6001600160a01b0316146114d2576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6114fc61180e565b6001600160a01b031661150d611249565b6001600160a01b031614611556576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b670de0b6b3a764000002600c55565b60176020526000908152604090205460ff1681565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6115ad61180e565b6001600160a01b03166115be611249565b6001600160a01b031614611607576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b60078054911515600160a81b0260ff60a81b19909216919091179055565b61162d61180e565b6001600160a01b031661163e611249565b6001600160a01b031614611687576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6116ba61180e565b6001600160a01b03166116cb611249565b6001600160a01b031614611714576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b604080516060810182528481526020810184905201819052600f83905560108290556011819055910101601555565b61174b61180e565b6001600160a01b031661175c611249565b6001600160a01b0316146117a5576040805162461bcd60e51b815260206004820181905260248201526000805160206123d4833981519152604482015290519081900360640190fd5b6001600160a01b0381166117ea5760405162461bcd60e51b81526004018080602001828103825260268152602001806122e36026913960400191505060405180910390fd5b6113ac81611f68565b60125460135460145483565b6006546001600160a01b031681565b3390565b6001600160a01b0383166118575760405162461bcd60e51b81526004018080602001828103825260248152602001806124426024913960400191505060405180910390fd5b6001600160a01b03821661189c5760405162461bcd60e51b81526004018080602001828103825260228152602001806123096022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000811161193d5760405162461bcd60e51b81526004018080602001828103825260298152602001806123f46029913960400191505060405180910390fd5b6001600160a01b03831660009081526018602052604090205460ff1615801561197f57506001600160a01b03821660009081526018602052604090205460ff16155b6119d0576040805162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e7300000000000000604482015290519081900360640190fd5b6001600160a01b03831660009081526017602052604090205460ff16158015611a1257506001600160a01b03821660009081526017602052604090205460ff16155b8015611a285750600754600160a01b900460ff16155b15611bbb57600754600160b01b900460ff16611a84576040805162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b604482015290519081900360640190fd5b43600954600854011115611b04576007546001600160a01b03838116911614611acb576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6007546001600160a01b03848116911614611b04576001600160a01b0383166000908152601860205260409020805460ff191660011790555b600b54811115611b5b576040805162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015290519081900360640190fd5b6007546001600160a01b03838116911614611bbb57600c5481611b7d84610fca565b011115611bbb5760405162461bcd60e51b81526004018080602001828103825260218152602001806123516021913960400191505060405180910390fd5b600754600090600160a01b900460ff1680611bee57506001600160a01b03841660009081526017602052604090205460ff165b80611c1157506001600160a01b03831660009081526017602052604090205460ff165b15611c1e57506000611c5c565b6007546001600160a01b0384811691161415611c4a576064601654830281611c4257fe5b049050611c5c565b6064601554830281611c5857fe5b0490505b600754600160a81b900460ff168015611c7f5750600754600160a01b900460ff16155b8015611c9957506007546001600160a01b03858116911614155b8015611ca55750600081115b15611cb257611cb2611fba565b611cbf84848385036120b1565b8015611243576112438430836120b1565b60408051600280825260608083018452926020830190803683370190505090503081600081518110611cfe57fe5b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d5257600080fd5b505afa158015611d66573d6000803e3d6000fd5b505050506040513d6020811015611d7c57600080fd5b5051815182906001908110611d8d57fe5b6001600160a01b039283166020918202929092010152600654611db39130911684611812565b60065460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015611e39578181015183820152602001611e21565b505050509050019650505050505050600060405180830381600087803b158015611e6257600080fd5b505af1158015611e76573d6000803e3d6000fd5b505050505050565b80471015611ed3576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b5050905080611f635760405162461bcd60e51b815260040180806020018281038252603a815260200180612372603a913960400191505060405180910390fd5b505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16611051576007805460ff60a01b1916600160a01b1790556000611fe930610fca565b9050600a5481106120a1576000601654600202905060008160126001015484028161201057fe5b0490508083034761202082611cd0565b60135447829003906000908603828161203557fe5b60135491900491508102801561204f5761204f8682612207565b6012548202600202801561207357600d54612073906001600160a01b031682611e7e565b6014548302600202801561209757600e54612097906001600160a01b031682611e7e565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b0383166120f65760405162461bcd60e51b815260040180806020018281038252602581526020018061241d6025913960400191505060405180910390fd5b6001600160a01b03821661213b5760405162461bcd60e51b81526004018080602001828103825260238152602001806122c06023913960400191505060405180910390fd5b612146838383611f63565b6001600160a01b0383166000908152602081905260409020548181101561219e5760405162461bcd60e51b815260040180806020018281038252602681526020018061232b6026913960400191505060405180910390fd5b6001600160a01b038085166000818152602081815260408083208787039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505050565b60065461221f9030906001600160a01b031684611812565b600654600e546040805163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b15801561229457600080fd5b505af11580156122a8573d6000803e3d6000fd5b50505050506040513d606081101561124357600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365596f752061726520657863656564696e67206d617857616c6c6574416d6f756e74416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d6179206861766520726576657274656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220aeaec4adceb64f490e87f8dae73dd5016f078a4da46ed69b687585a90862185464736f6c63430007040033

Deployed Bytecode Sourcemap

13203:8317:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20134:106;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20134:106:0;;;;;;;;;;:::i;:::-;;13512:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2409:100;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19523:214;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19523:214:0;;;;;;;;;;;;:::i;4576:169::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4576:169:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3529:108;;;;;;;;;;;;;:::i;19875:102::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19875:102:0;-1:-1:-1;;;;;19875:102:0;;:::i;14078:29::-;;;;;;;;;;;;;:::i;5227:422::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5227:422:0;;;;;;;;;;;;;;;;;:::i;20910:546::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20910:546:0;;;;;;;;;;;;:::i;13435:28::-;;;;;;;;;;;;;:::i;14046:25::-;;;;;;;;;;;;;:::i;3371:93::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6058:215;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6058:215:0;;;;;;;;:::i;14176:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14176:38:0;-1:-1:-1;;;;;14176:38:0;;:::i;19985:137::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19985:137:0;;;;;;;;;;:::i;13400:26::-;;;;;;;;;;;;;:::i;13470:29::-;;;;;;;;;;;;;:::i;20394:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20394:109:0;;:::i;13370:23::-;;;;;;;;;;;;;:::i;3700:127::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3700:127:0;-1:-1:-1;;;;;3700:127:0;;:::i;11980:94::-;;;;;;;;;;;;;:::i;13962:33::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13686:75;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;13686:75:0;;;;;;;;;;;;;;19031:274;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19031:274:0;;:::i;13564:49::-;;;;;;;;;;;;;:::i;20640:142::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20640:142:0;;;;;;;;:::i;11757:87::-;;;;;;;;;;;;;:::i;13768:69::-;;;;;;;;;;;;;:::i;2628:104::-;;;;;;;;;;;;;:::i;18913:110::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18913:110:0;;:::i;20790:112::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20790:112:0;;:::i;6776:377::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6776:377:0;;;;;;;;:::i;13316:19::-;;;;;;;;;;;;;:::i;4040:175::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4040:175:0;;;;;;;;:::i;13620:53::-;;;;;;;;;;;;;:::i;19749:114::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19749:114:0;-1:-1:-1;;;;;19749:114:0;;:::i;20515:117::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20515:117:0;;:::i;14120:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14120:49:0;-1:-1:-1;;;;;14120:49:0;;:::i;4278:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4278:151:0;;;;;;;;;;:::i;18812:93::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18812:93:0;;;;:::i;20248:134::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20248:134:0;;;;;;;;;;:::i;19313:202::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19313:202:0;;;;;;;;;;;;:::i;12082:192::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12082:192:0;-1:-1:-1;;;;;12082:192:0;;:::i;14002:37::-;;;;;;;;;;;;;:::i;13288:21::-;;;;;;;;;;;;;:::i;20134:106::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20210:14:0;;;::::1;;::::0;;;:5:::1;:14;::::0;;;;:22;;-1:-1:-1;;20210:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20134:106::o;13512:45::-;;;;:::o;2409:100::-;2496:5;2489:12;;;;;;;;-1:-1:-1;;2489:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:13;;2489:12;;2496:5;;2489:12;;2496:5;2489:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2409:100;:::o;19523:214::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;19640:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;19628:9:::1;:47:::0;;;;;;;;;;;19699:23;::::1;:30;19686:10;:43:::0;19523:214::o;4576:169::-;4659:4;4676:39;4685:12;:10;:12::i;:::-;4699:7;4708:6;4676:8;:39::i;:::-;-1:-1:-1;4733:4:0;4576:169;;;;:::o;3529:108::-;3617:12;;3529:108;:::o;19875:102::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;19948:9:::1;:21:::0;;-1:-1:-1;;;;;;19948:21:0::1;-1:-1:-1::0;;;;;19948:21:0;;;::::1;::::0;;;::::1;::::0;;19875:102::o;14078:29::-;;;;:::o;5227:422::-;5333:4;5350:36;5360:6;5368:9;5379:6;5350:9;:36::i;:::-;-1:-1:-1;;;;;5426:19:0;;5399:24;5426:19;;;:11;:19;;;;;5399:24;5446:12;:10;:12::i;:::-;-1:-1:-1;;;;;5426:33:0;-1:-1:-1;;;;;5426:33:0;;;;;;;;;;;;;5399:60;;5498:6;5478:16;:26;;5470:79;;;;-1:-1:-1;;;5470:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5560:57;5569:6;5577:12;:10;:12::i;:::-;5610:6;5591:16;:25;5560:8;:57::i;:::-;-1:-1:-1;5637:4:0;;5227:422;-1:-1:-1;;;;5227:422:0:o;20910:546::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;21049:21:::1;21081:24;21098:6:::0;21081:16:::1;:24::i;:::-;21137:21;:35:::0;;::::1;21186:23:::0;;21183:136:::1;;21211:108;21298:19;21282:13;:35;21259:19;21246:10;:32;:72;;;;;21219:15;::::0;-1:-1:-1;;;;;21219:15:0::1;::::0;21246:72;::::1;21211:34;:108::i;:::-;21333:17:::0;;21330:118:::1;;21352:96;21427:19;21411:13;:35;21394:13;21381:10;:26;:66;;;;;21360:9;::::0;-1:-1:-1;;;;;21360:9:0::1;::::0;21381:66;::::1;21352:28;:96::i;:::-;11963:1;;20910:546:::0;;;:::o;13435:28::-;;;;:::o;14046:25::-;;;;:::o;3371:93::-;3454:2;3371:93;:::o;6058:215::-;6146:4;6163:80;6172:12;:10;:12::i;:::-;6186:7;6232:10;6195:11;:25;6207:12;:10;:12::i;:::-;-1:-1:-1;;;;;6195:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;6195:25:0;;;:34;;;;;;;;;;:47;6163:8;:80::i;14176:38::-;;;;;;;;;;;;;;;:::o;19985:137::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;20075:6:::1;:16:::0;;-1:-1:-1;;;;;20075:16:0;;::::1;-1:-1:-1::0;;;;;;20075:16:0;;::::1;;::::0;;;20102:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;19985:137::o;13400:26::-;;;-1:-1:-1;;;13400:26:0;;;;;:::o;13470:29::-;;;;:::o;20394:109::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;20489:6:::1;20480:15;20466:11;:29:::0;20394:109::o;13370:23::-;;;-1:-1:-1;;;13370:23:0;;;;;:::o;3700:127::-;-1:-1:-1;;;;;3801:18:0;3774:7;3801:18;;;;;;;;;;;;3700:127::o;11980:94::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;12045:21:::1;12063:1;12045:9;:21::i;:::-;11980:94::o:0;13962:33::-;;;;;;;;:::o;13686:75::-;;;-1:-1:-1;;;;;13686:75:0;;:::o;19031:274::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;19117:14:::1;::::0;-1:-1:-1;;;19117:14:0;::::1;;;19116:15;19108:50;;;::::0;;-1:-1:-1;;;19108:50:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;19108:50:0;;;;;;;;;;;;;::::1;;19169:14;:21:::0;;-1:-1:-1;;;;;;;;19169:21:0;;::::1;-1:-1:-1::0;;;19169:21:0::1;19201:18;-1:-1:-1::0;;;19201:18:0::1;::::0;;19246:12:::1;19230:13;:28:::0;19269:10:::1;:28:::0;19031:274::o;13564:49::-;;;;:::o;20640:142::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;20735:12:::1;-1:-1:-1::0;;;;;20728:29:0::1;;20758:7;:5;:7::i;:::-;20767:6;20728:46;;;;;;;;;;;;;-1:-1:-1::0;;;;;20728:46:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;20640:142:0:o;11757:87::-;11830:6;;-1:-1:-1;;;;;11830:6:0;11757:87;:::o;13768:69::-;;;-1:-1:-1;;;;;13768:69:0;;:::o;2628:104::-;2717:7;2710:14;;;;;;;;-1:-1:-1;;2710:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2684:13;;2710:14;;2717:7;;2710:14;;2717:7;2710:14;;;;;;;;;;;;;;;;;;;;;;;;18913:110;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;18989:13:::1;:26:::0;18913:110::o;20790:112::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;20857:37:::1;20884:9;20865:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;20857:26:0::1;::::0;::::1;:37::i;:::-;20790:112:::0;:::o;6776:377::-;6869:4;6886:24;6913:11;:25;6925:12;:10;:12::i;:::-;-1:-1:-1;;;;;6913:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;6913:25:0;;;:34;;;;;;;;;;;-1:-1:-1;6966:35:0;;;;6958:85;;;;-1:-1:-1;;;6958:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7054:67;7063:12;:10;:12::i;:::-;7077:7;7105:15;7086:16;:34;7054:8;:67::i;:::-;-1:-1:-1;7141:4:0;;6776:377;-1:-1:-1;;;6776:377:0:o;13316:19::-;;;-1:-1:-1;;;;;13316:19:0;;:::o;4040:175::-;4126:4;4143:42;4153:12;:10;:12::i;:::-;4167:9;4178:6;4143:9;:42::i;13620:53::-;;;;:::o;19749:114::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;19828:15:::1;:27:::0;;-1:-1:-1;;;;;;19828:27:0::1;-1:-1:-1::0;;;;;19828:27:0;;;::::1;::::0;;;::::1;::::0;;19749:114::o;20515:117::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;20618:6:::1;20609:15;20591;:33:::0;20515:117::o;14120:49::-;;;;;;;;;;;;;;;:::o;4278:151::-;-1:-1:-1;;;;;4394:18:0;;;4367:7;4394:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4278:151::o;18812:93::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;18878:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;18878:19:0::1;-1:-1:-1::0;;;;18878:19:0;;::::1;::::0;;;::::1;::::0;;18812:93::o;20248:134::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20340:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;20340:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20248:134::o;19313:202::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;19422:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;19414:5:::1;:43:::0;;;;;;;;;;;19477:23;::::1;:30;19468:6;:39:::0;19313:202::o;12082:192::-;11903:12;:10;:12::i;:::-;-1:-1:-1;;;;;11892:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11892:23:0;;11884:68;;;;;-1:-1:-1;;;11884:68:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11884:68:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12171:22:0;::::1;12163:73;;;;-1:-1:-1::0;;;12163:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12247:19;12257:8;12247:9;:19::i;14002:37::-:0;;;;;;;;:::o;13288:21::-;;;-1:-1:-1;;;;;13288:21:0;;:::o;125:98::-;205:10;125:98;:::o;10132:346::-;-1:-1:-1;;;;;10234:19:0;;10226:68;;;;-1:-1:-1;;;10226:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10313:21:0;;10305:68;;;;-1:-1:-1;;;10305:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10386:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10438:32;;;;;;;;;;;;;;;;;10132:346;;;:::o;14934:1573::-;15050:1;15041:6;:10;15033:64;;;;-1:-1:-1;;;15033:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15117:13:0;;;;;;:5;:13;;;;;;;;15116:14;:35;;;;-1:-1:-1;;;;;;15135:16:0;;;;;;:5;:16;;;;;;;;15134:17;15116:35;15108:73;;;;;-1:-1:-1;;;15108:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15224:24:0;;;;;;:16;:24;;;;;;;;15223:25;:57;;;;-1:-1:-1;;;;;;15253:27:0;;;;;;:16;:27;;;;;;;;15252:28;15223:57;:70;;;;-1:-1:-1;15285:8:0;;-1:-1:-1;;;15285:8:0;;;;15284:9;15223:70;15220:589;;;15317:14;;-1:-1:-1;;;15317:14:0;;;;15309:49;;;;;-1:-1:-1;;;15309:49:0;;;;;;;;;;;;-1:-1:-1;;;15309:49:0;;;;;;;;;;;;;;;15405:12;15392:10;;15376:13;;:26;:41;15373:183;;;15453:4;;-1:-1:-1;;;;;15440:17:0;;;15453:4;;15440:17;15437:45;;-1:-1:-1;;;;;15459:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;15459:23:0;15478:4;15459:23;;;15437:45;15514:4;;-1:-1:-1;;;;;15504:14:0;;;15514:4;;15504:14;15501:39;;-1:-1:-1;;;;;15520:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;15520:20:0;15536:4;15520:20;;;15501:39;15588:11;;15578:6;:21;;15570:63;;;;;-1:-1:-1;;;15570:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15664:4;;-1:-1:-1;;;;;15651:17:0;;;15664:4;;15651:17;15648:150;;15729:15;;15719:6;15696:20;15706:9;15696;:20::i;:::-;:29;:48;;15688:94;;;;-1:-1:-1;;;15688:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15928:8;;15821:11;;-1:-1:-1;;;15928:8:0;;;;;:36;;-1:-1:-1;;;;;;15940:24:0;;;;;;:16;:24;;;;;;;;15928:36;:67;;;-1:-1:-1;;;;;;15968:27:0;;;;;;:16;:27;;;;;;;;15928:67;15924:257;;;-1:-1:-1;16003:1:0;15924:257;;;16085:4;;-1:-1:-1;;;;;16072:17:0;;;16085:4;;16072:17;16069:100;;;16119:3;16106:10;;16097:6;:19;:25;;;;;;16091:31;;16069:100;;;16166:3;16157:6;;16148;:15;:21;;;;;;16142:27;;16069:100;16302:11;;-1:-1:-1;;;16302:11:0;;;;:24;;;;-1:-1:-1;16318:8:0;;-1:-1:-1;;;16318:8:0;;;;16317:9;16302:24;:42;;;;-1:-1:-1;16340:4:0;;-1:-1:-1;;;;;16330:14:0;;;16340:4;;16330:14;;16302:42;:53;;;;;16354:1;16348:3;:7;16302:53;16298:72;;;16357:13;:11;:13::i;:::-;16383:48;16399:6;16407:9;16427:3;16418:6;:12;16383:15;:48::i;:::-;16445:7;;16442:55;;16454:43;16470:6;16486:4;16493:3;16454:15;:43::i;17899:400::-;17989:16;;;18003:1;17989:16;;;17965:21;17989:16;;;;;17965:21;17989:16;;;;;;;;;;-1:-1:-1;17989:16:0;17965:40;;18034:4;18016;18021:1;18016:7;;;;;;;;-1:-1:-1;;;;;18016:23:0;;;:7;;;;;;;;;;:23;;;;18060:6;;:13;;;-1:-1:-1;;;18060:13:0;;;;:6;;;;;:11;;:13;;;;;18016:7;;18060:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18060:13:0;18050:7;;:4;;18055:1;;18050:7;;;;;;-1:-1:-1;;;;;18050:23:0;;;:7;;;;;;;;;:23;18118:6;;18086:53;;18103:4;;18118:6;18127:11;18086:8;:53::i;:::-;18178:6;;:111;;-1:-1:-1;;;18178:111:0;;;;;;;;:6;:111;;;;;;18266:4;18178:111;;;;;;18273:15;18178:111;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18178:6:0;;;;:57;;18236:11;;18252:4;;18266;18273:15;18178:111;;;;;;;;;;;;;;;;:6;:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17899:400;;:::o;11202:317::-;11317:6;11292:21;:31;;11284:73;;;;;-1:-1:-1;;;11284:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11389:33;;11371:12;;-1:-1:-1;;;;;11389:14:0;;;11411:6;;11371:12;11389:33;11371:12;11389:33;11411:6;11389:14;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11370:52;;;11441:7;11433:78;;;;-1:-1:-1;;;11433:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11202:317;;;:::o;12282:173::-;12357:6;;;-1:-1:-1;;;;;12374:17:0;;;-1:-1:-1;;;;;;12374:17:0;;;;;;;12407:40;;12357:6;;;12374:17;12357:6;;12407:40;;12338:16;;12407:40;12282:173;;:::o;16515:1374::-;14261:8;;-1:-1:-1;;;14261:8:0;;;;14256:104;;14286:8;:15;;-1:-1:-1;;;;14286:15:0;-1:-1:-1;;;14286:15:0;;;;16590:24:::1;16608:4;16590:9;:24::i;:::-;16564:50;;16648:13;;16629:15;:32;16625:1257;;16735:19;16757:10;;16770:1;16757:14;16735:36;;16786:32;16861:11;16839:9;:19;;;16821:15;:37;:51;;;;;;::::0;-1:-1:-1;16904:42:0;;::::1;16992:21;17034:24;16904:42:::0;17034:16:::1;:24::i;:::-;17206:19:::0;;17102:21:::1;:38:::0;;::::1;::::0;17079:20:::1;::::0;17192:33;::::1;17102:38:::0;17192:33;17176:50:::1;;;;17287:19:::0;;17176:50;;::::1;::::0;-1:-1:-1;17273:33:0;::::1;17330:25:::0;;17327:170:::1;;17420:61;17433:24;17459:21;17420:12;:61::i;:::-;17558:9;:19:::0;17540:37;;17554:1:::1;17540:37:::0;17595:16;;17592:103:::1;;17639:15;::::0;17631:48:::1;::::0;-1:-1:-1;;;;;17639:15:0::1;17666:12:::0;17631:34:::1;:48::i;:::-;17758:13:::0;;17740:31;;17758:13:::1;17740:31:::0;17789:10;;17786:85:::1;;17827:9;::::0;17819:36:::1;::::0;-1:-1:-1;;;;;17827:9:0::1;17848:6:::0;17819:28:::1;:36::i;:::-;16625:1257;;;;;;;;;;-1:-1:-1::0;14332:8:0;:16;;-1:-1:-1;;;;14332:16:0;;;16515:1374::o;7643:604::-;-1:-1:-1;;;;;7749:20:0;;7741:70;;;;-1:-1:-1;;;7741:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7830:23:0;;7822:71;;;;-1:-1:-1;;;7822:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7906:47;7927:6;7935:9;7946:6;7906:20;:47::i;:::-;-1:-1:-1;;;;;7990:17:0;;7966:21;7990:17;;;;;;;;;;;8026:23;;;;8018:74;;;;-1:-1:-1;;;8018:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8103:17:0;;;:9;:17;;;;;;;;;;;8123:22;;;8103:42;;8156:20;;;;;;;;;;:30;;;;;;8204:35;;;;;;;8156:20;;8204:35;;;;;;;;;;;7643:604;;;;:::o;18307:497::-;18487:6;;18455:53;;18472:4;;-1:-1:-1;;;;;18487:6:0;18496:11;18455:8;:53::i;:::-;18551:6;;18746:9;;18551:245;;;-1:-1:-1;;;18551:245:0;;18614:4;18551:245;;;;;;;;;;:6;:245;;;;;;;;;;-1:-1:-1;;;;;18746:9:0;;;18551:245;;;;18770:15;18551:245;;;;;;:6;;;;;:22;;18581:9;;18551:245;;;;;;;;;;;;;;;18581:9;18551:6;:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

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