ETH Price: $3,910.48 (+0.05%)

Token

ERC-20: SOSAD (SOSAD)
 

Overview

Max Total Supply

981,830,219.208238 SOSAD

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
4,704,000 SOSAD

Value
$0.00
0xa4bd1840ece832affef4444ab289b84ecd55b959
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.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-11
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

}

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 isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    function renouncedOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

    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 {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view 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;
}

contract Token is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "SOSAD";
    string private _symbol = "SOSAD";
    uint8 private _decimals = 6;

    address public marketingWallet = 0xaa4cDE71449f42850A44b6dCeC53D95f16292a07;
    address public developmentWallet = 0x8B3Bc1D13f6ff08D66B00d466Ab354c5F9219014;
    address public liquidityReciever;

    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public constant zeroAddress = 0x0000000000000000000000000000000000000000;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public blacklisted;

    uint256 _buyLiquidityFee = 10;
    uint256 _buyMarketingFee = 10;
    uint256 _buyDevFee = 10;
    uint256 _buyBurnFee = 10;
    
    uint256 _sellLiquidityFee = 80;
    uint256 _sellMarketingFee = 80;
    uint256 _sellDevFee = 80;
    uint256 _sellBurnFee = 10;

    uint256 totalBuy;
    uint256 totalSell;

    uint256 constant denominator = 1000;

    uint256 private _totalSupply = 1_000_000_000 * 10 ** _decimals;   

    uint256 public minimumTokensBeforeSwap = 40000 * 10 ** _decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(8).div(denominator);     //0.8%
    uint256 public _walletMax = _totalSupply.mul(16).div(denominator);    //1.6%

    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

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

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        liquidityReciever = msg.sender;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

        totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDevFee);
        totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDevFee);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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 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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

     //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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20:from zero");
        require(recipient != address(0), "ERC20:to zero");
        require(amount > 0, "Invalid Amount");
        require(!blacklisted[sender] && !blacklisted[recipient],"Error: Blacklist Bots/Contracts not Allowed!!");

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {  
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount,"Max Tx");
            } 

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                swapAndLiquify();
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet");
            }

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

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

    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() private lockTheSwap {
        
        uint256 contractBalance = balanceOf(address(this));

        if(contractBalance == 0) return;

        uint256 _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 _MarketingShare = _buyMarketingFee.add(_sellMarketingFee);
        // uint256 _DevShare = _buyDevFee.add(_sellDevFee);

        uint totalShares = totalBuy.add(totalSell);
        if(totalShares == 0) return;

        uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2);
        uint256 tokensForSwap = contractBalance.sub(tokensForLP);

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

        uint256 totalETHFee = totalShares.sub(_liquidityShare.div(2));

        uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountReceived.mul(_MarketingShare).div(totalETHFee);
        uint256 amountETHDev = amountReceived.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) 
            transferToAddressETH(marketingWallet,amountETHMarketing);

        if(amountETHDev > 0) 
            transferToAddressETH(developmentWallet,amountETHDev);

        if(amountETHLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountETHLiquidity);

    }

    function transferToAddressETH(address recipient, uint256 amount) private {
        payable(recipient).transfer(amount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // 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
            liquidityReciever,
            block.timestamp
        );
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;
        uint burnAmount;
        
        unchecked {

            if(isMarketPair[sender]) {

                feeAmount = amount.mul(totalBuy).div(denominator);
                burnAmount = amount.mul(_buyBurnFee).div(denominator);
            
            }
            else if(isMarketPair[recipient]) {
                
                feeAmount = amount.mul(totalSell).div(denominator);
                burnAmount = amount.mul(_sellBurnFee).div(denominator);
                
            }     

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

            if(burnAmount > 0) {
                _totalSupply = _totalSupply.sub(burnAmount);
            }

            return amount.sub(feeAmount).sub(burnAmount);
        }
        
    }

    //To Rescue Stucked Balance
    function rescueFunds() public onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    //To Rescue Stucked Tokens
    function rescueTokens(IERC20 adr,address recipient,uint amount) public onlyOwner {
        adr.transfer(recipient,amount);
    }

    //To Block Bots to trade
    function blacklistBot(address _adr,bool _status) public onlyOwner {
        blacklisted[_adr] = _status;
    }

    function enableTxLimit(bool _status) public onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) public onlyOwner {
        checkWalletLimit = _status;
    }

    function setBuyFee(uint _newLP , uint _newMarket, uint _newDev, uint _newBurn) public onlyOwner {     
        _buyLiquidityFee = _newLP;
        _buyMarketingFee = _newMarket;
        _buyDevFee = _newDev;
        _buyBurnFee = _newBurn;
        totalBuy = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDevFee);
    }

    function setSellFee(uint _newLP , uint _newMarket, uint _newDev, uint _newBurn) public onlyOwner {        
        _sellLiquidityFee = _newLP;
        _sellMarketingFee = _newMarket;
        _sellDevFee = _newDev;
        _sellBurnFee = _newBurn;
        totalSell = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDevFee);
    }

    function setMarketingWallets(address _newWallet) public onlyOwner {
        marketingWallet = _newWallet;
    }

    function setLiquidityWallets(address _newWallet) public onlyOwner {
        liquidityReciever = _newWallet;
    }    

    function setDevelopmentallets(address _newWallet) public onlyOwner {
        developmentWallet = _newWallet;
    }    

    function setExcludeFromFee(address _adr,bool _status) public onlyOwner {
        require(isExcludedFromFee[_adr] != _status,"Not Changed!!");
        isExcludedFromFee[_adr] = _status;
    }

    function ExcludeWalletLimit(address _adr,bool _status) public onlyOwner {
        require(isWalletLimitExempt[_adr] != _status,"Not Changed!!");
        isWalletLimitExempt[_adr] = _status;
    }

    function ExcludeTxLimit(address _adr,bool _status) public onlyOwner {
        require(isTxLimitExempt[_adr] != _status,"Not Changed!!");
        isTxLimitExempt[_adr] = _status;
    }

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

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }

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

    function setMarketPair(address _pair, bool _status) public onlyOwner {
        isMarketPair[_pair] = _status;
    }

    function changeRouterVersion(address newRouterAddress) external onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address

        isMarketPair[address(uniswapPair)] = true;
    }

}

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":"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":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"blacklistBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"","type":"address"}],"name":"isExcludedFromFee","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":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newDev","type":"uint256"},{"internalType":"uint256","name":"_newBurn","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDevelopmentallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setLiquidityWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newMarket","type":"uint256"},{"internalType":"uint256","name":"_newDev","type":"uint256"},{"internalType":"uint256","name":"_newBurn","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","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":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600581526020017f534f534144000000000000000000000000000000000000000000000000000000815250600190816200004a919062000ea7565b506040518060400160405280600581526020017f534f5341440000000000000000000000000000000000000000000000000000008152506002908162000091919062000ea7565b506006600360006101000a81548160ff021916908360ff16021790555073aa4cde71449f42850a44b6dcec53d95f16292a07600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738b3bc1d13f6ff08d66b00d466ab354c5f9219014600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600d55600a600e55600a600f55600a601055605060115560506012556050601355600a601455600360009054906101000a900460ff16600a6200019e91906200111e565b633b9aca00620001af91906200116f565b601755600360009054906101000a900460ff16600a620001d091906200111e565b619c40620001df91906200116f565b6018556200021a6103e862000206600860175462000a8560201b62002cb71790919060201c565b62000b0860201b62002d311790919060201c565b601955620002556103e862000241601060175462000a8560201b62002cb71790919060201c565b62000b0860201b62002d311790919060201c565b601a556001601b60006101000a81548160ff0219169083151502179055506001601b60016101000a81548160ff0219169083151502179055506001601c60156101000a81548160ff021916908315150217905550348015620002b657600080fd5b506000620002c962000b5a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f2919062001224565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200045a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000480919062001224565b6040518363ffffffff1660e01b81526004016200049f92919062001267565b6020604051808303816000875af1158015620004bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e5919062001224565b601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000989600f5462000975600e54600d5462000b6260201b62002d7b1790919060201c565b62000b6260201b62002d7b1790919060201c565b601581905550620009c8601354620009b460125460115462000b6260201b62002d7b1790919060201c565b62000b6260201b62002d7b1790919060201c565b601681905550601754600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60175460405162000a769190620012a5565b60405180910390a35062001521565b600080830362000a99576000905062000b02565b6000828462000aa991906200116f565b905082848262000aba9190620012f1565b1462000afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000af490620013b0565b60405180910390fd5b809150505b92915050565b600062000b5283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000bc560201b60201c565b905092915050565b600033905090565b600080828462000b739190620013d2565b90508381101562000bbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bb2906200145d565b60405180910390fd5b8091505092915050565b6000808311829062000c0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c069190620014fd565b60405180910390fd5b506000838562000c209190620012f1565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000caf57607f821691505b60208210810362000cc55762000cc462000c67565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d2f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000cf0565b62000d3b868362000cf0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d8862000d8262000d7c8462000d53565b62000d5d565b62000d53565b9050919050565b6000819050919050565b62000da48362000d67565b62000dbc62000db38262000d8f565b84845462000cfd565b825550505050565b600090565b62000dd362000dc4565b62000de081848462000d99565b505050565b5b8181101562000e085762000dfc60008262000dc9565b60018101905062000de6565b5050565b601f82111562000e575762000e218162000ccb565b62000e2c8462000ce0565b8101602085101562000e3c578190505b62000e5462000e4b8562000ce0565b83018262000de5565b50505b505050565b600082821c905092915050565b600062000e7c6000198460080262000e5c565b1980831691505092915050565b600062000e97838362000e69565b9150826002028217905092915050565b62000eb28262000c2d565b67ffffffffffffffff81111562000ece5762000ecd62000c38565b5b62000eda825462000c96565b62000ee782828562000e0c565b600060209050601f83116001811462000f1f576000841562000f0a578287015190505b62000f16858262000e89565b86555062000f86565b601f19841662000f2f8662000ccb565b60005b8281101562000f595784890151825560018201915060208501945060208101905062000f32565b8683101562000f79578489015162000f75601f89168262000e69565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200101c5780860481111562000ff45762000ff362000f8e565b5b6001851615620010045780820291505b8081029050620010148562000fbd565b945062000fd4565b94509492505050565b6000826200103757600190506200110a565b816200104757600090506200110a565b81600181146200106057600281146200106b57620010a1565b60019150506200110a565b60ff84111562001080576200107f62000f8e565b5b8360020a9150848211156200109a576200109962000f8e565b5b506200110a565b5060208310610133831016604e8410600b8410161715620010db5782820a905083811115620010d557620010d462000f8e565b5b6200110a565b620010ea848484600162000fca565b9250905081840481111562001104576200110362000f8e565b5b81810290505b9392505050565b600060ff82169050919050565b60006200112b8262000d53565b9150620011388362001111565b9250620011677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001025565b905092915050565b60006200117c8262000d53565b9150620011898362000d53565b9250828202620011998162000d53565b91508282048414831517620011b357620011b262000f8e565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011ec82620011bf565b9050919050565b620011fe81620011df565b81146200120a57600080fd5b50565b6000815190506200121e81620011f3565b92915050565b6000602082840312156200123d576200123c620011ba565b5b60006200124d848285016200120d565b91505092915050565b6200126181620011df565b82525050565b60006040820190506200127e600083018562001256565b6200128d602083018462001256565b9392505050565b6200129f8162000d53565b82525050565b6000602082019050620012bc600083018462001294565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620012fe8262000d53565b91506200130b8362000d53565b9250826200131e576200131d620012c2565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200139860218362001329565b9150620013a5826200133a565b604082019050919050565b60006020820190508181036000830152620013cb8162001389565b9050919050565b6000620013df8262000d53565b9150620013ec8362000d53565b925082820190508082111562001407576200140662000f8e565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001445601b8362001329565b915062001452826200140d565b602082019050919050565b60006020820190508181036000830152620014788162001436565b9050919050565b60005b838110156200149f57808201518184015260208101905062001482565b60008484015250505050565b6000601f19601f8301169050919050565b6000620014c98262000c2d565b620014d5818562001329565b9350620014e78185602086016200147f565b620014f281620014ab565b840191505092915050565b60006020820190508181036000830152620015198184620014bc565b905092915050565b61556380620015316000396000f3fe60806040526004361061031e5760003560e01c8063813410d8116101ab578063c16dd4a4116100f7578063dd62ed3e11610095578063ee828db31161006f578063ee828db314610c09578063f2fde38b14610c32578063f872858a14610c5b578063ffc0a03114610c8657610325565b8063dd62ed3e14610b8c578063e653da0814610bc9578063e6b2603b14610bf257610325565b8063c867d60b116100d1578063c867d60b14610abe578063cea9d26f14610afb578063d2d7ad8314610b24578063dbac26e914610b4f57610325565b8063c16dd4a414610a41578063c49b9a8014610a6a578063c816841b14610a9357610325565b806395d89b4111610164578063a9059cbb1161013e578063a9059cbb14610987578063af9549e0146109c4578063c04a5414146109ed578063c0b4d19914610a1857610325565b806395d89b41146108f457806398e944c81461091f578063a457c2d71461094a57610325565b8063813410d8146107e65780638236802e1461080f5780638b42507f146108385780638c5a133d146108755780638da5cb5b1461089e5780638f32d59b146108c957610325565b80633b97084a1161026a5780635c85974f11610223578063728d41c9116101fd578063728d41c91461073c57806375f0a874146107655780637d1db4a514610790578063807c2d9c146107bb57610325565b80635c85974f146106ab5780635e42358c146106d457806370a08231146106ff57610325565b80633b97084a146105775780633ecad271146105a05780634974d88f146105dd5780634a74bb02146106065780635342acb4146106315780635881f3ef1461066e57610325565b806320365d5f116102d75780632b112e49116102b15780632b112e49146104bb578063313ce567146104e657806338ec0b1114610511578063395093511461053a57610325565b806320365d5f1461043c57806323b872dd1461045357806327c8f8351461049057610325565b806306fdde031461032a5780630930907b14610355578063095ea7b31461038057806313ea1d89146103bd5780631694505e146103e657806318160ddd1461041157610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f610caf565b60405161034c9190614427565b60405180910390f35b34801561036157600080fd5b5061036a610d41565b604051610377919061448a565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a2919061450c565b610d46565b6040516103b49190614567565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906145ae565b610d64565b005b3480156103f257600080fd5b506103fb610ee6565b604051610408919061464d565b60405180910390f35b34801561041d57600080fd5b50610426610f0c565b6040516104339190614677565b60405180910390f35b34801561044857600080fd5b50610451610f16565b005b34801561045f57600080fd5b5061047a60048036038101906104759190614692565b61106b565b6040516104879190614567565b60405180910390f35b34801561049c57600080fd5b506104a5611145565b6040516104b2919061448a565b60405180910390f35b3480156104c757600080fd5b506104d061114b565b6040516104dd9190614677565b60405180910390f35b3480156104f257600080fd5b506104fb61118c565b6040516105089190614701565b60405180910390f35b34801561051d57600080fd5b50610538600480360381019061053391906145ae565b6111a3565b005b34801561054657600080fd5b50610561600480360381019061055c919061450c565b611325565b60405161056e9190614567565b60405180910390f35b34801561058357600080fd5b5061059e6004803603810190610599919061471c565b6113d8565b005b3480156105ac57600080fd5b506105c760048036038101906105c29190614749565b611477565b6040516105d49190614567565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190614776565b611497565b005b34801561061257600080fd5b5061061b611549565b6040516106289190614567565b60405180910390f35b34801561063d57600080fd5b5061065860048036038101906106539190614749565b61155c565b6040516106659190614567565b60405180910390f35b34801561067a57600080fd5b5061069560048036038101906106909190614749565b61157c565b6040516106a2919061448a565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd919061471c565b611a05565b005b3480156106e057600080fd5b506106e9611aa4565b6040516106f69190614567565b60405180910390f35b34801561070b57600080fd5b5061072660048036038101906107219190614749565b611ab7565b6040516107339190614677565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e919061471c565b611b00565b005b34801561077157600080fd5b5061077a611b9f565b604051610787919061448a565b60405180910390f35b34801561079c57600080fd5b506107a5611bc5565b6040516107b29190614677565b60405180910390f35b3480156107c757600080fd5b506107d0611bcb565b6040516107dd9190614677565b60405180910390f35b3480156107f257600080fd5b5061080d60048036038101906108089190614749565b611bd1565b005b34801561081b57600080fd5b50610836600480360381019061083191906145ae565b611caa565b005b34801561084457600080fd5b5061085f600480360381019061085a9190614749565b611d9a565b60405161086c9190614567565b60405180910390f35b34801561088157600080fd5b5061089c600480360381019061089791906147a3565b611dba565b005b3480156108aa57600080fd5b506108b3611ea2565b6040516108c0919061448a565b60405180910390f35b3480156108d557600080fd5b506108de611ecb565b6040516108eb9190614567565b60405180910390f35b34801561090057600080fd5b50610909611f22565b6040516109169190614427565b60405180910390f35b34801561092b57600080fd5b50610934611fb4565b604051610941919061448a565b60405180910390f35b34801561095657600080fd5b50610971600480360381019061096c919061450c565b611fda565b60405161097e9190614567565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a9919061450c565b6120a7565b6040516109bb9190614567565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e691906145ae565b6120c6565b005b3480156109f957600080fd5b50610a02612248565b604051610a0f919061448a565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a9190614749565b61226e565b005b348015610a4d57600080fd5b50610a686004803603810190610a6391906145ae565b612347565b005b348015610a7657600080fd5b50610a916004803603810190610a8c9190614776565b612437565b005b348015610a9f57600080fd5b50610aa8612520565b604051610ab5919061448a565b60405180910390f35b348015610aca57600080fd5b50610ae56004803603810190610ae09190614749565b612546565b604051610af29190614567565b60405180910390f35b348015610b0757600080fd5b50610b226004803603810190610b1d9190614848565b612566565b005b348015610b3057600080fd5b50610b3961267f565b604051610b469190614677565b60405180910390f35b348015610b5b57600080fd5b50610b766004803603810190610b719190614749565b612685565b604051610b839190614567565b60405180910390f35b348015610b9857600080fd5b50610bb36004803603810190610bae919061489b565b6126a5565b604051610bc09190614677565b60405180910390f35b348015610bd557600080fd5b50610bf06004803603810190610beb91906147a3565b61272c565b005b348015610bfe57600080fd5b50610c07612814565b005b348015610c1557600080fd5b50610c306004803603810190610c2b9190614776565b612958565b005b348015610c3e57600080fd5b50610c596004803603810190610c549190614749565b612a0a565b005b348015610c6757600080fd5b50610c70612bcb565b604051610c7d9190614567565b60405180910390f35b348015610c9257600080fd5b50610cad6004803603810190610ca89190614749565b612bde565b005b606060018054610cbe9061490a565b80601f0160208091040260200160405190810160405280929190818152602001828054610cea9061490a565b8015610d375780601f10610d0c57610100808354040283529160200191610d37565b820191906000526020600020905b815481529060010190602001808311610d1a57829003601f168201915b5050505050905090565b600081565b6000610d5a610d53612dd9565b8484612de1565b6001905092915050565b610d6c612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090614987565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e82906149f3565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601754905090565b610f1e612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290614987565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611078848484612faa565b5061113a84611085612dd9565b611135856040518060600160405280602881526020016154e160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110eb612dd9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461364e9092919063ffffffff16565b612de1565b600190509392505050565b61dead81565b600061118761115a6000611ab7565b61117961116861dead611ab7565b6017546136b290919063ffffffff16565b6136b290919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6111ab612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90614987565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c1906149f3565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006113ce611332612dd9565b846113c98560076000611343612dd9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b612de1565b6001905092915050565b6113e0612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490614987565b60405180910390fd5b8060188190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b61149f612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390614987565b60405180910390fd5b80601b60016101000a81548160ff02191690831515021790555050565b601c60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6000611586612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90614987565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611663573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116879190614a28565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190614a28565b6040518363ffffffff1660e01b815260040161172f929190614a55565b602060405180830381865afa15801561174c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117709190614a28565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611903578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118159190614a28565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561187c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a09190614a28565b6040518363ffffffff1660e01b81526004016118bd929190614a55565b6020604051808303816000875af11580156118dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119009190614a28565b91505b81601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611a0d612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190614987565b60405180910390fd5b8060198190555050565b601b60009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611b08612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90614987565b60405180910390fd5b80601a8190555050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b601a5481565b611bd9612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d90614987565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611cb2612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3690614987565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b611dc2612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4690614987565b60405180910390fd5b83600d8190555082600e8190555081600f8190555080601081905550611e96600f54611e88600e54600d54612d7b90919063ffffffff16565b612d7b90919063ffffffff16565b60158190555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060028054611f319061490a565b80601f0160208091040260200160405190810160405280929190818152602001828054611f5d9061490a565b8015611faa5780601f10611f7f57610100808354040283529160200191611faa565b820191906000526020600020905b815481529060010190602001808311611f8d57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061209d611fe7612dd9565b84612098856040518060600160405280602581526020016155096025913960076000612011612dd9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461364e9092919063ffffffff16565b612de1565b6001905092915050565b60006120bb6120b4612dd9565b8484612faa565b506001905092915050565b6120ce612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461215b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215290614987565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036121ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e4906149f3565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612276612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fa90614987565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61234f612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d390614987565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61243f612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c390614987565b60405180910390fd5b80601c60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516125159190614567565b60405180910390a150565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61256e612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f290614987565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401612636929190614a7e565b6020604051808303816000875af1158015612655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126799190614abc565b50505050565b60185481565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612734612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b890614987565b60405180910390fd5b836011819055508260128190555081601381905550806014819055506128086013546127fa601254601154612d7b90919063ffffffff16565b612d7b90919063ffffffff16565b60168190555050505050565b61281c612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a090614987565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516128cf90614b1a565b60006040518083038185875af1925050503d806000811461290c576040519150601f19603f3d011682016040523d82523d6000602084013e612911565b606091505b5050905080612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90614b7b565b60405180910390fd5b50565b612960612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490614987565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b612a12612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9690614987565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0590614c0d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601b60019054906101000a900460ff1681565b612be6612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6a90614987565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808303612cc95760009050612d2b565b60008284612cd79190614c5c565b9050828482612ce69190614ccd565b14612d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1d90614d70565b60405180910390fd5b809150505b92915050565b6000612d7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136fc565b905092915050565b6000808284612d8a9190614d90565b905083811015612dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc690614e10565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4790614ea2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb690614f34565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612f9d9190614677565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361301a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301190614fa0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130809061500c565b60405180910390fd5b600082116130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c390615078565b60405180910390fd5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156131705750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6131af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a69061510a565b60405180910390fd5b601c60149054906101000a900460ff16156131d6576131cf84848461375f565b9050613647565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561327a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132925750601b60009054906101000a900460ff165b156132dd576019548211156132dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d390615176565b60405180910390fd5b5b60006132e830611ab7565b90506000601854821015905080801561330e5750601c60149054906101000a900460ff16155b80156133645750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561337c5750601c60159054906101000a900460ff165b1561338a57613389613932565b5b613413846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461364e9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006134628787613bb0565b61347657613471878787613d1b565b613478565b845b9050601b60019054906101000a900460ff1680156134e05750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561354557601a54613503826134f589611ab7565b612d7b90919063ffffffff16565b1115613544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353b906151e2565b60405180910390fd5b5b61359781600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136379190614677565b60405180910390a3600193505050505b9392505050565b6000838311158290613696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368d9190614427565b60405180910390fd5b50600083856136a59190615202565b9050809150509392505050565b60006136f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061364e565b905092915050565b60008083118290613743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161373a9190614427565b60405180910390fd5b50600083856137529190614ccd565b9050809150509392505050565b60006137ea826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461364e9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061387f82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161391f9190614677565b60405180910390a3600190509392505050565b6001601c60146101000a81548160ff021916908315150217905550600061395830611ab7565b9050600081036139685750613b93565b6000613981601154600d54612d7b90919063ffffffff16565b9050600061399c601254600e54612d7b90919063ffffffff16565b905060006139b7601654601554612d7b90919063ffffffff16565b9050600081036139ca5750505050613b93565b6000613a0460026139f6846139e8888a612cb790919063ffffffff16565b612d3190919063ffffffff16565b612d3190919063ffffffff16565b90506000613a1b82876136b290919063ffffffff16565b90506000479050613a2b82613fd0565b6000613a4082476136b290919063ffffffff16565b90506000613a6a613a5b60028a612d3190919063ffffffff16565b876136b290919063ffffffff16565b90506000613aa66002613a9884613a8a8d88612cb790919063ffffffff16565b612d3190919063ffffffff16565b612d3190919063ffffffff16565b90506000613acf83613ac18b87612cb790919063ffffffff16565b612d3190919063ffffffff16565b90506000613af882613aea85886136b290919063ffffffff16565b6136b290919063ffffffff16565b90506000821115613b3057613b2f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361424c565b5b6000811115613b6657613b65600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261424c565b5b600083118015613b765750600088115b15613b8657613b858884614297565b5b5050505050505050505050505b6000601c60146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613c535750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613c615760019050613d15565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613d025750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613d105760009050613d15565b600090505b92915050565b6000806000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613dcd57613d9b6103e8613d8d60155487612cb790919063ffffffff16565b612d3190919063ffffffff16565b9150613dc66103e8613db860105487612cb790919063ffffffff16565b612d3190919063ffffffff16565b9050613e77565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613e7657613e486103e8613e3a60165487612cb790919063ffffffff16565b612d3190919063ffffffff16565b9150613e736103e8613e6560145487612cb790919063ffffffff16565b612d3190919063ffffffff16565b90505b5b6000821115613f7b57613ed282600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613f729190614677565b60405180910390a35b6000811115613fa057613f99816017546136b290919063ffffffff16565b6017819055505b613fc581613fb784876136b290919063ffffffff16565b6136b290919063ffffffff16565b925050509392505050565b6000600267ffffffffffffffff811115613fed57613fec615236565b5b60405190808252806020026020018201604052801561401b5781602001602082028036833780820191505090505b509050308160008151811061403357614032615265565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156140da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140fe9190614a28565b8160018151811061411257614111615265565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061417930601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612de1565b601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016141dd95949392919061538d565b600060405180830381600087803b1580156141f757600080fd5b505af115801561420b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516142409291906153e7565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614292573d6000803e3d6000fd5b505050565b6142c430601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612de1565b601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161434d96959493929190615417565b60606040518083038185885af115801561436b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190614390919061548d565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156143d15780820151818401526020810190506143b6565b60008484015250505050565b6000601f19601f8301169050919050565b60006143f982614397565b61440381856143a2565b93506144138185602086016143b3565b61441c816143dd565b840191505092915050565b6000602082019050818103600083015261444181846143ee565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061447482614449565b9050919050565b61448481614469565b82525050565b600060208201905061449f600083018461447b565b92915050565b600080fd5b6144b381614469565b81146144be57600080fd5b50565b6000813590506144d0816144aa565b92915050565b6000819050919050565b6144e9816144d6565b81146144f457600080fd5b50565b600081359050614506816144e0565b92915050565b60008060408385031215614523576145226144a5565b5b6000614531858286016144c1565b9250506020614542858286016144f7565b9150509250929050565b60008115159050919050565b6145618161454c565b82525050565b600060208201905061457c6000830184614558565b92915050565b61458b8161454c565b811461459657600080fd5b50565b6000813590506145a881614582565b92915050565b600080604083850312156145c5576145c46144a5565b5b60006145d3858286016144c1565b92505060206145e485828601614599565b9150509250929050565b6000819050919050565b600061461361460e61460984614449565b6145ee565b614449565b9050919050565b6000614625826145f8565b9050919050565b60006146378261461a565b9050919050565b6146478161462c565b82525050565b6000602082019050614662600083018461463e565b92915050565b614671816144d6565b82525050565b600060208201905061468c6000830184614668565b92915050565b6000806000606084860312156146ab576146aa6144a5565b5b60006146b9868287016144c1565b93505060206146ca868287016144c1565b92505060406146db868287016144f7565b9150509250925092565b600060ff82169050919050565b6146fb816146e5565b82525050565b600060208201905061471660008301846146f2565b92915050565b600060208284031215614732576147316144a5565b5b6000614740848285016144f7565b91505092915050565b60006020828403121561475f5761475e6144a5565b5b600061476d848285016144c1565b91505092915050565b60006020828403121561478c5761478b6144a5565b5b600061479a84828501614599565b91505092915050565b600080600080608085870312156147bd576147bc6144a5565b5b60006147cb878288016144f7565b94505060206147dc878288016144f7565b93505060406147ed878288016144f7565b92505060606147fe878288016144f7565b91505092959194509250565b600061481582614469565b9050919050565b6148258161480a565b811461483057600080fd5b50565b6000813590506148428161481c565b92915050565b600080600060608486031215614861576148606144a5565b5b600061486f86828701614833565b9350506020614880868287016144c1565b9250506040614891868287016144f7565b9150509250925092565b600080604083850312156148b2576148b16144a5565b5b60006148c0858286016144c1565b92505060206148d1858286016144c1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061492257607f821691505b602082108103614935576149346148db565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006149716020836143a2565b915061497c8261493b565b602082019050919050565b600060208201905081810360008301526149a081614964565b9050919050565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b60006149dd600d836143a2565b91506149e8826149a7565b602082019050919050565b60006020820190508181036000830152614a0c816149d0565b9050919050565b600081519050614a22816144aa565b92915050565b600060208284031215614a3e57614a3d6144a5565b5b6000614a4c84828501614a13565b91505092915050565b6000604082019050614a6a600083018561447b565b614a77602083018461447b565b9392505050565b6000604082019050614a93600083018561447b565b614aa06020830184614668565b9392505050565b600081519050614ab681614582565b92915050565b600060208284031215614ad257614ad16144a5565b5b6000614ae084828501614aa7565b91505092915050565b600081905092915050565b50565b6000614b04600083614ae9565b9150614b0f82614af4565b600082019050919050565b6000614b2582614af7565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614b656014836143a2565b9150614b7082614b2f565b602082019050919050565b60006020820190508181036000830152614b9481614b58565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614bf76026836143a2565b9150614c0282614b9b565b604082019050919050565b60006020820190508181036000830152614c2681614bea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614c67826144d6565b9150614c72836144d6565b9250828202614c80816144d6565b91508282048414831517614c9757614c96614c2d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614cd8826144d6565b9150614ce3836144d6565b925082614cf357614cf2614c9e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614d5a6021836143a2565b9150614d6582614cfe565b604082019050919050565b60006020820190508181036000830152614d8981614d4d565b9050919050565b6000614d9b826144d6565b9150614da6836144d6565b9250828201905080821115614dbe57614dbd614c2d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614dfa601b836143a2565b9150614e0582614dc4565b602082019050919050565b60006020820190508181036000830152614e2981614ded565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614e8c6024836143a2565b9150614e9782614e30565b604082019050919050565b60006020820190508181036000830152614ebb81614e7f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f1e6022836143a2565b9150614f2982614ec2565b604082019050919050565b60006020820190508181036000830152614f4d81614f11565b9050919050565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b6000614f8a600f836143a2565b9150614f9582614f54565b602082019050919050565b60006020820190508181036000830152614fb981614f7d565b9050919050565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b6000614ff6600d836143a2565b915061500182614fc0565b602082019050919050565b6000602082019050818103600083015261502581614fe9565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b6000615062600e836143a2565b915061506d8261502c565b602082019050919050565b6000602082019050818103600083015261509181615055565b9050919050565b7f4572726f723a20426c61636b6c69737420426f74732f436f6e7472616374732060008201527f6e6f7420416c6c6f776564212100000000000000000000000000000000000000602082015250565b60006150f4602d836143a2565b91506150ff82615098565b604082019050919050565b60006020820190508181036000830152615123816150e7565b9050919050565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b60006151606006836143a2565b915061516b8261512a565b602082019050919050565b6000602082019050818103600083015261518f81615153565b9050919050565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b60006151cc600a836143a2565b91506151d782615196565b602082019050919050565b600060208201905081810360008301526151fb816151bf565b9050919050565b600061520d826144d6565b9150615218836144d6565b92508282039050818111156152305761522f614c2d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006152b96152b46152af84615294565b6145ee565b6144d6565b9050919050565b6152c98161529e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61530481614469565b82525050565b600061531683836152fb565b60208301905092915050565b6000602082019050919050565b600061533a826152cf565b61534481856152da565b935061534f836152eb565b8060005b83811015615380578151615367888261530a565b975061537283615322565b925050600181019050615353565b5085935050505092915050565b600060a0820190506153a26000830188614668565b6153af60208301876152c0565b81810360408301526153c1818661532f565b90506153d0606083018561447b565b6153dd6080830184614668565b9695505050505050565b60006040820190506153fc6000830185614668565b818103602083015261540e818461532f565b90509392505050565b600060c08201905061542c600083018961447b565b6154396020830188614668565b61544660408301876152c0565b61545360608301866152c0565b615460608083018561447b565b61546d60a0830184614668565b979650505050505050565b600081519050615487816144e0565b92915050565b6000806000606084860312156154a6576154a56144a5565b5b60006154b486828701615478565b93505060206154c586828701615478565b92505060406154d686828701615478565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203db3f7c5b1bb67b4801b76a63ae1e78c9ffc3ed08924a64af0817476a6d2d1e264736f6c63430008110033

