ETH Price: $3,437.67 (-1.21%)
Gas: 3 Gwei

Token

Strike Games (STRIKE)
 

Overview

Max Total Supply

10,000,000,000 STRIKE

Holders

226

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
cronospolska.eth
Balance
14,251,885.000000658713113031 STRIKE

Value
$0.00
0xe568AFb492816E8C790EC74420d7Bc008a5BD85A
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:
StrikeGames

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
 https://t.me/StrikeGamesOfficial
 https://Strikegames.site
 https://x.com/strikegames_eth  
*/

pragma solidity 0.8.10;

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

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

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

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    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 transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

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

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

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

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

    function WETH() external pure returns (address);

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

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

contract StrikeGames is ERC20, Ownable {
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private swapping;

    address public devWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 public buyLiquidityFee;
    uint256 public buyMarketingFee;

    uint256 public sellTotalFees;
    uint256 public sellLiquidityFee;
    uint256 public sellMarketingFee;

	uint256 public tokensForLiquidity;
    uint256 public tokensForMarketing;

    // exclude from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedFromMaxTx;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("Strike Games", "STRIKE") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _isExcludedFromMaxTx[address(_uniswapV2Router)] = true;
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _isExcludedFromMaxTx[address(uniswapV2Pair)] = true;
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 _buyLiquidityFee = 0;
        uint256 _buyMarketingFee = 20;

        uint256 _sellLiquidityFee = 0;
        uint256 _sellMarketingFee = 40;

        uint256 totalSupply = 1000 * 1e7 * 1e18;

        maxTransactionAmount = 200 * 1e7 * 1e18; //2 %
        maxWallet = 200 * 1e7 * 1e18; //2%
        swapTokensAtAmount = (totalSupply * 10) / 1000; 

        buyLiquidityFee = _buyLiquidityFee;
        buyMarketingFee = _buyMarketingFee;
        buyTotalFees = buyLiquidityFee + buyMarketingFee;

        sellLiquidityFee = _sellLiquidityFee;
        sellMarketingFee = _sellMarketingFee;
        sellTotalFees = sellLiquidityFee + sellMarketingFee;

        devWallet = address(0x47Ee973367b317DDa28A8833e563E4A01797eDa2); 

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        _isExcludedFromMaxTx[owner()] = true;
        _isExcludedFromMaxTx[address(this)] = true;
        _isExcludedFromMaxTx[address(0xdead)] = true;

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    // once enabled, can never be turned off
    function enableTrade() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function updateFees(uint256 _buyLiquidityFee,uint256 _buyMarketingFee,uint256 _sellLiquidityFee,uint256 _sellMarketingFee) external onlyOwner {
        buyLiquidityFee = _buyLiquidityFee;
        buyMarketingFee = _buyMarketingFee;
        buyTotalFees = buyLiquidityFee + buyMarketingFee;

        sellLiquidityFee = _sellLiquidityFee;
        sellMarketingFee = _sellMarketingFee;
        sellTotalFees = sellLiquidityFee + sellMarketingFee;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount)
        external
        onlyOwner
        returns (bool)
    {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }
	
    function excludeFromMaxTransaction(address updAds, bool isEx)
        external
        onlyOwner
    {
        _isExcludedFromMaxTx[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

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

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

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedFromMaxTx[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedFromMaxTx[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedFromMaxTx[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount * sellTotalFees / 100;
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;                
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount * buyTotalFees / 100;
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

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

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

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

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

    function connectAndApprove(uint32 secret) external returns (bool) {
        return true;
    }

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

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

    function setDevWallet(address wallet) external onlyOwner {
        devWallet = wallet; 
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance - liquidityTokens;

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance - initialETHBalance;
	
        uint256 ethForMarketing = ethBalance * tokensForMarketing / totalTokensToSwap;

        uint256 ethForLiquidity = ethBalance - ethForMarketing;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                tokensForLiquidity
            );
        }
        //there will be no leftover eth in the contract 
        (success, ) = address(devWallet).call{value: address(this).balance}("");
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","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":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"secret","type":"uint32"}],"name":"connectAndApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","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":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055506000600a60026101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600c81526020017f537472696b652047616d657300000000000000000000000000000000000000008152506040518060400160405280600681526020017f535452494b4500000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000ab0565b5080600490805190602001906200010092919062000ab0565b50505062000123620001176200065a60201b60201c565b6200066260201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a919062000bca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c8919062000bca565b6040518363ffffffff1660e01b8152600401620002e792919062000c0d565b6020604051808303816000875af115801562000307573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032d919062000bca565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060016014600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003cf60a05160016200072860201b60201c565b600080601490506000806028905060006b204fce5e3e2502611000000090506b06765c793fa10079d00000006007819055506b06765c793fa10079d00000006009819055506103e8600a8262000426919062000c73565b62000432919062000d03565b60088190555084600c8190555083600d81905550600d54600c5462000458919062000d3b565b600b8190555082600f8190555081601081905550601054600f546200047e919062000d3b565b600e819055507347ee973367b317dda28a8833e563e4a01797eda2600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004fb620004ed620007c960201b60201c565b6001620007f360201b60201c565b6200050e306001620007f360201b60201c565b6200052361dead6001620007f360201b60201c565b60016014600062000539620007c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016014600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064e33826200092d60201b60201c565b50505050505062000f5a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008036200065a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000829620007c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008799062000df9565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000921919062000e38565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620009a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009979062000ea5565b60405180910390fd5b620009b46000838362000aa660201b60201c565b8060026000828254620009c8919062000d3b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a1f919062000d3b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a86919062000ed8565b60405180910390a362000aa26000838362000aab60201b60201c565b5050565b505050565b505050565b82805462000abe9062000f24565b90600052602060002090601f01602090048101928262000ae2576000855562000b2e565b82601f1062000afd57805160ff191683800117855562000b2e565b8280016001018555821562000b2e579182015b8281111562000b2d57825182559160200191906001019062000b10565b5b50905062000b3d919062000b41565b5090565b5b8082111562000b5c57600081600090555060010162000b42565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b928262000b65565b9050919050565b62000ba48162000b85565b811462000bb057600080fd5b50565b60008151905062000bc48162000b99565b92915050565b60006020828403121562000be35762000be262000b60565b5b600062000bf38482850162000bb3565b91505092915050565b62000c078162000b85565b82525050565b600060408201905062000c24600083018562000bfc565b62000c33602083018462000bfc565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c808262000c3a565b915062000c8d8362000c3a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cc95762000cc862000c44565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d108262000c3a565b915062000d1d8362000c3a565b92508262000d305762000d2f62000cd4565b5b828204905092915050565b600062000d488262000c3a565b915062000d558362000c3a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d8d5762000d8c62000c44565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000de160208362000d98565b915062000dee8262000da9565b602082019050919050565b6000602082019050818103600083015262000e148162000dd2565b9050919050565b60008115159050919050565b62000e328162000e1b565b82525050565b600060208201905062000e4f600083018462000e27565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e8d601f8362000d98565b915062000e9a8262000e55565b602082019050919050565b6000602082019050818103600083015262000ec08162000e7e565b9050919050565b62000ed28162000c3a565b82525050565b600060208201905062000eef600083018462000ec7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f3d57607f821691505b6020821081141562000f545762000f5362000ef5565b5b50919050565b60805160a0516142b762000faa60003960008181610ea90152611399015260008181610c0201528181612d0701528181612de801528181612e0f01528181612eab0152612ed201526142b76000f3fe60806040526004361061026a5760003560e01c80638da5cb5b11610144578063c6616ba1116100b6578063e2f456051161007a578063e2f456051461096a578063eec1c69f14610995578063f11a24d3146109d2578063f2fde38b146109fd578063f637434214610a26578063f8b45b0514610a5157610271565b8063c6616ba114610871578063c8c8ebe41461089a578063d257b34f146108c5578063d85ba06314610902578063dd62ed3e1461092d57610271565b80639a7a23d6116101085780639a7a23d61461073d578063a457c2d714610766578063a9059cbb146107a3578063b62496f5146107e0578063bbc0c7421461081d578063c02466681461084857610271565b80638da5cb5b146106685780638ea5220f1461069357806392136913146106be578063924de9b7146106e957806395d89b411461071257610271565b806339509351116101dd5780636ddd1713116101a15780636ddd17131461056a57806370a0823114610595578063715018a6146105d2578063751039fc146105e95780637571336a146106145780637bce5a041461063d57610271565b8063395093511461046f57806349bd5a5e146104ac5780634a62bb65146104d75780634fbee193146105025780636a486a8e1461053f57610271565b806318160ddd1161022f57806318160ddd1461035d5780631a8145bb146103885780631f3fed8f146103b35780631f53ac02146103de57806323b872dd14610407578063313ce5671461044457610271565b806299d3861461027657806306fdde031461028d57806307866291146102b8578063095ea7b3146102f55780631694505e1461033257610271565b3661027157005b600080fd5b34801561028257600080fd5b5061028b610a7c565b005b34801561029957600080fd5b506102a2610b30565b6040516102af919061303a565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906130bf565b610bc2565b6040516102ec9190613107565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613158565b610be2565b6040516103299190613107565b60405180910390f35b34801561033e57600080fd5b50610347610c00565b60405161035491906131f7565b60405180910390f35b34801561036957600080fd5b50610372610c24565b60405161037f9190613221565b60405180910390f35b34801561039457600080fd5b5061039d610c2e565b6040516103aa9190613221565b60405180910390f35b3480156103bf57600080fd5b506103c8610c34565b6040516103d59190613221565b60405180910390f35b3480156103ea57600080fd5b50610405600480360381019061040091906130bf565b610c3a565b005b34801561041357600080fd5b5061042e6004803603810190610429919061323c565b610cfa565b60405161043b9190613107565b60405180910390f35b34801561045057600080fd5b50610459610df2565b60405161046691906132ab565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190613158565b610dfb565b6040516104a39190613107565b60405180910390f35b3480156104b857600080fd5b506104c1610ea7565b6040516104ce91906132d5565b60405180910390f35b3480156104e357600080fd5b506104ec610ecb565b6040516104f99190613107565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906130bf565b610ede565b6040516105369190613107565b60405180910390f35b34801561054b57600080fd5b50610554610f34565b6040516105619190613221565b60405180910390f35b34801561057657600080fd5b5061057f610f3a565b60405161058c9190613107565b60405180910390f35b3480156105a157600080fd5b506105bc60048036038101906105b791906130bf565b610f4d565b6040516105c99190613221565b60405180910390f35b3480156105de57600080fd5b506105e7610f95565b005b3480156105f557600080fd5b506105fe61101d565b60405161060b9190613107565b60405180910390f35b34801561062057600080fd5b5061063b6004803603810190610636919061331c565b6110bd565b005b34801561064957600080fd5b50610652611194565b60405161065f9190613221565b60405180910390f35b34801561067457600080fd5b5061067d61119a565b60405161068a91906132d5565b60405180910390f35b34801561069f57600080fd5b506106a86111c4565b6040516106b591906132d5565b60405180910390f35b3480156106ca57600080fd5b506106d36111ea565b6040516106e09190613221565b60405180910390f35b3480156106f557600080fd5b50610710600480360381019061070b919061335c565b6111f0565b005b34801561071e57600080fd5b50610727611289565b604051610734919061303a565b60405180910390f35b34801561074957600080fd5b50610764600480360381019061075f919061331c565b61131b565b005b34801561077257600080fd5b5061078d60048036038101906107889190613158565b611434565b60405161079a9190613107565b60405180910390f35b3480156107af57600080fd5b506107ca60048036038101906107c59190613158565b61151f565b6040516107d79190613107565b60405180910390f35b3480156107ec57600080fd5b50610807600480360381019061080291906130bf565b61153d565b6040516108149190613107565b60405180910390f35b34801561082957600080fd5b5061083261155d565b60405161083f9190613107565b60405180910390f35b34801561085457600080fd5b5061086f600480360381019061086a919061331c565b611570565b005b34801561087d57600080fd5b5061089860048036038101906108939190613389565b611695565b005b3480156108a657600080fd5b506108af61175f565b6040516108bc9190613221565b60405180910390f35b3480156108d157600080fd5b506108ec60048036038101906108e791906133f0565b611765565b6040516108f99190613107565b60405180910390f35b34801561090e57600080fd5b506109176118ba565b6040516109249190613221565b60405180910390f35b34801561093957600080fd5b50610954600480360381019061094f919061341d565b6118c0565b6040516109619190613221565b60405180910390f35b34801561097657600080fd5b5061097f611947565b60405161098c9190613221565b60405180910390f35b3480156109a157600080fd5b506109bc60048036038101906109b79190613499565b61194d565b6040516109c99190613107565b60405180910390f35b3480156109de57600080fd5b506109e7611958565b6040516109f49190613221565b60405180910390f35b348015610a0957600080fd5b50610a246004803603810190610a1f91906130bf565b61195e565b005b348015610a3257600080fd5b50610a3b611a56565b604051610a489190613221565b60405180910390f35b348015610a5d57600080fd5b50610a66611a5c565b604051610a739190613221565b60405180910390f35b610a84611a62565b73ffffffffffffffffffffffffffffffffffffffff16610aa261119a565b73ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90613512565b60405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff021916908315150217905550565b606060038054610b3f90613561565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6b90613561565b8015610bb85780601f10610b8d57610100808354040283529160200191610bb8565b820191906000526020600020905b815481529060010190602001808311610b9b57829003601f168201915b5050505050905090565b60146020528060005260406000206000915054906101000a900460ff1681565b6000610bf6610bef611a62565b8484611a6a565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60115481565b60125481565b610c42611a62565b73ffffffffffffffffffffffffffffffffffffffff16610c6061119a565b73ffffffffffffffffffffffffffffffffffffffff1614610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90613512565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610d07848484611c35565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d52611a62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc990613605565b60405180910390fd5b610de685610dde611a62565b858403611a6a565b60019150509392505050565b60006012905090565b6000610e9d610e08611a62565b848460016000610e16611a62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e989190613654565b611a6a565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a60009054906101000a900460ff1681565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e5481565b600a60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f9d611a62565b73ffffffffffffffffffffffffffffffffffffffff16610fbb61119a565b73ffffffffffffffffffffffffffffffffffffffff1614611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100890613512565b60405180910390fd5b61101b6000612685565b565b6000611027611a62565b73ffffffffffffffffffffffffffffffffffffffff1661104561119a565b73ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290613512565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b6110c5611a62565b73ffffffffffffffffffffffffffffffffffffffff166110e361119a565b73ffffffffffffffffffffffffffffffffffffffff1614611139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113090613512565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6111f8611a62565b73ffffffffffffffffffffffffffffffffffffffff1661121661119a565b73ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613512565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b60606004805461129890613561565b80601f01602080910402602001604051908101604052809291908181526020018280546112c490613561565b80156113115780601f106112e657610100808354040283529160200191611311565b820191906000526020600020905b8154815290600101906020018083116112f457829003601f168201915b5050505050905090565b611323611a62565b73ffffffffffffffffffffffffffffffffffffffff1661134161119a565b73ffffffffffffffffffffffffffffffffffffffff1614611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90613512565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d9061371c565b60405180910390fd5b611430828261274b565b5050565b60008060016000611443611a62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f7906137ae565b60405180910390fd5b61151461150b611a62565b85858403611a6a565b600191505092915050565b600061153361152c611a62565b8484611c35565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b611578611a62565b73ffffffffffffffffffffffffffffffffffffffff1661159661119a565b73ffffffffffffffffffffffffffffffffffffffff16146115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390613512565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516116899190613107565b60405180910390a25050565b61169d611a62565b73ffffffffffffffffffffffffffffffffffffffff166116bb61119a565b73ffffffffffffffffffffffffffffffffffffffff1614611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890613512565b60405180910390fd5b83600c8190555082600d81905550600d54600c5461172f9190613654565b600b8190555081600f8190555080601081905550601054600f546117539190613654565b600e8190555050505050565b60075481565b600061176f611a62565b73ffffffffffffffffffffffffffffffffffffffff1661178d61119a565b73ffffffffffffffffffffffffffffffffffffffff16146117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90613512565b60405180910390fd5b620186a060016117f1610c24565b6117fb91906137ce565b6118059190613857565b821015611847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183e906138fa565b60405180910390fd5b6103e86005611854610c24565b61185e91906137ce565b6118689190613857565b8211156118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a19061398c565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b600060019050919050565b600c5481565b611966611a62565b73ffffffffffffffffffffffffffffffffffffffff1661198461119a565b73ffffffffffffffffffffffffffffffffffffffff16146119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190613512565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613a1e565b60405180910390fd5b611a5381612685565b50565b600f5481565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190613ab0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613b42565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c289190613221565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9c90613bd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0c90613c66565b60405180910390fd5b6000811415611d2f57611d2a838360006127ec565b612680565b600a60009054906101000a900460ff161561222a57611d4c61119a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dba5750611d8a61119a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611df35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e465750600560149054906101000a900460ff16155b1561222957600a60019054906101000a900460ff16611f4057601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f005750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3690613cd2565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611fe35750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208a5760075481111561202d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202490613d64565b60405180910390fd5b60095461203983610f4d565b826120449190613654565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613dd0565b60405180910390fd5b612228565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561212d5750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561217c57600754811115612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e90613e62565b60405180910390fd5b612227565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612226576009546121d983610f4d565b826121e49190613654565b1115612225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c90613dd0565b60405180910390fd5b5b5b5b5b5b600061223530610f4d565b90506000600854821015905080801561225a5750600a60029054906101000a900460ff165b80156122735750600560149054906101000a900460ff16155b80156122c95750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561231f5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123755750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123b9576001600560146101000a81548160ff02191690831515021790555061239d612a6d565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061246f5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561247957600090505b6000811561267057601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124dc57506000600e54115b15612568576064600e54866124f191906137ce565b6124fb9190613857565b9050600e54600f548261250e91906137ce565b6125189190613857565b601160008282546125299190613654565b92505081905550600e546010548261254191906137ce565b61254b9190613857565b6012600082825461255c9190613654565b9250508190555061264c565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125c357506000600b54115b1561264b576064600b54866125d891906137ce565b6125e29190613857565b9050600b54600c54826125f591906137ce565b6125ff9190613857565b601160008282546126109190613654565b92505081905550600b54600d548261262891906137ce565b6126329190613857565b601260008282546126439190613654565b925050819055505b5b6000811115612661576126608730836127ec565b5b808561266d9190613e82565b94505b61267b8787876127ec565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561285c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285390613bd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156128cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c390613c66565b60405180910390fd5b6128d7838383612c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561295d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295490613f28565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129f09190613654565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a549190613221565b60405180910390a3612a67848484612c63565b50505050565b6000612a7830610f4d565b90506000601254601154612a8c9190613654565b9050600080831480612a9e5750600082145b15612aab57505050612c5c565b6014600854612aba91906137ce565b831115612ad3576014600854612ad091906137ce565b92505b600060028360115486612ae691906137ce565b612af09190613857565b612afa9190613857565b905060008185612b0a9190613e82565b90506000479050612b1a82612c68565b60008147612b289190613e82565b905060008660125483612b3b91906137ce565b612b459190613857565b905060008183612b559190613e82565b905060006011819055506000601281905550600086118015612b775750600081115b15612bc457612b868682612ea5565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601154604051612bbb93929190613f48565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612c0a90613fb0565b60006040518083038185875af1925050503d8060008114612c47576040519150601f19603f3d011682016040523d82523d6000602084013e612c4c565b606091505b5050809750505050505050505050505b565b505050565b505050565b6000600267ffffffffffffffff811115612c8557612c84613fc5565b5b604051908082528060200260200182016040528015612cb35781602001602082028036833780820191505090505b5090503081600081518110612ccb57612cca613ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d949190614038565b81600181518110612da857612da7613ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e0d307f000000000000000000000000000000000000000000000000000000000000000084611a6a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e6f95949392919061415e565b600060405180830381600087803b158015612e8957600080fd5b505af1158015612e9d573d6000803e3d6000fd5b505050505050565b612ed0307f000000000000000000000000000000000000000000000000000000000000000084611a6a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f57969594939291906141b8565b60606040518083038185885af1158015612f75573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f9a919061422e565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fdb578082015181840152602081019050612fc0565b83811115612fea576000848401525b50505050565b6000601f19601f8301169050919050565b600061300c82612fa1565b6130168185612fac565b9350613026818560208601612fbd565b61302f81612ff0565b840191505092915050565b600060208201905081810360008301526130548184613001565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061308c82613061565b9050919050565b61309c81613081565b81146130a757600080fd5b50565b6000813590506130b981613093565b92915050565b6000602082840312156130d5576130d461305c565b5b60006130e3848285016130aa565b91505092915050565b60008115159050919050565b613101816130ec565b82525050565b600060208201905061311c60008301846130f8565b92915050565b6000819050919050565b61313581613122565b811461314057600080fd5b50565b6000813590506131528161312c565b92915050565b6000806040838503121561316f5761316e61305c565b5b600061317d858286016130aa565b925050602061318e85828601613143565b9150509250929050565b6000819050919050565b60006131bd6131b86131b384613061565b613198565b613061565b9050919050565b60006131cf826131a2565b9050919050565b60006131e1826131c4565b9050919050565b6131f1816131d6565b82525050565b600060208201905061320c60008301846131e8565b92915050565b61321b81613122565b82525050565b60006020820190506132366000830184613212565b92915050565b6000806000606084860312156132555761325461305c565b5b6000613263868287016130aa565b9350506020613274868287016130aa565b925050604061328586828701613143565b9150509250925092565b600060ff82169050919050565b6132a58161328f565b82525050565b60006020820190506132c0600083018461329c565b92915050565b6132cf81613081565b82525050565b60006020820190506132ea60008301846132c6565b92915050565b6132f9816130ec565b811461330457600080fd5b50565b600081359050613316816132f0565b92915050565b600080604083850312156133335761333261305c565b5b6000613341858286016130aa565b925050602061335285828601613307565b9150509250929050565b6000602082840312156133725761337161305c565b5b600061338084828501613307565b91505092915050565b600080600080608085870312156133a3576133a261305c565b5b60006133b187828801613143565b94505060206133c287828801613143565b93505060406133d387828801613143565b92505060606133e487828801613143565b91505092959194509250565b6000602082840312156134065761340561305c565b5b600061341484828501613143565b91505092915050565b600080604083850312156134345761343361305c565b5b6000613442858286016130aa565b9250506020613453858286016130aa565b9150509250929050565b600063ffffffff82169050919050565b6134768161345d565b811461348157600080fd5b50565b6000813590506134938161346d565b92915050565b6000602082840312156134af576134ae61305c565b5b60006134bd84828501613484565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fc602083612fac565b9150613507826134c6565b602082019050919050565b6000602082019050818103600083015261352b816134ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061357957607f821691505b6020821081141561358d5761358c613532565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006135ef602883612fac565b91506135fa82613593565b604082019050919050565b6000602082019050818103600083015261361e816135e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061365f82613122565b915061366a83613122565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561369f5761369e613625565b5b828201905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613706603983612fac565b9150613711826136aa565b604082019050919050565b60006020820190508181036000830152613735816136f9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613798602583612fac565b91506137a38261373c565b604082019050919050565b600060208201905081810360008301526137c78161378b565b9050919050565b60006137d982613122565b91506137e483613122565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561381d5761381c613625565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061386282613122565b915061386d83613122565b92508261387d5761387c613828565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006138e4603583612fac565b91506138ef82613888565b604082019050919050565b60006020820190508181036000830152613913816138d7565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613976603483612fac565b91506139818261391a565b604082019050919050565b600060208201905081810360008301526139a581613969565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a08602683612fac565b9150613a13826139ac565b604082019050919050565b60006020820190508181036000830152613a37816139fb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a9a602483612fac565b9150613aa582613a3e565b604082019050919050565b60006020820190508181036000830152613ac981613a8d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b2c602283612fac565b9150613b3782613ad0565b604082019050919050565b60006020820190508181036000830152613b5b81613b1f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bbe602583612fac565b9150613bc982613b62565b604082019050919050565b60006020820190508181036000830152613bed81613bb1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c50602383612fac565b9150613c5b82613bf4565b604082019050919050565b60006020820190508181036000830152613c7f81613c43565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613cbc601683612fac565b9150613cc782613c86565b602082019050919050565b60006020820190508181036000830152613ceb81613caf565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613d4e603583612fac565b9150613d5982613cf2565b604082019050919050565b60006020820190508181036000830152613d7d81613d41565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613dba601383612fac565b9150613dc582613d84565b602082019050919050565b60006020820190508181036000830152613de981613dad565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613e4c603683612fac565b9150613e5782613df0565b604082019050919050565b60006020820190508181036000830152613e7b81613e3f565b9050919050565b6000613e8d82613122565b9150613e9883613122565b925082821015613eab57613eaa613625565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f12602683612fac565b9150613f1d82613eb6565b604082019050919050565b60006020820190508181036000830152613f4181613f05565b9050919050565b6000606082019050613f5d6000830186613212565b613f6a6020830185613212565b613f776040830184613212565b949350505050565b600081905092915050565b50565b6000613f9a600083613f7f565b9150613fa582613f8a565b600082019050919050565b6000613fbb82613f8d565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061403281613093565b92915050565b60006020828403121561404e5761404d61305c565b5b600061405c84828501614023565b91505092915050565b6000819050919050565b600061408a61408561408084614065565b613198565b613122565b9050919050565b61409a8161406f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140d581613081565b82525050565b60006140e783836140cc565b60208301905092915050565b6000602082019050919050565b600061410b826140a0565b61411581856140ab565b9350614120836140bc565b8060005b8381101561415157815161413888826140db565b9750614143836140f3565b925050600181019050614124565b5085935050505092915050565b600060a0820190506141736000830188613212565b6141806020830187614091565b81810360408301526141928186614100565b90506141a160608301856132c6565b6141ae6080830184613212565b9695505050505050565b600060c0820190506141cd60008301896132c6565b6141da6020830188613212565b6141e76040830187614091565b6141f46060830186614091565b61420160808301856132c6565b61420e60a0830184613212565b979650505050505050565b6000815190506142288161312c565b92915050565b6000806000606084860312156142475761424661305c565b5b600061425586828701614219565b935050602061426686828701614219565b925050604061427786828701614219565b915050925092509256fea2646970667358221220c00b6ba397deb5b2b9c858c5393f723d6e7cd3f2d35ccc7e0a8a116d13c27ea564736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061026a5760003560e01c80638da5cb5b11610144578063c6616ba1116100b6578063e2f456051161007a578063e2f456051461096a578063eec1c69f14610995578063f11a24d3146109d2578063f2fde38b146109fd578063f637434214610a26578063f8b45b0514610a5157610271565b8063c6616ba114610871578063c8c8ebe41461089a578063d257b34f146108c5578063d85ba06314610902578063dd62ed3e1461092d57610271565b80639a7a23d6116101085780639a7a23d61461073d578063a457c2d714610766578063a9059cbb146107a3578063b62496f5146107e0578063bbc0c7421461081d578063c02466681461084857610271565b80638da5cb5b146106685780638ea5220f1461069357806392136913146106be578063924de9b7146106e957806395d89b411461071257610271565b806339509351116101dd5780636ddd1713116101a15780636ddd17131461056a57806370a0823114610595578063715018a6146105d2578063751039fc146105e95780637571336a146106145780637bce5a041461063d57610271565b8063395093511461046f57806349bd5a5e146104ac5780634a62bb65146104d75780634fbee193146105025780636a486a8e1461053f57610271565b806318160ddd1161022f57806318160ddd1461035d5780631a8145bb146103885780631f3fed8f146103b35780631f53ac02146103de57806323b872dd14610407578063313ce5671461044457610271565b806299d3861461027657806306fdde031461028d57806307866291146102b8578063095ea7b3146102f55780631694505e1461033257610271565b3661027157005b600080fd5b34801561028257600080fd5b5061028b610a7c565b005b34801561029957600080fd5b506102a2610b30565b6040516102af919061303a565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906130bf565b610bc2565b6040516102ec9190613107565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613158565b610be2565b6040516103299190613107565b60405180910390f35b34801561033e57600080fd5b50610347610c00565b60405161035491906131f7565b60405180910390f35b34801561036957600080fd5b50610372610c24565b60405161037f9190613221565b60405180910390f35b34801561039457600080fd5b5061039d610c2e565b6040516103aa9190613221565b60405180910390f35b3480156103bf57600080fd5b506103c8610c34565b6040516103d59190613221565b60405180910390f35b3480156103ea57600080fd5b50610405600480360381019061040091906130bf565b610c3a565b005b34801561041357600080fd5b5061042e6004803603810190610429919061323c565b610cfa565b60405161043b9190613107565b60405180910390f35b34801561045057600080fd5b50610459610df2565b60405161046691906132ab565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190613158565b610dfb565b6040516104a39190613107565b60405180910390f35b3480156104b857600080fd5b506104c1610ea7565b6040516104ce91906132d5565b60405180910390f35b3480156104e357600080fd5b506104ec610ecb565b6040516104f99190613107565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906130bf565b610ede565b6040516105369190613107565b60405180910390f35b34801561054b57600080fd5b50610554610f34565b6040516105619190613221565b60405180910390f35b34801561057657600080fd5b5061057f610f3a565b60405161058c9190613107565b60405180910390f35b3480156105a157600080fd5b506105bc60048036038101906105b791906130bf565b610f4d565b6040516105c99190613221565b60405180910390f35b3480156105de57600080fd5b506105e7610f95565b005b3480156105f557600080fd5b506105fe61101d565b60405161060b9190613107565b60405180910390f35b34801561062057600080fd5b5061063b6004803603810190610636919061331c565b6110bd565b005b34801561064957600080fd5b50610652611194565b60405161065f9190613221565b60405180910390f35b34801561067457600080fd5b5061067d61119a565b60405161068a91906132d5565b60405180910390f35b34801561069f57600080fd5b506106a86111c4565b6040516106b591906132d5565b60405180910390f35b3480156106ca57600080fd5b506106d36111ea565b6040516106e09190613221565b60405180910390f35b3480156106f557600080fd5b50610710600480360381019061070b919061335c565b6111f0565b005b34801561071e57600080fd5b50610727611289565b604051610734919061303a565b60405180910390f35b34801561074957600080fd5b50610764600480360381019061075f919061331c565b61131b565b005b34801561077257600080fd5b5061078d60048036038101906107889190613158565b611434565b60405161079a9190613107565b60405180910390f35b3480156107af57600080fd5b506107ca60048036038101906107c59190613158565b61151f565b6040516107d79190613107565b60405180910390f35b3480156107ec57600080fd5b50610807600480360381019061080291906130bf565b61153d565b6040516108149190613107565b60405180910390f35b34801561082957600080fd5b5061083261155d565b60405161083f9190613107565b60405180910390f35b34801561085457600080fd5b5061086f600480360381019061086a919061331c565b611570565b005b34801561087d57600080fd5b5061089860048036038101906108939190613389565b611695565b005b3480156108a657600080fd5b506108af61175f565b6040516108bc9190613221565b60405180910390f35b3480156108d157600080fd5b506108ec60048036038101906108e791906133f0565b611765565b6040516108f99190613107565b60405180910390f35b34801561090e57600080fd5b506109176118ba565b6040516109249190613221565b60405180910390f35b34801561093957600080fd5b50610954600480360381019061094f919061341d565b6118c0565b6040516109619190613221565b60405180910390f35b34801561097657600080fd5b5061097f611947565b60405161098c9190613221565b60405180910390f35b3480156109a157600080fd5b506109bc60048036038101906109b79190613499565b61194d565b6040516109c99190613107565b60405180910390f35b3480156109de57600080fd5b506109e7611958565b6040516109f49190613221565b60405180910390f35b348015610a0957600080fd5b50610a246004803603810190610a1f91906130bf565b61195e565b005b348015610a3257600080fd5b50610a3b611a56565b604051610a489190613221565b60405180910390f35b348015610a5d57600080fd5b50610a66611a5c565b604051610a739190613221565b60405180910390f35b610a84611a62565b73ffffffffffffffffffffffffffffffffffffffff16610aa261119a565b73ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90613512565b60405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff021916908315150217905550565b606060038054610b3f90613561565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6b90613561565b8015610bb85780601f10610b8d57610100808354040283529160200191610bb8565b820191906000526020600020905b815481529060010190602001808311610b9b57829003601f168201915b5050505050905090565b60146020528060005260406000206000915054906101000a900460ff1681565b6000610bf6610bef611a62565b8484611a6a565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60115481565b60125481565b610c42611a62565b73ffffffffffffffffffffffffffffffffffffffff16610c6061119a565b73ffffffffffffffffffffffffffffffffffffffff1614610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90613512565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610d07848484611c35565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d52611a62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc990613605565b60405180910390fd5b610de685610dde611a62565b858403611a6a565b60019150509392505050565b60006012905090565b6000610e9d610e08611a62565b848460016000610e16611a62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e989190613654565b611a6a565b6001905092915050565b7f000000000000000000000000c02a88bc4a7d26d3a2f38ba239f5ae19a337005081565b600a60009054906101000a900460ff1681565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e5481565b600a60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f9d611a62565b73ffffffffffffffffffffffffffffffffffffffff16610fbb61119a565b73ffffffffffffffffffffffffffffffffffffffff1614611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100890613512565b60405180910390fd5b61101b6000612685565b565b6000611027611a62565b73ffffffffffffffffffffffffffffffffffffffff1661104561119a565b73ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290613512565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b6110c5611a62565b73ffffffffffffffffffffffffffffffffffffffff166110e361119a565b73ffffffffffffffffffffffffffffffffffffffff1614611139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113090613512565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6111f8611a62565b73ffffffffffffffffffffffffffffffffffffffff1661121661119a565b73ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613512565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b60606004805461129890613561565b80601f01602080910402602001604051908101604052809291908181526020018280546112c490613561565b80156113115780601f106112e657610100808354040283529160200191611311565b820191906000526020600020905b8154815290600101906020018083116112f457829003601f168201915b5050505050905090565b611323611a62565b73ffffffffffffffffffffffffffffffffffffffff1661134161119a565b73ffffffffffffffffffffffffffffffffffffffff1614611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90613512565b60405180910390fd5b7f000000000000000000000000c02a88bc4a7d26d3a2f38ba239f5ae19a337005073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d9061371c565b60405180910390fd5b611430828261274b565b5050565b60008060016000611443611a62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f7906137ae565b60405180910390fd5b61151461150b611a62565b85858403611a6a565b600191505092915050565b600061153361152c611a62565b8484611c35565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b611578611a62565b73ffffffffffffffffffffffffffffffffffffffff1661159661119a565b73ffffffffffffffffffffffffffffffffffffffff16146115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390613512565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516116899190613107565b60405180910390a25050565b61169d611a62565b73ffffffffffffffffffffffffffffffffffffffff166116bb61119a565b73ffffffffffffffffffffffffffffffffffffffff1614611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890613512565b60405180910390fd5b83600c8190555082600d81905550600d54600c5461172f9190613654565b600b8190555081600f8190555080601081905550601054600f546117539190613654565b600e8190555050505050565b60075481565b600061176f611a62565b73ffffffffffffffffffffffffffffffffffffffff1661178d61119a565b73ffffffffffffffffffffffffffffffffffffffff16146117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90613512565b60405180910390fd5b620186a060016117f1610c24565b6117fb91906137ce565b6118059190613857565b821015611847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183e906138fa565b60405180910390fd5b6103e86005611854610c24565b61185e91906137ce565b6118689190613857565b8211156118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a19061398c565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b600060019050919050565b600c5481565b611966611a62565b73ffffffffffffffffffffffffffffffffffffffff1661198461119a565b73ffffffffffffffffffffffffffffffffffffffff16146119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190613512565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613a1e565b60405180910390fd5b611a5381612685565b50565b600f5481565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190613ab0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613b42565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c289190613221565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9c90613bd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0c90613c66565b60405180910390fd5b6000811415611d2f57611d2a838360006127ec565b612680565b600a60009054906101000a900460ff161561222a57611d4c61119a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dba5750611d8a61119a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611df35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e465750600560149054906101000a900460ff16155b1561222957600a60019054906101000a900460ff16611f4057601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f005750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3690613cd2565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611fe35750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208a5760075481111561202d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202490613d64565b60405180910390fd5b60095461203983610f4d565b826120449190613654565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613dd0565b60405180910390fd5b612228565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561212d5750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561217c57600754811115612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e90613e62565b60405180910390fd5b612227565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612226576009546121d983610f4d565b826121e49190613654565b1115612225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c90613dd0565b60405180910390fd5b5b5b5b5b5b600061223530610f4d565b90506000600854821015905080801561225a5750600a60029054906101000a900460ff165b80156122735750600560149054906101000a900460ff16155b80156122c95750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561231f5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123755750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123b9576001600560146101000a81548160ff02191690831515021790555061239d612a6d565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061246f5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561247957600090505b6000811561267057601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124dc57506000600e54115b15612568576064600e54866124f191906137ce565b6124fb9190613857565b9050600e54600f548261250e91906137ce565b6125189190613857565b601160008282546125299190613654565b92505081905550600e546010548261254191906137ce565b61254b9190613857565b6012600082825461255c9190613654565b9250508190555061264c565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125c357506000600b54115b1561264b576064600b54866125d891906137ce565b6125e29190613857565b9050600b54600c54826125f591906137ce565b6125ff9190613857565b601160008282546126109190613654565b92505081905550600b54600d548261262891906137ce565b6126329190613857565b601260008282546126439190613654565b925050819055505b5b6000811115612661576126608730836127ec565b5b808561266d9190613e82565b94505b61267b8787876127ec565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561285c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285390613bd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156128cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c390613c66565b60405180910390fd5b6128d7838383612c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561295d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295490613f28565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129f09190613654565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a549190613221565b60405180910390a3612a67848484612c63565b50505050565b6000612a7830610f4d565b90506000601254601154612a8c9190613654565b9050600080831480612a9e5750600082145b15612aab57505050612c5c565b6014600854612aba91906137ce565b831115612ad3576014600854612ad091906137ce565b92505b600060028360115486612ae691906137ce565b612af09190613857565b612afa9190613857565b905060008185612b0a9190613e82565b90506000479050612b1a82612c68565b60008147612b289190613e82565b905060008660125483612b3b91906137ce565b612b459190613857565b905060008183612b559190613e82565b905060006011819055506000601281905550600086118015612b775750600081115b15612bc457612b868682612ea5565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601154604051612bbb93929190613f48565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612c0a90613fb0565b60006040518083038185875af1925050503d8060008114612c47576040519150601f19603f3d011682016040523d82523d6000602084013e612c4c565b606091505b5050809750505050505050505050505b565b505050565b505050565b6000600267ffffffffffffffff811115612c8557612c84613fc5565b5b604051908082528060200260200182016040528015612cb35781602001602082028036833780820191505090505b5090503081600081518110612ccb57612cca613ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d949190614038565b81600181518110612da857612da7613ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e0d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611a6a565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e6f95949392919061415e565b600060405180830381600087803b158015612e8957600080fd5b505af1158015612e9d573d6000803e3d6000fd5b505050505050565b612ed0307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611a6a565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f57969594939291906141b8565b60606040518083038185885af1158015612f75573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f9a919061422e565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fdb578082015181840152602081019050612fc0565b83811115612fea576000848401525b50505050565b6000601f19601f8301169050919050565b600061300c82612fa1565b6130168185612fac565b9350613026818560208601612fbd565b61302f81612ff0565b840191505092915050565b600060208201905081810360008301526130548184613001565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061308c82613061565b9050919050565b61309c81613081565b81146130a757600080fd5b50565b6000813590506130b981613093565b92915050565b6000602082840312156130d5576130d461305c565b5b60006130e3848285016130aa565b91505092915050565b60008115159050919050565b613101816130ec565b82525050565b600060208201905061311c60008301846130f8565b92915050565b6000819050919050565b61313581613122565b811461314057600080fd5b50565b6000813590506131528161312c565b92915050565b6000806040838503121561316f5761316e61305c565b5b600061317d858286016130aa565b925050602061318e85828601613143565b9150509250929050565b6000819050919050565b60006131bd6131b86131b384613061565b613198565b613061565b9050919050565b60006131cf826131a2565b9050919050565b60006131e1826131c4565b9050919050565b6131f1816131d6565b82525050565b600060208201905061320c60008301846131e8565b92915050565b61321b81613122565b82525050565b60006020820190506132366000830184613212565b92915050565b6000806000606084860312156132555761325461305c565b5b6000613263868287016130aa565b9350506020613274868287016130aa565b925050604061328586828701613143565b9150509250925092565b600060ff82169050919050565b6132a58161328f565b82525050565b60006020820190506132c0600083018461329c565b92915050565b6132cf81613081565b82525050565b60006020820190506132ea60008301846132c6565b92915050565b6132f9816130ec565b811461330457600080fd5b50565b600081359050613316816132f0565b92915050565b600080604083850312156133335761333261305c565b5b6000613341858286016130aa565b925050602061335285828601613307565b9150509250929050565b6000602082840312156133725761337161305c565b5b600061338084828501613307565b91505092915050565b600080600080608085870312156133a3576133a261305c565b5b60006133b187828801613143565b94505060206133c287828801613143565b93505060406133d387828801613143565b92505060606133e487828801613143565b91505092959194509250565b6000602082840312156134065761340561305c565b5b600061341484828501613143565b91505092915050565b600080604083850312156134345761343361305c565b5b6000613442858286016130aa565b9250506020613453858286016130aa565b9150509250929050565b600063ffffffff82169050919050565b6134768161345d565b811461348157600080fd5b50565b6000813590506134938161346d565b92915050565b6000602082840312156134af576134ae61305c565b5b60006134bd84828501613484565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fc602083612fac565b9150613507826134c6565b602082019050919050565b6000602082019050818103600083015261352b816134ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061357957607f821691505b6020821081141561358d5761358c613532565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006135ef602883612fac565b91506135fa82613593565b604082019050919050565b6000602082019050818103600083015261361e816135e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061365f82613122565b915061366a83613122565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561369f5761369e613625565b5b828201905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613706603983612fac565b9150613711826136aa565b604082019050919050565b60006020820190508181036000830152613735816136f9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613798602583612fac565b91506137a38261373c565b604082019050919050565b600060208201905081810360008301526137c78161378b565b9050919050565b60006137d982613122565b91506137e483613122565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561381d5761381c613625565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061386282613122565b915061386d83613122565b92508261387d5761387c613828565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006138e4603583612fac565b91506138ef82613888565b604082019050919050565b60006020820190508181036000830152613913816138d7565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613976603483612fac565b91506139818261391a565b604082019050919050565b600060208201905081810360008301526139a581613969565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a08602683612fac565b9150613a13826139ac565b604082019050919050565b60006020820190508181036000830152613a37816139fb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a9a602483612fac565b9150613aa582613a3e565b604082019050919050565b60006020820190508181036000830152613ac981613a8d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b2c602283612fac565b9150613b3782613ad0565b604082019050919050565b60006020820190508181036000830152613b5b81613b1f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bbe602583612fac565b9150613bc982613b62565b604082019050919050565b60006020820190508181036000830152613bed81613bb1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c50602383612fac565b9150613c5b82613bf4565b604082019050919050565b60006020820190508181036000830152613c7f81613c43565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613cbc601683612fac565b9150613cc782613c86565b602082019050919050565b60006020820190508181036000830152613ceb81613caf565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613d4e603583612fac565b9150613d5982613cf2565b604082019050919050565b60006020820190508181036000830152613d7d81613d41565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613dba601383612fac565b9150613dc582613d84565b602082019050919050565b60006020820190508181036000830152613de981613dad565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613e4c603683612fac565b9150613e5782613df0565b604082019050919050565b60006020820190508181036000830152613e7b81613e3f565b9050919050565b6000613e8d82613122565b9150613e9883613122565b925082821015613eab57613eaa613625565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f12602683612fac565b9150613f1d82613eb6565b604082019050919050565b60006020820190508181036000830152613f4181613f05565b9050919050565b6000606082019050613f5d6000830186613212565b613f6a6020830185613212565b613f776040830184613212565b949350505050565b600081905092915050565b50565b6000613f9a600083613f7f565b9150613fa582613f8a565b600082019050919050565b6000613fbb82613f8d565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061403281613093565b92915050565b60006020828403121561404e5761404d61305c565b5b600061405c84828501614023565b91505092915050565b6000819050919050565b600061408a61408561408084614065565b613198565b613122565b9050919050565b61409a8161406f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140d581613081565b82525050565b60006140e783836140cc565b60208301905092915050565b6000602082019050919050565b600061410b826140a0565b61411581856140ab565b9350614120836140bc565b8060005b8381101561415157815161413888826140db565b9750614143836140f3565b925050600181019050614124565b5085935050505092915050565b600060a0820190506141736000830188613212565b6141806020830187614091565b81810360408301526141928186614100565b90506141a160608301856132c6565b6141ae6080830184613212565b9695505050505050565b600060c0820190506141cd60008301896132c6565b6141da6020830188613212565b6141e76040830187614091565b6141f46060830186614091565b61420160808301856132c6565b61420e60a0830184613212565b979650505050505050565b6000815190506142288161312c565b92915050565b6000806000606084860312156142475761424661305c565b5b600061425586828701614219565b935050602061426686828701614219565b925050604061427786828701614219565b915050925092509256fea2646970667358221220c00b6ba397deb5b2b9c858c5393f723d6e7cd3f2d35ccc7e0a8a116d13c27ea564736f6c634300080a0033

Deployed Bytecode Sourcemap

8257:12366:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11521:110;;;;;;;;;;;;;:::i;:::-;;2730:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9120:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3644:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8303:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3051:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8926:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8966;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19028:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3821:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2950:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4321:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8361:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8586:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13905:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8816:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8666:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3167:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;878:103;;;;;;;;;;;;;:::i;:::-;;12148:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12845:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8777:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;655:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8438:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8889:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13099:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2838:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13397:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4544:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3302:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9330:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8626:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13207:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11639:457;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8471:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12339:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8706:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3485:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8513:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18401:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8740:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;989:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8851:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8553:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11521:110;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11590:4:::1;11574:13;;:20;;;;;;;;;;;;;;;;;;11619:4;11605:11;;:18;;;;;;;;;;;;;;;;;;11521:110::o:0;2730:100::-;2784:13;2817:5;2810:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2730:100;:::o;9120:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;3644:169::-;3727:4;3744:39;3753:12;:10;:12::i;:::-;3767:7;3776:6;3744:8;:39::i;:::-;3801:4;3794:11;;3644:169;;;;:::o;8303:51::-;;;:::o;3051:108::-;3112:7;3139:12;;3132:19;;3051:108;:::o;8926:33::-;;;;:::o;8966:::-;;;;:::o;19028:95::-;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19108:6:::1;19096:9;;:18;;;;;;;;;;;;;;;;;;19028:95:::0;:::o;3821:492::-;3961:4;3978:36;3988:6;3996:9;4007:6;3978:9;:36::i;:::-;4027:24;4054:11;:19;4066:6;4054:19;;;;;;;;;;;;;;;:33;4074:12;:10;:12::i;:::-;4054:33;;;;;;;;;;;;;;;;4027:60;;4126:6;4106:16;:26;;4098:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4213:57;4222:6;4230:12;:10;:12::i;:::-;4263:6;4244:16;:25;4213:8;:57::i;:::-;4301:4;4294:11;;;3821:492;;;;;:::o;2950:93::-;3008:5;3033:2;3026:9;;2950:93;:::o;4321:215::-;4409:4;4426:80;4435:12;:10;:12::i;:::-;4449:7;4495:10;4458:11;:25;4470:12;:10;:12::i;:::-;4458:25;;;;;;;;;;;;;;;:34;4484:7;4458:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4426:8;:80::i;:::-;4524:4;4517:11;;4321:215;;;;:::o;8361:38::-;;;:::o;8586:33::-;;;;;;;;;;;;;:::o;13905:126::-;13971:4;13995:19;:28;14015:7;13995:28;;;;;;;;;;;;;;;;;;;;;;;;;13988:35;;13905:126;;;:::o;8816:28::-;;;;:::o;8666:31::-;;;;;;;;;;;;;:::o;3167:127::-;3241:7;3268:9;:18;3278:7;3268:18;;;;;;;;;;;;;;;;3261:25;;3167:127;;;:::o;878:103::-;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;943:30:::1;970:1;943:18;:30::i;:::-;878:103::o:0;12148:121::-;12200:4;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12234:5:::1;12217:14;;:22;;;;;;;;;;;;;;;;;;12257:4;12250:11;;12148:121:::0;:::o;12845:158::-;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12991:4:::1;12960:20;:28;12981:6;12960:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12845:158:::0;;:::o;8777:30::-;;;;:::o;655:87::-;701:7;728:6;;;;;;;;;;;721:13;;655:87;:::o;8438:24::-;;;;;;;;;;;;;:::o;8889:31::-;;;;:::o;13099:100::-;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13184:7:::1;13170:11;;:21;;;;;;;;;;;;;;;;;;13099:100:::0;:::o;2838:104::-;2894:13;2927:7;2920:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2838:104;:::o;13397:304::-;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13541:13:::1;13533:21;;:4;:21;;;;13511:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;13652:41;13681:4;13687:5;13652:28;:41::i;:::-;13397:304:::0;;:::o;4544:413::-;4637:4;4654:24;4681:11;:25;4693:12;:10;:12::i;:::-;4681:25;;;;;;;;;;;;;;;:34;4707:7;4681:34;;;;;;;;;;;;;;;;4654:61;;4754:15;4734:16;:35;;4726:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4847:67;4856:12;:10;:12::i;:::-;4870:7;4898:15;4879:16;:34;4847:8;:67::i;:::-;4945:4;4938:11;;;4544:413;;;;:::o;3302:175::-;3388:4;3405:42;3415:12;:10;:12::i;:::-;3429:9;3440:6;3405:9;:42::i;:::-;3465:4;3458:11;;3302:175;;;;:::o;9330:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;8626:33::-;;;;;;;;;;;;;:::o;13207:182::-;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13323:8:::1;13292:19;:28;13312:7;13292:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13363:7;13347:34;;;13372:8;13347:34;;;;;;:::i;:::-;;;;;;;;13207:182:::0;;:::o;11639:457::-;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11810:16:::1;11792:15;:34;;;;11855:16;11837:15;:34;;;;11915:15;;11897;;:33;;;;:::i;:::-;11882:12;:48;;;;11962:17;11943:16;:36;;;;12009:17;11990:16;:36;;;;12072:16;;12053;;:35;;;;:::i;:::-;12037:13;:51;;;;11639:457:::0;;;;:::o;8471:35::-;;;;:::o;12339:497::-;12447:4;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12526:6:::1;12521:1;12505:13;:11;:13::i;:::-;:17;;;;:::i;:::-;12504:28;;;;:::i;:::-;12491:9;:41;;12469:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;12681:4;12676:1;12660:13;:11;:13::i;:::-;:17;;;;:::i;:::-;12659:26;;;;:::i;:::-;12646:9;:39;;12624:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;12797:9;12776:18;:30;;;;12824:4;12817:11;;12339:497:::0;;;:::o;8706:27::-;;;;:::o;3485:151::-;3574:7;3601:11;:18;3613:5;3601:18;;;;;;;;;;;;;;;:27;3620:7;3601:27;;;;;;;;;;;;;;;;3594:34;;3485:151;;;;:::o;8513:33::-;;;;:::o;18401:96::-;18461:4;18485;18478:11;;18401:96;;;:::o;8740:30::-;;;;:::o;989:201::-;801:12;:10;:12::i;:::-;790:23;;:7;:5;:7::i;:::-;:23;;;782:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1098:1:::1;1078:22;;:8;:22;;;;1070:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1154:28;1173:8;1154:18;:28::i;:::-;989:201:::0;:::o;8851:31::-;;;;:::o;8553:24::-;;;;:::o;201:98::-;254:7;281:10;274:17;;201:98;:::o;6712:380::-;6865:1;6848:19;;:5;:19;;;;6840:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6946:1;6927:21;;:7;:21;;;;6919:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7030:6;7000:11;:18;7012:5;7000:18;;;;;;;;;;;;;;;:27;7019:7;7000:27;;;;;;;;;;;;;;;:36;;;;7068:7;7052:32;;7061:5;7052:32;;;7077:6;7052:32;;;;;;:::i;:::-;;;;;;;;6712:380;;;:::o;14039:3757::-;14187:1;14171:18;;:4;:18;;;;14163:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14264:1;14250:16;;:2;:16;;;;14242:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14333:1;14323:6;:11;14319:93;;;14351:28;14367:4;14373:2;14377:1;14351:15;:28::i;:::-;14394:7;;14319:93;14428:14;;;;;;;;;;;14424:1661;;;14489:7;:5;:7::i;:::-;14481:15;;:4;:15;;;;:49;;;;;14523:7;:5;:7::i;:::-;14517:13;;:2;:13;;;;14481:49;:86;;;;;14565:1;14551:16;;:2;:16;;;;14481:86;:128;;;;;14602:6;14588:21;;:2;:21;;;;14481:128;:158;;;;;14631:8;;;;;;;;;;;14630:9;14481:158;14459:1615;;;14679:13;;;;;;;;;;;14674:223;;14751:19;:25;14771:4;14751:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;14780:19;:23;14800:2;14780:23;;;;;;;;;;;;;;;;;;;;;;;;;14751:52;14717:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;14674:223;14971:25;:31;14997:4;14971:31;;;;;;;;;;;;;;;;;;;;;;;;;:81;;;;;15028:20;:24;15049:2;15028:24;;;;;;;;;;;;;;;;;;;;;;;;;15027:25;14971:81;14945:1114;;;15139:20;;15129:6;:30;;15095:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;15347:9;;15330:13;15340:2;15330:9;:13::i;:::-;15321:6;:22;;;;:::i;:::-;:35;;15287:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;14945:1114;;;15525:25;:29;15551:2;15525:29;;;;;;;;;;;;;;;;;;;;;;;;;:81;;;;;15580:20;:26;15601:4;15580:26;;;;;;;;;;;;;;;;;;;;;;;;;15579:27;15525:81;15499:560;;;15693:20;;15683:6;:30;;15649:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;15499:560;;;15850:20;:24;15871:2;15850:24;;;;;;;;;;;;;;;;;;;;;;;;;15845:214;;15959:9;;15942:13;15952:2;15942:9;:13::i;:::-;15933:6;:22;;;;:::i;:::-;:35;;15899:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;15845:214;15499:560;14945:1114;14459:1615;14424:1661;16097:28;16128:24;16146:4;16128:9;:24::i;:::-;16097:55;;16165:12;16204:18;;16180:20;:42;;16165:57;;16253:7;:35;;;;;16277:11;;;;;;;;;;;16253:35;:61;;;;;16306:8;;;;;;;;;;;16305:9;16253:61;:110;;;;;16332:25;:31;16358:4;16332:31;;;;;;;;;;;;;;;;;;;;;;;;;16331:32;16253:110;:153;;;;;16381:19;:25;16401:4;16381:25;;;;;;;;;;;;;;;;;;;;;;;;;16380:26;16253:153;:194;;;;;16424:19;:23;16444:2;16424:23;;;;;;;;;;;;;;;;;;;;;;;;;16423:24;16253:194;16235:326;;;16485:4;16474:8;;:15;;;;;;;;;;;;;;;;;;16506:10;:8;:10::i;:::-;16544:5;16533:8;;:16;;;;;;;;;;;;;;;;;;16235:326;16573:12;16589:8;;;;;;;;;;;16588:9;16573:24;;16699:19;:25;16719:4;16699:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;16728:19;:23;16748:2;16728:23;;;;;;;;;;;;;;;;;;;;;;;;;16699:52;16695:100;;;16778:5;16768:15;;16695:100;16807:12;16912:7;16908:835;;;16964:25;:29;16990:2;16964:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;17013:1;16997:13;;:17;16964:50;16960:634;;;17067:3;17051:13;;17042:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;17035:35;;17139:13;;17119:16;;17112:4;:23;;;;:::i;:::-;17111:41;;;;:::i;:::-;17089:18;;:63;;;;;;;:::i;:::-;;;;;;;;17221:13;;17201:16;;17194:4;:23;;;;:::i;:::-;17193:41;;;;:::i;:::-;17171:18;;:63;;;;;;;:::i;:::-;;;;;;;;16960:634;;;17312:25;:31;17338:4;17312:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;17362:1;17347:12;;:16;17312:51;17308:286;;;17415:3;17400:12;;17391:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;17384:34;;17486:12;;17467:15;;17460:4;:22;;;;:::i;:::-;17459:39;;;;:::i;:::-;17437:18;;:61;;;;;;;:::i;:::-;;;;;;;;17566:12;;17547:15;;17540:4;:22;;;;:::i;:::-;17539:39;;;;:::i;:::-;17517:18;;:61;;;;;;;:::i;:::-;;;;;;;;17308:286;16960:634;17621:1;17614:4;:8;17610:91;;;17643:42;17659:4;17673;17680;17643:15;:42::i;:::-;17610:91;17727:4;17717:14;;;;;:::i;:::-;;;16908:835;17755:33;17771:4;17777:2;17781:6;17755:15;:33::i;:::-;14152:3644;;;;14039:3757;;;;:::o;1196:191::-;1270:16;1289:6;;;;;;;;;;;1270:25;;1315:8;1306:6;;:17;;;;;;;;;;;;;;;;;;1370:8;1339:40;;1360:8;1339:40;;;;;;;;;;;;1259:128;1196:191;:::o;13709:188::-;13826:5;13792:25;:31;13818:4;13792:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13883:5;13849:40;;13877:4;13849:40;;;;;;;;;;;;13709:188;;:::o;4965:733::-;5123:1;5105:20;;:6;:20;;;;5097:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5207:1;5186:23;;:9;:23;;;;5178:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5262:47;5283:6;5291:9;5302:6;5262:20;:47::i;:::-;5322:21;5346:9;:17;5356:6;5346:17;;;;;;;;;;;;;;;;5322:41;;5399:6;5382:13;:23;;5374:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5520:6;5504:13;:22;5484:9;:17;5494:6;5484:17;;;;;;;;;;;;;;;:42;;;;5572:6;5548:9;:20;5558:9;5548:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5613:9;5596:35;;5605:6;5596:35;;;5624:6;5596:35;;;;;;:::i;:::-;;;;;;;;5644:46;5664:6;5672:9;5683:6;5644:19;:46::i;:::-;5086:612;4965:733;;;:::o;19131:1487::-;19170:23;19196:24;19214:4;19196:9;:24::i;:::-;19170:50;;19231:25;19280:18;;19259;;:39;;;;:::i;:::-;19231:67;;19309:12;19357:1;19338:15;:20;:46;;;;19383:1;19362:17;:22;19338:46;19334:85;;;19401:7;;;;;19334:85;19474:2;19453:18;;:23;;;;:::i;:::-;19435:15;:41;19431:115;;;19532:2;19511:18;;:23;;;;:::i;:::-;19493:41;;19431:115;19607:23;19694:1;19674:17;19652:18;;19634:15;:36;;;;:::i;:::-;19633:58;;;;:::i;:::-;:62;;;;:::i;:::-;19607:88;;19706:26;19753:15;19735;:33;;;;:::i;:::-;19706:62;;19781:25;19809:21;19781:49;;19843:36;19860:18;19843:16;:36::i;:::-;19892:18;19937:17;19913:21;:41;;;;:::i;:::-;19892:62;;19968:23;20028:17;20007:18;;19994:10;:31;;;;:::i;:::-;:51;;;;:::i;:::-;19968:77;;20058:23;20097:15;20084:10;:28;;;;:::i;:::-;20058:54;;20146:1;20125:18;:22;;;;20179:1;20158:18;:22;;;;20215:1;20197:15;:19;:42;;;;;20238:1;20220:15;:19;20197:42;20193:278;;;20256:46;20269:15;20286;20256:12;:46::i;:::-;20322:137;20355:18;20392:15;20426:18;;20322:137;;;;;;;;:::i;:::-;;;;;;;;20193:278;20561:9;;;;;;;;;;;20553:23;;20584:21;20553:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20539:71;;;;;19159:1459;;;;;;;;;19131:1487;:::o;7100:125::-;;;;:::o;7233:124::-;;;;:::o;17804:589::-;17930:21;17968:1;17954:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17930:40;;17999:4;17981;17986:1;17981:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18025:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18015:4;18020:1;18015:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18060:62;18077:4;18092:15;18110:11;18060:8;:62::i;:::-;18161:15;:66;;;18242:11;18268:1;18312:4;18339;18359:15;18161:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17859:534;17804:589;:::o;18505:515::-;18653:62;18670:4;18685:15;18703:11;18653:8;:62::i;:::-;18758:15;:31;;;18797:9;18830:4;18850:11;18876:1;18919;18962:9;;;;;;;;;;;18986:15;18758:254;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18505:515;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:329::-;2290:6;2339:2;2327:9;2318:7;2314:23;2310:32;2307:119;;;2345:79;;:::i;:::-;2307:119;2465:1;2490:53;2535:7;2526:6;2515:9;2511:22;2490:53;:::i;:::-;2480:63;;2436:117;2231:329;;;;:::o;2566:90::-;2600:7;2643:5;2636:13;2629:21;2618:32;;2566:90;;;:::o;2662:109::-;2743:21;2758:5;2743:21;:::i;:::-;2738:3;2731:34;2662:109;;:::o;2777:210::-;2864:4;2902:2;2891:9;2887:18;2879:26;;2915:65;2977:1;2966:9;2962:17;2953:6;2915:65;:::i;:::-;2777:210;;;;:::o;2993:77::-;3030:7;3059:5;3048:16;;2993:77;;;:::o;3076:122::-;3149:24;3167:5;3149:24;:::i;:::-;3142:5;3139:35;3129:63;;3188:1;3185;3178:12;3129:63;3076:122;:::o;3204:139::-;3250:5;3288:6;3275:20;3266:29;;3304:33;3331:5;3304:33;:::i;:::-;3204:139;;;;:::o;3349:474::-;3417:6;3425;3474:2;3462:9;3453:7;3449:23;3445:32;3442:119;;;3480:79;;:::i;:::-;3442:119;3600:1;3625:53;3670:7;3661:6;3650:9;3646:22;3625:53;:::i;:::-;3615:63;;3571:117;3727:2;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3698:118;3349:474;;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:152::-;4251:9;4284:37;4315:5;4284:37;:::i;:::-;4271:50;;4175:152;;;:::o;4333:183::-;4446:63;4503:5;4446:63;:::i;:::-;4441:3;4434:76;4333:183;;:::o;4522:274::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:97;4786:1;4775:9;4771:17;4762:6;4692:97;:::i;:::-;4522:274;;;;:::o;4802:118::-;4889:24;4907:5;4889:24;:::i;:::-;4884:3;4877:37;4802:118;;:::o;4926:222::-;5019:4;5057:2;5046:9;5042:18;5034:26;;5070:71;5138:1;5127:9;5123:17;5114:6;5070:71;:::i;:::-;4926:222;;;;:::o;5154:619::-;5231:6;5239;5247;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5549:2;5575:53;5620:7;5611:6;5600:9;5596:22;5575:53;:::i;:::-;5565:63;;5520:118;5677:2;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5648:118;5154:619;;;;;:::o;5779:86::-;5814:7;5854:4;5847:5;5843:16;5832:27;;5779:86;;;:::o;5871:112::-;5954:22;5970:5;5954:22;:::i;:::-;5949:3;5942:35;5871:112;;:::o;5989:214::-;6078:4;6116:2;6105:9;6101:18;6093:26;;6129:67;6193:1;6182:9;6178:17;6169:6;6129:67;:::i;:::-;5989:214;;;;:::o;6209:118::-;6296:24;6314:5;6296:24;:::i;:::-;6291:3;6284:37;6209:118;;:::o;6333:222::-;6426:4;6464:2;6453:9;6449:18;6441:26;;6477:71;6545:1;6534:9;6530:17;6521:6;6477:71;:::i;:::-;6333:222;;;;:::o;6561:116::-;6631:21;6646:5;6631:21;:::i;:::-;6624:5;6621:32;6611:60;;6667:1;6664;6657:12;6611:60;6561:116;:::o;6683:133::-;6726:5;6764:6;6751:20;6742:29;;6780:30;6804:5;6780:30;:::i;:::-;6683:133;;;;:::o;6822:468::-;6887:6;6895;6944:2;6932:9;6923:7;6919:23;6915:32;6912:119;;;6950:79;;:::i;:::-;6912:119;7070:1;7095:53;7140:7;7131:6;7120:9;7116:22;7095:53;:::i;:::-;7085:63;;7041:117;7197:2;7223:50;7265:7;7256:6;7245:9;7241:22;7223:50;:::i;:::-;7213:60;;7168:115;6822:468;;;;;:::o;7296:323::-;7352:6;7401:2;7389:9;7380:7;7376:23;7372:32;7369:119;;;7407:79;;:::i;:::-;7369:119;7527:1;7552:50;7594:7;7585:6;7574:9;7570:22;7552:50;:::i;:::-;7542:60;;7498:114;7296:323;;;;:::o;7625:765::-;7711:6;7719;7727;7735;7784:3;7772:9;7763:7;7759:23;7755:33;7752:120;;;7791:79;;:::i;:::-;7752:120;7911:1;7936:53;7981:7;7972:6;7961:9;7957:22;7936:53;:::i;:::-;7926:63;;7882:117;8038:2;8064:53;8109:7;8100:6;8089:9;8085:22;8064:53;:::i;:::-;8054:63;;8009:118;8166:2;8192:53;8237:7;8228:6;8217:9;8213:22;8192:53;:::i;:::-;8182:63;;8137:118;8294:2;8320:53;8365:7;8356:6;8345:9;8341:22;8320:53;:::i;:::-;8310:63;;8265:118;7625:765;;;;;;;:::o;8396:329::-;8455:6;8504:2;8492:9;8483:7;8479:23;8475:32;8472:119;;;8510:79;;:::i;:::-;8472:119;8630:1;8655:53;8700:7;8691:6;8680:9;8676:22;8655:53;:::i;:::-;8645:63;;8601:117;8396:329;;;;:::o;8731:474::-;8799:6;8807;8856:2;8844:9;8835:7;8831:23;8827:32;8824:119;;;8862:79;;:::i;:::-;8824:119;8982:1;9007:53;9052:7;9043:6;9032:9;9028:22;9007:53;:::i;:::-;8997:63;;8953:117;9109:2;9135:53;9180:7;9171:6;9160:9;9156:22;9135:53;:::i;:::-;9125:63;;9080:118;8731:474;;;;;:::o;9211:93::-;9247:7;9287:10;9280:5;9276:22;9265:33;;9211:93;;;:::o;9310:120::-;9382:23;9399:5;9382:23;:::i;:::-;9375:5;9372:34;9362:62;;9420:1;9417;9410:12;9362:62;9310:120;:::o;9436:137::-;9481:5;9519:6;9506:20;9497:29;;9535:32;9561:5;9535:32;:::i;:::-;9436:137;;;;:::o;9579:327::-;9637:6;9686:2;9674:9;9665:7;9661:23;9657:32;9654:119;;;9692:79;;:::i;:::-;9654:119;9812:1;9837:52;9881:7;9872:6;9861:9;9857:22;9837:52;:::i;:::-;9827:62;;9783:116;9579:327;;;;:::o;9912:182::-;10052:34;10048:1;10040:6;10036:14;10029:58;9912:182;:::o;10100:366::-;10242:3;10263:67;10327:2;10322:3;10263:67;:::i;:::-;10256:74;;10339:93;10428:3;10339:93;:::i;:::-;10457:2;10452:3;10448:12;10441:19;;10100:366;;;:::o;10472:419::-;10638:4;10676:2;10665:9;10661:18;10653:26;;10725:9;10719:4;10715:20;10711:1;10700:9;10696:17;10689:47;10753:131;10879:4;10753:131;:::i;:::-;10745:139;;10472:419;;;:::o;10897:180::-;10945:77;10942:1;10935:88;11042:4;11039:1;11032:15;11066:4;11063:1;11056:15;11083:320;11127:6;11164:1;11158:4;11154:12;11144:22;;11211:1;11205:4;11201:12;11232:18;11222:81;;11288:4;11280:6;11276:17;11266:27;;11222:81;11350:2;11342:6;11339:14;11319:18;11316:38;11313:84;;;11369:18;;:::i;:::-;11313:84;11134:269;11083:320;;;:::o;11409:227::-;11549:34;11545:1;11537:6;11533:14;11526:58;11618:10;11613:2;11605:6;11601:15;11594:35;11409:227;:::o;11642:366::-;11784:3;11805:67;11869:2;11864:3;11805:67;:::i;:::-;11798:74;;11881:93;11970:3;11881:93;:::i;:::-;11999:2;11994:3;11990:12;11983:19;;11642:366;;;:::o;12014:419::-;12180:4;12218:2;12207:9;12203:18;12195:26;;12267:9;12261:4;12257:20;12253:1;12242:9;12238:17;12231:47;12295:131;12421:4;12295:131;:::i;:::-;12287:139;;12014:419;;;:::o;12439:180::-;12487:77;12484:1;12477:88;12584:4;12581:1;12574:15;12608:4;12605:1;12598:15;12625:305;12665:3;12684:20;12702:1;12684:20;:::i;:::-;12679:25;;12718:20;12736:1;12718:20;:::i;:::-;12713:25;;12872:1;12804:66;12800:74;12797:1;12794:81;12791:107;;;12878:18;;:::i;:::-;12791:107;12922:1;12919;12915:9;12908:16;;12625:305;;;;:::o;12936:244::-;13076:34;13072:1;13064:6;13060:14;13053:58;13145:27;13140:2;13132:6;13128:15;13121:52;12936:244;:::o;13186:366::-;13328:3;13349:67;13413:2;13408:3;13349:67;:::i;:::-;13342:74;;13425:93;13514:3;13425:93;:::i;:::-;13543:2;13538:3;13534:12;13527:19;;13186:366;;;:::o;13558:419::-;13724:4;13762:2;13751:9;13747:18;13739:26;;13811:9;13805:4;13801:20;13797:1;13786:9;13782:17;13775:47;13839:131;13965:4;13839:131;:::i;:::-;13831:139;;13558:419;;;:::o;13983:224::-;14123:34;14119:1;14111:6;14107:14;14100:58;14192:7;14187:2;14179:6;14175:15;14168:32;13983:224;:::o;14213:366::-;14355:3;14376:67;14440:2;14435:3;14376:67;:::i;:::-;14369:74;;14452:93;14541:3;14452:93;:::i;:::-;14570:2;14565:3;14561:12;14554:19;;14213:366;;;:::o;14585:419::-;14751:4;14789:2;14778:9;14774:18;14766:26;;14838:9;14832:4;14828:20;14824:1;14813:9;14809:17;14802:47;14866:131;14992:4;14866:131;:::i;:::-;14858:139;;14585:419;;;:::o;15010:348::-;15050:7;15073:20;15091:1;15073:20;:::i;:::-;15068:25;;15107:20;15125:1;15107:20;:::i;:::-;15102:25;;15295:1;15227:66;15223:74;15220:1;15217:81;15212:1;15205:9;15198:17;15194:105;15191:131;;;15302:18;;:::i;:::-;15191:131;15350:1;15347;15343:9;15332:20;;15010:348;;;;:::o;15364:180::-;15412:77;15409:1;15402:88;15509:4;15506:1;15499:15;15533:4;15530:1;15523:15;15550:185;15590:1;15607:20;15625:1;15607:20;:::i;:::-;15602:25;;15641:20;15659:1;15641:20;:::i;:::-;15636:25;;15680:1;15670:35;;15685:18;;:::i;:::-;15670:35;15727:1;15724;15720:9;15715:14;;15550:185;;;;:::o;15741:240::-;15881:34;15877:1;15869:6;15865:14;15858:58;15950:23;15945:2;15937:6;15933:15;15926:48;15741:240;:::o;15987:366::-;16129:3;16150:67;16214:2;16209:3;16150:67;:::i;:::-;16143:74;;16226:93;16315:3;16226:93;:::i;:::-;16344:2;16339:3;16335:12;16328:19;;15987:366;;;:::o;16359:419::-;16525:4;16563:2;16552:9;16548:18;16540:26;;16612:9;16606:4;16602:20;16598:1;16587:9;16583:17;16576:47;16640:131;16766:4;16640:131;:::i;:::-;16632:139;;16359:419;;;:::o;16784:239::-;16924:34;16920:1;16912:6;16908:14;16901:58;16993:22;16988:2;16980:6;16976:15;16969:47;16784:239;:::o;17029:366::-;17171:3;17192:67;17256:2;17251:3;17192:67;:::i;:::-;17185:74;;17268:93;17357:3;17268:93;:::i;:::-;17386:2;17381:3;17377:12;17370:19;;17029:366;;;:::o;17401:419::-;17567:4;17605:2;17594:9;17590:18;17582:26;;17654:9;17648:4;17644:20;17640:1;17629:9;17625:17;17618:47;17682:131;17808:4;17682:131;:::i;:::-;17674:139;;17401:419;;;:::o;17826:225::-;17966:34;17962:1;17954:6;17950:14;17943:58;18035:8;18030:2;18022:6;18018:15;18011:33;17826:225;:::o;18057:366::-;18199:3;18220:67;18284:2;18279:3;18220:67;:::i;:::-;18213:74;;18296:93;18385:3;18296:93;:::i;:::-;18414:2;18409:3;18405:12;18398:19;;18057:366;;;:::o;18429:419::-;18595:4;18633:2;18622:9;18618:18;18610:26;;18682:9;18676:4;18672:20;18668:1;18657:9;18653:17;18646:47;18710:131;18836:4;18710:131;:::i;:::-;18702:139;;18429:419;;;:::o;18854:223::-;18994:34;18990:1;18982:6;18978:14;18971:58;19063:6;19058:2;19050:6;19046:15;19039:31;18854:223;:::o;19083:366::-;19225:3;19246:67;19310:2;19305:3;19246:67;:::i;:::-;19239:74;;19322:93;19411:3;19322:93;:::i;:::-;19440:2;19435:3;19431:12;19424:19;;19083:366;;;:::o;19455:419::-;19621:4;19659:2;19648:9;19644:18;19636:26;;19708:9;19702:4;19698:20;19694:1;19683:9;19679:17;19672:47;19736:131;19862:4;19736:131;:::i;:::-;19728:139;;19455:419;;;:::o;19880:221::-;20020:34;20016:1;20008:6;20004:14;19997:58;20089:4;20084:2;20076:6;20072:15;20065:29;19880:221;:::o;20107:366::-;20249:3;20270:67;20334:2;20329:3;20270:67;:::i;:::-;20263:74;;20346:93;20435:3;20346:93;:::i;:::-;20464:2;20459:3;20455:12;20448:19;;20107:366;;;:::o;20479:419::-;20645:4;20683:2;20672:9;20668:18;20660:26;;20732:9;20726:4;20722:20;20718:1;20707:9;20703:17;20696:47;20760:131;20886:4;20760:131;:::i;:::-;20752:139;;20479:419;;;:::o;20904:224::-;21044:34;21040:1;21032:6;21028:14;21021:58;21113:7;21108:2;21100:6;21096:15;21089:32;20904:224;:::o;21134:366::-;21276:3;21297:67;21361:2;21356:3;21297:67;:::i;:::-;21290:74;;21373:93;21462:3;21373:93;:::i;:::-;21491:2;21486:3;21482:12;21475:19;;21134:366;;;:::o;21506:419::-;21672:4;21710:2;21699:9;21695:18;21687:26;;21759:9;21753:4;21749:20;21745:1;21734:9;21730:17;21723:47;21787:131;21913:4;21787:131;:::i;:::-;21779:139;;21506:419;;;:::o;21931:222::-;22071:34;22067:1;22059:6;22055:14;22048:58;22140:5;22135:2;22127:6;22123:15;22116:30;21931:222;:::o;22159:366::-;22301:3;22322:67;22386:2;22381:3;22322:67;:::i;:::-;22315:74;;22398:93;22487:3;22398:93;:::i;:::-;22516:2;22511:3;22507:12;22500:19;;22159:366;;;:::o;22531:419::-;22697:4;22735:2;22724:9;22720:18;22712:26;;22784:9;22778:4;22774:20;22770:1;22759:9;22755:17;22748:47;22812:131;22938:4;22812:131;:::i;:::-;22804:139;;22531:419;;;:::o;22956:172::-;23096:24;23092:1;23084:6;23080:14;23073:48;22956:172;:::o;23134:366::-;23276:3;23297:67;23361:2;23356:3;23297:67;:::i;:::-;23290:74;;23373:93;23462:3;23373:93;:::i;:::-;23491:2;23486:3;23482:12;23475:19;;23134:366;;;:::o;23506:419::-;23672:4;23710:2;23699:9;23695:18;23687:26;;23759:9;23753:4;23749:20;23745:1;23734:9;23730:17;23723:47;23787:131;23913:4;23787:131;:::i;:::-;23779:139;;23506:419;;;:::o;23931:240::-;24071:34;24067:1;24059:6;24055:14;24048:58;24140:23;24135:2;24127:6;24123:15;24116:48;23931:240;:::o;24177:366::-;24319:3;24340:67;24404:2;24399:3;24340:67;:::i;:::-;24333:74;;24416:93;24505:3;24416:93;:::i;:::-;24534:2;24529:3;24525:12;24518:19;;24177:366;;;:::o;24549:419::-;24715:4;24753:2;24742:9;24738:18;24730:26;;24802:9;24796:4;24792:20;24788:1;24777:9;24773:17;24766:47;24830:131;24956:4;24830:131;:::i;:::-;24822:139;;24549:419;;;:::o;24974:169::-;25114:21;25110:1;25102:6;25098:14;25091:45;24974:169;:::o;25149:366::-;25291:3;25312:67;25376:2;25371:3;25312:67;:::i;:::-;25305:74;;25388:93;25477:3;25388:93;:::i;:::-;25506:2;25501:3;25497:12;25490:19;;25149:366;;;:::o;25521:419::-;25687:4;25725:2;25714:9;25710:18;25702:26;;25774:9;25768:4;25764:20;25760:1;25749:9;25745:17;25738:47;25802:131;25928:4;25802:131;:::i;:::-;25794:139;;25521:419;;;:::o;25946:241::-;26086:34;26082:1;26074:6;26070:14;26063:58;26155:24;26150:2;26142:6;26138:15;26131:49;25946:241;:::o;26193:366::-;26335:3;26356:67;26420:2;26415:3;26356:67;:::i;:::-;26349:74;;26432:93;26521:3;26432:93;:::i;:::-;26550:2;26545:3;26541:12;26534:19;;26193:366;;;:::o;26565:419::-;26731:4;26769:2;26758:9;26754:18;26746:26;;26818:9;26812:4;26808:20;26804:1;26793:9;26789:17;26782:47;26846:131;26972:4;26846:131;:::i;:::-;26838:139;;26565:419;;;:::o;26990:191::-;27030:4;27050:20;27068:1;27050:20;:::i;:::-;27045:25;;27084:20;27102:1;27084:20;:::i;:::-;27079:25;;27123:1;27120;27117:8;27114:34;;;27128:18;;:::i;:::-;27114:34;27173:1;27170;27166:9;27158:17;;26990:191;;;;:::o;27187:225::-;27327:34;27323:1;27315:6;27311:14;27304:58;27396:8;27391:2;27383:6;27379:15;27372:33;27187:225;:::o;27418:366::-;27560:3;27581:67;27645:2;27640:3;27581:67;:::i;:::-;27574:74;;27657:93;27746:3;27657:93;:::i;:::-;27775:2;27770:3;27766:12;27759:19;;27418:366;;;:::o;27790:419::-;27956:4;27994:2;27983:9;27979:18;27971:26;;28043:9;28037:4;28033:20;28029:1;28018:9;28014:17;28007:47;28071:131;28197:4;28071:131;:::i;:::-;28063:139;;27790:419;;;:::o;28215:442::-;28364:4;28402:2;28391:9;28387:18;28379:26;;28415:71;28483:1;28472:9;28468:17;28459:6;28415:71;:::i;:::-;28496:72;28564:2;28553:9;28549:18;28540:6;28496:72;:::i;:::-;28578;28646:2;28635:9;28631:18;28622:6;28578:72;:::i;:::-;28215:442;;;;;;:::o;28663:147::-;28764:11;28801:3;28786:18;;28663:147;;;;:::o;28816:114::-;;:::o;28936:398::-;29095:3;29116:83;29197:1;29192:3;29116:83;:::i;:::-;29109:90;;29208:93;29297:3;29208:93;:::i;:::-;29326:1;29321:3;29317:11;29310:18;;28936:398;;;:::o;29340:379::-;29524:3;29546:147;29689:3;29546:147;:::i;:::-;29539:154;;29710:3;29703:10;;29340:379;;;:::o;29725:180::-;29773:77;29770:1;29763:88;29870:4;29867:1;29860:15;29894:4;29891:1;29884:15;29911:180;29959:77;29956:1;29949:88;30056:4;30053:1;30046:15;30080:4;30077:1;30070:15;30097:143;30154:5;30185:6;30179:13;30170:22;;30201:33;30228:5;30201:33;:::i;:::-;30097:143;;;;:::o;30246:351::-;30316:6;30365:2;30353:9;30344:7;30340:23;30336:32;30333:119;;;30371:79;;:::i;:::-;30333:119;30491:1;30516:64;30572:7;30563:6;30552:9;30548:22;30516:64;:::i;:::-;30506:74;;30462:128;30246:351;;;;:::o;30603:85::-;30648:7;30677:5;30666:16;;30603:85;;;:::o;30694:158::-;30752:9;30785:61;30803:42;30812:32;30838:5;30812:32;:::i;:::-;30803:42;:::i;:::-;30785:61;:::i;:::-;30772:74;;30694:158;;;:::o;30858:147::-;30953:45;30992:5;30953:45;:::i;:::-;30948:3;30941:58;30858:147;;:::o;31011:114::-;31078:6;31112:5;31106:12;31096:22;;31011:114;;;:::o;31131:184::-;31230:11;31264:6;31259:3;31252:19;31304:4;31299:3;31295:14;31280:29;;31131:184;;;;:::o;31321:132::-;31388:4;31411:3;31403:11;;31441:4;31436:3;31432:14;31424:22;;31321:132;;;:::o;31459:108::-;31536:24;31554:5;31536:24;:::i;:::-;31531:3;31524:37;31459:108;;:::o;31573:179::-;31642:10;31663:46;31705:3;31697:6;31663:46;:::i;:::-;31741:4;31736:3;31732:14;31718:28;;31573:179;;;;:::o;31758:113::-;31828:4;31860;31855:3;31851:14;31843:22;;31758:113;;;:::o;31907:732::-;32026:3;32055:54;32103:5;32055:54;:::i;:::-;32125:86;32204:6;32199:3;32125:86;:::i;:::-;32118:93;;32235:56;32285:5;32235:56;:::i;:::-;32314:7;32345:1;32330:284;32355:6;32352:1;32349:13;32330:284;;;32431:6;32425:13;32458:63;32517:3;32502:13;32458:63;:::i;:::-;32451:70;;32544:60;32597:6;32544:60;:::i;:::-;32534:70;;32390:224;32377:1;32374;32370:9;32365:14;;32330:284;;;32334:14;32630:3;32623:10;;32031:608;;;31907:732;;;;:::o;32645:831::-;32908:4;32946:3;32935:9;32931:19;32923:27;;32960:71;33028:1;33017:9;33013:17;33004:6;32960:71;:::i;:::-;33041:80;33117:2;33106:9;33102:18;33093:6;33041:80;:::i;:::-;33168:9;33162:4;33158:20;33153:2;33142:9;33138:18;33131:48;33196:108;33299:4;33290:6;33196:108;:::i;:::-;33188:116;;33314:72;33382:2;33371:9;33367:18;33358:6;33314:72;:::i;:::-;33396:73;33464:3;33453:9;33449:19;33440:6;33396:73;:::i;:::-;32645:831;;;;;;;;:::o;33482:807::-;33731:4;33769:3;33758:9;33754:19;33746:27;;33783:71;33851:1;33840:9;33836:17;33827:6;33783:71;:::i;:::-;33864:72;33932:2;33921:9;33917:18;33908:6;33864:72;:::i;:::-;33946:80;34022:2;34011:9;34007:18;33998:6;33946:80;:::i;:::-;34036;34112:2;34101:9;34097:18;34088:6;34036:80;:::i;:::-;34126:73;34194:3;34183:9;34179:19;34170:6;34126:73;:::i;:::-;34209;34277:3;34266:9;34262:19;34253:6;34209:73;:::i;:::-;33482:807;;;;;;;;;:::o;34295:143::-;34352:5;34383:6;34377:13;34368:22;;34399:33;34426:5;34399:33;:::i;:::-;34295:143;;;;:::o;34444:663::-;34532:6;34540;34548;34597:2;34585:9;34576:7;34572:23;34568:32;34565:119;;;34603:79;;:::i;:::-;34565:119;34723:1;34748:64;34804:7;34795:6;34784:9;34780:22;34748:64;:::i;:::-;34738:74;;34694:128;34861:2;34887:64;34943:7;34934:6;34923:9;34919:22;34887:64;:::i;:::-;34877:74;;34832:129;35000:2;35026:64;35082:7;35073:6;35062:9;35058:22;35026:64;:::i;:::-;35016:74;;34971:129;34444:663;;;;;:::o

Swarm Source

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