ETH Price: $3,098.82 (-0.95%)

Token

BAVO zkFHE System (BAVO)
 

Overview

Max Total Supply

1,000,000,000 BAVO

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000408258234 BAVO

Value
$0.00
0xf31f96e4745da789a1c65906eece5fe0f6752edc
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:
BAVOContract

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-05
*/

// SPDX-License-Identifier: MIT

// Website: https://bavolabs.org/
// Telegram: https://t.me/zkBAVOLabs
// Twitter: https://x.com/zkBAVOLabs
// Docs: https://bavo.gitbook.io/

pragma solidity ^0.8.17;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Invalid owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "New owner is ZERO");
        _transferOwnership(newOwner);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

interface IERC20 {
    function 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 to, 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 from, address to, 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 IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    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(uint256) external view returns (address pair);
    function allPairsLength() external view returns (uint256);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

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

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

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

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

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

    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 (uint256);
    function balanceOf(address owner) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 value) external returns (bool);
    function transfer(address to, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 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 (uint256);
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    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 (uint256);
    function price1CumulativeLast() external view returns (uint256);
    function kLast() external view returns (uint256);
    function mint(address to) external returns (uint256 liquidity);
    function burn(address to) external returns (uint256 amount0, uint256 amount1);
    function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

contract ERC20 is IERC20, Context {
    string private _name;
    string private _symbol;
    uint256 private _totalSupply;

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

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: Not owner != address(0)");
        require(spender != address(0), "ERC20: Not spender != address(0)");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        _transfer(from, to, amount);
        uint256 curAllow = _allowances[from][_msgSender()];
        require(curAllow >= amount, "ERC20: Not curAllow >= amount");
        unchecked {
            _approve(from, _msgSender(), curAllow - amount);
        }
        return true;
    }

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

    function increaseAllowance(address spender, uint256 addValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subValue) public virtual returns (bool) {
        uint256 curAllow = _allowances[_msgSender()][spender];
        require(curAllow >= subValue, "ERC20: Not curAllow >= subValue");
        unchecked {
            _approve(_msgSender(), spender, curAllow - subValue);
        }
        return true;
    }

    function _mint(
    	address account,
	    uint256 amount
    ) internal virtual {
        require(account != address(0), "ERC20: Not account != address(0)");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(
    	address account,
	    uint256 amount
    ) internal virtual {
        require(account != address(0), "ERC20: Not account != address(0)");
        _beforeTokenTransfer(account, address(0), amount);
        uint256 kBalance = _balances[account];
        require(kBalance >= amount, "ERC20: kBalance >= amount");
        unchecked {
            _balances[account] = kBalance - amount;
        }
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }

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

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: Not from != address(0)");
        require(to != address(0), "ERC20: Not to != address(0)");
        _beforeTokenTransfer(from, to, amount);
        uint256 balanceFrom = _balances[from];
        require(balanceFrom >= amount, "ERC20: Not balanceFrom >= amount");
        unchecked {
            _balances[from] = balanceFrom - amount;
        }
        _balances[to] += amount;
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, amount);
    }

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

