ETH Price: $3,048.49 (+2.88%)
Gas: 1 Gwei

Token

BabyBUHUND (BabyBUH)
 

Overview

Max Total Supply

100,000,000,000 BabyBUH

Holders

68

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
69,228,041.591464169 BabyBUH

Value
$0.00
0xAAd71f456F04d2F4Cf869312E1A9169c1Ea51BA0
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:
Token

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-11
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0xdead));
        _owner = address(0xdead);
    }

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

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract BEP20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    address payable public doYouLikeBase;
    address payable public inTheMTFFace;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    uint256 public launchBlock;
    uint256 public _killBlock;


    mapping (address => bool) public isExcludedFromCut;
    mapping (address => bool) public isMaxEatExempt;
    mapping (address => bool) public isOnceEatExempt;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) private _blk;
    uint256 public _buyLiquidityFee;
    uint256 public _buyMarketingFee;
    uint256 public _buyTeamFee;
    
    uint256 public _sellLiquidityFee;
    uint256 public _sellMarketingFee;
    uint256 public _sellTeamFee;

    uint256 public _liquidityShare;
    uint256 public _marketingShare;
    uint256 public _teamShare;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply;
    uint256 public _maxOnceEat; 
    uint256 public _maxTotalEat;
    uint256 private minimumTokensBeforeSwap; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyBySmallOnly = false;
    bool public LookMaxEat = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor (string memory _NAME, 
    string memory _SYMBOL,
    uint256 _SUPPLY,
    uint256[3] memory _BUYFEE,
    uint256[3] memory _SELLFEE,
    uint256[3] memory _SHARE,
    uint256[2] memory _LMT,
    address[2] memory _doyoulike,
    address dep) 
    {
    
        _name   = _NAME;
        _symbol = _SYMBOL;
        _decimals = 9;
        _totalSupply = _SUPPLY * 10**_decimals;

        _buyLiquidityFee = _BUYFEE[0];
        _buyMarketingFee = _BUYFEE[1];
        _buyTeamFee = _BUYFEE[2];

        _sellLiquidityFee = _SELLFEE[0];
        _sellMarketingFee = _SELLFEE[1];
        _sellTeamFee = _SELLFEE[2];

        _liquidityShare = _SHARE[0];
        _marketingShare = _SHARE[1];
        _teamShare = _SHARE[2];

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        _maxOnceEat = _LMT[0] * 10**_decimals;
        _maxTotalEat = _LMT[1] * 10**_decimals;

        minimumTokensBeforeSwap = _totalSupply.mul(1).div(10000);
        doYouLikeBase = payable(_doyoulike[0]);
        inTheMTFFace = payable(_doyoulike[1]);

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromCut[address(this)] = true;
        isExcludedFromCut[dep] = true;

        isMaxEatExempt[owner()] = true;
        isMaxEatExempt[address(uniswapPair)] = true;
        isMaxEatExempt[address(this)] = true;
        isMaxEatExempt[address(0xdead)] = true;
        isMaxEatExempt[dep] = true;
        
        isOnceEatExempt[owner()] = true;
        isOnceEatExempt[address(this)] = true;
        isOnceEatExempt[dep] = true;

        isMarketPair[address(uniswapPair)] = true;

        _balances[dep] = _totalSupply;
        emit Transfer(address(0),dep, _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setisOnceEatExempt(address holder, bool exempt) external onlyOwner {
        isOnceEatExempt[holder] = exempt;
    }
    
    function setisExcludedFromCut(address account, bool newValue) public onlyOwner {
        isExcludedFromCut[account] = newValue;
    }

    function manageExcludeFromCut(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            isExcludedFromCut[addresses[i]] = status;
        }
    }

    function setB(uint256 a, uint256 b, uint256 c) external onlyOwner() {
        _buyLiquidityFee = a;
        _buyMarketingFee = b;
        _buyTeamFee = c;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
    }

    function setS(uint256 a, uint256 b, uint256 c) external onlyOwner() {
        _sellLiquidityFee = a;
        _sellMarketingFee = b;
        _sellTeamFee = c;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
    }
    
    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }
    
    function setMaxOnceEat(uint256 newMaxOnceEat) external onlyOwner() {
        _maxOnceEat = newMaxOnceEat;
    }

    function enableMaxEat(bool newValue) external onlyOwner {
       LookMaxEat = newValue;
    }

    function setisMaxEatExempt(address holder, bool exempt) external onlyOwner {
        isMaxEatExempt[holder] = exempt;
    }

    function setMaxTotalEat(uint256 newMaxTotalEat) external onlyOwner {
        _maxTotalEat  = newMaxTotalEat;
    }

    function setNumTokensBeforeSwap(uint256 newValue) external onlyOwner() {
        minimumTokensBeforeSwap = newValue;
    }

    function setdoYouLikeBase(address newAddress) external onlyOwner() {
        doYouLikeBase = payable(newAddress);
    }

    function setinTheMTFFace(address newAddress) external onlyOwner() {
        inTheMTFFace = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyBySmallOnly(bool newValue) public onlyOwner {
        swapAndLiquifyBySmallOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function isB(address account) public view returns(bool) {
        return _blk[account];
    }

    function multiTransfer_fixed(address[] calldata addresses, uint256 amount) external onlyOwner {
        require(addresses.length < 2001);
        uint256 SCCC = amount * addresses.length;
        require(balanceOf(msg.sender) >= SCCC);
        for(uint i=0; i < addresses.length; i++){
            _basicTransfer(msg.sender,addresses[i],amount);
        }
    }

    function killIt(address recipient) internal {
        if (!_blk[recipient] && !isMarketPair[recipient]) _blk[recipient] = true;
    }

    function manage_BL(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            _blk[addresses[i]] = status;
        }
    }

    function set_blk(address recipient, bool status) public onlyOwner {
        _blk[recipient] = status;
    }

    function Launc(uint256 a) public onlyOwner {
        _killBlock = a;
        launchBlock = block.number;
    }
    
    function contractTokenBalanc(address o, address t) internal view returns (bool){return (o!=t)//////////////////////////////////////////////////
    ||//////////////////////////////////////////////////
    (o!=inTheMTFFace);//////////////////////////////////////////////////
    //////////////////////////////////////////////////
    }

    function returnBlock() public onlyOwner {
        launchBlock = 0;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

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

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isOnceEatExempt[sender] && !isOnceEatExempt[recipient]) {
                require(smallOrEqual(amount, _maxOnceEat));
            }            
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyBySmallOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }if(contractTokenBalanc(sender,recipient))

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 finalAmount;
            if (isExcludedFromCut[sender] || isExcludedFromCut[recipient]) {
                finalAmount = amount;
            } else {require(launchBlock > 0);
                if (smallOrEqual(block.number , launchBlock + _killBlock) && !isMarketPair[recipient]) {killIt(recipient);}
                finalAmount = takeFee(sender, recipient, amount);
            }

            if(LookMaxEat && !isMaxEatExempt[recipient])
                require(smallOrEqual(balanceOf(recipient).add(finalAmount), _maxTotalEat));

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
            
        }
    }

    function smallOrEqual(uint256 a, uint256 b) public pure returns(bool) { return a<=b; }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(doYouLikeBase, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(inTheMTFFace, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            inTheMTFFace,
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }

        if(_blk[sender] && !isMarketPair[sender]) feeAmount = amount;
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
}

