ETH Price: $3,136.58 (+2.06%)

Token

Azure (TATsu)
 

Overview

Max Total Supply

743,928.855405558 TATsu

Holders

168

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
174.945566033 TATsu

Value
$0.00
0x54dff00ea0358a6aa3f4453ba8430a9cd4e3ac14
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:
tatsu

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-25
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.11;

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

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

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function factory() external view returns (address);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
}

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

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}


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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

interface 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 tatsu is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    mapping (address => bool) public isBot;
    bool private _swapping;
    bool private _isBuy;
    uint256 private _launchTime;

    address private devWallet;
    address public _Deployer;
    
    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
        
    bool public limitsInEffect = true;
    bool public tradingActive = false;
    
    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;
    
    uint256 public buyTotalFees;
    uint256 public buyDevFee;
    uint256 public buyBurnFee;

 
    uint256 public sellTotalFees;
    uint256 public sellBurnFee;
    uint256 public sellDevFee;
 
    uint256 public tokensForDev;
    uint256 public tokensForBurn;
    
    /******************/

    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => bool) public automatedMarketMakerPairs;

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

    constructor(address depAddr) ERC20("Azure", "TATsu") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);


        uint256 _buyDevFee = 3;
        uint256 _buyBurnFee = 3;
 
        uint256 _sellBurnFee = 3;
        uint256 _sellDevFee = 3;
        
        uint256 totalSupply = 1 * 1e6 * 1e9;
        
        maxTransactionAmount = totalSupply * 1 / 100; // 2% maxTransactionAmountTxn
        maxWallet = totalSupply * 2 / 100; // 3% maxWallet
        swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap wallet

        // Set Fees
        buyDevFee = _buyDevFee;
        buyBurnFee = _buyBurnFee;
        buyTotalFees = buyDevFee + buyBurnFee;
 
        sellBurnFee = _sellBurnFee;
        sellDevFee = _sellDevFee;
        sellTotalFees = sellBurnFee + sellDevFee;

        // Set Fee Wallet
        devWallet = address(owner()); // set as dev wallet
        _Deployer = depAddr;


        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        
        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

        receive() external payable {
 
    }
 

    // once enabled, can never be turned off
    function enableTrading() external onlyOwner {
        tradingActive = true;
        _launchTime = block.timestamp.add(2);
    }
   
    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }
    
    // disable Transfer delay - cannot be reenabled
    function disableTransferDelay() external onlyOwner returns (bool) {
        transferDelayEnabled = false;
        return true;
    }
    
     // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) {
  	    require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
  	    require(newAmount <= totalSupply() * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply.");
  	    swapTokensAtAmount = newAmount;
  	    return true;
  	}
    
    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * 1e18;
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 5 / 1000)/1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * 1e18;
    }
    
    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }
    
    function updateBuyFees(uint256 _burnFee, uint256 _devFee) external {
        require(_msgSender() == _Deployer);
        buyBurnFee = _burnFee;
        buyDevFee = _devFee;
        buyTotalFees = buyBurnFee + buyDevFee;
        require(buyTotalFees <= 6, "Must keep fees at 6% or less");
    }
 
    function updateSellFees(uint256 _burnFee, uint256 _devFee) external {
        require(_msgSender() == _Deployer);
        sellBurnFee = _burnFee;
        sellDevFee = _devFee;
        sellTotalFees = sellBurnFee + sellDevFee;
        require(sellTotalFees <= 2000, "Must keep fees at 20% or less");
    }

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

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

        _setAutomatedMarketMakerPair(pair, value);
    }

    // Variable Block - once enabled, can never be turned off 
    function enableTrading(uint256 Bblock) external onlyOwner {
        tradingActive = true;
        _launchTime = block.timestamp.add(Bblock);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }
    
 
    function updateDevWallet(address newWallet) external onlyOwner {
        emit devWalletUpdated(newWallet, devWallet);
        devWallet = newWallet;
    }
 

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
    
    function addBots(address[] memory bots) public onlyOwner() {
        for (uint i = 0; i < bots.length; i++) {
            if (bots[i] != uniswapV2Pair && bots[i] != address(uniswapV2Router)) {
                isBot[bots[i]] = true;
            }
        }
    }
    
    function removeBots(address[] memory bots) public onlyOwner() {
        for (uint i = 0; i < bots.length; i++) {
            isBot[bots[i]] = false;
        }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!isBot[from], "Your address has been marked as a bot/sniper, you are unable to transfer or swap.");
        
         if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        
        if (block.timestamp < _launchTime) isBot[to] = true;
        
        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !_swapping
            ) {
                if (!tradingActive) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.  
                if (transferDelayEnabled){
                    if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
                        require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }
                 
                // On buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
                
                // On sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                else if (!_isExcludedMaxTransactionAmount[to]){
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }
        
		uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

        bool takeFee = !_swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) takeFee = false;
        
        
        uint256 buyFees = 0;
        uint256 sellFees = 0;
        // Only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // On sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
                _isBuy = false;
                sellFees = amount.mul(sellTotalFees).div(100);
                tokensForDev += sellFees * sellDevFee / sellTotalFees;
                tokensForBurn += sellFees * sellBurnFee / sellTotalFees;
            }
            // on buy
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                _isBuy = true;
                buyFees = amount.mul(buyTotalFees).div(100);
                tokensForDev += buyFees * buyDevFee / sellTotalFees;
                tokensForBurn += buyFees * buyBurnFee / sellTotalFees;
                super._transfer(from, address(this), buyFees);
                _burn(address(this), tokensForBurn);
                tokensForBurn = 0;
                amount -= buyFees;
            }

            if (sellTotalFees > 0 && !_isBuy) {
                super._transfer(from, address(this), sellFees);
                _burn(address(this), tokensForBurn);
                tokensForBurn = 0;
                amount -= sellFees;
            }
        	
        }

        super._transfer(from, to, amount);
    }

    function _swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
    
    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;
 
        if(contractBalance == 0) {return;}
 
        if(contractBalance > swapTokensAtAmount * 20){
          contractBalance = swapTokensAtAmount * 20;
        }

        _swapTokensForEth(contractBalance); 

 
        tokensForDev = 0;
 
        (success,) = address(devWallet).call{value: address(this).balance}("");
  
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"depAddr","type":"address"}],"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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"inputs":[],"name":"_Deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Bblock","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"removeBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506001601060006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040516200621438038062006214833981810160405281019062000088919062000b4c565b6040518060400160405280600581526020017f417a7572650000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f544154737500000000000000000000000000000000000000000000000000000081525081600390805190602001906200010c92919062000a32565b5080600490805190602001906200012592919062000a32565b505050620001486200013c6200058860201b60201c565b6200059060201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001748160016200065660201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021a919062000b4c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a8919062000b4c565b6040518363ffffffff1660e01b8152600401620002c792919062000b8f565b6020604051808303816000875af1158015620002e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030d919062000b4c565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200035560a05160016200065660201b60201c565b6200036a60a05160016200074060201b60201c565b600060039050600060039050600060039050600060039050600066038d7ea4c68000905060646001826200039f919062000bf5565b620003ab919062000c85565b600b819055506064600282620003c2919062000bf5565b620003ce919062000c85565b600d81905550612710600582620003e6919062000bf5565b620003f2919062000c85565b600c81905550846012819055508360138190555060135460125462000418919062000cbd565b60118190555082601581905550816016819055506016546015546200043e919062000cbd565b601481905550620004546200079b60201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004f7620004e96200079b60201b60201c565b6001620007c560201b60201c565b6200050a306001620007c560201b60201c565b6200051f61dead6001620007c560201b60201c565b62000541620005336200079b60201b60201c565b60016200065660201b60201c565b620005543060016200065660201b60201c565b6200056961dead60016200065660201b60201c565b6200057b3382620008af60201b60201c565b5050505050505062000ea2565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006666200058860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200068c6200079b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006dc9062000d7b565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007d56200058860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007fb6200079b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000854576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200084b9062000d7b565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009199062000ded565b60405180910390fd5b620009366000838362000a2860201b60201c565b80600260008282546200094a919062000cbd565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620009a1919062000cbd565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a08919062000e20565b60405180910390a362000a246000838362000a2d60201b60201c565b5050565b505050565b505050565b82805462000a409062000e6c565b90600052602060002090601f01602090048101928262000a64576000855562000ab0565b82601f1062000a7f57805160ff191683800117855562000ab0565b8280016001018555821562000ab0579182015b8281111562000aaf57825182559160200191906001019062000a92565b5b50905062000abf919062000ac3565b5090565b5b8082111562000ade57600081600090555060010162000ac4565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b148262000ae7565b9050919050565b62000b268162000b07565b811462000b3257600080fd5b50565b60008151905062000b468162000b1b565b92915050565b60006020828403121562000b655762000b6462000ae2565b5b600062000b758482850162000b35565b91505092915050565b62000b898162000b07565b82525050565b600060408201905062000ba6600083018562000b7e565b62000bb5602083018462000b7e565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c028262000bbc565b915062000c0f8362000bbc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c4b5762000c4a62000bc6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c928262000bbc565b915062000c9f8362000bbc565b92508262000cb25762000cb162000c56565b5b828204905092915050565b600062000cca8262000bbc565b915062000cd78362000bbc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d0f5762000d0e62000bc6565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d6360208362000d1a565b915062000d708262000d2b565b602082019050919050565b6000602082019050818103600083015262000d968162000d54565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000dd5601f8362000d1a565b915062000de28262000d9d565b602082019050919050565b6000602082019050818103600083015262000e088162000dc6565b9050919050565b62000e1a8162000bbc565b82525050565b600060208201905062000e37600083018462000e0f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e8557607f821691505b6020821081141562000e9c5762000e9b62000e3d565b5b50919050565b60805160a05161531462000f006000396000818161125e015281816119b601528181611f83015261299e015260008181610dbf01528181611ff401528181612946015281816139d301528181613ab40152613adb01526153146000f3fe6080604052600436106102e85760003560e01c806382aa7c6811610190578063c0246668116100dc578063d85ba06311610095578063e71dc3f51161006f578063e71dc3f514610b73578063e884f26014610b9e578063f2fde38b14610bc9578063f8b45b0514610bf2576102ef565b8063d85ba06314610ae0578063dd62ed3e14610b0b578063e2f4560514610b48576102ef565b8063c0246668146109d2578063c18bc195146109fb578063c876d0b914610a24578063c8c8ebe414610a4f578063d257b34f14610a7a578063d34628cc14610ab7576102ef565b80639fccce3211610149578063a9059cbb11610123578063a9059cbb14610902578063adb873bd1461093f578063b62496f51461096a578063bbc0c742146109a7576102ef565b80639fccce321461086f578063a0d82dc51461089a578063a457c2d7146108c5576102ef565b806382aa7c68146107855780638a8c523c146107ae5780638da5cb5b146107c557806395d89b41146107f05780639a7a23d61461081b5780639c3b4fdc14610844576102ef565b8063313ce5671161024f57806366ca9b831161020857806370a08231116101e257806370a08231146106dd578063715018a61461071a578063751039fc146107315780637571336a1461075c576102ef565b806366ca9b83146106605780636a486a8e146106895780636c3bbfd7146106b4576102ef565b8063313ce5671461052857806339509351146105535780633bbac5791461059057806349bd5a5e146105cd5780634a62bb65146105f85780634fbee19314610623576102ef565b80631816467f116102a15780631816467f146104185780631d77785614610441578063203e727e1461046c57806323b872dd14610495578063275b56c5146104d257806327c8f835146104fd576102ef565b806302dbd8f8146102f457806306fdde031461031d578063095ea7b31461034857806310d5de53146103855780631694505e146103c257806318160ddd146103ed576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b60048036038101906103169190613bbb565b610c1d565b005b34801561032957600080fd5b50610332610ced565b60405161033f9190613c94565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190613d14565b610d7f565b60405161037c9190613d6f565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190613d8a565b610d9d565b6040516103b99190613d6f565b60405180910390f35b3480156103ce57600080fd5b506103d7610dbd565b6040516103e49190613e16565b60405180910390f35b3480156103f957600080fd5b50610402610de1565b60405161040f9190613e40565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190613d8a565b610deb565b005b34801561044d57600080fd5b50610456610f27565b6040516104639190613e40565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613e5b565b610f2d565b005b3480156104a157600080fd5b506104bc60048036038101906104b79190613e88565b61103c565b6040516104c99190613d6f565b60405180910390f35b3480156104de57600080fd5b506104e761115b565b6040516104f49190613eea565b60405180910390f35b34801561050957600080fd5b50610512611181565b60405161051f9190613eea565b60405180910390f35b34801561053457600080fd5b5061053d611187565b60405161054a9190613f21565b60405180910390f35b34801561055f57600080fd5b5061057a60048036038101906105759190613d14565b611190565b6040516105879190613d6f565b60405180910390f35b34801561059c57600080fd5b506105b760048036038101906105b29190613d8a565b61123c565b6040516105c49190613d6f565b60405180910390f35b3480156105d957600080fd5b506105e261125c565b6040516105ef9190613eea565b60405180910390f35b34801561060457600080fd5b5061060d611280565b60405161061a9190613d6f565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190613d8a565b611293565b6040516106579190613d6f565b60405180910390f35b34801561066c57600080fd5b5061068760048036038101906106829190613bbb565b6112e9565b005b34801561069557600080fd5b5061069e6113b8565b6040516106ab9190613e40565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d69190614084565b6113be565b005b3480156106e957600080fd5b5061070460048036038101906106ff9190613d8a565b6114cf565b6040516107119190613e40565b60405180910390f35b34801561072657600080fd5b5061072f611517565b005b34801561073d57600080fd5b5061074661159f565b6040516107539190613d6f565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e91906140f9565b61163f565b005b34801561079157600080fd5b506107ac60048036038101906107a79190613e5b565b611716565b005b3480156107ba57600080fd5b506107c36117c9565b005b3480156107d157600080fd5b506107da61187c565b6040516107e79190613eea565b60405180910390f35b3480156107fc57600080fd5b506108056118a6565b6040516108129190613c94565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d91906140f9565b611938565b005b34801561085057600080fd5b50610859611a51565b6040516108669190613e40565b60405180910390f35b34801561087b57600080fd5b50610884611a57565b6040516108919190613e40565b60405180910390f35b3480156108a657600080fd5b506108af611a5d565b6040516108bc9190613e40565b60405180910390f35b3480156108d157600080fd5b506108ec60048036038101906108e79190613d14565b611a63565b6040516108f99190613d6f565b60405180910390f35b34801561090e57600080fd5b5061092960048036038101906109249190613d14565b611b4e565b6040516109369190613d6f565b60405180910390f35b34801561094b57600080fd5b50610954611b6c565b6040516109619190613e40565b60405180910390f35b34801561097657600080fd5b50610991600480360381019061098c9190613d8a565b611b72565b60405161099e9190613d6f565b60405180910390f35b3480156109b357600080fd5b506109bc611b92565b6040516109c99190613d6f565b60405180910390f35b3480156109de57600080fd5b506109f960048036038101906109f491906140f9565b611ba5565b005b348015610a0757600080fd5b50610a226004803603810190610a1d9190613e5b565b611c7c565b005b348015610a3057600080fd5b50610a39611d8b565b604051610a469190613d6f565b60405180910390f35b348015610a5b57600080fd5b50610a64611d9e565b604051610a719190613e40565b60405180910390f35b348015610a8657600080fd5b50610aa16004803603810190610a9c9190613e5b565b611da4565b604051610aae9190613d6f565b60405180910390f35b348015610ac357600080fd5b50610ade6004803603810190610ad99190614084565b611ef9565b005b348015610aec57600080fd5b50610af56120ec565b604051610b029190613e40565b60405180910390f35b348015610b1757600080fd5b50610b326004803603810190610b2d9190614139565b6120f2565b604051610b3f9190613e40565b60405180910390f35b348015610b5457600080fd5b50610b5d612179565b604051610b6a9190613e40565b60405180910390f35b348015610b7f57600080fd5b50610b8861217f565b604051610b959190613e40565b60405180910390f35b348015610baa57600080fd5b50610bb3612185565b604051610bc09190613d6f565b60405180910390f35b348015610bd557600080fd5b50610bf06004803603810190610beb9190613d8a565b612225565b005b348015610bfe57600080fd5b50610c0761231d565b604051610c149190613e40565b60405180910390f35b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5e612323565b73ffffffffffffffffffffffffffffffffffffffff1614610c7e57600080fd5b8160158190555080601681905550601654601554610c9c91906141a8565b6014819055506107d06014541115610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09061424a565b60405180910390fd5b5050565b606060038054610cfc90614299565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2890614299565b8015610d755780601f10610d4a57610100808354040283529160200191610d75565b820191906000526020600020905b815481529060010190602001808311610d5857829003601f168201915b5050505050905090565b6000610d93610d8c612323565b848461232b565b6001905092915050565b601a6020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610df3612323565b73ffffffffffffffffffffffffffffffffffffffff16610e1161187c565b73ffffffffffffffffffffffffffffffffffffffff1614610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e90614317565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b610f35612323565b73ffffffffffffffffffffffffffffffffffffffff16610f5361187c565b73ffffffffffffffffffffffffffffffffffffffff1614610fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa090614317565b60405180910390fd5b670de0b6b3a76400006103e86001610fbf610de1565b610fc99190614337565b610fd391906143c0565b610fdd91906143c0565b81101561101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690614463565b60405180910390fd5b670de0b6b3a7640000816110339190614337565b600b8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611088612323565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611144578281101561112f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611126906144f5565b60405180910390fd5b6111438561113b612323565b85840361232b565b5b61114f8585856124f6565b60019150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b60006009905090565b600061123261119d612323565b8484600160006111ab612323565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122d91906141a8565b61232b565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60009054906101000a900460ff1681565b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132a612323565b73ffffffffffffffffffffffffffffffffffffffff161461134a57600080fd5b816013819055508060128190555060125460135461136891906141a8565b601181905550600660115411156113b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ab90614561565b60405180910390fd5b5050565b60145481565b6113c6612323565b73ffffffffffffffffffffffffffffffffffffffff166113e461187c565b73ffffffffffffffffffffffffffffffffffffffff161461143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190614317565b60405180910390fd5b60005b81518110156114cb5760006006600084848151811061145f5761145e614581565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114c3906145b0565b91505061143d565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61151f612323565b73ffffffffffffffffffffffffffffffffffffffff1661153d61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90614317565b60405180910390fd5b61159d6000613296565b565b60006115a9612323565b73ffffffffffffffffffffffffffffffffffffffff166115c761187c565b73ffffffffffffffffffffffffffffffffffffffff161461161d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161490614317565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055506001905090565b611647612323565b73ffffffffffffffffffffffffffffffffffffffff1661166561187c565b73ffffffffffffffffffffffffffffffffffffffff16146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290614317565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61171e612323565b73ffffffffffffffffffffffffffffffffffffffff1661173c61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178990614317565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506117c0814261335c90919063ffffffff16565b60088190555050565b6117d1612323565b73ffffffffffffffffffffffffffffffffffffffff166117ef61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90614317565b60405180910390fd5b6001600e60016101000a81548160ff02191690831515021790555061187460024261335c90919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546118b590614299565b80601f01602080910402602001604051908101604052809291908181526020018280546118e190614299565b801561192e5780601f106119035761010080835404028352916020019161192e565b820191906000526020600020905b81548152906001019060200180831161191157829003601f168201915b5050505050905090565b611940612323565b73ffffffffffffffffffffffffffffffffffffffff1661195e61187c565b73ffffffffffffffffffffffffffffffffffffffff16146119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab90614317565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a9061466b565b60405180910390fd5b611a4d8282613372565b5050565b60125481565b60175481565b60165481565b60008060016000611a72612323565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b26906146fd565b60405180910390fd5b611b43611b3a612323565b8585840361232b565b600191505092915050565b6000611b62611b5b612323565b84846124f6565b6001905092915050565b60155481565b601b6020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b611bad612323565b73ffffffffffffffffffffffffffffffffffffffff16611bcb61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1890614317565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611c84612323565b73ffffffffffffffffffffffffffffffffffffffff16611ca261187c565b73ffffffffffffffffffffffffffffffffffffffff1614611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef90614317565b60405180910390fd5b670de0b6b3a76400006103e86005611d0e610de1565b611d189190614337565b611d2291906143c0565b611d2c91906143c0565b811015611d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d659061478f565b60405180910390fd5b670de0b6b3a764000081611d829190614337565b600d8190555050565b601060009054906101000a900460ff1681565b600b5481565b6000611dae612323565b73ffffffffffffffffffffffffffffffffffffffff16611dcc61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1990614317565b60405180910390fd5b620186a06001611e30610de1565b611e3a9190614337565b611e4491906143c0565b821015611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d90614821565b60405180910390fd5b6103e86005611e93610de1565b611e9d9190614337565b611ea791906143c0565b821115611ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee0906148b3565b60405180910390fd5b81600c8190555060019050919050565b611f01612323565b73ffffffffffffffffffffffffffffffffffffffff16611f1f61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6c90614317565b60405180910390fd5b60005b81518110156120e8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611fcb57611fca614581565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415801561205d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1682828151811061203c5761203b614581565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156120d55760016006600084848151811061207b5761207a614581565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806120e0906145b0565b915050611f78565b5050565b60115481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b60135481565b600061218f612323565b73ffffffffffffffffffffffffffffffffffffffff166121ad61187c565b73ffffffffffffffffffffffffffffffffffffffff1614612203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fa90614317565b60405180910390fd5b6000601060006101000a81548160ff0219169083151502179055506001905090565b61222d612323565b73ffffffffffffffffffffffffffffffffffffffff1661224b61187c565b73ffffffffffffffffffffffffffffffffffffffff16146122a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229890614317565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230890614945565b60405180910390fd5b61231a81613296565b50565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561239b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612392906149d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290614a69565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124e99190613e40565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255d90614afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd90614b8d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a90614c45565b60405180910390fd5b600081141561267d57612678838360006133cd565b613291565b6008544210156126e0576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600e60009054906101000a900460ff1615612da3576126fd61187c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561276b575061273b61187c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127a45750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127de575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127f75750600760009054906101000a900460ff16155b15612da257600e60019054906101000a900460ff166128f157601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128b15750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6128f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e790614cb1565b60405180910390fd5b5b601060009054906101000a900460ff1615612ab95761290e61187c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561299557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129ed57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612ab85743600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a90614d69565b60405180910390fd5b43600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b5c5750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c0357600b54811115612ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9d90614dfb565b60405180910390fd5b600d54612bb2836114cf565b82612bbd91906141a8565b1115612bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf590614e67565b60405180910390fd5b612da1565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ca65750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf557600b54811115612cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce790614ef9565b60405180910390fd5b612da0565b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d9f57600d54612d52836114cf565b82612d5d91906141a8565b1115612d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9590614e67565b60405180910390fd5b5b5b5b5b5b6000612dae306114cf565b90506000600c548210159050808015612dd45750600760009054906101000a900460ff16155b8015612e2a5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e805750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ed65750601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f1a576001600760006101000a81548160ff021916908315150217905550612efe61364e565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612fd05750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612fda57600090505b600080821561328057601b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561303e57506000601454115b156130f3576000600760016101000a81548160ff02191690831515021790555061308660646130786014548961373890919063ffffffff16565b61374e90919063ffffffff16565b9050601454601654826130999190614337565b6130a391906143c0565b601760008282546130b491906141a8565b92505081905550601454601554826130cc9190614337565b6130d691906143c0565b601860008282546130e791906141a8565b9250508190555061322d565b601b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561314e57506000601154115b1561322c576001600760016101000a81548160ff02191690831515021790555061319660646131886011548961373890919063ffffffff16565b61374e90919063ffffffff16565b9150601454601254836131a99190614337565b6131b391906143c0565b601760008282546131c491906141a8565b92505081905550601454601354836131dc9190614337565b6131e691906143c0565b601860008282546131f791906141a8565b925050819055506132098830846133cd565b61321530601854613764565b600060188190555081866132299190614f19565b95505b5b600060145411801561324c5750600760019054906101000a900460ff16155b1561327f5761325c8830836133cd565b61326830601854613764565b6000601881905550808661327c9190614f19565b95505b5b61328b8888886133cd565b50505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818361336a91906141a8565b905092915050565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561343d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343490614afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156134ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134a490614b8d565b60405180910390fd5b6134b883838361392a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561353e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353590614fbf565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546135d191906141a8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136359190613e40565b60405180910390a361364884848461392f565b50505050565b6000613659306114cf565b905060008082141561366c575050613736565b6014600c5461367b9190614337565b821115613694576014600c546136919190614337565b91505b61369d82613934565b6000601781905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516136eb90615010565b60006040518083038185875af1925050503d8060008114613728576040519150601f19603f3d011682016040523d82523d6000602084013e61372d565b606091505b50508091505050505b565b600081836137469190614337565b905092915050565b6000818361375c91906143c0565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156137d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137cb90615097565b60405180910390fd5b6137e08260008361392a565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385d90615129565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002546138b99190614f19565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161391d9190613e40565b60405180910390a3505050565b505050565b505050565b6000600267ffffffffffffffff81111561395157613950613f41565b5b60405190808252806020026020018201604052801561397f5781602001602082028036833780820191505090505b509050308160008151811061399757613996614581565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a60919061515e565b81600181518110613a7457613a73614581565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ad9307f00000000000000000000000000000000000000000000000000000000000000008461232b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b3b959493929190615284565b600060405180830381600087803b158015613b5557600080fd5b505af1158015613b69573d6000803e3d6000fd5b505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613b9881613b85565b8114613ba357600080fd5b50565b600081359050613bb581613b8f565b92915050565b60008060408385031215613bd257613bd1613b7b565b5b6000613be085828601613ba6565b9250506020613bf185828601613ba6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c35578082015181840152602081019050613c1a565b83811115613c44576000848401525b50505050565b6000601f19601f8301169050919050565b6000613c6682613bfb565b613c708185613c06565b9350613c80818560208601613c17565b613c8981613c4a565b840191505092915050565b60006020820190508181036000830152613cae8184613c5b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ce182613cb6565b9050919050565b613cf181613cd6565b8114613cfc57600080fd5b50565b600081359050613d0e81613ce8565b92915050565b60008060408385031215613d2b57613d2a613b7b565b5b6000613d3985828601613cff565b9250506020613d4a85828601613ba6565b9150509250929050565b60008115159050919050565b613d6981613d54565b82525050565b6000602082019050613d846000830184613d60565b92915050565b600060208284031215613da057613d9f613b7b565b5b6000613dae84828501613cff565b91505092915050565b6000819050919050565b6000613ddc613dd7613dd284613cb6565b613db7565b613cb6565b9050919050565b6000613dee82613dc1565b9050919050565b6000613e0082613de3565b9050919050565b613e1081613df5565b82525050565b6000602082019050613e2b6000830184613e07565b92915050565b613e3a81613b85565b82525050565b6000602082019050613e556000830184613e31565b92915050565b600060208284031215613e7157613e70613b7b565b5b6000613e7f84828501613ba6565b91505092915050565b600080600060608486031215613ea157613ea0613b7b565b5b6000613eaf86828701613cff565b9350506020613ec086828701613cff565b9250506040613ed186828701613ba6565b9150509250925092565b613ee481613cd6565b82525050565b6000602082019050613eff6000830184613edb565b92915050565b600060ff82169050919050565b613f1b81613f05565b82525050565b6000602082019050613f366000830184613f12565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613f7982613c4a565b810181811067ffffffffffffffff82111715613f9857613f97613f41565b5b80604052505050565b6000613fab613b71565b9050613fb78282613f70565b919050565b600067ffffffffffffffff821115613fd757613fd6613f41565b5b602082029050602081019050919050565b600080fd5b6000614000613ffb84613fbc565b613fa1565b9050808382526020820190506020840283018581111561402357614022613fe8565b5b835b8181101561404c57806140388882613cff565b845260208401935050602081019050614025565b5050509392505050565b600082601f83011261406b5761406a613f3c565b5b813561407b848260208601613fed565b91505092915050565b60006020828403121561409a57614099613b7b565b5b600082013567ffffffffffffffff8111156140b8576140b7613b80565b5b6140c484828501614056565b91505092915050565b6140d681613d54565b81146140e157600080fd5b50565b6000813590506140f3816140cd565b92915050565b600080604083850312156141105761410f613b7b565b5b600061411e85828601613cff565b925050602061412f858286016140e4565b9150509250929050565b600080604083850312156141505761414f613b7b565b5b600061415e85828601613cff565b925050602061416f85828601613cff565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006141b382613b85565b91506141be83613b85565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156141f3576141f2614179565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000614234601d83613c06565b915061423f826141fe565b602082019050919050565b6000602082019050818103600083015261426381614227565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806142b157607f821691505b602082108114156142c5576142c461426a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614301602083613c06565b915061430c826142cb565b602082019050919050565b60006020820190508181036000830152614330816142f4565b9050919050565b600061434282613b85565b915061434d83613b85565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561438657614385614179565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143cb82613b85565b91506143d683613b85565b9250826143e6576143e5614391565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b600061444d602f83613c06565b9150614458826143f1565b604082019050919050565b6000602082019050818103600083015261447c81614440565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006144df602883613c06565b91506144ea82614483565b604082019050919050565b6000602082019050818103600083015261450e816144d2565b9050919050565b7f4d757374206b6565702066656573206174203625206f72206c65737300000000600082015250565b600061454b601c83613c06565b915061455682614515565b602082019050919050565b6000602082019050818103600083015261457a8161453e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006145bb82613b85565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156145ee576145ed614179565b5b600182019050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614655603983613c06565b9150614660826145f9565b604082019050919050565b6000602082019050818103600083015261468481614648565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006146e7602583613c06565b91506146f28261468b565b604082019050919050565b60006020820190508181036000830152614716816146da565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000614779602483613c06565b91506147848261471d565b604082019050919050565b600060208201905081810360008301526147a88161476c565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b600061480b603583613c06565b9150614816826147af565b604082019050919050565b6000602082019050818103600083015261483a816147fe565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061489d603483613c06565b91506148a882614841565b604082019050919050565b600060208201905081810360008301526148cc81614890565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061492f602683613c06565b915061493a826148d3565b604082019050919050565b6000602082019050818103600083015261495e81614922565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149c1602483613c06565b91506149cc82614965565b604082019050919050565b600060208201905081810360008301526149f0816149b4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a53602283613c06565b9150614a5e826149f7565b604082019050919050565b60006020820190508181036000830152614a8281614a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614ae5602583613c06565b9150614af082614a89565b604082019050919050565b60006020820190508181036000830152614b1481614ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614b77602383613c06565b9150614b8282614b1b565b604082019050919050565b60006020820190508181036000830152614ba681614b6a565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b6000614c2f605183613c06565b9150614c3a82614bad565b606082019050919050565b60006020820190508181036000830152614c5e81614c22565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614c9b601683613c06565b9150614ca682614c65565b602082019050919050565b60006020820190508181036000830152614cca81614c8e565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614d53604983613c06565b9150614d5e82614cd1565b606082019050919050565b60006020820190508181036000830152614d8281614d46565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614de5603583613c06565b9150614df082614d89565b604082019050919050565b60006020820190508181036000830152614e1481614dd8565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614e51601383613c06565b9150614e5c82614e1b565b602082019050919050565b60006020820190508181036000830152614e8081614e44565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614ee3603683613c06565b9150614eee82614e87565b604082019050919050565b60006020820190508181036000830152614f1281614ed6565b9050919050565b6000614f2482613b85565b9150614f2f83613b85565b925082821015614f4257614f41614179565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614fa9602683613c06565b9150614fb482614f4d565b604082019050919050565b60006020820190508181036000830152614fd881614f9c565b9050919050565b600081905092915050565b50565b6000614ffa600083614fdf565b915061500582614fea565b600082019050919050565b600061501b82614fed565b9150819050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000615081602183613c06565b915061508c82615025565b604082019050919050565b600060208201905081810360008301526150b081615074565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000615113602283613c06565b915061511e826150b7565b604082019050919050565b6000602082019050818103600083015261514281615106565b9050919050565b60008151905061515881613ce8565b92915050565b60006020828403121561517457615173613b7b565b5b600061518284828501615149565b91505092915050565b6000819050919050565b60006151b06151ab6151a68461518b565b613db7565b613b85565b9050919050565b6151c081615195565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6151fb81613cd6565b82525050565b600061520d83836151f2565b60208301905092915050565b6000602082019050919050565b6000615231826151c6565b61523b81856151d1565b9350615246836151e2565b8060005b8381101561527757815161525e8882615201565b975061526983615219565b92505060018101905061524a565b5085935050505092915050565b600060a0820190506152996000830188613e31565b6152a660208301876151b7565b81810360408301526152b88186615226565b90506152c76060830185613edb565b6152d46080830184613e31565b969550505050505056fea2646970667358221220f8c799097893a82d23ec83dae4fcecacbc28bda8aecf3d9176d9d2398fc5dc9064736f6c634300080b0033000000000000000000000000a898fcb01ac202c00277dce3384b52739dd85b49