Deployed Bytecode

0x60806040526004361061031e5760003560e01c8063813410d8116101ab578063c16dd4a4116100f7578063dd62ed3e11610095578063ee828db31161006f578063ee828db314610c09578063f2fde38b14610c32578063f872858a14610c5b578063ffc0a03114610c8657610325565b8063dd62ed3e14610b8c578063e653da0814610bc9578063e6b2603b14610bf257610325565b8063c867d60b116100d1578063c867d60b14610abe578063cea9d26f14610afb578063d2d7ad8314610b24578063dbac26e914610b4f57610325565b8063c16dd4a414610a41578063c49b9a8014610a6a578063c816841b14610a9357610325565b806395d89b4111610164578063a9059cbb1161013e578063a9059cbb14610987578063af9549e0146109c4578063c04a5414146109ed578063c0b4d19914610a1857610325565b806395d89b41146108f457806398e944c81461091f578063a457c2d71461094a57610325565b8063813410d8146107e65780638236802e1461080f5780638b42507f146108385780638c5a133d146108755780638da5cb5b1461089e5780638f32d59b146108c957610325565b80633b97084a1161026a5780635c85974f11610223578063728d41c9116101fd578063728d41c91461073c57806375f0a874146107655780637d1db4a514610790578063807c2d9c146107bb57610325565b80635c85974f146106ab5780635e42358c146106d457806370a08231146106ff57610325565b80633b97084a146105775780633ecad271146105a05780634974d88f146105dd5780634a74bb02146106065780635342acb4146106315780635881f3ef1461066e57610325565b806320365d5f116102d75780632b112e49116102b15780632b112e49146104bb578063313ce567146104e657806338ec0b1114610511578063395093511461053a57610325565b806320365d5f1461043c57806323b872dd1461045357806327c8f8351461049057610325565b806306fdde031461032a5780630930907b14610355578063095ea7b31461038057806313ea1d89146103bd5780631694505e146103e657806318160ddd1461041157610325565b3661032557005b600080fd5b34801561033657600080fd5b5061033f610caf565b60405161034c9190614427565b60405180910390f35b34801561036157600080fd5b5061036a610d41565b604051610377919061448a565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a2919061450c565b610d46565b6040516103b49190614567565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df91906145ae565b610d64565b005b3480156103f257600080fd5b506103fb610ee6565b604051610408919061464d565b60405180910390f35b34801561041d57600080fd5b50610426610f0c565b6040516104339190614677565b60405180910390f35b34801561044857600080fd5b50610451610f16565b005b34801561045f57600080fd5b5061047a60048036038101906104759190614692565b61106b565b6040516104879190614567565b60405180910390f35b34801561049c57600080fd5b506104a5611145565b6040516104b2919061448a565b60405180910390f35b3480156104c757600080fd5b506104d061114b565b6040516104dd9190614677565b60405180910390f35b3480156104f257600080fd5b506104fb61118c565b6040516105089190614701565b60405180910390f35b34801561051d57600080fd5b50610538600480360381019061053391906145ae565b6111a3565b005b34801561054657600080fd5b50610561600480360381019061055c919061450c565b611325565b60405161056e9190614567565b60405180910390f35b34801561058357600080fd5b5061059e6004803603810190610599919061471c565b6113d8565b005b3480156105ac57600080fd5b506105c760048036038101906105c29190614749565b611477565b6040516105d49190614567565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190614776565b611497565b005b34801561061257600080fd5b5061061b611549565b6040516106289190614567565b60405180910390f35b34801561063d57600080fd5b5061065860048036038101906106539190614749565b61155c565b6040516106659190614567565b60405180910390f35b34801561067a57600080fd5b5061069560048036038101906106909190614749565b61157c565b6040516106a2919061448a565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd919061471c565b611a05565b005b3480156106e057600080fd5b506106e9611aa4565b6040516106f69190614567565b60405180910390f35b34801561070b57600080fd5b5061072660048036038101906107219190614749565b611ab7565b6040516107339190614677565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e919061471c565b611b00565b005b34801561077157600080fd5b5061077a611b9f565b604051610787919061448a565b60405180910390f35b34801561079c57600080fd5b506107a5611bc5565b6040516107b29190614677565b60405180910390f35b3480156107c757600080fd5b506107d0611bcb565b6040516107dd9190614677565b60405180910390f35b3480156107f257600080fd5b5061080d60048036038101906108089190614749565b611bd1565b005b34801561081b57600080fd5b50610836600480360381019061083191906145ae565b611caa565b005b34801561084457600080fd5b5061085f600480360381019061085a9190614749565b611d9a565b60405161086c9190614567565b60405180910390f35b34801561088157600080fd5b5061089c600480360381019061089791906147a3565b611dba565b005b3480156108aa57600080fd5b506108b3611ea2565b6040516108c0919061448a565b60405180910390f35b3480156108d557600080fd5b506108de611ecb565b6040516108eb9190614567565b60405180910390f35b34801561090057600080fd5b50610909611f22565b6040516109169190614427565b60405180910390f35b34801561092b57600080fd5b50610934611fb4565b604051610941919061448a565b60405180910390f35b34801561095657600080fd5b50610971600480360381019061096c919061450c565b611fda565b60405161097e9190614567565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a9919061450c565b6120a7565b6040516109bb9190614567565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e691906145ae565b6120c6565b005b3480156109f957600080fd5b50610a02612248565b604051610a0f919061448a565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a9190614749565b61226e565b005b348015610a4d57600080fd5b50610a686004803603810190610a6391906145ae565b612347565b005b348015610a7657600080fd5b50610a916004803603810190610a8c9190614776565b612437565b005b348015610a9f57600080fd5b50610aa8612520565b604051610ab5919061448a565b60405180910390f35b348015610aca57600080fd5b50610ae56004803603810190610ae09190614749565b612546565b604051610af29190614567565b60405180910390f35b348015610b0757600080fd5b50610b226004803603810190610b1d9190614848565b612566565b005b348015610b3057600080fd5b50610b3961267f565b604051610b469190614677565b60405180910390f35b348015610b5b57600080fd5b50610b766004803603810190610b719190614749565b612685565b604051610b839190614567565b60405180910390f35b348015610b9857600080fd5b50610bb36004803603810190610bae919061489b565b6126a5565b604051610bc09190614677565b60405180910390f35b348015610bd557600080fd5b50610bf06004803603810190610beb91906147a3565b61272c565b005b348015610bfe57600080fd5b50610c07612814565b005b348015610c1557600080fd5b50610c306004803603810190610c2b9190614776565b612958565b005b348015610c3e57600080fd5b50610c596004803603810190610c549190614749565b612a0a565b005b348015610c6757600080fd5b50610c70612bcb565b604051610c7d9190614567565b60405180910390f35b348015610c9257600080fd5b50610cad6004803603810190610ca89190614749565b612bde565b005b606060018054610cbe9061490a565b80601f0160208091040260200160405190810160405280929190818152602001828054610cea9061490a565b8015610d375780601f10610d0c57610100808354040283529160200191610d37565b820191906000526020600020905b815481529060010190602001808311610d1a57829003601f168201915b5050505050905090565b600081565b6000610d5a610d53612dd9565b8484612de1565b6001905092915050565b610d6c612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090614987565b60405180910390fd5b801515600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e82906149f3565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601754905090565b610f1e612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290614987565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611078848484612faa565b5061113a84611085612dd9565b611135856040518060600160405280602881526020016154e160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110eb612dd9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461364e9092919063ffffffff16565b612de1565b600190509392505050565b61dead81565b600061118761115a6000611ab7565b61117961116861dead611ab7565b6017546136b290919063ffffffff16565b6136b290919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6111ab612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90614987565b60405180910390fd5b801515600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c1906149f3565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006113ce611332612dd9565b846113c98560076000611343612dd9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b612de1565b6001905092915050565b6113e0612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490614987565b60405180910390fd5b8060188190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b61149f612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390614987565b60405180910390fd5b80601b60016101000a81548160ff02191690831515021790555050565b601c60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6000611586612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90614987565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611663573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116879190614a28565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190614a28565b6040518363ffffffff1660e01b815260040161172f929190614a55565b602060405180830381865afa15801561174c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117709190614a28565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611903578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118159190614a28565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561187c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a09190614a28565b6040518363ffffffff1660e01b81526004016118bd929190614a55565b6020604051808303816000875af11580156118dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119009190614a28565b91505b81601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611a0d612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190614987565b60405180910390fd5b8060198190555050565b601b60009054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611b08612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90614987565b60405180910390fd5b80601a8190555050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b601a5481565b611bd9612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d90614987565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611cb2612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3690614987565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b6020528060005260406000206000915054906101000a900460ff1681565b611dc2612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4690614987565b60405180910390fd5b83600d8190555082600e8190555081600f8190555080601081905550611e96600f54611e88600e54600d54612d7b90919063ffffffff16565b612d7b90919063ffffffff16565b60158190555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060028054611f319061490a565b80601f0160208091040260200160405190810160405280929190818152602001828054611f5d9061490a565b8015611faa5780601f10611f7f57610100808354040283529160200191611faa565b820191906000526020600020905b815481529060010190602001808311611f8d57829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061209d611fe7612dd9565b84612098856040518060600160405280602581526020016155096025913960076000612011612dd9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461364e9092919063ffffffff16565b612de1565b6001905092915050565b60006120bb6120b4612dd9565b8484612faa565b506001905092915050565b6120ce612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461215b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215290614987565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036121ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e4906149f3565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612276612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fa90614987565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61234f612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d390614987565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61243f612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c390614987565b60405180910390fd5b80601c60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516125159190614567565b60405180910390a150565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b61256e612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f290614987565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401612636929190614a7e565b6020604051808303816000875af1158015612655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126799190614abc565b50505050565b60185481565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612734612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b890614987565b60405180910390fd5b836011819055508260128190555081601381905550806014819055506128086013546127fa601254601154612d7b90919063ffffffff16565b612d7b90919063ffffffff16565b60168190555050505050565b61281c612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a090614987565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff16476040516128cf90614b1a565b60006040518083038185875af1925050503d806000811461290c576040519150601f19603f3d011682016040523d82523d6000602084013e612911565b606091505b5050905080612955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294c90614b7b565b60405180910390fd5b50565b612960612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490614987565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b612a12612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9690614987565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0590614c0d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601b60019054906101000a900460ff1681565b612be6612dd9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6a90614987565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808303612cc95760009050612d2b565b60008284612cd79190614c5c565b9050828482612ce69190614ccd565b14612d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1d90614d70565b60405180910390fd5b809150505b92915050565b6000612d7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506136fc565b905092915050565b6000808284612d8a9190614d90565b905083811015612dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc690614e10565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4790614ea2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb690614f34565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612f9d9190614677565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361301a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301190614fa0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613089576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130809061500c565b60405180910390fd5b600082116130cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c390615078565b60405180910390fd5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156131705750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6131af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a69061510a565b60405180910390fd5b601c60149054906101000a900460ff16156131d6576131cf84848461375f565b9050613647565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561327a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156132925750601b60009054906101000a900460ff165b156132dd576019548211156132dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d390615176565b60405180910390fd5b5b60006132e830611ab7565b90506000601854821015905080801561330e5750601c60149054906101000a900460ff16155b80156133645750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561337c5750601c60159054906101000a900460ff165b1561338a57613389613932565b5b613413846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461364e9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006134628787613bb0565b61347657613471878787613d1b565b613478565b845b9050601b60019054906101000a900460ff1680156134e05750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561354557601a54613503826134f589611ab7565b612d7b90919063ffffffff16565b1115613544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353b906151e2565b60405180910390fd5b5b61359781600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136379190614677565b60405180910390a3600193505050505b9392505050565b6000838311158290613696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368d9190614427565b60405180910390fd5b50600083856136a59190615202565b9050809150509392505050565b60006136f483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061364e565b905092915050565b60008083118290613743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161373a9190614427565b60405180910390fd5b50600083856137529190614ccd565b9050809150509392505050565b60006137ea826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461364e9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061387f82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161391f9190614677565b60405180910390a3600190509392505050565b6001601c60146101000a81548160ff021916908315150217905550600061395830611ab7565b9050600081036139685750613b93565b6000613981601154600d54612d7b90919063ffffffff16565b9050600061399c601254600e54612d7b90919063ffffffff16565b905060006139b7601654601554612d7b90919063ffffffff16565b9050600081036139ca5750505050613b93565b6000613a0460026139f6846139e8888a612cb790919063ffffffff16565b612d3190919063ffffffff16565b612d3190919063ffffffff16565b90506000613a1b82876136b290919063ffffffff16565b90506000479050613a2b82613fd0565b6000613a4082476136b290919063ffffffff16565b90506000613a6a613a5b60028a612d3190919063ffffffff16565b876136b290919063ffffffff16565b90506000613aa66002613a9884613a8a8d88612cb790919063ffffffff16565b612d3190919063ffffffff16565b612d3190919063ffffffff16565b90506000613acf83613ac18b87612cb790919063ffffffff16565b612d3190919063ffffffff16565b90506000613af882613aea85886136b290919063ffffffff16565b6136b290919063ffffffff16565b90506000821115613b3057613b2f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361424c565b5b6000811115613b6657613b65600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261424c565b5b600083118015613b765750600088115b15613b8657613b858884614297565b5b5050505050505050505050505b6000601c60146101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613c535750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613c615760019050613d15565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613d025750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613d105760009050613d15565b600090505b92915050565b6000806000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613dcd57613d9b6103e8613d8d60155487612cb790919063ffffffff16565b612d3190919063ffffffff16565b9150613dc66103e8613db860105487612cb790919063ffffffff16565b612d3190919063ffffffff16565b9050613e77565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613e7657613e486103e8613e3a60165487612cb790919063ffffffff16565b612d3190919063ffffffff16565b9150613e736103e8613e6560145487612cb790919063ffffffff16565b612d3190919063ffffffff16565b90505b5b6000821115613f7b57613ed282600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7b90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613f729190614677565b60405180910390a35b6000811115613fa057613f99816017546136b290919063ffffffff16565b6017819055505b613fc581613fb784876136b290919063ffffffff16565b6136b290919063ffffffff16565b925050509392505050565b6000600267ffffffffffffffff811115613fed57613fec615236565b5b60405190808252806020026020018201604052801561401b5781602001602082028036833780820191505090505b509050308160008151811061403357614032615265565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156140da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140fe9190614a28565b8160018151811061411257614111615265565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061417930601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612de1565b601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016141dd95949392919061538d565b600060405180830381600087803b1580156141f757600080fd5b505af115801561420b573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516142409291906153e7565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614292573d6000803e3d6000fd5b505050565b6142c430601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612de1565b601b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161434d96959493929190615417565b60606040518083038185885af115801561436b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190614390919061548d565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156143d15780820151818401526020810190506143b6565b60008484015250505050565b6000601f19601f8301169050919050565b60006143f982614397565b61440381856143a2565b93506144138185602086016143b3565b61441c816143dd565b840191505092915050565b6000602082019050818103600083015261444181846143ee565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061447482614449565b9050919050565b61448481614469565b82525050565b600060208201905061449f600083018461447b565b92915050565b600080fd5b6144b381614469565b81146144be57600080fd5b50565b6000813590506144d0816144aa565b92915050565b6000819050919050565b6144e9816144d6565b81146144f457600080fd5b50565b600081359050614506816144e0565b92915050565b60008060408385031215614523576145226144a5565b5b6000614531858286016144c1565b9250506020614542858286016144f7565b9150509250929050565b60008115159050919050565b6145618161454c565b82525050565b600060208201905061457c6000830184614558565b92915050565b61458b8161454c565b811461459657600080fd5b50565b6000813590506145a881614582565b92915050565b600080604083850312156145c5576145c46144a5565b5b60006145d3858286016144c1565b92505060206145e485828601614599565b9150509250929050565b6000819050919050565b600061461361460e61460984614449565b6145ee565b614449565b9050919050565b6000614625826145f8565b9050919050565b60006146378261461a565b9050919050565b6146478161462c565b82525050565b6000602082019050614662600083018461463e565b92915050565b614671816144d6565b82525050565b600060208201905061468c6000830184614668565b92915050565b6000806000606084860312156146ab576146aa6144a5565b5b60006146b9868287016144c1565b93505060206146ca868287016144c1565b92505060406146db868287016144f7565b9150509250925092565b600060ff82169050919050565b6146fb816146e5565b82525050565b600060208201905061471660008301846146f2565b92915050565b600060208284031215614732576147316144a5565b5b6000614740848285016144f7565b91505092915050565b60006020828403121561475f5761475e6144a5565b5b600061476d848285016144c1565b91505092915050565b60006020828403121561478c5761478b6144a5565b5b600061479a84828501614599565b91505092915050565b600080600080608085870312156147bd576147bc6144a5565b5b60006147cb878288016144f7565b94505060206147dc878288016144f7565b93505060406147ed878288016144f7565b92505060606147fe878288016144f7565b91505092959194509250565b600061481582614469565b9050919050565b6148258161480a565b811461483057600080fd5b50565b6000813590506148428161481c565b92915050565b600080600060608486031215614861576148606144a5565b5b600061486f86828701614833565b9350506020614880868287016144c1565b9250506040614891868287016144f7565b9150509250925092565b600080604083850312156148b2576148b16144a5565b5b60006148c0858286016144c1565b92505060206148d1858286016144c1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061492257607f821691505b602082108103614935576149346148db565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006149716020836143a2565b915061497c8261493b565b602082019050919050565b600060208201905081810360008301526149a081614964565b9050919050565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b60006149dd600d836143a2565b91506149e8826149a7565b602082019050919050565b60006020820190508181036000830152614a0c816149d0565b9050919050565b600081519050614a22816144aa565b92915050565b600060208284031215614a3e57614a3d6144a5565b5b6000614a4c84828501614a13565b91505092915050565b6000604082019050614a6a600083018561447b565b614a77602083018461447b565b9392505050565b6000604082019050614a93600083018561447b565b614aa06020830184614668565b9392505050565b600081519050614ab681614582565b92915050565b600060208284031215614ad257614ad16144a5565b5b6000614ae084828501614aa7565b91505092915050565b600081905092915050565b50565b6000614b04600083614ae9565b9150614b0f82614af4565b600082019050919050565b6000614b2582614af7565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614b656014836143a2565b9150614b7082614b2f565b602082019050919050565b60006020820190508181036000830152614b9481614b58565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614bf76026836143a2565b9150614c0282614b9b565b604082019050919050565b60006020820190508181036000830152614c2681614bea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614c67826144d6565b9150614c72836144d6565b9250828202614c80816144d6565b91508282048414831517614c9757614c96614c2d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614cd8826144d6565b9150614ce3836144d6565b925082614cf357614cf2614c9e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614d5a6021836143a2565b9150614d6582614cfe565b604082019050919050565b60006020820190508181036000830152614d8981614d4d565b9050919050565b6000614d9b826144d6565b9150614da6836144d6565b9250828201905080821115614dbe57614dbd614c2d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614dfa601b836143a2565b9150614e0582614dc4565b602082019050919050565b60006020820190508181036000830152614e2981614ded565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614e8c6024836143a2565b9150614e9782614e30565b604082019050919050565b60006020820190508181036000830152614ebb81614e7f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f1e6022836143a2565b9150614f2982614ec2565b604082019050919050565b60006020820190508181036000830152614f4d81614f11565b9050919050565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b6000614f8a600f836143a2565b9150614f9582614f54565b602082019050919050565b60006020820190508181036000830152614fb981614f7d565b9050919050565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b6000614ff6600d836143a2565b915061500182614fc0565b602082019050919050565b6000602082019050818103600083015261502581614fe9565b9050919050565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b6000615062600e836143a2565b915061506d8261502c565b602082019050919050565b6000602082019050818103600083015261509181615055565b9050919050565b7f4572726f723a20426c61636b6c69737420426f74732f436f6e7472616374732060008201527f6e6f7420416c6c6f776564212100000000000000000000000000000000000000602082015250565b60006150f4602d836143a2565b91506150ff82615098565b604082019050919050565b60006020820190508181036000830152615123816150e7565b9050919050565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b60006151606006836143a2565b915061516b8261512a565b602082019050919050565b6000602082019050818103600083015261518f81615153565b9050919050565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b60006151cc600a836143a2565b91506151d782615196565b602082019050919050565b600060208201905081810360008301526151fb816151bf565b9050919050565b600061520d826144d6565b9150615218836144d6565b92508282039050818111156152305761522f614c2d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006152b96152b46152af84615294565b6145ee565b6144d6565b9050919050565b6152c98161529e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61530481614469565b82525050565b600061531683836152fb565b60208301905092915050565b6000602082019050919050565b600061533a826152cf565b61534481856152da565b935061534f836152eb565b8060005b83811015615380578151615367888261530a565b975061537283615322565b925050600181019050615353565b5085935050505092915050565b600060a0820190506153a26000830188614668565b6153af60208301876152c0565b81810360408301526153c1818661532f565b90506153d0606083018561447b565b6153dd6080830184614668565b9695505050505050565b60006040820190506153fc6000830185614668565b818103602083015261540e818461532f565b90509392505050565b600060c08201905061542c600083018961447b565b6154396020830188614668565b61544660408301876152c0565b61545360608301866152c0565b615460608083018561447b565b61546d60a0830184614668565b979650505050505050565b600081519050615487816144e0565b92915050565b6000806000606084860312156154a6576154a56144a5565b5b60006154b486828701615478565b93505060206154c586828701615478565b92505060406154d686828701615478565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203db3f7c5b1bb67b4801b76a63ae1e78c9ffc3ed08924a64af0817476a6d2d1e264736f6c63430008110033

