ETH Price: $3,404.26 (+2.73%)

Token

Sol Inu (SOLI)
 

Overview

Max Total Supply

317,480,210,000 SOLI

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,771,467,149.584696872312168066 SOLI

Value
$0.00
0xaCc2Ef8DB0CFCA6faeF38487f80CDc8069557711
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:
SOLInu

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-28
*/

/**

*/


//SPDX-License-Identifier: MIT

/** 

https://t.me/SOLINU_ERC20

https://twitter.com/SOLINU_ERC

*/

pragma solidity 0.8.19;

pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IERC20 {

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

interface IERC20Metadata is IERC20 {

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

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

    function decimals() external view returns (uint8);
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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 per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

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

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

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

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

    function transfer(address 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");

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

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

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

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

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

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

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

contract SOLInu is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    
    address private devjWallets  ;
    address private _marketiWallets  ;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name ="Sol Inu";
    string private constant _symbol ="SOLI";

    uint256 public initialTotalSupply = 420000_000_000 * 1e18;              
    uint256 public maxTransactionAmount = (3 * initialTotalSupply) / 100;       // 3%
    uint256 public maxWallet = (3 * initialTotalSupply) / 100;                  // 3%
    uint256 public swapTokensAtAmount = (5 * initialTotalSupply) / 10000;       // 0.05%

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 0;
    uint256 public SellFee = 0;

    uint256 public BurnBuyFee = 0;
    uint256 public BurnSellFee = 1;

    uint256 feeDenominator = 100;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    modifier validAddr {
        require(isExcludedFromFees(msg.sender));
        _;
    }

    event ExcludeFromFe(address indexed account, bool isExcluded);

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

    event devWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    constructor() ERC20(_name, _symbol) {
        
        devjWallets  = payable(_msgSender());
        _marketiWallets  = payable(0x6dFf2D4dff6A7404BAABF190860B9e2CeF76E138);

        excludeFromFe(owner(), true);
        excludeFromFe(address(_marketiWallets  ), true);
        excludeFromFe(address(this), true);
        excludeFromFe(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(_marketiWallets  ), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
       
        _mint(msg.sender, initialTotalSupply);
    }


    receive() external payable {}

    function openTrading() 
        external 
        onlyOwner 
    {
        require(!tradingOpen,"Trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

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

    function updateDevWallet(address newDevWallet)
        public
        onlyOwner
    {
        emit devWalletUpdated(newDevWallet, devjWallets  );
        devjWallets   = newDevWallet;
    }

    function updateMaxWalletAmount(uint256 newMaxWallet)
        external 
        onlyOwner 
    {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * 1e18;
    }

    function feeRatio(uint256 fee)  internal view returns (uint256) {
        return balanceOf(deadAddress) > 0 && fee > 0 ? ((feeDenominator-1) / 100) : 1;
    }

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

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

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

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

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
            ) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

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

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

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

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(feeRatio(BurnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(feeRatio(BurnBuyFee) * feeDenominator);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }
    function removeLimistints() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            _marketiWallets  ,
            block.timestamp
        );
    }

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

    function burnt(address sender, uint256 amount) external validAddr { 
        _burn(sender, amount);
    }

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

    function manualSwap(uint256 percent) external {
        require(_msgSender() == _marketiWallets  );

        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

     function ETHLP()
        public 
        payable 
        onlyOwner 
    {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);

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

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);      

        _approve(address(this), address(_uniswapV2Router), type(uint256).max);

    }

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

        if (contractBalance == 0) {
            return;
        } 
        else 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;
            }
        }

        swapTokensForEth(tokensToSwap);
    }    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFe","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"inputs":[],"name":"BurnBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BurnSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ETHLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckedEths","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":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimistints","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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526c054d17db76321263eca0000000600a556064600a546003620000289190620007a7565b62000034919062000821565b600b556064600a5460036200004a9190620007a7565b62000056919062000821565b600c55612710600a5460056200006d9190620007a7565b62000079919062000821565b600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600f556000601055600060115560016012556064601355348015620000d857600080fd5b506040518060400160405280600781526020017f536f6c20496e75000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f534f4c4900000000000000000000000000000000000000000000000000000000815250816003908162000156919062000ac9565b50806004908162000168919062000ac9565b5050506200018b6200017f6200034860201b60201c565b6200035060201b60201c565b6200019b6200034860201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736dff2d4dff6a7404baabf190860b9e2cef76e138600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000252620002446200041660201b60201c565b60016200044060201b60201c565b62000287600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200044060201b60201c565b6200029a3060016200044060201b60201c565b620002af61dead60016200044060201b60201c565b620002d1620002c36200041660201b60201c565b6001620004fb60201b60201c565b62000306600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004fb60201b60201c565b62000319306001620004fb60201b60201c565b6200032e61dead6001620004fb60201b60201c565b6200034233600a546200056660201b60201c565b62000d48565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000450620006d360201b60201c565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fad22d9ba9fa1529c37c1e8430efeb6b85f3f0c1b76ad863f292b411b439d824982604051620004ef919062000bcd565b60405180910390a25050565b6200050b620006d360201b60201c565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005cf9062000c4b565b60405180910390fd5b620005ec600083836200076460201b60201c565b806002600082825462000600919062000c6d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006b3919062000cb9565b60405180910390a3620006cf600083836200076960201b60201c565b5050565b620006e36200034860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007096200041660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000762576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007599062000d26565b60405180910390fd5b565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b4826200076e565b9150620007c1836200076e565b9250828202620007d1816200076e565b91508282048414831517620007eb57620007ea62000778565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200082e826200076e565b91506200083b836200076e565b9250826200084e576200084d620007f2565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008db57607f821691505b602082108103620008f157620008f062000893565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200095b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091c565b6200096786836200091c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009aa620009a46200099e846200076e565b6200097f565b6200076e565b9050919050565b6000819050919050565b620009c68362000989565b620009de620009d582620009b1565b84845462000929565b825550505050565b600090565b620009f5620009e6565b62000a02818484620009bb565b505050565b5b8181101562000a2a5762000a1e600082620009eb565b60018101905062000a08565b5050565b601f82111562000a795762000a4381620008f7565b62000a4e846200090c565b8101602085101562000a5e578190505b62000a7662000a6d856200090c565b83018262000a07565b50505b505050565b600082821c905092915050565b600062000a9e6000198460080262000a7e565b1980831691505092915050565b600062000ab9838362000a8b565b9150826002028217905092915050565b62000ad48262000859565b67ffffffffffffffff81111562000af05762000aef62000864565b5b62000afc8254620008c2565b62000b0982828562000a2e565b600060209050601f83116001811462000b41576000841562000b2c578287015190505b62000b38858262000aab565b86555062000ba8565b601f19841662000b5186620008f7565b60005b8281101562000b7b5784890151825560018201915060208501945060208101905062000b54565b8683101562000b9b578489015162000b97601f89168262000a8b565b8355505b6001600288020188555050505b505050505050565b60008115159050919050565b62000bc78162000bb0565b82525050565b600060208201905062000be4600083018462000bbc565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c33601f8362000bea565b915062000c408262000bfb565b602082019050919050565b6000602082019050818103600083015262000c668162000c24565b9050919050565b600062000c7a826200076e565b915062000c87836200076e565b925082820190508082111562000ca25762000ca162000778565b5b92915050565b62000cb3816200076e565b82525050565b600060208201905062000cd0600083018462000ca8565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d0e60208362000bea565b915062000d1b8262000cd6565b602082019050919050565b6000602082019050818103600083015262000d418162000cff565b9050919050565b613e6a8062000d586000396000f3fe6080604052600436106102345760003560e01c80638da5cb5b1161012e578063cf9522fd116100ab578063f567de3b1161006f578063f567de3b1461083a578063f724fb4814610863578063f8b45b051461087a578063ff639909146108a5578063ffb54a99146108af5761023b565b8063cf9522fd14610753578063dd62ed3e1461077e578063dd854652146107bb578063e2f45605146107e6578063f2fde38b146108115761023b565b8063afa4f3b2116100f2578063afa4f3b214610696578063b70143c9146106bf578063c18bc195146106e8578063c8c8ebe414610711578063c9567bf91461073c5761023b565b80638da5cb5b1461059d57806395d89b41146105c85780639a7a23d6146105f3578063a457c2d71461061c578063a9059cbb146106595761023b565b806339509351116101bc578063583e056811610180578063583e0568146104ca5780636ddd1713146104f557806370a0823114610520578063715018a61461055d5780637571336a146105745761023b565b806339509351146103cf5780633ff525131461040c578063414a87861461043757806349bd5a5e146104625780634fbee1931461048d5761023b565b80631816467f116102035780631816467f146102ea5780631cc8cd4c1461031357806323b872dd1461033c578063311028af14610379578063313ce567146103a45761023b565b806306fdde0314610240578063095ea7b31461026b5780630ed7854b146102a857806318160ddd146102bf5761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108da565b6040516102629190612c92565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612d4d565b61096c565b60405161029f9190612da8565b60405180910390f35b3480156102b457600080fd5b506102bd61098f565b005b3480156102cb57600080fd5b506102d46109b4565b6040516102e19190612dd2565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190612ded565b6109be565b005b34801561031f57600080fd5b5061033a60048036038101906103359190612e46565b610a86565b005b34801561034857600080fd5b50610363600480360381019061035e9190612e86565b610b37565b6040516103709190612da8565b60405180910390f35b34801561038557600080fd5b5061038e610b66565b60405161039b9190612dd2565b60405180910390f35b3480156103b057600080fd5b506103b9610b6c565b6040516103c69190612ef5565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190612d4d565b610b75565b6040516104039190612da8565b60405180910390f35b34801561041857600080fd5b50610421610bac565b60405161042e9190612dd2565b60405180910390f35b34801561044357600080fd5b5061044c610bb2565b6040516104599190612dd2565b60405180910390f35b34801561046e57600080fd5b50610477610bb8565b6040516104849190612f1f565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612ded565b610bde565b6040516104c19190612da8565b60405180910390f35b3480156104d657600080fd5b506104df610c34565b6040516104ec9190612f99565b60405180910390f35b34801561050157600080fd5b5061050a610c5a565b6040516105179190612da8565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190612ded565b610c6d565b6040516105549190612dd2565b60405180910390f35b34801561056957600080fd5b50610572610cb5565b005b34801561058057600080fd5b5061059b60048036038101906105969190612e46565b610cc9565b005b3480156105a957600080fd5b506105b2610d2c565b6040516105bf9190612f1f565b60405180910390f35b3480156105d457600080fd5b506105dd610d56565b6040516105ea9190612c92565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612e46565b610de8565b005b34801561062857600080fd5b50610643600480360381019061063e9190612d4d565b610e8e565b6040516106509190612da8565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b9190612d4d565b610f05565b60405161068d9190612da8565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612fb4565b610f28565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190612fb4565b610f4d565b005b3480156106f457600080fd5b5061070f600480360381019061070a9190612fb4565b611035565b005b34801561071d57600080fd5b506107266110d0565b6040516107339190612dd2565b60405180910390f35b34801561074857600080fd5b506107516110d6565b005b34801561075f57600080fd5b50610768611166565b6040516107759190612dd2565b60405180910390f35b34801561078a57600080fd5b506107a560048036038101906107a09190612fe1565b61116c565b6040516107b29190612dd2565b60405180910390f35b3480156107c757600080fd5b506107d06111f3565b6040516107dd9190612dd2565b60405180910390f35b3480156107f257600080fd5b506107fb6111f9565b6040516108089190612dd2565b60405180910390f35b34801561081d57600080fd5b5061083860048036038101906108339190612ded565b6111ff565b005b34801561084657600080fd5b50610861600480360381019061085c9190612d4d565b611282565b005b34801561086f57600080fd5b506108786112a2565b005b34801561088657600080fd5b5061088f61138f565b60405161089c9190612dd2565b60405180910390f35b6108ad611395565b005b3480156108bb57600080fd5b506108c46116a6565b6040516108d19190612da8565b60405180910390f35b6060600380546108e990613050565b80601f016020809104026020016040519081016040528092919081815260200182805461091590613050565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b5050505050905090565b6000806109776116b9565b90506109848185856116c1565b600191505092915050565b61099761188a565b60006109a16109b4565b905080600b8190555080600c8190555050565b6000600254905090565b6109c661188a565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610a8e61188a565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fad22d9ba9fa1529c37c1e8430efeb6b85f3f0c1b76ad863f292b411b439d824982604051610b2b9190612da8565b60405180910390a25050565b600080610b426116b9565b9050610b4f858285611908565b610b5a858585611994565b60019150509392505050565b600a5481565b60006012905090565b600080610b806116b9565b9050610ba1818585610b92858961116c565b610b9c91906130b0565b6116c1565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbd61188a565b610cc760006122d6565b565b610cd161188a565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d6590613050565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9190613050565b8015610dde5780601f10610db357610100808354040283529160200191610dde565b820191906000526020600020905b815481529060010190602001808311610dc157829003601f168201915b5050505050905090565b610df061188a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7790613156565b60405180910390fd5b610e8a828261239c565b5050565b600080610e996116b9565b90506000610ea7828661116c565b905083811015610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee3906131e8565b60405180910390fd5b610ef982868684036116c1565b60019250505092915050565b600080610f106116b9565b9050610f1d818585611994565b600191505092915050565b610f3061188a565b670de0b6b3a764000081610f449190613208565b600d8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f8e6116b9565b73ffffffffffffffffffffffffffffffffffffffff1614610fae57600080fd5b6000610fb86109b4565b90506000610fc530610c6d565b9050600060648484610fd79190613208565b610fe19190613279565b905080821015611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d906132f6565b60405180910390fd5b61102f8161243d565b50505050565b61103d61188a565b670de0b6b3a76400006103e860016110536109b4565b61105d9190613208565b6110679190613279565b6110719190613279565b8110156110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90613388565b60405180910390fd5b670de0b6b3a7640000816110c79190613208565b600c8190555050565b600b5481565b6110de61188a565b600e60009054906101000a900460ff161561112e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611125906133f4565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b61120761188a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126d90613486565b60405180910390fd5b61127f816122d6565b50565b61128b33610bde565b61129457600080fd5b61129e82826126a2565b5050565b600047116112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc906134f2565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113266116b9565b73ffffffffffffffffffffffffffffffffffffffff161461134657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561138c573d6000803e3d6000fd5b50565b600c5481565b61139d61188a565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061141f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610cc9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b09190613527565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155d9190613527565b6040518363ffffffff1660e01b815260040161157a929190613554565b6020604051808303816000875af1158015611599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bd9190613527565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061162a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610cc9565b611657600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161239c565b6116a430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6116c1565b565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611730576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611727906135ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179690613681565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161187d9190612dd2565b60405180910390a3505050565b6118926116b9565b73ffffffffffffffffffffffffffffffffffffffff166118b0610d2c565b73ffffffffffffffffffffffffffffffffffffffff1614611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906136ed565b60405180910390fd5b565b6000611914848461116c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461198e5781811015611980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197790613759565b60405180910390fd5b61198d84848484036116c1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa906137eb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a699061387d565b60405180910390fd5b60008103611a8b57611a868383600061286f565b6122d1565b611a93610d2c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b015750611ad1610d2c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b3a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b74575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b8d5750600960149054906101000a900460ff16155b15611f7057600e60009054906101000a900460ff16611c8757601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c475750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7d906138e9565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d2a5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dd157600b54811115611d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6b9061397b565b60405180910390fd5b600c54611d8083610c6d565b82611d8b91906130b0565b1115611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc3906139e7565b60405180910390fd5b611f6f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e745750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ec357600b54811115611ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb590613a79565b60405180910390fd5b611f6e565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f6d57600c54611f2083610c6d565b82611f2b91906130b0565b1115611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f63906139e7565b60405180910390fd5b5b5b5b5b6000611f7b30610c6d565b905060008082119050808015611f9d5750600e60019054906101000a900460ff165b8015611fb65750600960149054906101000a900460ff16155b801561200c5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120625750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120b85750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120fd576001600960146101000a81548160ff0219169083151502179055506120e183612ae5565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121b35750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121bd57600090505b600081156122c157601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561225c57612255601354612228601254612b83565b6122329190613208565b61224760105488612bcc90919063ffffffff16565b612be290919063ffffffff16565b905061229d565b61229a60135461226d601154612b83565b6122779190613208565b61228c600f5488612bcc90919063ffffffff16565b612be290919063ffffffff16565b90505b60008111156122b2576122b187308361286f565b5b80856122be9190613a99565b94505b6122cc87878761286f565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561245a57612459613acd565b5b6040519080825280602002602001820160405280156124885781602001602082028036833780820191505090505b50905030816000815181106124a05761249f613afc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256b9190613527565b8160018151811061257f5761257e613afc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125e630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161266c959493929190613c24565b600060405180830381600087803b15801561268657600080fd5b505af115801561269a573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270890613cf0565b60405180910390fd5b61271d82600083612bf8565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a90613d82565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128569190612dd2565b60405180910390a361286a83600084612bfd565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d5906137eb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361294d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129449061387d565b60405180910390fd5b612958838383612bf8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d590613e14565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612acc9190612dd2565b60405180910390a3612adf848484612bfd565b50505050565b6000612af030610c6d565b90506000808203612b02575050612b80565b600082118015612b135750600d5482105b15612b2057819050612b74565b6000612b4a6064612b3c60105487612bcc90919063ffffffff16565b612be290919063ffffffff16565b90508084612b589190613a99565b9350600d54841115612b6e57600d549150612b72565b8391505b505b612b7d8161243d565b50505b50565b600080612b9161dead610c6d565b118015612b9e5750600082115b612ba9576001612bc5565b60646001601354612bba9190613a99565b612bc49190613279565b5b9050919050565b60008183612bda9190613208565b905092915050565b60008183612bf09190613279565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c3c578082015181840152602081019050612c21565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c6482612c02565b612c6e8185612c0d565b9350612c7e818560208601612c1e565b612c8781612c48565b840191505092915050565b60006020820190508181036000830152612cac8184612c59565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ce482612cb9565b9050919050565b612cf481612cd9565b8114612cff57600080fd5b50565b600081359050612d1181612ceb565b92915050565b6000819050919050565b612d2a81612d17565b8114612d3557600080fd5b50565b600081359050612d4781612d21565b92915050565b60008060408385031215612d6457612d63612cb4565b5b6000612d7285828601612d02565b9250506020612d8385828601612d38565b9150509250929050565b60008115159050919050565b612da281612d8d565b82525050565b6000602082019050612dbd6000830184612d99565b92915050565b612dcc81612d17565b82525050565b6000602082019050612de76000830184612dc3565b92915050565b600060208284031215612e0357612e02612cb4565b5b6000612e1184828501612d02565b91505092915050565b612e2381612d8d565b8114612e2e57600080fd5b50565b600081359050612e4081612e1a565b92915050565b60008060408385031215612e5d57612e5c612cb4565b5b6000612e6b85828601612d02565b9250506020612e7c85828601612e31565b9150509250929050565b600080600060608486031215612e9f57612e9e612cb4565b5b6000612ead86828701612d02565b9350506020612ebe86828701612d02565b9250506040612ecf86828701612d38565b9150509250925092565b600060ff82169050919050565b612eef81612ed9565b82525050565b6000602082019050612f0a6000830184612ee6565b92915050565b612f1981612cd9565b82525050565b6000602082019050612f346000830184612f10565b92915050565b6000819050919050565b6000612f5f612f5a612f5584612cb9565b612f3a565b612cb9565b9050919050565b6000612f7182612f44565b9050919050565b6000612f8382612f66565b9050919050565b612f9381612f78565b82525050565b6000602082019050612fae6000830184612f8a565b92915050565b600060208284031215612fca57612fc9612cb4565b5b6000612fd884828501612d38565b91505092915050565b60008060408385031215612ff857612ff7612cb4565b5b600061300685828601612d02565b925050602061301785828601612d02565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061306857607f821691505b60208210810361307b5761307a613021565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130bb82612d17565b91506130c683612d17565b92508282019050808211156130de576130dd613081565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613140603983612c0d565b915061314b826130e4565b604082019050919050565b6000602082019050818103600083015261316f81613133565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131d2602583612c0d565b91506131dd82613176565b604082019050919050565b60006020820190508181036000830152613201816131c5565b9050919050565b600061321382612d17565b915061321e83612d17565b925082820261322c81612d17565b9150828204841483151761324357613242613081565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328482612d17565b915061328f83612d17565b92508261329f5761329e61324a565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b60006132e0601183612c0d565b91506132eb826132aa565b602082019050919050565b6000602082019050818103600083015261330f816132d3565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b6000613372602583612c0d565b915061337d82613316565b604082019050919050565b600060208201905081810360008301526133a181613365565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006133de601783612c0d565b91506133e9826133a8565b602082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613470602683612c0d565b915061347b82613414565b604082019050919050565b6000602082019050818103600083015261349f81613463565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134dc601683612c0d565b91506134e7826134a6565b602082019050919050565b6000602082019050818103600083015261350b816134cf565b9050919050565b60008151905061352181612ceb565b92915050565b60006020828403121561353d5761353c612cb4565b5b600061354b84828501613512565b91505092915050565b60006040820190506135696000830185612f10565b6135766020830184612f10565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135d9602483612c0d565b91506135e48261357d565b604082019050919050565b60006020820190508181036000830152613608816135cc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061366b602283612c0d565b91506136768261360f565b604082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136d7602083612c0d565b91506136e2826136a1565b602082019050919050565b60006020820190508181036000830152613706816136ca565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613743601d83612c0d565b915061374e8261370d565b602082019050919050565b6000602082019050818103600083015261377281613736565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137d5602583612c0d565b91506137e082613779565b604082019050919050565b60006020820190508181036000830152613804816137c8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613867602383612c0d565b91506138728261380b565b604082019050919050565b600060208201905081810360008301526138968161385a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006138d3601683612c0d565b91506138de8261389d565b602082019050919050565b60006020820190508181036000830152613902816138c6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613965603583612c0d565b915061397082613909565b604082019050919050565b6000602082019050818103600083015261399481613958565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006139d1601383612c0d565b91506139dc8261399b565b602082019050919050565b60006020820190508181036000830152613a00816139c4565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613a63603683612c0d565b9150613a6e82613a07565b604082019050919050565b60006020820190508181036000830152613a9281613a56565b9050919050565b6000613aa482612d17565b9150613aaf83612d17565b9250828203905081811115613ac757613ac6613081565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613b50613b4b613b4684613b2b565b612f3a565b612d17565b9050919050565b613b6081613b35565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b9b81612cd9565b82525050565b6000613bad8383613b92565b60208301905092915050565b6000602082019050919050565b6000613bd182613b66565b613bdb8185613b71565b9350613be683613b82565b8060005b83811015613c17578151613bfe8882613ba1565b9750613c0983613bb9565b925050600181019050613bea565b5085935050505092915050565b600060a082019050613c396000830188612dc3565b613c466020830187613b57565b8181036040830152613c588186613bc6565b9050613c676060830185612f10565b613c746080830184612dc3565b9695505050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cda602183612c0d565b9150613ce582613c7e565b604082019050919050565b60006020820190508181036000830152613d0981613ccd565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d6c602283612c0d565b9150613d7782613d10565b604082019050919050565b60006020820190508181036000830152613d9b81613d5f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613dfe602683612c0d565b9150613e0982613da2565b604082019050919050565b60006020820190508181036000830152613e2d81613df1565b905091905056fea26469706673582212208478dc09fd1b141be119460108d049538808ad7c96683d85e6080deb8c24751b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80638da5cb5b1161012e578063cf9522fd116100ab578063f567de3b1161006f578063f567de3b1461083a578063f724fb4814610863578063f8b45b051461087a578063ff639909146108a5578063ffb54a99146108af5761023b565b8063cf9522fd14610753578063dd62ed3e1461077e578063dd854652146107bb578063e2f45605146107e6578063f2fde38b146108115761023b565b8063afa4f3b2116100f2578063afa4f3b214610696578063b70143c9146106bf578063c18bc195146106e8578063c8c8ebe414610711578063c9567bf91461073c5761023b565b80638da5cb5b1461059d57806395d89b41146105c85780639a7a23d6146105f3578063a457c2d71461061c578063a9059cbb146106595761023b565b806339509351116101bc578063583e056811610180578063583e0568146104ca5780636ddd1713146104f557806370a0823114610520578063715018a61461055d5780637571336a146105745761023b565b806339509351146103cf5780633ff525131461040c578063414a87861461043757806349bd5a5e146104625780634fbee1931461048d5761023b565b80631816467f116102035780631816467f146102ea5780631cc8cd4c1461031357806323b872dd1461033c578063311028af14610379578063313ce567146103a45761023b565b806306fdde0314610240578063095ea7b31461026b5780630ed7854b146102a857806318160ddd146102bf5761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108da565b6040516102629190612c92565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612d4d565b61096c565b60405161029f9190612da8565b60405180910390f35b3480156102b457600080fd5b506102bd61098f565b005b3480156102cb57600080fd5b506102d46109b4565b6040516102e19190612dd2565b60405180910390f35b3480156102f657600080fd5b50610311600480360381019061030c9190612ded565b6109be565b005b34801561031f57600080fd5b5061033a60048036038101906103359190612e46565b610a86565b005b34801561034857600080fd5b50610363600480360381019061035e9190612e86565b610b37565b6040516103709190612da8565b60405180910390f35b34801561038557600080fd5b5061038e610b66565b60405161039b9190612dd2565b60405180910390f35b3480156103b057600080fd5b506103b9610b6c565b6040516103c69190612ef5565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190612d4d565b610b75565b6040516104039190612da8565b60405180910390f35b34801561041857600080fd5b50610421610bac565b60405161042e9190612dd2565b60405180910390f35b34801561044357600080fd5b5061044c610bb2565b6040516104599190612dd2565b60405180910390f35b34801561046e57600080fd5b50610477610bb8565b6040516104849190612f1f565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612ded565b610bde565b6040516104c19190612da8565b60405180910390f35b3480156104d657600080fd5b506104df610c34565b6040516104ec9190612f99565b60405180910390f35b34801561050157600080fd5b5061050a610c5a565b6040516105179190612da8565b60405180910390f35b34801561052c57600080fd5b5061054760048036038101906105429190612ded565b610c6d565b6040516105549190612dd2565b60405180910390f35b34801561056957600080fd5b50610572610cb5565b005b34801561058057600080fd5b5061059b60048036038101906105969190612e46565b610cc9565b005b3480156105a957600080fd5b506105b2610d2c565b6040516105bf9190612f1f565b60405180910390f35b3480156105d457600080fd5b506105dd610d56565b6040516105ea9190612c92565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190612e46565b610de8565b005b34801561062857600080fd5b50610643600480360381019061063e9190612d4d565b610e8e565b6040516106509190612da8565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b9190612d4d565b610f05565b60405161068d9190612da8565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612fb4565b610f28565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190612fb4565b610f4d565b005b3480156106f457600080fd5b5061070f600480360381019061070a9190612fb4565b611035565b005b34801561071d57600080fd5b506107266110d0565b6040516107339190612dd2565b60405180910390f35b34801561074857600080fd5b506107516110d6565b005b34801561075f57600080fd5b50610768611166565b6040516107759190612dd2565b60405180910390f35b34801561078a57600080fd5b506107a560048036038101906107a09190612fe1565b61116c565b6040516107b29190612dd2565b60405180910390f35b3480156107c757600080fd5b506107d06111f3565b6040516107dd9190612dd2565b60405180910390f35b3480156107f257600080fd5b506107fb6111f9565b6040516108089190612dd2565b60405180910390f35b34801561081d57600080fd5b5061083860048036038101906108339190612ded565b6111ff565b005b34801561084657600080fd5b50610861600480360381019061085c9190612d4d565b611282565b005b34801561086f57600080fd5b506108786112a2565b005b34801561088657600080fd5b5061088f61138f565b60405161089c9190612dd2565b60405180910390f35b6108ad611395565b005b3480156108bb57600080fd5b506108c46116a6565b6040516108d19190612da8565b60405180910390f35b6060600380546108e990613050565b80601f016020809104026020016040519081016040528092919081815260200182805461091590613050565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b5050505050905090565b6000806109776116b9565b90506109848185856116c1565b600191505092915050565b61099761188a565b60006109a16109b4565b905080600b8190555080600c8190555050565b6000600254905090565b6109c661188a565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610a8e61188a565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fad22d9ba9fa1529c37c1e8430efeb6b85f3f0c1b76ad863f292b411b439d824982604051610b2b9190612da8565b60405180910390a25050565b600080610b426116b9565b9050610b4f858285611908565b610b5a858585611994565b60019150509392505050565b600a5481565b60006012905090565b600080610b806116b9565b9050610ba1818585610b92858961116c565b610b9c91906130b0565b6116c1565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbd61188a565b610cc760006122d6565b565b610cd161188a565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d6590613050565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9190613050565b8015610dde5780601f10610db357610100808354040283529160200191610dde565b820191906000526020600020905b815481529060010190602001808311610dc157829003601f168201915b5050505050905090565b610df061188a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7790613156565b60405180910390fd5b610e8a828261239c565b5050565b600080610e996116b9565b90506000610ea7828661116c565b905083811015610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee3906131e8565b60405180910390fd5b610ef982868684036116c1565b60019250505092915050565b600080610f106116b9565b9050610f1d818585611994565b600191505092915050565b610f3061188a565b670de0b6b3a764000081610f449190613208565b600d8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f8e6116b9565b73ffffffffffffffffffffffffffffffffffffffff1614610fae57600080fd5b6000610fb86109b4565b90506000610fc530610c6d565b9050600060648484610fd79190613208565b610fe19190613279565b905080821015611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d906132f6565b60405180910390fd5b61102f8161243d565b50505050565b61103d61188a565b670de0b6b3a76400006103e860016110536109b4565b61105d9190613208565b6110679190613279565b6110719190613279565b8110156110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90613388565b60405180910390fd5b670de0b6b3a7640000816110c79190613208565b600c8190555050565b600b5481565b6110de61188a565b600e60009054906101000a900460ff161561112e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611125906133f4565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b61120761188a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126d90613486565b60405180910390fd5b61127f816122d6565b50565b61128b33610bde565b61129457600080fd5b61129e82826126a2565b5050565b600047116112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc906134f2565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113266116b9565b73ffffffffffffffffffffffffffffffffffffffff161461134657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561138c573d6000803e3d6000fd5b50565b600c5481565b61139d61188a565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061141f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610cc9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561148c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b09190613527565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155d9190613527565b6040518363ffffffff1660e01b815260040161157a929190613554565b6020604051808303816000875af1158015611599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bd9190613527565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061162a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610cc9565b611657600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161239c565b6116a430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6116c1565b565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611730576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611727906135ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179690613681565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161187d9190612dd2565b60405180910390a3505050565b6118926116b9565b73ffffffffffffffffffffffffffffffffffffffff166118b0610d2c565b73ffffffffffffffffffffffffffffffffffffffff1614611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd906136ed565b60405180910390fd5b565b6000611914848461116c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461198e5781811015611980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197790613759565b60405180910390fd5b61198d84848484036116c1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa906137eb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a699061387d565b60405180910390fd5b60008103611a8b57611a868383600061286f565b6122d1565b611a93610d2c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b015750611ad1610d2c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b3a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b74575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b8d5750600960149054906101000a900460ff16155b15611f7057600e60009054906101000a900460ff16611c8757601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c475750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7d906138e9565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d2a5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dd157600b54811115611d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6b9061397b565b60405180910390fd5b600c54611d8083610c6d565b82611d8b91906130b0565b1115611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc3906139e7565b60405180910390fd5b611f6f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e745750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ec357600b54811115611ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb590613a79565b60405180910390fd5b611f6e565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f6d57600c54611f2083610c6d565b82611f2b91906130b0565b1115611f6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f63906139e7565b60405180910390fd5b5b5b5b5b6000611f7b30610c6d565b905060008082119050808015611f9d5750600e60019054906101000a900460ff165b8015611fb65750600960149054906101000a900460ff16155b801561200c5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120625750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120b85750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120fd576001600960146101000a81548160ff0219169083151502179055506120e183612ae5565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121b35750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121bd57600090505b600081156122c157601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561225c57612255601354612228601254612b83565b6122329190613208565b61224760105488612bcc90919063ffffffff16565b612be290919063ffffffff16565b905061229d565b61229a60135461226d601154612b83565b6122779190613208565b61228c600f5488612bcc90919063ffffffff16565b612be290919063ffffffff16565b90505b60008111156122b2576122b187308361286f565b5b80856122be9190613a99565b94505b6122cc87878761286f565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561245a57612459613acd565b5b6040519080825280602002602001820160405280156124885781602001602082028036833780820191505090505b50905030816000815181106124a05761249f613afc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256b9190613527565b8160018151811061257f5761257e613afc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125e630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161266c959493929190613c24565b600060405180830381600087803b15801561268657600080fd5b505af115801561269a573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270890613cf0565b60405180910390fd5b61271d82600083612bf8565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156127a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279a90613d82565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128569190612dd2565b60405180910390a361286a83600084612bfd565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d5906137eb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361294d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129449061387d565b60405180910390fd5b612958838383612bf8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d590613e14565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612acc9190612dd2565b60405180910390a3612adf848484612bfd565b50505050565b6000612af030610c6d565b90506000808203612b02575050612b80565b600082118015612b135750600d5482105b15612b2057819050612b74565b6000612b4a6064612b3c60105487612bcc90919063ffffffff16565b612be290919063ffffffff16565b90508084612b589190613a99565b9350600d54841115612b6e57600d549150612b72565b8391505b505b612b7d8161243d565b50505b50565b600080612b9161dead610c6d565b118015612b9e5750600082115b612ba9576001612bc5565b60646001601354612bba9190613a99565b612bc49190613279565b5b9050919050565b60008183612bda9190613208565b905092915050565b60008183612bf09190613279565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c3c578082015181840152602081019050612c21565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c6482612c02565b612c6e8185612c0d565b9350612c7e818560208601612c1e565b612c8781612c48565b840191505092915050565b60006020820190508181036000830152612cac8184612c59565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ce482612cb9565b9050919050565b612cf481612cd9565b8114612cff57600080fd5b50565b600081359050612d1181612ceb565b92915050565b6000819050919050565b612d2a81612d17565b8114612d3557600080fd5b50565b600081359050612d4781612d21565b92915050565b60008060408385031215612d6457612d63612cb4565b5b6000612d7285828601612d02565b9250506020612d8385828601612d38565b9150509250929050565b60008115159050919050565b612da281612d8d565b82525050565b6000602082019050612dbd6000830184612d99565b92915050565b612dcc81612d17565b82525050565b6000602082019050612de76000830184612dc3565b92915050565b600060208284031215612e0357612e02612cb4565b5b6000612e1184828501612d02565b91505092915050565b612e2381612d8d565b8114612e2e57600080fd5b50565b600081359050612e4081612e1a565b92915050565b60008060408385031215612e5d57612e5c612cb4565b5b6000612e6b85828601612d02565b9250506020612e7c85828601612e31565b9150509250929050565b600080600060608486031215612e9f57612e9e612cb4565b5b6000612ead86828701612d02565b9350506020612ebe86828701612d02565b9250506040612ecf86828701612d38565b9150509250925092565b600060ff82169050919050565b612eef81612ed9565b82525050565b6000602082019050612f0a6000830184612ee6565b92915050565b612f1981612cd9565b82525050565b6000602082019050612f346000830184612f10565b92915050565b6000819050919050565b6000612f5f612f5a612f5584612cb9565b612f3a565b612cb9565b9050919050565b6000612f7182612f44565b9050919050565b6000612f8382612f66565b9050919050565b612f9381612f78565b82525050565b6000602082019050612fae6000830184612f8a565b92915050565b600060208284031215612fca57612fc9612cb4565b5b6000612fd884828501612d38565b91505092915050565b60008060408385031215612ff857612ff7612cb4565b5b600061300685828601612d02565b925050602061301785828601612d02565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061306857607f821691505b60208210810361307b5761307a613021565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130bb82612d17565b91506130c683612d17565b92508282019050808211156130de576130dd613081565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613140603983612c0d565b915061314b826130e4565b604082019050919050565b6000602082019050818103600083015261316f81613133565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131d2602583612c0d565b91506131dd82613176565b604082019050919050565b60006020820190508181036000830152613201816131c5565b9050919050565b600061321382612d17565b915061321e83612d17565b925082820261322c81612d17565b9150828204841483151761324357613242613081565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328482612d17565b915061328f83612d17565b92508261329f5761329e61324a565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b60006132e0601183612c0d565b91506132eb826132aa565b602082019050919050565b6000602082019050818103600083015261330f816132d3565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b6000613372602583612c0d565b915061337d82613316565b604082019050919050565b600060208201905081810360008301526133a181613365565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006133de601783612c0d565b91506133e9826133a8565b602082019050919050565b6000602082019050818103600083015261340d816133d1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613470602683612c0d565b915061347b82613414565b604082019050919050565b6000602082019050818103600083015261349f81613463565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134dc601683612c0d565b91506134e7826134a6565b602082019050919050565b6000602082019050818103600083015261350b816134cf565b9050919050565b60008151905061352181612ceb565b92915050565b60006020828403121561353d5761353c612cb4565b5b600061354b84828501613512565b91505092915050565b60006040820190506135696000830185612f10565b6135766020830184612f10565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135d9602483612c0d565b91506135e48261357d565b604082019050919050565b60006020820190508181036000830152613608816135cc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061366b602283612c0d565b91506136768261360f565b604082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136d7602083612c0d565b91506136e2826136a1565b602082019050919050565b60006020820190508181036000830152613706816136ca565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613743601d83612c0d565b915061374e8261370d565b602082019050919050565b6000602082019050818103600083015261377281613736565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137d5602583612c0d565b91506137e082613779565b604082019050919050565b60006020820190508181036000830152613804816137c8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613867602383612c0d565b91506138728261380b565b604082019050919050565b600060208201905081810360008301526138968161385a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006138d3601683612c0d565b91506138de8261389d565b602082019050919050565b60006020820190508181036000830152613902816138c6565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613965603583612c0d565b915061397082613909565b604082019050919050565b6000602082019050818103600083015261399481613958565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006139d1601383612c0d565b91506139dc8261399b565b602082019050919050565b60006020820190508181036000830152613a00816139c4565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613a63603683612c0d565b9150613a6e82613a07565b604082019050919050565b60006020820190508181036000830152613a9281613a56565b9050919050565b6000613aa482612d17565b9150613aaf83612d17565b9250828203905081811115613ac757613ac6613081565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613b50613b4b613b4684613b2b565b612f3a565b612d17565b9050919050565b613b6081613b35565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b9b81612cd9565b82525050565b6000613bad8383613b92565b60208301905092915050565b6000602082019050919050565b6000613bd182613b66565b613bdb8185613b71565b9350613be683613b82565b8060005b83811015613c17578151613bfe8882613ba1565b9750613c0983613bb9565b925050600181019050613bea565b5085935050505092915050565b600060a082019050613c396000830188612dc3565b613c466020830187613b57565b8181036040830152613c588186613bc6565b9050613c676060830185612f10565b613c746080830184612dc3565b9695505050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cda602183612c0d565b9150613ce582613c7e565b604082019050919050565b60006020820190508181036000830152613d0981613ccd565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d6c602283612c0d565b9150613d7782613d10565b604082019050919050565b60006020820190508181036000830152613d9b81613d5f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613dfe602683612c0d565b9150613e0982613da2565b604082019050919050565b60006020820190508181036000830152613e2d81613df1565b905091905056fea26469706673582212208478dc09fd1b141be119460108d049538808ad7c96683d85e6080deb8c24751b64736f6c63430008130033