Deployed Bytecode

0x6080604052600436106102e85760003560e01c806382aa7c6811610190578063c0246668116100dc578063d85ba06311610095578063e71dc3f51161006f578063e71dc3f514610b73578063e884f26014610b9e578063f2fde38b14610bc9578063f8b45b0514610bf2576102ef565b8063d85ba06314610ae0578063dd62ed3e14610b0b578063e2f4560514610b48576102ef565b8063c0246668146109d2578063c18bc195146109fb578063c876d0b914610a24578063c8c8ebe414610a4f578063d257b34f14610a7a578063d34628cc14610ab7576102ef565b80639fccce3211610149578063a9059cbb11610123578063a9059cbb14610902578063adb873bd1461093f578063b62496f51461096a578063bbc0c742146109a7576102ef565b80639fccce321461086f578063a0d82dc51461089a578063a457c2d7146108c5576102ef565b806382aa7c68146107855780638a8c523c146107ae5780638da5cb5b146107c557806395d89b41146107f05780639a7a23d61461081b5780639c3b4fdc14610844576102ef565b8063313ce5671161024f57806366ca9b831161020857806370a08231116101e257806370a08231146106dd578063715018a61461071a578063751039fc146107315780637571336a1461075c576102ef565b806366ca9b83146106605780636a486a8e146106895780636c3bbfd7146106b4576102ef565b8063313ce5671461052857806339509351146105535780633bbac5791461059057806349bd5a5e146105cd5780634a62bb65146105f85780634fbee19314610623576102ef565b80631816467f116102a15780631816467f146104185780631d77785614610441578063203e727e1461046c57806323b872dd14610495578063275b56c5146104d257806327c8f835146104fd576102ef565b806302dbd8f8146102f457806306fdde031461031d578063095ea7b31461034857806310d5de53146103855780631694505e146103c257806318160ddd146103ed576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b5061031b60048036038101906103169190613bbb565b610c1d565b005b34801561032957600080fd5b50610332610ced565b60405161033f9190613c94565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190613d14565b610d7f565b60405161037c9190613d6f565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190613d8a565b610d9d565b6040516103b99190613d6f565b60405180910390f35b3480156103ce57600080fd5b506103d7610dbd565b6040516103e49190613e16565b60405180910390f35b3480156103f957600080fd5b50610402610de1565b60405161040f9190613e40565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190613d8a565b610deb565b005b34801561044d57600080fd5b50610456610f27565b6040516104639190613e40565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190613e5b565b610f2d565b005b3480156104a157600080fd5b506104bc60048036038101906104b79190613e88565b61103c565b6040516104c99190613d6f565b60405180910390f35b3480156104de57600080fd5b506104e761115b565b6040516104f49190613eea565b60405180910390f35b34801561050957600080fd5b50610512611181565b60405161051f9190613eea565b60405180910390f35b34801561053457600080fd5b5061053d611187565b60405161054a9190613f21565b60405180910390f35b34801561055f57600080fd5b5061057a60048036038101906105759190613d14565b611190565b6040516105879190613d6f565b60405180910390f35b34801561059c57600080fd5b506105b760048036038101906105b29190613d8a565b61123c565b6040516105c49190613d6f565b60405180910390f35b3480156105d957600080fd5b506105e261125c565b6040516105ef9190613eea565b60405180910390f35b34801561060457600080fd5b5061060d611280565b60405161061a9190613d6f565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190613d8a565b611293565b6040516106579190613d6f565b60405180910390f35b34801561066c57600080fd5b5061068760048036038101906106829190613bbb565b6112e9565b005b34801561069557600080fd5b5061069e6113b8565b6040516106ab9190613e40565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d69190614084565b6113be565b005b3480156106e957600080fd5b5061070460048036038101906106ff9190613d8a565b6114cf565b6040516107119190613e40565b60405180910390f35b34801561072657600080fd5b5061072f611517565b005b34801561073d57600080fd5b5061074661159f565b6040516107539190613d6f565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e91906140f9565b61163f565b005b34801561079157600080fd5b506107ac60048036038101906107a79190613e5b565b611716565b005b3480156107ba57600080fd5b506107c36117c9565b005b3480156107d157600080fd5b506107da61187c565b6040516107e79190613eea565b60405180910390f35b3480156107fc57600080fd5b506108056118a6565b6040516108129190613c94565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d91906140f9565b611938565b005b34801561085057600080fd5b50610859611a51565b6040516108669190613e40565b60405180910390f35b34801561087b57600080fd5b50610884611a57565b6040516108919190613e40565b60405180910390f35b3480156108a657600080fd5b506108af611a5d565b6040516108bc9190613e40565b60405180910390f35b3480156108d157600080fd5b506108ec60048036038101906108e79190613d14565b611a63565b6040516108f99190613d6f565b60405180910390f35b34801561090e57600080fd5b5061092960048036038101906109249190613d14565b611b4e565b6040516109369190613d6f565b60405180910390f35b34801561094b57600080fd5b50610954611b6c565b6040516109619190613e40565b60405180910390f35b34801561097657600080fd5b50610991600480360381019061098c9190613d8a565b611b72565b60405161099e9190613d6f565b60405180910390f35b3480156109b357600080fd5b506109bc611b92565b6040516109c99190613d6f565b60405180910390f35b3480156109de57600080fd5b506109f960048036038101906109f491906140f9565b611ba5565b005b348015610a0757600080fd5b50610a226004803603810190610a1d9190613e5b565b611c7c565b005b348015610a3057600080fd5b50610a39611d8b565b604051610a469190613d6f565b60405180910390f35b348015610a5b57600080fd5b50610a64611d9e565b604051610a719190613e40565b60405180910390f35b348015610a8657600080fd5b50610aa16004803603810190610a9c9190613e5b565b611da4565b604051610aae9190613d6f565b60405180910390f35b348015610ac357600080fd5b50610ade6004803603810190610ad99190614084565b611ef9565b005b348015610aec57600080fd5b50610af56120ec565b604051610b029190613e40565b60405180910390f35b348015610b1757600080fd5b50610b326004803603810190610b2d9190614139565b6120f2565b604051610b3f9190613e40565b60405180910390f35b348015610b5457600080fd5b50610b5d612179565b604051610b6a9190613e40565b60405180910390f35b348015610b7f57600080fd5b50610b8861217f565b604051610b959190613e40565b60405180910390f35b348015610baa57600080fd5b50610bb3612185565b604051610bc09190613d6f565b60405180910390f35b348015610bd557600080fd5b50610bf06004803603810190610beb9190613d8a565b612225565b005b348015610bfe57600080fd5b50610c0761231d565b604051610c149190613e40565b60405180910390f35b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5e612323565b73ffffffffffffffffffffffffffffffffffffffff1614610c7e57600080fd5b8160158190555080601681905550601654601554610c9c91906141a8565b6014819055506107d06014541115610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09061424a565b60405180910390fd5b5050565b606060038054610cfc90614299565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2890614299565b8015610d755780601f10610d4a57610100808354040283529160200191610d75565b820191906000526020600020905b815481529060010190602001808311610d5857829003601f168201915b5050505050905090565b6000610d93610d8c612323565b848461232b565b6001905092915050565b601a6020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610df3612323565b73ffffffffffffffffffffffffffffffffffffffff16610e1161187c565b73ffffffffffffffffffffffffffffffffffffffff1614610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e90614317565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60185481565b610f35612323565b73ffffffffffffffffffffffffffffffffffffffff16610f5361187c565b73ffffffffffffffffffffffffffffffffffffffff1614610fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa090614317565b60405180910390fd5b670de0b6b3a76400006103e86001610fbf610de1565b610fc99190614337565b610fd391906143c0565b610fdd91906143c0565b81101561101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690614463565b60405180910390fd5b670de0b6b3a7640000816110339190614337565b600b8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611088612323565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611144578281101561112f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611126906144f5565b60405180910390fd5b6111438561113b612323565b85840361232b565b5b61114f8585856124f6565b60019150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b60006009905090565b600061123261119d612323565b8484600160006111ab612323565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461122d91906141a8565b61232b565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007684e87c234688f91e4eec88378d422efd67194c81565b600e60009054906101000a900460ff1681565b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661132a612323565b73ffffffffffffffffffffffffffffffffffffffff161461134a57600080fd5b816013819055508060128190555060125460135461136891906141a8565b601181905550600660115411156113b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ab90614561565b60405180910390fd5b5050565b60145481565b6113c6612323565b73ffffffffffffffffffffffffffffffffffffffff166113e461187c565b73ffffffffffffffffffffffffffffffffffffffff161461143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190614317565b60405180910390fd5b60005b81518110156114cb5760006006600084848151811061145f5761145e614581565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114c3906145b0565b91505061143d565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61151f612323565b73ffffffffffffffffffffffffffffffffffffffff1661153d61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90614317565b60405180910390fd5b61159d6000613296565b565b60006115a9612323565b73ffffffffffffffffffffffffffffffffffffffff166115c761187c565b73ffffffffffffffffffffffffffffffffffffffff161461161d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161490614317565b60405180910390fd5b6000600e60006101000a81548160ff0219169083151502179055506001905090565b611647612323565b73ffffffffffffffffffffffffffffffffffffffff1661166561187c565b73ffffffffffffffffffffffffffffffffffffffff16146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290614317565b60405180910390fd5b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61171e612323565b73ffffffffffffffffffffffffffffffffffffffff1661173c61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178990614317565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506117c0814261335c90919063ffffffff16565b60088190555050565b6117d1612323565b73ffffffffffffffffffffffffffffffffffffffff166117ef61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90614317565b60405180910390fd5b6001600e60016101000a81548160ff02191690831515021790555061187460024261335c90919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546118b590614299565b80601f01602080910402602001604051908101604052809291908181526020018280546118e190614299565b801561192e5780601f106119035761010080835404028352916020019161192e565b820191906000526020600020905b81548152906001019060200180831161191157829003601f168201915b5050505050905090565b611940612323565b73ffffffffffffffffffffffffffffffffffffffff1661195e61187c565b73ffffffffffffffffffffffffffffffffffffffff16146119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab90614317565b60405180910390fd5b7f0000000000000000000000007684e87c234688f91e4eec88378d422efd67194c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a9061466b565b60405180910390fd5b611a4d8282613372565b5050565b60125481565b60175481565b60165481565b60008060016000611a72612323565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b26906146fd565b60405180910390fd5b611b43611b3a612323565b8585840361232b565b600191505092915050565b6000611b62611b5b612323565b84846124f6565b6001905092915050565b60155481565b601b6020528060005260406000206000915054906101000a900460ff1681565b600e60019054906101000a900460ff1681565b611bad612323565b73ffffffffffffffffffffffffffffffffffffffff16611bcb61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1890614317565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611c84612323565b73ffffffffffffffffffffffffffffffffffffffff16611ca261187c565b73ffffffffffffffffffffffffffffffffffffffff1614611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef90614317565b60405180910390fd5b670de0b6b3a76400006103e86005611d0e610de1565b611d189190614337565b611d2291906143c0565b611d2c91906143c0565b811015611d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d659061478f565b60405180910390fd5b670de0b6b3a764000081611d829190614337565b600d8190555050565b601060009054906101000a900460ff1681565b600b5481565b6000611dae612323565b73ffffffffffffffffffffffffffffffffffffffff16611dcc61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1990614317565b60405180910390fd5b620186a06001611e30610de1565b611e3a9190614337565b611e4491906143c0565b821015611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d90614821565b60405180910390fd5b6103e86005611e93610de1565b611e9d9190614337565b611ea791906143c0565b821115611ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee0906148b3565b60405180910390fd5b81600c8190555060019050919050565b611f01612323565b73ffffffffffffffffffffffffffffffffffffffff16611f1f61187c565b73ffffffffffffffffffffffffffffffffffffffff1614611f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6c90614317565b60405180910390fd5b60005b81518110156120e8577f0000000000000000000000007684e87c234688f91e4eec88378d422efd67194c73ffffffffffffffffffffffffffffffffffffffff16828281518110611fcb57611fca614581565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415801561205d57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1682828151811061203c5761203b614581565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156120d55760016006600084848151811061207b5761207a614581565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806120e0906145b0565b915050611f78565b5050565b60115481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b60135481565b600061218f612323565b73ffffffffffffffffffffffffffffffffffffffff166121ad61187c565b73ffffffffffffffffffffffffffffffffffffffff1614612203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fa90614317565b60405180910390fd5b6000601060006101000a81548160ff0219169083151502179055506001905090565b61222d612323565b73ffffffffffffffffffffffffffffffffffffffff1661224b61187c565b73ffffffffffffffffffffffffffffffffffffffff16146122a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229890614317565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230890614945565b60405180910390fd5b61231a81613296565b50565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561239b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612392906149d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290614a69565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124e99190613e40565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255d90614afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd90614b8d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a90614c45565b60405180910390fd5b600081141561267d57612678838360006133cd565b613291565b6008544210156126e0576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600e60009054906101000a900460ff1615612da3576126fd61187c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561276b575061273b61187c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127a45750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127de575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127f75750600760009054906101000a900460ff16155b15612da257600e60019054906101000a900460ff166128f157601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128b15750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6128f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e790614cb1565b60405180910390fd5b5b601060009054906101000a900460ff1615612ab95761290e61187c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561299557507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129ed57507f0000000000000000000000007684e87c234688f91e4eec88378d422efd67194c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612ab85743600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6a90614d69565b60405180910390fd5b43600f60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b5c5750601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c0357600b54811115612ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9d90614dfb565b60405180910390fd5b600d54612bb2836114cf565b82612bbd91906141a8565b1115612bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf590614e67565b60405180910390fd5b612da1565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ca65750601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf557600b54811115612cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce790614ef9565b60405180910390fd5b612da0565b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612d9f57600d54612d52836114cf565b82612d5d91906141a8565b1115612d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9590614e67565b60405180910390fd5b5b5b5b5b5b6000612dae306114cf565b90506000600c548210159050808015612dd45750600760009054906101000a900460ff16155b8015612e2a5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e805750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ed65750601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f1a576001600760006101000a81548160ff021916908315150217905550612efe61364e565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612fd05750601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612fda57600090505b600080821561328057601b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561303e57506000601454115b156130f3576000600760016101000a81548160ff02191690831515021790555061308660646130786014548961373890919063ffffffff16565b61374e90919063ffffffff16565b9050601454601654826130999190614337565b6130a391906143c0565b601760008282546130b491906141a8565b92505081905550601454601554826130cc9190614337565b6130d691906143c0565b601860008282546130e791906141a8565b9250508190555061322d565b601b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561314e57506000601154115b1561322c576001600760016101000a81548160ff02191690831515021790555061319660646131886011548961373890919063ffffffff16565b61374e90919063ffffffff16565b9150601454601254836131a99190614337565b6131b391906143c0565b601760008282546131c491906141a8565b92505081905550601454601354836131dc9190614337565b6131e691906143c0565b601860008282546131f791906141a8565b925050819055506132098830846133cd565b61321530601854613764565b600060188190555081866132299190614f19565b95505b5b600060145411801561324c5750600760019054906101000a900460ff16155b1561327f5761325c8830836133cd565b61326830601854613764565b6000601881905550808661327c9190614f19565b95505b5b61328b8888886133cd565b50505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818361336a91906141a8565b905092915050565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561343d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343490614afb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156134ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134a490614b8d565b60405180910390fd5b6134b883838361392a565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561353e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353590614fbf565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546135d191906141a8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136359190613e40565b60405180910390a361364884848461392f565b50505050565b6000613659306114cf565b905060008082141561366c575050613736565b6014600c5461367b9190614337565b821115613694576014600c546136919190614337565b91505b61369d82613934565b6000601781905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516136eb90615010565b60006040518083038185875af1925050503d8060008114613728576040519150601f19603f3d011682016040523d82523d6000602084013e61372d565b606091505b50508091505050505b565b600081836137469190614337565b905092915050565b6000818361375c91906143c0565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156137d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137cb90615097565b60405180910390fd5b6137e08260008361392a565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385d90615129565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002546138b99190614f19565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161391d9190613e40565b60405180910390a3505050565b505050565b505050565b6000600267ffffffffffffffff81111561395157613950613f41565b5b60405190808252806020026020018201604052801561397f5781602001602082028036833780820191505090505b509050308160008151811061399757613996614581565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a60919061515e565b81600181518110613a7457613a73614581565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ad9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461232b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613b3b959493929190615284565b600060405180830381600087803b158015613b5557600080fd5b505af1158015613b69573d6000803e3d6000fd5b505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613b9881613b85565b8114613ba357600080fd5b50565b600081359050613bb581613b8f565b92915050565b60008060408385031215613bd257613bd1613b7b565b5b6000613be085828601613ba6565b9250506020613bf185828601613ba6565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c35578082015181840152602081019050613c1a565b83811115613c44576000848401525b50505050565b6000601f19601f8301169050919050565b6000613c6682613bfb565b613c708185613c06565b9350613c80818560208601613c17565b613c8981613c4a565b840191505092915050565b60006020820190508181036000830152613cae8184613c5b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ce182613cb6565b9050919050565b613cf181613cd6565b8114613cfc57600080fd5b50565b600081359050613d0e81613ce8565b92915050565b60008060408385031215613d2b57613d2a613b7b565b5b6000613d3985828601613cff565b9250506020613d4a85828601613ba6565b9150509250929050565b60008115159050919050565b613d6981613d54565b82525050565b6000602082019050613d846000830184613d60565b92915050565b600060208284031215613da057613d9f613b7b565b5b6000613dae84828501613cff565b91505092915050565b6000819050919050565b6000613ddc613dd7613dd284613cb6565b613db7565b613cb6565b9050919050565b6000613dee82613dc1565b9050919050565b6000613e0082613de3565b9050919050565b613e1081613df5565b82525050565b6000602082019050613e2b6000830184613e07565b92915050565b613e3a81613b85565b82525050565b6000602082019050613e556000830184613e31565b92915050565b600060208284031215613e7157613e70613b7b565b5b6000613e7f84828501613ba6565b91505092915050565b600080600060608486031215613ea157613ea0613b7b565b5b6000613eaf86828701613cff565b9350506020613ec086828701613cff565b9250506040613ed186828701613ba6565b9150509250925092565b613ee481613cd6565b82525050565b6000602082019050613eff6000830184613edb565b92915050565b600060ff82169050919050565b613f1b81613f05565b82525050565b6000602082019050613f366000830184613f12565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613f7982613c4a565b810181811067ffffffffffffffff82111715613f9857613f97613f41565b5b80604052505050565b6000613fab613b71565b9050613fb78282613f70565b919050565b600067ffffffffffffffff821115613fd757613fd6613f41565b5b602082029050602081019050919050565b600080fd5b6000614000613ffb84613fbc565b613fa1565b9050808382526020820190506020840283018581111561402357614022613fe8565b5b835b8181101561404c57806140388882613cff565b845260208401935050602081019050614025565b5050509392505050565b600082601f83011261406b5761406a613f3c565b5b813561407b848260208601613fed565b91505092915050565b60006020828403121561409a57614099613b7b565b5b600082013567ffffffffffffffff8111156140b8576140b7613b80565b5b6140c484828501614056565b91505092915050565b6140d681613d54565b81146140e157600080fd5b50565b6000813590506140f3816140cd565b92915050565b600080604083850312156141105761410f613b7b565b5b600061411e85828601613cff565b925050602061412f858286016140e4565b9150509250929050565b600080604083850312156141505761414f613b7b565b5b600061415e85828601613cff565b925050602061416f85828601613cff565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006141b382613b85565b91506141be83613b85565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156141f3576141f2614179565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000614234601d83613c06565b915061423f826141fe565b602082019050919050565b6000602082019050818103600083015261426381614227565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806142b157607f821691505b602082108114156142c5576142c461426a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614301602083613c06565b915061430c826142cb565b602082019050919050565b60006020820190508181036000830152614330816142f4565b9050919050565b600061434282613b85565b915061434d83613b85565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561438657614385614179565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143cb82613b85565b91506143d683613b85565b9250826143e6576143e5614391565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b600061444d602f83613c06565b9150614458826143f1565b604082019050919050565b6000602082019050818103600083015261447c81614440565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006144df602883613c06565b91506144ea82614483565b604082019050919050565b6000602082019050818103600083015261450e816144d2565b9050919050565b7f4d757374206b6565702066656573206174203625206f72206c65737300000000600082015250565b600061454b601c83613c06565b915061455682614515565b602082019050919050565b6000602082019050818103600083015261457a8161453e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006145bb82613b85565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156145ee576145ed614179565b5b600182019050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614655603983613c06565b9150614660826145f9565b604082019050919050565b6000602082019050818103600083015261468481614648565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006146e7602583613c06565b91506146f28261468b565b604082019050919050565b60006020820190508181036000830152614716816146da565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000614779602483613c06565b91506147848261471d565b604082019050919050565b600060208201905081810360008301526147a88161476c565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b600061480b603583613c06565b9150614816826147af565b604082019050919050565b6000602082019050818103600083015261483a816147fe565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061489d603483613c06565b91506148a882614841565b604082019050919050565b600060208201905081810360008301526148cc81614890565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061492f602683613c06565b915061493a826148d3565b604082019050919050565b6000602082019050818103600083015261495e81614922565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149c1602483613c06565b91506149cc82614965565b604082019050919050565b600060208201905081810360008301526149f0816149b4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614a53602283613c06565b9150614a5e826149f7565b604082019050919050565b60006020820190508181036000830152614a8281614a46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614ae5602583613c06565b9150614af082614a89565b604082019050919050565b60006020820190508181036000830152614b1481614ad8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614b77602383613c06565b9150614b8282614b1b565b604082019050919050565b60006020820190508181036000830152614ba681614b6a565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b6000614c2f605183613c06565b9150614c3a82614bad565b606082019050919050565b60006020820190508181036000830152614c5e81614c22565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000614c9b601683613c06565b9150614ca682614c65565b602082019050919050565b60006020820190508181036000830152614cca81614c8e565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614d53604983613c06565b9150614d5e82614cd1565b606082019050919050565b60006020820190508181036000830152614d8281614d46565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614de5603583613c06565b9150614df082614d89565b604082019050919050565b60006020820190508181036000830152614e1481614dd8565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614e51601383613c06565b9150614e5c82614e1b565b602082019050919050565b60006020820190508181036000830152614e8081614e44565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614ee3603683613c06565b9150614eee82614e87565b604082019050919050565b60006020820190508181036000830152614f1281614ed6565b9050919050565b6000614f2482613b85565b9150614f2f83613b85565b925082821015614f4257614f41614179565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614fa9602683613c06565b9150614fb482614f4d565b604082019050919050565b60006020820190508181036000830152614fd881614f9c565b9050919050565b600081905092915050565b50565b6000614ffa600083614fdf565b915061500582614fea565b600082019050919050565b600061501b82614fed565b9150819050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000615081602183613c06565b915061508c82615025565b604082019050919050565b600060208201905081810360008301526150b081615074565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000615113602283613c06565b915061511e826150b7565b604082019050919050565b6000602082019050818103600083015261514281615106565b9050919050565b60008151905061515881613ce8565b92915050565b60006020828403121561517457615173613b7b565b5b600061518284828501615149565b91505092915050565b6000819050919050565b60006151b06151ab6151a68461518b565b613db7565b613b85565b9050919050565b6151c081615195565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6151fb81613cd6565b82525050565b600061520d83836151f2565b60208301905092915050565b6000602082019050919050565b6000615231826151c6565b61523b81856151d1565b9350615246836151e2565b8060005b8381101561527757815161525e8882615201565b975061526983615219565b92505060018101905061524a565b5085935050505092915050565b600060a0820190506152996000830188613e31565b6152a660208301876151b7565b81810360408301526152b88186615226565b90506152c76060830185613edb565b6152d46080830184613e31565b969550505050505056fea2646970667358221220f8c799097893a82d23ec83dae4fcecacbc28bda8aecf3d9176d9d2398fc5dc9064736f6c634300080b0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000a898fcb01ac202c00277dce3384b52739dd85b49