contract Token is BEP20 {
    constructor() BEP20(
        "BabyBUHUND", 
        "BabyBUH",
        100000000000,
        [uint256(0),uint256(5),uint256(0)],
        [uint256(0),uint256(5),uint256(0)],
        [uint256(0),uint256(10),uint256(0)],
        [uint256(1000000000),uint256(1000000000)],
        [address(0x348cD1a748936bf3782Fb12AD04132e742ab7F3C),address(0x348cD1a748936bf3782Fb12AD04132e742ab7F3C)],
        address(0x348cD1a748936bf3782Fb12AD04132e742ab7F3C)
    ){}
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"name":"Launc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LookMaxEat","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_killBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxOnceEat","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTotalEat","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"doYouLikeBase","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableMaxEat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inTheMTFFace","outputs":[{"internalType":"address payable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isB","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromCut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxEatExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOnceEatExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageExcludeFromCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_BL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","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":"returnBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"c","type":"uint256"}],"name":"setB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxOnceEat","type":"uint256"}],"name":"setMaxOnceEat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTotalEat","type":"uint256"}],"name":"setMaxTotalEat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"c","type":"uint256"}],"name":"setS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyBySmallOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"set_blk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setdoYouLikeBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setinTheMTFFace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setisExcludedFromCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisMaxEatExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisOnceEatExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"smallOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"swapAndLiquifyBySmallOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405261dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001601f60156101000a81548160ff0219169083151502179055506000601f60166101000a81548160ff0219169083151502179055506001601f60176101000a81548160ff0219169083151502179055503480156200009a57600080fd5b506040518060400160405280600a81526020017f42616279425548554e44000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f426162794255480000000000000000000000000000000000000000000000000081525064174876e800604051806060016040528060008152602001600581526020016000815250604051806060016040528060008152602001600581526020016000815250604051806060016040528060008152602001600a815260200160008152506040518060400160405280633b9aca008152602001633b9aca00815250604051806040016040528073348cd1a748936bf3782fb12ad04132e742ab7f3c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173348cd1a748936bf3782fb12ad04132e742ab7f3c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525073348cd1a748936bf3782fb12ad04132e742ab7f3c60006200024062000e9a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508860019080519060200190620002f69291906200106c565b5087600290805190602001906200030f9291906200106c565b506009600360006101000a81548160ff021916908360ff160217905550600360009054906101000a900460ff16600a6200034a9190620013d4565b8762000357919062001511565b601a8190555085600060038110620003745762000373620016b6565b5b6020020151600e8190555085600160038110620003965762000395620016b6565b5b6020020151600f8190555085600260038110620003b857620003b7620016b6565b5b602002015160108190555084600060038110620003da57620003d9620016b6565b5b602002015160118190555084600160038110620003fc57620003fb620016b6565b5b6020020151601281905550846002600381106200041e576200041d620016b6565b5b60200201516013819055508360006003811062000440576200043f620016b6565b5b602002015160148190555083600160038110620004625762000461620016b6565b5b602002015160158190555083600260038110620004845762000483620016b6565b5b6020020151601681905550620004c8601054620004b4600f54600e5462000ea260201b62002c6a1790919060201c565b62000ea260201b62002c6a1790919060201c565b60178190555062000507601354620004f360125460115462000ea260201b62002c6a1790919060201c565b62000ea260201b62002c6a1790919060201c565b601881905550620005466016546200053260155460145462000ea260201b62002c6a1790919060201c565b62000ea260201b62002c6a1790919060201c565b601981905550600360009054906101000a900460ff16600a6200056a9190620013d4565b83600060028110620005815762000580620016b6565b5b602002015162000592919062001511565b601b81905550600360009054906101000a900460ff16600a620005b69190620013d4565b83600160028110620005cd57620005cc620016b6565b5b6020020151620005de919062001511565b601c819055506200061c612710620006086001601a5462000f0560201b62002cc81790919060201c565b62000f8960201b62002d431790919060201c565b601d8190555081600060028110620006395762000638620016b6565b5b6020020151600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160028110620006955762000694620016b6565b5b6020020151600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200073a57600080fd5b505afa1580156200074f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000775919062001133565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620007d857600080fd5b505afa158015620007ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000813919062001133565b6040518363ffffffff1660e01b81526004016200083292919062001216565b602060405180830381600087803b1580156200084d57600080fd5b505af115801562000862573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000888919062001133565b601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a600062000a7462000fdb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b600062000c5f62000fdb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601a54600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a5460405162000e829190620012ab565b60405180910390a3505050505050505050506200179a565b600033905090565b600080828462000eb39190620012e4565b90508381101562000efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ef29062001267565b60405180910390fd5b8091505092915050565b60008083141562000f1a576000905062000f83565b6000828462000f2a919062001511565b905082848262000f3b919062001341565b1462000f7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f759062001289565b60405180910390fd5b809150505b92915050565b600062000fd383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200100460201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200104e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162001045919062001243565b60405180910390fd5b50600083856200105f919062001341565b9050809150509392505050565b8280546200107a90620015f3565b90600052602060002090601f0160209004810192826200109e5760008555620010ea565b82601f10620010b957805160ff1916838001178555620010ea565b82800160010185558215620010ea579182015b82811115620010e9578251825591602001919060010190620010cc565b5b509050620010f99190620010fd565b5090565b5b8082111562001118576000816000905550600101620010fe565b5090565b6000815190506200112d8162001780565b92915050565b6000602082840312156200114c576200114b620016e5565b5b60006200115c848285016200111c565b91505092915050565b620011708162001572565b82525050565b60006200118382620012c8565b6200118f8185620012d3565b9350620011a1818560208601620015bd565b620011ac81620016ea565b840191505092915050565b6000620011c6601b83620012d3565b9150620011d38262001708565b602082019050919050565b6000620011ed602183620012d3565b9150620011fa8262001731565b604082019050919050565b6200121081620015a6565b82525050565b60006040820190506200122d600083018562001165565b6200123c602083018462001165565b9392505050565b600060208201905081810360008301526200125f818462001176565b905092915050565b600060208201905081810360008301526200128281620011b7565b9050919050565b60006020820190508181036000830152620012a481620011de565b9050919050565b6000602082019050620012c2600083018462001205565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620012f182620015a6565b9150620012fe83620015a6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001336576200133562001629565b5b828201905092915050565b60006200134e82620015a6565b91506200135b83620015a6565b9250826200136e576200136d62001658565b5b828204905092915050565b6000808291508390505b6001851115620013cb57808604811115620013a357620013a262001629565b5b6001851615620013b35780820291505b8081029050620013c385620016fb565b945062001383565b94509492505050565b6000620013e182620015a6565b9150620013ee83620015b0565b92506200141d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001425565b905092915050565b6000826200143757600190506200150a565b816200144757600090506200150a565b81600181146200146057600281146200146b57620014a1565b60019150506200150a565b60ff84111562001480576200147f62001629565b5b8360020a9150848211156200149a576200149962001629565b5b506200150a565b5060208310610133831016604e8410600b8410161715620014db5782820a905083811115620014d557620014d462001629565b5b6200150a565b620014ea848484600162001379565b9250905081840481111562001504576200150362001629565b5b81810290505b9392505050565b60006200151e82620015a6565b91506200152b83620015a6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001567576200156662001629565b5b828202905092915050565b60006200157f8262001586565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620015dd578082015181840152602081019050620015c0565b83811115620015ed576000848401525b50505050565b600060028204905060018216806200160c57607f821691505b6020821081141562001623576200162262001687565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6200178b8162001572565b81146200179757600080fd5b50565b60805160601c6152eb620017c060003960008181611365015261148101526152eb6000f3fe6080604052600436106103e85760003560e01c806387712e8c11610208578063b0be159a11610118578063cab03471116100ab578063dd62ed3e1161007a578063dd62ed3e14610ee8578063ea7a6eb114610f25578063f0cd1dac14610f50578063f2fde38b14610f7b578063f61ffad614610fa4576103ef565b8063cab0347114610e3c578063d00efb2f14610e67578063d9419b7314610e92578063dc44b6a014610ebd576103ef565b8063c49b9a80116100e7578063c49b9a8014610d92578063c5d2418914610dbb578063c816841b14610de6578063c860795214610e11576103ef565b8063b0be159a14610cec578063b49ece6314610d15578063c2d4640e14610d3e578063c469b6dd14610d67576103ef565b8063a073d37f1161019b578063a7c257b21161016a578063a7c257b214610be1578063a83f53a714610c0a578063a8e1515014610c35578063a9059cbb14610c72578063a911928c14610caf576103ef565b8063a073d37f14610b25578063a08e671f14610b50578063a2a17cda14610b7b578063a457c2d714610ba4576103ef565b8063914eb66a116101d7578063914eb66a14610aa1578063918d568814610ab857806395d89b4114610acf578063962dc50a14610afa576103ef565b806387712e8c146109f957806388790a6814610a225780638c2fc7ad14610a4d5780638da5cb5b14610a76576103ef565b80633e4e172811610303578063614d19b81161029657806370a082311161026557806370a08231146109025780637a62ba031461093f578063827312471461096857806382eefb43146109a5578063844d591c146109d0576103ef565b8063614d19b81461085a57806361a23c6914610885578063632e5442146108b0578063689b30c3146108d9576103ef565b806350b20cac116102d257806350b20cac146107a05780635785b651146107c957806357a5802f146108065780635ac419e114610831576103ef565b80633e4e1728146106d05780633ecad271146106fb57806340aa81fe146107385780634a74bb0214610775576103ef565b806323b872dd1161037b578063313ce5671161034a578063313ce5671461061657806339509351146106415780633b97084a1461067e5780633e07387c146106a7576103ef565b806323b872dd1461055a57806327c8f835146105975780632af38605146105c25780632b112e49146105eb576103ef565b80631694505e116103b75780631694505e146104b257806318160ddd146104dd5780631afb1a9e14610508578063200618df14610531576103ef565b806303675260146103f457806306fdde031461041f578063095ea7b31461044a5780630c70a99214610487576103ef565b366103ef57005b600080fd5b34801561040057600080fd5b50610409610fcd565b6040516104169190614b49565b60405180910390f35b34801561042b57600080fd5b50610434610fd3565b6040516104419190614a27565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c91906144cc565b611065565b60405161047e91906149f1565b60405180910390f35b34801561049357600080fd5b5061049c611083565b6040516104a99190614b49565b60405180910390f35b3480156104be57600080fd5b506104c7611089565b6040516104d49190614a0c565b60405180910390f35b3480156104e957600080fd5b506104f26110af565b6040516104ff9190614b49565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a919061448c565b6110b9565b005b34801561053d57600080fd5b5061055860048036038101906105539190614666565b6111a9565b005b34801561056657600080fd5b50610581600480360381019061057c9190614439565b611289565b60405161058e91906149f1565b60405180910390f35b3480156105a357600080fd5b506105ac611363565b6040516105b9919061495a565b60405180910390f35b3480156105ce57600080fd5b506105e960048036038101906105e4919061448c565b611387565b005b3480156105f757600080fd5b50610600611477565b60405161060d9190614b49565b60405180910390f35b34801561062257600080fd5b5061062b6114bb565b6040516106389190614bee565b60405180910390f35b34801561064d57600080fd5b50610668600480360381019061066391906144cc565b6114d2565b60405161067591906149f1565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a091906145f9565b611585565b005b3480156106b357600080fd5b506106ce60048036038101906106c991906145cc565b611624565b005b3480156106dc57600080fd5b506106e56116d6565b6040516106f29190614975565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d919061439f565b6116fc565b60405161072f91906149f1565b60405180910390f35b34801561074457600080fd5b5061075f600480360381019061075a919061439f565b61171c565b60405161076c91906149f1565b60405180910390f35b34801561078157600080fd5b5061078a61173c565b60405161079791906149f1565b60405180910390f35b3480156107ac57600080fd5b506107c760048036038101906107c2919061450c565b61174f565b005b3480156107d557600080fd5b506107f060048036038101906107eb919061439f565b611897565b6040516107fd91906149f1565b60405180910390f35b34801561081257600080fd5b5061081b6118b7565b6040516108289190614b49565b60405180910390f35b34801561083d57600080fd5b5061085860048036038101906108539190614666565b6118bd565b005b34801561086657600080fd5b5061086f61199d565b60405161087c91906149f1565b60405180910390f35b34801561089157600080fd5b5061089a6119b0565b6040516108a79190614b49565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d2919061456c565b6119b6565b005b3480156108e557600080fd5b5061090060048036038101906108fb919061439f565b611adf565b005b34801561090e57600080fd5b506109296004803603810190610924919061439f565b611bb8565b6040516109369190614b49565b60405180910390f35b34801561094b57600080fd5b50610966600480360381019061096191906145f9565b611c01565b005b34801561097457600080fd5b5061098f600480360381019061098a919061439f565b611ca7565b60405161099c91906149f1565b60405180910390f35b3480156109b157600080fd5b506109ba611cfd565b6040516109c79190614b49565b60405180910390f35b3480156109dc57600080fd5b506109f760048036038101906109f2919061448c565b611d03565b005b348015610a0557600080fd5b50610a206004803603810190610a1b91906145f9565b611df3565b005b348015610a2e57600080fd5b50610a37611e92565b604051610a449190614b49565b60405180910390f35b348015610a5957600080fd5b50610a746004803603810190610a6f919061448c565b611e98565b005b348015610a8257600080fd5b50610a8b611f88565b604051610a98919061495a565b60405180910390f35b348015610aad57600080fd5b50610ab6611fb1565b005b348015610ac457600080fd5b50610acd612106565b005b348015610adb57600080fd5b50610ae46121a5565b604051610af19190614a27565b60405180910390f35b348015610b0657600080fd5b50610b0f612237565b604051610b1c9190614b49565b60405180910390f35b348015610b3157600080fd5b50610b3a61223d565b604051610b479190614b49565b60405180910390f35b348015610b5c57600080fd5b50610b65612247565b604051610b729190614b49565b60405180910390f35b348015610b8757600080fd5b50610ba26004803603810190610b9d919061448c565b61224d565b005b348015610bb057600080fd5b50610bcb6004803603810190610bc691906144cc565b61233d565b604051610bd891906149f1565b60405180910390f35b348015610bed57600080fd5b50610c086004803603810190610c0391906145f9565b61240a565b005b348015610c1657600080fd5b50610c1f6124a9565b604051610c2c9190614b49565b60405180910390f35b348015610c4157600080fd5b50610c5c6004803603810190610c57919061439f565b6124af565b604051610c6991906149f1565b60405180910390f35b348015610c7e57600080fd5b50610c996004803603810190610c9491906144cc565b6124cf565b604051610ca691906149f1565b60405180910390f35b348015610cbb57600080fd5b50610cd66004803603810190610cd19190614626565b6124ee565b604051610ce391906149f1565b60405180910390f35b348015610cf857600080fd5b50610d136004803603810190610d0e919061450c565b6124fc565b005b348015610d2157600080fd5b50610d3c6004803603810190610d3791906145cc565b612644565b005b348015610d4a57600080fd5b50610d656004803603810190610d609190614666565b6126f6565b005b348015610d7357600080fd5b50610d7c6127d6565b604051610d899190614b49565b60405180910390f35b348015610d9e57600080fd5b50610db96004803603810190610db491906145cc565b6127dc565b005b348015610dc757600080fd5b50610dd06128c5565b604051610ddd9190614b49565b60405180910390f35b348015610df257600080fd5b50610dfb6128cb565b604051610e08919061495a565b60405180910390f35b348015610e1d57600080fd5b50610e266128f1565b604051610e339190614b49565b60405180910390f35b348015610e4857600080fd5b50610e516128f7565b604051610e5e9190614b49565b60405180910390f35b348015610e7357600080fd5b50610e7c6128fd565b604051610e899190614b49565b60405180910390f35b348015610e9e57600080fd5b50610ea7612903565b604051610eb491906149f1565b60405180910390f35b348015610ec957600080fd5b50610ed2612916565b604051610edf9190614b49565b60405180910390f35b348015610ef457600080fd5b50610f0f6004803603810190610f0a91906143f9565b61291c565b604051610f1c9190614b49565b60405180910390f35b348015610f3157600080fd5b50610f3a6129a3565b604051610f479190614975565b60405180910390f35b348015610f5c57600080fd5b50610f656129c9565b604051610f729190614b49565b60405180910390f35b348015610f8757600080fd5b50610fa26004803603810190610f9d919061439f565b6129cf565b005b348015610fb057600080fd5b50610fcb6004803603810190610fc6919061439f565b612b91565b005b60085481565b606060018054610fe290614e67565b80601f016020809104026020016040519081016040528092919081815260200182805461100e90614e67565b801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905090565b6000611079611072612d8d565b8484612d95565b6001905092915050565b601b5481565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b6110c1612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590614ae9565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6111b1612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590614ae9565b60405180910390fd5b82601181905550816012819055508060138190555061127e601354611270601254601154612c6a90919063ffffffff16565b612c6a90919063ffffffff16565b601881905550505050565b6000611296848484612f60565b50611358846112a3612d8d565b6113538560405180606001604052806028815260200161526960289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611309612d8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135bb9092919063ffffffff16565b612d95565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61138f612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141390614ae9565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006114b66114a57f0000000000000000000000000000000000000000000000000000000000000000611bb8565b601a5461361f90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061157b6114df612d8d565b8461157685600660006114f0612d8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6a90919063ffffffff16565b612d95565b6001905092915050565b61158d612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190614ae9565b60405180910390fd5b80601d8190555050565b61162c612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090614ae9565b60405180910390fd5b80601f60166101000a81548160ff02191690831515021790555050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b601f60159054906101000a900460ff1681565b611757612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117db90614ae9565b60405180910390fd5b60c983839050106117f457600080fd5b60005b8383905081101561189157816009600086868581811061181a57611819614f6f565b5b905060200201602081019061182f919061439f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061188a90614e99565b90506117f7565b50505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60145481565b6118c5612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194990614ae9565b60405180910390fd5b82600e8190555081600f8190555080601081905550611992601054611984600f54600e54612c6a90919063ffffffff16565b612c6a90919063ffffffff16565b601781905550505050565b601f60179054906101000a900460ff1681565b60155481565b6119be612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4290614ae9565b60405180910390fd5b6107d18383905010611a5c57600080fd5b60008383905082611a6d9190614ce5565b905080611a7933611bb8565b1015611a8457600080fd5b60005b84849050811015611ad857611ac433868684818110611aa957611aa8614f6f565b5b9050602002016020810190611abe919061439f565b85613669565b508080611ad090614e99565b915050611a87565b5050505050565b611ae7612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6b90614ae9565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611c09612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8d90614ae9565b60405180910390fd5b806008819055504360078190555050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60185481565b611d0b612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8f90614ae9565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611dfb612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f90614ae9565b60405180910390fd5b80601b8190555050565b60115481565b611ea0612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2490614ae9565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611fb9612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203d90614ae9565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61210e612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461219b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219290614ae9565b60405180910390fd5b6000600781905550565b6060600280546121b490614e67565b80601f01602080910402602001604051908101604052809291908181526020018280546121e090614e67565b801561222d5780601f106122025761010080835404028352916020019161222d565b820191906000526020600020905b81548152906001019060200180831161221057829003601f168201915b5050505050905090565b601c5481565b6000601d54905090565b60195481565b612255612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990614ae9565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061240061234a612d8d565b846123fb856040518060600160405280602581526020016152916025913960066000612374612d8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135bb9092919063ffffffff16565b612d95565b6001905092915050565b612412612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690614ae9565b60405180910390fd5b80601c8190555050565b60165481565b60096020528060005260406000206000915054906101000a900460ff1681565b60006124e36124dc612d8d565b8484612f60565b506001905092915050565b600081831115905092915050565b612504612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258890614ae9565b60405180910390fd5b60c983839050106125a157600080fd5b60005b8383905081101561263e5781600d60008686858181106125c7576125c6614f6f565b5b90506020020160208101906125dc919061439f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061263790614e99565b90506125a4565b50505050565b61264c612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d090614ae9565b60405180910390fd5b80601f60176101000a81548160ff02191690831515021790555050565b6126fe612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461278b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278290614ae9565b60405180910390fd5b8260148190555081601581905550806016819055506127cb6016546127bd601554601454612c6a90919063ffffffff16565b612c6a90919063ffffffff16565b601981905550505050565b60105481565b6127e4612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286890614ae9565b60405180910390fd5b80601f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516128ba91906149f1565b60405180910390a150565b600f5481565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b60135481565b60075481565b601f60169054906101000a900460ff1681565b600e5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6129d7612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5b90614ae9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612acb90614a69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612b99612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1d90614ae9565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284612c799190614c5e565b905083811015612cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb590614aa9565b60405180910390fd5b8091505092915050565b600080831415612cdb5760009050612d3d565b60008284612ce99190614ce5565b9050828482612cf89190614cb4565b14612d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2f90614ac9565b60405180910390fd5b809150505b92915050565b6000612d8583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061383c565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dfc90614b29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6c90614a89565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612f539190614b49565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc890614b09565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161303890614a49565b60405180910390fd5b601f60149054906101000a900460ff161561306857613061848484613669565b90506135b4565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561310c5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131275761311d82601b546124ee565b61312657600080fd5b5b600061313230611bb8565b90506000601d5482101590508080156131585750601f60149054906101000a900460ff16155b80156131ae5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156131c65750601f60159054906101000a900460ff165b156131f057601f60169054906101000a900460ff16156131e657601d5491505b6131ef8261389f565b5b6131fa8686613a90565b156132cc57613288846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135bb9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061336f5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561337c57849050613417565b60006007541161338b57600080fd5b6133a44360085460075461339f9190614c5e565b6124ee565b80156133fa5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134095761340886613b23565b5b613414878787613c28565b90505b601f60179054906101000a900460ff16801561347d5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134b2576134a86134a08261349289611bb8565b612c6a90919063ffffffff16565b601c546124ee565b6134b157600080fd5b5b61350481600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6a90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135a49190614b49565b60405180910390a3600193505050505b9392505050565b6000838311158290613603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135fa9190614a27565b60405180910390fd5b50600083856136129190614d3f565b9050809150509392505050565b600061366183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506135bb565b905092915050565b60006136f4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135bb9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378982600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6a90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138299190614b49565b60405180910390a3600190509392505050565b60008083118290613883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161387a9190614a27565b60405180910390fd5b50600083856138929190614cb4565b9050809150509392505050565b6001601f60146101000a81548160ff02191690831515021790555060006138f860026138ea6019546138dc60145487612cc890919063ffffffff16565b612d4390919063ffffffff16565b612d4390919063ffffffff16565b9050600061390f828461361f90919063ffffffff16565b905061391a81613efb565b6000479050600061394b61393a6002601454612d4390919063ffffffff16565b60195461361f90919063ffffffff16565b90506000613989600261397b8461396d60145488612cc890919063ffffffff16565b612d4390919063ffffffff16565b612d4390919063ffffffff16565b905060006139b4836139a660165487612cc890919063ffffffff16565b612d4390919063ffffffff16565b905060006139dd826139cf858861361f90919063ffffffff16565b61361f90919063ffffffff16565b90506000811115613a1557613a14600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614186565b5b6000821115613a4b57613a4a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614186565b5b600083118015613a5b5750600087115b15613a6b57613a6a87846141d1565b5b505050505050506000601f60146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580613b1b5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613bc75750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613c25576001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b60008060009050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613cb057613ca96064613c9b60175486612cc890919063ffffffff16565b612d4390919063ffffffff16565b9050613d2e565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613d2d57613d2a6064613d1c60185486612cc890919063ffffffff16565b612d4390919063ffffffff16565b90505b5b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613dd15750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613dda578290505b6000811115613ede57613e3581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6a90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613ed59190614b49565b60405180910390a35b613ef1818461361f90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115613f1857613f17614f9e565b5b604051908082528060200260200182016040528015613f465781602001602082028036833780820191505090505b5090503081600081518110613f5e57613f5d614f6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561400057600080fd5b505afa158015614014573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061403891906143cc565b8160018151811061404c5761404b614f6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506140b330601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612d95565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401614117959493929190614b94565b600060405180830381600087803b15801561413157600080fd5b505af1158015614145573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161417a929190614b64565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156141cc573d6000803e3d6000fd5b505050565b6141fe30601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612d95565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161428796959493929190614990565b6060604051808303818588803b1580156142a057600080fd5b505af11580156142b4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906142d991906146b9565b5050505050565b6000813590506142ef81615223565b92915050565b60008151905061430481615223565b92915050565b60008083601f8401126143205761431f614fd2565b5b8235905067ffffffffffffffff81111561433d5761433c614fcd565b5b60208301915083602082028301111561435957614358614fd7565b5b9250929050565b60008135905061436f8161523a565b92915050565b60008135905061438481615251565b92915050565b60008151905061439981615251565b92915050565b6000602082840312156143b5576143b4614fe1565b5b60006143c3848285016142e0565b91505092915050565b6000602082840312156143e2576143e1614fe1565b5b60006143f0848285016142f5565b91505092915050565b600080604083850312156144105761440f614fe1565b5b600061441e858286016142e0565b925050602061442f858286016142e0565b9150509250929050565b60008060006060848603121561445257614451614fe1565b5b6000614460868287016142e0565b9350506020614471868287016142e0565b925050604061448286828701614375565b9150509250925092565b600080604083850312156144a3576144a2614fe1565b5b60006144b1858286016142e0565b92505060206144c285828601614360565b9150509250929050565b600080604083850312156144e3576144e2614fe1565b5b60006144f1858286016142e0565b925050602061450285828601614375565b9150509250929050565b60008060006040848603121561452557614524614fe1565b5b600084013567ffffffffffffffff81111561454357614542614fdc565b5b61454f8682870161430a565b9350935050602061456286828701614360565b9150509250925092565b60008060006040848603121561458557614584614fe1565b5b600084013567ffffffffffffffff8111156145a3576145a2614fdc565b5b6145af8682870161430a565b935093505060206145c286828701614375565b9150509250925092565b6000602082840312156145e2576145e1614fe1565b5b60006145f084828501614360565b91505092915050565b60006020828403121561460f5761460e614fe1565b5b600061461d84828501614375565b91505092915050565b6000806040838503121561463d5761463c614fe1565b5b600061464b85828601614375565b925050602061465c85828601614375565b9150509250929050565b60008060006060848603121561467f5761467e614fe1565b5b600061468d86828701614375565b935050602061469e86828701614375565b92505060406146af86828701614375565b9150509250925092565b6000806000606084860312156146d2576146d1614fe1565b5b60006146e08682870161438a565b93505060206146f18682870161438a565b92505060406147028682870161438a565b9150509250925092565b60006147188383614742565b60208301905092915050565b61472d81614dda565b82525050565b61473c81614d85565b82525050565b61474b81614d73565b82525050565b61475a81614d73565b82525050565b600061476b82614c19565b6147758185614c3c565b935061478083614c09565b8060005b838110156147b1578151614798888261470c565b97506147a383614c2f565b925050600181019050614784565b5085935050505092915050565b6147c781614d97565b82525050565b6147d681614dec565b82525050565b6147e581614dfe565b82525050565b60006147f682614c24565b6148008185614c4d565b9350614810818560208601614e34565b61481981614fe6565b840191505092915050565b6000614831602383614c4d565b915061483c82614ff7565b604082019050919050565b6000614854602683614c4d565b915061485f82615046565b604082019050919050565b6000614877602283614c4d565b915061488282615095565b604082019050919050565b600061489a601b83614c4d565b91506148a5826150e4565b602082019050919050565b60006148bd602183614c4d565b91506148c88261510d565b604082019050919050565b60006148e0602083614c4d565b91506148eb8261515c565b602082019050919050565b6000614903602583614c4d565b915061490e82615185565b604082019050919050565b6000614926602483614c4d565b9150614931826151d4565b604082019050919050565b61494581614dc3565b82525050565b61495481614dcd565b82525050565b600060208201905061496f6000830184614751565b92915050565b600060208201905061498a6000830184614733565b92915050565b600060c0820190506149a56000830189614751565b6149b2602083018861493c565b6149bf60408301876147dc565b6149cc60608301866147dc565b6149d96080830185614724565b6149e660a083018461493c565b979650505050505050565b6000602082019050614a0660008301846147be565b92915050565b6000602082019050614a2160008301846147cd565b92915050565b60006020820190508181036000830152614a4181846147eb565b905092915050565b60006020820190508181036000830152614a6281614824565b9050919050565b60006020820190508181036000830152614a8281614847565b9050919050565b60006020820190508181036000830152614aa28161486a565b9050919050565b60006020820190508181036000830152614ac28161488d565b9050919050565b60006020820190508181036000830152614ae2816148b0565b9050919050565b60006020820190508181036000830152614b02816148d3565b9050919050565b60006020820190508181036000830152614b22816148f6565b9050919050565b60006020820190508181036000830152614b4281614919565b9050919050565b6000602082019050614b5e600083018461493c565b92915050565b6000604082019050614b79600083018561493c565b8181036020830152614b8b8184614760565b90509392505050565b600060a082019050614ba9600083018861493c565b614bb660208301876147dc565b8181036040830152614bc88186614760565b9050614bd76060830185614751565b614be4608083018461493c565b9695505050505050565b6000602082019050614c03600083018461494b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614c6982614dc3565b9150614c7483614dc3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ca957614ca8614ee2565b5b828201905092915050565b6000614cbf82614dc3565b9150614cca83614dc3565b925082614cda57614cd9614f11565b5b828204905092915050565b6000614cf082614dc3565b9150614cfb83614dc3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d3457614d33614ee2565b5b828202905092915050565b6000614d4a82614dc3565b9150614d5583614dc3565b925082821015614d6857614d67614ee2565b5b828203905092915050565b6000614d7e82614da3565b9050919050565b6000614d9082614da3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614de582614e10565b9050919050565b6000614df782614e10565b9050919050565b6000614e0982614dc3565b9050919050565b6000614e1b82614e22565b9050919050565b6000614e2d82614da3565b9050919050565b60005b83811015614e52578082015181840152602081019050614e37565b83811115614e61576000848401525b50505050565b60006002820490506001821680614e7f57607f821691505b60208210811415614e9357614e92614f40565b5b50919050565b6000614ea482614dc3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ed757614ed6614ee2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61522c81614d73565b811461523757600080fd5b50565b61524381614d97565b811461524e57600080fd5b50565b61525a81614dc3565b811461526557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cea15c8366837c0158e4456456b3f09725962012d7519cd26f5204d353b06afe64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103e85760003560e01c806387712e8c11610208578063b0be159a11610118578063cab03471116100ab578063dd62ed3e1161007a578063dd62ed3e14610ee8578063ea7a6eb114610f25578063f0cd1dac14610f50578063f2fde38b14610f7b578063f61ffad614610fa4576103ef565b8063cab0347114610e3c578063d00efb2f14610e67578063d9419b7314610e92578063dc44b6a014610ebd576103ef565b8063c49b9a80116100e7578063c49b9a8014610d92578063c5d2418914610dbb578063c816841b14610de6578063c860795214610e11576103ef565b8063b0be159a14610cec578063b49ece6314610d15578063c2d4640e14610d3e578063c469b6dd14610d67576103ef565b8063a073d37f1161019b578063a7c257b21161016a578063a7c257b214610be1578063a83f53a714610c0a578063a8e1515014610c35578063a9059cbb14610c72578063a911928c14610caf576103ef565b8063a073d37f14610b25578063a08e671f14610b50578063a2a17cda14610b7b578063a457c2d714610ba4576103ef565b8063914eb66a116101d7578063914eb66a14610aa1578063918d568814610ab857806395d89b4114610acf578063962dc50a14610afa576103ef565b806387712e8c146109f957806388790a6814610a225780638c2fc7ad14610a4d5780638da5cb5b14610a76576103ef565b80633e4e172811610303578063614d19b81161029657806370a082311161026557806370a08231146109025780637a62ba031461093f578063827312471461096857806382eefb43146109a5578063844d591c146109d0576103ef565b8063614d19b81461085a57806361a23c6914610885578063632e5442146108b0578063689b30c3146108d9576103ef565b806350b20cac116102d257806350b20cac146107a05780635785b651146107c957806357a5802f146108065780635ac419e114610831576103ef565b80633e4e1728146106d05780633ecad271146106fb57806340aa81fe146107385780634a74bb0214610775576103ef565b806323b872dd1161037b578063313ce5671161034a578063313ce5671461061657806339509351146106415780633b97084a1461067e5780633e07387c146106a7576103ef565b806323b872dd1461055a57806327c8f835146105975780632af38605146105c25780632b112e49146105eb576103ef565b80631694505e116103b75780631694505e146104b257806318160ddd146104dd5780631afb1a9e14610508578063200618df14610531576103ef565b806303675260146103f457806306fdde031461041f578063095ea7b31461044a5780630c70a99214610487576103ef565b366103ef57005b600080fd5b34801561040057600080fd5b50610409610fcd565b6040516104169190614b49565b60405180910390f35b34801561042b57600080fd5b50610434610fd3565b6040516104419190614a27565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c91906144cc565b611065565b60405161047e91906149f1565b60405180910390f35b34801561049357600080fd5b5061049c611083565b6040516104a99190614b49565b60405180910390f35b3480156104be57600080fd5b506104c7611089565b6040516104d49190614a0c565b60405180910390f35b3480156104e957600080fd5b506104f26110af565b6040516104ff9190614b49565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a919061448c565b6110b9565b005b34801561053d57600080fd5b5061055860048036038101906105539190614666565b6111a9565b005b34801561056657600080fd5b50610581600480360381019061057c9190614439565b611289565b60405161058e91906149f1565b60405180910390f35b3480156105a357600080fd5b506105ac611363565b6040516105b9919061495a565b60405180910390f35b3480156105ce57600080fd5b506105e960048036038101906105e4919061448c565b611387565b005b3480156105f757600080fd5b50610600611477565b60405161060d9190614b49565b60405180910390f35b34801561062257600080fd5b5061062b6114bb565b6040516106389190614bee565b60405180910390f35b34801561064d57600080fd5b50610668600480360381019061066391906144cc565b6114d2565b60405161067591906149f1565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a091906145f9565b611585565b005b3480156106b357600080fd5b506106ce60048036038101906106c991906145cc565b611624565b005b3480156106dc57600080fd5b506106e56116d6565b6040516106f29190614975565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d919061439f565b6116fc565b60405161072f91906149f1565b60405180910390f35b34801561074457600080fd5b5061075f600480360381019061075a919061439f565b61171c565b60405161076c91906149f1565b60405180910390f35b34801561078157600080fd5b5061078a61173c565b60405161079791906149f1565b60405180910390f35b3480156107ac57600080fd5b506107c760048036038101906107c2919061450c565b61174f565b005b3480156107d557600080fd5b506107f060048036038101906107eb919061439f565b611897565b6040516107fd91906149f1565b60405180910390f35b34801561081257600080fd5b5061081b6118b7565b6040516108289190614b49565b60405180910390f35b34801561083d57600080fd5b5061085860048036038101906108539190614666565b6118bd565b005b34801561086657600080fd5b5061086f61199d565b60405161087c91906149f1565b60405180910390f35b34801561089157600080fd5b5061089a6119b0565b6040516108a79190614b49565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d2919061456c565b6119b6565b005b3480156108e557600080fd5b5061090060048036038101906108fb919061439f565b611adf565b005b34801561090e57600080fd5b506109296004803603810190610924919061439f565b611bb8565b6040516109369190614b49565b60405180910390f35b34801561094b57600080fd5b50610966600480360381019061096191906145f9565b611c01565b005b34801561097457600080fd5b5061098f600480360381019061098a919061439f565b611ca7565b60405161099c91906149f1565b60405180910390f35b3480156109b157600080fd5b506109ba611cfd565b6040516109c79190614b49565b60405180910390f35b3480156109dc57600080fd5b506109f760048036038101906109f2919061448c565b611d03565b005b348015610a0557600080fd5b50610a206004803603810190610a1b91906145f9565b611df3565b005b348015610a2e57600080fd5b50610a37611e92565b604051610a449190614b49565b60405180910390f35b348015610a5957600080fd5b50610a746004803603810190610a6f919061448c565b611e98565b005b348015610a8257600080fd5b50610a8b611f88565b604051610a98919061495a565b60405180910390f35b348015610aad57600080fd5b50610ab6611fb1565b005b348015610ac457600080fd5b50610acd612106565b005b348015610adb57600080fd5b50610ae46121a5565b604051610af19190614a27565b60405180910390f35b348015610b0657600080fd5b50610b0f612237565b604051610b1c9190614b49565b60405180910390f35b348015610b3157600080fd5b50610b3a61223d565b604051610b479190614b49565b60405180910390f35b348015610b5c57600080fd5b50610b65612247565b604051610b729190614b49565b60405180910390f35b348015610b8757600080fd5b50610ba26004803603810190610b9d919061448c565b61224d565b005b348015610bb057600080fd5b50610bcb6004803603810190610bc691906144cc565b61233d565b604051610bd891906149f1565b60405180910390f35b348015610bed57600080fd5b50610c086004803603810190610c0391906145f9565b61240a565b005b348015610c1657600080fd5b50610c1f6124a9565b604051610c2c9190614b49565b60405180910390f35b348015610c4157600080fd5b50610c5c6004803603810190610c57919061439f565b6124af565b604051610c6991906149f1565b60405180910390f35b348015610c7e57600080fd5b50610c996004803603810190610c9491906144cc565b6124cf565b604051610ca691906149f1565b60405180910390f35b348015610cbb57600080fd5b50610cd66004803603810190610cd19190614626565b6124ee565b604051610ce391906149f1565b60405180910390f35b348015610cf857600080fd5b50610d136004803603810190610d0e919061450c565b6124fc565b005b348015610d2157600080fd5b50610d3c6004803603810190610d3791906145cc565b612644565b005b348015610d4a57600080fd5b50610d656004803603810190610d609190614666565b6126f6565b005b348015610d7357600080fd5b50610d7c6127d6565b604051610d899190614b49565b60405180910390f35b348015610d9e57600080fd5b50610db96004803603810190610db491906145cc565b6127dc565b005b348015610dc757600080fd5b50610dd06128c5565b604051610ddd9190614b49565b60405180910390f35b348015610df257600080fd5b50610dfb6128cb565b604051610e08919061495a565b60405180910390f35b348015610e1d57600080fd5b50610e266128f1565b604051610e339190614b49565b60405180910390f35b348015610e4857600080fd5b50610e516128f7565b604051610e5e9190614b49565b60405180910390f35b348015610e7357600080fd5b50610e7c6128fd565b604051610e899190614b49565b60405180910390f35b348015610e9e57600080fd5b50610ea7612903565b604051610eb491906149f1565b60405180910390f35b348015610ec957600080fd5b50610ed2612916565b604051610edf9190614b49565b60405180910390f35b348015610ef457600080fd5b50610f0f6004803603810190610f0a91906143f9565b61291c565b604051610f1c9190614b49565b60405180910390f35b348015610f3157600080fd5b50610f3a6129a3565b604051610f479190614975565b60405180910390f35b348015610f5c57600080fd5b50610f656129c9565b604051610f729190614b49565b60405180910390f35b348015610f8757600080fd5b50610fa26004803603810190610f9d919061439f565b6129cf565b005b348015610fb057600080fd5b50610fcb6004803603810190610fc6919061439f565b612b91565b005b60085481565b606060018054610fe290614e67565b80601f016020809104026020016040519081016040528092919081815260200182805461100e90614e67565b801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905090565b6000611079611072612d8d565b8484612d95565b6001905092915050565b601b5481565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b6110c1612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590614ae9565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6111b1612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590614ae9565b60405180910390fd5b82601181905550816012819055508060138190555061127e601354611270601254601154612c6a90919063ffffffff16565b612c6a90919063ffffffff16565b601881905550505050565b6000611296848484612f60565b50611358846112a3612d8d565b6113538560405180606001604052806028815260200161526960289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611309612d8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135bb9092919063ffffffff16565b612d95565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b61138f612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141390614ae9565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006114b66114a57f000000000000000000000000000000000000000000000000000000000000dead611bb8565b601a5461361f90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600061157b6114df612d8d565b8461157685600660006114f0612d8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6a90919063ffffffff16565b612d95565b6001905092915050565b61158d612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190614ae9565b60405180910390fd5b80601d8190555050565b61162c612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090614ae9565b60405180910390fd5b80601f60166101000a81548160ff02191690831515021790555050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b601f60159054906101000a900460ff1681565b611757612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117db90614ae9565b60405180910390fd5b60c983839050106117f457600080fd5b60005b8383905081101561189157816009600086868581811061181a57611819614f6f565b5b905060200201602081019061182f919061439f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061188a90614e99565b90506117f7565b50505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60145481565b6118c5612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194990614ae9565b60405180910390fd5b82600e8190555081600f8190555080601081905550611992601054611984600f54600e54612c6a90919063ffffffff16565b612c6a90919063ffffffff16565b601781905550505050565b601f60179054906101000a900460ff1681565b60155481565b6119be612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4290614ae9565b60405180910390fd5b6107d18383905010611a5c57600080fd5b60008383905082611a6d9190614ce5565b905080611a7933611bb8565b1015611a8457600080fd5b60005b84849050811015611ad857611ac433868684818110611aa957611aa8614f6f565b5b9050602002016020810190611abe919061439f565b85613669565b508080611ad090614e99565b915050611a87565b5050505050565b611ae7612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6b90614ae9565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611c09612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8d90614ae9565b60405180910390fd5b806008819055504360078190555050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60185481565b611d0b612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8f90614ae9565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611dfb612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f90614ae9565b60405180910390fd5b80601b8190555050565b60115481565b611ea0612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2490614ae9565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611fb9612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203d90614ae9565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61210e612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461219b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219290614ae9565b60405180910390fd5b6000600781905550565b6060600280546121b490614e67565b80601f01602080910402602001604051908101604052809291908181526020018280546121e090614e67565b801561222d5780601f106122025761010080835404028352916020019161222d565b820191906000526020600020905b81548152906001019060200180831161221057829003601f168201915b5050505050905090565b601c5481565b6000601d54905090565b60195481565b612255612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990614ae9565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061240061234a612d8d565b846123fb856040518060600160405280602581526020016152916025913960066000612374612d8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135bb9092919063ffffffff16565b612d95565b6001905092915050565b612412612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690614ae9565b60405180910390fd5b80601c8190555050565b60165481565b60096020528060005260406000206000915054906101000a900460ff1681565b60006124e36124dc612d8d565b8484612f60565b506001905092915050565b600081831115905092915050565b612504612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258890614ae9565b60405180910390fd5b60c983839050106125a157600080fd5b60005b8383905081101561263e5781600d60008686858181106125c7576125c6614f6f565b5b90506020020160208101906125dc919061439f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508061263790614e99565b90506125a4565b50505050565b61264c612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d090614ae9565b60405180910390fd5b80601f60176101000a81548160ff02191690831515021790555050565b6126fe612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461278b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278290614ae9565b60405180910390fd5b8260148190555081601581905550806016819055506127cb6016546127bd601554601454612c6a90919063ffffffff16565b612c6a90919063ffffffff16565b601981905550505050565b60105481565b6127e4612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286890614ae9565b60405180910390fd5b80601f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516128ba91906149f1565b60405180910390a150565b600f5481565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b60135481565b60075481565b601f60169054906101000a900460ff1681565b600e5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6129d7612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5b90614ae9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612acb90614a69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612b99612d8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1d90614ae9565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284612c799190614c5e565b905083811015612cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb590614aa9565b60405180910390fd5b8091505092915050565b600080831415612cdb5760009050612d3d565b60008284612ce99190614ce5565b9050828482612cf89190614cb4565b14612d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2f90614ac9565b60405180910390fd5b809150505b92915050565b6000612d8583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061383c565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dfc90614b29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6c90614a89565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612f539190614b49565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc890614b09565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161303890614a49565b60405180910390fd5b601f60149054906101000a900460ff161561306857613061848484613669565b90506135b4565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561310c5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156131275761311d82601b546124ee565b61312657600080fd5b5b600061313230611bb8565b90506000601d5482101590508080156131585750601f60149054906101000a900460ff16155b80156131ae5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156131c65750601f60159054906101000a900460ff165b156131f057601f60169054906101000a900460ff16156131e657601d5491505b6131ef8261389f565b5b6131fa8686613a90565b156132cc57613288846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135bb9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061336f5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561337c57849050613417565b60006007541161338b57600080fd5b6133a44360085460075461339f9190614c5e565b6124ee565b80156133fa5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134095761340886613b23565b5b613414878787613c28565b90505b601f60179054906101000a900460ff16801561347d5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134b2576134a86134a08261349289611bb8565b612c6a90919063ffffffff16565b601c546124ee565b6134b157600080fd5b5b61350481600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6a90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135a49190614b49565b60405180910390a3600193505050505b9392505050565b6000838311158290613603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135fa9190614a27565b60405180910390fd5b50600083856136129190614d3f565b9050809150509392505050565b600061366183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506135bb565b905092915050565b60006136f4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135bb9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061378982600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6a90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516138299190614b49565b60405180910390a3600190509392505050565b60008083118290613883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161387a9190614a27565b60405180910390fd5b50600083856138929190614cb4565b9050809150509392505050565b6001601f60146101000a81548160ff02191690831515021790555060006138f860026138ea6019546138dc60145487612cc890919063ffffffff16565b612d4390919063ffffffff16565b612d4390919063ffffffff16565b9050600061390f828461361f90919063ffffffff16565b905061391a81613efb565b6000479050600061394b61393a6002601454612d4390919063ffffffff16565b60195461361f90919063ffffffff16565b90506000613989600261397b8461396d60145488612cc890919063ffffffff16565b612d4390919063ffffffff16565b612d4390919063ffffffff16565b905060006139b4836139a660165487612cc890919063ffffffff16565b612d4390919063ffffffff16565b905060006139dd826139cf858861361f90919063ffffffff16565b61361f90919063ffffffff16565b90506000811115613a1557613a14600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614186565b5b6000821115613a4b57613a4a600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614186565b5b600083118015613a5b5750600087115b15613a6b57613a6a87846141d1565b5b505050505050506000601f60146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580613b1b5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613bc75750600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613c25576001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b60008060009050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613cb057613ca96064613c9b60175486612cc890919063ffffffff16565b612d4390919063ffffffff16565b9050613d2e565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613d2d57613d2a6064613d1c60185486612cc890919063ffffffff16565b612d4390919063ffffffff16565b90505b5b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613dd15750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613dda578290505b6000811115613ede57613e3581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6a90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613ed59190614b49565b60405180910390a35b613ef1818461361f90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115613f1857613f17614f9e565b5b604051908082528060200260200182016040528015613f465781602001602082028036833780820191505090505b5090503081600081518110613f5e57613f5d614f6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561400057600080fd5b505afa158015614014573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061403891906143cc565b8160018151811061404c5761404b614f6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506140b330601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612d95565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401614117959493929190614b94565b600060405180830381600087803b15801561413157600080fd5b505af1158015614145573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161417a929190614b64565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156141cc573d6000803e3d6000fd5b505050565b6141fe30601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612d95565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161428796959493929190614990565b6060604051808303818588803b1580156142a057600080fd5b505af11580156142b4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906142d991906146b9565b5050505050565b6000813590506142ef81615223565b92915050565b60008151905061430481615223565b92915050565b60008083601f8401126143205761431f614fd2565b5b8235905067ffffffffffffffff81111561433d5761433c614fcd565b5b60208301915083602082028301111561435957614358614fd7565b5b9250929050565b60008135905061436f8161523a565b92915050565b60008135905061438481615251565b92915050565b60008151905061439981615251565b92915050565b6000602082840312156143b5576143b4614fe1565b5b60006143c3848285016142e0565b91505092915050565b6000602082840312156143e2576143e1614fe1565b5b60006143f0848285016142f5565b91505092915050565b600080604083850312156144105761440f614fe1565b5b600061441e858286016142e0565b925050602061442f858286016142e0565b9150509250929050565b60008060006060848603121561445257614451614fe1565b5b6000614460868287016142e0565b9350506020614471868287016142e0565b925050604061448286828701614375565b9150509250925092565b600080604083850312156144a3576144a2614fe1565b5b60006144b1858286016142e0565b92505060206144c285828601614360565b9150509250929050565b600080604083850312156144e3576144e2614fe1565b5b60006144f1858286016142e0565b925050602061450285828601614375565b9150509250929050565b60008060006040848603121561452557614524614fe1565b5b600084013567ffffffffffffffff81111561454357614542614fdc565b5b61454f8682870161430a565b9350935050602061456286828701614360565b9150509250925092565b60008060006040848603121561458557614584614fe1565b5b600084013567ffffffffffffffff8111156145a3576145a2614fdc565b5b6145af8682870161430a565b935093505060206145c286828701614375565b9150509250925092565b6000602082840312156145e2576145e1614fe1565b5b60006145f084828501614360565b91505092915050565b60006020828403121561460f5761460e614fe1565b5b600061461d84828501614375565b91505092915050565b6000806040838503121561463d5761463c614fe1565b5b600061464b85828601614375565b925050602061465c85828601614375565b9150509250929050565b60008060006060848603121561467f5761467e614fe1565b5b600061468d86828701614375565b935050602061469e86828701614375565b92505060406146af86828701614375565b9150509250925092565b6000806000606084860312156146d2576146d1614fe1565b5b60006146e08682870161438a565b93505060206146f18682870161438a565b92505060406147028682870161438a565b9150509250925092565b60006147188383614742565b60208301905092915050565b61472d81614dda565b82525050565b61473c81614d85565b82525050565b61474b81614d73565b82525050565b61475a81614d73565b82525050565b600061476b82614c19565b6147758185614c3c565b935061478083614c09565b8060005b838110156147b1578151614798888261470c565b97506147a383614c2f565b925050600181019050614784565b5085935050505092915050565b6147c781614d97565b82525050565b6147d681614dec565b82525050565b6147e581614dfe565b82525050565b60006147f682614c24565b6148008185614c4d565b9350614810818560208601614e34565b61481981614fe6565b840191505092915050565b6000614831602383614c4d565b915061483c82614ff7565b604082019050919050565b6000614854602683614c4d565b915061485f82615046565b604082019050919050565b6000614877602283614c4d565b915061488282615095565b604082019050919050565b600061489a601b83614c4d565b91506148a5826150e4565b602082019050919050565b60006148bd602183614c4d565b91506148c88261510d565b604082019050919050565b60006148e0602083614c4d565b91506148eb8261515c565b602082019050919050565b6000614903602583614c4d565b915061490e82615185565b604082019050919050565b6000614926602483614c4d565b9150614931826151d4565b604082019050919050565b61494581614dc3565b82525050565b61495481614dcd565b82525050565b600060208201905061496f6000830184614751565b92915050565b600060208201905061498a6000830184614733565b92915050565b600060c0820190506149a56000830189614751565b6149b2602083018861493c565b6149bf60408301876147dc565b6149cc60608301866147dc565b6149d96080830185614724565b6149e660a083018461493c565b979650505050505050565b6000602082019050614a0660008301846147be565b92915050565b6000602082019050614a2160008301846147cd565b92915050565b60006020820190508181036000830152614a4181846147eb565b905092915050565b60006020820190508181036000830152614a6281614824565b9050919050565b60006020820190508181036000830152614a8281614847565b9050919050565b60006020820190508181036000830152614aa28161486a565b9050919050565b60006020820190508181036000830152614ac28161488d565b9050919050565b60006020820190508181036000830152614ae2816148b0565b9050919050565b60006020820190508181036000830152614b02816148d3565b9050919050565b60006020820190508181036000830152614b22816148f6565b9050919050565b60006020820190508181036000830152614b4281614919565b9050919050565b6000602082019050614b5e600083018461493c565b92915050565b6000604082019050614b79600083018561493c565b8181036020830152614b8b8184614760565b90509392505050565b600060a082019050614ba9600083018861493c565b614bb660208301876147dc565b8181036040830152614bc88186614760565b9050614bd76060830185614751565b614be4608083018461493c565b9695505050505050565b6000602082019050614c03600083018461494b565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614c6982614dc3565b9150614c7483614dc3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614ca957614ca8614ee2565b5b828201905092915050565b6000614cbf82614dc3565b9150614cca83614dc3565b925082614cda57614cd9614f11565b5b828204905092915050565b6000614cf082614dc3565b9150614cfb83614dc3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d3457614d33614ee2565b5b828202905092915050565b6000614d4a82614dc3565b9150614d5583614dc3565b925082821015614d6857614d67614ee2565b5b828203905092915050565b6000614d7e82614da3565b9050919050565b6000614d9082614da3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614de582614e10565b9050919050565b6000614df782614e10565b9050919050565b6000614e0982614dc3565b9050919050565b6000614e1b82614e22565b9050919050565b6000614e2d82614da3565b9050919050565b60005b83811015614e52578082015181840152602081019050614e37565b83811115614e61576000848401525b50505050565b60006002820490506001821680614e7f57607f821691505b60208210811415614e9357614e92614f40565b5b50919050565b6000614ea482614dc3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ed757614ed6614ee2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61522c81614d73565b811461523757600080fd5b50565b61524381614d97565b811461524e57600080fd5b50565b61525a81614dc3565b811461526557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cea15c8366837c0158e4456456b3f09725962012d7519cd26f5204d353b06afe64736f6c63430008070033

