ETH Price: $3,053.12 (+1.44%)
Gas: 3 Gwei

Token

412 (412)
 

Overview

Max Total Supply

1,000,000,000 412

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14,509,304.335937218931387551 412

Value
$0.00
0xaabea6705eea315f788aac9df05ba46ca9a9071c
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:
fourhundredandtwelve

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-01-02
*/

// SPDX-License-Identifier: MIT
// Telegram : https://t.me/lxh412

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 {}
}

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

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

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

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

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

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

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

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

interface 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 fourhundredandtwelve is ERC20, Ownable {
    using SafeMath for uint256;

    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 _isExcludedMaxTransactionAmount;

    // 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("412", "412") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

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

        uint256 _buyLiquidityFee = 0;
        uint256 _buyMarketingFee = 25;

        uint256 _sellLiquidityFee = 0;
        uint256 _sellMarketingFee = 25;

        uint256 totalSupply = 1 * 1e9 * 1e18;

        maxTransactionAmount = 20 * 1e6 * 1e18; 
        maxWallet = 20 * 1e6 * 1e18; 
        swapTokensAtAmount = (totalSupply * 10) / 10000; 

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

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

        devWallet = address(0x3B09A7B9902d93A60354f4f2d1B58B7F9E1F59c4); 

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

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    // once enabled, can never be turned off
    function enableTrading() 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;
    } 

    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)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[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] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[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.mul(sellTotalFees).div(100);
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;                
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(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 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 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.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
	
        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(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":"_isExcludedMaxTransactionAmount","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":[],"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":"enableTrading","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":[],"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"}]

60c06040526001600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055506000600a60026101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600381526020017f34313200000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f34313200000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000a3f565b5080600490805190602001906200010092919062000a3f565b5050506200012362000117620004ff60201b60201c565b6200050760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506200014f816001620005cd60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000b59565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000283919062000b59565b6040518363ffffffff1660e01b8152600401620002a292919062000b9c565b6020604051808303816000875af1158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000b59565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033060a0516001620005cd60201b60201c565b6200034560a0516001620006b760201b60201c565b600080601990506000806019905060006b033b2e3c9fd0803ce800000090506a108b2a2c280290940000006007819055506a108b2a2c28029094000000600981905550612710600a826200039a919062000c02565b620003a6919062000c92565b60088190555084600c8190555083600d81905550600d54600c54620003cc919062000cca565b600b8190555082600f8190555081601081905550601054600f54620003f2919062000cca565b600e81905550733b09a7b9902d93a60354f4f2d1b58b7f9e1f59c4600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200046f620004616200075860201b60201c565b60016200078260201b60201c565b620004823060016200078260201b60201c565b6200049761dead60016200078260201b60201c565b620004b9620004ab6200075860201b60201c565b6001620005cd60201b60201c565b620004cc306001620005cd60201b60201c565b620004e161dead6001620005cd60201b60201c565b620004f33382620008bc60201b60201c565b50505050505062000ee9565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005dd620004ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006036200075860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200065c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006539062000d88565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000792620004ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007b86200075860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000811576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008089062000d88565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620008b0919062000dc7565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200092f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009269062000e34565b60405180910390fd5b620009436000838362000a3560201b60201c565b806002600082825462000957919062000cca565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620009ae919062000cca565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a15919062000e67565b60405180910390a362000a316000838362000a3a60201b60201c565b5050565b505050565b505050565b82805462000a4d9062000eb3565b90600052602060002090601f01602090048101928262000a71576000855562000abd565b82601f1062000a8c57805160ff191683800117855562000abd565b8280016001018555821562000abd579182015b8281111562000abc57825182559160200191906001019062000a9f565b5b50905062000acc919062000ad0565b5090565b5b8082111562000aeb57600081600090555060010162000ad1565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b218262000af4565b9050919050565b62000b338162000b14565b811462000b3f57600080fd5b50565b60008151905062000b538162000b28565b92915050565b60006020828403121562000b725762000b7162000aef565b5b600062000b828482850162000b42565b91505092915050565b62000b968162000b14565b82525050565b600060408201905062000bb3600083018562000b8b565b62000bc2602083018462000b8b565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c0f8262000bc9565b915062000c1c8362000bc9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c585762000c5762000bd3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c9f8262000bc9565b915062000cac8362000bc9565b92508262000cbf5762000cbe62000c63565b5b828204905092915050565b600062000cd78262000bc9565b915062000ce48362000bc9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d1c5762000d1b62000bd3565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d7060208362000d27565b915062000d7d8262000d38565b602082019050919050565b6000602082019050818103600083015262000da38162000d61565b9050919050565b60008115159050919050565b62000dc18162000daa565b82525050565b600060208201905062000dde600083018462000db6565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e1c601f8362000d27565b915062000e298262000de4565b602082019050919050565b6000602082019050818103600083015262000e4f8162000e0d565b9050919050565b62000e618162000bc9565b82525050565b600060208201905062000e7e600083018462000e56565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ecc57607f821691505b6020821081141562000ee35762000ee262000e84565b5b50919050565b60805160a05161418262000f3960003960008181610cba015261125e015260008181610ad301528181612c3b01528181612d1c01528181612d4301528181612ddf0152612e0601526141826000f3fe6080604052600436106102555760003560e01c80638da5cb5b11610139578063c0246668116100b6578063dd62ed3e1161007a578063dd62ed3e146108ef578063e2f456051461092c578063f11a24d314610957578063f2fde38b14610982578063f6374342146109ab578063f8b45b05146109d65761025c565b8063c02466681461080a578063c6616ba114610833578063c8c8ebe41461085c578063d257b34f14610887578063d85ba063146108c45761025c565b80639a7a23d6116100fd5780639a7a23d6146106ff578063a457c2d714610728578063a9059cbb14610765578063b62496f5146107a2578063bbc0c742146107df5761025c565b80638da5cb5b1461062a5780638ea5220f146106555780639213691314610680578063924de9b7146106ab57806395d89b41146106d45761025c565b806349bd5a5e116101d257806370a082311161019657806370a0823114610540578063715018a61461057d578063751039fc146105945780637571336a146105bf5780637bce5a04146105e85780638a8c523c146106135761025c565b806349bd5a5e146104575780634a62bb65146104825780634fbee193146104ad5780636a486a8e146104ea5780636ddd1713146105155761025c565b80631a8145bb116102195780631a8145bb1461035c5780631f3fed8f1461038757806323b872dd146103b2578063313ce567146103ef578063395093511461041a5761025c565b806306fdde0314610261578063095ea7b31461028c57806310d5de53146102c95780631694505e1461030657806318160ddd146103315761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610a01565b6040516102839190612f6e565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190613029565b610a93565b6040516102c09190613084565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb919061309f565b610ab1565b6040516102fd9190613084565b60405180910390f35b34801561031257600080fd5b5061031b610ad1565b604051610328919061312b565b60405180910390f35b34801561033d57600080fd5b50610346610af5565b6040516103539190613155565b60405180910390f35b34801561036857600080fd5b50610371610aff565b60405161037e9190613155565b60405180910390f35b34801561039357600080fd5b5061039c610b05565b6040516103a99190613155565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190613170565b610b0b565b6040516103e69190613084565b60405180910390f35b3480156103fb57600080fd5b50610404610c03565b60405161041191906131df565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c9190613029565b610c0c565b60405161044e9190613084565b60405180910390f35b34801561046357600080fd5b5061046c610cb8565b6040516104799190613209565b60405180910390f35b34801561048e57600080fd5b50610497610cdc565b6040516104a49190613084565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf919061309f565b610cef565b6040516104e19190613084565b60405180910390f35b3480156104f657600080fd5b506104ff610d45565b60405161050c9190613155565b60405180910390f35b34801561052157600080fd5b5061052a610d4b565b6040516105379190613084565b60405180910390f35b34801561054c57600080fd5b506105676004803603810190610562919061309f565b610d5e565b6040516105749190613155565b60405180910390f35b34801561058957600080fd5b50610592610da6565b005b3480156105a057600080fd5b506105a9610e2e565b6040516105b69190613084565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e19190613250565b610ece565b005b3480156105f457600080fd5b506105fd610fa5565b60405161060a9190613155565b60405180910390f35b34801561061f57600080fd5b50610628610fab565b005b34801561063657600080fd5b5061063f61105f565b60405161064c9190613209565b60405180910390f35b34801561066157600080fd5b5061066a611089565b6040516106779190613209565b60405180910390f35b34801561068c57600080fd5b506106956110af565b6040516106a29190613155565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd9190613290565b6110b5565b005b3480156106e057600080fd5b506106e961114e565b6040516106f69190612f6e565b60405180910390f35b34801561070b57600080fd5b5061072660048036038101906107219190613250565b6111e0565b005b34801561073457600080fd5b5061074f600480360381019061074a9190613029565b6112f9565b60405161075c9190613084565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190613029565b6113e4565b6040516107999190613084565b60405180910390f35b3480156107ae57600080fd5b506107c960048036038101906107c4919061309f565b611402565b6040516107d69190613084565b60405180910390f35b3480156107eb57600080fd5b506107f4611422565b6040516108019190613084565b60405180910390f35b34801561081657600080fd5b50610831600480360381019061082c9190613250565b611435565b005b34801561083f57600080fd5b5061085a600480360381019061085591906132bd565b61155a565b005b34801561086857600080fd5b50610871611624565b60405161087e9190613155565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613324565b61162a565b6040516108bb9190613084565b60405180910390f35b3480156108d057600080fd5b506108d961177f565b6040516108e69190613155565b60405180910390f35b3480156108fb57600080fd5b5061091660048036038101906109119190613351565b611785565b6040516109239190613155565b60405180910390f35b34801561093857600080fd5b5061094161180c565b60405161094e9190613155565b60405180910390f35b34801561096357600080fd5b5061096c611812565b6040516109799190613155565b60405180910390f35b34801561098e57600080fd5b506109a960048036038101906109a4919061309f565b611818565b005b3480156109b757600080fd5b506109c0611910565b6040516109cd9190613155565b60405180910390f35b3480156109e257600080fd5b506109eb611916565b6040516109f89190613155565b60405180910390f35b606060038054610a10906133c0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3c906133c0565b8015610a895780601f10610a5e57610100808354040283529160200191610a89565b820191906000526020600020905b815481529060010190602001808311610a6c57829003601f168201915b5050505050905090565b6000610aa7610aa061191c565b8484611924565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60115481565b60125481565b6000610b18848484611aef565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b6361191c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90613464565b60405180910390fd5b610bf785610bef61191c565b858403611924565b60019150509392505050565b60006012905090565b6000610cae610c1961191c565b848460016000610c2761191c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca991906134b3565b611924565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a60009054906101000a900460ff1681565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e5481565b600a60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dae61191c565b73ffffffffffffffffffffffffffffffffffffffff16610dcc61105f565b73ffffffffffffffffffffffffffffffffffffffff1614610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1990613555565b60405180910390fd5b610e2c600061255b565b565b6000610e3861191c565b73ffffffffffffffffffffffffffffffffffffffff16610e5661105f565b73ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390613555565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610ed661191c565b73ffffffffffffffffffffffffffffffffffffffff16610ef461105f565b73ffffffffffffffffffffffffffffffffffffffff1614610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4190613555565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b610fb361191c565b73ffffffffffffffffffffffffffffffffffffffff16610fd161105f565b73ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90613555565b60405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6110bd61191c565b73ffffffffffffffffffffffffffffffffffffffff166110db61105f565b73ffffffffffffffffffffffffffffffffffffffff1614611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890613555565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b60606004805461115d906133c0565b80601f0160208091040260200160405190810160405280929190818152602001828054611189906133c0565b80156111d65780601f106111ab576101008083540402835291602001916111d6565b820191906000526020600020905b8154815290600101906020018083116111b957829003601f168201915b5050505050905090565b6111e861191c565b73ffffffffffffffffffffffffffffffffffffffff1661120661105f565b73ffffffffffffffffffffffffffffffffffffffff161461125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390613555565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906135e7565b60405180910390fd5b6112f58282612621565b5050565b6000806001600061130861191c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613679565b60405180910390fd5b6113d96113d061191c565b85858403611924565b600191505092915050565b60006113f86113f161191c565b8484611aef565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b61143d61191c565b73ffffffffffffffffffffffffffffffffffffffff1661145b61105f565b73ffffffffffffffffffffffffffffffffffffffff16146114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890613555565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161154e9190613084565b60405180910390a25050565b61156261191c565b73ffffffffffffffffffffffffffffffffffffffff1661158061105f565b73ffffffffffffffffffffffffffffffffffffffff16146115d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cd90613555565b60405180910390fd5b83600c8190555082600d81905550600d54600c546115f491906134b3565b600b8190555081600f8190555080601081905550601054600f5461161891906134b3565b600e8190555050505050565b60075481565b600061163461191c565b73ffffffffffffffffffffffffffffffffffffffff1661165261105f565b73ffffffffffffffffffffffffffffffffffffffff16146116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f90613555565b60405180910390fd5b620186a060016116b6610af5565b6116c09190613699565b6116ca9190613722565b82101561170c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611703906137c5565b60405180910390fd5b6103e86005611719610af5565b6117239190613699565b61172d9190613722565b82111561176f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176690613857565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b600c5481565b61182061191c565b73ffffffffffffffffffffffffffffffffffffffff1661183e61105f565b73ffffffffffffffffffffffffffffffffffffffff1614611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90613555565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb906138e9565b60405180910390fd5b61190d8161255b565b50565b600f5481565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b9061397b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fb90613a0d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ae29190613155565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5690613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc690613b31565b60405180910390fd5b6000811415611be957611be4838360006126c2565b612556565b600a60009054906101000a900460ff16156120e457611c0661105f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c745750611c4461105f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cad5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d005750600560149054906101000a900460ff16155b156120e357600a60019054906101000a900460ff16611dfa57601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dba5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df090613b9d565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e9d5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f4457600754811115611ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ede90613c2f565b60405180910390fd5b600954611ef383610d5e565b82611efe91906134b3565b1115611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3690613c9b565b60405180910390fd5b6120e2565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611fe75750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203657600754811115612031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202890613d2d565b60405180910390fd5b6120e1565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120e05760095461209383610d5e565b8261209e91906134b3565b11156120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d690613c9b565b60405180910390fd5b5b5b5b5b5b60006120ef30610d5e565b9050600060085482101590508080156121145750600a60029054906101000a900460ff165b801561212d5750600560149054906101000a900460ff16155b80156121835750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121d95750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561222f5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612273576001600560146101000a81548160ff021916908315150217905550612257612943565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123295750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561233357600090505b6000811561254657601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561239657506000600e54115b15612430576123c360646123b5600e5488612b5090919063ffffffff16565b612b6690919063ffffffff16565b9050600e54600f54826123d69190613699565b6123e09190613722565b601160008282546123f191906134b3565b92505081905550600e54601054826124099190613699565b6124139190613722565b6012600082825461242491906134b3565b92505081905550612522565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561248b57506000600b54115b15612521576124b860646124aa600b5488612b5090919063ffffffff16565b612b6690919063ffffffff16565b9050600b54600c54826124cb9190613699565b6124d59190613722565b601160008282546124e691906134b3565b92505081905550600b54600d54826124fe9190613699565b6125089190613722565b6012600082825461251991906134b3565b925050819055505b5b6000811115612537576125368730836126c2565b5b80856125439190613d4d565b94505b6125518787876126c2565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272990613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279990613b31565b60405180910390fd5b6127ad838383612b7c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282a90613df3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128c691906134b3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161292a9190613155565b60405180910390a361293d848484612b81565b50505050565b600061294e30610d5e565b9050600060125460115461296291906134b3565b90506000808314806129745750600082145b1561298157505050612b4e565b60146008546129909190613699565b8311156129a95760146008546129a69190613699565b92505b6000600283601154866129bc9190613699565b6129c69190613722565b6129d09190613722565b905060006129e78286612b8690919063ffffffff16565b905060004790506129f782612b9c565b6000612a0c8247612b8690919063ffffffff16565b90506000612a3787612a2960125485612b5090919063ffffffff16565b612b6690919063ffffffff16565b905060008183612a479190613d4d565b905060006011819055506000601281905550600086118015612a695750600081115b15612ab657612a788682612dd9565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601154604051612aad93929190613e13565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612afc90613e7b565b60006040518083038185875af1925050503d8060008114612b39576040519150601f19603f3d011682016040523d82523d6000602084013e612b3e565b606091505b5050809750505050505050505050505b565b60008183612b5e9190613699565b905092915050565b60008183612b749190613722565b905092915050565b505050565b505050565b60008183612b949190613d4d565b905092915050565b6000600267ffffffffffffffff811115612bb957612bb8613e90565b5b604051908082528060200260200182016040528015612be75781602001602082028036833780820191505090505b5090503081600081518110612bff57612bfe613ebf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc89190613f03565b81600181518110612cdc57612cdb613ebf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d41307f000000000000000000000000000000000000000000000000000000000000000084611924565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612da3959493929190614029565b600060405180830381600087803b158015612dbd57600080fd5b505af1158015612dd1573d6000803e3d6000fd5b505050505050565b612e04307f000000000000000000000000000000000000000000000000000000000000000084611924565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e8b96959493929190614083565b60606040518083038185885af1158015612ea9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ece91906140f9565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f0f578082015181840152602081019050612ef4565b83811115612f1e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612f4082612ed5565b612f4a8185612ee0565b9350612f5a818560208601612ef1565b612f6381612f24565b840191505092915050565b60006020820190508181036000830152612f888184612f35565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fc082612f95565b9050919050565b612fd081612fb5565b8114612fdb57600080fd5b50565b600081359050612fed81612fc7565b92915050565b6000819050919050565b61300681612ff3565b811461301157600080fd5b50565b60008135905061302381612ffd565b92915050565b600080604083850312156130405761303f612f90565b5b600061304e85828601612fde565b925050602061305f85828601613014565b9150509250929050565b60008115159050919050565b61307e81613069565b82525050565b60006020820190506130996000830184613075565b92915050565b6000602082840312156130b5576130b4612f90565b5b60006130c384828501612fde565b91505092915050565b6000819050919050565b60006130f16130ec6130e784612f95565b6130cc565b612f95565b9050919050565b6000613103826130d6565b9050919050565b6000613115826130f8565b9050919050565b6131258161310a565b82525050565b6000602082019050613140600083018461311c565b92915050565b61314f81612ff3565b82525050565b600060208201905061316a6000830184613146565b92915050565b60008060006060848603121561318957613188612f90565b5b600061319786828701612fde565b93505060206131a886828701612fde565b92505060406131b986828701613014565b9150509250925092565b600060ff82169050919050565b6131d9816131c3565b82525050565b60006020820190506131f460008301846131d0565b92915050565b61320381612fb5565b82525050565b600060208201905061321e60008301846131fa565b92915050565b61322d81613069565b811461323857600080fd5b50565b60008135905061324a81613224565b92915050565b6000806040838503121561326757613266612f90565b5b600061327585828601612fde565b92505060206132868582860161323b565b9150509250929050565b6000602082840312156132a6576132a5612f90565b5b60006132b48482850161323b565b91505092915050565b600080600080608085870312156132d7576132d6612f90565b5b60006132e587828801613014565b94505060206132f687828801613014565b935050604061330787828801613014565b925050606061331887828801613014565b91505092959194509250565b60006020828403121561333a57613339612f90565b5b600061334884828501613014565b91505092915050565b6000806040838503121561336857613367612f90565b5b600061337685828601612fde565b925050602061338785828601612fde565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133d857607f821691505b602082108114156133ec576133eb613391565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061344e602883612ee0565b9150613459826133f2565b604082019050919050565b6000602082019050818103600083015261347d81613441565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134be82612ff3565b91506134c983612ff3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134fe576134fd613484565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061353f602083612ee0565b915061354a82613509565b602082019050919050565b6000602082019050818103600083015261356e81613532565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006135d1603983612ee0565b91506135dc82613575565b604082019050919050565b60006020820190508181036000830152613600816135c4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613663602583612ee0565b915061366e82613607565b604082019050919050565b6000602082019050818103600083015261369281613656565b9050919050565b60006136a482612ff3565b91506136af83612ff3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136e8576136e7613484565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061372d82612ff3565b915061373883612ff3565b925082613748576137476136f3565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006137af603583612ee0565b91506137ba82613753565b604082019050919050565b600060208201905081810360008301526137de816137a2565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613841603483612ee0565b915061384c826137e5565b604082019050919050565b6000602082019050818103600083015261387081613834565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138d3602683612ee0565b91506138de82613877565b604082019050919050565b60006020820190508181036000830152613902816138c6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613965602483612ee0565b915061397082613909565b604082019050919050565b6000602082019050818103600083015261399481613958565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139f7602283612ee0565b9150613a028261399b565b604082019050919050565b60006020820190508181036000830152613a26816139ea565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a89602583612ee0565b9150613a9482613a2d565b604082019050919050565b60006020820190508181036000830152613ab881613a7c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b1b602383612ee0565b9150613b2682613abf565b604082019050919050565b60006020820190508181036000830152613b4a81613b0e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613b87601683612ee0565b9150613b9282613b51565b602082019050919050565b60006020820190508181036000830152613bb681613b7a565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613c19603583612ee0565b9150613c2482613bbd565b604082019050919050565b60006020820190508181036000830152613c4881613c0c565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613c85601383612ee0565b9150613c9082613c4f565b602082019050919050565b60006020820190508181036000830152613cb481613c78565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d17603683612ee0565b9150613d2282613cbb565b604082019050919050565b60006020820190508181036000830152613d4681613d0a565b9050919050565b6000613d5882612ff3565b9150613d6383612ff3565b925082821015613d7657613d75613484565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ddd602683612ee0565b9150613de882613d81565b604082019050919050565b60006020820190508181036000830152613e0c81613dd0565b9050919050565b6000606082019050613e286000830186613146565b613e356020830185613146565b613e426040830184613146565b949350505050565b600081905092915050565b50565b6000613e65600083613e4a565b9150613e7082613e55565b600082019050919050565b6000613e8682613e58565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613efd81612fc7565b92915050565b600060208284031215613f1957613f18612f90565b5b6000613f2784828501613eee565b91505092915050565b6000819050919050565b6000613f55613f50613f4b84613f30565b6130cc565b612ff3565b9050919050565b613f6581613f3a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613fa081612fb5565b82525050565b6000613fb28383613f97565b60208301905092915050565b6000602082019050919050565b6000613fd682613f6b565b613fe08185613f76565b9350613feb83613f87565b8060005b8381101561401c5781516140038882613fa6565b975061400e83613fbe565b925050600181019050613fef565b5085935050505092915050565b600060a08201905061403e6000830188613146565b61404b6020830187613f5c565b818103604083015261405d8186613fcb565b905061406c60608301856131fa565b6140796080830184613146565b9695505050505050565b600060c08201905061409860008301896131fa565b6140a56020830188613146565b6140b26040830187613f5c565b6140bf6060830186613f5c565b6140cc60808301856131fa565b6140d960a0830184613146565b979650505050505050565b6000815190506140f381612ffd565b92915050565b60008060006060848603121561411257614111612f90565b5b6000614120868287016140e4565b9350506020614131868287016140e4565b9250506040614142868287016140e4565b915050925092509256fea2646970667358221220527a94b02437981ca26e9f4a85808853d273c9c86b34bbef2172b8bd15a65a5264736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102555760003560e01c80638da5cb5b11610139578063c0246668116100b6578063dd62ed3e1161007a578063dd62ed3e146108ef578063e2f456051461092c578063f11a24d314610957578063f2fde38b14610982578063f6374342146109ab578063f8b45b05146109d65761025c565b8063c02466681461080a578063c6616ba114610833578063c8c8ebe41461085c578063d257b34f14610887578063d85ba063146108c45761025c565b80639a7a23d6116100fd5780639a7a23d6146106ff578063a457c2d714610728578063a9059cbb14610765578063b62496f5146107a2578063bbc0c742146107df5761025c565b80638da5cb5b1461062a5780638ea5220f146106555780639213691314610680578063924de9b7146106ab57806395d89b41146106d45761025c565b806349bd5a5e116101d257806370a082311161019657806370a0823114610540578063715018a61461057d578063751039fc146105945780637571336a146105bf5780637bce5a04146105e85780638a8c523c146106135761025c565b806349bd5a5e146104575780634a62bb65146104825780634fbee193146104ad5780636a486a8e146104ea5780636ddd1713146105155761025c565b80631a8145bb116102195780631a8145bb1461035c5780631f3fed8f1461038757806323b872dd146103b2578063313ce567146103ef578063395093511461041a5761025c565b806306fdde0314610261578063095ea7b31461028c57806310d5de53146102c95780631694505e1461030657806318160ddd146103315761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610a01565b6040516102839190612f6e565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190613029565b610a93565b6040516102c09190613084565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb919061309f565b610ab1565b6040516102fd9190613084565b60405180910390f35b34801561031257600080fd5b5061031b610ad1565b604051610328919061312b565b60405180910390f35b34801561033d57600080fd5b50610346610af5565b6040516103539190613155565b60405180910390f35b34801561036857600080fd5b50610371610aff565b60405161037e9190613155565b60405180910390f35b34801561039357600080fd5b5061039c610b05565b6040516103a99190613155565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190613170565b610b0b565b6040516103e69190613084565b60405180910390f35b3480156103fb57600080fd5b50610404610c03565b60405161041191906131df565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c9190613029565b610c0c565b60405161044e9190613084565b60405180910390f35b34801561046357600080fd5b5061046c610cb8565b6040516104799190613209565b60405180910390f35b34801561048e57600080fd5b50610497610cdc565b6040516104a49190613084565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf919061309f565b610cef565b6040516104e19190613084565b60405180910390f35b3480156104f657600080fd5b506104ff610d45565b60405161050c9190613155565b60405180910390f35b34801561052157600080fd5b5061052a610d4b565b6040516105379190613084565b60405180910390f35b34801561054c57600080fd5b506105676004803603810190610562919061309f565b610d5e565b6040516105749190613155565b60405180910390f35b34801561058957600080fd5b50610592610da6565b005b3480156105a057600080fd5b506105a9610e2e565b6040516105b69190613084565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e19190613250565b610ece565b005b3480156105f457600080fd5b506105fd610fa5565b60405161060a9190613155565b60405180910390f35b34801561061f57600080fd5b50610628610fab565b005b34801561063657600080fd5b5061063f61105f565b60405161064c9190613209565b60405180910390f35b34801561066157600080fd5b5061066a611089565b6040516106779190613209565b60405180910390f35b34801561068c57600080fd5b506106956110af565b6040516106a29190613155565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd9190613290565b6110b5565b005b3480156106e057600080fd5b506106e961114e565b6040516106f69190612f6e565b60405180910390f35b34801561070b57600080fd5b5061072660048036038101906107219190613250565b6111e0565b005b34801561073457600080fd5b5061074f600480360381019061074a9190613029565b6112f9565b60405161075c9190613084565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190613029565b6113e4565b6040516107999190613084565b60405180910390f35b3480156107ae57600080fd5b506107c960048036038101906107c4919061309f565b611402565b6040516107d69190613084565b60405180910390f35b3480156107eb57600080fd5b506107f4611422565b6040516108019190613084565b60405180910390f35b34801561081657600080fd5b50610831600480360381019061082c9190613250565b611435565b005b34801561083f57600080fd5b5061085a600480360381019061085591906132bd565b61155a565b005b34801561086857600080fd5b50610871611624565b60405161087e9190613155565b60405180910390f35b34801561089357600080fd5b506108ae60048036038101906108a99190613324565b61162a565b6040516108bb9190613084565b60405180910390f35b3480156108d057600080fd5b506108d961177f565b6040516108e69190613155565b60405180910390f35b3480156108fb57600080fd5b5061091660048036038101906109119190613351565b611785565b6040516109239190613155565b60405180910390f35b34801561093857600080fd5b5061094161180c565b60405161094e9190613155565b60405180910390f35b34801561096357600080fd5b5061096c611812565b6040516109799190613155565b60405180910390f35b34801561098e57600080fd5b506109a960048036038101906109a4919061309f565b611818565b005b3480156109b757600080fd5b506109c0611910565b6040516109cd9190613155565b60405180910390f35b3480156109e257600080fd5b506109eb611916565b6040516109f89190613155565b60405180910390f35b606060038054610a10906133c0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3c906133c0565b8015610a895780601f10610a5e57610100808354040283529160200191610a89565b820191906000526020600020905b815481529060010190602001808311610a6c57829003601f168201915b5050505050905090565b6000610aa7610aa061191c565b8484611924565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60115481565b60125481565b6000610b18848484611aef565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b6361191c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90613464565b60405180910390fd5b610bf785610bef61191c565b858403611924565b60019150509392505050565b60006012905090565b6000610cae610c1961191c565b848460016000610c2761191c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca991906134b3565b611924565b6001905092915050565b7f000000000000000000000000e3a63518371f7d72031196220d92c8381465816081565b600a60009054906101000a900460ff1681565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e5481565b600a60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dae61191c565b73ffffffffffffffffffffffffffffffffffffffff16610dcc61105f565b73ffffffffffffffffffffffffffffffffffffffff1614610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1990613555565b60405180910390fd5b610e2c600061255b565b565b6000610e3861191c565b73ffffffffffffffffffffffffffffffffffffffff16610e5661105f565b73ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390613555565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610ed661191c565b73ffffffffffffffffffffffffffffffffffffffff16610ef461105f565b73ffffffffffffffffffffffffffffffffffffffff1614610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4190613555565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b610fb361191c565b73ffffffffffffffffffffffffffffffffffffffff16610fd161105f565b73ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90613555565b60405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6110bd61191c565b73ffffffffffffffffffffffffffffffffffffffff166110db61105f565b73ffffffffffffffffffffffffffffffffffffffff1614611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890613555565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b60606004805461115d906133c0565b80601f0160208091040260200160405190810160405280929190818152602001828054611189906133c0565b80156111d65780601f106111ab576101008083540402835291602001916111d6565b820191906000526020600020905b8154815290600101906020018083116111b957829003601f168201915b5050505050905090565b6111e861191c565b73ffffffffffffffffffffffffffffffffffffffff1661120661105f565b73ffffffffffffffffffffffffffffffffffffffff161461125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390613555565b60405180910390fd5b7f000000000000000000000000e3a63518371f7d72031196220d92c8381465816073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906135e7565b60405180910390fd5b6112f58282612621565b5050565b6000806001600061130861191c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90613679565b60405180910390fd5b6113d96113d061191c565b85858403611924565b600191505092915050565b60006113f86113f161191c565b8484611aef565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b61143d61191c565b73ffffffffffffffffffffffffffffffffffffffff1661145b61105f565b73ffffffffffffffffffffffffffffffffffffffff16146114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890613555565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161154e9190613084565b60405180910390a25050565b61156261191c565b73ffffffffffffffffffffffffffffffffffffffff1661158061105f565b73ffffffffffffffffffffffffffffffffffffffff16146115d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cd90613555565b60405180910390fd5b83600c8190555082600d81905550600d54600c546115f491906134b3565b600b8190555081600f8190555080601081905550601054600f5461161891906134b3565b600e8190555050505050565b60075481565b600061163461191c565b73ffffffffffffffffffffffffffffffffffffffff1661165261105f565b73ffffffffffffffffffffffffffffffffffffffff16146116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f90613555565b60405180910390fd5b620186a060016116b6610af5565b6116c09190613699565b6116ca9190613722565b82101561170c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611703906137c5565b60405180910390fd5b6103e86005611719610af5565b6117239190613699565b61172d9190613722565b82111561176f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176690613857565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b600c5481565b61182061191c565b73ffffffffffffffffffffffffffffffffffffffff1661183e61105f565b73ffffffffffffffffffffffffffffffffffffffff1614611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90613555565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fb906138e9565b60405180910390fd5b61190d8161255b565b50565b600f5481565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b9061397b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fb90613a0d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ae29190613155565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5690613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc690613b31565b60405180910390fd5b6000811415611be957611be4838360006126c2565b612556565b600a60009054906101000a900460ff16156120e457611c0661105f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c745750611c4461105f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cad5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d005750600560149054906101000a900460ff16155b156120e357600a60019054906101000a900460ff16611dfa57601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dba5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df090613b9d565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e9d5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f4457600754811115611ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ede90613c2f565b60405180910390fd5b600954611ef383610d5e565b82611efe91906134b3565b1115611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3690613c9b565b60405180910390fd5b6120e2565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611fe75750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203657600754811115612031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202890613d2d565b60405180910390fd5b6120e1565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120e05760095461209383610d5e565b8261209e91906134b3565b11156120df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d690613c9b565b60405180910390fd5b5b5b5b5b5b60006120ef30610d5e565b9050600060085482101590508080156121145750600a60029054906101000a900460ff165b801561212d5750600560149054906101000a900460ff16155b80156121835750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121d95750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561222f5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612273576001600560146101000a81548160ff021916908315150217905550612257612943565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123295750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561233357600090505b6000811561254657601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561239657506000600e54115b15612430576123c360646123b5600e5488612b5090919063ffffffff16565b612b6690919063ffffffff16565b9050600e54600f54826123d69190613699565b6123e09190613722565b601160008282546123f191906134b3565b92505081905550600e54601054826124099190613699565b6124139190613722565b6012600082825461242491906134b3565b92505081905550612522565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561248b57506000600b54115b15612521576124b860646124aa600b5488612b5090919063ffffffff16565b612b6690919063ffffffff16565b9050600b54600c54826124cb9190613699565b6124d59190613722565b601160008282546124e691906134b3565b92505081905550600b54600d54826124fe9190613699565b6125089190613722565b6012600082825461251991906134b3565b925050819055505b5b6000811115612537576125368730836126c2565b5b80856125439190613d4d565b94505b6125518787876126c2565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272990613a9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279990613b31565b60405180910390fd5b6127ad838383612b7c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282a90613df3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128c691906134b3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161292a9190613155565b60405180910390a361293d848484612b81565b50505050565b600061294e30610d5e565b9050600060125460115461296291906134b3565b90506000808314806129745750600082145b1561298157505050612b4e565b60146008546129909190613699565b8311156129a95760146008546129a69190613699565b92505b6000600283601154866129bc9190613699565b6129c69190613722565b6129d09190613722565b905060006129e78286612b8690919063ffffffff16565b905060004790506129f782612b9c565b6000612a0c8247612b8690919063ffffffff16565b90506000612a3787612a2960125485612b5090919063ffffffff16565b612b6690919063ffffffff16565b905060008183612a479190613d4d565b905060006011819055506000601281905550600086118015612a695750600081115b15612ab657612a788682612dd9565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601154604051612aad93929190613e13565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612afc90613e7b565b60006040518083038185875af1925050503d8060008114612b39576040519150601f19603f3d011682016040523d82523d6000602084013e612b3e565b606091505b5050809750505050505050505050505b565b60008183612b5e9190613699565b905092915050565b60008183612b749190613722565b905092915050565b505050565b505050565b60008183612b949190613d4d565b905092915050565b6000600267ffffffffffffffff811115612bb957612bb8613e90565b5b604051908082528060200260200182016040528015612be75781602001602082028036833780820191505090505b5090503081600081518110612bff57612bfe613ebf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc89190613f03565b81600181518110612cdc57612cdb613ebf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d41307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611924565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612da3959493929190614029565b600060405180830381600087803b158015612dbd57600080fd5b505af1158015612dd1573d6000803e3d6000fd5b505050505050565b612e04307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611924565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612e8b96959493929190614083565b60606040518083038185885af1158015612ea9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ece91906140f9565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f0f578082015181840152602081019050612ef4565b83811115612f1e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612f4082612ed5565b612f4a8185612ee0565b9350612f5a818560208601612ef1565b612f6381612f24565b840191505092915050565b60006020820190508181036000830152612f888184612f35565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fc082612f95565b9050919050565b612fd081612fb5565b8114612fdb57600080fd5b50565b600081359050612fed81612fc7565b92915050565b6000819050919050565b61300681612ff3565b811461301157600080fd5b50565b60008135905061302381612ffd565b92915050565b600080604083850312156130405761303f612f90565b5b600061304e85828601612fde565b925050602061305f85828601613014565b9150509250929050565b60008115159050919050565b61307e81613069565b82525050565b60006020820190506130996000830184613075565b92915050565b6000602082840312156130b5576130b4612f90565b5b60006130c384828501612fde565b91505092915050565b6000819050919050565b60006130f16130ec6130e784612f95565b6130cc565b612f95565b9050919050565b6000613103826130d6565b9050919050565b6000613115826130f8565b9050919050565b6131258161310a565b82525050565b6000602082019050613140600083018461311c565b92915050565b61314f81612ff3565b82525050565b600060208201905061316a6000830184613146565b92915050565b60008060006060848603121561318957613188612f90565b5b600061319786828701612fde565b93505060206131a886828701612fde565b92505060406131b986828701613014565b9150509250925092565b600060ff82169050919050565b6131d9816131c3565b82525050565b60006020820190506131f460008301846131d0565b92915050565b61320381612fb5565b82525050565b600060208201905061321e60008301846131fa565b92915050565b61322d81613069565b811461323857600080fd5b50565b60008135905061324a81613224565b92915050565b6000806040838503121561326757613266612f90565b5b600061327585828601612fde565b92505060206132868582860161323b565b9150509250929050565b6000602082840312156132a6576132a5612f90565b5b60006132b48482850161323b565b91505092915050565b600080600080608085870312156132d7576132d6612f90565b5b60006132e587828801613014565b94505060206132f687828801613014565b935050604061330787828801613014565b925050606061331887828801613014565b91505092959194509250565b60006020828403121561333a57613339612f90565b5b600061334884828501613014565b91505092915050565b6000806040838503121561336857613367612f90565b5b600061337685828601612fde565b925050602061338785828601612fde565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806133d857607f821691505b602082108114156133ec576133eb613391565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061344e602883612ee0565b9150613459826133f2565b604082019050919050565b6000602082019050818103600083015261347d81613441565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134be82612ff3565b91506134c983612ff3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134fe576134fd613484565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061353f602083612ee0565b915061354a82613509565b602082019050919050565b6000602082019050818103600083015261356e81613532565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006135d1603983612ee0565b91506135dc82613575565b604082019050919050565b60006020820190508181036000830152613600816135c4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613663602583612ee0565b915061366e82613607565b604082019050919050565b6000602082019050818103600083015261369281613656565b9050919050565b60006136a482612ff3565b91506136af83612ff3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136e8576136e7613484565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061372d82612ff3565b915061373883612ff3565b925082613748576137476136f3565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006137af603583612ee0565b91506137ba82613753565b604082019050919050565b600060208201905081810360008301526137de816137a2565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613841603483612ee0565b915061384c826137e5565b604082019050919050565b6000602082019050818103600083015261387081613834565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138d3602683612ee0565b91506138de82613877565b604082019050919050565b60006020820190508181036000830152613902816138c6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613965602483612ee0565b915061397082613909565b604082019050919050565b6000602082019050818103600083015261399481613958565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139f7602283612ee0565b9150613a028261399b565b604082019050919050565b60006020820190508181036000830152613a26816139ea565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a89602583612ee0565b9150613a9482613a2d565b604082019050919050565b60006020820190508181036000830152613ab881613a7c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b1b602383612ee0565b9150613b2682613abf565b604082019050919050565b60006020820190508181036000830152613b4a81613b0e565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613b87601683612ee0565b9150613b9282613b51565b602082019050919050565b60006020820190508181036000830152613bb681613b7a565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613c19603583612ee0565b9150613c2482613bbd565b604082019050919050565b60006020820190508181036000830152613c4881613c0c565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613c85601383612ee0565b9150613c9082613c4f565b602082019050919050565b60006020820190508181036000830152613cb481613c78565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d17603683612ee0565b9150613d2282613cbb565b604082019050919050565b60006020820190508181036000830152613d4681613d0a565b9050919050565b6000613d5882612ff3565b9150613d6383612ff3565b925082821015613d7657613d75613484565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ddd602683612ee0565b9150613de882613d81565b604082019050919050565b60006020820190508181036000830152613e0c81613dd0565b9050919050565b6000606082019050613e286000830186613146565b613e356020830185613146565b613e426040830184613146565b949350505050565b600081905092915050565b50565b6000613e65600083613e4a565b9150613e7082613e55565b600082019050919050565b6000613e8682613e58565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613efd81612fc7565b92915050565b600060208284031215613f1957613f18612f90565b5b6000613f2784828501613eee565b91505092915050565b6000819050919050565b6000613f55613f50613f4b84613f30565b6130cc565b612ff3565b9050919050565b613f6581613f3a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613fa081612fb5565b82525050565b6000613fb28383613f97565b60208301905092915050565b6000602082019050919050565b6000613fd682613f6b565b613fe08185613f76565b9350613feb83613f87565b8060005b8381101561401c5781516140038882613fa6565b975061400e83613fbe565b925050600181019050613fef565b5085935050505092915050565b600060a08201905061403e6000830188613146565b61404b6020830187613f5c565b818103604083015261405d8186613fcb565b905061406c60608301856131fa565b6140796080830184613146565b9695505050505050565b600060c08201905061409860008301896131fa565b6140a56020830188613146565b6140b26040830187613f5c565b6140bf6060830186613f5c565b6140cc60808301856131fa565b6140d960a0830184613146565b979650505050505050565b6000815190506140f381612ffd565b92915050565b60008060006060848603121561411257614111612f90565b5b6000614120868287016140e4565b9350506020614131868287016140e4565b9250506040614142868287016140e4565b915050925092509256fea2646970667358221220527a94b02437981ca26e9f4a85808853d273c9c86b34bbef2172b8bd15a65a5264736f6c634300080a0033

Deployed Bytecode Sourcemap

9481:12237:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2659:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3573:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10388:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9571:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2980:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10194:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10234;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3750:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2879:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4250:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9629:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9854:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15150:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10084:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9934:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3096:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;807:103;;;;;;;;;;;;;:::i;:::-;;13384:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14081:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10045:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12795:112;;;;;;;;;;;;;:::i;:::-;;584:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9706:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10157:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14344:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2767:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14642:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4473:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3231:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10609:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9894:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14452:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12915:460;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9739:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13575:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9974:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3414:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9781:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10008:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;918:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10119:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9821:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2659:100;2713:13;2746:5;2739:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2659:100;:::o;3573:169::-;3656:4;3673:39;3682:12;:10;:12::i;:::-;3696:7;3705:6;3673:8;:39::i;:::-;3730:4;3723:11;;3573:169;;;;:::o;10388:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;9571:51::-;;;:::o;2980:108::-;3041:7;3068:12;;3061:19;;2980:108;:::o;10194:33::-;;;;:::o;10234:::-;;;;:::o;3750:492::-;3890:4;3907:36;3917:6;3925:9;3936:6;3907:9;:36::i;:::-;3956:24;3983:11;:19;3995:6;3983:19;;;;;;;;;;;;;;;:33;4003:12;:10;:12::i;:::-;3983:33;;;;;;;;;;;;;;;;3956:60;;4055:6;4035:16;:26;;4027:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4142:57;4151:6;4159:12;:10;:12::i;:::-;4192:6;4173:16;:25;4142:8;:57::i;:::-;4230:4;4223:11;;;3750:492;;;;;:::o;2879:93::-;2937:5;2962:2;2955:9;;2879:93;:::o;4250:215::-;4338:4;4355:80;4364:12;:10;:12::i;:::-;4378:7;4424:10;4387:11;:25;4399:12;:10;:12::i;:::-;4387:25;;;;;;;;;;;;;;;:34;4413:7;4387:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4355:8;:80::i;:::-;4453:4;4446:11;;4250:215;;;;:::o;9629:38::-;;;:::o;9854:33::-;;;;;;;;;;;;;:::o;15150:126::-;15216:4;15240:19;:28;15260:7;15240:28;;;;;;;;;;;;;;;;;;;;;;;;;15233:35;;15150:126;;;:::o;10084:28::-;;;;:::o;9934:31::-;;;;;;;;;;;;;:::o;3096:127::-;3170:7;3197:9;:18;3207:7;3197:18;;;;;;;;;;;;;;;;3190:25;;3096:127;;;:::o;807:103::-;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;872:30:::1;899:1;872:18;:30::i;:::-;807:103::o:0;13384:121::-;13436:4;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13470:5:::1;13453:14;;:22;;;;;;;;;;;;;;;;;;13493:4;13486:11;;13384:121:::0;:::o;14081:167::-;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14236:4:::1;14194:31;:39;14226:6;14194:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;14081:167:::0;;:::o;10045:30::-;;;;:::o;12795:112::-;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12866:4:::1;12850:13;;:20;;;;;;;;;;;;;;;;;;12895:4;12881:11;;:18;;;;;;;;;;;;;;;;;;12795:112::o:0;584:87::-;630:7;657:6;;;;;;;;;;;650:13;;584:87;:::o;9706:24::-;;;;;;;;;;;;;:::o;10157:31::-;;;;:::o;14344:100::-;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14429:7:::1;14415:11;;:21;;;;;;;;;;;;;;;;;;14344:100:::0;:::o;2767:104::-;2823:13;2856:7;2849:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2767:104;:::o;14642:304::-;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14786:13:::1;14778:21;;:4;:21;;;;14756:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;14897:41;14926:4;14932:5;14897:28;:41::i;:::-;14642:304:::0;;:::o;4473:413::-;4566:4;4583:24;4610:11;:25;4622:12;:10;:12::i;:::-;4610:25;;;;;;;;;;;;;;;:34;4636:7;4610:34;;;;;;;;;;;;;;;;4583:61;;4683:15;4663:16;:35;;4655:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4776:67;4785:12;:10;:12::i;:::-;4799:7;4827:15;4808:16;:34;4776:8;:67::i;:::-;4874:4;4867:11;;;4473:413;;;;:::o;3231:175::-;3317:4;3334:42;3344:12;:10;:12::i;:::-;3358:9;3369:6;3334:9;:42::i;:::-;3394:4;3387:11;;3231:175;;;;:::o;10609:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;9894:33::-;;;;;;;;;;;;;:::o;14452:182::-;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14568:8:::1;14537:19;:28;14557:7;14537:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14608:7;14592:34;;;14617:8;14592:34;;;;;;:::i;:::-;;;;;;;;14452:182:::0;;:::o;12915:460::-;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13089:16:::1;13071:15;:34;;;;13134:16;13116:15;:34;;;;13194:15;;13176;;:33;;;;:::i;:::-;13161:12;:48;;;;13241:17;13222:16;:36;;;;13288:17;13269:16;:36;;;;13351:16;;13332;;:35;;;;:::i;:::-;13316:13;:51;;;;12915:460:::0;;;;:::o;9739:35::-;;;;:::o;13575:497::-;13683:4;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13762:6:::1;13757:1;13741:13;:11;:13::i;:::-;:17;;;;:::i;:::-;13740:28;;;;:::i;:::-;13727:9;:41;;13705:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;13917:4;13912:1;13896:13;:11;:13::i;:::-;:17;;;;:::i;:::-;13895:26;;;;:::i;:::-;13882:9;:39;;13860:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;14033:9;14012:18;:30;;;;14060:4;14053:11;;13575:497:::0;;;:::o;9974:27::-;;;;:::o;3414:151::-;3503:7;3530:11;:18;3542:5;3530:18;;;;;;;;;;;;;;;:27;3549:7;3530:27;;;;;;;;;;;;;;;;3523:34;;3414:151;;;;:::o;9781:33::-;;;;:::o;10008:30::-;;;;:::o;918:201::-;730:12;:10;:12::i;:::-;719:23;;:7;:5;:7::i;:::-;:23;;;711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1027:1:::1;1007:22;;:8;:22;;;;999:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1083:28;1102:8;1083:18;:28::i;:::-;918:201:::0;:::o;10119:31::-;;;;:::o;9821:24::-;;;;:::o;130:98::-;183:7;210:10;203:17;;130:98;:::o;6641:380::-;6794:1;6777:19;;:5;:19;;;;6769:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6875:1;6856:21;;:7;:21;;;;6848:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6959:6;6929:11;:18;6941:5;6929:18;;;;;;;;;;;;;;;:27;6948:7;6929:27;;;;;;;;;;;;;;;:36;;;;6997:7;6981:32;;6990:5;6981:32;;;7006:6;6981:32;;;;;;:::i;:::-;;;;;;;;6641:380;;;:::o;15284:3802::-;15432:1;15416:18;;:4;:18;;;;15408:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15509:1;15495:16;;:2;:16;;;;15487:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15578:1;15568:6;:11;15564:93;;;15596:28;15612:4;15618:2;15622:1;15596:15;:28::i;:::-;15639:7;;15564:93;15673:14;;;;;;;;;;;15669:1694;;;15734:7;:5;:7::i;:::-;15726:15;;:4;:15;;;;:49;;;;;15768:7;:5;:7::i;:::-;15762:13;;:2;:13;;;;15726:49;:86;;;;;15810:1;15796:16;;:2;:16;;;;15726:86;:128;;;;;15847:6;15833:21;;:2;:21;;;;15726:128;:158;;;;;15876:8;;;;;;;;;;;15875:9;15726:158;15704:1648;;;15924:13;;;;;;;;;;;15919:223;;15996:19;:25;16016:4;15996:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;16025:19;:23;16045:2;16025:23;;;;;;;;;;;;;;;;;;;;;;;;;15996:52;15962:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;15919:223;16216:25;:31;16242:4;16216:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;16273:31;:35;16305:2;16273:35;;;;;;;;;;;;;;;;;;;;;;;;;16272:36;16216:92;16190:1147;;;16395:20;;16385:6;:30;;16351:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;16603:9;;16586:13;16596:2;16586:9;:13::i;:::-;16577:6;:22;;;;:::i;:::-;:35;;16543:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;16190:1147;;;16781:25;:29;16807:2;16781:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;16836:31;:37;16868:4;16836:37;;;;;;;;;;;;;;;;;;;;;;;;;16835:38;16781:92;16755:582;;;16960:20;;16950:6;:30;;16916:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;16755:582;;;17117:31;:35;17149:2;17117:35;;;;;;;;;;;;;;;;;;;;;;;;;17112:225;;17237:9;;17220:13;17230:2;17220:9;:13::i;:::-;17211:6;:22;;;;:::i;:::-;:35;;17177:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;17112:225;16755:582;16190:1147;15704:1648;15669:1694;17375:28;17406:24;17424:4;17406:9;:24::i;:::-;17375:55;;17443:12;17482:18;;17458:20;:42;;17443:57;;17531:7;:35;;;;;17555:11;;;;;;;;;;;17531:35;:61;;;;;17584:8;;;;;;;;;;;17583:9;17531:61;:110;;;;;17610:25;:31;17636:4;17610:31;;;;;;;;;;;;;;;;;;;;;;;;;17609:32;17531:110;:153;;;;;17659:19;:25;17679:4;17659:25;;;;;;;;;;;;;;;;;;;;;;;;;17658:26;17531:153;:194;;;;;17702:19;:23;17722:2;17702:23;;;;;;;;;;;;;;;;;;;;;;;;;17701:24;17531:194;17513:326;;;17763:4;17752:8;;:15;;;;;;;;;;;;;;;;;;17784:10;:8;:10::i;:::-;17822:5;17811:8;;:16;;;;;;;;;;;;;;;;;;17513:326;17851:12;17867:8;;;;;;;;;;;17866:9;17851:24;;17977:19;:25;17997:4;17977:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18006:19;:23;18026:2;18006:23;;;;;;;;;;;;;;;;;;;;;;;;;17977:52;17973:100;;;18056:5;18046:15;;17973:100;18085:12;18190:7;18186:847;;;18242:25;:29;18268:2;18242:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;18291:1;18275:13;;:17;18242:50;18238:646;;;18320:34;18350:3;18320:25;18331:13;;18320:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;18313:41;;18423:13;;18403:16;;18396:4;:23;;;;:::i;:::-;18395:41;;;;:::i;:::-;18373:18;;:63;;;;;;;:::i;:::-;;;;;;;;18505:13;;18485:16;;18478:4;:23;;;;:::i;:::-;18477:41;;;;:::i;:::-;18455:18;;:63;;;;;;;:::i;:::-;;;;;;;;18238:646;;;18596:25;:31;18622:4;18596:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;18646:1;18631:12;;:16;18596:51;18592:292;;;18675:33;18704:3;18675:24;18686:12;;18675:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;18668:40;;18776:12;;18757:15;;18750:4;:22;;;;:::i;:::-;18749:39;;;;:::i;:::-;18727:18;;:61;;;;;;;:::i;:::-;;;;;;;;18856:12;;18837:15;;18830:4;:22;;;;:::i;:::-;18829:39;;;;:::i;:::-;18807:18;;:61;;;;;;;:::i;:::-;;;;;;;;18592:292;18238:646;18911:1;18904:4;:8;18900:91;;;18933:42;18949:4;18963;18970;18933:15;:42::i;:::-;18900:91;19017:4;19007:14;;;;;:::i;:::-;;;18186:847;19045:33;19061:4;19067:2;19071:6;19045:15;:33::i;:::-;15397:3689;;;;15284:3802;;;;:::o;1125:191::-;1199:16;1218:6;;;;;;;;;;;1199:25;;1244:8;1235:6;;:17;;;;;;;;;;;;;;;;;;1299:8;1268:40;;1289:8;1268:40;;;;;;;;;;;;1188:128;1125:191;:::o;14954:188::-;15071:5;15037:25;:31;15063:4;15037:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15128:5;15094:40;;15122:4;15094:40;;;;;;;;;;;;14954:188;;:::o;4894:733::-;5052:1;5034:20;;:6;:20;;;;5026:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5136:1;5115:23;;:9;:23;;;;5107:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5191:47;5212:6;5220:9;5231:6;5191:20;:47::i;:::-;5251:21;5275:9;:17;5285:6;5275:17;;;;;;;;;;;;;;;;5251:41;;5328:6;5311:13;:23;;5303:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5449:6;5433:13;:22;5413:9;:17;5423:6;5413:17;;;;;;;;;;;;;;;:42;;;;5501:6;5477:9;:20;5487:9;5477:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5542:9;5525:35;;5534:6;5525:35;;;5553:6;5525:35;;;;;;:::i;:::-;;;;;;;;5573:46;5593:6;5601:9;5612:6;5573:19;:46::i;:::-;5015:612;4894:733;;;:::o;20214:1499::-;20253:23;20279:24;20297:4;20279:9;:24::i;:::-;20253:50;;20314:25;20363:18;;20342;;:39;;;;:::i;:::-;20314:67;;20392:12;20440:1;20421:15;:20;:46;;;;20466:1;20445:17;:22;20421:46;20417:85;;;20484:7;;;;;20417:85;20557:2;20536:18;;:23;;;;:::i;:::-;20518:15;:41;20514:115;;;20615:2;20594:18;;:23;;;;:::i;:::-;20576:41;;20514:115;20690:23;20777:1;20757:17;20735:18;;20717:15;:36;;;;:::i;:::-;20716:58;;;;:::i;:::-;:62;;;;:::i;:::-;20690:88;;20789:26;20818:36;20838:15;20818;:19;;:36;;;;:::i;:::-;20789:65;;20867:25;20895:21;20867:49;;20929:36;20946:18;20929:16;:36::i;:::-;20978:18;20999:44;21025:17;20999:21;:25;;:44;;;;:::i;:::-;20978:65;;21057:23;21083:57;21122:17;21083:34;21098:18;;21083:10;:14;;:34;;;;:::i;:::-;:38;;:57;;;;:::i;:::-;21057:83;;21153:23;21192:15;21179:10;:28;;;;:::i;:::-;21153:54;;21241:1;21220:18;:22;;;;21274:1;21253:18;:22;;;;21310:1;21292:15;:19;:42;;;;;21333:1;21315:15;:19;21292:42;21288:278;;;21351:46;21364:15;21381;21351:12;:46::i;:::-;21417:137;21450:18;21487:15;21521:18;;21417:137;;;;;;;;:::i;:::-;;;;;;;;21288:278;21656:9;;;;;;;;;;;21648:23;;21679:21;21648:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21634:71;;;;;20242:1471;;;;;;;;;20214:1499;:::o;7529:98::-;7587:7;7618:1;7614;:5;;;;:::i;:::-;7607:12;;7529:98;;;;:::o;7635:::-;7693:7;7724:1;7720;:5;;;;:::i;:::-;7713:12;;7635:98;;;;:::o;7029:125::-;;;;:::o;7162:124::-;;;;:::o;7423:98::-;7481:7;7512:1;7508;:5;;;;:::i;:::-;7501:12;;7423:98;;;;:::o;19094:589::-;19220:21;19258:1;19244:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19220:40;;19289:4;19271;19276:1;19271:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19315:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19305:4;19310:1;19305:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19350:62;19367:4;19382:15;19400:11;19350:8;:62::i;:::-;19451:15;:66;;;19532:11;19558:1;19602:4;19629;19649:15;19451:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19149:534;19094:589;:::o;19691:515::-;19839:62;19856:4;19871:15;19889:11;19839:8;:62::i;:::-;19944:15;:31;;;19983:9;20016:4;20036:11;20062:1;20105;20148:9;;;;;;;;;;;20172:15;19944:254;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19691: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:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::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:180::-;9259:77;9256:1;9249:88;9356:4;9353:1;9346:15;9380:4;9377:1;9370:15;9397:320;9441:6;9478:1;9472:4;9468:12;9458:22;;9525:1;9519:4;9515:12;9546:18;9536:81;;9602:4;9594:6;9590:17;9580:27;;9536:81;9664:2;9656:6;9653:14;9633:18;9630:38;9627:84;;;9683:18;;:::i;:::-;9627:84;9448:269;9397:320;;;:::o;9723:227::-;9863:34;9859:1;9851:6;9847:14;9840:58;9932:10;9927:2;9919:6;9915:15;9908:35;9723:227;:::o;9956:366::-;10098:3;10119:67;10183:2;10178:3;10119:67;:::i;:::-;10112:74;;10195:93;10284:3;10195:93;:::i;:::-;10313:2;10308:3;10304:12;10297:19;;9956:366;;;:::o;10328:419::-;10494:4;10532:2;10521:9;10517:18;10509:26;;10581:9;10575:4;10571:20;10567:1;10556:9;10552:17;10545:47;10609:131;10735:4;10609:131;:::i;:::-;10601:139;;10328:419;;;:::o;10753:180::-;10801:77;10798:1;10791:88;10898:4;10895:1;10888:15;10922:4;10919:1;10912:15;10939:305;10979:3;10998:20;11016:1;10998:20;:::i;:::-;10993:25;;11032:20;11050:1;11032:20;:::i;:::-;11027:25;;11186:1;11118:66;11114:74;11111:1;11108:81;11105:107;;;11192:18;;:::i;:::-;11105:107;11236:1;11233;11229:9;11222:16;;10939:305;;;;:::o;11250:182::-;11390:34;11386:1;11378:6;11374:14;11367:58;11250:182;:::o;11438:366::-;11580:3;11601:67;11665:2;11660:3;11601:67;:::i;:::-;11594:74;;11677:93;11766:3;11677:93;:::i;:::-;11795:2;11790:3;11786:12;11779:19;;11438:366;;;:::o;11810:419::-;11976:4;12014:2;12003:9;11999:18;11991:26;;12063:9;12057:4;12053:20;12049:1;12038:9;12034:17;12027:47;12091:131;12217:4;12091:131;:::i;:::-;12083:139;;11810:419;;;:::o;12235:244::-;12375:34;12371:1;12363:6;12359:14;12352:58;12444:27;12439:2;12431:6;12427:15;12420:52;12235:244;:::o;12485:366::-;12627:3;12648:67;12712:2;12707:3;12648:67;:::i;:::-;12641:74;;12724:93;12813:3;12724:93;:::i;:::-;12842:2;12837:3;12833:12;12826:19;;12485:366;;;:::o;12857:419::-;13023:4;13061:2;13050:9;13046:18;13038:26;;13110:9;13104:4;13100:20;13096:1;13085:9;13081:17;13074:47;13138:131;13264:4;13138:131;:::i;:::-;13130:139;;12857:419;;;:::o;13282:224::-;13422:34;13418:1;13410:6;13406:14;13399:58;13491:7;13486:2;13478:6;13474:15;13467:32;13282:224;:::o;13512:366::-;13654:3;13675:67;13739:2;13734:3;13675:67;:::i;:::-;13668:74;;13751:93;13840:3;13751:93;:::i;:::-;13869:2;13864:3;13860:12;13853:19;;13512:366;;;:::o;13884:419::-;14050:4;14088:2;14077:9;14073:18;14065:26;;14137:9;14131:4;14127:20;14123:1;14112:9;14108:17;14101:47;14165:131;14291:4;14165:131;:::i;:::-;14157:139;;13884:419;;;:::o;14309:348::-;14349:7;14372:20;14390:1;14372:20;:::i;:::-;14367:25;;14406:20;14424:1;14406:20;:::i;:::-;14401:25;;14594:1;14526:66;14522:74;14519:1;14516:81;14511:1;14504:9;14497:17;14493:105;14490:131;;;14601:18;;:::i;:::-;14490:131;14649:1;14646;14642:9;14631:20;;14309:348;;;;:::o;14663:180::-;14711:77;14708:1;14701:88;14808:4;14805:1;14798:15;14832:4;14829:1;14822:15;14849:185;14889:1;14906:20;14924:1;14906:20;:::i;:::-;14901:25;;14940:20;14958:1;14940:20;:::i;:::-;14935:25;;14979:1;14969:35;;14984:18;;:::i;:::-;14969:35;15026:1;15023;15019:9;15014:14;;14849:185;;;;:::o;15040:240::-;15180:34;15176:1;15168:6;15164:14;15157:58;15249:23;15244:2;15236:6;15232:15;15225:48;15040:240;:::o;15286:366::-;15428:3;15449:67;15513:2;15508:3;15449:67;:::i;:::-;15442:74;;15525:93;15614:3;15525:93;:::i;:::-;15643:2;15638:3;15634:12;15627:19;;15286:366;;;:::o;15658:419::-;15824:4;15862:2;15851:9;15847:18;15839:26;;15911:9;15905:4;15901:20;15897:1;15886:9;15882:17;15875:47;15939:131;16065:4;15939:131;:::i;:::-;15931:139;;15658:419;;;:::o;16083:239::-;16223:34;16219:1;16211:6;16207:14;16200:58;16292:22;16287:2;16279:6;16275:15;16268:47;16083:239;:::o;16328:366::-;16470:3;16491:67;16555:2;16550:3;16491:67;:::i;:::-;16484:74;;16567:93;16656:3;16567:93;:::i;:::-;16685:2;16680:3;16676:12;16669:19;;16328:366;;;:::o;16700:419::-;16866:4;16904:2;16893:9;16889:18;16881:26;;16953:9;16947:4;16943:20;16939:1;16928:9;16924:17;16917:47;16981:131;17107:4;16981:131;:::i;:::-;16973:139;;16700:419;;;:::o;17125:225::-;17265:34;17261:1;17253:6;17249:14;17242:58;17334:8;17329:2;17321:6;17317:15;17310:33;17125:225;:::o;17356:366::-;17498:3;17519:67;17583:2;17578:3;17519:67;:::i;:::-;17512:74;;17595:93;17684:3;17595:93;:::i;:::-;17713:2;17708:3;17704:12;17697:19;;17356:366;;;:::o;17728:419::-;17894:4;17932:2;17921:9;17917:18;17909:26;;17981:9;17975:4;17971:20;17967:1;17956:9;17952:17;17945:47;18009:131;18135:4;18009:131;:::i;:::-;18001:139;;17728:419;;;:::o;18153:223::-;18293:34;18289:1;18281:6;18277:14;18270:58;18362:6;18357:2;18349:6;18345:15;18338:31;18153:223;:::o;18382:366::-;18524:3;18545:67;18609:2;18604:3;18545:67;:::i;:::-;18538:74;;18621:93;18710:3;18621:93;:::i;:::-;18739:2;18734:3;18730:12;18723:19;;18382:366;;;:::o;18754:419::-;18920:4;18958:2;18947:9;18943:18;18935:26;;19007:9;19001:4;18997:20;18993:1;18982:9;18978:17;18971:47;19035:131;19161:4;19035:131;:::i;:::-;19027:139;;18754:419;;;:::o;19179:221::-;19319:34;19315:1;19307:6;19303:14;19296:58;19388:4;19383:2;19375:6;19371:15;19364:29;19179:221;:::o;19406:366::-;19548:3;19569:67;19633:2;19628:3;19569:67;:::i;:::-;19562:74;;19645:93;19734:3;19645:93;:::i;:::-;19763:2;19758:3;19754:12;19747:19;;19406:366;;;:::o;19778:419::-;19944:4;19982:2;19971:9;19967:18;19959:26;;20031:9;20025:4;20021:20;20017:1;20006:9;20002:17;19995:47;20059:131;20185:4;20059:131;:::i;:::-;20051:139;;19778:419;;;:::o;20203:224::-;20343:34;20339:1;20331:6;20327:14;20320:58;20412:7;20407:2;20399:6;20395:15;20388:32;20203:224;:::o;20433:366::-;20575:3;20596:67;20660:2;20655:3;20596:67;:::i;:::-;20589:74;;20672:93;20761:3;20672:93;:::i;:::-;20790:2;20785:3;20781:12;20774:19;;20433:366;;;:::o;20805:419::-;20971:4;21009:2;20998:9;20994:18;20986:26;;21058:9;21052:4;21048:20;21044:1;21033:9;21029:17;21022:47;21086:131;21212:4;21086:131;:::i;:::-;21078:139;;20805:419;;;:::o;21230:222::-;21370:34;21366:1;21358:6;21354:14;21347:58;21439:5;21434:2;21426:6;21422:15;21415:30;21230:222;:::o;21458:366::-;21600:3;21621:67;21685:2;21680:3;21621:67;:::i;:::-;21614:74;;21697:93;21786:3;21697:93;:::i;:::-;21815:2;21810:3;21806:12;21799:19;;21458:366;;;:::o;21830:419::-;21996:4;22034:2;22023:9;22019:18;22011:26;;22083:9;22077:4;22073:20;22069:1;22058:9;22054:17;22047:47;22111:131;22237:4;22111:131;:::i;:::-;22103:139;;21830:419;;;:::o;22255:172::-;22395:24;22391:1;22383:6;22379:14;22372:48;22255:172;:::o;22433:366::-;22575:3;22596:67;22660:2;22655:3;22596:67;:::i;:::-;22589:74;;22672:93;22761:3;22672:93;:::i;:::-;22790:2;22785:3;22781:12;22774:19;;22433:366;;;:::o;22805:419::-;22971:4;23009:2;22998:9;22994:18;22986:26;;23058:9;23052:4;23048:20;23044:1;23033:9;23029:17;23022:47;23086:131;23212:4;23086:131;:::i;:::-;23078:139;;22805:419;;;:::o;23230:240::-;23370:34;23366:1;23358:6;23354:14;23347:58;23439:23;23434:2;23426:6;23422:15;23415:48;23230:240;:::o;23476:366::-;23618:3;23639:67;23703:2;23698:3;23639:67;:::i;:::-;23632:74;;23715:93;23804:3;23715:93;:::i;:::-;23833:2;23828:3;23824:12;23817:19;;23476:366;;;:::o;23848:419::-;24014:4;24052:2;24041:9;24037:18;24029:26;;24101:9;24095:4;24091:20;24087:1;24076:9;24072:17;24065:47;24129:131;24255:4;24129:131;:::i;:::-;24121:139;;23848:419;;;:::o;24273:169::-;24413:21;24409:1;24401:6;24397:14;24390:45;24273:169;:::o;24448:366::-;24590:3;24611:67;24675:2;24670:3;24611:67;:::i;:::-;24604:74;;24687:93;24776:3;24687:93;:::i;:::-;24805:2;24800:3;24796:12;24789:19;;24448:366;;;:::o;24820:419::-;24986:4;25024:2;25013:9;25009:18;25001:26;;25073:9;25067:4;25063:20;25059:1;25048:9;25044:17;25037:47;25101:131;25227:4;25101:131;:::i;:::-;25093:139;;24820:419;;;:::o;25245:241::-;25385:34;25381:1;25373:6;25369:14;25362:58;25454:24;25449:2;25441:6;25437:15;25430:49;25245:241;:::o;25492:366::-;25634:3;25655:67;25719:2;25714:3;25655:67;:::i;:::-;25648:74;;25731:93;25820:3;25731:93;:::i;:::-;25849:2;25844:3;25840:12;25833:19;;25492:366;;;:::o;25864:419::-;26030:4;26068:2;26057:9;26053:18;26045:26;;26117:9;26111:4;26107:20;26103:1;26092:9;26088:17;26081:47;26145:131;26271:4;26145:131;:::i;:::-;26137:139;;25864:419;;;:::o;26289:191::-;26329:4;26349:20;26367:1;26349:20;:::i;:::-;26344:25;;26383:20;26401:1;26383:20;:::i;:::-;26378:25;;26422:1;26419;26416:8;26413:34;;;26427:18;;:::i;:::-;26413:34;26472:1;26469;26465:9;26457:17;;26289:191;;;;:::o;26486:225::-;26626:34;26622:1;26614:6;26610:14;26603:58;26695:8;26690:2;26682:6;26678:15;26671:33;26486:225;:::o;26717:366::-;26859:3;26880:67;26944:2;26939:3;26880:67;:::i;:::-;26873:74;;26956:93;27045:3;26956:93;:::i;:::-;27074:2;27069:3;27065:12;27058:19;;26717:366;;;:::o;27089:419::-;27255:4;27293:2;27282:9;27278:18;27270:26;;27342:9;27336:4;27332:20;27328:1;27317:9;27313:17;27306:47;27370:131;27496:4;27370:131;:::i;:::-;27362:139;;27089:419;;;:::o;27514:442::-;27663:4;27701:2;27690:9;27686:18;27678:26;;27714:71;27782:1;27771:9;27767:17;27758:6;27714:71;:::i;:::-;27795:72;27863:2;27852:9;27848:18;27839:6;27795:72;:::i;:::-;27877;27945:2;27934:9;27930:18;27921:6;27877:72;:::i;:::-;27514:442;;;;;;:::o;27962:147::-;28063:11;28100:3;28085:18;;27962:147;;;;:::o;28115:114::-;;:::o;28235:398::-;28394:3;28415:83;28496:1;28491:3;28415:83;:::i;:::-;28408:90;;28507:93;28596:3;28507:93;:::i;:::-;28625:1;28620:3;28616:11;28609:18;;28235:398;;;:::o;28639:379::-;28823:3;28845:147;28988:3;28845:147;:::i;:::-;28838:154;;29009:3;29002:10;;28639:379;;;:::o;29024:180::-;29072:77;29069:1;29062:88;29169:4;29166:1;29159:15;29193:4;29190:1;29183:15;29210:180;29258:77;29255:1;29248:88;29355:4;29352:1;29345:15;29379:4;29376:1;29369:15;29396:143;29453:5;29484:6;29478:13;29469:22;;29500:33;29527:5;29500:33;:::i;:::-;29396:143;;;;:::o;29545:351::-;29615:6;29664:2;29652:9;29643:7;29639:23;29635:32;29632:119;;;29670:79;;:::i;:::-;29632:119;29790:1;29815:64;29871:7;29862:6;29851:9;29847:22;29815:64;:::i;:::-;29805:74;;29761:128;29545:351;;;;:::o;29902:85::-;29947:7;29976:5;29965:16;;29902:85;;;:::o;29993:158::-;30051:9;30084:61;30102:42;30111:32;30137:5;30111:32;:::i;:::-;30102:42;:::i;:::-;30084:61;:::i;:::-;30071:74;;29993:158;;;:::o;30157:147::-;30252:45;30291:5;30252:45;:::i;:::-;30247:3;30240:58;30157:147;;:::o;30310:114::-;30377:6;30411:5;30405:12;30395:22;;30310:114;;;:::o;30430:184::-;30529:11;30563:6;30558:3;30551:19;30603:4;30598:3;30594:14;30579:29;;30430:184;;;;:::o;30620:132::-;30687:4;30710:3;30702:11;;30740:4;30735:3;30731:14;30723:22;;30620:132;;;:::o;30758:108::-;30835:24;30853:5;30835:24;:::i;:::-;30830:3;30823:37;30758:108;;:::o;30872:179::-;30941:10;30962:46;31004:3;30996:6;30962:46;:::i;:::-;31040:4;31035:3;31031:14;31017:28;;30872:179;;;;:::o;31057:113::-;31127:4;31159;31154:3;31150:14;31142:22;;31057:113;;;:::o;31206:732::-;31325:3;31354:54;31402:5;31354:54;:::i;:::-;31424:86;31503:6;31498:3;31424:86;:::i;:::-;31417:93;;31534:56;31584:5;31534:56;:::i;:::-;31613:7;31644:1;31629:284;31654:6;31651:1;31648:13;31629:284;;;31730:6;31724:13;31757:63;31816:3;31801:13;31757:63;:::i;:::-;31750:70;;31843:60;31896:6;31843:60;:::i;:::-;31833:70;;31689:224;31676:1;31673;31669:9;31664:14;;31629:284;;;31633:14;31929:3;31922:10;;31330:608;;;31206:732;;;;:::o;31944:831::-;32207:4;32245:3;32234:9;32230:19;32222:27;;32259:71;32327:1;32316:9;32312:17;32303:6;32259:71;:::i;:::-;32340:80;32416:2;32405:9;32401:18;32392:6;32340:80;:::i;:::-;32467:9;32461:4;32457:20;32452:2;32441:9;32437:18;32430:48;32495:108;32598:4;32589:6;32495:108;:::i;:::-;32487:116;;32613:72;32681:2;32670:9;32666:18;32657:6;32613:72;:::i;:::-;32695:73;32763:3;32752:9;32748:19;32739:6;32695:73;:::i;:::-;31944:831;;;;;;;;:::o;32781:807::-;33030:4;33068:3;33057:9;33053:19;33045:27;;33082:71;33150:1;33139:9;33135:17;33126:6;33082:71;:::i;:::-;33163:72;33231:2;33220:9;33216:18;33207:6;33163:72;:::i;:::-;33245:80;33321:2;33310:9;33306:18;33297:6;33245:80;:::i;:::-;33335;33411:2;33400:9;33396:18;33387:6;33335:80;:::i;:::-;33425:73;33493:3;33482:9;33478:19;33469:6;33425:73;:::i;:::-;33508;33576:3;33565:9;33561:19;33552:6;33508:73;:::i;:::-;32781:807;;;;;;;;;:::o;33594:143::-;33651:5;33682:6;33676:13;33667:22;;33698:33;33725:5;33698:33;:::i;:::-;33594:143;;;;:::o;33743:663::-;33831:6;33839;33847;33896:2;33884:9;33875:7;33871:23;33867:32;33864:119;;;33902:79;;:::i;:::-;33864:119;34022:1;34047:64;34103:7;34094:6;34083:9;34079:22;34047:64;:::i;:::-;34037:74;;33993:128;34160:2;34186:64;34242:7;34233:6;34222:9;34218:22;34186:64;:::i;:::-;34176:74;;34131:129;34299:2;34325:64;34381:7;34372:6;34361:9;34357:22;34325:64;:::i;:::-;34315:74;;34270:129;33743:663;;;;;:::o

Swarm Source

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