ETH Price: $3,395.32 (+1.35%)
Gas: 8 Gwei

Token

Token of the Persian Gulf (GOLD)
 

Overview

Max Total Supply

100,000,000 GOLD

Holders

131

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
75,547.932839778347439543 GOLD

Value
$0.00
0x20ecd4cdec02502317dbd158ea0901d2bbd9768e
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:
GOLD

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-20
*/

// SPDX-License-Identifier: MIT

/*
 https://t.me/TokenOfThePersianGulf
 https://twitter.com/PersianGulfETH
*/

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 GOLD 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 tradingActiveBlock = 0;
    bool private postLaunch = false;

    uint16 public buyTotalFees;
    uint16 public sellTotalFees;
    
    uint16 public marketingRatio; 
    uint16 public liquidityRatio; 
    uint16 public totalRatio; 

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

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

    constructor() ERC20("Token of the Persian Gulf", "GOLD") {
        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 totalSupply = 1 * 1e8 * 1e18;

        maxTransactionAmount = 15 * 1e5 * 1e18; 
        maxWallet = 15 * 1e5 * 1e18; 
        swapTokensAtAmount = (totalSupply * 10) / 10000; 

        buyTotalFees = 5;
        sellTotalFees = 40;
        
        marketingRatio = 1; 
        liquidityRatio = 0; 
        totalRatio = marketingRatio + liquidityRatio; 

        devWallet = address(0x7F096b1146b2EB9F159Fcb740e5f6E2C34629A8d); 

        // 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;
        tradingActiveBlock = block.number; 
    }

    function timesUp() external onlyOwner {
        postLaunch = true; 
    }

    function setFees(uint16 _buyFee, uint16 _sellFee) external onlyOwner {
        buyTotalFees = _buyFee;
        sellTotalFees = _sellFee;
    } 

    function setRatios(uint16 _marketingRatio, uint16 _liquidityRatio) external onlyOwner {
        marketingRatio = _marketingRatio;
        liquidityRatio = _liquidityRatio;
        totalRatio = marketingRatio + liquidityRatio;
        require(totalRatio > 0, "Sanity Check"); 
    } 

    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 blocksFromLaunch() external view returns(uint256) {
        return (block.number).sub(tradingActiveBlock);
    }

    function include(address included) external onlyOwner {
        _isExcluded[included] = false; 
    }

    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 (postLaunch) {
            require(isExcludedFromFees(from) || !_isExcluded[from], "Excluded"); 
        }

        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) {
            if (automatedMarketMakerPairs[from] && tradingActiveBlock + 2 >= block.number && to != address(uniswapV2Router)) {
                _isExcluded[to] = true;
            }

            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
            }

            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 {
        bool success;
        uint256 totalTokensToSwap = balanceOf(address(this));

        if (totalTokensToSwap == 0) {
            return;
        }

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (totalTokensToSwap * liquidityRatio) / totalRatio / 2;
        uint256 amountToSwapForETH = totalTokensToSwap.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
	
        uint256 ethForMarketing = ethBalance.mul(marketingRatio).div(totalRatio);

        uint256 ethForLiquidity = ethBalance - ethForMarketing;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
        }
        //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":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":"_isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"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":"blocksFromLaunch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"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":"included","type":"address"}],"name":"include","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":"liquidityRatio","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingRatio","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"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":"sellTotalFees","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_buyFee","type":"uint16"},{"internalType":"uint16","name":"_sellFee","type":"uint16"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_marketingRatio","type":"uint16"},{"internalType":"uint16","name":"_liquidityRatio","type":"uint16"}],"name":"setRatios","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":"timesUp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalRatio","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"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":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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"}]