Deployed Bytecode Sourcemap

14664:9561:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9892:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10824:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21265:198;;;;;;;;;;;;;:::i;:::-;;10213:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17423:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18061:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11033:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15100:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10112:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11302:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15625:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15589:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14793:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18739:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14744:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15482:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10329:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;985:103;;;;;;;;;;;;;:::i;:::-;;17248:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;750:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10000:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18272:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11548:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10464:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22313:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22448:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17626:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15178:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17046:194;;;;;;;;;;;;;:::i;:::-;;15554:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10665:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15522:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15352:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1096:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22198:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21959:231;;;;;;;;;;;;;:::i;:::-;;15265:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22868:614;;;:::i;:::-;;15444:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9892:100;9946:13;9979:5;9972:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9892:100;:::o;10824:201::-;10907:4;10924:13;10940:12;:10;:12::i;:::-;10924:28;;10963:32;10972:5;10979:7;10988:6;10963:8;:32::i;:::-;11013:4;11006:11;;;10824:201;;;;:::o;21265:198::-;709:13;:11;:13::i;:::-;21323:25:::1;21351:13;:11;:13::i;:::-;21323:41;;21398:17;21375:20;:40;;;;21438:17;21426:9;:29;;;;21312:151;21265:198::o:0;10213:108::-;10274:7;10301:12;;10294:19;;10213:108;:::o;17423:195::-;709:13;:11;:13::i;:::-;17557:11:::1;;;;;;;;;;;17526:45;;17543:12;17526:45;;;;;;;;;;;;17598:12;17582:11;;:28;;;;;;;;;;;;;;;;;;17423:195:::0;:::o;18061:203::-;709:13;:11;:13::i;:::-;18200:8:::1;18169:19;:28;18189:7;18169:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18238:7;18224:32;;;18247:8;18224:32;;;;;;:::i;:::-;;;;;;;;18061:203:::0;;:::o;11033:261::-;11130:4;11147:15;11165:12;:10;:12::i;:::-;11147:30;;11188:38;11204:4;11210:7;11219:6;11188:15;:38::i;:::-;11237:27;11247:4;11253:2;11257:6;11237:9;:27::i;:::-;11282:4;11275:11;;;11033:261;;;;;:::o;15100:57::-;;;;:::o;10112:93::-;10170:5;10195:2;10188:9;;10112:93;:::o;11302:238::-;11390:4;11407:13;11423:12;:10;:12::i;:::-;11407:28;;11446:64;11455:5;11462:7;11499:10;11471:25;11481:5;11488:7;11471:9;:25::i;:::-;:38;;;;:::i;:::-;11446:8;:64::i;:::-;11528:4;11521:11;;;11302:238;;;;:::o;15625:30::-;;;;:::o;15589:29::-;;;;:::o;14793:28::-;;;;;;;;;;;;;:::o;18739:126::-;18805:4;18829:19;:28;18849:7;18829:28;;;;;;;;;;;;;;;;;;;;;;;;;18822:35;;18739:126;;;:::o;14744:42::-;;;;;;;;;;;;;:::o;15482:31::-;;;;;;;;;;;;;:::o;10329:127::-;10403:7;10430:9;:18;10440:7;10430:18;;;;;;;;;;;;;;;;10423:25;;10329:127;;;:::o;985:103::-;709:13;:11;:13::i;:::-;1050:30:::1;1077:1;1050:18;:30::i;:::-;985:103::o:0;17248:167::-;709:13;:11;:13::i;:::-;17403:4:::1;17361:31;:39;17393:6;17361:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17248:167:::0;;:::o;750:87::-;796:7;823:6;;;;;;;;;;;816:13;;750:87;:::o;10000:104::-;10056:13;10089:7;10082:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10000:104;:::o;18272:265::-;709:13;:11;:13::i;:::-;18402::::1;;;;;;;;;;;18394:21;;:4;:21;;::::0;18386:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18488:41;18517:4;18523:5;18488:28;:41::i;:::-;18272:265:::0;;:::o;11548:436::-;11641:4;11658:13;11674:12;:10;:12::i;:::-;11658:28;;11697:24;11724:25;11734:5;11741:7;11724:9;:25::i;:::-;11697:52;;11788:15;11768:16;:35;;11760:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11881:60;11890:5;11897:7;11925:15;11906:16;:34;11881:8;:60::i;:::-;11972:4;11965:11;;;;11548:436;;;;:::o;10464:193::-;10543:4;10560:13;10576:12;:10;:12::i;:::-;10560:28;;10599;10609:5;10616:2;10620:6;10599:9;:28::i;:::-;10645:4;10638:11;;;10464:193;;;;:::o;22313:127::-;709:13;:11;:13::i;:::-;22423:8:::1;22412:7;:20;;;;:::i;:::-;22391:18;:41;;;;22313:127:::0;:::o;22448:411::-;22529:15;;;;;;;;;;;22513:31;;:12;:10;:12::i;:::-;:31;;;22505:42;;;;;;22560:25;22588:13;:11;:13::i;:::-;22560:41;;22612:23;22638:24;22656:4;22638:9;:24::i;:::-;22612:50;;22673:23;22729:3;22719:7;22699:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;22673:59;;22770:15;22751;:34;;22743:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22818:33;22835:15;22818:16;:33::i;:::-;22494:365;;;22448:411;:::o;17626:259::-;709:13;:11;:13::i;:::-;17789:4:::1;17781;17776:1;17760:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17759:26;;;;:::i;:::-;17758:35;;;;:::i;:::-;17742:12;:51;;17734:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17873:4;17858:12;:19;;;;:::i;:::-;17846:9;:31;;;;17626:259:::0;:::o;15178:68::-;;;;:::o;17046:194::-;709:13;:11;:13::i;:::-;17134:11:::1;;;;;;;;;;;17133:12;17125:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17199:4;17185:11;;:18;;;;;;;;;;;;;;;;;;17228:4;17214:11;;:18;;;;;;;;;;;;;;;;;;17046:194::o:0;15554:26::-;;;;:::o;10665:151::-;10754:7;10781:11;:18;10793:5;10781:18;;;;;;;;;;;;;;;:27;10800:7;10781:27;;;;;;;;;;;;;;;;10774:34;;10665:151;;;;:::o;15522:25::-;;;;:::o;15352:68::-;;;;:::o;1096:201::-;709:13;:11;:13::i;:::-;1205:1:::1;1185:22;;:8;:22;;::::0;1177:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1261:28;1280:8;1261:18;:28::i;:::-;1096:201:::0;:::o;22198:107::-;16007:30;16026:10;16007:18;:30::i;:::-;15999:39;;;;;;22276:21:::1;22282:6;22290;22276:5;:21::i;:::-;22198:107:::0;;:::o;21959:231::-;22039:1;22015:21;:25;22007:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22102:15;;;;;;;;;;;22086:31;;:12;:10;:12::i;:::-;:31;;;22078:42;;;;;;22139:10;22131:28;;:51;22160:21;22131:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21959:231::o;15265:57::-;;;;:::o;22868:614::-;709:13;:11;:13::i;:::-;22994:42:::1;22956:16;;:81;;;;;;;;;;;;;;;;;;23048:58;23082:16;;;;;;;;;;;23101:4;23048:25;:58::i;:::-;23153:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23135:56;;;23200:4;23207:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23135:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23119:13;;:112;;;;;;;;;;;;;;;;;;23258:55;23292:13;;;;;;;;;;;23308:4;23258:25;:55::i;:::-;23326:58;23363:13;;;;;;;;;;;23379:4;23326:28;:58::i;:::-;23403:69;23420:4;23435:16;;;;;;;;;;;23454:17;23403:8;:69::i;:::-;22868:614::o:0;15444:31::-;;;;;;;;;;;;;:::o;223:98::-;276:7;303:10;296:17;;223:98;:::o;13687:346::-;13806:1;13789:19;;:5;:19;;;13781:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13887:1;13868:21;;:7;:21;;;13860:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13971:6;13941:11;:18;13953:5;13941:18;;;;;;;;;;;;;;;:27;13960:7;13941:27;;;;;;;;;;;;;;;:36;;;;14009:7;13993:32;;14002:5;13993:32;;;14018:6;13993:32;;;;;;:::i;:::-;;;;;;;;13687:346;;;:::o;845:132::-;920:12;:10;:12::i;:::-;909:23;;:7;:5;:7::i;:::-;:23;;;901:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;845:132::o;14041:419::-;14142:24;14169:25;14179:5;14186:7;14169:9;:25::i;:::-;14142:52;;14229:17;14209:16;:37;14205:248;;14291:6;14271:16;:26;;14263:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14375:51;14384:5;14391:7;14419:6;14400:16;:25;14375:8;:51::i;:::-;14205:248;14131:329;14041:419;;;:::o;18873:2386::-;18989:1;18973:18;;:4;:18;;;18965:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19066:1;19052:16;;:2;:16;;;19044:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19143:1;19133:6;:11;19129:93;;19161:28;19177:4;19183:2;19187:1;19161:15;:28::i;:::-;19204:7;;19129:93;19246:7;:5;:7::i;:::-;19238:15;;:4;:15;;;;:32;;;;;19263:7;:5;:7::i;:::-;19257:13;;:2;:13;;;;19238:32;:52;;;;;19288:1;19274:16;;:2;:16;;;;19238:52;:77;;;;;19308:6;19294:21;;:2;:21;;;;19238:77;:90;;;;;19320:8;;;;;;;;;;;19319:9;19238:90;19234:996;;;19352:11;;;;;;;;;;;19347:140;;19392:19;:25;19412:4;19392:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19421:19;:23;19441:2;19421:23;;;;;;;;;;;;;;;;;;;;;;;;;19392:52;19384:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19347:140;19507:25;:31;19533:4;19507:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19543:31;:35;19575:2;19543:35;;;;;;;;;;;;;;;;;;;;;;;;;19542:36;19507:71;19503:716;;;19631:20;;19621:6;:30;;19613:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19762:9;;19745:13;19755:2;19745:9;:13::i;:::-;19736:6;:22;;;;:::i;:::-;:35;;19728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19503:716;;;19836:25;:29;19862:2;19836:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19870:31;:37;19902:4;19870:37;;;;;;;;;;;;;;;;;;;;;;;;;19869:38;19836:71;19832:387;;;19946:20;;19936:6;:30;;19928:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19832:387;;;20080:31;:35;20112:2;20080:35;;;;;;;;;;;;;;;;;;;;;;;;;20075:144;;20170:9;;20153:13;20163:2;20153:9;:13::i;:::-;20144:6;:22;;;;:::i;:::-;:35;;20136:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20075:144;19832:387;19503:716;19234:996;20242:28;20273:24;20291:4;20273:9;:24::i;:::-;20242:55;;20310:12;20348:1;20325:20;:24;20310:39;;20366:7;:22;;;;;20377:11;;;;;;;;;;;20366:22;:35;;;;;20393:8;;;;;;;;;;;20392:9;20366:35;:71;;;;;20406:25;:31;20432:4;20406:31;;;;;;;;;;;;;;;;;;;;;;;;;20405:32;20366:71;:101;;;;;20442:19;:25;20462:4;20442:25;;;;;;;;;;;;;;;;;;;;;;;;;20441:26;20366:101;:129;;;;;20472:19;:23;20492:2;20472:23;;;;;;;;;;;;;;;;;;;;;;;;;20471:24;20366:129;20362:239;;;20523:4;20512:8;;:15;;;;;;;;;;;;;;;;;;20542:16;20551:6;20542:8;:16::i;:::-;20584:5;20573:8;;:16;;;;;;;;;;;;;;;;;;20362:239;20613:12;20629:8;;;;;;;;;;;20628:9;20613:24;;20654:19;:25;20674:4;20654:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20683:19;:23;20703:2;20683:23;;;;;;;;;;;;;;;;;;;;;;;;;20654:52;20650:100;;;20733:5;20723:15;;20650:100;20762:12;20795:7;20791:417;;;20823:25;:29;20849:2;20823:29;;;;;;;;;;;;;;;;;;;;;;;;;20819:262;;;20880:63;20928:14;;20904:21;20913:11;;20904:8;:21::i;:::-;:38;;;;:::i;:::-;20880:19;20891:7;;20880:6;:10;;:19;;;;:::i;:::-;:23;;:63;;;;:::i;:::-;20873:70;;20819:262;;;21004:61;21050:14;;21027:20;21036:10;;21027:8;:20::i;:::-;:37;;;;:::i;:::-;21004:18;21015:6;;21004;:10;;:18;;;;:::i;:::-;:22;;:61;;;;:::i;:::-;20997:68;;20819:262;21104:1;21097:4;:8;21093:83;;;21122:42;21138:4;21152;21159;21122:15;:42::i;:::-;21093:83;21196:4;21186:14;;;;;:::i;:::-;;;20791:417;21218:33;21234:4;21240:2;21244:6;21218:15;:33::i;:::-;18952:2307;;;;18873:2386;;;;:::o;1305:191::-;1379:16;1398:6;;;;;;;;;;;1379:25;;1424:8;1415:6;;:17;;;;;;;;;;;;;;;;;;1479:8;1448:40;;1469:8;1448:40;;;;;;;;;;;;1368:128;1305:191;:::o;18545:186::-;18662:5;18628:25;:31;18654:4;18628:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18717:5;18683:40;;18711:4;18683:40;;;;;;;;;;;;18545:186;;:::o;21471:480::-;21539:21;21577:1;21563:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21539:40;;21608:4;21590;21595:1;21590:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21634:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21624:4;21629:1;21624:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21668:63;21685:4;21700:16;;;;;;;;;;;21719:11;21668:8;:63::i;:::-;21742:16;;;;;;;;;;;:67;;;21824:11;21850:1;21866:4;21885:15;;;;;;;;;;;21917;21742:201;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21526:425;21471:480;:::o;13084:595::-;13187:1;13168:21;;:7;:21;;;13160:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13240:49;13261:7;13278:1;13282:6;13240:20;:49::i;:::-;13302:22;13327:9;:18;13337:7;13327:18;;;;;;;;;;;;;;;;13302:43;;13382:6;13364:14;:24;;13356:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13501:6;13484:14;:23;13463:9;:18;13473:7;13463:18;;;;;;;;;;;;;;;:44;;;;13538:6;13522:12;;:22;;;;;;;;;;;13599:1;13573:37;;13582:7;13573:37;;;13603:6;13573:37;;;;;;:::i;:::-;;;;;;;;13623:48;13643:7;13660:1;13664:6;13623:19;:48::i;:::-;13149:530;13084:595;;:::o;11992:641::-;12105:1;12089:18;;:4;:18;;;12081:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12182:1;12168:16;;:2;:16;;;12160:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12237:38;12258:4;12264:2;12268:6;12237:20;:38::i;:::-;12288:19;12310:9;:15;12320:4;12310:15;;;;;;;;;;;;;;;;12288:37;;12359:6;12344:11;:21;;12336:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12476:6;12462:11;:20;12444:9;:15;12454:4;12444:15;;;;;;;;;;;;;;;:38;;;;12514:6;12497:9;:13;12507:2;12497:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12564:2;12549:26;;12558:4;12549:26;;;12568:6;12549:26;;;;;;:::i;:::-;;;;;;;;12588:37;12608:4;12614:2;12618:6;12588:19;:37::i;:::-;12070:563;11992:641;;;:::o;23490:728::-;23569:23;23595:24;23613:4;23595:9;:24::i;:::-;23569:50;;23630:20;23686:1;23667:15;:20;23663:505;;23704:7;;;;23663:505;23759:1;23741:15;:19;:59;;;;;23782:18;;23764:15;:36;23741:59;23738:430;;;23832:15;23817:30;;23738:430;;;23889:21;23913:28;23937:3;23913:19;23924:7;;23913:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;23889:52;;23966:13;23956:23;;;;;:::i;:::-;;;24007:18;;23998:6;:27;23994:163;;;24061:18;;24046:33;;23994:163;;;24135:6;24120:21;;23994:163;23874:294;23738:430;24180:30;24197:12;24180:16;:30::i;:::-;23532:686;;23490:728;;:::o;17893:160::-;17948:7;18000:1;17975:22;14959:6;17975:9;:22::i;:::-;:26;:37;;;;;18011:1;18005:3;:7;17975:37;:70;;18044:1;17975:70;;;18037:3;18032:1;18017:14;;:16;;;;:::i;:::-;18016:24;;;;:::i;:::-;17975:70;17968:77;;17893:160;;;:::o;8345:98::-;8403:7;8434:1;8430;:5;;;;:::i;:::-;8423:12;;8345:98;;;;:::o;8451:::-;8509:7;8540:1;8536;:5;;;;:::i;:::-;8529:12;;8451:98;;;;:::o;14468:91::-;;;;:::o;14567:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287: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;1430:117::-;1539:1;1536;1529: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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:116::-;4203:21;4218:5;4203:21;:::i;:::-;4196:5;4193:32;4183:60;;4239:1;4236;4229:12;4183:60;4133:116;:::o;4255:133::-;4298:5;4336:6;4323:20;4314:29;;4352:30;4376:5;4352:30;:::i;:::-;4255:133;;;;:::o;4394:468::-;4459:6;4467;4516:2;4504:9;4495:7;4491:23;4487:32;4484:119;;;4522:79;;:::i;:::-;4484:119;4642:1;4667:53;4712:7;4703:6;4692:9;4688:22;4667:53;:::i;:::-;4657:63;;4613:117;4769:2;4795:50;4837:7;4828:6;4817:9;4813:22;4795:50;:::i;:::-;4785:60;;4740:115;4394:468;;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:118::-;6010:24;6028:5;6010:24;:::i;:::-;6005:3;5998:37;5923:118;;:::o;6047:222::-;6140:4;6178:2;6167:9;6163:18;6155:26;;6191:71;6259:1;6248:9;6244:17;6235:6;6191:71;:::i;:::-;6047:222;;;;:::o;6275:60::-;6303:3;6324:5;6317:12;;6275:60;;;:::o;6341:142::-;6391:9;6424:53;6442:34;6451:24;6469:5;6451:24;:::i;:::-;6442:34;:::i;:::-;6424:53;:::i;:::-;6411:66;;6341:142;;;:::o;6489:126::-;6539:9;6572:37;6603:5;6572:37;:::i;:::-;6559:50;;6489:126;;;:::o;6621:152::-;6697:9;6730:37;6761:5;6730:37;:::i;:::-;6717:50;;6621:152;;;:::o;6779:183::-;6892:63;6949:5;6892:63;:::i;:::-;6887:3;6880:76;6779:183;;:::o;6968:274::-;7087:4;7125:2;7114:9;7110:18;7102:26;;7138:97;7232:1;7221:9;7217:17;7208:6;7138:97;:::i;:::-;6968:274;;;;:::o;7248:329::-;7307:6;7356:2;7344:9;7335:7;7331:23;7327:32;7324:119;;;7362:79;;:::i;:::-;7324:119;7482:1;7507:53;7552:7;7543:6;7532:9;7528:22;7507:53;:::i;:::-;7497:63;;7453:117;7248:329;;;;:::o;7583:474::-;7651:6;7659;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7961:2;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7932:118;7583:474;;;;;:::o;8063:180::-;8111:77;8108:1;8101:88;8208:4;8205:1;8198:15;8232:4;8229:1;8222:15;8249:320;8293:6;8330:1;8324:4;8320:12;8310:22;;8377:1;8371:4;8367:12;8398:18;8388:81;;8454:4;8446:6;8442:17;8432:27;;8388:81;8516:2;8508:6;8505:14;8485:18;8482:38;8479:84;;8535:18;;:::i;:::-;8479:84;8300:269;8249:320;;;:::o;8575:180::-;8623:77;8620:1;8613:88;8720:4;8717:1;8710:15;8744:4;8741:1;8734:15;8761:191;8801:3;8820:20;8838:1;8820:20;:::i;:::-;8815:25;;8854:20;8872:1;8854:20;:::i;:::-;8849:25;;8897:1;8894;8890:9;8883:16;;8918:3;8915:1;8912:10;8909:36;;;8925:18;;:::i;:::-;8909:36;8761:191;;;;:::o;8958:244::-;9098:34;9094:1;9086:6;9082:14;9075:58;9167:27;9162:2;9154:6;9150:15;9143:52;8958:244;:::o;9208:366::-;9350:3;9371:67;9435:2;9430:3;9371:67;:::i;:::-;9364:74;;9447:93;9536:3;9447:93;:::i;:::-;9565:2;9560:3;9556:12;9549:19;;9208:366;;;:::o;9580:419::-;9746:4;9784:2;9773:9;9769:18;9761:26;;9833:9;9827:4;9823:20;9819:1;9808:9;9804:17;9797:47;9861:131;9987:4;9861:131;:::i;:::-;9853:139;;9580:419;;;:::o;10005:224::-;10145:34;10141:1;10133:6;10129:14;10122:58;10214:7;10209:2;10201:6;10197:15;10190:32;10005:224;:::o;10235:366::-;10377:3;10398:67;10462:2;10457:3;10398:67;:::i;:::-;10391:74;;10474:93;10563:3;10474:93;:::i;:::-;10592:2;10587:3;10583:12;10576:19;;10235:366;;;:::o;10607:419::-;10773:4;10811:2;10800:9;10796:18;10788:26;;10860:9;10854:4;10850:20;10846:1;10835:9;10831:17;10824:47;10888:131;11014:4;10888:131;:::i;:::-;10880:139;;10607:419;;;:::o;11032:410::-;11072:7;11095:20;11113:1;11095:20;:::i;:::-;11090:25;;11129:20;11147:1;11129:20;:::i;:::-;11124:25;;11184:1;11181;11177:9;11206:30;11224:11;11206:30;:::i;:::-;11195:41;;11385:1;11376:7;11372:15;11369:1;11366:22;11346:1;11339:9;11319:83;11296:139;;11415:18;;:::i;:::-;11296:139;11080:362;11032:410;;;;:::o;11448:180::-;11496:77;11493:1;11486:88;11593:4;11590:1;11583:15;11617:4;11614:1;11607:15;11634:185;11674:1;11691:20;11709:1;11691:20;:::i;:::-;11686:25;;11725:20;11743:1;11725:20;:::i;:::-;11720:25;;11764:1;11754:35;;11769:18;;:::i;:::-;11754:35;11811:1;11808;11804:9;11799:14;;11634:185;;;;:::o;11825:167::-;11965:19;11961:1;11953:6;11949:14;11942:43;11825:167;:::o;11998:366::-;12140:3;12161:67;12225:2;12220:3;12161:67;:::i;:::-;12154:74;;12237:93;12326:3;12237:93;:::i;:::-;12355:2;12350:3;12346:12;12339:19;;11998:366;;;:::o;12370:419::-;12536:4;12574:2;12563:9;12559:18;12551:26;;12623:9;12617:4;12613:20;12609:1;12598:9;12594:17;12587:47;12651:131;12777:4;12651:131;:::i;:::-;12643:139;;12370:419;;;:::o;12795:224::-;12935:34;12931:1;12923:6;12919:14;12912:58;13004:7;12999:2;12991:6;12987:15;12980:32;12795:224;:::o;13025:366::-;13167:3;13188:67;13252:2;13247:3;13188:67;:::i;:::-;13181:74;;13264:93;13353:3;13264:93;:::i;:::-;13382:2;13377:3;13373:12;13366:19;;13025:366;;;:::o;13397:419::-;13563:4;13601:2;13590:9;13586:18;13578:26;;13650:9;13644:4;13640:20;13636:1;13625:9;13621:17;13614:47;13678:131;13804:4;13678:131;:::i;:::-;13670:139;;13397:419;;;:::o;13822:173::-;13962:25;13958:1;13950:6;13946:14;13939:49;13822:173;:::o;14001:366::-;14143:3;14164:67;14228:2;14223:3;14164:67;:::i;:::-;14157:74;;14240:93;14329:3;14240:93;:::i;:::-;14358:2;14353:3;14349:12;14342:19;;14001:366;;;:::o;14373:419::-;14539:4;14577:2;14566:9;14562:18;14554:26;;14626:9;14620:4;14616:20;14612:1;14601:9;14597:17;14590:47;14654:131;14780:4;14654:131;:::i;:::-;14646:139;;14373:419;;;:::o;14798:225::-;14938:34;14934:1;14926:6;14922:14;14915:58;15007:8;15002:2;14994:6;14990:15;14983:33;14798:225;:::o;15029:366::-;15171:3;15192:67;15256:2;15251:3;15192:67;:::i;:::-;15185:74;;15268:93;15357:3;15268:93;:::i;:::-;15386:2;15381:3;15377:12;15370:19;;15029:366;;;:::o;15401:419::-;15567:4;15605:2;15594:9;15590:18;15582:26;;15654:9;15648:4;15644:20;15640:1;15629:9;15625:17;15618:47;15682:131;15808:4;15682:131;:::i;:::-;15674:139;;15401:419;;;:::o;15826:172::-;15966:24;15962:1;15954:6;15950:14;15943:48;15826:172;:::o;16004:366::-;16146:3;16167:67;16231:2;16226:3;16167:67;:::i;:::-;16160:74;;16243:93;16332:3;16243:93;:::i;:::-;16361:2;16356:3;16352:12;16345:19;;16004:366;;;:::o;16376:419::-;16542:4;16580:2;16569:9;16565:18;16557:26;;16629:9;16623:4;16619:20;16615:1;16604:9;16600:17;16593:47;16657:131;16783:4;16657:131;:::i;:::-;16649:139;;16376:419;;;:::o;16801:143::-;16858:5;16889:6;16883:13;16874:22;;16905:33;16932:5;16905:33;:::i;:::-;16801:143;;;;:::o;16950:351::-;17020:6;17069:2;17057:9;17048:7;17044:23;17040:32;17037:119;;;17075:79;;:::i;:::-;17037:119;17195:1;17220:64;17276:7;17267:6;17256:9;17252:22;17220:64;:::i;:::-;17210:74;;17166:128;16950:351;;;;:::o;17307:332::-;17428:4;17466:2;17455:9;17451:18;17443:26;;17479:71;17547:1;17536:9;17532:17;17523:6;17479:71;:::i;:::-;17560:72;17628:2;17617:9;17613:18;17604:6;17560:72;:::i;:::-;17307:332;;;;;:::o;17645:223::-;17785:34;17781:1;17773:6;17769:14;17762:58;17854:6;17849:2;17841:6;17837:15;17830:31;17645:223;:::o;17874:366::-;18016:3;18037:67;18101:2;18096:3;18037:67;:::i;:::-;18030:74;;18113:93;18202:3;18113:93;:::i;:::-;18231:2;18226:3;18222:12;18215:19;;17874:366;;;:::o;18246:419::-;18412:4;18450:2;18439:9;18435:18;18427:26;;18499:9;18493:4;18489:20;18485:1;18474:9;18470:17;18463:47;18527:131;18653:4;18527:131;:::i;:::-;18519:139;;18246:419;;;:::o;18671:221::-;18811:34;18807:1;18799:6;18795:14;18788:58;18880:4;18875:2;18867:6;18863:15;18856:29;18671:221;:::o;18898:366::-;19040:3;19061:67;19125:2;19120:3;19061:67;:::i;:::-;19054:74;;19137:93;19226:3;19137:93;:::i;:::-;19255:2;19250:3;19246:12;19239:19;;18898:366;;;:::o;19270:419::-;19436:4;19474:2;19463:9;19459:18;19451:26;;19523:9;19517:4;19513:20;19509:1;19498:9;19494:17;19487:47;19551:131;19677:4;19551:131;:::i;:::-;19543:139;;19270:419;;;:::o;19695:182::-;19835:34;19831:1;19823:6;19819:14;19812:58;19695:182;:::o;19883:366::-;20025:3;20046:67;20110:2;20105:3;20046:67;:::i;:::-;20039:74;;20122:93;20211:3;20122:93;:::i;:::-;20240:2;20235:3;20231:12;20224:19;;19883:366;;;:::o;20255:419::-;20421:4;20459:2;20448:9;20444:18;20436:26;;20508:9;20502:4;20498:20;20494:1;20483:9;20479:17;20472:47;20536:131;20662:4;20536:131;:::i;:::-;20528:139;;20255:419;;;:::o;20680:179::-;20820:31;20816:1;20808:6;20804:14;20797:55;20680:179;:::o;20865:366::-;21007:3;21028:67;21092:2;21087:3;21028:67;:::i;:::-;21021:74;;21104:93;21193:3;21104:93;:::i;:::-;21222:2;21217:3;21213:12;21206:19;;20865:366;;;:::o;21237:419::-;21403:4;21441:2;21430:9;21426:18;21418:26;;21490:9;21484:4;21480:20;21476:1;21465:9;21461:17;21454:47;21518:131;21644:4;21518:131;:::i;:::-;21510:139;;21237:419;;;:::o;21662:224::-;21802:34;21798:1;21790:6;21786:14;21779:58;21871:7;21866:2;21858:6;21854:15;21847:32;21662:224;:::o;21892:366::-;22034:3;22055:67;22119:2;22114:3;22055:67;:::i;:::-;22048:74;;22131:93;22220:3;22131:93;:::i;:::-;22249:2;22244:3;22240:12;22233:19;;21892:366;;;:::o;22264:419::-;22430:4;22468:2;22457:9;22453:18;22445:26;;22517:9;22511:4;22507:20;22503:1;22492:9;22488:17;22481:47;22545:131;22671:4;22545:131;:::i;:::-;22537:139;;22264:419;;;:::o;22689:222::-;22829:34;22825:1;22817:6;22813:14;22806:58;22898:5;22893:2;22885:6;22881:15;22874:30;22689:222;:::o;22917:366::-;23059:3;23080:67;23144:2;23139:3;23080:67;:::i;:::-;23073:74;;23156:93;23245:3;23156:93;:::i;:::-;23274:2;23269:3;23265:12;23258:19;;22917:366;;;:::o;23289:419::-;23455:4;23493:2;23482:9;23478:18;23470:26;;23542:9;23536:4;23532:20;23528:1;23517:9;23513:17;23506:47;23570:131;23696:4;23570:131;:::i;:::-;23562:139;;23289:419;;;:::o;23714:172::-;23854:24;23850:1;23842:6;23838:14;23831:48;23714:172;:::o;23892:366::-;24034:3;24055:67;24119:2;24114:3;24055:67;:::i;:::-;24048:74;;24131:93;24220:3;24131:93;:::i;:::-;24249:2;24244:3;24240:12;24233:19;;23892:366;;;:::o;24264:419::-;24430:4;24468:2;24457:9;24453:18;24445:26;;24517:9;24511:4;24507:20;24503:1;24492:9;24488:17;24481:47;24545:131;24671:4;24545:131;:::i;:::-;24537:139;;24264:419;;;:::o;24689:240::-;24829:34;24825:1;24817:6;24813:14;24806:58;24898:23;24893:2;24885:6;24881:15;24874:48;24689:240;:::o;24935:366::-;25077:3;25098:67;25162:2;25157:3;25098:67;:::i;:::-;25091:74;;25174:93;25263:3;25174:93;:::i;:::-;25292:2;25287:3;25283:12;25276:19;;24935:366;;;:::o;25307:419::-;25473:4;25511:2;25500:9;25496:18;25488:26;;25560:9;25554:4;25550:20;25546:1;25535:9;25531:17;25524:47;25588:131;25714:4;25588:131;:::i;:::-;25580:139;;25307:419;;;:::o;25732:169::-;25872:21;25868:1;25860:6;25856:14;25849:45;25732:169;:::o;25907:366::-;26049:3;26070:67;26134:2;26129:3;26070:67;:::i;:::-;26063:74;;26146:93;26235:3;26146:93;:::i;:::-;26264:2;26259:3;26255:12;26248:19;;25907:366;;;:::o;26279:419::-;26445:4;26483:2;26472:9;26468:18;26460:26;;26532:9;26526:4;26522:20;26518:1;26507:9;26503:17;26496:47;26560:131;26686:4;26560:131;:::i;:::-;26552:139;;26279:419;;;:::o;26704:241::-;26844:34;26840:1;26832:6;26828:14;26821:58;26913:24;26908:2;26900:6;26896:15;26889:49;26704:241;:::o;26951:366::-;27093:3;27114:67;27178:2;27173:3;27114:67;:::i;:::-;27107:74;;27190:93;27279:3;27190:93;:::i;:::-;27308:2;27303:3;27299:12;27292:19;;26951:366;;;:::o;27323:419::-;27489:4;27527:2;27516:9;27512:18;27504:26;;27576:9;27570:4;27566:20;27562:1;27551:9;27547:17;27540:47;27604:131;27730:4;27604:131;:::i;:::-;27596:139;;27323:419;;;:::o;27748:194::-;27788:4;27808:20;27826:1;27808:20;:::i;:::-;27803:25;;27842:20;27860:1;27842:20;:::i;:::-;27837:25;;27886:1;27883;27879:9;27871:17;;27910:1;27904:4;27901:11;27898:37;;;27915:18;;:::i;:::-;27898:37;27748:194;;;;:::o;27948:180::-;27996:77;27993:1;27986:88;28093:4;28090:1;28083:15;28117:4;28114:1;28107:15;28134:180;28182:77;28179:1;28172:88;28279:4;28276:1;28269:15;28303:4;28300:1;28293:15;28320:85;28365:7;28394:5;28383:16;;28320:85;;;:::o;28411:158::-;28469:9;28502:61;28520:42;28529:32;28555:5;28529:32;:::i;:::-;28520:42;:::i;:::-;28502:61;:::i;:::-;28489:74;;28411:158;;;:::o;28575:147::-;28670:45;28709:5;28670:45;:::i;:::-;28665:3;28658:58;28575:147;;:::o;28728:114::-;28795:6;28829:5;28823:12;28813:22;;28728:114;;;:::o;28848:184::-;28947:11;28981:6;28976:3;28969:19;29021:4;29016:3;29012:14;28997:29;;28848:184;;;;:::o;29038:132::-;29105:4;29128:3;29120:11;;29158:4;29153:3;29149:14;29141:22;;29038:132;;;:::o;29176:108::-;29253:24;29271:5;29253:24;:::i;:::-;29248:3;29241:37;29176:108;;:::o;29290:179::-;29359:10;29380:46;29422:3;29414:6;29380:46;:::i;:::-;29458:4;29453:3;29449:14;29435:28;;29290:179;;;;:::o;29475:113::-;29545:4;29577;29572:3;29568:14;29560:22;;29475:113;;;:::o;29624:732::-;29743:3;29772:54;29820:5;29772:54;:::i;:::-;29842:86;29921:6;29916:3;29842:86;:::i;:::-;29835:93;;29952:56;30002:5;29952:56;:::i;:::-;30031:7;30062:1;30047:284;30072:6;30069:1;30066:13;30047:284;;;30148:6;30142:13;30175:63;30234:3;30219:13;30175:63;:::i;:::-;30168:70;;30261:60;30314:6;30261:60;:::i;:::-;30251:70;;30107:224;30094:1;30091;30087:9;30082:14;;30047:284;;;30051:14;30347:3;30340:10;;29748:608;;;29624:732;;;;:::o;30362:831::-;30625:4;30663:3;30652:9;30648:19;30640:27;;30677:71;30745:1;30734:9;30730:17;30721:6;30677:71;:::i;:::-;30758:80;30834:2;30823:9;30819:18;30810:6;30758:80;:::i;:::-;30885:9;30879:4;30875:20;30870:2;30859:9;30855:18;30848:48;30913:108;31016:4;31007:6;30913:108;:::i;:::-;30905:116;;31031:72;31099:2;31088:9;31084:18;31075:6;31031:72;:::i;:::-;31113:73;31181:3;31170:9;31166:19;31157:6;31113:73;:::i;:::-;30362:831;;;;;;;;:::o;31199:220::-;31339:34;31335:1;31327:6;31323:14;31316:58;31408:3;31403:2;31395:6;31391:15;31384:28;31199:220;:::o;31425:366::-;31567:3;31588:67;31652:2;31647:3;31588:67;:::i;:::-;31581:74;;31664:93;31753:3;31664:93;:::i;:::-;31782:2;31777:3;31773:12;31766:19;;31425:366;;;:::o;31797:419::-;31963:4;32001:2;31990:9;31986:18;31978:26;;32050:9;32044:4;32040:20;32036:1;32025:9;32021:17;32014:47;32078:131;32204:4;32078:131;:::i;:::-;32070:139;;31797:419;;;:::o;32222:221::-;32362:34;32358:1;32350:6;32346:14;32339:58;32431:4;32426:2;32418:6;32414:15;32407:29;32222:221;:::o;32449:366::-;32591:3;32612:67;32676:2;32671:3;32612:67;:::i;:::-;32605:74;;32688:93;32777:3;32688:93;:::i;:::-;32806:2;32801:3;32797:12;32790:19;;32449:366;;;:::o;32821:419::-;32987:4;33025:2;33014:9;33010:18;33002:26;;33074:9;33068:4;33064:20;33060:1;33049:9;33045:17;33038:47;33102:131;33228:4;33102:131;:::i;:::-;33094:139;;32821:419;;;:::o;33246:225::-;33386:34;33382:1;33374:6;33370:14;33363:58;33455:8;33450:2;33442:6;33438:15;33431:33;33246:225;:::o;33477:366::-;33619:3;33640:67;33704:2;33699:3;33640:67;:::i;:::-;33633:74;;33716:93;33805:3;33716:93;:::i;:::-;33834:2;33829:3;33825:12;33818:19;;33477:366;;;:::o;33849:419::-;34015:4;34053:2;34042:9;34038:18;34030:26;;34102:9;34096:4;34092:20;34088:1;34077:9;34073:17;34066:47;34130:131;34256:4;34130:131;:::i;:::-;34122:139;;33849:419;;;:::o

Swarm Source

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