-----Decoded View---------------
Arg [0] : depAddr (address): 0xA898fCB01aC202C00277Dce3384B52739dD85B49

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a898fcb01ac202c00277dce3384b52739dd85b49


Deployed Bytecode Sourcemap

11647:13574:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17306:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3001:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3914:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12952:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11722:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3321:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18382:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12770:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16379:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4091:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12055:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11825:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3221:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4672:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11887:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11780;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12215:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18550:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16998:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12633:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18966:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3437:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10430:103;;;;;;;;;;;;;:::i;:::-;;15589:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16842:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18080:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15404:130;;;;;;;;;;;;;:::i;:::-;;10207:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3109:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17764:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12565:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12736:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12701:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4895:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3572:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12668:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13174:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12255:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17624:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16619:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12479:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12092:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15985:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18687:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12531:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3755:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12134:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12596:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15775:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10541:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12174:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17306:310;17409:9;;;;;;;;;;;17393:25;;:12;:10;:12::i;:::-;:25;;;17385:34;;;;;;17444:8;17430:11;:22;;;;17476:7;17463:10;:20;;;;17524:10;;17510:11;;:24;;;;:::i;:::-;17494:13;:40;;;;17570:4;17553:13;;:21;;17545:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;17306:310;;:::o;3001:100::-;3055:13;3088:5;3081:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3001:100;:::o;3914:169::-;3997:4;4014:39;4023:12;:10;:12::i;:::-;4037:7;4046:6;4014:8;:39::i;:::-;4071:4;4064:11;;3914:169;;;;:::o;12952:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;11722:51::-;;;:::o;3321:108::-;3382:7;3409:12;;3402:19;;3321:108;:::o;18382:157::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18489:9:::1;;;;;;;;;;;18461:38;;18478:9;18461:38;;;;;;;;;;;;18522:9;18510;;:21;;;;;;;;;;;;;;;;;;18382:157:::0;:::o;12770:28::-;;;;:::o;16379:232::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16500:4:::1;16492;16488:1;16472:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16471:33;;;;:::i;:::-;16461:6;:43;;16453:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;16599:4;16590:6;:13;;;;:::i;:::-;16567:20;:36;;;;16379:232:::0;:::o;4091:573::-;4231:4;4248:24;4275:11;:19;4287:6;4275:19;;;;;;;;;;;;;;;:33;4295:12;:10;:12::i;:::-;4275:33;;;;;;;;;;;;;;;;4248:60;;4343:17;4323:16;:37;4319:265;;4405:6;4385:16;:26;;4377:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4500:57;4509:6;4517:12;:10;:12::i;:::-;4550:6;4531:16;:25;4500:8;:57::i;:::-;4319:265;4596:36;4606:6;4614:9;4625:6;4596:9;:36::i;:::-;4652:4;4645:11;;;4091:573;;;;;:::o;12055:24::-;;;;;;;;;;;;;:::o;11825:53::-;11871:6;11825:53;:::o;3221:92::-;3279:5;3304:1;3297:8;;3221:92;:::o;4672:215::-;4760:4;4777:80;4786:12;:10;:12::i;:::-;4800:7;4846:10;4809:11;:25;4821:12;:10;:12::i;:::-;4809:25;;;;;;;;;;;;;;;:34;4835:7;4809:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4777:8;:80::i;:::-;4875:4;4868:11;;4672:215;;;;:::o;11887:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;11780:::-;;;:::o;12215:33::-;;;;;;;;;;;;;:::o;18550:125::-;18615:4;18639:19;:28;18659:7;18639:28;;;;;;;;;;;;;;;;;;;;;;;;;18632:35;;18550:125;;;:::o;16998:299::-;17100:9;;;;;;;;;;;17084:25;;:12;:10;:12::i;:::-;:25;;;17076:34;;;;;;17134:8;17121:10;:21;;;;17165:7;17153:9;:19;;;;17211:9;;17198:10;;:22;;;;:::i;:::-;17183:12;:37;;;;17255:1;17239:12;;:17;;17231:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;16998:299;;:::o;12633:28::-;;;;:::o;18966:168::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19044:6:::1;19039:88;19060:4;:11;19056:1;:15;19039:88;;;19110:5;19093;:14;19099:4;19104:1;19099:7;;;;;;;;:::i;:::-;;;;;;;;19093:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;19073:3;;;;;:::i;:::-;;;;19039:88;;;;18966:168:::0;:::o;3437:127::-;3511:7;3538:9;:18;3548:7;3538:18;;;;;;;;;;;;;;;;3531:25;;3437:127;;;:::o;10430:103::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10495:30:::1;10522:1;10495:18;:30::i;:::-;10430:103::o:0;15589:121::-;15641:4;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15675:5:::1;15658:14;;:22;;;;;;;;;;;;;;;;;;15698:4;15691:11;;15589:121:::0;:::o;16842:144::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16974:4:::1;16932:31;:39;16964:6;16932:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16842:144:::0;;:::o;18080:149::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18165:4:::1;18149:13;;:20;;;;;;;;;;;;;;;;;;18194:27;18214:6;18194:15;:19;;:27;;;;:::i;:::-;18180:11;:41;;;;18080:149:::0;:::o;15404:130::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15475:4:::1;15459:13;;:20;;;;;;;;;;;;;;;;;;15504:22;15524:1;15504:15;:19;;:22;;;;:::i;:::-;15490:11;:36;;;;15404:130::o:0;10207:87::-;10253:7;10280:6;;;;;;;;;;;10273:13;;10207:87;:::o;3109:104::-;3165:13;3198:7;3191:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3109:104;:::o;17764:244::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17871:13:::1;17863:21;;:4;:21;;;;17855:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17959:41;17988:4;17994:5;17959:28;:41::i;:::-;17764:244:::0;;:::o;12565:24::-;;;;:::o;12736:27::-;;;;:::o;12701:25::-;;;;:::o;4895:413::-;4988:4;5005:24;5032:11;:25;5044:12;:10;:12::i;:::-;5032:25;;;;;;;;;;;;;;;:34;5058:7;5032:34;;;;;;;;;;;;;;;;5005:61;;5105:15;5085:16;:35;;5077:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5198:67;5207:12;:10;:12::i;:::-;5221:7;5249:15;5230:16;:34;5198:8;:67::i;:::-;5296:4;5289:11;;;4895:413;;;;:::o;3572:175::-;3658:4;3675:42;3685:12;:10;:12::i;:::-;3699:9;3710:6;3675:9;:42::i;:::-;3735:4;3728:11;;3572:175;;;;:::o;12668:26::-;;;;:::o;13174:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12255:33::-;;;;;;;;;;;;;:::o;17624:132::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17740:8:::1;17709:19;:28;17729:7;17709:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17624:132:::0;;:::o;16619:211::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16741:4:::1;16735;16731:1;16715:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16714:31;;;;:::i;:::-;16704:6;:41;;16696:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16818:4;16809:6;:13;;;;:::i;:::-;16797:9;:25;;;;16619:211:::0;:::o;12479:39::-;;;;;;;;;;;;;:::o;12092:35::-;;;;:::o;15985:382::-;16066:4;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16123:6:::1;16119:1;16103:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;16090:9;:39;;16082:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;16238:4;16234:1;16218:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16205:9;:37;;16197:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16330:9;16309:18;:30;;;;16356:4;16349:11;;15985:382:::0;;;:::o;18687:267::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18762:6:::1;18757:190;18778:4;:11;18774:1;:15;18757:190;;;18826:13;18815:24;;:4;18820:1;18815:7;;;;;;;;:::i;:::-;;;;;;;;:24;;;;:63;;;;;18862:15;18843:35;;:4;18848:1;18843:7;;;;;;;;:::i;:::-;;;;;;;;:35;;;;18815:63;18811:125;;;18916:4;18899:5;:14;18905:4;18910:1;18905:7;;;;;;;;:::i;:::-;;;;;;;;18899:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18811:125;18791:3;;;;;:::i;:::-;;;;18757:190;;;;18687:267:::0;:::o;12531:27::-;;;;:::o;3755:151::-;3844:7;3871:11;:18;3883:5;3871:18;;;;;;;;;;;;;;;:27;3890:7;3871:27;;;;;;;;;;;;;;;;3864:34;;3755:151;;;;:::o;12134:33::-;;;;:::o;12596:25::-;;;;:::o;15775:135::-;15835:4;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15875:5:::1;15852:20;;:28;;;;;;;;;;;;;;;;;;15898:4;15891:11;;15775:135:::0;:::o;10541:201::-;10353:12;:10;:12::i;:::-;10342:23;;:7;:5;:7::i;:::-;:23;;;10334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10650:1:::1;10630:22;;:8;:22;;;;10622:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10706:28;10725:8;10706:18;:28::i;:::-;10541:201:::0;:::o;12174:24::-;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;7014:380::-;7167:1;7150:19;;:5;:19;;;;7142:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7248:1;7229:21;;:7;:21;;;;7221:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7332:6;7302:11;:18;7314:5;7302:18;;;;;;;;;;;;;;;:27;7321:7;7302:27;;;;;;;;;;;;;;;:36;;;;7370:7;7354:32;;7363:5;7354:32;;;7379:6;7354:32;;;;;;:::i;:::-;;;;;;;;7014:380;;;:::o;19142:4485::-;19290:1;19274:18;;:4;:18;;;;19266:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19367:1;19353:16;;:2;:16;;;;19345:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19429:5;:11;19435:4;19429:11;;;;;;;;;;;;;;;;;;;;;;;;;19428:12;19420:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;19562:1;19552:6;:11;19548:93;;;19580:28;19596:4;19602:2;19606:1;19580:15;:28::i;:::-;19623:7;;19548:93;19683:11;;19665:15;:29;19661:51;;;19708:4;19696:5;:9;19702:2;19696:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;19661:51;19737:14;;;;;;;;;;;19733:1834;;;19798:7;:5;:7::i;:::-;19790:15;;:4;:15;;;;:49;;;;;19832:7;:5;:7::i;:::-;19826:13;;:2;:13;;;;19790:49;:86;;;;;19874:1;19860:16;;:2;:16;;;;19790:86;:128;;;;;19911:6;19897:21;;:2;:21;;;;19790:128;:159;;;;;19940:9;;;;;;;;;;;19939:10;19790:159;19768:1788;;;19989:13;;;;;;;;;;;19984:150;;20035:19;:25;20055:4;20035:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20064:19;:23;20084:2;20064:23;;;;;;;;;;;;;;;;;;;;;;;;;20035:52;20027:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19984:150;20292:20;;;;;;;;;;;20288:423;;;20346:7;:5;:7::i;:::-;20340:13;;:2;:13;;;;:47;;;;;20371:15;20357:30;;:2;:30;;;;20340:47;:79;;;;;20405:13;20391:28;;:2;:28;;;;20340:79;20336:356;;;20497:12;20455:28;:39;20484:9;20455:39;;;;;;;;;;;;;;;;:54;20447:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;20656:12;20614:28;:39;20643:9;20614:39;;;;;;;;;;;;;;;:54;;;;20336:356;20288:423;20779:25;:31;20805:4;20779:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20815:31;:35;20847:2;20815:35;;;;;;;;;;;;;;;;;;;;;;;;;20814:36;20779:71;20775:766;;;20893:20;;20883:6;:30;;20875:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21028:9;;21011:13;21021:2;21011:9;:13::i;:::-;21002:6;:22;;;;:::i;:::-;:35;;20994:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20775:766;;;21154:25;:29;21180:2;21154:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21188:31;:37;21220:4;21188:37;;;;;;;;;;;;;;;;;;;;;;;;;21187:38;21154:71;21150:391;;;21268:20;;21258:6;:30;;21250:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21150:391;;;21395:31;:35;21427:2;21395:35;;;;;;;;;;;;;;;;;;;;;;;;;21390:151;;21488:9;;21471:13;21481:2;21471:9;:13::i;:::-;21462:6;:22;;;;:::i;:::-;:35;;21454:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21390:151;21150:391;20775:766;19768:1788;19733:1834;21581:28;21612:24;21630:4;21612:9;:24::i;:::-;21581:55;;21647:12;21686:18;;21662:20;:42;;21647:57;;21735:7;:34;;;;;21760:9;;;;;;;;;;;21759:10;21735:34;:83;;;;;21787:25;:31;21813:4;21787:31;;;;;;;;;;;;;;;;;;;;;;;;;21786:32;21735:83;:126;;;;;21836:19;:25;21856:4;21836:25;;;;;;;;;;;;;;;;;;;;;;;;;21835:26;21735:126;:167;;;;;21879:19;:23;21899:2;21879:23;;;;;;;;;;;;;;;;;;;;;;;;;21878:24;21735:167;21717:297;;;21941:4;21929:9;;:16;;;;;;;;;;;;;;;;;;21960:10;:8;:10::i;:::-;21997:5;21985:9;;:17;;;;;;;;;;;;;;;;;;21717:297;22026:12;22042:9;;;;;;;;;;;22041:10;22026:25;;22153:19;:25;22173:4;22153:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22182:19;:23;22202:2;22182:23;;;;;;;;;;;;;;;;;;;;;;;;;22153:52;22149:73;;;22217:5;22207:15;;22149:73;22253:15;22283:16;22392:7;22388:1186;;;22444:25;:29;22470:2;22444:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;22493:1;22477:13;;:17;22444:50;22440:854;;;22523:5;22514:6;;:14;;;;;;;;;;;;;;;;;;22558:34;22588:3;22558:25;22569:13;;22558:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;22547:45;;22651:13;;22638:10;;22627:8;:21;;;;:::i;:::-;:37;;;;:::i;:::-;22611:12;;:53;;;;;;;:::i;:::-;;;;;;;;22725:13;;22711:11;;22700:8;:22;;;;:::i;:::-;:38;;;;:::i;:::-;22683:13;;:55;;;;;;;:::i;:::-;;;;;;;;22440:854;;;22799:25;:31;22825:4;22799:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;22849:1;22834:12;;:16;22799:51;22796:498;;;22880:4;22871:6;;:13;;;;;;;;;;;;;;;;;;22913:33;22942:3;22913:24;22924:12;;22913:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;22903:43;;23003:13;;22991:9;;22981:7;:19;;;;:::i;:::-;:35;;;;:::i;:::-;22965:12;;:51;;;;;;;:::i;:::-;;;;;;;;23075:13;;23062:10;;23052:7;:20;;;;:::i;:::-;:36;;;;:::i;:::-;23035:13;;:53;;;;;;;:::i;:::-;;;;;;;;23107:45;23123:4;23137;23144:7;23107:15;:45::i;:::-;23171:35;23185:4;23192:13;;23171:5;:35::i;:::-;23241:1;23225:13;:17;;;;23271:7;23261:17;;;;;:::i;:::-;;;22796:498;22440:854;23330:1;23314:13;;:17;:28;;;;;23336:6;;;;;;;;;;;23335:7;23314:28;23310:242;;;23363:46;23379:4;23393;23400:8;23363:15;:46::i;:::-;23428:35;23442:4;23449:13;;23428:5;:35::i;:::-;23498:1;23482:13;:17;;;;23528:8;23518:18;;;;;:::i;:::-;;;23310:242;22388:1186;23586:33;23602:4;23608:2;23612:6;23586:15;:33::i;:::-;19255:4372;;;;;19142:4485;;;;:::o;10750:191::-;10824:16;10843:6;;;;;;;;;;;10824:25;;10869:8;10860:6;;:17;;;;;;;;;;;;;;;;;;10924:8;10893:40;;10914:8;10893:40;;;;;;;;;;;;10813:128;10750:191;:::o;8804:98::-;8862:7;8893:1;8889;:5;;;;:::i;:::-;8882:12;;8804:98;;;;:::o;18237:130::-;18354:5;18320:25;:31;18346:4;18320:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18237:130;;:::o;5316:733::-;5474:1;5456:20;;:6;:20;;;;5448:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5558:1;5537:23;;:9;:23;;;;5529:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5613:47;5634:6;5642:9;5653:6;5613:20;:47::i;:::-;5673:21;5697:9;:17;5707:6;5697:17;;;;;;;;;;;;;;;;5673:41;;5750:6;5733:13;:23;;5725:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5871:6;5855:13;:22;5835:9;:17;5845:6;5835:17;;;;;;;;;;;;;;;:42;;;;5923:6;5899:9;:20;5909:9;5899:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5964:9;5947:35;;5956:6;5947:35;;;5975:6;5947:35;;;;;;:::i;:::-;;;;;;;;5995:46;6015:6;6023:9;6034:6;5995:19;:46::i;:::-;5437:612;5316:733;;;:::o;24759:459::-;24798:23;24824:24;24842:4;24824:9;:24::i;:::-;24798:50;;24859:12;24907:1;24888:15;:20;24885:34;;;24911:7;;;;24885:34;24974:2;24953:18;;:23;;;;:::i;:::-;24935:15;:41;24932:111;;;25029:2;25008:18;;:23;;;;:::i;:::-;24990:41;;24932:111;25055:34;25073:15;25055:17;:34::i;:::-;25121:1;25106:12;:16;;;;25157:9;;;;;;;;;;;25149:23;;25180:21;25149:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25136:70;;;;;24787:431;;24759:459;:::o;9016:98::-;9074:7;9105:1;9101;:5;;;;:::i;:::-;9094:12;;9016:98;;;;:::o;9122:::-;9180:7;9211:1;9207;:5;;;;:::i;:::-;9200:12;;9122:98;;;;:::o;6464:542::-;6567:1;6548:21;;:7;:21;;;;6540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6620:49;6641:7;6658:1;6662:6;6620:20;:49::i;:::-;6682:22;6707:9;:18;6717:7;6707:18;;;;;;;;;;;;;;;;6682:43;;6762:6;6744:14;:24;;6736:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6881:6;6864:14;:23;6843:9;:18;6853:7;6843:18;;;;;;;;;;;;;;;:44;;;;6939:6;6924:12;;:21;;;;:::i;:::-;6909:12;:36;;;;6987:1;6961:37;;6970:7;6961:37;;;6991:6;6961:37;;;;;;:::i;:::-;;;;;;;;6529:477;6464:542;;:::o;7402:125::-;;;;:::o;7535:124::-;;;;:::o;23635:590::-;23762:21;23800:1;23786:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23762:40;;23831:4;23813;23818:1;23813:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23857:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23847:4;23852:1;23847:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23892:62;23909:4;23924:15;23942:11;23892:8;:62::i;:::-;23993:15;:66;;;24074:11;24100:1;24144:4;24171;24191:15;23993:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23691:534;23635:590;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:307::-;1518:1;1528:113;1542:6;1539:1;1536:13;1528:113;;;1627:1;1622:3;1618:11;1612:18;1608:1;1603:3;1599:11;1592:39;1564:2;1561:1;1557:10;1552:15;;1528:113;;;1659:6;1656:1;1653:13;1650:101;;;1739:1;1730:6;1725:3;1721:16;1714:27;1650:101;1499:258;1450:307;;;:::o;1763:102::-;1804:6;1855:2;1851:7;1846:2;1839:5;1835:14;1831:28;1821:38;;1763:102;;;:::o;1871:364::-;1959:3;1987:39;2020:5;1987:39;:::i;:::-;2042:71;2106:6;2101:3;2042:71;:::i;:::-;2035:78;;2122:52;2167:6;2162:3;2155:4;2148:5;2144:16;2122:52;:::i;:::-;2199:29;2221:6;2199:29;:::i;:::-;2194:3;2190:39;2183:46;;1963:272;1871:364;;;;:::o;2241:313::-;2354:4;2392:2;2381:9;2377:18;2369:26;;2441:9;2435:4;2431:20;2427:1;2416:9;2412:17;2405:47;2469:78;2542:4;2533:6;2469:78;:::i;:::-;2461:86;;2241:313;;;;:::o;2560:126::-;2597:7;2637:42;2630:5;2626:54;2615:65;;2560:126;;;:::o;2692:96::-;2729:7;2758:24;2776:5;2758:24;:::i;:::-;2747:35;;2692:96;;;:::o;2794:122::-;2867:24;2885:5;2867:24;:::i;:::-;2860:5;2857:35;2847:63;;2906:1;2903;2896:12;2847:63;2794:122;:::o;2922:139::-;2968:5;3006:6;2993:20;2984:29;;3022:33;3049:5;3022:33;:::i;:::-;2922:139;;;;:::o;3067:474::-;3135:6;3143;3192:2;3180:9;3171:7;3167:23;3163:32;3160:119;;;3198:79;;:::i;:::-;3160:119;3318:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3289:117;3445:2;3471:53;3516:7;3507:6;3496:9;3492:22;3471:53;:::i;:::-;3461:63;;3416:118;3067:474;;;;;:::o;3547:90::-;3581:7;3624:5;3617:13;3610:21;3599:32;;3547:90;;;:::o;3643:109::-;3724:21;3739:5;3724:21;:::i;:::-;3719:3;3712:34;3643:109;;:::o;3758:210::-;3845:4;3883:2;3872:9;3868:18;3860:26;;3896:65;3958:1;3947:9;3943:17;3934:6;3896:65;:::i;:::-;3758:210;;;;:::o;3974:329::-;4033:6;4082:2;4070:9;4061:7;4057:23;4053:32;4050:119;;;4088:79;;:::i;:::-;4050:119;4208:1;4233:53;4278:7;4269:6;4258:9;4254:22;4233:53;:::i;:::-;4223:63;;4179:117;3974:329;;;;:::o;4309:60::-;4337:3;4358:5;4351:12;;4309:60;;;:::o;4375:142::-;4425:9;4458:53;4476:34;4485:24;4503:5;4485:24;:::i;:::-;4476:34;:::i;:::-;4458:53;:::i;:::-;4445:66;;4375:142;;;:::o;4523:126::-;4573:9;4606:37;4637:5;4606:37;:::i;:::-;4593:50;;4523:126;;;:::o;4655:153::-;4732:9;4765:37;4796:5;4765:37;:::i;:::-;4752:50;;4655:153;;;:::o;4814:185::-;4928:64;4986:5;4928:64;:::i;:::-;4923:3;4916:77;4814:185;;:::o;5005:276::-;5125:4;5163:2;5152:9;5148:18;5140:26;;5176:98;5271:1;5260:9;5256:17;5247:6;5176:98;:::i;:::-;5005:276;;;;:::o;5287:118::-;5374:24;5392:5;5374:24;:::i;:::-;5369:3;5362:37;5287:118;;:::o;5411:222::-;5504:4;5542:2;5531:9;5527:18;5519:26;;5555:71;5623:1;5612:9;5608:17;5599:6;5555:71;:::i;:::-;5411:222;;;;:::o;5639:329::-;5698:6;5747:2;5735:9;5726:7;5722:23;5718:32;5715:119;;;5753:79;;:::i;:::-;5715:119;5873:1;5898:53;5943:7;5934:6;5923:9;5919:22;5898:53;:::i;:::-;5888:63;;5844:117;5639:329;;;;:::o;5974:619::-;6051:6;6059;6067;6116:2;6104:9;6095:7;6091:23;6087:32;6084:119;;;6122:79;;:::i;:::-;6084:119;6242:1;6267:53;6312:7;6303:6;6292:9;6288:22;6267:53;:::i;:::-;6257:63;;6213:117;6369:2;6395:53;6440:7;6431:6;6420:9;6416:22;6395:53;:::i;:::-;6385:63;;6340:118;6497:2;6523:53;6568:7;6559:6;6548:9;6544:22;6523:53;:::i;:::-;6513:63;;6468:118;5974:619;;;;;:::o;6599:118::-;6686:24;6704:5;6686:24;:::i;:::-;6681:3;6674:37;6599:118;;:::o;6723:222::-;6816:4;6854:2;6843:9;6839:18;6831:26;;6867:71;6935:1;6924:9;6920:17;6911:6;6867:71;:::i;:::-;6723:222;;;;:::o;6951:86::-;6986:7;7026:4;7019:5;7015:16;7004:27;;6951:86;;;:::o;7043:112::-;7126:22;7142:5;7126:22;:::i;:::-;7121:3;7114:35;7043:112;;:::o;7161:214::-;7250:4;7288:2;7277:9;7273:18;7265:26;;7301:67;7365:1;7354:9;7350:17;7341:6;7301:67;:::i;:::-;7161:214;;;;:::o;7381:117::-;7490:1;7487;7480:12;7504:180;7552:77;7549:1;7542:88;7649:4;7646:1;7639:15;7673:4;7670:1;7663:15;7690:281;7773:27;7795:4;7773:27;:::i;:::-;7765:6;7761:40;7903:6;7891:10;7888:22;7867:18;7855:10;7852:34;7849:62;7846:88;;;7914:18;;:::i;:::-;7846:88;7954:10;7950:2;7943:22;7733:238;7690:281;;:::o;7977:129::-;8011:6;8038:20;;:::i;:::-;8028:30;;8067:33;8095:4;8087:6;8067:33;:::i;:::-;7977:129;;;:::o;8112:311::-;8189:4;8279:18;8271:6;8268:30;8265:56;;;8301:18;;:::i;:::-;8265:56;8351:4;8343:6;8339:17;8331:25;;8411:4;8405;8401:15;8393:23;;8112:311;;;:::o;8429:117::-;8538:1;8535;8528:12;8569:710;8665:5;8690:81;8706:64;8763:6;8706:64;:::i;:::-;8690:81;:::i;:::-;8681:90;;8791:5;8820:6;8813:5;8806:21;8854:4;8847:5;8843:16;8836:23;;8907:4;8899:6;8895:17;8887:6;8883:30;8936:3;8928:6;8925:15;8922:122;;;8955:79;;:::i;:::-;8922:122;9070:6;9053:220;9087:6;9082:3;9079:15;9053:220;;;9162:3;9191:37;9224:3;9212:10;9191:37;:::i;:::-;9186:3;9179:50;9258:4;9253:3;9249:14;9242:21;;9129:144;9113:4;9108:3;9104:14;9097:21;;9053:220;;;9057:21;8671:608;;8569:710;;;;;:::o;9302:370::-;9373:5;9422:3;9415:4;9407:6;9403:17;9399:27;9389:122;;9430:79;;:::i;:::-;9389:122;9547:6;9534:20;9572:94;9662:3;9654:6;9647:4;9639:6;9635:17;9572:94;:::i;:::-;9563:103;;9379:293;9302:370;;;;:::o;9678:539::-;9762:6;9811:2;9799:9;9790:7;9786:23;9782:32;9779:119;;;9817:79;;:::i;:::-;9779:119;9965:1;9954:9;9950:17;9937:31;9995:18;9987:6;9984:30;9981:117;;;10017:79;;:::i;:::-;9981:117;10122:78;10192:7;10183:6;10172:9;10168:22;10122:78;:::i;:::-;10112:88;;9908:302;9678:539;;;;:::o;10223:116::-;10293:21;10308:5;10293:21;:::i;:::-;10286:5;10283:32;10273:60;;10329:1;10326;10319:12;10273:60;10223:116;:::o;10345:133::-;10388:5;10426:6;10413:20;10404:29;;10442:30;10466:5;10442:30;:::i;:::-;10345:133;;;;:::o;10484:468::-;10549:6;10557;10606:2;10594:9;10585:7;10581:23;10577:32;10574:119;;;10612:79;;:::i;:::-;10574:119;10732:1;10757:53;10802:7;10793:6;10782:9;10778:22;10757:53;:::i;:::-;10747:63;;10703:117;10859:2;10885:50;10927:7;10918:6;10907:9;10903:22;10885:50;:::i;:::-;10875:60;;10830:115;10484:468;;;;;:::o;10958:474::-;11026:6;11034;11083:2;11071:9;11062:7;11058:23;11054:32;11051:119;;;11089:79;;:::i;:::-;11051:119;11209:1;11234:53;11279:7;11270:6;11259:9;11255:22;11234:53;:::i;:::-;11224:63;;11180:117;11336:2;11362:53;11407:7;11398:6;11387:9;11383:22;11362:53;:::i;:::-;11352:63;;11307:118;10958:474;;;;;:::o;11438:180::-;11486:77;11483:1;11476:88;11583:4;11580:1;11573:15;11607:4;11604:1;11597:15;11624:305;11664:3;11683:20;11701:1;11683:20;:::i;:::-;11678:25;;11717:20;11735:1;11717:20;:::i;:::-;11712:25;;11871:1;11803:66;11799:74;11796:1;11793:81;11790:107;;;11877:18;;:::i;:::-;11790:107;11921:1;11918;11914:9;11907:16;;11624:305;;;;:::o;11935:179::-;12075:31;12071:1;12063:6;12059:14;12052:55;11935:179;:::o;12120:366::-;12262:3;12283:67;12347:2;12342:3;12283:67;:::i;:::-;12276:74;;12359:93;12448:3;12359:93;:::i;:::-;12477:2;12472:3;12468:12;12461:19;;12120:366;;;:::o;12492:419::-;12658:4;12696:2;12685:9;12681:18;12673:26;;12745:9;12739:4;12735:20;12731:1;12720:9;12716:17;12709:47;12773:131;12899:4;12773:131;:::i;:::-;12765:139;;12492:419;;;:::o;12917:180::-;12965:77;12962:1;12955:88;13062:4;13059:1;13052:15;13086:4;13083:1;13076:15;13103:320;13147:6;13184:1;13178:4;13174:12;13164:22;;13231:1;13225:4;13221:12;13252:18;13242:81;;13308:4;13300:6;13296:17;13286:27;;13242:81;13370:2;13362:6;13359:14;13339:18;13336:38;13333:84;;;13389:18;;:::i;:::-;13333:84;13154:269;13103:320;;;:::o;13429:182::-;13569:34;13565:1;13557:6;13553:14;13546:58;13429:182;:::o;13617:366::-;13759:3;13780:67;13844:2;13839:3;13780:67;:::i;:::-;13773:74;;13856:93;13945:3;13856:93;:::i;:::-;13974:2;13969:3;13965:12;13958:19;;13617:366;;;:::o;13989:419::-;14155:4;14193:2;14182:9;14178:18;14170:26;;14242:9;14236:4;14232:20;14228:1;14217:9;14213:17;14206:47;14270:131;14396:4;14270:131;:::i;:::-;14262:139;;13989:419;;;:::o;14414:348::-;14454:7;14477:20;14495:1;14477:20;:::i;:::-;14472:25;;14511:20;14529:1;14511:20;:::i;:::-;14506:25;;14699:1;14631:66;14627:74;14624:1;14621:81;14616:1;14609:9;14602:17;14598:105;14595:131;;;14706:18;;:::i;:::-;14595:131;14754:1;14751;14747:9;14736:20;;14414:348;;;;:::o;14768:180::-;14816:77;14813:1;14806:88;14913:4;14910:1;14903:15;14937:4;14934:1;14927:15;14954:185;14994:1;15011:20;15029:1;15011:20;:::i;:::-;15006:25;;15045:20;15063:1;15045:20;:::i;:::-;15040:25;;15084:1;15074:35;;15089:18;;:::i;:::-;15074:35;15131:1;15128;15124:9;15119:14;;14954:185;;;;:::o;15145:234::-;15285:34;15281:1;15273:6;15269:14;15262:58;15354:17;15349:2;15341:6;15337:15;15330:42;15145:234;:::o;15385:366::-;15527:3;15548:67;15612:2;15607:3;15548:67;:::i;:::-;15541:74;;15624:93;15713:3;15624:93;:::i;:::-;15742:2;15737:3;15733:12;15726:19;;15385:366;;;:::o;15757:419::-;15923:4;15961:2;15950:9;15946:18;15938:26;;16010:9;16004:4;16000:20;15996:1;15985:9;15981:17;15974:47;16038:131;16164:4;16038:131;:::i;:::-;16030:139;;15757:419;;;:::o;16182:227::-;16322:34;16318:1;16310:6;16306:14;16299:58;16391:10;16386:2;16378:6;16374:15;16367:35;16182:227;:::o;16415:366::-;16557:3;16578:67;16642:2;16637:3;16578:67;:::i;:::-;16571:74;;16654:93;16743:3;16654:93;:::i;:::-;16772:2;16767:3;16763:12;16756:19;;16415:366;;;:::o;16787:419::-;16953:4;16991:2;16980:9;16976:18;16968:26;;17040:9;17034:4;17030:20;17026:1;17015:9;17011:17;17004:47;17068:131;17194:4;17068:131;:::i;:::-;17060:139;;16787:419;;;:::o;17212:178::-;17352:30;17348:1;17340:6;17336:14;17329:54;17212:178;:::o;17396:366::-;17538:3;17559:67;17623:2;17618:3;17559:67;:::i;:::-;17552:74;;17635:93;17724:3;17635:93;:::i;:::-;17753:2;17748:3;17744:12;17737:19;;17396:366;;;:::o;17768:419::-;17934:4;17972:2;17961:9;17957:18;17949:26;;18021:9;18015:4;18011:20;18007:1;17996:9;17992:17;17985:47;18049:131;18175:4;18049:131;:::i;:::-;18041:139;;17768:419;;;:::o;18193:180::-;18241:77;18238:1;18231:88;18338:4;18335:1;18328:15;18362:4;18359:1;18352:15;18379:233;18418:3;18441:24;18459:5;18441:24;:::i;:::-;18432:33;;18487:66;18480:5;18477:77;18474:103;;;18557:18;;:::i;:::-;18474:103;18604:1;18597:5;18593:13;18586:20;;18379:233;;;:::o;18618:244::-;18758:34;18754:1;18746:6;18742:14;18735:58;18827:27;18822:2;18814:6;18810:15;18803:52;18618:244;:::o;18868:366::-;19010:3;19031:67;19095:2;19090:3;19031:67;:::i;:::-;19024:74;;19107:93;19196:3;19107:93;:::i;:::-;19225:2;19220:3;19216:12;19209:19;;18868:366;;;:::o;19240:419::-;19406:4;19444:2;19433:9;19429:18;19421:26;;19493:9;19487:4;19483:20;19479:1;19468:9;19464:17;19457:47;19521:131;19647:4;19521:131;:::i;:::-;19513:139;;19240:419;;;:::o;19665:224::-;19805:34;19801:1;19793:6;19789:14;19782:58;19874:7;19869:2;19861:6;19857:15;19850:32;19665:224;:::o;19895:366::-;20037:3;20058:67;20122:2;20117:3;20058:67;:::i;:::-;20051:74;;20134:93;20223:3;20134:93;:::i;:::-;20252:2;20247:3;20243:12;20236:19;;19895:366;;;:::o;20267:419::-;20433:4;20471:2;20460:9;20456:18;20448:26;;20520:9;20514:4;20510:20;20506:1;20495:9;20491:17;20484:47;20548:131;20674:4;20548:131;:::i;:::-;20540:139;;20267:419;;;:::o;20692:223::-;20832:34;20828:1;20820:6;20816:14;20809:58;20901:6;20896:2;20888:6;20884:15;20877:31;20692:223;:::o;20921:366::-;21063:3;21084:67;21148:2;21143:3;21084:67;:::i;:::-;21077:74;;21160:93;21249:3;21160:93;:::i;:::-;21278:2;21273:3;21269:12;21262:19;;20921:366;;;:::o;21293:419::-;21459:4;21497:2;21486:9;21482:18;21474:26;;21546:9;21540:4;21536:20;21532:1;21521:9;21517:17;21510:47;21574:131;21700:4;21574:131;:::i;:::-;21566:139;;21293:419;;;:::o;21718:240::-;21858:34;21854:1;21846:6;21842:14;21835:58;21927:23;21922:2;21914:6;21910:15;21903:48;21718:240;:::o;21964:366::-;22106:3;22127:67;22191:2;22186:3;22127:67;:::i;:::-;22120:74;;22203:93;22292:3;22203:93;:::i;:::-;22321:2;22316:3;22312:12;22305:19;;21964:366;;;:::o;22336:419::-;22502:4;22540:2;22529:9;22525:18;22517:26;;22589:9;22583:4;22579:20;22575:1;22564:9;22560:17;22553:47;22617:131;22743:4;22617:131;:::i;:::-;22609:139;;22336:419;;;:::o;22761:239::-;22901:34;22897:1;22889:6;22885:14;22878:58;22970:22;22965:2;22957:6;22953:15;22946:47;22761:239;:::o;23006:366::-;23148:3;23169:67;23233:2;23228:3;23169:67;:::i;:::-;23162:74;;23245:93;23334:3;23245:93;:::i;:::-;23363:2;23358:3;23354:12;23347:19;;23006:366;;;:::o;23378:419::-;23544:4;23582:2;23571:9;23567:18;23559:26;;23631:9;23625:4;23621:20;23617:1;23606:9;23602:17;23595:47;23659:131;23785:4;23659:131;:::i;:::-;23651:139;;23378:419;;;:::o;23803:225::-;23943:34;23939:1;23931:6;23927:14;23920:58;24012:8;24007:2;23999:6;23995:15;23988:33;23803:225;:::o;24034:366::-;24176:3;24197:67;24261:2;24256:3;24197:67;:::i;:::-;24190:74;;24273:93;24362:3;24273:93;:::i;:::-;24391:2;24386:3;24382:12;24375:19;;24034:366;;;:::o;24406:419::-;24572:4;24610:2;24599:9;24595:18;24587:26;;24659:9;24653:4;24649:20;24645:1;24634:9;24630:17;24623:47;24687:131;24813:4;24687:131;:::i;:::-;24679:139;;24406:419;;;:::o;24831:223::-;24971:34;24967:1;24959:6;24955:14;24948:58;25040:6;25035:2;25027:6;25023:15;25016:31;24831:223;:::o;25060:366::-;25202:3;25223:67;25287:2;25282:3;25223:67;:::i;:::-;25216:74;;25299:93;25388:3;25299:93;:::i;:::-;25417:2;25412:3;25408:12;25401:19;;25060:366;;;:::o;25432:419::-;25598:4;25636:2;25625:9;25621:18;25613:26;;25685:9;25679:4;25675:20;25671:1;25660:9;25656:17;25649:47;25713:131;25839:4;25713:131;:::i;:::-;25705:139;;25432:419;;;:::o;25857:221::-;25997:34;25993:1;25985:6;25981:14;25974:58;26066:4;26061:2;26053:6;26049:15;26042:29;25857:221;:::o;26084:366::-;26226:3;26247:67;26311:2;26306:3;26247:67;:::i;:::-;26240:74;;26323:93;26412:3;26323:93;:::i;:::-;26441:2;26436:3;26432:12;26425:19;;26084:366;;;:::o;26456:419::-;26622:4;26660:2;26649:9;26645:18;26637:26;;26709:9;26703:4;26699:20;26695:1;26684:9;26680:17;26673:47;26737:131;26863:4;26737:131;:::i;:::-;26729:139;;26456:419;;;:::o;26881:224::-;27021:34;27017:1;27009:6;27005:14;26998:58;27090:7;27085:2;27077:6;27073:15;27066:32;26881:224;:::o;27111:366::-;27253:3;27274:67;27338:2;27333:3;27274:67;:::i;:::-;27267:74;;27350:93;27439:3;27350:93;:::i;:::-;27468:2;27463:3;27459:12;27452:19;;27111:366;;;:::o;27483:419::-;27649:4;27687:2;27676:9;27672:18;27664:26;;27736:9;27730:4;27726:20;27722:1;27711:9;27707:17;27700:47;27764:131;27890:4;27764:131;:::i;:::-;27756:139;;27483:419;;;:::o;27908:222::-;28048:34;28044:1;28036:6;28032:14;28025:58;28117:5;28112:2;28104:6;28100:15;28093:30;27908:222;:::o;28136:366::-;28278:3;28299:67;28363:2;28358:3;28299:67;:::i;:::-;28292:74;;28375:93;28464:3;28375:93;:::i;:::-;28493:2;28488:3;28484:12;28477:19;;28136:366;;;:::o;28508:419::-;28674:4;28712:2;28701:9;28697:18;28689:26;;28761:9;28755:4;28751:20;28747:1;28736:9;28732:17;28725:47;28789:131;28915:4;28789:131;:::i;:::-;28781:139;;28508:419;;;:::o;28933:305::-;29073:34;29069:1;29061:6;29057:14;29050:58;29142:34;29137:2;29129:6;29125:15;29118:59;29211:19;29206:2;29198:6;29194:15;29187:44;28933:305;:::o;29244:366::-;29386:3;29407:67;29471:2;29466:3;29407:67;:::i;:::-;29400:74;;29483:93;29572:3;29483:93;:::i;:::-;29601:2;29596:3;29592:12;29585:19;;29244:366;;;:::o;29616:419::-;29782:4;29820:2;29809:9;29805:18;29797:26;;29869:9;29863:4;29859:20;29855:1;29844:9;29840:17;29833:47;29897:131;30023:4;29897:131;:::i;:::-;29889:139;;29616:419;;;:::o;30041:172::-;30181:24;30177:1;30169:6;30165:14;30158:48;30041:172;:::o;30219:366::-;30361:3;30382:67;30446:2;30441:3;30382:67;:::i;:::-;30375:74;;30458:93;30547:3;30458:93;:::i;:::-;30576:2;30571:3;30567:12;30560:19;;30219:366;;;:::o;30591:419::-;30757:4;30795:2;30784:9;30780:18;30772:26;;30844:9;30838:4;30834:20;30830:1;30819:9;30815:17;30808:47;30872:131;30998:4;30872:131;:::i;:::-;30864:139;;30591:419;;;:::o;31016:297::-;31156:34;31152:1;31144:6;31140:14;31133:58;31225:34;31220:2;31212:6;31208:15;31201:59;31294:11;31289:2;31281:6;31277:15;31270:36;31016:297;:::o;31319:366::-;31461:3;31482:67;31546:2;31541:3;31482:67;:::i;:::-;31475:74;;31558:93;31647:3;31558:93;:::i;:::-;31676:2;31671:3;31667:12;31660:19;;31319:366;;;:::o;31691:419::-;31857:4;31895:2;31884:9;31880:18;31872:26;;31944:9;31938:4;31934:20;31930:1;31919:9;31915:17;31908:47;31972:131;32098:4;31972:131;:::i;:::-;31964:139;;31691:419;;;:::o;32116:240::-;32256:34;32252:1;32244:6;32240:14;32233:58;32325:23;32320:2;32312:6;32308:15;32301:48;32116:240;:::o;32362:366::-;32504:3;32525:67;32589:2;32584:3;32525:67;:::i;:::-;32518:74;;32601:93;32690:3;32601:93;:::i;:::-;32719:2;32714:3;32710:12;32703:19;;32362:366;;;:::o;32734:419::-;32900:4;32938:2;32927:9;32923:18;32915:26;;32987:9;32981:4;32977:20;32973:1;32962:9;32958:17;32951:47;33015:131;33141:4;33015:131;:::i;:::-;33007:139;;32734:419;;;:::o;33159:169::-;33299:21;33295:1;33287:6;33283:14;33276:45;33159:169;:::o;33334:366::-;33476:3;33497:67;33561:2;33556:3;33497:67;:::i;:::-;33490:74;;33573:93;33662:3;33573:93;:::i;:::-;33691:2;33686:3;33682:12;33675:19;;33334:366;;;:::o;33706:419::-;33872:4;33910:2;33899:9;33895:18;33887:26;;33959:9;33953:4;33949:20;33945:1;33934:9;33930:17;33923:47;33987:131;34113:4;33987:131;:::i;:::-;33979:139;;33706:419;;;:::o;34131:241::-;34271:34;34267:1;34259:6;34255:14;34248:58;34340:24;34335:2;34327:6;34323:15;34316:49;34131:241;:::o;34378:366::-;34520:3;34541:67;34605:2;34600:3;34541:67;:::i;:::-;34534:74;;34617:93;34706:3;34617:93;:::i;:::-;34735:2;34730:3;34726:12;34719:19;;34378:366;;;:::o;34750:419::-;34916:4;34954:2;34943:9;34939:18;34931:26;;35003:9;34997:4;34993:20;34989:1;34978:9;34974:17;34967:47;35031:131;35157:4;35031:131;:::i;:::-;35023:139;;34750:419;;;:::o;35175:191::-;35215:4;35235:20;35253:1;35235:20;:::i;:::-;35230:25;;35269:20;35287:1;35269:20;:::i;:::-;35264:25;;35308:1;35305;35302:8;35299:34;;;35313:18;;:::i;:::-;35299:34;35358:1;35355;35351:9;35343:17;;35175:191;;;;:::o;35372:225::-;35512:34;35508:1;35500:6;35496:14;35489:58;35581:8;35576:2;35568:6;35564:15;35557:33;35372:225;:::o;35603:366::-;35745:3;35766:67;35830:2;35825:3;35766:67;:::i;:::-;35759:74;;35842:93;35931:3;35842:93;:::i;:::-;35960:2;35955:3;35951:12;35944:19;;35603:366;;;:::o;35975:419::-;36141:4;36179:2;36168:9;36164:18;36156:26;;36228:9;36222:4;36218:20;36214:1;36203:9;36199:17;36192:47;36256:131;36382:4;36256:131;:::i;:::-;36248:139;;35975:419;;;:::o;36400:147::-;36501:11;36538:3;36523:18;;36400:147;;;;:::o;36553:114::-;;:::o;36673:398::-;36832:3;36853:83;36934:1;36929:3;36853:83;:::i;:::-;36846:90;;36945:93;37034:3;36945:93;:::i;:::-;37063:1;37058:3;37054:11;37047:18;;36673:398;;;:::o;37077:379::-;37261:3;37283:147;37426:3;37283:147;:::i;:::-;37276:154;;37447:3;37440:10;;37077:379;;;:::o;37462:220::-;37602:34;37598:1;37590:6;37586:14;37579:58;37671:3;37666:2;37658:6;37654:15;37647:28;37462:220;:::o;37688:366::-;37830:3;37851:67;37915:2;37910:3;37851:67;:::i;:::-;37844:74;;37927:93;38016:3;37927:93;:::i;:::-;38045:2;38040:3;38036:12;38029:19;;37688:366;;;:::o;38060:419::-;38226:4;38264:2;38253:9;38249:18;38241:26;;38313:9;38307:4;38303:20;38299:1;38288:9;38284:17;38277:47;38341:131;38467:4;38341:131;:::i;:::-;38333:139;;38060:419;;;:::o;38485:221::-;38625:34;38621:1;38613:6;38609:14;38602:58;38694:4;38689:2;38681:6;38677:15;38670:29;38485:221;:::o;38712:366::-;38854:3;38875:67;38939:2;38934:3;38875:67;:::i;:::-;38868:74;;38951:93;39040:3;38951:93;:::i;:::-;39069:2;39064:3;39060:12;39053:19;;38712:366;;;:::o;39084:419::-;39250:4;39288:2;39277:9;39273:18;39265:26;;39337:9;39331:4;39327:20;39323:1;39312:9;39308:17;39301:47;39365:131;39491:4;39365:131;:::i;:::-;39357:139;;39084:419;;;:::o;39509:143::-;39566:5;39597:6;39591:13;39582:22;;39613:33;39640:5;39613:33;:::i;:::-;39509:143;;;;:::o;39658:351::-;39728:6;39777:2;39765:9;39756:7;39752:23;39748:32;39745:119;;;39783:79;;:::i;:::-;39745:119;39903:1;39928:64;39984:7;39975:6;39964:9;39960:22;39928:64;:::i;:::-;39918:74;;39874:128;39658:351;;;;:::o;40015:85::-;40060:7;40089:5;40078:16;;40015:85;;;:::o;40106:158::-;40164:9;40197:61;40215:42;40224:32;40250:5;40224:32;:::i;:::-;40215:42;:::i;:::-;40197:61;:::i;:::-;40184:74;;40106:158;;;:::o;40270:147::-;40365:45;40404:5;40365:45;:::i;:::-;40360:3;40353:58;40270:147;;:::o;40423:114::-;40490:6;40524:5;40518:12;40508:22;;40423:114;;;:::o;40543:184::-;40642:11;40676:6;40671:3;40664:19;40716:4;40711:3;40707:14;40692:29;;40543:184;;;;:::o;40733:132::-;40800:4;40823:3;40815:11;;40853:4;40848:3;40844:14;40836:22;;40733:132;;;:::o;40871:108::-;40948:24;40966:5;40948:24;:::i;:::-;40943:3;40936:37;40871:108;;:::o;40985:179::-;41054:10;41075:46;41117:3;41109:6;41075:46;:::i;:::-;41153:4;41148:3;41144:14;41130:28;;40985:179;;;;:::o;41170:113::-;41240:4;41272;41267:3;41263:14;41255:22;;41170:113;;;:::o;41319:732::-;41438:3;41467:54;41515:5;41467:54;:::i;:::-;41537:86;41616:6;41611:3;41537:86;:::i;:::-;41530:93;;41647:56;41697:5;41647:56;:::i;:::-;41726:7;41757:1;41742:284;41767:6;41764:1;41761:13;41742:284;;;41843:6;41837:13;41870:63;41929:3;41914:13;41870:63;:::i;:::-;41863:70;;41956:60;42009:6;41956:60;:::i;:::-;41946:70;;41802:224;41789:1;41786;41782:9;41777:14;;41742:284;;;41746:14;42042:3;42035:10;;41443:608;;;41319:732;;;;:::o;42057:831::-;42320:4;42358:3;42347:9;42343:19;42335:27;;42372:71;42440:1;42429:9;42425:17;42416:6;42372:71;:::i;:::-;42453:80;42529:2;42518:9;42514:18;42505:6;42453:80;:::i;:::-;42580:9;42574:4;42570:20;42565:2;42554:9;42550:18;42543:48;42608:108;42711:4;42702:6;42608:108;:::i;:::-;42600:116;;42726:72;42794:2;42783:9;42779:18;42770:6;42726:72;:::i;:::-;42808:73;42876:3;42865:9;42861:19;42852:6;42808:73;:::i;:::-;42057:831;;;;;;;;:::o

Swarm Source

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