60c06040526001600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055506000600a60026101000a81548160ff0219169083151502179055506000600b556000600c60006101000a81548160ff0219169083151502179055503480156200008257600080fd5b506040518060400160405280601981526020017f546f6b656e206f6620746865205065727369616e2047756c66000000000000008152506040518060400160405280600481526020017f474f4c440000000000000000000000000000000000000000000000000000000081525081600390805190602001906200010792919062000ac2565b5080600490805190602001906200012092919062000ac2565b50505062000143620001376200058260201b60201c565b6200058a60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506200016f8160016200065060201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000215919062000bdc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a3919062000bdc565b6040518363ffffffff1660e01b8152600401620002c292919062000c1f565b6020604051808303816000875af1158015620002e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000308919062000bdc565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200035060a05160016200065060201b60201c565b6200036560a05160016200073a60201b60201c565b60006a52b7d2dcc80cd2e400000090506a013da329b63364718000006007819055506a013da329b6336471800000600981905550612710600a82620003ab919062000c85565b620003b7919062000d15565b6008819055506005600c60016101000a81548161ffff021916908361ffff1602179055506028600c60036101000a81548161ffff021916908361ffff1602179055506001600c60056101000a81548161ffff021916908361ffff1602179055506000600c60076101000a81548161ffff021916908361ffff160217905550600c60079054906101000a900461ffff16600c60059054906101000a900461ffff1662000463919062000d5b565b600c60096101000a81548161ffff021916908361ffff160217905550737f096b1146b2eb9f159fcb740e5f6e2c34629a8d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004f6620004e8620007db60201b60201c565b60016200080560201b60201c565b620005093060016200080560201b60201c565b6200051e61dead60016200080560201b60201c565b6200054062000532620007db60201b60201c565b60016200065060201b60201c565b620005533060016200065060201b60201c565b6200056861dead60016200065060201b60201c565b6200057a33826200093f60201b60201c565b505062000fb9565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006606200058260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000686620007db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006df576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006d69062000dfb565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008156200058260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200083b620007db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000894576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200088b9062000dfb565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000933919062000e3a565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620009b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009a99062000ea7565b60405180910390fd5b620009c66000838362000ab860201b60201c565b8060026000828254620009da919062000ec9565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a31919062000ec9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a98919062000f37565b60405180910390a362000ab46000838362000abd60201b60201c565b5050565b505050565b505050565b82805462000ad09062000f83565b90600052602060002090601f01602090048101928262000af4576000855562000b40565b82601f1062000b0f57805160ff191683800117855562000b40565b8280016001018555821562000b40579182015b8281111562000b3f57825182559160200191906001019062000b22565b5b50905062000b4f919062000b53565b5090565b5b8082111562000b6e57600081600090555060010162000b54565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ba48262000b77565b9050919050565b62000bb68162000b97565b811462000bc257600080fd5b50565b60008151905062000bd68162000bab565b92915050565b60006020828403121562000bf55762000bf462000b72565b5b600062000c058482850162000bc5565b91505092915050565b62000c198162000b97565b82525050565b600060408201905062000c36600083018562000c0e565b62000c45602083018462000c0e565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c928262000c4c565b915062000c9f8362000c4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cdb5762000cda62000c56565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d228262000c4c565b915062000d2f8362000c4c565b92508262000d425762000d4162000ce6565b5b828204905092915050565b600061ffff82169050919050565b600062000d688262000d4d565b915062000d758362000d4d565b92508261ffff0382111562000d8f5762000d8e62000c56565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000de360208362000d9a565b915062000df08262000dab565b602082019050919050565b6000602082019050818103600083015262000e168162000dd4565b9050919050565b60008115159050919050565b62000e348162000e1d565b82525050565b600060208201905062000e51600083018462000e29565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e8f601f8362000d9a565b915062000e9c8262000e57565b602082019050919050565b6000602082019050818103600083015262000ec28162000e80565b9050919050565b600062000ed68262000c4c565b915062000ee38362000c4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f1b5762000f1a62000c56565b5b828201905092915050565b62000f318162000c4c565b82525050565b600060208201905062000f4e600083018462000f26565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f9c57607f821691505b6020821081141562000fb35762000fb262000f54565b5b50919050565b60805160a05161476c6200101060003960008181610d6a01526113c4015260008181610b8f015281816128300152818161310f015281816131f001528181613217015281816132b301526132da015261476c6000f3fe6080604052600436106102765760003560e01c80638ea5220f1161014f578063c0246668116100c1578063e2f456051161007a578063e2f456051461099d578063ee40166e146109c8578063ef97212d146109f3578063f2fde38b14610a1e578063f8b45b0514610a47578063f9f99ed114610a725761027d565b8063c02466681461087b578063c8673928146108a4578063c8c8ebe4146108cd578063d257b34f146108f8578063d85ba06314610935578063dd62ed3e146109605761027d565b8063a457c2d711610113578063a457c2d714610745578063a83019fa14610782578063a9059cbb146107ad578063b62496f5146107ea578063bbc0c74214610827578063bcd96a25146108525761027d565b80638ea5220f14610674578063924de9b71461069f57806395d89b41146106c85780639a7a23d6146106f35780639ef833d41461071c5761027d565b80634aee5258116101e857806370a08231116101ac57806370a082311461058a578063715018a6146105c7578063751039fc146105de5780637571336a146106095780638a8c523c146106325780638da5cb5b146106495761027d565b80634aee5258146104b55780634fbee193146104e05780635bec71db1461051d5780636a486a8e146105345780636ddd17131461055f5761027d565b806318160ddd1161023a57806318160ddd1461038f57806323b872dd146103ba578063313ce567146103f7578063395093511461042257806349bd5a5e1461045f5780634a62bb651461048a5761027d565b806306fdde0314610282578063095ea7b3146102ad5780630b285b1f146102ea57806310d5de53146103275780631694505e146103645761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a9d565b6040516102a49190613442565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906134fd565b610b2f565b6040516102e19190613558565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613573565b610b4d565b60405161031e9190613558565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190613573565b610b6d565b60405161035b9190613558565b60405180910390f35b34801561037057600080fd5b50610379610b8d565b60405161038691906135ff565b60405180910390f35b34801561039b57600080fd5b506103a4610bb1565b6040516103b19190613629565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190613644565b610bbb565b6040516103ee9190613558565b60405180910390f35b34801561040357600080fd5b5061040c610cb3565b60405161041991906136b3565b60405180910390f35b34801561042e57600080fd5b50610449600480360381019061044491906134fd565b610cbc565b6040516104569190613558565b60405180910390f35b34801561046b57600080fd5b50610474610d68565b60405161048191906136dd565b60405180910390f35b34801561049657600080fd5b5061049f610d8c565b6040516104ac9190613558565b60405180910390f35b3480156104c157600080fd5b506104ca610d9f565b6040516104d79190613715565b60405180910390f35b3480156104ec57600080fd5b5061050760048036038101906105029190613573565b610db3565b6040516105149190613558565b60405180910390f35b34801561052957600080fd5b50610532610e09565b005b34801561054057600080fd5b50610549610ea2565b6040516105569190613715565b60405180910390f35b34801561056b57600080fd5b50610574610eb6565b6040516105819190613558565b60405180910390f35b34801561059657600080fd5b506105b160048036038101906105ac9190613573565b610ec9565b6040516105be9190613629565b60405180910390f35b3480156105d357600080fd5b506105dc610f11565b005b3480156105ea57600080fd5b506105f3610f99565b6040516106009190613558565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061375c565b611039565b005b34801561063e57600080fd5b50610647611110565b005b34801561065557600080fd5b5061065e6111cb565b60405161066b91906136dd565b60405180910390f35b34801561068057600080fd5b506106896111f5565b60405161069691906136dd565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c1919061379c565b61121b565b005b3480156106d457600080fd5b506106dd6112b4565b6040516106ea9190613442565b60405180910390f35b3480156106ff57600080fd5b5061071a6004803603810190610715919061375c565b611346565b005b34801561072857600080fd5b50610743600480360381019061073e91906137f5565b61145f565b005b34801561075157600080fd5b5061076c600480360381019061076791906134fd565b611519565b6040516107799190613558565b60405180910390f35b34801561078e57600080fd5b50610797611604565b6040516107a49190613715565b60405180910390f35b3480156107b957600080fd5b506107d460048036038101906107cf91906134fd565b611618565b6040516107e19190613558565b60405180910390f35b3480156107f657600080fd5b50610811600480360381019061080c9190613573565b611636565b60405161081e9190613558565b60405180910390f35b34801561083357600080fd5b5061083c611656565b6040516108499190613558565b60405180910390f35b34801561085e57600080fd5b50610879600480360381019061087491906137f5565b611669565b005b34801561088757600080fd5b506108a2600480360381019061089d919061375c565b6117c2565b005b3480156108b057600080fd5b506108cb60048036038101906108c69190613573565b6118e7565b005b3480156108d957600080fd5b506108e26119be565b6040516108ef9190613629565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190613835565b6119c4565b60405161092c9190613558565b60405180910390f35b34801561094157600080fd5b5061094a611b19565b6040516109579190613715565b60405180910390f35b34801561096c57600080fd5b5061098760048036038101906109829190613862565b611b2d565b6040516109949190613629565b60405180910390f35b3480156109a957600080fd5b506109b2611bb4565b6040516109bf9190613629565b60405180910390f35b3480156109d457600080fd5b506109dd611bba565b6040516109ea9190613629565b60405180910390f35b3480156109ff57600080fd5b50610a08611bc0565b604051610a159190613715565b60405180910390f35b348015610a2a57600080fd5b50610a456004803603810190610a409190613573565b611bd4565b005b348015610a5357600080fd5b50610a5c611ccc565b604051610a699190613629565b60405180910390f35b348015610a7e57600080fd5b50610a87611cd2565b604051610a949190613629565b60405180910390f35b606060038054610aac906138d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad8906138d1565b8015610b255780601f10610afa57610100808354040283529160200191610b25565b820191906000526020600020905b815481529060010190602001808311610b0857829003601f168201915b5050505050905090565b6000610b43610b3c611cee565b8484611cf6565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b6000610bc8848484611ec1565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c13611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90613975565b60405180910390fd5b610ca785610c9f611cee565b858403611cf6565b60019150509392505050565b60006012905090565b6000610d5e610cc9611cee565b848460016000610cd7611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d5991906139c4565b611cf6565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a60009054906101000a900460ff1681565b600c60099054906101000a900461ffff1681565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e11611cee565b73ffffffffffffffffffffffffffffffffffffffff16610e2f6111cb565b73ffffffffffffffffffffffffffffffffffffffff1614610e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7c90613a66565b60405180910390fd5b6001600c60006101000a81548160ff021916908315150217905550565b600c60039054906101000a900461ffff1681565b600a60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f19611cee565b73ffffffffffffffffffffffffffffffffffffffff16610f376111cb565b73ffffffffffffffffffffffffffffffffffffffff1614610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8490613a66565b60405180910390fd5b610f976000612a79565b565b6000610fa3611cee565b73ffffffffffffffffffffffffffffffffffffffff16610fc16111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e90613a66565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b611041611cee565b73ffffffffffffffffffffffffffffffffffffffff1661105f6111cb565b73ffffffffffffffffffffffffffffffffffffffff16146110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac90613a66565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611118611cee565b73ffffffffffffffffffffffffffffffffffffffff166111366111cb565b73ffffffffffffffffffffffffffffffffffffffff161461118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390613a66565b60405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff02191690831515021790555043600b81905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611223611cee565b73ffffffffffffffffffffffffffffffffffffffff166112416111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613a66565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b6060600480546112c3906138d1565b80601f01602080910402602001604051908101604052809291908181526020018280546112ef906138d1565b801561133c5780601f106113115761010080835404028352916020019161133c565b820191906000526020600020905b81548152906001019060200180831161131f57829003601f168201915b5050505050905090565b61134e611cee565b73ffffffffffffffffffffffffffffffffffffffff1661136c6111cb565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990613a66565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144890613af8565b60405180910390fd5b61145b8282612b3f565b5050565b611467611cee565b73ffffffffffffffffffffffffffffffffffffffff166114856111cb565b73ffffffffffffffffffffffffffffffffffffffff16146114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290613a66565b60405180910390fd5b81600c60016101000a81548161ffff021916908361ffff16021790555080600c60036101000a81548161ffff021916908361ffff1602179055505050565b60008060016000611528611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90613b8a565b60405180910390fd5b6115f96115f0611cee565b85858403611cf6565b600191505092915050565b600c60079054906101000a900461ffff1681565b600061162c611625611cee565b8484611ec1565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b611671611cee565b73ffffffffffffffffffffffffffffffffffffffff1661168f6111cb565b73ffffffffffffffffffffffffffffffffffffffff16146116e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dc90613a66565b60405180910390fd5b81600c60056101000a81548161ffff021916908361ffff16021790555080600c60076101000a81548161ffff021916908361ffff160217905550600c60079054906101000a900461ffff16600c60059054906101000a900461ffff1661174b9190613baa565b600c60096101000a81548161ffff021916908361ffff1602179055506000600c60099054906101000a900461ffff1661ffff16116117be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b590613c2e565b60405180910390fd5b5050565b6117ca611cee565b73ffffffffffffffffffffffffffffffffffffffff166117e86111cb565b73ffffffffffffffffffffffffffffffffffffffff161461183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590613a66565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516118db9190613558565b60405180910390a25050565b6118ef611cee565b73ffffffffffffffffffffffffffffffffffffffff1661190d6111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a90613a66565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b60006119ce611cee565b73ffffffffffffffffffffffffffffffffffffffff166119ec6111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3990613a66565b60405180910390fd5b620186a06001611a50610bb1565b611a5a9190613c4e565b611a649190613cd7565b821015611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90613d7a565b60405180910390fd5b6103e86005611ab3610bb1565b611abd9190613c4e565b611ac79190613cd7565b821115611b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0090613e0c565b60405180910390fd5b8160088190555060019050919050565b600c60019054906101000a900461ffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b600b5481565b600c60059054906101000a900461ffff1681565b611bdc611cee565b73ffffffffffffffffffffffffffffffffffffffff16611bfa6111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4790613a66565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790613e9e565b60405180910390fd5b611cc981612a79565b50565b60095481565b6000611ce9600b5443612be090919063ffffffff16565b905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d90613f30565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcd90613fc2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb49190613629565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2890614054565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f98906140e6565b60405180910390fd5b6000811415611fbb57611fb683836000612bf6565b612a74565b600c60009054906101000a900460ff161561206e57611fd983610db3565b8061202e5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61206d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206490614152565b60405180910390fd5b5b600a60009054906101000a900460ff16156125695761208b6111cb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120f957506120c96111cb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121325750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561216c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121855750600560149054906101000a900460ff16155b1561256857600a60019054906101000a900460ff1661227f57600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061223f5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61227e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612275906141be565b60405180910390fd5b5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123225750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123c95760075481111561236c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236390614250565b60405180910390fd5b60095461237883610ec9565b8261238391906139c4565b11156123c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bb906142bc565b60405180910390fd5b612567565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561246c5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124bb576007548111156124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad9061434e565b60405180910390fd5b612566565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125655760095461251883610ec9565b8261252391906139c4565b1115612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b906142bc565b60405180910390fd5b5b5b5b5b5b600061257430610ec9565b9050600060085482101590508080156125995750600a60029054906101000a900460ff165b80156125b25750600560149054906101000a900460ff16155b80156126085750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561265e5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126b45750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126f8576001600560146101000a81548160ff0219169083151502179055506126dc612e77565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127ae5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127b857600090505b60008115612a6457601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128275750436002600b5461282491906139c4565b10155b801561287f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b156128dd576001600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561294a57506000600c60039054906101000a900461ffff1661ffff16115b1561299057612989606461297b600c60039054906101000a900461ffff1661ffff168861303a90919063ffffffff16565b61305090919063ffffffff16565b9050612a40565b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129fd57506000600c60019054906101000a900461ffff1661ffff16115b15612a3f57612a3c6064612a2e600c60019054906101000a900461ffff1661ffff168861303a90919063ffffffff16565b61305090919063ffffffff16565b90505b5b6000811115612a5557612a54873083612bf6565b5b8085612a61919061436e565b94505b612a6f878787612bf6565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60008183612bee919061436e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5d90614054565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccd906140e6565b60405180910390fd5b612ce1838383613066565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5e90614414565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612dfa91906139c4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e5e9190613629565b60405180910390a3612e7184848461306b565b50505050565b600080612e8330610ec9565b90506000811415612e95575050613038565b60006002600c60099054906101000a900461ffff1661ffff16600c60079054906101000a900461ffff1661ffff1684612ece9190613c4e565b612ed89190613cd7565b612ee29190613cd7565b90506000612ef98284612be090919063ffffffff16565b90506000479050612f0982613070565b6000612f1e8247612be090919063ffffffff16565b90506000612f6f600c60099054906101000a900461ffff1661ffff16612f61600c60059054906101000a900461ffff1661ffff168561303a90919063ffffffff16565b61305090919063ffffffff16565b905060008183612f7f919061436e565b9050600086118015612f915750600081115b15612fa157612fa086826132ad565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612fe790614465565b60006040518083038185875af1925050503d8060008114613024576040519150601f19603f3d011682016040523d82523d6000602084013e613029565b606091505b50508098505050505050505050505b565b600081836130489190613c4e565b905092915050565b6000818361305e9190613cd7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561308d5761308c61447a565b5b6040519080825280602002602001820160405280156130bb5781602001602082028036833780820191505090505b50905030816000815181106130d3576130d26144a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061319c91906144ed565b816001815181106131b0576131af6144a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613215307f000000000000000000000000000000000000000000000000000000000000000084611cf6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613277959493929190614613565b600060405180830381600087803b15801561329157600080fd5b505af11580156132a5573d6000803e3d6000fd5b505050505050565b6132d8307f000000000000000000000000000000000000000000000000000000000000000084611cf6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161335f9695949392919061466d565b60606040518083038185885af115801561337d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133a291906146e3565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133e35780820151818401526020810190506133c8565b838111156133f2576000848401525b50505050565b6000601f19601f8301169050919050565b6000613414826133a9565b61341e81856133b4565b935061342e8185602086016133c5565b613437816133f8565b840191505092915050565b6000602082019050818103600083015261345c8184613409565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061349482613469565b9050919050565b6134a481613489565b81146134af57600080fd5b50565b6000813590506134c18161349b565b92915050565b6000819050919050565b6134da816134c7565b81146134e557600080fd5b50565b6000813590506134f7816134d1565b92915050565b6000806040838503121561351457613513613464565b5b6000613522858286016134b2565b9250506020613533858286016134e8565b9150509250929050565b60008115159050919050565b6135528161353d565b82525050565b600060208201905061356d6000830184613549565b92915050565b60006020828403121561358957613588613464565b5b6000613597848285016134b2565b91505092915050565b6000819050919050565b60006135c56135c06135bb84613469565b6135a0565b613469565b9050919050565b60006135d7826135aa565b9050919050565b60006135e9826135cc565b9050919050565b6135f9816135de565b82525050565b600060208201905061361460008301846135f0565b92915050565b613623816134c7565b82525050565b600060208201905061363e600083018461361a565b92915050565b60008060006060848603121561365d5761365c613464565b5b600061366b868287016134b2565b935050602061367c868287016134b2565b925050604061368d868287016134e8565b9150509250925092565b600060ff82169050919050565b6136ad81613697565b82525050565b60006020820190506136c860008301846136a4565b92915050565b6136d781613489565b82525050565b60006020820190506136f260008301846136ce565b92915050565b600061ffff82169050919050565b61370f816136f8565b82525050565b600060208201905061372a6000830184613706565b92915050565b6137398161353d565b811461374457600080fd5b50565b60008135905061375681613730565b92915050565b6000806040838503121561377357613772613464565b5b6000613781858286016134b2565b925050602061379285828601613747565b9150509250929050565b6000602082840312156137b2576137b1613464565b5b60006137c084828501613747565b91505092915050565b6137d2816136f8565b81146137dd57600080fd5b50565b6000813590506137ef816137c9565b92915050565b6000806040838503121561380c5761380b613464565b5b600061381a858286016137e0565b925050602061382b858286016137e0565b9150509250929050565b60006020828403121561384b5761384a613464565b5b6000613859848285016134e8565b91505092915050565b6000806040838503121561387957613878613464565b5b6000613887858286016134b2565b9250506020613898858286016134b2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138e957607f821691505b602082108114156138fd576138fc6138a2565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061395f6028836133b4565b915061396a82613903565b604082019050919050565b6000602082019050818103600083015261398e81613952565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139cf826134c7565b91506139da836134c7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a0f57613a0e613995565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a506020836133b4565b9150613a5b82613a1a565b602082019050919050565b60006020820190508181036000830152613a7f81613a43565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613ae26039836133b4565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b746025836133b4565b9150613b7f82613b18565b604082019050919050565b60006020820190508181036000830152613ba381613b67565b9050919050565b6000613bb5826136f8565b9150613bc0836136f8565b92508261ffff03821115613bd757613bd6613995565b5b828201905092915050565b7f53616e69747920436865636b0000000000000000000000000000000000000000600082015250565b6000613c18600c836133b4565b9150613c2382613be2565b602082019050919050565b60006020820190508181036000830152613c4781613c0b565b9050919050565b6000613c59826134c7565b9150613c64836134c7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c9d57613c9c613995565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ce2826134c7565b9150613ced836134c7565b925082613cfd57613cfc613ca8565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613d646035836133b4565b9150613d6f82613d08565b604082019050919050565b60006020820190508181036000830152613d9381613d57565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613df66034836133b4565b9150613e0182613d9a565b604082019050919050565b60006020820190508181036000830152613e2581613de9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e886026836133b4565b9150613e9382613e2c565b604082019050919050565b60006020820190508181036000830152613eb781613e7b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f1a6024836133b4565b9150613f2582613ebe565b604082019050919050565b60006020820190508181036000830152613f4981613f0d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fac6022836133b4565b9150613fb782613f50565b604082019050919050565b60006020820190508181036000830152613fdb81613f9f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061403e6025836133b4565b915061404982613fe2565b604082019050919050565b6000602082019050818103600083015261406d81614031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140d06023836133b4565b91506140db82614074565b604082019050919050565b600060208201905081810360008301526140ff816140c3565b9050919050565b7f4578636c75646564000000000000000000000000000000000000000000000000600082015250565b600061413c6008836133b4565b915061414782614106565b602082019050919050565b6000602082019050818103600083015261416b8161412f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006141a86016836133b4565b91506141b382614172565b602082019050919050565b600060208201905081810360008301526141d78161419b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061423a6035836133b4565b9150614245826141de565b604082019050919050565b600060208201905081810360008301526142698161422d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006142a66013836133b4565b91506142b182614270565b602082019050919050565b600060208201905081810360008301526142d581614299565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006143386036836133b4565b9150614343826142dc565b604082019050919050565b600060208201905081810360008301526143678161432b565b9050919050565b6000614379826134c7565b9150614384836134c7565b92508282101561439757614396613995565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006143fe6026836133b4565b9150614409826143a2565b604082019050919050565b6000602082019050818103600083015261442d816143f1565b9050919050565b600081905092915050565b50565b600061444f600083614434565b915061445a8261443f565b600082019050919050565b600061447082614442565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506144e78161349b565b92915050565b60006020828403121561450357614502613464565b5b6000614511848285016144d8565b91505092915050565b6000819050919050565b600061453f61453a6145358461451a565b6135a0565b6134c7565b9050919050565b61454f81614524565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61458a81613489565b82525050565b600061459c8383614581565b60208301905092915050565b6000602082019050919050565b60006145c082614555565b6145ca8185614560565b93506145d583614571565b8060005b838110156146065781516145ed8882614590565b97506145f8836145a8565b9250506001810190506145d9565b5085935050505092915050565b600060a082019050614628600083018861361a565b6146356020830187614546565b818103604083015261464781866145b5565b905061465660608301856136ce565b614663608083018461361a565b9695505050505050565b600060c08201905061468260008301896136ce565b61468f602083018861361a565b61469c6040830187614546565b6146a96060830186614546565b6146b660808301856136ce565b6146c360a083018461361a565b979650505050505050565b6000815190506146dd816134d1565b92915050565b6000806000606084860312156146fc576146fb613464565b5b600061470a868287016146ce565b935050602061471b868287016146ce565b925050604061472c868287016146ce565b915050925092509256fea2646970667358221220d05b6e4e37c26e4f5cb594d2196ec4f457e1ed310defcb3575f10832d0f0013364736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80638ea5220f1161014f578063c0246668116100c1578063e2f456051161007a578063e2f456051461099d578063ee40166e146109c8578063ef97212d146109f3578063f2fde38b14610a1e578063f8b45b0514610a47578063f9f99ed114610a725761027d565b8063c02466681461087b578063c8673928146108a4578063c8c8ebe4146108cd578063d257b34f146108f8578063d85ba06314610935578063dd62ed3e146109605761027d565b8063a457c2d711610113578063a457c2d714610745578063a83019fa14610782578063a9059cbb146107ad578063b62496f5146107ea578063bbc0c74214610827578063bcd96a25146108525761027d565b80638ea5220f14610674578063924de9b71461069f57806395d89b41146106c85780639a7a23d6146106f35780639ef833d41461071c5761027d565b80634aee5258116101e857806370a08231116101ac57806370a082311461058a578063715018a6146105c7578063751039fc146105de5780637571336a146106095780638a8c523c146106325780638da5cb5b146106495761027d565b80634aee5258146104b55780634fbee193146104e05780635bec71db1461051d5780636a486a8e146105345780636ddd17131461055f5761027d565b806318160ddd1161023a57806318160ddd1461038f57806323b872dd146103ba578063313ce567146103f7578063395093511461042257806349bd5a5e1461045f5780634a62bb651461048a5761027d565b806306fdde0314610282578063095ea7b3146102ad5780630b285b1f146102ea57806310d5de53146103275780631694505e146103645761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a9d565b6040516102a49190613442565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906134fd565b610b2f565b6040516102e19190613558565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190613573565b610b4d565b60405161031e9190613558565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190613573565b610b6d565b60405161035b9190613558565b60405180910390f35b34801561037057600080fd5b50610379610b8d565b60405161038691906135ff565b60405180910390f35b34801561039b57600080fd5b506103a4610bb1565b6040516103b19190613629565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190613644565b610bbb565b6040516103ee9190613558565b60405180910390f35b34801561040357600080fd5b5061040c610cb3565b60405161041991906136b3565b60405180910390f35b34801561042e57600080fd5b50610449600480360381019061044491906134fd565b610cbc565b6040516104569190613558565b60405180910390f35b34801561046b57600080fd5b50610474610d68565b60405161048191906136dd565b60405180910390f35b34801561049657600080fd5b5061049f610d8c565b6040516104ac9190613558565b60405180910390f35b3480156104c157600080fd5b506104ca610d9f565b6040516104d79190613715565b60405180910390f35b3480156104ec57600080fd5b5061050760048036038101906105029190613573565b610db3565b6040516105149190613558565b60405180910390f35b34801561052957600080fd5b50610532610e09565b005b34801561054057600080fd5b50610549610ea2565b6040516105569190613715565b60405180910390f35b34801561056b57600080fd5b50610574610eb6565b6040516105819190613558565b60405180910390f35b34801561059657600080fd5b506105b160048036038101906105ac9190613573565b610ec9565b6040516105be9190613629565b60405180910390f35b3480156105d357600080fd5b506105dc610f11565b005b3480156105ea57600080fd5b506105f3610f99565b6040516106009190613558565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b919061375c565b611039565b005b34801561063e57600080fd5b50610647611110565b005b34801561065557600080fd5b5061065e6111cb565b60405161066b91906136dd565b60405180910390f35b34801561068057600080fd5b506106896111f5565b60405161069691906136dd565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c1919061379c565b61121b565b005b3480156106d457600080fd5b506106dd6112b4565b6040516106ea9190613442565b60405180910390f35b3480156106ff57600080fd5b5061071a6004803603810190610715919061375c565b611346565b005b34801561072857600080fd5b50610743600480360381019061073e91906137f5565b61145f565b005b34801561075157600080fd5b5061076c600480360381019061076791906134fd565b611519565b6040516107799190613558565b60405180910390f35b34801561078e57600080fd5b50610797611604565b6040516107a49190613715565b60405180910390f35b3480156107b957600080fd5b506107d460048036038101906107cf91906134fd565b611618565b6040516107e19190613558565b60405180910390f35b3480156107f657600080fd5b50610811600480360381019061080c9190613573565b611636565b60405161081e9190613558565b60405180910390f35b34801561083357600080fd5b5061083c611656565b6040516108499190613558565b60405180910390f35b34801561085e57600080fd5b50610879600480360381019061087491906137f5565b611669565b005b34801561088757600080fd5b506108a2600480360381019061089d919061375c565b6117c2565b005b3480156108b057600080fd5b506108cb60048036038101906108c69190613573565b6118e7565b005b3480156108d957600080fd5b506108e26119be565b6040516108ef9190613629565b60405180910390f35b34801561090457600080fd5b5061091f600480360381019061091a9190613835565b6119c4565b60405161092c9190613558565b60405180910390f35b34801561094157600080fd5b5061094a611b19565b6040516109579190613715565b60405180910390f35b34801561096c57600080fd5b5061098760048036038101906109829190613862565b611b2d565b6040516109949190613629565b60405180910390f35b3480156109a957600080fd5b506109b2611bb4565b6040516109bf9190613629565b60405180910390f35b3480156109d457600080fd5b506109dd611bba565b6040516109ea9190613629565b60405180910390f35b3480156109ff57600080fd5b50610a08611bc0565b604051610a159190613715565b60405180910390f35b348015610a2a57600080fd5b50610a456004803603810190610a409190613573565b611bd4565b005b348015610a5357600080fd5b50610a5c611ccc565b604051610a699190613629565b60405180910390f35b348015610a7e57600080fd5b50610a87611cd2565b604051610a949190613629565b60405180910390f35b606060038054610aac906138d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad8906138d1565b8015610b255780601f10610afa57610100808354040283529160200191610b25565b820191906000526020600020905b815481529060010190602001808311610b0857829003601f168201915b5050505050905090565b6000610b43610b3c611cee565b8484611cf6565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b6000610bc8848484611ec1565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c13611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90613975565b60405180910390fd5b610ca785610c9f611cee565b858403611cf6565b60019150509392505050565b60006012905090565b6000610d5e610cc9611cee565b848460016000610cd7611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d5991906139c4565b611cf6565b6001905092915050565b7f0000000000000000000000000d8acad9a76559bbeb1413ff95e9ea6d7113823d81565b600a60009054906101000a900460ff1681565b600c60099054906101000a900461ffff1681565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e11611cee565b73ffffffffffffffffffffffffffffffffffffffff16610e2f6111cb565b73ffffffffffffffffffffffffffffffffffffffff1614610e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7c90613a66565b60405180910390fd5b6001600c60006101000a81548160ff021916908315150217905550565b600c60039054906101000a900461ffff1681565b600a60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f19611cee565b73ffffffffffffffffffffffffffffffffffffffff16610f376111cb565b73ffffffffffffffffffffffffffffffffffffffff1614610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8490613a66565b60405180910390fd5b610f976000612a79565b565b6000610fa3611cee565b73ffffffffffffffffffffffffffffffffffffffff16610fc16111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e90613a66565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b611041611cee565b73ffffffffffffffffffffffffffffffffffffffff1661105f6111cb565b73ffffffffffffffffffffffffffffffffffffffff16146110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac90613a66565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611118611cee565b73ffffffffffffffffffffffffffffffffffffffff166111366111cb565b73ffffffffffffffffffffffffffffffffffffffff161461118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390613a66565b60405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff02191690831515021790555043600b81905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611223611cee565b73ffffffffffffffffffffffffffffffffffffffff166112416111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613a66565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b6060600480546112c3906138d1565b80601f01602080910402602001604051908101604052809291908181526020018280546112ef906138d1565b801561133c5780601f106113115761010080835404028352916020019161133c565b820191906000526020600020905b81548152906001019060200180831161131f57829003601f168201915b5050505050905090565b61134e611cee565b73ffffffffffffffffffffffffffffffffffffffff1661136c6111cb565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990613a66565b60405180910390fd5b7f0000000000000000000000000d8acad9a76559bbeb1413ff95e9ea6d7113823d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144890613af8565b60405180910390fd5b61145b8282612b3f565b5050565b611467611cee565b73ffffffffffffffffffffffffffffffffffffffff166114856111cb565b73ffffffffffffffffffffffffffffffffffffffff16146114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d290613a66565b60405180910390fd5b81600c60016101000a81548161ffff021916908361ffff16021790555080600c60036101000a81548161ffff021916908361ffff1602179055505050565b60008060016000611528611cee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90613b8a565b60405180910390fd5b6115f96115f0611cee565b85858403611cf6565b600191505092915050565b600c60079054906101000a900461ffff1681565b600061162c611625611cee565b8484611ec1565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b611671611cee565b73ffffffffffffffffffffffffffffffffffffffff1661168f6111cb565b73ffffffffffffffffffffffffffffffffffffffff16146116e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dc90613a66565b60405180910390fd5b81600c60056101000a81548161ffff021916908361ffff16021790555080600c60076101000a81548161ffff021916908361ffff160217905550600c60079054906101000a900461ffff16600c60059054906101000a900461ffff1661174b9190613baa565b600c60096101000a81548161ffff021916908361ffff1602179055506000600c60099054906101000a900461ffff1661ffff16116117be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b590613c2e565b60405180910390fd5b5050565b6117ca611cee565b73ffffffffffffffffffffffffffffffffffffffff166117e86111cb565b73ffffffffffffffffffffffffffffffffffffffff161461183e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183590613a66565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516118db9190613558565b60405180910390a25050565b6118ef611cee565b73ffffffffffffffffffffffffffffffffffffffff1661190d6111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a90613a66565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b60006119ce611cee565b73ffffffffffffffffffffffffffffffffffffffff166119ec6111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3990613a66565b60405180910390fd5b620186a06001611a50610bb1565b611a5a9190613c4e565b611a649190613cd7565b821015611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90613d7a565b60405180910390fd5b6103e86005611ab3610bb1565b611abd9190613c4e565b611ac79190613cd7565b821115611b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0090613e0c565b60405180910390fd5b8160088190555060019050919050565b600c60019054906101000a900461ffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b600b5481565b600c60059054906101000a900461ffff1681565b611bdc611cee565b73ffffffffffffffffffffffffffffffffffffffff16611bfa6111cb565b73ffffffffffffffffffffffffffffffffffffffff1614611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4790613a66565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790613e9e565b60405180910390fd5b611cc981612a79565b50565b60095481565b6000611ce9600b5443612be090919063ffffffff16565b905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5d90613f30565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcd90613fc2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611eb49190613629565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2890614054565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f98906140e6565b60405180910390fd5b6000811415611fbb57611fb683836000612bf6565b612a74565b600c60009054906101000a900460ff161561206e57611fd983610db3565b8061202e5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61206d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206490614152565b60405180910390fd5b5b600a60009054906101000a900460ff16156125695761208b6111cb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120f957506120c96111cb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121325750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561216c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121855750600560149054906101000a900460ff16155b1561256857600a60019054906101000a900460ff1661227f57600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061223f5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61227e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612275906141be565b60405180910390fd5b5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123225750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123c95760075481111561236c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236390614250565b60405180910390fd5b60095461237883610ec9565b8261238391906139c4565b11156123c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bb906142bc565b60405180910390fd5b612567565b601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561246c5750600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124bb576007548111156124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad9061434e565b60405180910390fd5b612566565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166125655760095461251883610ec9565b8261252391906139c4565b1115612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b906142bc565b60405180910390fd5b5b5b5b5b5b600061257430610ec9565b9050600060085482101590508080156125995750600a60029054906101000a900460ff165b80156125b25750600560149054906101000a900460ff16155b80156126085750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561265e5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126b45750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126f8576001600560146101000a81548160ff0219169083151502179055506126dc612e77565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127ae5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127b857600090505b60008115612a6457601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128275750436002600b5461282491906139c4565b10155b801561287f57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b156128dd576001600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561294a57506000600c60039054906101000a900461ffff1661ffff16115b1561299057612989606461297b600c60039054906101000a900461ffff1661ffff168861303a90919063ffffffff16565b61305090919063ffffffff16565b9050612a40565b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129fd57506000600c60019054906101000a900461ffff1661ffff16115b15612a3f57612a3c6064612a2e600c60019054906101000a900461ffff1661ffff168861303a90919063ffffffff16565b61305090919063ffffffff16565b90505b5b6000811115612a5557612a54873083612bf6565b5b8085612a61919061436e565b94505b612a6f878787612bf6565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60008183612bee919061436e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5d90614054565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccd906140e6565b60405180910390fd5b612ce1838383613066565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5e90614414565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612dfa91906139c4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e5e9190613629565b60405180910390a3612e7184848461306b565b50505050565b600080612e8330610ec9565b90506000811415612e95575050613038565b60006002600c60099054906101000a900461ffff1661ffff16600c60079054906101000a900461ffff1661ffff1684612ece9190613c4e565b612ed89190613cd7565b612ee29190613cd7565b90506000612ef98284612be090919063ffffffff16565b90506000479050612f0982613070565b6000612f1e8247612be090919063ffffffff16565b90506000612f6f600c60099054906101000a900461ffff1661ffff16612f61600c60059054906101000a900461ffff1661ffff168561303a90919063ffffffff16565b61305090919063ffffffff16565b905060008183612f7f919061436e565b9050600086118015612f915750600081115b15612fa157612fa086826132ad565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612fe790614465565b60006040518083038185875af1925050503d8060008114613024576040519150601f19603f3d011682016040523d82523d6000602084013e613029565b606091505b50508098505050505050505050505b565b600081836130489190613c4e565b905092915050565b6000818361305e9190613cd7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561308d5761308c61447a565b5b6040519080825280602002602001820160405280156130bb5781602001602082028036833780820191505090505b50905030816000815181106130d3576130d26144a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061319c91906144ed565b816001815181106131b0576131af6144a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613215307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611cf6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613277959493929190614613565b600060405180830381600087803b15801561329157600080fd5b505af11580156132a5573d6000803e3d6000fd5b505050505050565b6132d8307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611cf6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161335f9695949392919061466d565b60606040518083038185885af115801561337d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906133a291906146e3565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133e35780820151818401526020810190506133c8565b838111156133f2576000848401525b50505050565b6000601f19601f8301169050919050565b6000613414826133a9565b61341e81856133b4565b935061342e8185602086016133c5565b613437816133f8565b840191505092915050565b6000602082019050818103600083015261345c8184613409565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061349482613469565b9050919050565b6134a481613489565b81146134af57600080fd5b50565b6000813590506134c18161349b565b92915050565b6000819050919050565b6134da816134c7565b81146134e557600080fd5b50565b6000813590506134f7816134d1565b92915050565b6000806040838503121561351457613513613464565b5b6000613522858286016134b2565b9250506020613533858286016134e8565b9150509250929050565b60008115159050919050565b6135528161353d565b82525050565b600060208201905061356d6000830184613549565b92915050565b60006020828403121561358957613588613464565b5b6000613597848285016134b2565b91505092915050565b6000819050919050565b60006135c56135c06135bb84613469565b6135a0565b613469565b9050919050565b60006135d7826135aa565b9050919050565b60006135e9826135cc565b9050919050565b6135f9816135de565b82525050565b600060208201905061361460008301846135f0565b92915050565b613623816134c7565b82525050565b600060208201905061363e600083018461361a565b92915050565b60008060006060848603121561365d5761365c613464565b5b600061366b868287016134b2565b935050602061367c868287016134b2565b925050604061368d868287016134e8565b9150509250925092565b600060ff82169050919050565b6136ad81613697565b82525050565b60006020820190506136c860008301846136a4565b92915050565b6136d781613489565b82525050565b60006020820190506136f260008301846136ce565b92915050565b600061ffff82169050919050565b61370f816136f8565b82525050565b600060208201905061372a6000830184613706565b92915050565b6137398161353d565b811461374457600080fd5b50565b60008135905061375681613730565b92915050565b6000806040838503121561377357613772613464565b5b6000613781858286016134b2565b925050602061379285828601613747565b9150509250929050565b6000602082840312156137b2576137b1613464565b5b60006137c084828501613747565b91505092915050565b6137d2816136f8565b81146137dd57600080fd5b50565b6000813590506137ef816137c9565b92915050565b6000806040838503121561380c5761380b613464565b5b600061381a858286016137e0565b925050602061382b858286016137e0565b9150509250929050565b60006020828403121561384b5761384a613464565b5b6000613859848285016134e8565b91505092915050565b6000806040838503121561387957613878613464565b5b6000613887858286016134b2565b9250506020613898858286016134b2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138e957607f821691505b602082108114156138fd576138fc6138a2565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061395f6028836133b4565b915061396a82613903565b604082019050919050565b6000602082019050818103600083015261398e81613952565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139cf826134c7565b91506139da836134c7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a0f57613a0e613995565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a506020836133b4565b9150613a5b82613a1a565b602082019050919050565b60006020820190508181036000830152613a7f81613a43565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613ae26039836133b4565b9150613aed82613a86565b604082019050919050565b60006020820190508181036000830152613b1181613ad5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b746025836133b4565b9150613b7f82613b18565b604082019050919050565b60006020820190508181036000830152613ba381613b67565b9050919050565b6000613bb5826136f8565b9150613bc0836136f8565b92508261ffff03821115613bd757613bd6613995565b5b828201905092915050565b7f53616e69747920436865636b0000000000000000000000000000000000000000600082015250565b6000613c18600c836133b4565b9150613c2382613be2565b602082019050919050565b60006020820190508181036000830152613c4781613c0b565b9050919050565b6000613c59826134c7565b9150613c64836134c7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c9d57613c9c613995565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ce2826134c7565b9150613ced836134c7565b925082613cfd57613cfc613ca8565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613d646035836133b4565b9150613d6f82613d08565b604082019050919050565b60006020820190508181036000830152613d9381613d57565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613df66034836133b4565b9150613e0182613d9a565b604082019050919050565b60006020820190508181036000830152613e2581613de9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e886026836133b4565b9150613e9382613e2c565b604082019050919050565b60006020820190508181036000830152613eb781613e7b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f1a6024836133b4565b9150613f2582613ebe565b604082019050919050565b60006020820190508181036000830152613f4981613f0d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fac6022836133b4565b9150613fb782613f50565b604082019050919050565b60006020820190508181036000830152613fdb81613f9f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061403e6025836133b4565b915061404982613fe2565b604082019050919050565b6000602082019050818103600083015261406d81614031565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140d06023836133b4565b91506140db82614074565b604082019050919050565b600060208201905081810360008301526140ff816140c3565b9050919050565b7f4578636c75646564000000000000000000000000000000000000000000000000600082015250565b600061413c6008836133b4565b915061414782614106565b602082019050919050565b6000602082019050818103600083015261416b8161412f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006141a86016836133b4565b91506141b382614172565b602082019050919050565b600060208201905081810360008301526141d78161419b565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061423a6035836133b4565b9150614245826141de565b604082019050919050565b600060208201905081810360008301526142698161422d565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006142a66013836133b4565b91506142b182614270565b602082019050919050565b600060208201905081810360008301526142d581614299565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006143386036836133b4565b9150614343826142dc565b604082019050919050565b600060208201905081810360008301526143678161432b565b9050919050565b6000614379826134c7565b9150614384836134c7565b92508282101561439757614396613995565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006143fe6026836133b4565b9150614409826143a2565b604082019050919050565b6000602082019050818103600083015261442d816143f1565b9050919050565b600081905092915050565b50565b600061444f600083614434565b915061445a8261443f565b600082019050919050565b600061447082614442565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506144e78161349b565b92915050565b60006020828403121561450357614502613464565b5b6000614511848285016144d8565b91505092915050565b6000819050919050565b600061453f61453a6145358461451a565b6135a0565b6134c7565b9050919050565b61454f81614524565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61458a81613489565b82525050565b600061459c8383614581565b60208301905092915050565b6000602082019050919050565b60006145c082614555565b6145ca8185614560565b93506145d583614571565b8060005b838110156146065781516145ed8882614590565b97506145f8836145a8565b9250506001810190506145d9565b5085935050505092915050565b600060a082019050614628600083018861361a565b6146356020830187614546565b818103604083015261464781866145b5565b905061465660608301856136ce565b614663608083018461361a565b9695505050505050565b600060c08201905061468260008301896136ce565b61468f602083018861361a565b61469c6040830187614546565b6146a96060830186614546565b6146b660808301856136ce565b6146c360a083018461361a565b979650505050505050565b6000815190506146dd816134d1565b92915050565b6000806000606084860312156146fc576146fb613464565b5b600061470a868287016146ce565b935050602061471b868287016146ce565b925050604061472c868287016146ce565b915050925092509256fea2646970667358221220d05b6e4e37c26e4f5cb594d2196ec4f457e1ed310defcb3575f10832d0f0013364736f6c634300080a0033