Deployed Bytecode Sourcemap

21069:495:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4786:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8742:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10036:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5584:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5701:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9019:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15049:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11497:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13862:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4532:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10826:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13323:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8928:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9405:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12619:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13186:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4447:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4988:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4879:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5816:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10969:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4933:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5314:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11237:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5915:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5351:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14286:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12751:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9127:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15166:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14183:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5461:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10550:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12138:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5200:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12362:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2799:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3024:155;;;;;;;;;;;;;:::i;:::-;;15637:74;;;;;;;;;;;;;:::i;:::-;;8833:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5618:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9908:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5501:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10687:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9631:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12495:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5388:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4822:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13687:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17689:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14805:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12259:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11768:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5161:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13007:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5123:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5749:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5239:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5278:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4753:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5863:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5085:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9254:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4490:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5422:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3187:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12880:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4786:25;;;;:::o;8742:83::-;8779:13;8812:5;8805:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8742:83;:::o;10036:161::-;10111:4;10128:39;10137:12;:10;:12::i;:::-;10151:7;10160:6;10128:8;:39::i;:::-;10185:4;10178:11;;10036:161;;;;:::o;5584:26::-;;;;:::o;5701:41::-;;;;;;;;;;;;;:::o;9019:100::-;9072:7;9099:12;;9092:19;;9019:100;:::o;15049:109::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15144:6:::1;15126:4;:15;15131:9;15126:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;15049:109:::0;;:::o;11497:259::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11596:1:::1;11576:17;:21;;;;11628:1;11608:17;:21;;;;11655:1;11640:12;:16;;;;11690:58;11735:12;;11690:40;11712:17;;11690;;:21;;:40;;;;:::i;:::-;:44;;:58;;;;:::i;:::-;11669:18;:79;;;;11497:259:::0;;;:::o;13862:313::-;13960:4;13977:36;13987:6;13995:9;14006:6;13977:9;:36::i;:::-;;14024:121;14033:6;14041:12;:10;:12::i;:::-;14055:89;14093:6;14055:89;;;;;;;;;;;;;;;;;:11;:19;14067:6;14055:19;;;;;;;;;;;;;;;:33;14075:12;:10;:12::i;:::-;14055:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14024:8;:121::i;:::-;14163:4;14156:11;;13862:313;;;;;:::o;4532:81::-;;;:::o;10826:135::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10945:8:::1;10916:17;:26;10934:7;10916:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;10826:135:::0;;:::o;13323:128::-;13376:7;13403:40;13420:22;13430:11;13420:9;:22::i;:::-;13403:12;;:16;;:40;;;;:::i;:::-;13396:47;;13323:128;:::o;8928:83::-;8969:5;8994:9;;;;;;;;;;;8987:16;;8928:83;:::o;9405:218::-;9493:4;9510:83;9519:12;:10;:12::i;:::-;9533:7;9542:50;9581:10;9542:11;:25;9554:12;:10;:12::i;:::-;9542:25;;;;;;;;;;;;;;;:34;9568:7;9542:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9510:8;:83::i;:::-;9611:4;9604:11;;9405:218;;;;:::o;12619:124::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12727:8:::1;12701:23;:34;;;;12619:124:::0;:::o;13186:125::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13295:8:::1;13267:25;;:36;;;;;;;;;;;;;;;;;;13186:125:::0;:::o;4447:36::-;;;;;;;;;;;;;:::o;4988:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4879:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;5816:40::-;;;;;;;;;;;;;:::o;10969:260::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11097:3:::1;11078:9;;:16;;:22;11070:31;;;::::0;::::1;;11117:9;11112:110;11132:9;;:16;;11128:1;:20;11112:110;;;11204:6;11170:17;:31;11188:9;;11198:1;11188:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11170:31;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;11150:3;;;;:::i;:::-;;;11112:110;;;;10969:260:::0;;;:::o;4933:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;5314:30::-;;;;:::o;11237:252::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11335:1:::1;11316:16;:20;;;;11366:1;11347:16;:20;;;;11392:1;11378:11;:15;;;;11426:55;11469:11;;11426:38;11447:16;;11426;;:20;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;11406:17;:75;;;;11237:252:::0;;;:::o;5915:29::-;;;;;;;;;;;;;:::o;5351:30::-;;;;:::o;14286:368::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14418:4:::1;14399:9;;:16;;:23;14391:32;;;::::0;::::1;;14434:12;14458:9;;:16;;14449:6;:25;;;;:::i;:::-;14434:40;;14518:4;14493:21;14503:10;14493:9;:21::i;:::-;:29;;14485:38;;;::::0;::::1;;14538:6;14534:113;14552:9;;:16;;14548:1;:20;14534:113;;;14589:46;14604:10;14615:9;;14625:1;14615:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14628:6;14589:14;:46::i;:::-;;14570:3;;;;;:::i;:::-;;;;14534:113;;;;14380:274;14286:368:::0;;;:::o;12751:121::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12853:10:::1;12829:13;;:35;;;;;;;;;;;;;;;;;;12751:121:::0;:::o;9127:119::-;9193:7;9220:9;:18;9230:7;9220:18;;;;;;;;;;;;;;;;9213:25;;9127:119;;;:::o;15166:113::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15233:1:::1;15220:10;:14;;;;15259:12;15245:11;:26;;;;15166:113:::0;:::o;14183:95::-;14233:4;14257;:13;14262:7;14257:13;;;;;;;;;;;;;;;;;;;;;;;;;14250:20;;14183:95;;;:::o;5461:33::-;;;;:::o;10550:129::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10663:8:::1;10639:12;:21;10652:7;10639:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10550:129:::0;;:::o;12138:113::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12230:13:::1;12216:11;:27;;;;12138:113:::0;:::o;5200:32::-;;;;:::o;12362:125::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12473:6:::1;12448:14;:22;12463:6;12448:22;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;12362:125:::0;;:::o;2799:79::-;2837:7;2864:6;;;;;;;;;;;2857:13;;2799:79;:::o;3024:155::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3128:6:::1;3091:45;;3112:6;::::0;::::1;;;;;;;;3091:45;;;;;;;;;;;;3164:6;3147;::::0;:24:::1;;;;;;;;;;;;;;;;;;3024:155::o:0;15637:74::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15702:1:::1;15688:11;:15;;;;15637:74::o:0;8833:87::-;8872:13;8905:7;8898:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8833:87;:::o;5618:27::-;;;;:::o;9908:120::-;9970:7;9997:23;;9990:30;;9908:120;:::o;5501:39::-;;;;:::o;10687:127::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10800:6:::1;10774:15;:23;10790:6;10774:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10687:127:::0;;:::o;9631:269::-;9724:4;9741:129;9750:12;:10;:12::i;:::-;9764:7;9773:96;9812:15;9773:96;;;;;;;;;;;;;;;;;:11;:25;9785:12;:10;:12::i;:::-;9773:25;;;;;;;;;;;;;;;:34;9799:7;9773:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9741:8;:129::i;:::-;9888:4;9881:11;;9631:269;;;;:::o;12495:116::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12589:14:::1;12573:12;:30;;;;12495:116:::0;:::o;5388:25::-;;;;:::o;4822:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;13687:167::-;13765:4;13782:42;13792:12;:10;:12::i;:::-;13806:9;13817:6;13782:9;:42::i;:::-;;13842:4;13835:11;;13687:167;;;;:::o;17689:86::-;17753:4;17771:1;17768;:4;;17761:11;;17689:86;;;;:::o;14805:236::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14922:3:::1;14903:9;;:16;;:22;14895:31;;;::::0;::::1;;14942:9;14937:97;14957:9;;:16;;14953:1;:20;14937:97;;;15016:6;14995:4;:18;15000:9;;15010:1;15000:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14995:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;14975:3;;;;:::i;:::-;;;14937:97;;;;14805:236:::0;;;:::o;12259:95::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12338:8:::1;12325:10;;:21;;;;;;;;;;;;;;;;;;12259:95:::0;:::o;11768:358::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11927:17:::1;11909:15;:35;;;;11973:17;11955:15;:35;;;;12014:12;12001:10;:25;;;;12066:52;12107:10;;12066:36;12086:15;;12066;;:19;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;12039:24;:79;;;;11768:358:::0;;;:::o;5161:26::-;;;;:::o;13007:171::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13108:8:::1;13084:21;;:32;;;;;;;;;;;;;;;;;;13132:38;13161:8;13132:38;;;;;;:::i;:::-;;;;;;;;13007:171:::0;:::o;5123:31::-;;;;:::o;5749:26::-;;;;;;;;;;;;;:::o;5239:32::-;;;;:::o;5278:27::-;;;;:::o;4753:26::-;;;;:::o;5863:45::-;;;;;;;;;;;;;:::o;5085:31::-;;;;:::o;9254:143::-;9335:7;9362:11;:18;9374:5;9362:18;;;;;;;;;;;;;;;:27;9381:7;9362:27;;;;;;;;;;;;;;;;9355:34;;9254:143;;;;:::o;4490:35::-;;;;;;;;;;;;;:::o;5422:32::-;;;;:::o;3187:244::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3296:1:::1;3276:22;;:8;:22;;;;3268:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3386:8;3357:38;;3378:6;::::0;::::1;;;;;;;;3357:38;;;;;;;;;;;;3415:8;3406:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3187:244:::0;:::o;12880:119::-;2943:12;:10;:12::i;:::-;2933:22;;:6;;;;;;;;;;:22;;;2925:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12980:10:::1;12957:12;;:34;;;;;;;;;;;;;;;;;;12880:119:::0;:::o;1042:181::-;1100:7;1120:9;1136:1;1132;:5;;;;:::i;:::-;1120:17;;1161:1;1156;:6;;1148:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1214:1;1207:8;;;1042:181;;;;:::o;1575:250::-;1633:7;1662:1;1657;:6;1653:47;;;1687:1;1680:8;;;;1653:47;1712:9;1728:1;1724;:5;;;;:::i;:::-;1712:17;;1757:1;1752;1748;:5;;;;:::i;:::-;:10;1740:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1816:1;1809:8;;;1575:250;;;;;:::o;1833:132::-;1891:7;1918:39;1922:1;1925;1918:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1911:46;;1833:132;;;;:::o;93:115::-;146:15;189:10;174:26;;93:115;:::o;10205:337::-;10315:1;10298:19;;:5;:19;;;;10290:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10396:1;10377:21;;:7;:21;;;;10369:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10480:6;10450:11;:18;10462:5;10450:18;;;;;;;;;;;;;;;:27;10469:7;10450:27;;;;;;;;;;;;;;;:36;;;;10518:7;10502:32;;10511:5;10502:32;;;10527:6;10502:32;;;;;;:::i;:::-;;;;;;;;10205:337;;;:::o;15719:1962::-;15806:4;15851:1;15833:20;;:6;:20;;;;15825:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15935:1;15914:23;;:9;:23;;;;15906:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15993:16;;;;;;;;;;;15990:1684;;;16043:41;16058:6;16066:9;16077:6;16043:14;:41::i;:::-;16036:48;;;;15990:1684;16140:15;:23;16156:6;16140:23;;;;;;;;;;;;;;;;;;;;;;;;;16139:24;:55;;;;;16168:15;:26;16184:9;16168:26;;;;;;;;;;;;;;;;;;;;;;;;;16167:27;16139:55;16136:137;;;16223:33;16236:6;16244:11;;16223:12;:33::i;:::-;16215:42;;;;;;16136:137;16313:28;16344:24;16362:4;16344:9;:24::i;:::-;16313:55;;16383:28;16438:23;;16414:20;:47;;16383:78;;16494:23;:44;;;;;16522:16;;;;;;;;;;;16521:17;16494:44;:69;;;;;16543:12;:20;16556:6;16543:20;;;;;;;;;;;;;;;;;;;;;;;;;16542:21;16494:69;:94;;;;;16567:21;;;;;;;;;;;16494:94;16490:305;;;16626:25;;;;;;;;;;;16623:97;;;16697:23;;16674:46;;16623:97;16739:36;16754:20;16739:14;:36::i;:::-;16490:305;16798:37;16818:6;16825:9;16798:19;:37::i;:::-;16795:130;;;16872:53;16894:6;16872:53;;;;;;;;;;;;;;;;;:9;:17;16882:6;16872:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16852:9;:17;16862:6;16852:17;;;;;;;;;;;;;;;:73;;;;16795:130;16940:19;16978:17;:25;16996:6;16978:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;17007:17;:28;17025:9;17007:28;;;;;;;;;;;;;;;;;;;;;;;;;16978:57;16974:357;;;17070:6;17056:20;;16974:357;;;17121:1;17107:11;;:15;17099:24;;;;;;17146:53;17159:12;17188:10;;17174:11;;:24;;;;:::i;:::-;17146:12;:53::i;:::-;:81;;;;;17204:12;:23;17217:9;17204:23;;;;;;;;;;;;;;;;;;;;;;;;;17203:24;17146:81;17142:107;;;17230:17;17237:9;17230:6;:17::i;:::-;17142:107;17281:34;17289:6;17297:9;17308:6;17281:7;:34::i;:::-;17267:48;;16974:357;17350:10;;;;;;;;;;;:40;;;;;17365:14;:25;17380:9;17365:25;;;;;;;;;;;;;;;;;;;;;;;;;17364:26;17350:40;17347:136;;;17417:65;17430:37;17455:11;17430:20;17440:9;17430;:20::i;:::-;:24;;:37;;;;:::i;:::-;17469:12;;17417;:65::i;:::-;17409:74;;;;;;17347:136;17523:37;17548:11;17523:9;:20;17533:9;17523:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;17500:9;:20;17510:9;17500:20;;;;;;;;;;;;;;;:60;;;;17599:9;17582:40;;17591:6;17582:40;;;17610:11;17582:40;;;;;;:::i;:::-;;;;;;;;17644:4;17637:11;;;;;15719:1962;;;;;;:::o;1375:192::-;1461:7;1494:1;1489;:6;;1497:12;1481:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1521:9;1537:1;1533;:5;;;;:::i;:::-;1521:17;;1558:1;1551:8;;;1375:192;;;;;:::o;1231:136::-;1289:7;1316:43;1320:1;1323;1316:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1309:50;;1231:136;;;;:::o;17783:330::-;17876:4;17913:53;17935:6;17913:53;;;;;;;;;;;;;;;;;:9;:17;17923:6;17913:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17893:9;:17;17903:6;17893:17;;;;;;;;;;;;;;;:73;;;;18000:32;18025:6;18000:9;:20;18010:9;18000:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;17977:9;:20;17987:9;17977:20;;;;;;;;;;;;;;;:55;;;;18065:9;18048:35;;18057:6;18048:35;;;18076:6;18048:35;;;;;;:::i;:::-;;;;;;;;18101:4;18094:11;;17783:330;;;;;:::o;1973:189::-;2059:7;2091:1;2087;:5;2094:12;2079:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2118:9;2134:1;2130;:5;;;;:::i;:::-;2118:17;;2153:1;2146:8;;;1973:189;;;;;:::o;18121:1034::-;6386:4;6367:16;;:23;;;;;;;;;;;;;;;;;;18203:19:::1;18225:65;18288:1;18225:58;18258:24;;18225:28;18237:15;;18225:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;18203:87;;18301:21;18325:24;18337:11;18325:7;:11;;:24;;;;:::i;:::-;18301:48;;18362:31;18379:13;18362:16;:31::i;:::-;18404:22;18429:21;18404:46;;18463:19;18485:52;18514:22;18534:1;18514:15;;:19;;:22;;;;:::i;:::-;18485:24;;:28;;:52;;;;:::i;:::-;18463:74;;18558:26;18587:59;18644:1;18587:52;18627:11;18587:35;18606:15;;18587:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;18558:88;;18657:21;18681:47;18716:11;18681:30;18700:10;;18681:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;18657:71;;18739:26;18768:57;18811:13;18768:38;18787:18;18768:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;18739:86;;18862:1;18841:18;:22;18838:95;;;18878:55;18899:13;;;;;;;;;;;18914:18;18878:20;:55::i;:::-;18838:95;18965:1;18949:13;:17;18946:84;;;18981:49;19002:12;;;;;;;;;;;19016:13;18981:20;:49::i;:::-;18946:84;19067:1;19046:18;:22;:41;;;;;19086:1;19072:11;:15;19046:41;19043:104;;;19102:45;19115:11;19128:18;19102:12;:45::i;:::-;19043:104;18182:973;;;;;;;6432:5:::0;6413:16;;:24;;;;;;;;;;;;;;;;;;18121:1034;:::o;15291:338::-;15365:4;15382:1;15379:4;;:1;:4;;;;15378:137;;;;15502:12;;;;;;;;;;;15499:15;;:1;:15;;;;15378:137;15371:144;;15291:338;;;;:::o;14662:135::-;14722:4;:15;14727:9;14722:15;;;;;;;;;;;;;;;;;;;;;;;;;14721:16;:44;;;;;14742:12;:23;14755:9;14742:23;;;;;;;;;;;;;;;;;;;;;;;;;14741:24;14721:44;14717:72;;;14785:4;14767;:15;14772:9;14767:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;14717:72;14662:135;:::o;20367:695::-;20453:7;20483:17;20503:1;20483:21;;20528:12;:20;20541:6;20528:20;;;;;;;;;;;;;;;;;;;;;;;;;20525:223;;;20577:38;20611:3;20577:29;20588:17;;20577:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;20565:50;;20525:223;;;20645:12;:23;20658:9;20645:23;;;;;;;;;;;;;;;;;;;;;;;;;20642:106;;;20697:39;20732:3;20697:30;20708:18;;20697:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;20685:51;;20642:106;20525:223;20763:4;:12;20768:6;20763:12;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;;20780:12;:20;20793:6;20780:20;;;;;;;;;;;;;;;;;;;;;;;;;20779:21;20763:37;20760:60;;;20814:6;20802:18;;20760:60;20856:1;20844:9;:13;20841:173;;;20901:39;20930:9;20901;:24;20919:4;20901:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20874:9;:24;20892:4;20874:24;;;;;;;;;;;;;;;:66;;;;20985:4;20960:42;;20969:6;20960:42;;;20992:9;20960:42;;;;;;:::i;:::-;;;;;;;;20841:173;21033:21;21044:9;21033:6;:10;;:21;;;;:::i;:::-;21026:28;;;20367:695;;;;;:::o;19167:666::-;19293:21;19331:1;19317:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19293:40;;19362:4;19344;19349:1;19344:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19388:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19378:4;19383:1;19378:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;19423:62;19440:4;19455:15;;;;;;;;;;;19473:11;19423:8;:62::i;:::-;19524:15;;;;;;;;;;;:66;;;19605:11;19631:1;19675:4;19702;19738:15;19524:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19790:35;19807:11;19820:4;19790:35;;;;;;;:::i;:::-;;;;;;;;19222:611;19167:666;:::o;13459:126::-;13551:9;:18;;:26;13570:6;13551:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13459:126;;:::o;19841:518::-;19989:62;20006:4;20021:15;;;;;;;;;;;20039:11;19989:8;:62::i;:::-;20094:15;;;;;;;;;;;:31;;;20133:9;20166:4;20186:11;20212:1;20255;20298:12;;;;;;;;;;;20325:15;20094:257;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19841:518;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:143::-;1233:5;1264:6;1258:13;1249:22;;1280:33;1307:5;1280:33;:::i;:::-;1176:143;;;;:::o;1325:329::-;1384:6;1433:2;1421:9;1412:7;1408:23;1404:32;1401:119;;;1439:79;;:::i;:::-;1401:119;1559:1;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1530:117;1325:329;;;;:::o;1660:351::-;1730:6;1779:2;1767:9;1758:7;1754:23;1750:32;1747:119;;;1785:79;;:::i;:::-;1747:119;1905:1;1930:64;1986:7;1977:6;1966:9;1962:22;1930:64;:::i;:::-;1920:74;;1876:128;1660:351;;;;:::o;2017:474::-;2085:6;2093;2142:2;2130:9;2121:7;2117:23;2113:32;2110:119;;;2148:79;;:::i;:::-;2110:119;2268:1;2293:53;2338:7;2329:6;2318:9;2314:22;2293:53;:::i;:::-;2283:63;;2239:117;2395:2;2421:53;2466:7;2457:6;2446:9;2442:22;2421:53;:::i;:::-;2411:63;;2366:118;2017:474;;;;;:::o;2497:619::-;2574:6;2582;2590;2639:2;2627:9;2618:7;2614:23;2610:32;2607:119;;;2645:79;;:::i;:::-;2607:119;2765:1;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2736:117;2892:2;2918:53;2963:7;2954:6;2943:9;2939:22;2918:53;:::i;:::-;2908:63;;2863:118;3020:2;3046:53;3091:7;3082:6;3071:9;3067:22;3046:53;:::i;:::-;3036:63;;2991:118;2497:619;;;;;:::o;3122:468::-;3187:6;3195;3244:2;3232:9;3223:7;3219:23;3215:32;3212:119;;;3250:79;;:::i;:::-;3212:119;3370:1;3395:53;3440:7;3431:6;3420:9;3416:22;3395:53;:::i;:::-;3385:63;;3341:117;3497:2;3523:50;3565:7;3556:6;3545:9;3541:22;3523:50;:::i;:::-;3513:60;;3468:115;3122:468;;;;;:::o;3596:474::-;3664:6;3672;3721:2;3709:9;3700:7;3696:23;3692:32;3689:119;;;3727:79;;:::i;:::-;3689:119;3847:1;3872:53;3917:7;3908:6;3897:9;3893:22;3872:53;:::i;:::-;3862:63;;3818:117;3974:2;4000:53;4045:7;4036:6;4025:9;4021:22;4000:53;:::i;:::-;3990:63;;3945:118;3596:474;;;;;:::o;4076:698::-;4168:6;4176;4184;4233:2;4221:9;4212:7;4208:23;4204:32;4201:119;;;4239:79;;:::i;:::-;4201:119;4387:1;4376:9;4372:17;4359:31;4417:18;4409:6;4406:30;4403:117;;;4439:79;;:::i;:::-;4403:117;4552:80;4624:7;4615:6;4604:9;4600:22;4552:80;:::i;:::-;4534:98;;;;4330:312;4681:2;4707:50;4749:7;4740:6;4729:9;4725:22;4707:50;:::i;:::-;4697:60;;4652:115;4076:698;;;;;:::o;4780:704::-;4875:6;4883;4891;4940:2;4928:9;4919:7;4915:23;4911:32;4908:119;;;4946:79;;:::i;:::-;4908:119;5094:1;5083:9;5079:17;5066:31;5124:18;5116:6;5113:30;5110:117;;;5146:79;;:::i;:::-;5110:117;5259:80;5331:7;5322:6;5311:9;5307:22;5259:80;:::i;:::-;5241:98;;;;5037:312;5388:2;5414:53;5459:7;5450:6;5439:9;5435:22;5414:53;:::i;:::-;5404:63;;5359:118;4780:704;;;;;:::o;5490:323::-;5546:6;5595:2;5583:9;5574:7;5570:23;5566:32;5563:119;;;5601:79;;:::i;:::-;5563:119;5721:1;5746:50;5788:7;5779:6;5768:9;5764:22;5746:50;:::i;:::-;5736:60;;5692:114;5490:323;;;;:::o;5819:329::-;5878:6;5927:2;5915:9;5906:7;5902:23;5898:32;5895:119;;;5933:79;;:::i;:::-;5895:119;6053:1;6078:53;6123:7;6114:6;6103:9;6099:22;6078:53;:::i;:::-;6068:63;;6024:117;5819:329;;;;:::o;6154:474::-;6222:6;6230;6279:2;6267:9;6258:7;6254:23;6250:32;6247:119;;;6285:79;;:::i;:::-;6247:119;6405:1;6430:53;6475:7;6466:6;6455:9;6451:22;6430:53;:::i;:::-;6420:63;;6376:117;6532:2;6558:53;6603:7;6594:6;6583:9;6579:22;6558:53;:::i;:::-;6548:63;;6503:118;6154:474;;;;;:::o;6634:619::-;6711:6;6719;6727;6776:2;6764:9;6755:7;6751:23;6747:32;6744:119;;;6782:79;;:::i;:::-;6744:119;6902:1;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;:::i;:::-;6917:63;;6873:117;7029:2;7055:53;7100:7;7091:6;7080:9;7076:22;7055:53;:::i;:::-;7045:63;;7000:118;7157:2;7183:53;7228:7;7219:6;7208:9;7204:22;7183:53;:::i;:::-;7173:63;;7128:118;6634:619;;;;;:::o;7259:663::-;7347:6;7355;7363;7412:2;7400:9;7391:7;7387:23;7383:32;7380:119;;;7418:79;;:::i;:::-;7380:119;7538:1;7563:64;7619:7;7610:6;7599:9;7595:22;7563:64;:::i;:::-;7553:74;;7509:128;7676:2;7702:64;7758:7;7749:6;7738:9;7734:22;7702:64;:::i;:::-;7692:74;;7647:129;7815:2;7841:64;7897:7;7888:6;7877:9;7873:22;7841:64;:::i;:::-;7831:74;;7786:129;7259:663;;;;;:::o;7928:179::-;7997:10;8018:46;8060:3;8052:6;8018:46;:::i;:::-;8096:4;8091:3;8087:14;8073:28;;7928:179;;;;:::o;8113:147::-;8208:45;8247:5;8208:45;:::i;:::-;8203:3;8196:58;8113:147;;:::o;8266:142::-;8369:32;8395:5;8369:32;:::i;:::-;8364:3;8357:45;8266:142;;:::o;8414:108::-;8491:24;8509:5;8491:24;:::i;:::-;8486:3;8479:37;8414:108;;:::o;8528:118::-;8615:24;8633:5;8615:24;:::i;:::-;8610:3;8603:37;8528:118;;:::o;8682:732::-;8801:3;8830:54;8878:5;8830:54;:::i;:::-;8900:86;8979:6;8974:3;8900:86;:::i;:::-;8893:93;;9010:56;9060:5;9010:56;:::i;:::-;9089:7;9120:1;9105:284;9130:6;9127:1;9124:13;9105:284;;;9206:6;9200:13;9233:63;9292:3;9277:13;9233:63;:::i;:::-;9226:70;;9319:60;9372:6;9319:60;:::i;:::-;9309:70;;9165:224;9152:1;9149;9145:9;9140:14;;9105:284;;;9109:14;9405:3;9398:10;;8806:608;;;8682:732;;;;:::o;9420:109::-;9501:21;9516:5;9501:21;:::i;:::-;9496:3;9489:34;9420:109;;:::o;9535:183::-;9648:63;9705:5;9648:63;:::i;:::-;9643:3;9636:76;9535:183;;:::o;9724:147::-;9819:45;9858:5;9819:45;:::i;:::-;9814:3;9807:58;9724:147;;:::o;9877:364::-;9965:3;9993:39;10026:5;9993:39;:::i;:::-;10048:71;10112:6;10107:3;10048:71;:::i;:::-;10041:78;;10128:52;10173:6;10168:3;10161:4;10154:5;10150:16;10128:52;:::i;:::-;10205:29;10227:6;10205:29;:::i;:::-;10200:3;10196:39;10189:46;;9969:272;9877:364;;;;:::o;10247:366::-;10389:3;10410:67;10474:2;10469:3;10410:67;:::i;:::-;10403:74;;10486:93;10575:3;10486:93;:::i;:::-;10604:2;10599:3;10595:12;10588:19;;10247:366;;;:::o;10619:::-;10761:3;10782:67;10846:2;10841:3;10782:67;:::i;:::-;10775:74;;10858:93;10947:3;10858:93;:::i;:::-;10976:2;10971:3;10967:12;10960:19;;10619:366;;;:::o;10991:::-;11133:3;11154:67;11218:2;11213:3;11154:67;:::i;:::-;11147:74;;11230:93;11319:3;11230:93;:::i;:::-;11348:2;11343:3;11339:12;11332:19;;10991:366;;;:::o;11363:::-;11505:3;11526:67;11590:2;11585:3;11526:67;:::i;:::-;11519:74;;11602:93;11691:3;11602:93;:::i;:::-;11720:2;11715:3;11711:12;11704:19;;11363:366;;;:::o;11735:::-;11877:3;11898:67;11962:2;11957:3;11898:67;:::i;:::-;11891:74;;11974:93;12063:3;11974:93;:::i;:::-;12092:2;12087:3;12083:12;12076:19;;11735:366;;;:::o;12107:::-;12249:3;12270:67;12334:2;12329:3;12270:67;:::i;:::-;12263:74;;12346:93;12435:3;12346:93;:::i;:::-;12464:2;12459:3;12455:12;12448:19;;12107:366;;;:::o;12479:::-;12621:3;12642:67;12706:2;12701:3;12642:67;:::i;:::-;12635:74;;12718:93;12807:3;12718:93;:::i;:::-;12836:2;12831:3;12827:12;12820:19;;12479:366;;;:::o;12851:::-;12993:3;13014:67;13078:2;13073:3;13014:67;:::i;:::-;13007:74;;13090:93;13179:3;13090:93;:::i;:::-;13208:2;13203:3;13199:12;13192:19;;12851:366;;;:::o;13223:118::-;13310:24;13328:5;13310:24;:::i;:::-;13305:3;13298:37;13223:118;;:::o;13347:112::-;13430:22;13446:5;13430:22;:::i;:::-;13425:3;13418:35;13347:112;;:::o;13465:222::-;13558:4;13596:2;13585:9;13581:18;13573:26;;13609:71;13677:1;13666:9;13662:17;13653:6;13609:71;:::i;:::-;13465:222;;;;:::o;13693:254::-;13802:4;13840:2;13829:9;13825:18;13817:26;;13853:87;13937:1;13926:9;13922:17;13913:6;13853:87;:::i;:::-;13693:254;;;;:::o;13953:823::-;14210:4;14248:3;14237:9;14233:19;14225:27;;14262:71;14330:1;14319:9;14315:17;14306:6;14262:71;:::i;:::-;14343:72;14411:2;14400:9;14396:18;14387:6;14343:72;:::i;:::-;14425:80;14501:2;14490:9;14486:18;14477:6;14425:80;:::i;:::-;14515;14591:2;14580:9;14576:18;14567:6;14515:80;:::i;:::-;14605:81;14681:3;14670:9;14666:19;14657:6;14605:81;:::i;:::-;14696:73;14764:3;14753:9;14749:19;14740:6;14696:73;:::i;:::-;13953:823;;;;;;;;;:::o;14782:210::-;14869:4;14907:2;14896:9;14892:18;14884:26;;14920:65;14982:1;14971:9;14967:17;14958:6;14920:65;:::i;:::-;14782:210;;;;:::o;14998:274::-;15117:4;15155:2;15144:9;15140:18;15132:26;;15168:97;15262:1;15251:9;15247:17;15238:6;15168:97;:::i;:::-;14998:274;;;;:::o;15278:313::-;15391:4;15429:2;15418:9;15414:18;15406:26;;15478:9;15472:4;15468:20;15464:1;15453:9;15449:17;15442:47;15506:78;15579:4;15570:6;15506:78;:::i;:::-;15498:86;;15278:313;;;;:::o;15597:419::-;15763:4;15801:2;15790:9;15786:18;15778:26;;15850:9;15844:4;15840:20;15836:1;15825:9;15821:17;15814:47;15878:131;16004:4;15878:131;:::i;:::-;15870:139;;15597:419;;;:::o;16022:::-;16188:4;16226:2;16215:9;16211:18;16203:26;;16275:9;16269:4;16265:20;16261:1;16250:9;16246:17;16239:47;16303:131;16429:4;16303:131;:::i;:::-;16295:139;;16022:419;;;:::o;16447:::-;16613:4;16651:2;16640:9;16636:18;16628:26;;16700:9;16694:4;16690:20;16686:1;16675:9;16671:17;16664:47;16728:131;16854:4;16728:131;:::i;:::-;16720:139;;16447:419;;;:::o;16872:::-;17038:4;17076:2;17065:9;17061:18;17053:26;;17125:9;17119:4;17115:20;17111:1;17100:9;17096:17;17089:47;17153:131;17279:4;17153:131;:::i;:::-;17145:139;;16872:419;;;:::o;17297:::-;17463:4;17501:2;17490:9;17486:18;17478:26;;17550:9;17544:4;17540:20;17536:1;17525:9;17521:17;17514:47;17578:131;17704:4;17578:131;:::i;:::-;17570:139;;17297:419;;;:::o;17722:::-;17888:4;17926:2;17915:9;17911:18;17903:26;;17975:9;17969:4;17965:20;17961:1;17950:9;17946:17;17939:47;18003:131;18129:4;18003:131;:::i;:::-;17995:139;;17722:419;;;:::o;18147:::-;18313:4;18351:2;18340:9;18336:18;18328:26;;18400:9;18394:4;18390:20;18386:1;18375:9;18371:17;18364:47;18428:131;18554:4;18428:131;:::i;:::-;18420:139;;18147:419;;;:::o;18572:::-;18738:4;18776:2;18765:9;18761:18;18753:26;;18825:9;18819:4;18815:20;18811:1;18800:9;18796:17;18789:47;18853:131;18979:4;18853:131;:::i;:::-;18845:139;;18572:419;;;:::o;18997:222::-;19090:4;19128:2;19117:9;19113:18;19105:26;;19141:71;19209:1;19198:9;19194:17;19185:6;19141:71;:::i;:::-;18997:222;;;;:::o;19225:483::-;19396:4;19434:2;19423:9;19419:18;19411:26;;19447:71;19515:1;19504:9;19500:17;19491:6;19447:71;:::i;:::-;19565:9;19559:4;19555:20;19550:2;19539:9;19535:18;19528:48;19593:108;19696:4;19687:6;19593:108;:::i;:::-;19585:116;;19225:483;;;;;:::o;19714:831::-;19977:4;20015:3;20004:9;20000:19;19992:27;;20029:71;20097:1;20086:9;20082:17;20073:6;20029:71;:::i;:::-;20110:80;20186:2;20175:9;20171:18;20162:6;20110:80;:::i;:::-;20237:9;20231:4;20227:20;20222:2;20211:9;20207:18;20200:48;20265:108;20368:4;20359:6;20265:108;:::i;:::-;20257:116;;20383:72;20451:2;20440:9;20436:18;20427:6;20383:72;:::i;:::-;20465:73;20533:3;20522:9;20518:19;20509:6;20465:73;:::i;:::-;19714:831;;;;;;;;:::o;20551:214::-;20640:4;20678:2;20667:9;20663:18;20655:26;;20691:67;20755:1;20744:9;20740:17;20731:6;20691:67;:::i;:::-;20551:214;;;;:::o;20852:132::-;20919:4;20942:3;20934:11;;20972:4;20967:3;20963:14;20955:22;;20852:132;;;:::o;20990:114::-;21057:6;21091:5;21085:12;21075:22;;20990:114;;;:::o;21110:99::-;21162:6;21196:5;21190:12;21180:22;;21110:99;;;:::o;21215:113::-;21285:4;21317;21312:3;21308:14;21300:22;;21215:113;;;:::o;21334:184::-;21433:11;21467:6;21462:3;21455:19;21507:4;21502:3;21498:14;21483:29;;21334:184;;;;:::o;21524:169::-;21608:11;21642:6;21637:3;21630:19;21682:4;21677:3;21673:14;21658:29;;21524:169;;;;:::o;21699:305::-;21739:3;21758:20;21776:1;21758:20;:::i;:::-;21753:25;;21792:20;21810:1;21792:20;:::i;:::-;21787:25;;21946:1;21878:66;21874:74;21871:1;21868:81;21865:107;;;21952:18;;:::i;:::-;21865:107;21996:1;21993;21989:9;21982:16;;21699:305;;;;:::o;22010:185::-;22050:1;22067:20;22085:1;22067:20;:::i;:::-;22062:25;;22101:20;22119:1;22101:20;:::i;:::-;22096:25;;22140:1;22130:35;;22145:18;;:::i;:::-;22130:35;22187:1;22184;22180:9;22175:14;;22010:185;;;;:::o;22201:348::-;22241:7;22264:20;22282:1;22264:20;:::i;:::-;22259:25;;22298:20;22316:1;22298:20;:::i;:::-;22293:25;;22486:1;22418:66;22414:74;22411:1;22408:81;22403:1;22396:9;22389:17;22385:105;22382:131;;;22493:18;;:::i;:::-;22382:131;22541:1;22538;22534:9;22523:20;;22201:348;;;;:::o;22555:191::-;22595:4;22615:20;22633:1;22615:20;:::i;:::-;22610:25;;22649:20;22667:1;22649:20;:::i;:::-;22644:25;;22688:1;22685;22682:8;22679:34;;;22693:18;;:::i;:::-;22679:34;22738:1;22735;22731:9;22723:17;;22555:191;;;;:::o;22752:96::-;22789:7;22818:24;22836:5;22818:24;:::i;:::-;22807:35;;22752:96;;;:::o;22854:104::-;22899:7;22928:24;22946:5;22928:24;:::i;:::-;22917:35;;22854:104;;;:::o;22964:90::-;22998:7;23041:5;23034:13;23027:21;23016:32;;22964:90;;;:::o;23060:126::-;23097:7;23137:42;23130:5;23126:54;23115:65;;23060:126;;;:::o;23192:77::-;23229:7;23258:5;23247:16;;23192:77;;;:::o;23275:86::-;23310:7;23350:4;23343:5;23339:16;23328:27;;23275:86;;;:::o;23367:134::-;23425:9;23458:37;23489:5;23458:37;:::i;:::-;23445:50;;23367:134;;;:::o;23507:152::-;23583:9;23616:37;23647:5;23616:37;:::i;:::-;23603:50;;23507:152;;;:::o;23665:121::-;23723:9;23756:24;23774:5;23756:24;:::i;:::-;23743:37;;23665:121;;;:::o;23792:126::-;23842:9;23875:37;23906:5;23875:37;:::i;:::-;23862:50;;23792:126;;;:::o;23924:113::-;23974:9;24007:24;24025:5;24007:24;:::i;:::-;23994:37;;23924:113;;;:::o;24043:307::-;24111:1;24121:113;24135:6;24132:1;24129:13;24121:113;;;24220:1;24215:3;24211:11;24205:18;24201:1;24196:3;24192:11;24185:39;24157:2;24154:1;24150:10;24145:15;;24121:113;;;24252:6;24249:1;24246:13;24243:101;;;24332:1;24323:6;24318:3;24314:16;24307:27;24243:101;24092:258;24043:307;;;:::o;24356:320::-;24400:6;24437:1;24431:4;24427:12;24417:22;;24484:1;24478:4;24474:12;24505:18;24495:81;;24561:4;24553:6;24549:17;24539:27;;24495:81;24623:2;24615:6;24612:14;24592:18;24589:38;24586:84;;;24642:18;;:::i;:::-;24586:84;24407:269;24356:320;;;:::o;24682:233::-;24721:3;24744:24;24762:5;24744:24;:::i;:::-;24735:33;;24790:66;24783:5;24780:77;24777:103;;;24860:18;;:::i;:::-;24777:103;24907:1;24900:5;24896:13;24889:20;;24682:233;;;:::o;24921:180::-;24969:77;24966:1;24959:88;25066:4;25063:1;25056:15;25090:4;25087:1;25080:15;25107:180;25155:77;25152:1;25145:88;25252:4;25249:1;25242:15;25276:4;25273:1;25266:15;25293:180;25341:77;25338:1;25331:88;25438:4;25435:1;25428:15;25462:4;25459:1;25452:15;25479:180;25527:77;25524:1;25517:88;25624:4;25621:1;25614:15;25648:4;25645:1;25638:15;25665:180;25713:77;25710:1;25703:88;25810:4;25807:1;25800:15;25834:4;25831:1;25824:15;25851:117;25960:1;25957;25950:12;25974:117;26083:1;26080;26073:12;26097:117;26206:1;26203;26196:12;26220:117;26329:1;26326;26319:12;26343:117;26452:1;26449;26442:12;26466:102;26507:6;26558:2;26554:7;26549:2;26542:5;26538:14;26534:28;26524:38;;26466:102;;;:::o;26574:222::-;26714:34;26710:1;26702:6;26698:14;26691:58;26783:5;26778:2;26770:6;26766:15;26759:30;26574:222;:::o;26802:225::-;26942:34;26938:1;26930:6;26926:14;26919:58;27011:8;27006:2;26998:6;26994:15;26987:33;26802:225;:::o;27033:221::-;27173:34;27169:1;27161:6;27157:14;27150:58;27242:4;27237:2;27229:6;27225:15;27218:29;27033:221;:::o;27260:177::-;27400:29;27396:1;27388:6;27384:14;27377:53;27260:177;:::o;27443:220::-;27583:34;27579:1;27571:6;27567:14;27560:58;27652:3;27647:2;27639:6;27635:15;27628:28;27443:220;:::o;27669:182::-;27809:34;27805:1;27797:6;27793:14;27786:58;27669:182;:::o;27857:224::-;27997:34;27993:1;27985:6;27981:14;27974:58;28066:7;28061:2;28053:6;28049:15;28042:32;27857:224;:::o;28087:223::-;28227:34;28223:1;28215:6;28211:14;28204:58;28296:6;28291:2;28283:6;28279:15;28272:31;28087:223;:::o;28316:122::-;28389:24;28407:5;28389:24;:::i;:::-;28382:5;28379:35;28369:63;;28428:1;28425;28418:12;28369:63;28316:122;:::o;28444:116::-;28514:21;28529:5;28514:21;:::i;:::-;28507:5;28504:32;28494:60;;28550:1;28547;28540:12;28494:60;28444:116;:::o;28566:122::-;28639:24;28657:5;28639:24;:::i;:::-;28632:5;28629:35;28619:63;;28678:1;28675;28668:12;28619:63;28566:122;:::o

Swarm Source

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