contract BAVOContract is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public swapRouter;
    address public swapPair;
    
    uint256 public minSwapTokenAmount;
    uint256 public maxTokenAmountPerWallet;
    uint256 public maxTokenAmountPerTxn;

    bool public bTradingActive = false;
    bool public bSwapEnabled = false;

    address public marketingWallet;
    address public devWallet;

    uint256 public tokenAmountForMarketing;
    uint256 public tokenAmountForDev;

    mapping(address => bool) public bExcludedMaxTokenAmountPerTxn;

    mapping(address => bool) public bExcludedFromTax;

    mapping(address => bool) public automatedMarketMakerPairs;

    bool public limitsInEffect = true;

    uint256 public sellTotalTax;
    uint256 public sellMarketingTax;
    uint256 public sellDevTax;

    uint256 public buyTotalTax;
    uint256 public buyMarketingTax;
    uint256 public buyDevTax;
    bool public isPaused;

    
    bool private bSwapping;

    mapping(address => bool) private blackList;
    
    constructor(address _devWallet, address _marketingWallet, address _swapRouter) ERC20("BAVO zkFHE System", "BAVO"){
        devWallet = address(_devWallet);
        marketingWallet = address(_marketingWallet);


        swapRouter = IUniswapV2Router02(_swapRouter);
        swapPair = IUniswapV2Factory(swapRouter.factory()).createPair(address(this), swapRouter.WETH());

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

        uint256 totalSupply = 1_000_000_000 * (10 ** decimals());
        minSwapTokenAmount = (totalSupply * 10) / 20000; // 0.05% from total supply
        maxTokenAmountPerTxn = (totalSupply * 3) / 200; // 1.5% from total supply max transaction amount
        maxTokenAmountPerWallet = (totalSupply * 3) / 200;  // 1.5% from total supply max wallet amount
        bExcludedFromTax[address(this)] = true;
        bExcludedFromTax[owner()] = true;


        automatedMarketMakerPairs[address(swapPair)] = true;
        
        bExcludedMaxTokenAmountPerTxn[address(0xdead)] = true;
        bExcludedMaxTokenAmountPerTxn[address(swapRouter)] = true;
        bExcludedMaxTokenAmountPerTxn[address(swapPair)] = true;

        bExcludedFromTax[address(0xdead)] = true;

        sellMarketingTax = 5;
        sellDevTax = 5;
        sellTotalTax = sellMarketingTax + sellDevTax;


        buyMarketingTax = 5;
        buyDevTax = 5;
        buyTotalTax = buyMarketingTax + buyDevTax;


        _mint(msg.sender, totalSupply);
    }

    function updateDevWallet(address _devWallet) external onlyOwner {
        devWallet = _devWallet;
    }

    function updateMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function togglePause() external onlyOwner {
        isPaused = !isPaused;
    }

    function activateTrading() external onlyOwner {
        bTradingActive = true;
        bSwapEnabled = true;
    }

    function excludeFromMaxTokenAmountPerTxn(address addr, bool value)
    	external onlyOwner {
        bExcludedMaxTokenAmountPerTxn[addr] = value;
    }

    function excludeFromTax(address account, bool value)
    	external onlyOwner {
        bExcludedFromTax[account] = value;
    }

    function removeLimits()
    	external onlyOwner {
        limitsInEffect = false;
    }


    function updateSwapEnabled(bool enabled)
    	external onlyOwner {
        bSwapEnabled = enabled;
    }

    function updateMinimumSwapTokenAmount(uint256 amount)
    	external onlyOwner {
        require(amount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(amount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply.");
        minSwapTokenAmount = amount;
    }

    function updateMaxTokensPerWallet(uint256 newNum)
    	external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerWallet lower than 0.5%");
        maxTokenAmountPerWallet = newNum * (10 ** decimals());
    }

    function updateMaxTokenAmountPerTxn(uint256 newNum)
    	external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / (10 ** decimals()), "Cannot set maxTokenAmountPerTxn lower than 0.1%");
        maxTokenAmountPerTxn = newNum * (10 ** decimals());
    }

    function updateBuyTax(uint256 newMarketFee, uint256 newDevFee)
    	external onlyOwner {
        buyMarketingTax = newMarketFee;
        buyDevTax = newDevFee;
        buyTotalTax = buyMarketingTax + buyDevTax;
        require(buyTotalTax <= 95, "Must keep tax at 95% or less");
    }

    function updateSellTax(uint256 newMarketFee, uint256 newDevFee)
        external onlyOwner {
        sellMarketingTax = newMarketFee;
        sellDevTax = newDevFee;
        sellTotalTax = sellMarketingTax + sellDevTax;
        require(sellTotalTax <= 95, "Must keep tax at 95% or less");
    }
    
    function setAutomatedMarketMakerPairs(address pair, bool value)
        external onlyOwner {
        require(pair != swapPair, "The pair cannot be removed from automatedMarketMakerPairs");
        automatedMarketMakerPairs[pair] = value;
    }

    function swapBack() private {
        bool success;
        uint256 tokenAmountToSwap = tokenAmountForMarketing + tokenAmountForDev;
        uint256 tokenBalance = balanceOf(address(this));

        if (tokenAmountToSwap == 0 || tokenBalance == 0)
            return;

        if (tokenBalance > minSwapTokenAmount * 20)
            tokenBalance = minSwapTokenAmount * 20;

        uint256 prevETHBalance = address(this).balance;
        swapTokensForEth(tokenBalance);

        uint256 ethBalance = address(this).balance.sub(prevETHBalance);
        uint256 ethForDev = ethBalance.mul(tokenAmountForDev).div(tokenAmountToSwap);

        (success, ) = address(devWallet).call{value: ethForDev}("");
        (success, ) = address(marketingWallet).call{ value: address(this).balance }("");

        tokenAmountForMarketing = 0;
        tokenAmountForDev = 0;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: Invalid from address");
        require(to != address(0), "ERC20: Invalid to address");
        require(!blackList[from], "ERC20: from is black list");
        require(!blackList[to], "ERC20: to is black list");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (tx.origin != owner()){
            require(!isPaused, "Contract is paused!");
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !bSwapping) {
                if (!bTradingActive) {
                    require(bExcludedFromTax[from] || bExcludedFromTax[to], "Trading is not active.");
                }

                if (automatedMarketMakerPairs[from] && !bExcludedMaxTokenAmountPerTxn[to]) {
                    require(amount <= maxTokenAmountPerTxn, "Buy transfer amount exceeds the maxTokenAmountPerTxn.");
                    require(amount + balanceOf(to) <= maxTokenAmountPerWallet, "Max wallet exceeded");
                }
                else if (automatedMarketMakerPairs[to] && !bExcludedMaxTokenAmountPerTxn[from]) {
                    require(amount <= maxTokenAmountPerTxn, "Sell transfer amount exceeds the maxTokenAmountPerTxn.");
                }
                else if (!bExcludedMaxTokenAmountPerTxn[to]) {
                    require(amount + balanceOf(to) <= maxTokenAmountPerWallet, "Max wallet exceeded");
                }
            }
        }

        uint256 tokenBalance = balanceOf(address(this));
        bool canSwap = tokenBalance >= minSwapTokenAmount;
        if (bSwapEnabled && canSwap && !bSwapping &&
            !automatedMarketMakerPairs[from] && !bExcludedFromTax[from] && !bExcludedFromTax[to]) {
            bSwapping = true;
            swapBack();
            bSwapping = false;
        }

        bool bTax = !bSwapping;
        if (bExcludedFromTax[from] || bExcludedFromTax[to])
            bTax = false;

        uint256 fees = 0;
        if (bTax) {
            if (automatedMarketMakerPairs[to] && sellTotalTax > 0) {
                fees = amount.mul(sellTotalTax).div(100);
                tokenAmountForDev += (fees * sellDevTax) / sellTotalTax;
                tokenAmountForMarketing += (fees * sellMarketingTax) / sellTotalTax;
            }
            else if (automatedMarketMakerPairs[from] && buyTotalTax > 0) {
                fees = amount.mul(buyTotalTax).div(100);
                tokenAmountForDev += (fees * buyDevTax) / buyTotalTax;
                tokenAmountForMarketing += (fees * buyMarketingTax) / buyTotalTax;
            }
            if (fees > 0)
                super._transfer(from, address(this), fees);
            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    receive() external payable {}

    function swapTokensForEth(uint256 amount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        _approve(address(this), address(swapRouter), amount);

        // make the swap
        swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

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

    function emergencyWithdrawToken(address tokenAddress) external onlyOwner() {
        IERC20 token = IERC20(tokenAddress);
        uint256 balance = token.balanceOf(address(this));
        token.transfer(msg.sender, balance);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_swapRouter","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"activateTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bExcludedMaxTokenAmountPerTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bTradingActive","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":[],"name":"buyDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalTax","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":"subValue","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":"address","name":"tokenAddress","type":"address"}],"name":"emergencyWithdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenAmountPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwapTokenAmount","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"togglePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenAmountForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAmountForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokenAmountPerTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTokensPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMinimumSwapTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEthPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600b805461ffff191690556012805460ff19166001179055348015610027575f80fd5b50604051612fab380380612fab833981016040819052610046916105aa565b604051806040016040528060118152602001704241564f207a6b4648452053797374656d60781b815250604051806040016040528060048152602001634241564f60e01b815250815f908161009b9190610681565b5060016100a88282610681565b5050506100c16100bc61045560201b60201c565b610459565b600c80546001600160a01b038086166001600160a01b031992831617909255600b8054858416620100000262010000600160b01b03199091161790556006805492841692909116821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610145573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610169919061073b565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ec919061073b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610236573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025a919061073b565b600780546001600160a01b0319166001600160a01b03928316179055600554165f908152600f6020526040808220805460ff199081166001908117909255308452918320805490921617905560126102b390600a610854565b6102c190633b9aca00610862565b9050614e206102d182600a610862565b6102db9190610879565b60085560c86102eb826003610862565b6102f59190610879565b600a5560c8610305826003610862565b61030f9190610879565b600955305f9081526010602081905260408220805460ff19166001908117909155916103436005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600780548316825260118552838220805487166001908117909155600f86527f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f10805488168217905560065484168352848320805488168217905590549092168152918220805485168217905561dead90915260109091527f9e93e1db4a1f807cc22b2aecf4deeb0bf5745f1ecb319e87c68c5624c0fa6b6980549092161790556005601481905560158190556104269080610898565b60135560056017819055601881905561043f9080610898565b60165561044c33826104aa565b505050506108ab565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382166105045760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f74206163636f756e7420213d2061646472657373283029604482015260640160405180910390fd5b8060025f8282546105159190610898565b90915550506001600160a01b0382165f9081526003602052604081208054839290610541908490610898565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b80516001600160a01b03811681146105a5575f80fd5b919050565b5f805f606084860312156105bc575f80fd5b6105c58461058f565b92506105d36020850161058f565b91506105e16040850161058f565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061061257607f821691505b60208210810361063057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561058a57805f5260205f20601f840160051c8101602085101561065b5750805b601f840160051c820191505b8181101561067a575f8155600101610667565b5050505050565b81516001600160401b0381111561069a5761069a6105ea565b6106ae816106a884546105fe565b84610636565b6020601f8211600181146106e0575f83156106c95750848201515b5f19600385901b1c1916600184901b17845561067a565b5f84815260208120601f198516915b8281101561070f57878501518255602094850194600190920191016106ef565b508482101561072c57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f6020828403121561074b575f80fd5b6107548261058f565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156107aa5780850481111561078e5761078e61075b565b600184161561079c57908102905b60019390931c928002610773565b935093915050565b5f826107c05750600161084e565b816107cc57505f61084e565b81600181146107e257600281146107ec57610808565b600191505061084e565b60ff8411156107fd576107fd61075b565b50506001821b61084e565b5060208310610133831016604e8410600b841016171561082b575081810a61084e565b6108375f19848461076f565b805f190482111561084a5761084a61075b565b0290505b92915050565b5f61075460ff8416836107b2565b808202811582820484141761084e5761084e61075b565b5f8261089357634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561084e5761084e61075b565b6126f3806108b85f395ff3fe6080604052600436106102f6575f3560e01c8063715018a611610189578063b38d5ef4116100d8578063c4ae316811610092578063dd62ed3e1161006d578063dd62ed3e14610898578063e27a55fe146108dc578063e96db1ef146108f1578063f2fde38b14610906575f80fd5b8063c4ae31681461084c578063c6a3064714610860578063d929a0831461087f575f80fd5b8063b38d5ef414610797578063b62496f5146107b6578063b79c1886146107e4578063be69188314610803578063c31c9c0714610818578063c42c3f8814610837575f80fd5b8063924de9b711610143578063a9059cbb1161011e578063a9059cbb1461072b578063aacebbe31461074a578063af8f26e714610769578063b187bd261461077e575f80fd5b8063924de9b7146106d957806395d89b41146106f8578063a457c2d71461070c575f80fd5b8063715018a61461063b578063751039fc1461064f57806375f0a874146106635780637d673170146106885780638da5cb5b1461069d5780638ea5220f146106ba575f80fd5b8063313ce56711610245578063544d1ec9116101ff578063685fbc6b116101da578063685fbc6b146105a55780636f498e21146105ba5780637070678b146105e857806370a0823114610607575f80fd5b8063544d1ec9146105525780635df6e68e1461057157806367b740e914610586575f80fd5b8063313ce567146104b657806333012411146104d1578063372b44b8146104e657806339509351146104fb57806345167f261461051a5780634a62bb6514610539575f80fd5b80631816467f116102b057806322f598351161028b57806322f598351461041357806323b872dd1461044157806326991cc8146104605780632c81355e14610497575f80fd5b80631816467f146103c057806318c34be1146103df5780631af03203146103f4575f80fd5b806306fdde0314610301578063095ea7b31461032b5780630bd05b691461035a5780630e3d57eb14610370578063151d80391461038457806318160ddd146103a2575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b50610315610925565b604051610322919061229e565b60405180910390f35b348015610336575f80fd5b5061034a6103453660046122e7565b6109b4565b6040519015158152602001610322565b348015610365575f80fd5b5061036e6109ca565b005b34801561037b575f80fd5b5061036e610a0e565b34801561038f575f80fd5b50600b5461034a90610100900460ff1681565b3480156103ad575f80fd5b506002545b604051908152602001610322565b3480156103cb575f80fd5b5061036e6103da366004612311565b610a82565b3480156103ea575f80fd5b506103b2600d5481565b3480156103ff575f80fd5b5061036e61040e366004612311565b610ace565b34801561041e575f80fd5b5061034a61042d366004612311565b60106020525f908152604090205460ff1681565b34801561044c575f80fd5b5061034a61045b36600461232c565b610bd3565b34801561046b575f80fd5b5060075461047f906001600160a01b031681565b6040516001600160a01b039091168152602001610322565b3480156104a2575f80fd5b5061036e6104b136600461236a565b610c6a565b3480156104c1575f80fd5b5060405160128152602001610322565b3480156104dc575f80fd5b506103b260175481565b3480156104f1575f80fd5b506103b2600e5481565b348015610506575f80fd5b5061034a6105153660046122e7565b610db5565b348015610525575f80fd5b5061036e61053436600461238e565b610df0565b348015610544575f80fd5b5060125461034a9060ff1681565b34801561055d575f80fd5b5061036e61056c36600461236a565b610ec8565b34801561057c575f80fd5b506103b260165481565b348015610591575f80fd5b5061036e6105a036600461236a565b610fac565b3480156105b0575f80fd5b506103b260095481565b3480156105c5575f80fd5b5061034a6105d4366004612311565b600f6020525f908152604090205460ff1681565b3480156105f3575f80fd5b5061036e61060236600461238e565b611093565b348015610612575f80fd5b506103b2610621366004612311565b6001600160a01b03165f9081526003602052604090205490565b348015610646575f80fd5b5061036e6110e7565b34801561065a575f80fd5b5061036e61111c565b34801561066e575f80fd5b50600b5461047f906201000090046001600160a01b031681565b348015610693575f80fd5b506103b260085481565b3480156106a8575f80fd5b506005546001600160a01b031661047f565b3480156106c5575f80fd5b50600c5461047f906001600160a01b031681565b3480156106e4575f80fd5b5061036e6106f33660046123c5565b611152565b348015610703575f80fd5b50610315611196565b348015610717575f80fd5b5061034a6107263660046122e7565b6111a5565b348015610736575f80fd5b5061034a6107453660046122e7565b61122f565b348015610755575f80fd5b5061036e610764366004612311565b61123b565b348015610774575f80fd5b506103b260185481565b348015610789575f80fd5b5060195461034a9060ff1681565b3480156107a2575f80fd5b5061036e6107b13660046123e0565b61128f565b3480156107c1575f80fd5b5061034a6107d0366004612311565b60116020525f908152604090205460ff1681565b3480156107ef575f80fd5b5061036e6107fe3660046123e0565b611326565b34801561080e575f80fd5b506103b260155481565b348015610823575f80fd5b5060065461047f906001600160a01b031681565b348015610842575f80fd5b506103b2600a5481565b348015610857575f80fd5b5061036e6113b9565b34801561086b575f80fd5b5061036e61087a36600461238e565b6113f7565b34801561088a575f80fd5b50600b5461034a9060ff1681565b3480156108a3575f80fd5b506103b26108b2366004612400565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156108e7575f80fd5b506103b260135481565b3480156108fc575f80fd5b506103b260145481565b348015610911575f80fd5b5061036e610920366004612311565b61144b565b60605f80546109339061242c565b80601f016020809104026020016040519081016040528092919081815260200182805461095f9061242c565b80156109aa5780601f10610981576101008083540402835291602001916109aa565b820191905f5260205f20905b81548152906001019060200180831161098d57829003601f168201915b5050505050905090565b5f6109c03384846114cb565b5060015b92915050565b6005546001600160a01b031633146109fd5760405162461bcd60e51b81526004016109f490612464565b60405180910390fd5b600b805461ffff1916610101179055565b6005546001600160a01b03163314610a385760405162461bcd60e51b81526004016109f490612464565b6040515f90339047908381818185875af1925050503d805f8114610a77576040519150601f19603f3d011682016040523d82523d5f602084013e610a7c565b606091505b50505050565b6005546001600160a01b03163314610aac5760405162461bcd60e51b81526004016109f490612464565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610af85760405162461bcd60e51b81526004016109f490612464565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b62919061248b565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610baf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7c91906124a2565b5f610bdf8484846115d7565b6001600160a01b0384165f90815260046020908152604080832033845290915290205482811015610c525760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e7400000060448201526064016109f4565b610c5f85338584036114cb565b506001949350505050565b6005546001600160a01b03163314610c945760405162461bcd60e51b81526004016109f490612464565b620186a0610ca160025490565b610cac9060016124d1565b610cb691906124e8565b811015610d235760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109f4565b6103e8610d2f60025490565b610d3a9060056124d1565b610d4491906124e8565b811115610db05760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109f4565b600855565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916109c0918590610deb908690612507565b6114cb565b6005546001600160a01b03163314610e1a5760405162461bcd60e51b81526004016109f490612464565b6007546001600160a01b0390811690831603610e9e5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109f4565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ef25760405162461bcd60e51b81526004016109f490612464565b610efe6012600a6125fd565b6103e8610f0a60025490565b610f159060016124d1565b610f1f91906124e8565b610f2991906124e8565b811015610f905760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e2060448201526e6c6f776572207468616e20302e312560881b60648201526084016109f4565b610f9c6012600a6125fd565b610fa690826124d1565b600a5550565b6005546001600160a01b03163314610fd65760405162461bcd60e51b81526004016109f490612464565b610fe26012600a6125fd565b6103e8610fee60025490565b610ff99060056124d1565b61100391906124e8565b61100d91906124e8565b8110156110775760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c6044820152716574206c6f776572207468616e20302e352560701b60648201526084016109f4565b6110836012600a6125fd565b61108d90826124d1565b60095550565b6005546001600160a01b031633146110bd5760405162461bcd60e51b81526004016109f490612464565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111115760405162461bcd60e51b81526004016109f490612464565b61111a5f611de6565b565b6005546001600160a01b031633146111465760405162461bcd60e51b81526004016109f490612464565b6012805460ff19169055565b6005546001600160a01b0316331461117c5760405162461bcd60e51b81526004016109f490612464565b600b80549115156101000261ff0019909216919091179055565b6060600180546109339061242c565b335f9081526004602090815260408083206001600160a01b0386168452909152812054828110156112185760405162461bcd60e51b815260206004820152601f60248201527f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c75650060448201526064016109f4565b61122533858584036114cb565b5060019392505050565b5f6109c03384846115d7565b6005546001600160a01b031633146112655760405162461bcd60e51b81526004016109f490612464565b600b80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6005546001600160a01b031633146112b95760405162461bcd60e51b81526004016109f490612464565b601782905560188190556112cd8183612507565b6016819055605f10156113225760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393525206f72206c6573730000000060448201526064016109f4565b5050565b6005546001600160a01b031633146113505760405162461bcd60e51b81526004016109f490612464565b601482905560158190556113648183612507565b6013819055605f10156113225760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393525206f72206c6573730000000060448201526064016109f4565b6005546001600160a01b031633146113e35760405162461bcd60e51b81526004016109f490612464565b6019805460ff19811660ff90911615179055565b6005546001600160a01b031633146114215760405162461bcd60e51b81526004016109f490612464565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114755760405162461bcd60e51b81526004016109f490612464565b6001600160a01b0381166114bf5760405162461bcd60e51b81526020600482015260116024820152704e6577206f776e6572206973205a45524f60781b60448201526064016109f4565b6114c881611de6565b50565b6001600160a01b0383166115215760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204e6f74206f776e657220213d2061646472657373283029000060448201526064016109f4565b6001600160a01b0382166115775760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f74207370656e64657220213d206164647265737328302960448201526064016109f4565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661162d5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20496e76616c69642066726f6d2061646472657373000000000060448201526064016109f4565b6001600160a01b0382166116835760405162461bcd60e51b815260206004820152601960248201527f45524332303a20496e76616c696420746f20616464726573730000000000000060448201526064016109f4565b6001600160a01b0383165f908152601a602052604090205460ff16156116eb5760405162461bcd60e51b815260206004820152601960248201527f45524332303a2066726f6d20697320626c61636b206c6973740000000000000060448201526064016109f4565b6001600160a01b0382165f908152601a602052604090205460ff16156117535760405162461bcd60e51b815260206004820152601760248201527f45524332303a20746f20697320626c61636b206c69737400000000000000000060448201526064016109f4565b805f0361176a5761176583835f611e37565b505050565b6005546001600160a01b031632146117c55760195460ff16156117c55760405162461bcd60e51b8152602060048201526013602482015272436f6e7472616374206973207061757365642160681b60448201526064016109f4565b60125460ff1615611b2b576005546001600160a01b038481169116148015906117fc57506005546001600160a01b03838116911614155b801561181057506001600160a01b03821615155b801561182757506001600160a01b03821661dead14155b801561183b5750601954610100900460ff16155b15611b2b57600b5460ff166118cc576001600160a01b0383165f9081526010602052604090205460ff168061188757506001600160a01b0382165f9081526010602052604090205460ff165b6118cc5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109f4565b6001600160a01b0383165f9081526011602052604090205460ff16801561190b57506001600160a01b0382165f908152600f602052604090205460ff16155b156119ee57600a548111156119805760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760591b60648201526084016109f4565b6009546001600160a01b0383165f908152600360205260409020546119a59083612507565b11156119e95760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109f4565b611b2b565b6001600160a01b0382165f9081526011602052604090205460ff168015611a2d57506001600160a01b0383165f908152600f602052604090205460ff16155b15611aa357600a548111156119e95760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760511b60648201526084016109f4565b6001600160a01b0382165f908152600f602052604090205460ff16611b2b576009546001600160a01b0383165f90815260036020526040902054611ae79083612507565b1115611b2b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109f4565b305f90815260036020526040902054600854600b549082101590610100900460ff168015611b565750805b8015611b6a5750601954610100900460ff16155b8015611b8e57506001600160a01b0385165f9081526011602052604090205460ff16155b8015611bb257506001600160a01b0385165f9081526010602052604090205460ff16155b8015611bd657506001600160a01b0384165f9081526010602052604090205460ff16155b15611bfe576019805461ff001916610100179055611bf2611fda565b6019805461ff00191690555b6019546001600160a01b0386165f9081526010602052604090205460ff610100909204821615911680611c4857506001600160a01b0385165f9081526010602052604090205460ff165b15611c5057505f5b5f8115611dd2576001600160a01b0386165f9081526011602052604090205460ff168015611c7f57505f601354115b15611d0b57611ca46064611c9e6013548861212690919063ffffffff16565b90612138565b905060135460155482611cb791906124d1565b611cc191906124e8565b600e5f828254611cd19190612507565b9091555050601354601454611ce690836124d1565b611cf091906124e8565b600d5f828254611d009190612507565b90915550611db49050565b6001600160a01b0387165f9081526011602052604090205460ff168015611d3357505f601654115b15611db457611d526064611c9e6016548861212690919063ffffffff16565b905060165460185482611d6591906124d1565b611d6f91906124e8565b600e5f828254611d7f9190612507565b9091555050601654601754611d9490836124d1565b611d9e91906124e8565b600d5f828254611dae9190612507565b90915550505b8015611dc557611dc5873083611e37565b611dcf818661260b565b94505b611ddd878787611e37565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611e8d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f742066726f6d20213d206164647265737328302900000060448201526064016109f4565b6001600160a01b038216611ee35760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204e6f7420746f20213d2061646472657373283029000000000060448201526064016109f4565b6001600160a01b0383165f9081526003602052604090205481811015611f4b5760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e7460448201526064016109f4565b6001600160a01b038085165f90815260036020526040808220858503905591851681529081208054849290611f81908490612507565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fcd91815260200190565b60405180910390a3610a7c565b5f80600e54600d54611fec9190612507565b305f90815260036020526040902054909150811580612009575080155b1561201357505050565b6008546120219060146124d1565b811115612039576008546120369060146124d1565b90505b4761204382612143565b5f61204e4783612293565b90505f61206a85611c9e600e548561212690919063ffffffff16565b600c546040519192506001600160a01b03169082905f81818185875af1925050503d805f81146120b5576040519150601f19603f3d011682016040523d82523d5f602084013e6120ba565b606091505b5050600b546040519197506201000090046001600160a01b03169047905f81818185875af1925050503d805f811461210d576040519150601f19603f3d011682016040523d82523d5f602084013e612112565b606091505b50505f600d819055600e5550505050505050565b5f61213182846124d1565b9392505050565b5f61213182846124e8565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121765761217661261e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156121cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f19190612632565b816001815181106122045761220461261e565b6001600160a01b03928316602091820292909201015260065461222a91309116846114cb565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906122629085905f9086903090429060040161264d565b5f604051808303815f87803b158015612279575f80fd5b505af115801561228b573d5f803e3d5ffd5b505050505050565b5f612131828461260b565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146114c8575f80fd5b5f80604083850312156122f8575f80fd5b8235612303816122d3565b946020939093013593505050565b5f60208284031215612321575f80fd5b8135612131816122d3565b5f805f6060848603121561233e575f80fd5b8335612349816122d3565b92506020840135612359816122d3565b929592945050506040919091013590565b5f6020828403121561237a575f80fd5b5035919050565b80151581146114c8575f80fd5b5f806040838503121561239f575f80fd5b82356123aa816122d3565b915060208301356123ba81612381565b809150509250929050565b5f602082840312156123d5575f80fd5b813561213181612381565b5f80604083850312156123f1575f80fd5b50508035926020909101359150565b5f8060408385031215612411575f80fd5b823561241c816122d3565b915060208301356123ba816122d3565b600181811c9082168061244057607f821691505b60208210810361245e57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600d908201526c24b73b30b634b21037bbb732b960991b604082015260600190565b5f6020828403121561249b575f80fd5b5051919050565b5f602082840312156124b2575f80fd5b815161213181612381565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109c4576109c46124bd565b5f8261250257634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109c4576109c46124bd565b6001815b600184111561255557808504811115612539576125396124bd565b600184161561254757908102905b60019390931c92800261251e565b935093915050565b5f8261256b575060016109c4565b8161257757505f6109c4565b816001811461258d5760028114612597576125b3565b60019150506109c4565b60ff8411156125a8576125a86124bd565b50506001821b6109c4565b5060208310610133831016604e8410600b84101617156125d6575081810a6109c4565b6125e25f19848461251a565b805f19048211156125f5576125f56124bd565b029392505050565b5f61213160ff84168361255d565b818103818111156109c4576109c46124bd565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612642575f80fd5b8151612131816122d3565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561269d5783516001600160a01b0316835260209384019390920191600101612676565b50506001600160a01b03959095166060840152505060800152939250505056fea264697066735822122082178c201fd4f5341ab429946f474bfe3c4fb42e9af79f400af8abf16516922a64736f6c634300081a003300000000000000000000000008706d2898254c95b5e9c49ae4cc5ec79ead933300000000000000000000000096e6daaf3a4a75cc19e14b45b3242ca96cf15e0e0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102f6575f3560e01c8063715018a611610189578063b38d5ef4116100d8578063c4ae316811610092578063dd62ed3e1161006d578063dd62ed3e14610898578063e27a55fe146108dc578063e96db1ef146108f1578063f2fde38b14610906575f80fd5b8063c4ae31681461084c578063c6a3064714610860578063d929a0831461087f575f80fd5b8063b38d5ef414610797578063b62496f5146107b6578063b79c1886146107e4578063be69188314610803578063c31c9c0714610818578063c42c3f8814610837575f80fd5b8063924de9b711610143578063a9059cbb1161011e578063a9059cbb1461072b578063aacebbe31461074a578063af8f26e714610769578063b187bd261461077e575f80fd5b8063924de9b7146106d957806395d89b41146106f8578063a457c2d71461070c575f80fd5b8063715018a61461063b578063751039fc1461064f57806375f0a874146106635780637d673170146106885780638da5cb5b1461069d5780638ea5220f146106ba575f80fd5b8063313ce56711610245578063544d1ec9116101ff578063685fbc6b116101da578063685fbc6b146105a55780636f498e21146105ba5780637070678b146105e857806370a0823114610607575f80fd5b8063544d1ec9146105525780635df6e68e1461057157806367b740e914610586575f80fd5b8063313ce567146104b657806333012411146104d1578063372b44b8146104e657806339509351146104fb57806345167f261461051a5780634a62bb6514610539575f80fd5b80631816467f116102b057806322f598351161028b57806322f598351461041357806323b872dd1461044157806326991cc8146104605780632c81355e14610497575f80fd5b80631816467f146103c057806318c34be1146103df5780631af03203146103f4575f80fd5b806306fdde0314610301578063095ea7b31461032b5780630bd05b691461035a5780630e3d57eb14610370578063151d80391461038457806318160ddd146103a2575f80fd5b366102fd57005b5f80fd5b34801561030c575f80fd5b50610315610925565b604051610322919061229e565b60405180910390f35b348015610336575f80fd5b5061034a6103453660046122e7565b6109b4565b6040519015158152602001610322565b348015610365575f80fd5b5061036e6109ca565b005b34801561037b575f80fd5b5061036e610a0e565b34801561038f575f80fd5b50600b5461034a90610100900460ff1681565b3480156103ad575f80fd5b506002545b604051908152602001610322565b3480156103cb575f80fd5b5061036e6103da366004612311565b610a82565b3480156103ea575f80fd5b506103b2600d5481565b3480156103ff575f80fd5b5061036e61040e366004612311565b610ace565b34801561041e575f80fd5b5061034a61042d366004612311565b60106020525f908152604090205460ff1681565b34801561044c575f80fd5b5061034a61045b36600461232c565b610bd3565b34801561046b575f80fd5b5060075461047f906001600160a01b031681565b6040516001600160a01b039091168152602001610322565b3480156104a2575f80fd5b5061036e6104b136600461236a565b610c6a565b3480156104c1575f80fd5b5060405160128152602001610322565b3480156104dc575f80fd5b506103b260175481565b3480156104f1575f80fd5b506103b2600e5481565b348015610506575f80fd5b5061034a6105153660046122e7565b610db5565b348015610525575f80fd5b5061036e61053436600461238e565b610df0565b348015610544575f80fd5b5060125461034a9060ff1681565b34801561055d575f80fd5b5061036e61056c36600461236a565b610ec8565b34801561057c575f80fd5b506103b260165481565b348015610591575f80fd5b5061036e6105a036600461236a565b610fac565b3480156105b0575f80fd5b506103b260095481565b3480156105c5575f80fd5b5061034a6105d4366004612311565b600f6020525f908152604090205460ff1681565b3480156105f3575f80fd5b5061036e61060236600461238e565b611093565b348015610612575f80fd5b506103b2610621366004612311565b6001600160a01b03165f9081526003602052604090205490565b348015610646575f80fd5b5061036e6110e7565b34801561065a575f80fd5b5061036e61111c565b34801561066e575f80fd5b50600b5461047f906201000090046001600160a01b031681565b348015610693575f80fd5b506103b260085481565b3480156106a8575f80fd5b506005546001600160a01b031661047f565b3480156106c5575f80fd5b50600c5461047f906001600160a01b031681565b3480156106e4575f80fd5b5061036e6106f33660046123c5565b611152565b348015610703575f80fd5b50610315611196565b348015610717575f80fd5b5061034a6107263660046122e7565b6111a5565b348015610736575f80fd5b5061034a6107453660046122e7565b61122f565b348015610755575f80fd5b5061036e610764366004612311565b61123b565b348015610774575f80fd5b506103b260185481565b348015610789575f80fd5b5060195461034a9060ff1681565b3480156107a2575f80fd5b5061036e6107b13660046123e0565b61128f565b3480156107c1575f80fd5b5061034a6107d0366004612311565b60116020525f908152604090205460ff1681565b3480156107ef575f80fd5b5061036e6107fe3660046123e0565b611326565b34801561080e575f80fd5b506103b260155481565b348015610823575f80fd5b5060065461047f906001600160a01b031681565b348015610842575f80fd5b506103b2600a5481565b348015610857575f80fd5b5061036e6113b9565b34801561086b575f80fd5b5061036e61087a36600461238e565b6113f7565b34801561088a575f80fd5b50600b5461034a9060ff1681565b3480156108a3575f80fd5b506103b26108b2366004612400565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156108e7575f80fd5b506103b260135481565b3480156108fc575f80fd5b506103b260145481565b348015610911575f80fd5b5061036e610920366004612311565b61144b565b60605f80546109339061242c565b80601f016020809104026020016040519081016040528092919081815260200182805461095f9061242c565b80156109aa5780601f10610981576101008083540402835291602001916109aa565b820191905f5260205f20905b81548152906001019060200180831161098d57829003601f168201915b5050505050905090565b5f6109c03384846114cb565b5060015b92915050565b6005546001600160a01b031633146109fd5760405162461bcd60e51b81526004016109f490612464565b60405180910390fd5b600b805461ffff1916610101179055565b6005546001600160a01b03163314610a385760405162461bcd60e51b81526004016109f490612464565b6040515f90339047908381818185875af1925050503d805f8114610a77576040519150601f19603f3d011682016040523d82523d5f602084013e610a7c565b606091505b50505050565b6005546001600160a01b03163314610aac5760405162461bcd60e51b81526004016109f490612464565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610af85760405162461bcd60e51b81526004016109f490612464565b6040516370a0823160e01b815230600482015281905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b62919061248b565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303815f875af1158015610baf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7c91906124a2565b5f610bdf8484846115d7565b6001600160a01b0384165f90815260046020908152604080832033845290915290205482811015610c525760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f7420637572416c6c6f77203e3d20616d6f756e7400000060448201526064016109f4565b610c5f85338584036114cb565b506001949350505050565b6005546001600160a01b03163314610c945760405162461bcd60e51b81526004016109f490612464565b620186a0610ca160025490565b610cac9060016124d1565b610cb691906124e8565b811015610d235760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109f4565b6103e8610d2f60025490565b610d3a9060056124d1565b610d4491906124e8565b811115610db05760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109f4565b600855565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916109c0918590610deb908690612507565b6114cb565b6005546001600160a01b03163314610e1a5760405162461bcd60e51b81526004016109f490612464565b6007546001600160a01b0390811690831603610e9e5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109f4565b6001600160a01b03919091165f908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ef25760405162461bcd60e51b81526004016109f490612464565b610efe6012600a6125fd565b6103e8610f0a60025490565b610f159060016124d1565b610f1f91906124e8565b610f2991906124e8565b811015610f905760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657254786e2060448201526e6c6f776572207468616e20302e312560881b60648201526084016109f4565b610f9c6012600a6125fd565b610fa690826124d1565b600a5550565b6005546001600160a01b03163314610fd65760405162461bcd60e51b81526004016109f490612464565b610fe26012600a6125fd565b6103e8610fee60025490565b610ff99060056124d1565b61100391906124e8565b61100d91906124e8565b8110156110775760405162461bcd60e51b815260206004820152603260248201527f43616e6e6f7420736574206d6178546f6b656e416d6f756e7450657257616c6c6044820152716574206c6f776572207468616e20302e352560701b60648201526084016109f4565b6110836012600a6125fd565b61108d90826124d1565b60095550565b6005546001600160a01b031633146110bd5760405162461bcd60e51b81526004016109f490612464565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111115760405162461bcd60e51b81526004016109f490612464565b61111a5f611de6565b565b6005546001600160a01b031633146111465760405162461bcd60e51b81526004016109f490612464565b6012805460ff19169055565b6005546001600160a01b0316331461117c5760405162461bcd60e51b81526004016109f490612464565b600b80549115156101000261ff0019909216919091179055565b6060600180546109339061242c565b335f9081526004602090815260408083206001600160a01b0386168452909152812054828110156112185760405162461bcd60e51b815260206004820152601f60248201527f45524332303a204e6f7420637572416c6c6f77203e3d2073756256616c75650060448201526064016109f4565b61122533858584036114cb565b5060019392505050565b5f6109c03384846115d7565b6005546001600160a01b031633146112655760405162461bcd60e51b81526004016109f490612464565b600b80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6005546001600160a01b031633146112b95760405162461bcd60e51b81526004016109f490612464565b601782905560188190556112cd8183612507565b6016819055605f10156113225760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393525206f72206c6573730000000060448201526064016109f4565b5050565b6005546001600160a01b031633146113505760405162461bcd60e51b81526004016109f490612464565b601482905560158190556113648183612507565b6013819055605f10156113225760405162461bcd60e51b815260206004820152601c60248201527f4d757374206b6565702074617820617420393525206f72206c6573730000000060448201526064016109f4565b6005546001600160a01b031633146113e35760405162461bcd60e51b81526004016109f490612464565b6019805460ff19811660ff90911615179055565b6005546001600160a01b031633146114215760405162461bcd60e51b81526004016109f490612464565b6001600160a01b03919091165f908152601060205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114755760405162461bcd60e51b81526004016109f490612464565b6001600160a01b0381166114bf5760405162461bcd60e51b81526020600482015260116024820152704e6577206f776e6572206973205a45524f60781b60448201526064016109f4565b6114c881611de6565b50565b6001600160a01b0383166115215760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204e6f74206f776e657220213d2061646472657373283029000060448201526064016109f4565b6001600160a01b0382166115775760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f74207370656e64657220213d206164647265737328302960448201526064016109f4565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661162d5760405162461bcd60e51b815260206004820152601b60248201527f45524332303a20496e76616c69642066726f6d2061646472657373000000000060448201526064016109f4565b6001600160a01b0382166116835760405162461bcd60e51b815260206004820152601960248201527f45524332303a20496e76616c696420746f20616464726573730000000000000060448201526064016109f4565b6001600160a01b0383165f908152601a602052604090205460ff16156116eb5760405162461bcd60e51b815260206004820152601960248201527f45524332303a2066726f6d20697320626c61636b206c6973740000000000000060448201526064016109f4565b6001600160a01b0382165f908152601a602052604090205460ff16156117535760405162461bcd60e51b815260206004820152601760248201527f45524332303a20746f20697320626c61636b206c69737400000000000000000060448201526064016109f4565b805f0361176a5761176583835f611e37565b505050565b6005546001600160a01b031632146117c55760195460ff16156117c55760405162461bcd60e51b8152602060048201526013602482015272436f6e7472616374206973207061757365642160681b60448201526064016109f4565b60125460ff1615611b2b576005546001600160a01b038481169116148015906117fc57506005546001600160a01b03838116911614155b801561181057506001600160a01b03821615155b801561182757506001600160a01b03821661dead14155b801561183b5750601954610100900460ff16155b15611b2b57600b5460ff166118cc576001600160a01b0383165f9081526010602052604090205460ff168061188757506001600160a01b0382165f9081526010602052604090205460ff165b6118cc5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109f4565b6001600160a01b0383165f9081526011602052604090205460ff16801561190b57506001600160a01b0382165f908152600f602052604090205460ff16155b156119ee57600a548111156119805760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760591b60648201526084016109f4565b6009546001600160a01b0383165f908152600360205260409020546119a59083612507565b11156119e95760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109f4565b611b2b565b6001600160a01b0382165f9081526011602052604090205460ff168015611a2d57506001600160a01b0383165f908152600f602052604090205460ff16155b15611aa357600a548111156119e95760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a37b5b2b720b6b7bab73a2832b92a3c371760511b60648201526084016109f4565b6001600160a01b0382165f908152600f602052604090205460ff16611b2b576009546001600160a01b0383165f90815260036020526040902054611ae79083612507565b1115611b2b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109f4565b305f90815260036020526040902054600854600b549082101590610100900460ff168015611b565750805b8015611b6a5750601954610100900460ff16155b8015611b8e57506001600160a01b0385165f9081526011602052604090205460ff16155b8015611bb257506001600160a01b0385165f9081526010602052604090205460ff16155b8015611bd657506001600160a01b0384165f9081526010602052604090205460ff16155b15611bfe576019805461ff001916610100179055611bf2611fda565b6019805461ff00191690555b6019546001600160a01b0386165f9081526010602052604090205460ff610100909204821615911680611c4857506001600160a01b0385165f9081526010602052604090205460ff165b15611c5057505f5b5f8115611dd2576001600160a01b0386165f9081526011602052604090205460ff168015611c7f57505f601354115b15611d0b57611ca46064611c9e6013548861212690919063ffffffff16565b90612138565b905060135460155482611cb791906124d1565b611cc191906124e8565b600e5f828254611cd19190612507565b9091555050601354601454611ce690836124d1565b611cf091906124e8565b600d5f828254611d009190612507565b90915550611db49050565b6001600160a01b0387165f9081526011602052604090205460ff168015611d3357505f601654115b15611db457611d526064611c9e6016548861212690919063ffffffff16565b905060165460185482611d6591906124d1565b611d6f91906124e8565b600e5f828254611d7f9190612507565b9091555050601654601754611d9490836124d1565b611d9e91906124e8565b600d5f828254611dae9190612507565b90915550505b8015611dc557611dc5873083611e37565b611dcf818661260b565b94505b611ddd878787611e37565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611e8d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a204e6f742066726f6d20213d206164647265737328302900000060448201526064016109f4565b6001600160a01b038216611ee35760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204e6f7420746f20213d2061646472657373283029000000000060448201526064016109f4565b6001600160a01b0383165f9081526003602052604090205481811015611f4b5760405162461bcd60e51b815260206004820181905260248201527f45524332303a204e6f742062616c616e636546726f6d203e3d20616d6f756e7460448201526064016109f4565b6001600160a01b038085165f90815260036020526040808220858503905591851681529081208054849290611f81908490612507565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fcd91815260200190565b60405180910390a3610a7c565b5f80600e54600d54611fec9190612507565b305f90815260036020526040902054909150811580612009575080155b1561201357505050565b6008546120219060146124d1565b811115612039576008546120369060146124d1565b90505b4761204382612143565b5f61204e4783612293565b90505f61206a85611c9e600e548561212690919063ffffffff16565b600c546040519192506001600160a01b03169082905f81818185875af1925050503d805f81146120b5576040519150601f19603f3d011682016040523d82523d5f602084013e6120ba565b606091505b5050600b546040519197506201000090046001600160a01b03169047905f81818185875af1925050503d805f811461210d576040519150601f19603f3d011682016040523d82523d5f602084013e612112565b606091505b50505f600d819055600e5550505050505050565b5f61213182846124d1565b9392505050565b5f61213182846124e8565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121765761217661261e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156121cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f19190612632565b816001815181106122045761220461261e565b6001600160a01b03928316602091820292909201015260065461222a91309116846114cb565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906122629085905f9086903090429060040161264d565b5f604051808303815f87803b158015612279575f80fd5b505af115801561228b573d5f803e3d5ffd5b505050505050565b5f612131828461260b565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146114c8575f80fd5b5f80604083850312156122f8575f80fd5b8235612303816122d3565b946020939093013593505050565b5f60208284031215612321575f80fd5b8135612131816122d3565b5f805f6060848603121561233e575f80fd5b8335612349816122d3565b92506020840135612359816122d3565b929592945050506040919091013590565b5f6020828403121561237a575f80fd5b5035919050565b80151581146114c8575f80fd5b5f806040838503121561239f575f80fd5b82356123aa816122d3565b915060208301356123ba81612381565b809150509250929050565b5f602082840312156123d5575f80fd5b813561213181612381565b5f80604083850312156123f1575f80fd5b50508035926020909101359150565b5f8060408385031215612411575f80fd5b823561241c816122d3565b915060208301356123ba816122d3565b600181811c9082168061244057607f821691505b60208210810361245e57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600d908201526c24b73b30b634b21037bbb732b960991b604082015260600190565b5f6020828403121561249b575f80fd5b5051919050565b5f602082840312156124b2575f80fd5b815161213181612381565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109c4576109c46124bd565b5f8261250257634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109c4576109c46124bd565b6001815b600184111561255557808504811115612539576125396124bd565b600184161561254757908102905b60019390931c92800261251e565b935093915050565b5f8261256b575060016109c4565b8161257757505f6109c4565b816001811461258d5760028114612597576125b3565b60019150506109c4565b60ff8411156125a8576125a86124bd565b50506001821b6109c4565b5060208310610133831016604e8410600b84101617156125d6575081810a6109c4565b6125e25f19848461251a565b805f19048211156125f5576125f56124bd565b029392505050565b5f61213160ff84168361255d565b818103818111156109c4576109c46124bd565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612642575f80fd5b8151612131816122d3565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561269d5783516001600160a01b0316835260209384019390920191600101612676565b50506001600160a01b03959095166060840152505060800152939250505056fea264697066735822122082178c201fd4f5341ab429946f474bfe3c4fb42e9af79f400af8abf16516922a64736f6c634300081a0033

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

00000000000000000000000008706d2898254c95b5e9c49ae4cc5ec79ead933300000000000000000000000096e6daaf3a4a75cc19e14b45b3242ca96cf15e0e0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _devWallet (address): 0x08706d2898254c95b5e9c49ae4Cc5Ec79EAd9333
Arg [1] : _marketingWallet (address): 0x96e6dAAf3a4A75cc19E14B45B3242Ca96cf15E0E
Arg [2] : _swapRouter (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000008706d2898254c95b5e9c49ae4cc5ec79ead9333
Arg [1] : 00000000000000000000000096e6daaf3a4a75cc19e14b45b3242ca96cf15e0e
Arg [2] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

14095:10358:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9780:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10352:169;;;;;;;;;;-1:-1:-1;10352:169:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;10352:169:0;945:187:1;17087:116:0;;;;;;;;;;;;;:::i;:::-;;24045:161;;;;;;;;;;;;;:::i;14426:32::-;;;;;;;;;;-1:-1:-1;14426:32:0;;;;;;;;;;;10101:108;;;;;;;;;;-1:-1:-1;10189:12:0;;10101:108;;;1283:25:1;;;1271:2;1256:18;10101:108:0;1137:177:1;16748:105:0;;;;;;;;;;-1:-1:-1;16748:105:0;;;;;:::i;:::-;;:::i;14537:38::-;;;;;;;;;;;;;;;;24214:234;;;;;;;;;;-1:-1:-1;24214:234:0;;;;;:::i;:::-;;:::i;14693:48::-;;;;;;;;;;-1:-1:-1;14693:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11032:397;;;;;;;;;;-1:-1:-1;11032:397:0;;;;;:::i;:::-;;:::i;14220:23::-;;;;;;;;;;-1:-1:-1;14220:23:0;;;;-1:-1:-1;;;;;14220:23:0;;;;;;-1:-1:-1;;;;;2248:32:1;;;2230:51;;2218:2;2203:18;14220:23:0;2084:203:1;17726:352:0;;;;;;;;;;-1:-1:-1;17726:352:0;;;;;:::i;:::-;;:::i;10000:93::-;;;;;;;;;;-1:-1:-1;10000:93:0;;10083:2;2665:36:1;;2653:2;2638:18;10000:93:0;2523:184:1;14997:30:0;;;;;;;;;;;;;;;;14582:32;;;;;;;;;;;;;;;;11606:211;;;;;;;;;;-1:-1:-1;11606:211:0;;;;;:::i;:::-;;:::i;19268:247::-;;;;;;;;;;-1:-1:-1;19268:247:0;;;;;:::i;:::-;;:::i;14816:33::-;;;;;;;;;;-1:-1:-1;14816:33:0;;;;;;;;18374:276;;;;;;;;;;-1:-1:-1;18374:276:0;;;;;:::i;:::-;;:::i;14964:26::-;;;;;;;;;;;;;;;;18086:280;;;;;;;;;;-1:-1:-1;18086:280:0;;;;;:::i;:::-;;:::i;14296:38::-;;;;;;;;;;;;;;;;14623:61;;;;;;;;;;-1:-1:-1;14623:61:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17211:154;;;;;;;;;;-1:-1:-1;17211:154:0;;;;;:::i;:::-;;:::i;10217:127::-;;;;;;;;;;-1:-1:-1;10217:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10318:18:0;10291:7;10318:18;;;:9;:18;;;;;;;10217:127;1090:103;;;;;;;;;;;;;:::i;17511:90::-;;;;;;;;;;;;;:::i;14467:30::-;;;;;;;;;;-1:-1:-1;14467:30:0;;;;;;;-1:-1:-1;;;;;14467:30:0;;;14256:33;;;;;;;;;;;;;;;;807:87;;;;;;;;;;-1:-1:-1;880:6:0;;-1:-1:-1;;;;;880:6:0;807:87;;14504:24;;;;;;;;;;-1:-1:-1;14504:24:0;;;;-1:-1:-1;;;;;14504:24:0;;;17611:107;;;;;;;;;;-1:-1:-1;17611:107:0;;;;;:::i;:::-;;:::i;9888:104::-;;;;;;;;;;;;;:::i;11825:360::-;;;;;;;;;;-1:-1:-1;11825:360:0;;;;;:::i;:::-;;:::i;11437:161::-;;;;;;;;;;-1:-1:-1;11437:161:0;;;;;:::i;:::-;;:::i;16861:129::-;;;;;;;;;;-1:-1:-1;16861:129:0;;;;;:::i;:::-;;:::i;15034:24::-;;;;;;;;;;;;;;;;15065:20;;;;;;;;;;-1:-1:-1;15065:20:0;;;;;;;;18658:290;;;;;;;;;;-1:-1:-1;18658:290:0;;;;;:::i;:::-;;:::i;14750:57::-;;;;;;;;;;-1:-1:-1;14750:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18956:300;;;;;;;;;;-1:-1:-1;18956:300:0;;;;;:::i;:::-;;:::i;14930:25::-;;;;;;;;;;;;;;;;14177:36;;;;;;;;;;-1:-1:-1;14177:36:0;;;;-1:-1:-1;;;;;14177:36:0;;;14341:35;;;;;;;;;;;;;;;;16998:81;;;;;;;;;;;;;:::i;17373:130::-;;;;;;;;;;-1:-1:-1;17373:130:0;;;;;:::i;:::-;;:::i;14385:34::-;;;;;;;;;;-1:-1:-1;14385:34:0;;;;;;;;10873:151;;;;;;;;;;-1:-1:-1;10873:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;10989:18:0;;;10962:7;10989:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10873:151;14858:27;;;;;;;;;;;;;;;;14892:31;;;;;;;;;;;;;;;;902:180;;;;;;;;;;-1:-1:-1;902:180:0;;;;;:::i;:::-;;:::i;9780:100::-;9834:13;9867:5;9860:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9780:100;:::o;10352:169::-;10435:4;10452:39;324:10;10475:7;10484:6;10452:8;:39::i;:::-;-1:-1:-1;10509:4:0;10352:169;;;;;:::o;17087:116::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;;;;;;;;;17144:14:::1;:21:::0;;-1:-1:-1;;17176:19:0;;;;;17087:116::o;24045:161::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;24140:58:::1;::::0;24104:12:::1;::::0;24148:10:::1;::::0;24172:21:::1;::::0;24104:12;24140:58;24104:12;24140:58;24172:21;24148:10;24140:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;24045:161:0:o;16748:105::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;16823:9:::1;:22:::0;;-1:-1:-1;;;;;;16823:22:0::1;-1:-1:-1::0;;;;;16823:22:0;;;::::1;::::0;;;::::1;::::0;;16748:105::o;24214:234::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;24364:30:::1;::::0;-1:-1:-1;;;24364:30:0;;24388:4:::1;24364:30;::::0;::::1;2230:51:1::0;24322:12:0;;24300::::1;::::0;-1:-1:-1;;;;;24364:15:0;::::1;::::0;::::1;::::0;2203:18:1;;24364:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24405:35;::::0;-1:-1:-1;;;24405:35:0;;24420:10:::1;24405:35;::::0;::::1;5746:51:1::0;5813:18;;;5806:34;;;24346:48:0;;-1:-1:-1;;;;;;24405:14:0;::::1;::::0;::::1;::::0;5719:18:1;;24405:35:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11032:397::-:0;11129:4;11146:27;11156:4;11162:2;11166:6;11146:9;:27::i;:::-;-1:-1:-1;;;;;11203:17:0;;11184:16;11203:17;;;:11;:17;;;;;;;;324:10;11203:31;;;;;;;;11253:18;;;;11245:60;;;;-1:-1:-1;;;11245:60:0;;6303:2:1;11245:60:0;;;6285:21:1;6342:2;6322:18;;;6315:30;6381:31;6361:18;;;6354:59;6430:18;;11245:60:0;6101:353:1;11245:60:0;11341:47;11350:4;324:10;11381:6;11370:8;:17;11341:8;:47::i;:::-;-1:-1:-1;11417:4:0;;11032:397;-1:-1:-1;;;;11032:397:0:o;17726:352::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;17856:6:::1;17835:13;10189:12:::0;;;10101:108;17835:13:::1;:17;::::0;17851:1:::1;17835:17;:::i;:::-;17834:28;;;;:::i;:::-;17824:6;:38;;17816:104;;;::::0;-1:-1:-1;;;17816:104:0;;7188:2:1;17816:104:0::1;::::0;::::1;7170:21:1::0;7227:2;7207:18;;;7200:30;7266:34;7246:18;;;7239:62;-1:-1:-1;;;7317:18:1;;;7310:51;7378:19;;17816:104:0::1;6986:417:1::0;17816:104:0::1;17971:4;17950:13;10189:12:::0;;;10101:108;17950:13:::1;:17;::::0;17966:1:::1;17950:17;:::i;:::-;17949:26;;;;:::i;:::-;17939:6;:36;;17931:101;;;::::0;-1:-1:-1;;;17931:101:0;;7610:2:1;17931:101:0::1;::::0;::::1;7592:21:1::0;7649:2;7629:18;;;7622:30;7688:34;7668:18;;;7661:62;-1:-1:-1;;;7739:18:1;;;7732:50;7799:19;;17931:101:0::1;7408:416:1::0;17931:101:0::1;18043:18;:27:::0;17726:352::o;11606:211::-;324:10;11692:4;11741:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11741:34:0;;;;;;;;;;11692:4;;11709:78;;11732:7;;11741:45;;11778:8;;11741:45;:::i;:::-;11709:8;:78::i;19268:247::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;19387:8:::1;::::0;-1:-1:-1;;;;;19387:8:0;;::::1;19379:16:::0;;::::1;::::0;19371:86:::1;;;::::0;-1:-1:-1;;;19371:86:0;;8161:2:1;19371:86:0::1;::::0;::::1;8143:21:1::0;8200:2;8180:18;;;8173:30;8239:34;8219:18;;;8212:62;8310:27;8290:18;;;8283:55;8355:19;;19371:86:0::1;7959:421:1::0;19371:86:0::1;-1:-1:-1::0;;;;;19468:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;19468:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19268:247::o;18374:276::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;18512:16:::1;10083:2:::0;18512::::1;:16;:::i;:::-;18503:4;18482:13;10189:12:::0;;;10101:108;18482:13:::1;:17;::::0;18498:1:::1;18482:17;:::i;:::-;18481:26;;;;:::i;:::-;18480:49;;;;:::i;:::-;18470:6;:59;;18462:119;;;::::0;-1:-1:-1;;;18462:119:0;;10019:2:1;18462:119:0::1;::::0;::::1;10001:21:1::0;10058:2;10038:18;;;10031:30;10097:34;10077:18;;;10070:62;-1:-1:-1;;;10148:18:1;;;10141:45;10203:19;;18462:119:0::1;9817:411:1::0;18462:119:0::1;18625:16;10083:2:::0;18625::::1;:16;:::i;:::-;18615:27;::::0;:6;:27:::1;:::i;:::-;18592:20;:50:::0;-1:-1:-1;18374:276:0:o;18086:280::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;18222:16:::1;10083:2:::0;18222::::1;:16;:::i;:::-;18213:4;18192:13;10189:12:::0;;;10101:108;18192:13:::1;:17;::::0;18208:1:::1;18192:17;:::i;:::-;18191:26;;;;:::i;:::-;18190:49;;;;:::i;:::-;18180:6;:59;;18172:122;;;::::0;-1:-1:-1;;;18172:122:0;;10435:2:1;18172:122:0::1;::::0;::::1;10417:21:1::0;10474:2;10454:18;;;10447:30;10513:34;10493:18;;;10486:62;-1:-1:-1;;;10564:18:1;;;10557:48;10622:19;;18172:122:0::1;10233:414:1::0;18172:122:0::1;18341:16;10083:2:::0;18341::::1;:16;:::i;:::-;18331:27;::::0;:6;:27:::1;:::i;:::-;18305:23;:53:::0;-1:-1:-1;18086:280:0:o;17211:154::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17314:35:0;;;::::1;;::::0;;;:29:::1;:35;::::0;;;;:43;;-1:-1:-1;;17314:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17211:154::o;1090:103::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;1155:30:::1;1182:1;1155:18;:30::i;:::-;1090:103::o:0;17511:90::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;17571:14:::1;:22:::0;;-1:-1:-1;;17571:22:0::1;::::0;;17511:90::o;17611:107::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;17688:12:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;17688:22:0;;::::1;::::0;;;::::1;::::0;;17611:107::o;9888:104::-;9944:13;9977:7;9970:14;;;;;:::i;11825:360::-;324:10;11911:4;11947:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11947:34:0;;;;;;;;;;12000:20;;;;11992:64;;;;-1:-1:-1;;;11992:64:0;;10854:2:1;11992:64:0;;;10836:21:1;10893:2;10873:18;;;10866:30;10932:33;10912:18;;;10905:61;10983:18;;11992:64:0;10652:355:1;11992:64:0;12092:52;324:10;12115:7;12135:8;12124;:19;12092:8;:52::i;:::-;-1:-1:-1;12173:4:0;;11825:360;-1:-1:-1;;;11825:360:0:o;11437:161::-;11516:4;11533:35;324:10;11557:2;11561:6;11533:9;:35::i;16861:129::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;16948:15:::1;:34:::0;;-1:-1:-1;;;;;16948:34:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;16948:34:0;;::::1;::::0;;;::::1;::::0;;16861:129::o;18658:290::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;18757:15:::1;:30:::0;;;18798:9:::1;:21:::0;;;18844:27:::1;18810:9:::0;18775:12;18844:27:::1;:::i;:::-;18830:11;:41:::0;;;18905:2:::1;-1:-1:-1::0;18890:17:0::1;18882:58;;;::::0;-1:-1:-1;;;18882:58:0;;11214:2:1;18882:58:0::1;::::0;::::1;11196:21:1::0;11253:2;11233:18;;;11226:30;11292;11272:18;;;11265:58;11340:18;;18882:58:0::1;11012:352:1::0;18882:58:0::1;18658:290:::0;;:::o;18956:300::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;19059:16:::1;:31:::0;;;19101:10:::1;:22:::0;;;19149:29:::1;19114:9:::0;19078:12;19149:29:::1;:::i;:::-;19134:12;:44:::0;;;19213:2:::1;-1:-1:-1::0;19197:18:0::1;19189:59;;;::::0;-1:-1:-1;;;19189:59:0;;11214:2:1;19189:59:0::1;::::0;::::1;11196:21:1::0;11253:2;11233:18;;;11226:30;11292;11272:18;;;11265:58;11340:18;;19189:59:0::1;11012:352:1::0;16998:81:0;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;17063:8:::1;::::0;;-1:-1:-1;;17051:20:0;::::1;17063:8;::::0;;::::1;17062:9;17051:20;::::0;;16998:81::o;17373:130::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17462:25:0;;;::::1;;::::0;;;:16:::1;:25;::::0;;;;:33;;-1:-1:-1;;17462:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17373:130::o;902:180::-;880:6;;-1:-1:-1;;;;;880:6:0;324:10;738:23;730:49;;;;-1:-1:-1;;;730:49:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;991:22:0;::::1;983:52;;;::::0;-1:-1:-1;;;983:52:0;;11571:2:1;983:52:0::1;::::0;::::1;11553:21:1::0;11610:2;11590:18;;;11583:30;-1:-1:-1;;;11629:18:1;;;11622:47;11686:18;;983:52:0::1;11369:341:1::0;983:52:0::1;1046:28;1065:8;1046:18;:28::i;:::-;902:180:::0;:::o;10529:336::-;-1:-1:-1;;;;;10631:19:0;;10623:62;;;;-1:-1:-1;;;10623:62:0;;11917:2:1;10623:62:0;;;11899:21:1;11956:2;11936:18;;;11929:30;11995:32;11975:18;;;11968:60;12045:18;;10623:62:0;11715:354:1;10623:62:0;-1:-1:-1;;;;;10704:21:0;;10696:66;;;;-1:-1:-1;;;10696:66:0;;12276:2:1;10696:66:0;;;12258:21:1;;;12295:18;;;12288:30;12354:34;12334:18;;;12327:62;12406:18;;10696:66:0;12074:356:1;10696:66:0;-1:-1:-1;;;;;10773:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10825:32;;1283:25:1;;;10825:32:0;;1256:18:1;10825:32:0;;;;;;;10529:336;;;:::o;20415:3018::-;-1:-1:-1;;;;;20547:18:0;;20539:58;;;;-1:-1:-1;;;20539:58:0;;12637:2:1;20539:58:0;;;12619:21:1;12676:2;12656:18;;;12649:30;12715:29;12695:18;;;12688:57;12762:18;;20539:58:0;12435:351:1;20539:58:0;-1:-1:-1;;;;;20616:16:0;;20608:54;;;;-1:-1:-1;;;20608:54:0;;12993:2:1;20608:54:0;;;12975:21:1;13032:2;13012:18;;;13005:30;13071:27;13051:18;;;13044:55;13116:18;;20608:54:0;12791:349:1;20608:54:0;-1:-1:-1;;;;;20682:15:0;;;;;;:9;:15;;;;;;;;20681:16;20673:54;;;;-1:-1:-1;;;20673:54:0;;13347:2:1;20673:54:0;;;13329:21:1;13386:2;13366:18;;;13359:30;13425:27;13405:18;;;13398:55;13470:18;;20673:54:0;13145:349:1;20673:54:0;-1:-1:-1;;;;;20747:13:0;;;;;;:9;:13;;;;;;;;20746:14;20738:50;;;;-1:-1:-1;;;20738:50:0;;13701:2:1;20738:50:0;;;13683:21:1;13740:2;13720:18;;;13713:30;13779:25;13759:18;;;13752:53;13822:18;;20738:50:0;13499:347:1;20738:50:0;20805:6;20815:1;20805:11;20801:93;;20833:28;20849:4;20855:2;20859:1;20833:15;:28::i;:::-;20415:3018;;;:::o;20801:93::-;880:6;;-1:-1:-1;;;;;880:6:0;20910:9;:20;20906:93;;20955:8;;;;20954:9;20946:41;;;;-1:-1:-1;;;20946:41:0;;14053:2:1;20946:41:0;;;14035:21:1;14092:2;14072:18;;;14065:30;-1:-1:-1;;;14111:18:1;;;14104:49;14170:18;;20946:41:0;13851:343:1;20946:41:0;21015:14;;;;21011:1085;;;880:6;;-1:-1:-1;;;;;21050:15:0;;;880:6;;21050:15;;;;:32;;-1:-1:-1;880:6:0;;-1:-1:-1;;;;;21069:13:0;;;880:6;;21069:13;;21050:32;:52;;;;-1:-1:-1;;;;;;21086:16:0;;;;21050:52;:77;;;;-1:-1:-1;;;;;;21106:21:0;;21120:6;21106:21;;21050:77;:91;;;;-1:-1:-1;21132:9:0;;;;;;;21131:10;21050:91;21046:1039;;;21167:14;;;;21162:145;;-1:-1:-1;;;;;21214:22:0;;;;;;:16;:22;;;;;;;;;:46;;-1:-1:-1;;;;;;21240:20:0;;;;;;:16;:20;;;;;;;;21214:46;21206:81;;;;-1:-1:-1;;;21206:81:0;;14401:2:1;21206:81:0;;;14383:21:1;14440:2;14420:18;;;14413:30;-1:-1:-1;;;14459:18:1;;;14452:52;14521:18;;21206:81:0;14199:346:1;21206:81:0;-1:-1:-1;;;;;21331:31:0;;;;;;:25;:31;;;;;;;;:69;;;;-1:-1:-1;;;;;;21367:33:0;;;;;;:29;:33;;;;;;;;21366:34;21331:69;21327:743;;;21443:20;;21433:6;:30;;21425:96;;;;-1:-1:-1;;;21425:96:0;;14752:2:1;21425:96:0;;;14734:21:1;14791:2;14771:18;;;14764:30;14830:34;14810:18;;;14803:62;-1:-1:-1;;;14881:18:1;;;14874:51;14942:19;;21425:96:0;14550:417:1;21425:96:0;21578:23;;-1:-1:-1;;;;;10318:18:0;;10291:7;10318:18;;;:9;:18;;;;;;21552:22;;:6;:22;:::i;:::-;:49;;21544:81;;;;-1:-1:-1;;;21544:81:0;;15174:2:1;21544:81:0;;;15156:21:1;15213:2;15193:18;;;15186:30;-1:-1:-1;;;15232:18:1;;;15225:49;15291:18;;21544:81:0;14972:343:1;21544:81:0;21327:743;;;-1:-1:-1;;;;;21672:29:0;;;;;;:25;:29;;;;;;;;:69;;;;-1:-1:-1;;;;;;21706:35:0;;;;;;:29;:35;;;;;;;;21705:36;21672:69;21668:402;;;21784:20;;21774:6;:30;;21766:97;;;;-1:-1:-1;;;21766:97:0;;15522:2:1;21766:97:0;;;15504:21:1;15561:2;15541:18;;;15534:30;15600:34;15580:18;;;15573:62;-1:-1:-1;;;15651:18:1;;;15644:52;15713:19;;21766:97:0;15320:418:1;21668:402:0;-1:-1:-1;;;;;21911:33:0;;;;;;:29;:33;;;;;;;;21906:164;;22003:23;;-1:-1:-1;;;;;10318:18:0;;10291:7;10318:18;;;:9;:18;;;;;;21977:22;;:6;:22;:::i;:::-;:49;;21969:81;;;;-1:-1:-1;;;21969:81:0;;15174:2:1;21969:81:0;;;15156:21:1;15213:2;15193:18;;;15186:30;-1:-1:-1;;;15232:18:1;;;15225:49;15291:18;;21969:81:0;14972:343:1;21969:81:0;22149:4;22108:20;10318:18;;;:9;:18;;;;;;22197;;22230:12;;22181:34;;;;;22230:12;;;;;:23;;;;;22246:7;22230:23;:37;;;;-1:-1:-1;22258:9:0;;;;;;;22257:10;22230:37;:86;;;;-1:-1:-1;;;;;;22285:31:0;;;;;;:25;:31;;;;;;;;22284:32;22230:86;:113;;;;-1:-1:-1;;;;;;22321:22:0;;;;;;:16;:22;;;;;;;;22320:23;22230:113;:138;;;;-1:-1:-1;;;;;;22348:20:0;;;;;;:16;:20;;;;;;;;22347:21;22230:138;22226:244;;;22385:9;:16;;-1:-1:-1;;22385:16:0;;;;;22416:10;:8;:10::i;:::-;22441:9;:17;;-1:-1:-1;;22441:17:0;;;22226:244;22495:9;;-1:-1:-1;;;;;22519:22:0;;22482:9;22519:22;;;:16;:22;;;;;;22495:9;;;;;;;22494:10;;22519:22;;:46;;-1:-1:-1;;;;;;22545:20:0;;;;;;:16;:20;;;;;;;;22519:46;22515:77;;;-1:-1:-1;22587:5:0;22515:77;22605:12;22636:4;22632:748;;;-1:-1:-1;;;;;22661:29:0;;;;;;:25;:29;;;;;;;;:49;;;;;22709:1;22694:12;;:16;22661:49;22657:595;;;22738:33;22767:3;22738:24;22749:12;;22738:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;22731:40;;22833:12;;22819:10;;22812:4;:17;;;;:::i;:::-;22811:34;;;;:::i;:::-;22790:17;;:55;;;;;;;:::i;:::-;;;;-1:-1:-1;;22919:12:0;;22899:16;;22892:23;;:4;:23;:::i;:::-;22891:40;;;;:::i;:::-;22864:23;;:67;;;;;;;:::i;:::-;;;;-1:-1:-1;22657:595:0;;-1:-1:-1;22657:595:0;;-1:-1:-1;;;;;22970:31:0;;;;;;:25;:31;;;;;;;;:50;;;;;23019:1;23005:11;;:15;22970:50;22966:286;;;23048:32;23076:3;23048:23;23059:11;;23048:6;:10;;:23;;;;:::i;:32::-;23041:39;;23141:11;;23128:9;;23121:4;:16;;;;:::i;:::-;23120:32;;;;:::i;:::-;23099:17;;:53;;;;;;;:::i;:::-;;;;-1:-1:-1;;23225:11:0;;23206:15;;23199:22;;:4;:22;:::i;:::-;23198:38;;;;:::i;:::-;23171:23;;:65;;;;;;;:::i;:::-;;;;-1:-1:-1;;22966:286:0;23270:8;;23266:73;;23297:42;23313:4;23327;23334;23297:15;:42::i;:::-;23354:14;23364:4;23354:14;;:::i;:::-;;;22632:748;23392:33;23408:4;23414:2;23418:6;23392:15;:33::i;:::-;20528:2905;;;;20415:3018;;;:::o;1201:191::-;1294:6;;;-1:-1:-1;;;;;1311:17:0;;;-1:-1:-1;;;;;;1311:17:0;;;;;;;1344:40;;1294:6;;;1311:17;1294:6;;1344:40;;1275:16;;1344:40;1264:128;1201:191;:::o;13329:607::-;-1:-1:-1;;;;;13426:18:0;;13418:60;;;;-1:-1:-1;;;13418:60:0;;16078:2:1;13418:60:0;;;16060:21:1;16117:2;16097:18;;;16090:30;16156:31;16136:18;;;16129:59;16205:18;;13418:60:0;15876:353:1;13418:60:0;-1:-1:-1;;;;;13497:16:0;;13489:56;;;;-1:-1:-1;;;13489:56:0;;16436:2:1;13489:56:0;;;16418:21:1;16475:2;16455:18;;;16448:30;16514:29;16494:18;;;16487:57;16561:18;;13489:56:0;16234:351:1;13489:56:0;-1:-1:-1;;;;;13627:15:0;;13605:19;13627:15;;;:9;:15;;;;;;13661:21;;;;13653:66;;;;-1:-1:-1;;;13653:66:0;;16792:2:1;13653:66:0;;;16774:21:1;;;16811:18;;;16804:30;16870:34;16850:18;;;16843:62;16922:18;;13653:66:0;16590:356:1;13653:66:0;-1:-1:-1;;;;;13755:15:0;;;;;;;:9;:15;;;;;;13773:20;;;13755:38;;13815:13;;;;;;;;:23;;13787:6;;13755:15;13815:23;;13787:6;;13815:23;:::i;:::-;;;;;;;;13869:2;-1:-1:-1;;;;;13854:26:0;13863:4;-1:-1:-1;;;;;13854:26:0;;13873:6;13854:26;;;;1283:25:1;;1271:2;1256:18;;1137:177;13854:26:0;;;;;;;;13891:37;20415:3018;19523:884;19562:12;19585:25;19639:17;;19613:23;;:43;;;;:::i;:::-;19708:4;19667:20;10318:18;;;:9;:18;;;;;;19585:71;;-1:-1:-1;19731:22:0;;;:43;;-1:-1:-1;19757:17:0;;19731:43;19727:69;;;19789:7;;;19523:884::o;19727:69::-;19827:18;;:23;;19848:2;19827:23;:::i;:::-;19812:12;:38;19808:95;;;19880:18;;:23;;19901:2;19880:23;:::i;:::-;19865:38;;19808:95;19941:21;19973:30;19990:12;19973:16;:30::i;:::-;20016:18;20037:41;:21;20063:14;20037:25;:41::i;:::-;20016:62;;20089:17;20109:56;20147:17;20109:33;20124:17;;20109:10;:14;;:33;;;;:::i;:56::-;20200:9;;20192:45;;20089:76;;-1:-1:-1;;;;;;20200:9:0;;20089:76;;20192:45;;;;20089:76;20200:9;20192:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20270:15:0;;20262:65;;20178:59;;-1:-1:-1;20270:15:0;;;-1:-1:-1;;;;;20270:15:0;;20300:21;;20262:65;;;;20300:21;20270:15;20262:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20366:1:0;20340:23;:27;;;20378:17;:21;-1:-1:-1;;;;;;;19523:884:0:o;1423:98::-;1481:7;1508:5;1512:1;1508;:5;:::i;:::-;1501:12;1423:98;-1:-1:-1;;;1423:98:0:o;1807:::-;1865:7;1892:5;1896:1;1892;:5;:::i;23478:559::-;23623:16;;;23637:1;23623:16;;;;;;;;23599:21;;23623:16;;;;;;;;;;-1:-1:-1;23623:16:0;23599:40;;23668:4;23650;23655:1;23650:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23650:23:0;;;:7;;;;;;;;;;:23;;;;23694:10;;:17;;;-1:-1:-1;;;23694:17:0;;;;:10;;;;;:15;;:17;;;;;23650:7;;23694:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23684:4;23689:1;23684:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23684:27:0;;;:7;;;;;;;;;:27;23756:10;;23724:52;;23741:4;;23756:10;23769:6;23724:8;:52::i;:::-;23815:10;;:214;;-1:-1:-1;;;23815:214:0;;-1:-1:-1;;;;;23815:10:0;;;;:61;;:214;;23891:6;;23815:10;;23956:4;;23983;;24003:15;;23815:214;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23528:509;23478:559;:::o;2452:98::-;2510:7;2537:5;2541:1;2537;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:247::-;1378:6;1431:2;1419:9;1410:7;1406:23;1402:32;1399:52;;;1447:1;1444;1437:12;1399:52;1486:9;1473:23;1505:31;1530:5;1505:31;:::i;1571:508::-;1648:6;1656;1664;1717:2;1705:9;1696:7;1692:23;1688:32;1685:52;;;1733:1;1730;1723:12;1685:52;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;:::-;1841:5;-1:-1:-1;1898:2:1;1883:18;;1870:32;1911:33;1870:32;1911:33;:::i;:::-;1571:508;;1963:7;;-1:-1:-1;;;2043:2:1;2028:18;;;;2015:32;;1571:508::o;2292:226::-;2351:6;2404:2;2392:9;2383:7;2379:23;2375:32;2372:52;;;2420:1;2417;2410:12;2372:52;-1:-1:-1;2465:23:1;;2292:226;-1:-1:-1;2292:226:1:o;2712:118::-;2798:5;2791:13;2784:21;2777:5;2774:32;2764:60;;2820:1;2817;2810:12;2835:382;2900:6;2908;2961:2;2949:9;2940:7;2936:23;2932:32;2929:52;;;2977:1;2974;2967:12;2929:52;3016:9;3003:23;3035:31;3060:5;3035:31;:::i;:::-;3085:5;-1:-1:-1;3142:2:1;3127:18;;3114:32;3155:30;3114:32;3155:30;:::i;:::-;3204:7;3194:17;;;2835:382;;;;;:::o;3222:241::-;3278:6;3331:2;3319:9;3310:7;3306:23;3302:32;3299:52;;;3347:1;3344;3337:12;3299:52;3386:9;3373:23;3405:28;3427:5;3405:28;:::i;3468:346::-;3536:6;3544;3597:2;3585:9;3576:7;3572:23;3568:32;3565:52;;;3613:1;3610;3603:12;3565:52;-1:-1:-1;;3658:23:1;;;3778:2;3763:18;;;3750:32;;-1:-1:-1;3468:346:1:o;4053:388::-;4121:6;4129;4182:2;4170:9;4161:7;4157:23;4153:32;4150:52;;;4198:1;4195;4188:12;4150:52;4237:9;4224:23;4256:31;4281:5;4256:31;:::i;:::-;4306:5;-1:-1:-1;4363:2:1;4348:18;;4335:32;4376:33;4335:32;4376:33;:::i;4446:380::-;4525:1;4521:12;;;;4568;;;4589:61;;4643:4;4635:6;4631:17;4621:27;;4589:61;4696:2;4688:6;4685:14;4665:18;4662:38;4659:161;;4742:10;4737:3;4733:20;4730:1;4723:31;4777:4;4774:1;4767:15;4805:4;4802:1;4795:15;4659:161;;4446:380;;;:::o;4831:337::-;5033:2;5015:21;;;5072:2;5052:18;;;5045:30;-1:-1:-1;;;5106:2:1;5091:18;;5084:43;5159:2;5144:18;;4831:337::o;5383:184::-;5453:6;5506:2;5494:9;5485:7;5481:23;5477:32;5474:52;;;5522:1;5519;5512:12;5474:52;-1:-1:-1;5545:16:1;;5383:184;-1:-1:-1;5383:184:1:o;5851:245::-;5918:6;5971:2;5959:9;5950:7;5946:23;5942:32;5939:52;;;5987:1;5984;5977:12;5939:52;6019:9;6013:16;6038:28;6060:5;6038:28;:::i;6459:127::-;6520:10;6515:3;6511:20;6508:1;6501:31;6551:4;6548:1;6541:15;6575:4;6572:1;6565:15;6591:168;6664:9;;;6695;;6712:15;;;6706:22;;6692:37;6682:71;;6733:18;;:::i;6764:217::-;6804:1;6830;6820:132;;6874:10;6869:3;6865:20;6862:1;6855:31;6909:4;6906:1;6899:15;6937:4;6934:1;6927:15;6820:132;-1:-1:-1;6966:9:1;;6764:217::o;7829:125::-;7894:9;;;7915:10;;;7912:36;;;7928:18;;:::i;8385:375::-;8473:1;8491:5;8505:249;8526:1;8516:8;8513:15;8505:249;;;8576:4;8571:3;8567:14;8561:4;8558:24;8555:50;;;8585:18;;:::i;:::-;8635:1;8625:8;8621:16;8618:49;;;8649:16;;;;8618:49;8732:1;8728:16;;;;;8688:15;;8505:249;;;8385:375;;;;;;:::o;8765:902::-;8814:5;8844:8;8834:80;;-1:-1:-1;8885:1:1;8899:5;;8834:80;8933:4;8923:76;;-1:-1:-1;8970:1:1;8984:5;;8923:76;9015:4;9033:1;9028:59;;;;9101:1;9096:174;;;;9008:262;;9028:59;9058:1;9049:10;;9072:5;;;9096:174;9133:3;9123:8;9120:17;9117:43;;;9140:18;;:::i;:::-;-1:-1:-1;;9196:1:1;9182:16;;9255:5;;9008:262;;9354:2;9344:8;9341:16;9335:3;9329:4;9326:13;9322:36;9316:2;9306:8;9303:16;9298:2;9292:4;9289:12;9285:35;9282:77;9279:203;;;-1:-1:-1;9391:19:1;;;9467:5;;9279:203;9514:42;-1:-1:-1;;9539:8:1;9533:4;9514:42;:::i;:::-;9592:6;9588:1;9584:6;9580:19;9571:7;9568:32;9565:58;;;9603:18;;:::i;:::-;9641:20;;8765:902;-1:-1:-1;;;8765:902:1:o;9672:140::-;9730:5;9759:47;9800:4;9790:8;9786:19;9780:4;9759:47;:::i;15743:128::-;15810:9;;;15831:11;;;15828:37;;;15845:18;;:::i;17083:127::-;17144:10;17139:3;17135:20;17132:1;17125:31;17175:4;17172:1;17165:15;17199:4;17196:1;17189:15;17215:251;17285:6;17338:2;17326:9;17317:7;17313:23;17309:32;17306:52;;;17354:1;17351;17344:12;17306:52;17386:9;17380:16;17405:31;17430:5;17405:31;:::i;17471:959::-;17733:4;17781:3;17770:9;17766:19;17812:6;17801:9;17794:25;17855:6;17850:2;17839:9;17835:18;17828:34;17898:3;17893:2;17882:9;17878:18;17871:31;17922:6;17957;17951:13;17988:6;17980;17973:22;18026:3;18015:9;18011:19;18004:26;;18065:2;18057:6;18053:15;18039:29;;18086:1;18096:195;18110:6;18107:1;18104:13;18096:195;;;18175:13;;-1:-1:-1;;;;;18171:39:1;18159:52;;18240:2;18266:15;;;;18231:12;;;;18207:1;18125:9;18096:195;;;-1:-1:-1;;;;;;;18347:32:1;;;;18342:2;18327:18;;18320:60;-1:-1:-1;;18411:3:1;18396:19;18389:35;18308:3;17471:959;-1:-1:-1;;;17471:959:1:o

Swarm Source

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