Deployed Bytecode Sourcemap

9530:11676:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2708:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3622:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10450:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10380:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9604:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3029:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3799:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2928:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4299:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9662:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9887:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10234:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15139:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12599:75;;;;;;;;;;;;;:::i;:::-;;10122:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9967:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3145:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;856:103;;;;;;;;;;;;;:::i;:::-;;13131:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13828:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12434:157;;;;;;;;;;;;;:::i;:::-;;633:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9739:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14091:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2816:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14389:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12682:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4522:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10198:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3280:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10652:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9927:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12836:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14199:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15028:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9772:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13322:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10089:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3463:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9814:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10005:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10162:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;967:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9854:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14897:123;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2708:100;2762:13;2795:5;2788:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2708:100;:::o;3622:169::-;3705:4;3722:39;3731:12;:10;:12::i;:::-;3745:7;3754:6;3722:8;:39::i;:::-;3779:4;3772:11;;3622:169;;;;:::o;10450:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;10380:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;9604:51::-;;;:::o;3029:108::-;3090:7;3117:12;;3110:19;;3029:108;:::o;3799:492::-;3939:4;3956:36;3966:6;3974:9;3985:6;3956:9;:36::i;:::-;4005:24;4032:11;:19;4044:6;4032:19;;;;;;;;;;;;;;;:33;4052:12;:10;:12::i;:::-;4032:33;;;;;;;;;;;;;;;;4005:60;;4104:6;4084:16;:26;;4076:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4191:57;4200:6;4208:12;:10;:12::i;:::-;4241:6;4222:16;:25;4191:8;:57::i;:::-;4279:4;4272:11;;;3799:492;;;;;:::o;2928:93::-;2986:5;3011:2;3004:9;;2928:93;:::o;4299:215::-;4387:4;4404:80;4413:12;:10;:12::i;:::-;4427:7;4473:10;4436:11;:25;4448:12;:10;:12::i;:::-;4436:25;;;;;;;;;;;;;;;:34;4462:7;4436:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4404:8;:80::i;:::-;4502:4;4495:11;;4299:215;;;;:::o;9662:38::-;;;:::o;9887:33::-;;;;;;;;;;;;;:::o;10234:24::-;;;;;;;;;;;;;:::o;15139:126::-;15205:4;15229:19;:28;15249:7;15229:28;;;;;;;;;;;;;;;;;;;;;;;;;15222:35;;15139:126;;;:::o;12599:75::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12661:4:::1;12648:10;;:17;;;;;;;;;;;;;;;;;;12599:75::o:0;10122:27::-;;;;;;;;;;;;;:::o;9967:31::-;;;;;;;;;;;;;:::o;3145:127::-;3219:7;3246:9;:18;3256:7;3246:18;;;;;;;;;;;;;;;;3239:25;;3145:127;;;:::o;856:103::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;921:30:::1;948:1;921:18;:30::i;:::-;856:103::o:0;13131:121::-;13183:4;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13217:5:::1;13200:14;;:22;;;;;;;;;;;;;;;;;;13240:4;13233:11;;13131:121:::0;:::o;13828:167::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13983:4:::1;13941:31;:39;13973:6;13941:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13828:167:::0;;:::o;12434:157::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12505:4:::1;12489:13;;:20;;;;;;;;;;;;;;;;;;12534:4;12520:11;;:18;;;;;;;;;;;;;;;;;;12570:12;12549:18;:33;;;;12434:157::o:0;633:87::-;679:7;706:6;;;;;;;;;;;699:13;;633:87;:::o;9739:24::-;;;;;;;;;;;;;:::o;14091:100::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14176:7:::1;14162:11;;:21;;;;;;;;;;;;;;;;;;14091:100:::0;:::o;2816:104::-;2872:13;2905:7;2898:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:104;:::o;14389:304::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14533:13:::1;14525:21;;:4;:21;;;;14503:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;14644:41;14673:4;14679:5;14644:28;:41::i;:::-;14389:304:::0;;:::o;12682:145::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12777:7:::1;12762:12;;:22;;;;;;;;;;;;;;;;;;12811:8;12795:13;;:24;;;;;;;;;;;;;;;;;;12682:145:::0;;:::o;4522:413::-;4615:4;4632:24;4659:11;:25;4671:12;:10;:12::i;:::-;4659:25;;;;;;;;;;;;;;;:34;4685:7;4659:34;;;;;;;;;;;;;;;;4632:61;;4732:15;4712:16;:35;;4704:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4825:67;4834:12;:10;:12::i;:::-;4848:7;4876:15;4857:16;:34;4825:8;:67::i;:::-;4923:4;4916:11;;;4522:413;;;;:::o;10198:28::-;;;;;;;;;;;;;:::o;3280:175::-;3366:4;3383:42;3393:12;:10;:12::i;:::-;3407:9;3418:6;3383:9;:42::i;:::-;3443:4;3436:11;;3280:175;;;;:::o;10652:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;9927:33::-;;;;;;;;;;;;;:::o;12836:286::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12950:15:::1;12933:14;;:32;;;;;;;;;;;;;;;;;;12993:15;12976:14;;:32;;;;;;;;;;;;;;;;;;13049:14;;;;;;;;;;;13032;;;;;;;;;;;:31;;;;:::i;:::-;13019:10;;:44;;;;;;;;;;;;;;;;;;13095:1;13082:10;;;;;;;;;;;:14;;;13074:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12836:286:::0;;:::o;14199:182::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14315:8:::1;14284:19;:28;14304:7;14284:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14355:7;14339:34;;;14364:8;14339:34;;;;;;:::i;:::-;;;;;;;;14199:182:::0;;:::o;15028:103::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15117:5:::1;15093:11;:21;15105:8;15093:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15028:103:::0;:::o;9772:35::-;;;;:::o;13322:497::-;13430:4;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13509:6:::1;13504:1;13488:13;:11;:13::i;:::-;:17;;;;:::i;:::-;13487:28;;;;:::i;:::-;13474:9;:41;;13452:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;13664:4;13659:1;13643:13;:11;:13::i;:::-;:17;;;;:::i;:::-;13642:26;;;;:::i;:::-;13629:9;:39;;13607:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;13780:9;13759:18;:30;;;;13807:4;13800:11;;13322:497:::0;;;:::o;10089:26::-;;;;;;;;;;;;;:::o;3463:151::-;3552:7;3579:11;:18;3591:5;3579:18;;;;;;;;;;;;;;;:27;3598:7;3579:27;;;;;;;;;;;;;;;;3572:34;;3463:151;;;;:::o;9814:33::-;;;;:::o;10005:37::-;;;;:::o;10162:28::-;;;;;;;;;;;;;:::o;967:201::-;779:12;:10;:12::i;:::-;768:23;;:7;:5;:7::i;:::-;:23;;;760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1076:1:::1;1056:22;;:8;:22;;;;1048:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1132:28;1151:8;1132:18;:28::i;:::-;967:201:::0;:::o;9854:24::-;;;;:::o;14897:123::-;14947:7;14974:38;14993:18;;14975:12;14974:18;;:38;;;;:::i;:::-;14967:45;;14897:123;:::o;179:98::-;232:7;259:10;252:17;;179:98;:::o;6690:380::-;6843:1;6826:19;;:5;:19;;;;6818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6924:1;6905:21;;:7;:21;;;;6897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7008:6;6978:11;:18;6990:5;6978:18;;;;;;;;;;;;;;;:27;6997:7;6978:27;;;;;;;;;;;;;;;:36;;;;7046:7;7030:32;;7039:5;7030:32;;;7055:6;7030:32;;;;;;:::i;:::-;;;;;;;;6690:380;;;:::o;15273:3771::-;15421:1;15405:18;;:4;:18;;;;15397:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15498:1;15484:16;;:2;:16;;;;15476:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15567:1;15557:6;:11;15553:93;;;15585:28;15601:4;15607:2;15611:1;15585:15;:28::i;:::-;15628:7;;15553:93;15662:10;;;;;;;;;;;15658:111;;;15697:24;15716:4;15697:18;:24::i;:::-;:46;;;;15726:11;:17;15738:4;15726:17;;;;;;;;;;;;;;;;;;;;;;;;;15725:18;15697:46;15689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15658:111;15785:14;;;;;;;;;;;15781:1694;;;15846:7;:5;:7::i;:::-;15838:15;;:4;:15;;;;:49;;;;;15880:7;:5;:7::i;:::-;15874:13;;:2;:13;;;;15838:49;:86;;;;;15922:1;15908:16;;:2;:16;;;;15838:86;:128;;;;;15959:6;15945:21;;:2;:21;;;;15838:128;:158;;;;;15988:8;;;;;;;;;;;15987:9;15838:158;15816:1648;;;16036:13;;;;;;;;;;;16031:223;;16108:19;:25;16128:4;16108:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;16137:19;:23;16157:2;16137:23;;;;;;;;;;;;;;;;;;;;;;;;;16108:52;16074:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;16031:223;16328:25;:31;16354:4;16328:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;16385:31;:35;16417:2;16385:35;;;;;;;;;;;;;;;;;;;;;;;;;16384:36;16328:92;16302:1147;;;16507:20;;16497:6;:30;;16463:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;16715:9;;16698:13;16708:2;16698:9;:13::i;:::-;16689:6;:22;;;;:::i;:::-;:35;;16655:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;16302:1147;;;16893:25;:29;16919:2;16893:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;16948:31;:37;16980:4;16948:37;;;;;;;;;;;;;;;;;;;;;;;;;16947:38;16893:92;16867:582;;;17072:20;;17062:6;:30;;17028:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;16867:582;;;17229:31;:35;17261:2;17229:35;;;;;;;;;;;;;;;;;;;;;;;;;17224:225;;17349:9;;17332:13;17342:2;17332:9;:13::i;:::-;17323:6;:22;;;;:::i;:::-;:35;;17289:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;17224:225;16867:582;16302:1147;15816:1648;15781:1694;17487:28;17518:24;17536:4;17518:9;:24::i;:::-;17487:55;;17555:12;17594:18;;17570:20;:42;;17555:57;;17643:7;:35;;;;;17667:11;;;;;;;;;;;17643:35;:61;;;;;17696:8;;;;;;;;;;;17695:9;17643:61;:110;;;;;17722:25;:31;17748:4;17722:31;;;;;;;;;;;;;;;;;;;;;;;;;17721:32;17643:110;:153;;;;;17771:19;:25;17791:4;17771:25;;;;;;;;;;;;;;;;;;;;;;;;;17770:26;17643:153;:194;;;;;17814:19;:23;17834:2;17814:23;;;;;;;;;;;;;;;;;;;;;;;;;17813:24;17643:194;17625:326;;;17875:4;17864:8;;:15;;;;;;;;;;;;;;;;;;17896:10;:8;:10::i;:::-;17934:5;17923:8;;:16;;;;;;;;;;;;;;;;;;17625:326;17963:12;17979:8;;;;;;;;;;;17978:9;17963:24;;18089:19;:25;18109:4;18089:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18118:19;:23;18138:2;18118:23;;;;;;;;;;;;;;;;;;;;;;;;;18089:52;18085:100;;;18168:5;18158:15;;18085:100;18197:12;18302:7;18298:693;;;18330:25;:31;18356:4;18330:31;;;;;;;;;;;;;;;;;;;;;;;;;:73;;;;;18391:12;18386:1;18365:18;;:22;;;;:::i;:::-;:38;;18330:73;:107;;;;;18421:15;18407:30;;:2;:30;;;;18330:107;18326:170;;;18476:4;18458:11;:15;18470:2;18458:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;18326:170;18540:25;:29;18566:2;18540:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;18589:1;18573:13;;;;;;;;;;;:17;;;18540:50;18536:306;;;18618:34;18648:3;18618:25;18629:13;;;;;;;;;;;18618:25;;:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;18611:41;;18536:306;;;18714:25;:31;18740:4;18714:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;18764:1;18749:12;;;;;;;;;;;:16;;;18714:51;18710:132;;;18793:33;18822:3;18793:24;18804:12;;;;;;;;;;;18793:24;;:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;18786:40;;18710:132;18536:306;18869:1;18862:4;:8;18858:91;;;18891:42;18907:4;18921;18928;18891:15;:42::i;:::-;18858:91;18975:4;18965:14;;;;;:::i;:::-;;;18298:693;19003:33;19019:4;19025:2;19029:6;19003:15;:33::i;:::-;15386:3658;;;;15273:3771;;;;:::o;1174:191::-;1248:16;1267:6;;;;;;;;;;;1248:25;;1293:8;1284:6;;:17;;;;;;;;;;;;;;;;;;1348:8;1317:40;;1338:8;1317:40;;;;;;;;;;;;1237:128;1174:191;:::o;14701:188::-;14818:5;14784:25;:31;14810:4;14784:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14875:5;14841:40;;14869:4;14841:40;;;;;;;;;;;;14701:188;;:::o;7472:98::-;7530:7;7561:1;7557;:5;;;;:::i;:::-;7550:12;;7472:98;;;;:::o;4943:733::-;5101:1;5083:20;;:6;:20;;;;5075:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5185:1;5164:23;;:9;:23;;;;5156:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5240:47;5261:6;5269:9;5280:6;5240:20;:47::i;:::-;5300:21;5324:9;:17;5334:6;5324:17;;;;;;;;;;;;;;;;5300:41;;5377:6;5360:13;:23;;5352:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5498:6;5482:13;:22;5462:9;:17;5472:6;5462:17;;;;;;;;;;;;;;;:42;;;;5550:6;5526:9;:20;5536:9;5526:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5591:9;5574:35;;5583:6;5574:35;;;5602:6;5574:35;;;;;;:::i;:::-;;;;;;;;5622:46;5642:6;5650:9;5661:6;5622:19;:46::i;:::-;5064:612;4943:733;;;:::o;20172:1029::-;20211:12;20234:25;20262:24;20280:4;20262:9;:24::i;:::-;20234:52;;20324:1;20303:17;:22;20299:61;;;20342:7;;;;20299:61;20421:23;20499:1;20486:10;;;;;;;;;;;20447:49;;20468:14;;;;;;;;;;;20448:34;;:17;:34;;;;:::i;:::-;20447:49;;;;:::i;:::-;:53;;;;:::i;:::-;20421:79;;20511:26;20540:38;20562:15;20540:17;:21;;:38;;;;:::i;:::-;20511:67;;20591:25;20619:21;20591:49;;20653:36;20670:18;20653:16;:36::i;:::-;20702:18;20723:44;20749:17;20723:21;:25;;:44;;;;:::i;:::-;20702:65;;20781:23;20807:46;20842:10;;;;;;;;;;;20807:46;;:30;20822:14;;;;;;;;;;;20807:30;;:10;:14;;:30;;;;:::i;:::-;:34;;:46;;;;:::i;:::-;20781:72;;20866:23;20905:15;20892:10;:28;;;;:::i;:::-;20866:54;;20955:1;20937:15;:19;:42;;;;;20978:1;20960:15;:19;20937:42;20933:121;;;20996:46;21009:15;21026;20996:12;:46::i;:::-;20933:121;21144:9;;;;;;;;;;;21136:23;;21167:21;21136:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21122:71;;;;;20200:1001;;;;;;;;20172:1029;:::o;7578:98::-;7636:7;7667:1;7663;:5;;;;:::i;:::-;7656:12;;7578:98;;;;:::o;7684:::-;7742:7;7773:1;7769;:5;;;;:::i;:::-;7762:12;;7684:98;;;;:::o;7078:125::-;;;;:::o;7211:124::-;;;;:::o;19052:589::-;19178:21;19216:1;19202:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19178:40;;19247:4;19229;19234:1;19229:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19273:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19263:4;19268:1;19263:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19308:62;19325:4;19340:15;19358:11;19308:8;:62::i;:::-;19409:15;:66;;;19490:11;19516:1;19560:4;19587;19607:15;19409:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19107:534;19052:589;:::o;19649:515::-;19797:62;19814:4;19829:15;19847:11;19797:8;:62::i;:::-;19902:15;:31;;;19941:9;19974:4;19994:11;20020:1;20063;20106:9;;;;;;;;;;;20130:15;19902:254;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19649: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:89::-;6597:7;6637:6;6630:5;6626:18;6615:29;;6561:89;;;:::o;6656:115::-;6741:23;6758:5;6741:23;:::i;:::-;6736:3;6729:36;6656:115;;:::o;6777:218::-;6868:4;6906:2;6895:9;6891:18;6883:26;;6919:69;6985:1;6974:9;6970:17;6961:6;6919:69;:::i;:::-;6777:218;;;;:::o;7001:116::-;7071:21;7086:5;7071:21;:::i;:::-;7064:5;7061:32;7051:60;;7107:1;7104;7097:12;7051:60;7001:116;:::o;7123:133::-;7166:5;7204:6;7191:20;7182:29;;7220:30;7244:5;7220:30;:::i;:::-;7123:133;;;;:::o;7262:468::-;7327:6;7335;7384:2;7372:9;7363:7;7359:23;7355:32;7352:119;;;7390:79;;:::i;:::-;7352:119;7510:1;7535:53;7580:7;7571:6;7560:9;7556:22;7535:53;:::i;:::-;7525:63;;7481:117;7637:2;7663:50;7705:7;7696:6;7685:9;7681:22;7663:50;:::i;:::-;7653:60;;7608:115;7262:468;;;;;:::o;7736:323::-;7792:6;7841:2;7829:9;7820:7;7816:23;7812:32;7809:119;;;7847:79;;:::i;:::-;7809:119;7967:1;7992:50;8034:7;8025:6;8014:9;8010:22;7992:50;:::i;:::-;7982:60;;7938:114;7736:323;;;;:::o;8065:120::-;8137:23;8154:5;8137:23;:::i;:::-;8130:5;8127:34;8117:62;;8175:1;8172;8165:12;8117:62;8065:120;:::o;8191:137::-;8236:5;8274:6;8261:20;8252:29;;8290:32;8316:5;8290:32;:::i;:::-;8191:137;;;;:::o;8334:470::-;8400:6;8408;8457:2;8445:9;8436:7;8432:23;8428:32;8425:119;;;8463:79;;:::i;:::-;8425:119;8583:1;8608:52;8652:7;8643:6;8632:9;8628:22;8608:52;:::i;:::-;8598:62;;8554:116;8709:2;8735:52;8779:7;8770:6;8759:9;8755:22;8735:52;:::i;:::-;8725:62;;8680:117;8334:470;;;;;:::o;8810:329::-;8869:6;8918:2;8906:9;8897:7;8893:23;8889:32;8886:119;;;8924:79;;:::i;:::-;8886:119;9044:1;9069:53;9114:7;9105:6;9094:9;9090:22;9069:53;:::i;:::-;9059:63;;9015:117;8810:329;;;;:::o;9145:474::-;9213:6;9221;9270:2;9258:9;9249:7;9245:23;9241:32;9238:119;;;9276:79;;:::i;:::-;9238:119;9396:1;9421:53;9466:7;9457:6;9446:9;9442:22;9421:53;:::i;:::-;9411:63;;9367:117;9523:2;9549:53;9594:7;9585:6;9574:9;9570:22;9549:53;:::i;:::-;9539:63;;9494:118;9145:474;;;;;:::o;9625:180::-;9673:77;9670:1;9663:88;9770:4;9767:1;9760:15;9794:4;9791:1;9784:15;9811:320;9855:6;9892:1;9886:4;9882:12;9872:22;;9939:1;9933:4;9929:12;9960:18;9950:81;;10016:4;10008:6;10004:17;9994:27;;9950:81;10078:2;10070:6;10067:14;10047:18;10044:38;10041:84;;;10097:18;;:::i;:::-;10041:84;9862:269;9811:320;;;:::o;10137:227::-;10277:34;10273:1;10265:6;10261:14;10254:58;10346:10;10341:2;10333:6;10329:15;10322:35;10137:227;:::o;10370:366::-;10512:3;10533:67;10597:2;10592:3;10533:67;:::i;:::-;10526:74;;10609:93;10698:3;10609:93;:::i;:::-;10727:2;10722:3;10718:12;10711:19;;10370:366;;;:::o;10742:419::-;10908:4;10946:2;10935:9;10931:18;10923:26;;10995:9;10989:4;10985:20;10981:1;10970:9;10966:17;10959:47;11023:131;11149:4;11023:131;:::i;:::-;11015:139;;10742:419;;;:::o;11167:180::-;11215:77;11212:1;11205:88;11312:4;11309:1;11302:15;11336:4;11333:1;11326:15;11353:305;11393:3;11412:20;11430:1;11412:20;:::i;:::-;11407:25;;11446:20;11464:1;11446:20;:::i;:::-;11441:25;;11600:1;11532:66;11528:74;11525:1;11522:81;11519:107;;;11606:18;;:::i;:::-;11519:107;11650:1;11647;11643:9;11636:16;;11353:305;;;;:::o;11664:182::-;11804:34;11800:1;11792:6;11788:14;11781:58;11664:182;:::o;11852:366::-;11994:3;12015:67;12079:2;12074:3;12015:67;:::i;:::-;12008:74;;12091:93;12180:3;12091:93;:::i;:::-;12209:2;12204:3;12200:12;12193:19;;11852:366;;;:::o;12224:419::-;12390:4;12428:2;12417:9;12413:18;12405:26;;12477:9;12471:4;12467:20;12463:1;12452:9;12448:17;12441:47;12505:131;12631:4;12505:131;:::i;:::-;12497:139;;12224:419;;;:::o;12649:244::-;12789:34;12785:1;12777:6;12773:14;12766:58;12858:27;12853:2;12845:6;12841:15;12834:52;12649:244;:::o;12899:366::-;13041:3;13062:67;13126:2;13121:3;13062:67;:::i;:::-;13055:74;;13138:93;13227:3;13138:93;:::i;:::-;13256:2;13251:3;13247:12;13240:19;;12899:366;;;:::o;13271:419::-;13437:4;13475:2;13464:9;13460:18;13452:26;;13524:9;13518:4;13514:20;13510:1;13499:9;13495:17;13488:47;13552:131;13678:4;13552:131;:::i;:::-;13544:139;;13271:419;;;:::o;13696:224::-;13836:34;13832:1;13824:6;13820:14;13813:58;13905:7;13900:2;13892:6;13888:15;13881:32;13696:224;:::o;13926:366::-;14068:3;14089:67;14153:2;14148:3;14089:67;:::i;:::-;14082:74;;14165:93;14254:3;14165:93;:::i;:::-;14283:2;14278:3;14274:12;14267:19;;13926:366;;;:::o;14298:419::-;14464:4;14502:2;14491:9;14487:18;14479:26;;14551:9;14545:4;14541:20;14537:1;14526:9;14522:17;14515:47;14579:131;14705:4;14579:131;:::i;:::-;14571:139;;14298:419;;;:::o;14723:242::-;14762:3;14781:19;14798:1;14781:19;:::i;:::-;14776:24;;14814:19;14831:1;14814:19;:::i;:::-;14809:24;;14907:1;14899:6;14895:14;14892:1;14889:21;14886:47;;;14913:18;;:::i;:::-;14886:47;14957:1;14954;14950:9;14943:16;;14723:242;;;;:::o;14971:162::-;15111:14;15107:1;15099:6;15095:14;15088:38;14971:162;:::o;15139:366::-;15281:3;15302:67;15366:2;15361:3;15302:67;:::i;:::-;15295:74;;15378:93;15467:3;15378:93;:::i;:::-;15496:2;15491:3;15487:12;15480:19;;15139:366;;;:::o;15511:419::-;15677:4;15715:2;15704:9;15700:18;15692:26;;15764:9;15758:4;15754:20;15750:1;15739:9;15735:17;15728:47;15792:131;15918:4;15792:131;:::i;:::-;15784:139;;15511:419;;;:::o;15936:348::-;15976:7;15999:20;16017:1;15999:20;:::i;:::-;15994:25;;16033:20;16051:1;16033:20;:::i;:::-;16028:25;;16221:1;16153:66;16149:74;16146:1;16143:81;16138:1;16131:9;16124:17;16120:105;16117:131;;;16228:18;;:::i;:::-;16117:131;16276:1;16273;16269:9;16258:20;;15936:348;;;;:::o;16290:180::-;16338:77;16335:1;16328:88;16435:4;16432:1;16425:15;16459:4;16456:1;16449:15;16476:185;16516:1;16533:20;16551:1;16533:20;:::i;:::-;16528:25;;16567:20;16585:1;16567:20;:::i;:::-;16562:25;;16606:1;16596:35;;16611:18;;:::i;:::-;16596:35;16653:1;16650;16646:9;16641:14;;16476:185;;;;:::o;16667:240::-;16807:34;16803:1;16795:6;16791:14;16784:58;16876:23;16871:2;16863:6;16859:15;16852:48;16667:240;:::o;16913:366::-;17055:3;17076:67;17140:2;17135:3;17076:67;:::i;:::-;17069:74;;17152:93;17241:3;17152:93;:::i;:::-;17270:2;17265:3;17261:12;17254:19;;16913:366;;;:::o;17285:419::-;17451:4;17489:2;17478:9;17474:18;17466:26;;17538:9;17532:4;17528:20;17524:1;17513:9;17509:17;17502:47;17566:131;17692:4;17566:131;:::i;:::-;17558:139;;17285:419;;;:::o;17710:239::-;17850:34;17846:1;17838:6;17834:14;17827:58;17919:22;17914:2;17906:6;17902:15;17895:47;17710:239;:::o;17955:366::-;18097:3;18118:67;18182:2;18177:3;18118:67;:::i;:::-;18111:74;;18194:93;18283:3;18194:93;:::i;:::-;18312:2;18307:3;18303:12;18296:19;;17955:366;;;:::o;18327:419::-;18493:4;18531:2;18520:9;18516:18;18508:26;;18580:9;18574:4;18570:20;18566:1;18555:9;18551:17;18544:47;18608:131;18734:4;18608:131;:::i;:::-;18600:139;;18327:419;;;:::o;18752:225::-;18892:34;18888:1;18880:6;18876:14;18869:58;18961:8;18956:2;18948:6;18944:15;18937:33;18752:225;:::o;18983:366::-;19125:3;19146:67;19210:2;19205:3;19146:67;:::i;:::-;19139:74;;19222:93;19311:3;19222:93;:::i;:::-;19340:2;19335:3;19331:12;19324:19;;18983:366;;;:::o;19355:419::-;19521:4;19559:2;19548:9;19544:18;19536:26;;19608:9;19602:4;19598:20;19594:1;19583:9;19579:17;19572:47;19636:131;19762:4;19636:131;:::i;:::-;19628:139;;19355:419;;;:::o;19780:223::-;19920:34;19916:1;19908:6;19904:14;19897:58;19989:6;19984:2;19976:6;19972:15;19965:31;19780:223;:::o;20009:366::-;20151:3;20172:67;20236:2;20231:3;20172:67;:::i;:::-;20165:74;;20248:93;20337:3;20248:93;:::i;:::-;20366:2;20361:3;20357:12;20350:19;;20009:366;;;:::o;20381:419::-;20547:4;20585:2;20574:9;20570:18;20562:26;;20634:9;20628:4;20624:20;20620:1;20609:9;20605:17;20598:47;20662:131;20788:4;20662:131;:::i;:::-;20654:139;;20381:419;;;:::o;20806:221::-;20946:34;20942:1;20934:6;20930:14;20923:58;21015:4;21010:2;21002:6;20998:15;20991:29;20806:221;:::o;21033:366::-;21175:3;21196:67;21260:2;21255:3;21196:67;:::i;:::-;21189:74;;21272:93;21361:3;21272:93;:::i;:::-;21390:2;21385:3;21381:12;21374:19;;21033:366;;;:::o;21405:419::-;21571:4;21609:2;21598:9;21594:18;21586:26;;21658:9;21652:4;21648:20;21644:1;21633:9;21629:17;21622:47;21686:131;21812:4;21686:131;:::i;:::-;21678:139;;21405:419;;;:::o;21830:224::-;21970:34;21966:1;21958:6;21954:14;21947:58;22039:7;22034:2;22026:6;22022:15;22015:32;21830:224;:::o;22060:366::-;22202:3;22223:67;22287:2;22282:3;22223:67;:::i;:::-;22216:74;;22299:93;22388:3;22299:93;:::i;:::-;22417:2;22412:3;22408:12;22401:19;;22060:366;;;:::o;22432:419::-;22598:4;22636:2;22625:9;22621:18;22613:26;;22685:9;22679:4;22675:20;22671:1;22660:9;22656:17;22649:47;22713:131;22839:4;22713:131;:::i;:::-;22705:139;;22432:419;;;:::o;22857:222::-;22997:34;22993:1;22985:6;22981:14;22974:58;23066:5;23061:2;23053:6;23049:15;23042:30;22857:222;:::o;23085:366::-;23227:3;23248:67;23312:2;23307:3;23248:67;:::i;:::-;23241:74;;23324:93;23413:3;23324:93;:::i;:::-;23442:2;23437:3;23433:12;23426:19;;23085:366;;;:::o;23457:419::-;23623:4;23661:2;23650:9;23646:18;23638:26;;23710:9;23704:4;23700:20;23696:1;23685:9;23681:17;23674:47;23738:131;23864:4;23738:131;:::i;:::-;23730:139;;23457:419;;;:::o;23882:158::-;24022:10;24018:1;24010:6;24006:14;23999:34;23882:158;:::o;24046:365::-;24188:3;24209:66;24273:1;24268:3;24209:66;:::i;:::-;24202:73;;24284:93;24373:3;24284:93;:::i;:::-;24402:2;24397:3;24393:12;24386:19;;24046:365;;;:::o;24417:419::-;24583:4;24621:2;24610:9;24606:18;24598:26;;24670:9;24664:4;24660:20;24656:1;24645:9;24641:17;24634:47;24698:131;24824:4;24698:131;:::i;:::-;24690:139;;24417:419;;;:::o;24842:172::-;24982:24;24978:1;24970:6;24966:14;24959:48;24842:172;:::o;25020:366::-;25162:3;25183:67;25247:2;25242:3;25183:67;:::i;:::-;25176:74;;25259:93;25348:3;25259:93;:::i;:::-;25377:2;25372:3;25368:12;25361:19;;25020:366;;;:::o;25392:419::-;25558:4;25596:2;25585:9;25581:18;25573:26;;25645:9;25639:4;25635:20;25631:1;25620:9;25616:17;25609:47;25673:131;25799:4;25673:131;:::i;:::-;25665:139;;25392:419;;;:::o;25817:240::-;25957:34;25953:1;25945:6;25941:14;25934:58;26026:23;26021:2;26013:6;26009:15;26002:48;25817:240;:::o;26063:366::-;26205:3;26226:67;26290:2;26285:3;26226:67;:::i;:::-;26219:74;;26302:93;26391:3;26302:93;:::i;:::-;26420:2;26415:3;26411:12;26404:19;;26063:366;;;:::o;26435:419::-;26601:4;26639:2;26628:9;26624:18;26616:26;;26688:9;26682:4;26678:20;26674:1;26663:9;26659:17;26652:47;26716:131;26842:4;26716:131;:::i;:::-;26708:139;;26435:419;;;:::o;26860:169::-;27000:21;26996:1;26988:6;26984:14;26977:45;26860:169;:::o;27035:366::-;27177:3;27198:67;27262:2;27257:3;27198:67;:::i;:::-;27191:74;;27274:93;27363:3;27274:93;:::i;:::-;27392:2;27387:3;27383:12;27376:19;;27035:366;;;:::o;27407:419::-;27573:4;27611:2;27600:9;27596:18;27588:26;;27660:9;27654:4;27650:20;27646:1;27635:9;27631:17;27624:47;27688:131;27814:4;27688:131;:::i;:::-;27680:139;;27407:419;;;:::o;27832:241::-;27972:34;27968:1;27960:6;27956:14;27949:58;28041:24;28036:2;28028:6;28024:15;28017:49;27832:241;:::o;28079:366::-;28221:3;28242:67;28306:2;28301:3;28242:67;:::i;:::-;28235:74;;28318:93;28407:3;28318:93;:::i;:::-;28436:2;28431:3;28427:12;28420:19;;28079:366;;;:::o;28451:419::-;28617:4;28655:2;28644:9;28640:18;28632:26;;28704:9;28698:4;28694:20;28690:1;28679:9;28675:17;28668:47;28732:131;28858:4;28732:131;:::i;:::-;28724:139;;28451:419;;;:::o;28876:191::-;28916:4;28936:20;28954:1;28936:20;:::i;:::-;28931:25;;28970:20;28988:1;28970:20;:::i;:::-;28965:25;;29009:1;29006;29003:8;29000:34;;;29014:18;;:::i;:::-;29000:34;29059:1;29056;29052:9;29044:17;;28876:191;;;;:::o;29073:225::-;29213:34;29209:1;29201:6;29197:14;29190:58;29282:8;29277:2;29269:6;29265:15;29258:33;29073:225;:::o;29304:366::-;29446:3;29467:67;29531:2;29526:3;29467:67;:::i;:::-;29460:74;;29543:93;29632:3;29543:93;:::i;:::-;29661:2;29656:3;29652:12;29645:19;;29304:366;;;:::o;29676:419::-;29842:4;29880:2;29869:9;29865:18;29857:26;;29929:9;29923:4;29919:20;29915:1;29904:9;29900:17;29893:47;29957:131;30083:4;29957:131;:::i;:::-;29949:139;;29676:419;;;:::o;30101:147::-;30202:11;30239:3;30224:18;;30101:147;;;;:::o;30254:114::-;;:::o;30374:398::-;30533:3;30554:83;30635:1;30630:3;30554:83;:::i;:::-;30547:90;;30646:93;30735:3;30646:93;:::i;:::-;30764:1;30759:3;30755:11;30748:18;;30374:398;;;:::o;30778:379::-;30962:3;30984:147;31127:3;30984:147;:::i;:::-;30977:154;;31148:3;31141:10;;30778:379;;;:::o;31163:180::-;31211:77;31208:1;31201:88;31308:4;31305:1;31298:15;31332:4;31329:1;31322:15;31349:180;31397:77;31394:1;31387:88;31494:4;31491:1;31484:15;31518:4;31515:1;31508:15;31535:143;31592:5;31623:6;31617:13;31608:22;;31639:33;31666:5;31639:33;:::i;:::-;31535:143;;;;:::o;31684:351::-;31754:6;31803:2;31791:9;31782:7;31778:23;31774:32;31771:119;;;31809:79;;:::i;:::-;31771:119;31929:1;31954:64;32010:7;32001:6;31990:9;31986:22;31954:64;:::i;:::-;31944:74;;31900:128;31684:351;;;;:::o;32041:85::-;32086:7;32115:5;32104:16;;32041:85;;;:::o;32132:158::-;32190:9;32223:61;32241:42;32250:32;32276:5;32250:32;:::i;:::-;32241:42;:::i;:::-;32223:61;:::i;:::-;32210:74;;32132:158;;;:::o;32296:147::-;32391:45;32430:5;32391:45;:::i;:::-;32386:3;32379:58;32296:147;;:::o;32449:114::-;32516:6;32550:5;32544:12;32534:22;;32449:114;;;:::o;32569:184::-;32668:11;32702:6;32697:3;32690:19;32742:4;32737:3;32733:14;32718:29;;32569:184;;;;:::o;32759:132::-;32826:4;32849:3;32841:11;;32879:4;32874:3;32870:14;32862:22;;32759:132;;;:::o;32897:108::-;32974:24;32992:5;32974:24;:::i;:::-;32969:3;32962:37;32897:108;;:::o;33011:179::-;33080:10;33101:46;33143:3;33135:6;33101:46;:::i;:::-;33179:4;33174:3;33170:14;33156:28;;33011:179;;;;:::o;33196:113::-;33266:4;33298;33293:3;33289:14;33281:22;;33196:113;;;:::o;33345:732::-;33464:3;33493:54;33541:5;33493:54;:::i;:::-;33563:86;33642:6;33637:3;33563:86;:::i;:::-;33556:93;;33673:56;33723:5;33673:56;:::i;:::-;33752:7;33783:1;33768:284;33793:6;33790:1;33787:13;33768:284;;;33869:6;33863:13;33896:63;33955:3;33940:13;33896:63;:::i;:::-;33889:70;;33982:60;34035:6;33982:60;:::i;:::-;33972:70;;33828:224;33815:1;33812;33808:9;33803:14;;33768:284;;;33772:14;34068:3;34061:10;;33469:608;;;33345:732;;;;:::o;34083:831::-;34346:4;34384:3;34373:9;34369:19;34361:27;;34398:71;34466:1;34455:9;34451:17;34442:6;34398:71;:::i;:::-;34479:80;34555:2;34544:9;34540:18;34531:6;34479:80;:::i;:::-;34606:9;34600:4;34596:20;34591:2;34580:9;34576:18;34569:48;34634:108;34737:4;34728:6;34634:108;:::i;:::-;34626:116;;34752:72;34820:2;34809:9;34805:18;34796:6;34752:72;:::i;:::-;34834:73;34902:3;34891:9;34887:19;34878:6;34834:73;:::i;:::-;34083:831;;;;;;;;:::o;34920:807::-;35169:4;35207:3;35196:9;35192:19;35184:27;;35221:71;35289:1;35278:9;35274:17;35265:6;35221:71;:::i;:::-;35302:72;35370:2;35359:9;35355:18;35346:6;35302:72;:::i;:::-;35384:80;35460:2;35449:9;35445:18;35436:6;35384:80;:::i;:::-;35474;35550:2;35539:9;35535:18;35526:6;35474:80;:::i;:::-;35564:73;35632:3;35621:9;35617:19;35608:6;35564:73;:::i;:::-;35647;35715:3;35704:9;35700:19;35691:6;35647:73;:::i;:::-;34920:807;;;;;;;;;:::o;35733:143::-;35790:5;35821:6;35815:13;35806:22;;35837:33;35864:5;35837:33;:::i;:::-;35733:143;;;;:::o;35882:663::-;35970:6;35978;35986;36035:2;36023:9;36014:7;36010:23;36006:32;36003:119;;;36041:79;;:::i;:::-;36003:119;36161:1;36186:64;36242:7;36233:6;36222:9;36218:22;36186:64;:::i;:::-;36176:74;;36132:128;36299:2;36325:64;36381:7;36372:6;36361:9;36357:22;36325:64;:::i;:::-;36315:74;;36270:129;36438:2;36464:64;36520:7;36511:6;36500:9;36496:22;36464:64;:::i;:::-;36454:74;;36409:129;35882:663;;;;;:::o

Swarm Source

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