Deployed Bytecode Sourcemap

4408:16007:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7895:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4909:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9065:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18807:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6175:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8172:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2911:231;;;;;;;;;;;;;:::i;:::-;;10016:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4822:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9583:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8081:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18601:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8562:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19001:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5186:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17235:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6290:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5129:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19660:750;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19247:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6092:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8280:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19133:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4615:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5923:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6008:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18272:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17011:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5297:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17346:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2586:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2811:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7986:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4781:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8788:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9841:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18400:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4697:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18024:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19535:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19356:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6223:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5238:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16843:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5850:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5352:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8411:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17679:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16627:176;;;;;;;;;;;;;:::i;:::-;;17131:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3150:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6131:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18145:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7895:83;7932:13;7965:5;7958:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7895:83;:::o;4909:80::-;4947:42;4909:80;:::o;9065:161::-;9140:4;9157:39;9166:12;:10;:12::i;:::-;9180:7;9189:6;9157:8;:39::i;:::-;9214:4;9207:11;;9065:161;;;;:::o;18807:186::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18919:7:::1;18894:32;;:15;:21;18910:4;18894:21;;;;;;;;;;;;;;;;;;;;;;;;;:32;;::::0;18886:57:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18978:7;18954:15;:21;18970:4;18954:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;18807:186:::0;;:::o;6175:41::-;;;;;;;;;;;;;:::o;8172:100::-;8225:7;8252:12;;8245:19;;8172:100;:::o;2911:231::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3019:42:::1;2982:81;;3003:6;::::0;::::1;;;;;;;;2982:81;;;;;;;;;;;;3091:42;3074:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;2911:231::o:0;10016:313::-;10114:4;10131:36;10141:6;10149:9;10160:6;10131:9;:36::i;:::-;;10178:121;10187:6;10195:12;:10;:12::i;:::-;10209:89;10247:6;10209:89;;;;;;;;;;;;;;;;;:11;:19;10221:6;10209:19;;;;;;;;;;;;;;;:33;10229:12;:10;:12::i;:::-;10209:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10178:8;:121::i;:::-;10317:4;10310:11;;10016:313;;;;;:::o;4822:80::-;4860:42;4822:80;:::o;9583:156::-;9636:7;9663:68;9708:22;4947:42;9708:9;:22::i;:::-;9663:40;9680:22;4860:42;9680:9;:22::i;:::-;9663:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;9656:75;;9583:156;:::o;8081:83::-;8122:5;8147:9;;;;;;;;;;;8140:16;;8081:83;:::o;18601:198::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18721:7:::1;18692:36;;:19;:25;18712:4;18692:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;::::0;18684:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18784:7;18756:19;:25;18776:4;18756:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18601:198:::0;;:::o;8562:218::-;8650:4;8667:83;8676:12;:10;:12::i;:::-;8690:7;8699:50;8738:10;8699:11;:25;8711:12;:10;:12::i;:::-;8699:25;;;;;;;;;;;;;;;:34;8725:7;8699:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8667:8;:83::i;:::-;8768:4;8761:11;;8562:218;;;;:::o;19001:124::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19109:8:::1;19083:23;:34;;;;19001:124:::0;:::o;5186:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17235:103::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17323:7:::1;17304:16;;:26;;;;;;;;;;;;;;;;;;17235:103:::0;:::o;6290:40::-;;;;;;;;;;;;;:::o;5129:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;19660:750::-;19742:22;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19779:35:::1;19836:16;19779:74;;19902:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19884:53;;;19946:4;19953:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19884:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19867:110;;20019:1;19993:28;;:14;:28;;::::0;19990:225:::1;;20107:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20089:74;;;20172:4;20179:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20089:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20072:131;;19990:225;20241:14;20227:11;;:28;;;;;;;;;;;;;;;;;;20307:16;20289:15;;:34;;;;;;;;;;;;;;;;;;20398:4;20361:12;:34;20382:11;;;;;;;;;;;20361:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;19766:644;19660:750:::0;;;:::o;19247:101::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19332:8:::1;19317:12;:23;;;;19247:101:::0;:::o;6092:32::-;;;;;;;;;;;;;:::o;8280:123::-;8346:7;8372:9;:18;8382:7;8372:18;;;;;;;;;;;;;;;;8365:25;;8280:123;;;:::o;19133:106::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19223:8:::1;19210:10;:21;;;;19133:106:::0;:::o;4615:75::-;;;;;;;;;;;;;:::o;5923:67::-;;;;:::o;6008:65::-;;;;:::o;18272:116::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18370:10:::1;18350:17;;:30;;;;;;;;;;;;;;;;;;18272:116:::0;:::o;17011:112::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17108:7:::1;17088:11;:17;17100:4;17088:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;17011:112:::0;;:::o;5297:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;17346:325::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17477:6:::1;17458:16;:25;;;;17513:10;17494:16;:29;;;;17547:7;17534:10;:20;;;;17579:8;17565:11;:22;;;;17609:54;17652:10;;17609:38;17630:16;;17609;;:20;;:38;;;;:::i;:::-;:42;;:54;;;;:::i;:::-;17598:8;:65;;;;17346:325:::0;;;;:::o;2586:79::-;2624:7;2651:6;;;;;;;;;;;2644:13;;2586:79;:::o;2811:92::-;2851:4;2889:6;;;;;;;;;;;2875:20;;:10;:20;;;2868:27;;2811:92;:::o;7986:87::-;8025:13;8058:7;8051:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7986:87;:::o;4781:32::-;;;;;;;;;;;;;:::o;8788:269::-;8881:4;8898:129;8907:12;:10;:12::i;:::-;8921:7;8930:96;8969:15;8930:96;;;;;;;;;;;;;;;;;:11;:25;8942:12;:10;:12::i;:::-;8930:25;;;;;;;;;;;;;;;:34;8956:7;8930:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;8898:8;:129::i;:::-;9045:4;9038:11;;8788:269;;;;:::o;9841:167::-;9919:4;9936:42;9946:12;:10;:12::i;:::-;9960:9;9971:6;9936:9;:42::i;:::-;;9996:4;9989:11;;9841:167;;;;:::o;18400:193::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18517:7:::1;18490:34;;:17;:23;18508:4;18490:23;;;;;;;;;;;;;;;;;;;;;;;;;:34;;::::0;18482:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18578:7;18552:17;:23;18570:4;18552:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18400:193:::0;;:::o;4697:77::-;;;;;;;;;;;;;:::o;18024:113::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18119:10:::1;18101:15;;:28;;;;;;;;;;;;;;;;;;18024:113:::0;:::o;19535:117::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19637:7:::1;19615:12;:19;19628:5;19615:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19535:117:::0;;:::o;19356:171::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19457:8:::1;19433:21;;:32;;;;;;;;;;;;;;;;;;19481:38;19510:8;19481:38;;;;;;:::i;:::-;;;;;;;;19356:171:::0;:::o;6223:26::-;;;;;;;;;;;;;:::o;5238:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;16843:130::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16935:3:::1;:12;;;16948:9;16958:6;16935:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16843:130:::0;;;:::o;5850:64::-;;;;:::o;5352:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;8411:143::-;8492:7;8519:11;:18;8531:5;8519:18;;;;;;;;;;;;;;;:27;8538:7;8519:27;;;;;;;;;;;;;;;;8512:34;;8411:143;;;;:::o;17679:337::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17815:6:::1;17795:17;:26;;;;17852:10;17832:17;:30;;;;17887:7;17873:11;:21;;;;17920:8;17905:12;:23;;;;17951:57;17996:11;;17951:40;17973:17;;17951;;:21;;:40;;;;:::i;:::-;:44;;:57;;;;:::i;:::-;17939:9;:69;;;;17679:337:::0;;;;:::o;16627:176::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16680:7:::1;16700:10;16692:24;;16724:21;16692:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16679:71;;;16769:2;16761:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;16667:136;16627:176::o:0;17131:96::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17212:7:::1;17196:13;;:23;;;;;;;;;;;;;;;;;;17131:96:::0;:::o;3150:244::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3259:1:::1;3239:22;;:8;:22;;::::0;3231:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3349:8;3320:38;;3341:6;::::0;::::1;;;;;;;;3320:38;;;;;;;;;;;;3378:8;3369:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3150:244:::0;:::o;6131:35::-;;;;;;;;;;;;;:::o;18145:115::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18242:10:::1;18222:17;;:30;;;;;;;;;;;;;;;;;;18145:115:::0;:::o;1579:250::-;1637:7;1666:1;1661;:6;1657:47;;1691:1;1684:8;;;;1657:47;1716:9;1732:1;1728;:5;;;;:::i;:::-;1716:17;;1761:1;1756;1752;:5;;;;:::i;:::-;:10;1744:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1820:1;1813:8;;;1579:250;;;;;:::o;1837:132::-;1895:7;1922:39;1926:1;1929;1922:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1915:46;;1837:132;;;;:::o;1046:181::-;1104:7;1124:9;1140:1;1136;:5;;;;:::i;:::-;1124:17;;1165:1;1160;:6;;1152:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1218:1;1211:8;;;1046:181;;;;:::o;97:115::-;150:15;193:10;178:26;;97:115;:::o;9234:337::-;9344:1;9327:19;;:5;:19;;;9319:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9425:1;9406:21;;:7;:21;;;9398:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9509:6;9479:11;:18;9491:5;9479:18;;;;;;;;;;;;;;;:27;9498:7;9479:27;;;;;;;;;;;;;;;:36;;;;9547:7;9531:32;;9540:5;9531:32;;;9556:6;9531:32;;;;;;:::i;:::-;;;;;;;;9234:337;;;:::o;10337:1618::-;10424:4;10469:1;10451:20;;:6;:20;;;10443:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10531:1;10510:23;;:9;:23;;;10502:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10579:1;10570:6;:10;10562:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;10619:11;:19;10631:6;10619:19;;;;;;;;;;;;;;;;;;;;;;;;;10618:20;:47;;;;;10643:11;:22;10655:9;10643:22;;;;;;;;;;;;;;;;;;;;;;;;;10642:23;10618:47;10610:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;10730:16;;;;;;;;;;;10727:1221;;;10780:41;10795:6;10803:9;10814:6;10780:14;:41::i;:::-;10773:48;;;;10727:1221;10879:15;:23;10895:6;10879:23;;;;;;;;;;;;;;;;;;;;;;;;;10878:24;:55;;;;;10907:15;:26;10923:9;10907:26;;;;;;;;;;;;;;;;;;;;;;;;;10906:27;10878:55;:72;;;;;10937:13;;;;;;;;;;;10878:72;10875:152;;;10989:12;;10979:6;:22;;10971:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;10875:152;11044:28;11075:24;11093:4;11075:9;:24::i;:::-;11044:55;;11114:28;11169:23;;11145:20;:47;;11114:78;;11225:23;:44;;;;;11253:16;;;;;;;;;;;11252:17;11225:44;:69;;;;;11274:12;:20;11287:6;11274:20;;;;;;;;;;;;;;;;;;;;;;;;;11273:21;11225:69;:94;;;;;11298:21;;;;;;;;;;;11225:94;11221:165;;;11354:16;:14;:16::i;:::-;11221:165;11422:53;11444:6;11422:53;;;;;;;;;;;;;;;;;:9;:17;11432:6;11422:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11402:9;:17;11412:6;11402:17;;;;;;;;;;;;;;;:73;;;;11492:19;11514:31;11528:6;11535:9;11514:13;:31::i;:::-;:77;;11557:34;11565:6;11573:9;11584:6;11557:7;:34::i;:::-;11514:77;;;11548:6;11514:77;11492:99;;11611:16;;;;;;;;;;;:51;;;;;11632:19;:30;11652:9;11632:30;;;;;;;;;;;;;;;;;;;;;;;;;11631:31;11611:51;11608:164;;;11732:10;;11691:37;11716:11;11691:20;11701:9;11691;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;11683:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11608:164;11811:37;11836:11;11811:9;:20;11821:9;11811:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;11788:9;:20;11798:9;11788:20;;;;;;;;;;;;;;;:60;;;;11887:9;11870:40;;11879:6;11870:40;;;11898:11;11870:40;;;;;;:::i;:::-;;;;;;;;11932:4;11925:11;;;;;10337:1618;;;;;;:::o;1379:192::-;1465:7;1498:1;1493;:6;;1501:12;1485:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1525:9;1541:1;1537;:5;;;;:::i;:::-;1525:17;;1562:1;1555:8;;;1379:192;;;;;:::o;1235:136::-;1293:7;1320:43;1324:1;1327;1320:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1313:50;;1235:136;;;;:::o;1977:278::-;2063:7;2095:1;2091;:5;2098:12;2083:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2122:9;2138:1;2134;:5;;;;:::i;:::-;2122:17;;2246:1;2239:8;;;1977:278;;;;;:::o;11963:330::-;12056:4;12093:53;12115:6;12093:53;;;;;;;;;;;;;;;;;:9;:17;12103:6;12093:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12073:9;:17;12083:6;12073:17;;;;;;;;;;;;;;;:73;;;;12180:32;12205:6;12180:9;:20;12190:9;12180:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12157:9;:20;12167:9;12157:20;;;;;;;;;;;;;;;:55;;;;12245:9;12228:35;;12237:6;12228:35;;;12256:6;12228:35;;;;;;:::i;:::-;;;;;;;;12281:4;12274:11;;11963:330;;;;;:::o;12301:1509::-;6680:4;6661:16;;:23;;;;;;;;;;;;;;;;;;12368::::1;12394:24;12412:4;12394:9;:24::i;:::-;12368:50;;12453:1;12434:15;:20:::0;12431:32:::1;;12456:7;;;12431:32;12475:23;12501:39;12522:17;;12501:16;;:20;;:39;;;;:::i;:::-;12475:65;;12551:23;12577:39;12598:17;;12577:16;;:20;;:39;;;;:::i;:::-;12551:65;;12690:16;12709:23;12722:9;;12709:8;;:12;;:23;;;;:::i;:::-;12690:42;;12761:1;12746:11;:16:::0;12743:28:::1;;12764:7;;;;;;12743:28;12783:19;12805:60;12863:1;12805:53;12846:11;12805:36;12825:15;12805;:19;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;12783:82;;12876:21;12900:32;12920:11;12900:15;:19;;:32;;;;:::i;:::-;12876:56;;12945:22;12970:21;12945:46;;13002:31;13019:13;13002:16;:31::i;:::-;13044:22;13069:41;13095:14;13069:21;:25;;:41;;;;:::i;:::-;13044:66;;13123:19;13145:39;13161:22;13181:1;13161:15;:19;;:22;;;;:::i;:::-;13145:11;:15;;:39;;;;:::i;:::-;13123:61;;13197:26;13226:59;13283:1;13226:52;13266:11;13226:35;13245:15;13226:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;13197:88;;13296:26;13325:52;13365:11;13325:35;13344:15;13325:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;13296:81;;13388:20;13411:62;13454:18;13411:38;13430:18;13411:14;:18;;:38;;;;:::i;:::-;:42;;:62;;;;:::i;:::-;13388:85;;13510:1;13489:18;:22;13486:97;;;13527:56;13548:15;;;;;;;;;;;13564:18;13527:20;:56::i;:::-;13486:97;13614:1;13599:12;:16;13596:87;;;13631:52;13652:17;;;;;;;;;;;13670:12;13631:20;:52::i;:::-;13596:87;13720:1;13699:18;:22;:41;;;;;13739:1;13725:11;:15;13699:41;13696:104;;;13755:45;13768:11;13781:18;13755:12;:45::i;:::-;13696:104;12347:1463;;;;;;;;;;;;6695:1;6726:5:::0;6707:16;;:24;;;;;;;;;;;;;;;;;;12301:1509::o;15162:366::-;15243:4;15263:17;:25;15281:6;15263:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15292:17;:28;15310:9;15292:28;;;;;;;;;;;;;;;;;;;;;;;;;15263:57;15260:261;;;15344:4;15337:11;;;;15260:261;15379:12;:20;15392:6;15379:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15403:12;:23;15416:9;15403:23;;;;;;;;;;;;;;;;;;;;;;;;;15379:47;15375:146;;;15450:5;15443:12;;;;15375:146;15504:5;15497:12;;15162:366;;;;;:::o;15536:1050::-;15622:7;15652:14;15677:15;15743:12;:20;15756:6;15743:20;;;;;;;;;;;;;;;;;;;;;;;;;15740:438;;;15798:37;5763:4;15798:20;15809:8;;15798:6;:10;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;15786:49;;15867:40;5763:4;15867:23;15878:11;;15867:6;:10;;:23;;;;:::i;:::-;:27;;:40;;;;:::i;:::-;15854:53;;15740:438;;;15959:12;:23;15972:9;15959:23;;;;;;;;;;;;;;;;;;;;;;;;;15956:222;;;16033:38;5763:4;16033:21;16044:9;;16033:6;:10;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16021:50;;16103:41;5763:4;16103:24;16114:12;;16103:6;:10;;:24;;;;:::i;:::-;:28;;:41;;;;:::i;:::-;16090:54;;15956:222;15740:438;16214:1;16202:9;:13;16199:185;;;16263:39;16292:9;16263;:24;16281:4;16263:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16236:9;:24;16254:4;16236:24;;;;;;;;;;;;;;;:66;;;;16351:4;16326:42;;16335:6;16326:42;;;16358:9;16326:42;;;;;;:::i;:::-;;;;;;;;16199:185;16416:1;16403:10;:14;16400:97;;;16453:28;16470:10;16453:12;;:16;;:28;;;;:::i;:::-;16438:12;:43;;;;16400:97;16520:37;16546:10;16520:21;16531:9;16520:6;:10;;:21;;;;:::i;:::-;:25;;:37;;;;:::i;:::-;16513:44;;;;15536:1050;;;;;:::o;13957:666::-;14083:21;14121:1;14107:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14083:40;;14152:4;14134;14139:1;14134:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14178:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14168:4;14173:1;14168:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;14213:62;14230:4;14245:15;;;;;;;;;;;14263:11;14213:8;:62::i;:::-;14314:15;;;;;;;;;;;:66;;;14395:11;14421:1;14465:4;14492;14528:15;14314:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14580:35;14597:11;14610:4;14580:35;;;;;;;:::i;:::-;;;;;;;;14012:611;13957:666;:::o;13818:127::-;13910:9;13902:27;;:35;13930:6;13902:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13818:127;;:::o;14631:523::-;14779:62;14796:4;14811:15;;;;;;;;;;;14829:11;14779:8;:62::i;:::-;14884:15;;;;;;;;;;;:31;;;14923:9;14956:4;14976:11;15002:1;15045;15088:17;;;;;;;;;;;15120:15;14884:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14631:523;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:96::-;1518:7;1547:24;1565:5;1547:24;:::i;:::-;1536:35;;1481:96;;;:::o;1583:118::-;1670:24;1688:5;1670:24;:::i;:::-;1665:3;1658:37;1583:118;;:::o;1707:222::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:71;1919:1;1908:9;1904:17;1895:6;1851:71;:::i;:::-;1707:222;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:468::-;4124:6;4132;4181:2;4169:9;4160:7;4156:23;4152:32;4149:119;;;4187:79;;:::i;:::-;4149:119;4307:1;4332:53;4377:7;4368:6;4357:9;4353:22;4332:53;:::i;:::-;4322:63;;4278:117;4434:2;4460:50;4502:7;4493:6;4482:9;4478:22;4460:50;:::i;:::-;4450:60;;4405:115;4059:468;;;;;:::o;4533:60::-;4561:3;4582:5;4575:12;;4533:60;;;:::o;4599:142::-;4649:9;4682:53;4700:34;4709:24;4727:5;4709:24;:::i;:::-;4700:34;:::i;:::-;4682:53;:::i;:::-;4669:66;;4599:142;;;:::o;4747:126::-;4797:9;4830:37;4861:5;4830:37;:::i;:::-;4817:50;;4747:126;;;:::o;4879:152::-;4955:9;4988:37;5019:5;4988:37;:::i;:::-;4975:50;;4879:152;;;:::o;5037:183::-;5150:63;5207:5;5150:63;:::i;:::-;5145:3;5138:76;5037:183;;:::o;5226:274::-;5345:4;5383:2;5372:9;5368:18;5360:26;;5396:97;5490:1;5479:9;5475:17;5466:6;5396:97;:::i;:::-;5226:274;;;;:::o;5506:118::-;5593:24;5611:5;5593:24;:::i;:::-;5588:3;5581:37;5506:118;;:::o;5630:222::-;5723:4;5761:2;5750:9;5746:18;5738:26;;5774:71;5842:1;5831:9;5827:17;5818:6;5774:71;:::i;:::-;5630:222;;;;:::o;5858:619::-;5935:6;5943;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;6381:2;6407:53;6452:7;6443:6;6432:9;6428:22;6407:53;:::i;:::-;6397:63;;6352:118;5858:619;;;;;:::o;6483:86::-;6518:7;6558:4;6551:5;6547:16;6536:27;;6483:86;;;:::o;6575:112::-;6658:22;6674:5;6658:22;:::i;:::-;6653:3;6646:35;6575:112;;:::o;6693:214::-;6782:4;6820:2;6809:9;6805:18;6797:26;;6833:67;6897:1;6886:9;6882:17;6873:6;6833:67;:::i;:::-;6693:214;;;;:::o;6913:329::-;6972:6;7021:2;7009:9;7000:7;6996:23;6992:32;6989:119;;;7027:79;;:::i;:::-;6989:119;7147:1;7172:53;7217:7;7208:6;7197:9;7193:22;7172:53;:::i;:::-;7162:63;;7118:117;6913:329;;;;:::o;7248:::-;7307:6;7356:2;7344:9;7335:7;7331:23;7327:32;7324:119;;;7362:79;;:::i;:::-;7324:119;7482:1;7507:53;7552:7;7543:6;7532:9;7528:22;7507:53;:::i;:::-;7497:63;;7453:117;7248:329;;;;:::o;7583:323::-;7639:6;7688:2;7676:9;7667:7;7663:23;7659:32;7656:119;;;7694:79;;:::i;:::-;7656:119;7814:1;7839:50;7881:7;7872:6;7861:9;7857:22;7839:50;:::i;:::-;7829:60;;7785:114;7583:323;;;;:::o;7912:765::-;7998:6;8006;8014;8022;8071:3;8059:9;8050:7;8046:23;8042:33;8039:120;;;8078:79;;:::i;:::-;8039:120;8198:1;8223:53;8268:7;8259:6;8248:9;8244:22;8223:53;:::i;:::-;8213:63;;8169:117;8325:2;8351:53;8396:7;8387:6;8376:9;8372:22;8351:53;:::i;:::-;8341:63;;8296:118;8453:2;8479:53;8524:7;8515:6;8504:9;8500:22;8479:53;:::i;:::-;8469:63;;8424:118;8581:2;8607:53;8652:7;8643:6;8632:9;8628:22;8607:53;:::i;:::-;8597:63;;8552:118;7912:765;;;;;;;:::o;8683:109::-;8733:7;8762:24;8780:5;8762:24;:::i;:::-;8751:35;;8683:109;;;:::o;8798:148::-;8884:37;8915:5;8884:37;:::i;:::-;8877:5;8874:48;8864:76;;8936:1;8933;8926:12;8864:76;8798:148;:::o;8952:165::-;9011:5;9049:6;9036:20;9027:29;;9065:46;9105:5;9065:46;:::i;:::-;8952:165;;;;:::o;9123:645::-;9213:6;9221;9229;9278:2;9266:9;9257:7;9253:23;9249:32;9246:119;;;9284:79;;:::i;:::-;9246:119;9404:1;9429:66;9487:7;9478:6;9467:9;9463:22;9429:66;:::i;:::-;9419:76;;9375:130;9544:2;9570:53;9615:7;9606:6;9595:9;9591:22;9570:53;:::i;:::-;9560:63;;9515:118;9672:2;9698:53;9743:7;9734:6;9723:9;9719:22;9698:53;:::i;:::-;9688:63;;9643:118;9123:645;;;;;:::o;9774:474::-;9842:6;9850;9899:2;9887:9;9878:7;9874:23;9870:32;9867:119;;;9905:79;;:::i;:::-;9867:119;10025:1;10050:53;10095:7;10086:6;10075:9;10071:22;10050:53;:::i;:::-;10040:63;;9996:117;10152:2;10178:53;10223:7;10214:6;10203:9;10199:22;10178:53;:::i;:::-;10168:63;;10123:118;9774:474;;;;;:::o;10254:180::-;10302:77;10299:1;10292:88;10399:4;10396:1;10389:15;10423:4;10420:1;10413:15;10440:320;10484:6;10521:1;10515:4;10511:12;10501:22;;10568:1;10562:4;10558:12;10589:18;10579:81;;10645:4;10637:6;10633:17;10623:27;;10579:81;10707:2;10699:6;10696:14;10676:18;10673:38;10670:84;;10726:18;;:::i;:::-;10670:84;10491:269;10440:320;;;:::o;10766:182::-;10906:34;10902:1;10894:6;10890:14;10883:58;10766:182;:::o;10954:366::-;11096:3;11117:67;11181:2;11176:3;11117:67;:::i;:::-;11110:74;;11193:93;11282:3;11193:93;:::i;:::-;11311:2;11306:3;11302:12;11295:19;;10954:366;;;:::o;11326:419::-;11492:4;11530:2;11519:9;11515:18;11507:26;;11579:9;11573:4;11569:20;11565:1;11554:9;11550:17;11543:47;11607:131;11733:4;11607:131;:::i;:::-;11599:139;;11326:419;;;:::o;11751:163::-;11891:15;11887:1;11879:6;11875:14;11868:39;11751:163;:::o;11920:366::-;12062:3;12083:67;12147:2;12142:3;12083:67;:::i;:::-;12076:74;;12159:93;12248:3;12159:93;:::i;:::-;12277:2;12272:3;12268:12;12261:19;;11920:366;;;:::o;12292:419::-;12458:4;12496:2;12485:9;12481:18;12473:26;;12545:9;12539:4;12535:20;12531:1;12520:9;12516:17;12509:47;12573:131;12699:4;12573:131;:::i;:::-;12565:139;;12292:419;;;:::o;12717:143::-;12774:5;12805:6;12799:13;12790:22;;12821:33;12848:5;12821:33;:::i;:::-;12717:143;;;;:::o;12866:351::-;12936:6;12985:2;12973:9;12964:7;12960:23;12956:32;12953:119;;;12991:79;;:::i;:::-;12953:119;13111:1;13136:64;13192:7;13183:6;13172:9;13168:22;13136:64;:::i;:::-;13126:74;;13082:128;12866:351;;;;:::o;13223:332::-;13344:4;13382:2;13371:9;13367:18;13359:26;;13395:71;13463:1;13452:9;13448:17;13439:6;13395:71;:::i;:::-;13476:72;13544:2;13533:9;13529:18;13520:6;13476:72;:::i;:::-;13223:332;;;;;:::o;13561:::-;13682:4;13720:2;13709:9;13705:18;13697:26;;13733:71;13801:1;13790:9;13786:17;13777:6;13733:71;:::i;:::-;13814:72;13882:2;13871:9;13867:18;13858:6;13814:72;:::i;:::-;13561:332;;;;;:::o;13899:137::-;13953:5;13984:6;13978:13;13969:22;;14000:30;14024:5;14000:30;:::i;:::-;13899:137;;;;:::o;14042:345::-;14109:6;14158:2;14146:9;14137:7;14133:23;14129:32;14126:119;;;14164:79;;:::i;:::-;14126:119;14284:1;14309:61;14362:7;14353:6;14342:9;14338:22;14309:61;:::i;:::-;14299:71;;14255:125;14042:345;;;;:::o;14393:147::-;14494:11;14531:3;14516:18;;14393:147;;;;:::o;14546:114::-;;:::o;14666:398::-;14825:3;14846:83;14927:1;14922:3;14846:83;:::i;:::-;14839:90;;14938:93;15027:3;14938:93;:::i;:::-;15056:1;15051:3;15047:11;15040:18;;14666:398;;;:::o;15070:379::-;15254:3;15276:147;15419:3;15276:147;:::i;:::-;15269:154;;15440:3;15433:10;;15070:379;;;:::o;15455:170::-;15595:22;15591:1;15583:6;15579:14;15572:46;15455:170;:::o;15631:366::-;15773:3;15794:67;15858:2;15853:3;15794:67;:::i;:::-;15787:74;;15870:93;15959:3;15870:93;:::i;:::-;15988:2;15983:3;15979:12;15972:19;;15631:366;;;:::o;16003:419::-;16169:4;16207:2;16196:9;16192:18;16184:26;;16256:9;16250:4;16246:20;16242:1;16231:9;16227:17;16220:47;16284:131;16410:4;16284:131;:::i;:::-;16276:139;;16003:419;;;:::o;16428:225::-;16568:34;16564:1;16556:6;16552:14;16545:58;16637:8;16632:2;16624:6;16620:15;16613:33;16428:225;:::o;16659:366::-;16801:3;16822:67;16886:2;16881:3;16822:67;:::i;:::-;16815:74;;16898:93;16987:3;16898:93;:::i;:::-;17016:2;17011:3;17007:12;17000:19;;16659:366;;;:::o;17031:419::-;17197:4;17235:2;17224:9;17220:18;17212:26;;17284:9;17278:4;17274:20;17270:1;17259:9;17255:17;17248:47;17312:131;17438:4;17312:131;:::i;:::-;17304:139;;17031:419;;;:::o;17456:180::-;17504:77;17501:1;17494:88;17601:4;17598:1;17591:15;17625:4;17622:1;17615:15;17642:410;17682:7;17705:20;17723:1;17705:20;:::i;:::-;17700:25;;17739:20;17757:1;17739:20;:::i;:::-;17734:25;;17794:1;17791;17787:9;17816:30;17834:11;17816:30;:::i;:::-;17805:41;;17995:1;17986:7;17982:15;17979:1;17976:22;17956:1;17949:9;17929:83;17906:139;;18025:18;;:::i;:::-;17906:139;17690:362;17642:410;;;;:::o;18058:180::-;18106:77;18103:1;18096:88;18203:4;18200:1;18193:15;18227:4;18224:1;18217:15;18244:185;18284:1;18301:20;18319:1;18301:20;:::i;:::-;18296:25;;18335:20;18353:1;18335:20;:::i;:::-;18330:25;;18374:1;18364:35;;18379:18;;:::i;:::-;18364:35;18421:1;18418;18414:9;18409:14;;18244:185;;;;:::o;18435:220::-;18575:34;18571:1;18563:6;18559:14;18552:58;18644:3;18639:2;18631:6;18627:15;18620:28;18435:220;:::o;18661:366::-;18803:3;18824:67;18888:2;18883:3;18824:67;:::i;:::-;18817:74;;18900:93;18989:3;18900:93;:::i;:::-;19018:2;19013:3;19009:12;19002:19;;18661:366;;;:::o;19033:419::-;19199:4;19237:2;19226:9;19222:18;19214:26;;19286:9;19280:4;19276:20;19272:1;19261:9;19257:17;19250:47;19314:131;19440:4;19314:131;:::i;:::-;19306:139;;19033:419;;;:::o;19458:191::-;19498:3;19517:20;19535:1;19517:20;:::i;:::-;19512:25;;19551:20;19569:1;19551:20;:::i;:::-;19546:25;;19594:1;19591;19587:9;19580:16;;19615:3;19612:1;19609:10;19606:36;;;19622:18;;:::i;:::-;19606:36;19458:191;;;;:::o;19655:177::-;19795:29;19791:1;19783:6;19779:14;19772:53;19655:177;:::o;19838:366::-;19980:3;20001:67;20065:2;20060:3;20001:67;:::i;:::-;19994:74;;20077:93;20166:3;20077:93;:::i;:::-;20195:2;20190:3;20186:12;20179:19;;19838:366;;;:::o;20210:419::-;20376:4;20414:2;20403:9;20399:18;20391:26;;20463:9;20457:4;20453:20;20449:1;20438:9;20434:17;20427:47;20491:131;20617:4;20491:131;:::i;:::-;20483:139;;20210:419;;;:::o;20635:223::-;20775:34;20771:1;20763:6;20759:14;20752:58;20844:6;20839:2;20831:6;20827:15;20820:31;20635:223;:::o;20864:366::-;21006:3;21027:67;21091:2;21086:3;21027:67;:::i;:::-;21020:74;;21103:93;21192:3;21103:93;:::i;:::-;21221:2;21216:3;21212:12;21205:19;;20864:366;;;:::o;21236:419::-;21402:4;21440:2;21429:9;21425:18;21417:26;;21489:9;21483:4;21479:20;21475:1;21464:9;21460:17;21453:47;21517:131;21643:4;21517:131;:::i;:::-;21509:139;;21236:419;;;:::o;21661:221::-;21801:34;21797:1;21789:6;21785:14;21778:58;21870:4;21865:2;21857:6;21853:15;21846:29;21661:221;:::o;21888:366::-;22030:3;22051:67;22115:2;22110:3;22051:67;:::i;:::-;22044:74;;22127:93;22216:3;22127:93;:::i;:::-;22245:2;22240:3;22236:12;22229:19;;21888:366;;;:::o;22260:419::-;22426:4;22464:2;22453:9;22449:18;22441:26;;22513:9;22507:4;22503:20;22499:1;22488:9;22484:17;22477:47;22541:131;22667:4;22541:131;:::i;:::-;22533:139;;22260:419;;;:::o;22685:165::-;22825:17;22821:1;22813:6;22809:14;22802:41;22685:165;:::o;22856:366::-;22998:3;23019:67;23083:2;23078:3;23019:67;:::i;:::-;23012:74;;23095:93;23184:3;23095:93;:::i;:::-;23213:2;23208:3;23204:12;23197:19;;22856:366;;;:::o;23228:419::-;23394:4;23432:2;23421:9;23417:18;23409:26;;23481:9;23475:4;23471:20;23467:1;23456:9;23452:17;23445:47;23509:131;23635:4;23509:131;:::i;:::-;23501:139;;23228:419;;;:::o;23653:163::-;23793:15;23789:1;23781:6;23777:14;23770:39;23653:163;:::o;23822:366::-;23964:3;23985:67;24049:2;24044:3;23985:67;:::i;:::-;23978:74;;24061:93;24150:3;24061:93;:::i;:::-;24179:2;24174:3;24170:12;24163:19;;23822:366;;;:::o;24194:419::-;24360:4;24398:2;24387:9;24383:18;24375:26;;24447:9;24441:4;24437:20;24433:1;24422:9;24418:17;24411:47;24475:131;24601:4;24475:131;:::i;:::-;24467:139;;24194:419;;;:::o;24619:164::-;24759:16;24755:1;24747:6;24743:14;24736:40;24619:164;:::o;24789:366::-;24931:3;24952:67;25016:2;25011:3;24952:67;:::i;:::-;24945:74;;25028:93;25117:3;25028:93;:::i;:::-;25146:2;25141:3;25137:12;25130:19;;24789:366;;;:::o;25161:419::-;25327:4;25365:2;25354:9;25350:18;25342:26;;25414:9;25408:4;25404:20;25400:1;25389:9;25385:17;25378:47;25442:131;25568:4;25442:131;:::i;:::-;25434:139;;25161:419;;;:::o;25586:232::-;25726:34;25722:1;25714:6;25710:14;25703:58;25795:15;25790:2;25782:6;25778:15;25771:40;25586:232;:::o;25824:366::-;25966:3;25987:67;26051:2;26046:3;25987:67;:::i;:::-;25980:74;;26063:93;26152:3;26063:93;:::i;:::-;26181:2;26176:3;26172:12;26165:19;;25824:366;;;:::o;26196:419::-;26362:4;26400:2;26389:9;26385:18;26377:26;;26449:9;26443:4;26439:20;26435:1;26424:9;26420:17;26413:47;26477:131;26603:4;26477:131;:::i;:::-;26469:139;;26196:419;;;:::o;26621:156::-;26761:8;26757:1;26749:6;26745:14;26738:32;26621:156;:::o;26783:365::-;26925:3;26946:66;27010:1;27005:3;26946:66;:::i;:::-;26939:73;;27021:93;27110:3;27021:93;:::i;:::-;27139:2;27134:3;27130:12;27123:19;;26783:365;;;:::o;27154:419::-;27320:4;27358:2;27347:9;27343:18;27335:26;;27407:9;27401:4;27397:20;27393:1;27382:9;27378:17;27371:47;27435:131;27561:4;27435:131;:::i;:::-;27427:139;;27154:419;;;:::o;27579:160::-;27719:12;27715:1;27707:6;27703:14;27696:36;27579:160;:::o;27745:366::-;27887:3;27908:67;27972:2;27967:3;27908:67;:::i;:::-;27901:74;;27984:93;28073:3;27984:93;:::i;:::-;28102:2;28097:3;28093:12;28086:19;;27745:366;;;:::o;28117:419::-;28283:4;28321:2;28310:9;28306:18;28298:26;;28370:9;28364:4;28360:20;28356:1;28345:9;28341:17;28334:47;28398:131;28524:4;28398:131;:::i;:::-;28390:139;;28117:419;;;:::o;28542:194::-;28582:4;28602:20;28620:1;28602:20;:::i;:::-;28597:25;;28636:20;28654:1;28636:20;:::i;:::-;28631:25;;28680:1;28677;28673:9;28665:17;;28704:1;28698:4;28695:11;28692:37;;;28709:18;;:::i;:::-;28692:37;28542:194;;;;:::o;28742:180::-;28790:77;28787:1;28780:88;28887:4;28884:1;28877:15;28911:4;28908:1;28901:15;28928:180;28976:77;28973:1;28966:88;29073:4;29070:1;29063:15;29097:4;29094:1;29087:15;29114:85;29159:7;29188:5;29177:16;;29114:85;;;:::o;29205:158::-;29263:9;29296:61;29314:42;29323:32;29349:5;29323:32;:::i;:::-;29314:42;:::i;:::-;29296:61;:::i;:::-;29283:74;;29205:158;;;:::o;29369:147::-;29464:45;29503:5;29464:45;:::i;:::-;29459:3;29452:58;29369:147;;:::o;29522:114::-;29589:6;29623:5;29617:12;29607:22;;29522:114;;;:::o;29642:184::-;29741:11;29775:6;29770:3;29763:19;29815:4;29810:3;29806:14;29791:29;;29642:184;;;;:::o;29832:132::-;29899:4;29922:3;29914:11;;29952:4;29947:3;29943:14;29935:22;;29832:132;;;:::o;29970:108::-;30047:24;30065:5;30047:24;:::i;:::-;30042:3;30035:37;29970:108;;:::o;30084:179::-;30153:10;30174:46;30216:3;30208:6;30174:46;:::i;:::-;30252:4;30247:3;30243:14;30229:28;;30084:179;;;;:::o;30269:113::-;30339:4;30371;30366:3;30362:14;30354:22;;30269:113;;;:::o;30418:732::-;30537:3;30566:54;30614:5;30566:54;:::i;:::-;30636:86;30715:6;30710:3;30636:86;:::i;:::-;30629:93;;30746:56;30796:5;30746:56;:::i;:::-;30825:7;30856:1;30841:284;30866:6;30863:1;30860:13;30841:284;;;30942:6;30936:13;30969:63;31028:3;31013:13;30969:63;:::i;:::-;30962:70;;31055:60;31108:6;31055:60;:::i;:::-;31045:70;;30901:224;30888:1;30885;30881:9;30876:14;;30841:284;;;30845:14;31141:3;31134:10;;30542:608;;;30418:732;;;;:::o;31156:831::-;31419:4;31457:3;31446:9;31442:19;31434:27;;31471:71;31539:1;31528:9;31524:17;31515:6;31471:71;:::i;:::-;31552:80;31628:2;31617:9;31613:18;31604:6;31552:80;:::i;:::-;31679:9;31673:4;31669:20;31664:2;31653:9;31649:18;31642:48;31707:108;31810:4;31801:6;31707:108;:::i;:::-;31699:116;;31825:72;31893:2;31882:9;31878:18;31869:6;31825:72;:::i;:::-;31907:73;31975:3;31964:9;31960:19;31951:6;31907:73;:::i;:::-;31156:831;;;;;;;;:::o;31993:483::-;32164:4;32202:2;32191:9;32187:18;32179:26;;32215:71;32283:1;32272:9;32268:17;32259:6;32215:71;:::i;:::-;32333:9;32327:4;32323:20;32318:2;32307:9;32303:18;32296:48;32361:108;32464:4;32455:6;32361:108;:::i;:::-;32353:116;;31993:483;;;;;:::o;32482:807::-;32731:4;32769:3;32758:9;32754:19;32746:27;;32783:71;32851:1;32840:9;32836:17;32827:6;32783:71;:::i;:::-;32864:72;32932:2;32921:9;32917:18;32908:6;32864:72;:::i;:::-;32946:80;33022:2;33011:9;33007:18;32998:6;32946:80;:::i;:::-;33036;33112:2;33101:9;33097:18;33088:6;33036:80;:::i;:::-;33126:73;33194:3;33183:9;33179:19;33170:6;33126:73;:::i;:::-;33209;33277:3;33266:9;33262:19;33253:6;33209:73;:::i;:::-;32482:807;;;;;;;;;:::o;33295:143::-;33352:5;33383:6;33377:13;33368:22;;33399:33;33426:5;33399:33;:::i;:::-;33295:143;;;;:::o;33444:663::-;33532:6;33540;33548;33597:2;33585:9;33576:7;33572:23;33568:32;33565:119;;;33603:79;;:::i;:::-;33565:119;33723:1;33748:64;33804:7;33795:6;33784:9;33780:22;33748:64;:::i;:::-;33738:74;;33694:128;33861:2;33887:64;33943:7;33934:6;33923:9;33919:22;33887:64;:::i;:::-;33877:74;;33832:129;34000:2;34026:64;34082:7;34073:6;34062:9;34058:22;34026:64;:::i;:::-;34016:74;;33971:129;33444:663;;;;;:::o

Swarm Source

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