ETH Price: $3,250.75 (+2.62%)
Gas: 4 Gwei

Token

Stealth Standard ($STEALTH)
 

Overview

Max Total Supply

1,000,000,000,000 $STEALTH

Holders

723

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
676,690,860.320901479244515415 $STEALTH

Value
$0.00
0xf2516bddd95f8edec5dbce36665d47100f3aec66
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:
Stealth

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-29
*/

/**
                                                                                                                        
                                                                                                                        
                                                                             `!'                                        
                                                                          _*YkwV*'                                      
                                                                      `!xomUIzwVcT^.                                    
                                                                   _*c55G3KUIzwVcl}Y*.                                  
                                                                !LG6OdZ5G3KUIzwVcu}Yix<'                                
                                                            -*kE$0E6OdZ5G3KUIzwVcu}Yixx*.                               
                                                         :YbQQ8g$0E6OdZ5G3KUIzwVcl}L*:`                                 
                                                     `~uEQBBQQ8g$0E6OdZ5G3KUIzwVL^_`                                    
                                                  -rXDg8QQBBQQ8g$0E6OdZ5G3mUoL;-                                        
                                               "ve9E0$g8QQBBQQ8g$0E6OdZ5G3Kx-                                           
                                           -^uHZdO9E0$g8QQBBQQ8g$0E6OdZ5G3KUjx!`                                        
                                        _*cKPGMZdO9E0$g8QQBBQQ8g$0E6OdZ5G3KUXzwV?:`                                     
                                    `!rVzIeKPGMZdO9E0$g8QQBBQQ8g$0E6OdZ5G3KUIzwVcr.                                     
                                 .!vuVVwzIeKPGMZdO9E0$g8QQBBQQ8g$0E6OdZ5G3KUIzwVx:'                                     
                             `_=|L}TuVVwzIeKPGMZdO9E0$g8QQBBQQ8g$0E6OdZ5G3KUIzwVcu}x^"'                                 
                             .!rxi}TuVVwzIeKPGMZdO9E0$g8QQBBQQ8g$0E6OdZ5G3KUIzwVcl}}v<,`                                
                                `:r}uVVwzIeKPGMZdO9E0$g8QQBBQQ8g$0E6OdZ5G3KUIzwV}*:'                                    
                                   `"r}wzIeKPGMZdO9E0$g8QQBBQQ8g$0E6OdZ5G3KUIzwV}!                                      
                                       -^}sKPGMZdO9E0$g8QQBBQQ8g$0E6OdZ5G3KUXzwVT*-                                     
                                          '~Y3MZdO9E0$g8QQBBQQ8g$0E6OdZ5G3mUXVr,                                        
                                             `:veO9E0$g8QQBBQQ8g$0E6OdZ5G3mx"                                           
                                                 _)XD$g8QQBBQQ8g$0E6OdZ5G3KI}<-                                         
                                                    `!YZQQBBQQ8g$0E6OdZ5G3KUXzwur:`                                     
                                                        _vqQQQ8g$0E6OdZ5G3KUIzwVcu}(!.                                  
                                                           '*V6g$0E6OdZ5G3KUIzwVcu}Yix)='                               
                                                               :xmR6OdZ5G3KUIzwVcu}Yix),                                
                                                                  .^}GZ5G3KUIzwVcu}Yv:                                  
                                                                      :?w3KUXzwVcuv:                                    
                                                                         -<LkzwVx"                                      
                                                                            `"*:                                        
                                                                                                                        
                                                                                                                        
                                                                                                                        
                                                                                                                        
                                                                                                                        
          .^v--?>'    `vxx`:xxxxxxr   -xxxxxxxxxx,       .xx*         vx~         ^xx:`xxxxxxx'  `\x~      rx*          
        'd@@@*(@@@Z.  :#@#,I@@@@@@Q   )##########}      `8@@@z        @@0         $@@j,@@@@@@@~  ,@@0      #@B          
        k@@L   `r@@M       I@@~                         d@@Q@@x       @@0             ,@@M       _@@6      #@B          
        !B@@8Mwx^:.`       I@@=       :zzzzzzzzz*      j@@V`B@@>      @@0             ,@@q       `zPUzzzzzz@@B          
          =T3EQ@@@8r       I@@=       ^QQQQQQQQQV     x@@M  ,B@#,     @@0             ,@@q       ,@@@QQQQQQ@@B          
       `0BE`   `:B@@`      I@@=                      `gQb`   "#@B'    @@0             ,@@q       ,@@0      #@B          
        v@@#Z::aD@@d       I@@=       !ZZZZZZZZZZ^  =MZZZZZZZZB@@$    @@0 5ddddj      ,@@q       ,@@0      #@B          
         .xa6=>DZy~        v0E_       =dddddddddd*  wddddddddddddd!   GZ} GZZZZz      .E0i       '5dT      mdk          
                                                                                                                        
                                                                                                                        
                                                                                                                        
 Telegram: https://t.me/StealthTokenOfficial
 Website: https://StealthToken.io
 Stealth
 The Home of Dynamic Stealth Tokenomics
 Making Crypto Great Again - As One
 Contract Creator Address: 0x68739D3CEFEb50d84838B3393535675cbf59E75A
 Multi-Sig Wallet Address for Eth: 0x852a8cb5D5e09133EDa0713C1A475A5B7dE80226
*/

pragma solidity ^0.8.6;
// SPDX-License-Identifier: UNLICENSED

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

/* @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

}

contract Ownable is Context {
    address payable private _owner;
    address payable private _previousOwner;
    uint256 private _lockTime;

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

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

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

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

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

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

    function getUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = payable(address(0));
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(_owner, address(0));
    }

    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(
            _previousOwner == msg.sender,
            "You don't have permission to unlock"
        );
        require(
            block.timestamp > _lockTime,
            "Contract is locked until defined days"
        );
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
        _previousOwner = payable(address(0));
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract Stealth is Context, IERC20, Ownable {
    using SafeMath for uint256;
    // If you are reading this then welcome - this is where the work happens.
    // StealthStandard Check
    mapping (address => uint256) private _balances;
    mapping (address => uint256) private _firstBuy;
    mapping (address => uint256) private _lastBuy;
    mapping (address => uint256) private _lastSell;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _hasTraded;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant _tTotal = 1000000000000 * 10**18;
    uint256 private _tradingStartTimestamp;
    uint256 public sellCoolDownTime = 60 seconds;
    uint256 private minTokensToSell = _tTotal.div(100000);
    
    address payable private _stealthMultiSigWallet;
    
    string private constant _name = "Stealth Standard";
    string private constant _symbol = "$STEALTH";
    uint8 private constant _decimals = 18;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private antiBotEnabled = false;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
        _stealthMultiSigWallet = payable(0x852a8cb5D5e09133EDa0713C1A475A5B7dE80226);
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_stealthMultiSigWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(balanceOf(from) >= amount,"Not enough balance for tx");


        // Check if we are buying or selling, or simply transferring
        //if (to == uniswapV2Pair && from != address(uniswapV2Router) && from != owner() && from != address(this) && ! _isExcludedFromFee[from]) {
        if ((to == uniswapV2Pair) && ! _isExcludedFromFee[from]) {
            // Selling to uniswapV2Pair:

            // ensure trading is open
            require(tradingOpen,"trading is not yet open");

            // Block known bots from selling - If you think this was a mistake please contact the Stealth Team
            require(!bots[from], "Stealth is a Bot Free Zone");

            // anti bot code - checks for buys and sells in the same block or within the sellCoolDownTime
            if  (antiBotEnabled) {
                uint256 lastBuy = _lastBuy[from];
                require(block.timestamp > lastBuy, "Sorry - no FrontRunning allowed right now");
                require(cooldown[from] < block.timestamp);
                cooldown[from] = block.timestamp + sellCoolDownTime;
            }

            // Has Seller made a trade before? If not set to current block timestamp
            // We check this again on a sell to make sure they didn't transfer to a new wallet
            if (!_hasTraded[from]){
                _firstBuy[from] = block.timestamp;
                _hasTraded[from] = true;
            }

            if (swapEnabled) {
                // handle sell of tokens in contract for Eth
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance >= minTokensToSell) {
                    if (!inSwap) {
                        swapTokensForEth(contractTokenBalance);
                        uint256 contractETHBalance = address(this).balance;
                        if(contractETHBalance > 0) {
                        sendETHToWallet(address(this).balance);
                        }
                    }
                }
            }
            
            // Check to see if just taking profits or selling over 5%
            bool justTakingProfits = _justTakingProfits(amount, from);
            uint256 numHours = _getHours(_lastSell[from], block.timestamp);
            uint256 numDays = (numHours / 24);
            if (justTakingProfits) {
                // just taking profits but need to make sure its been more than 7 days since last sell if so
                if (numDays < 7) {
                    _firstBuy[from] = block.timestamp;
                    _lastBuy[from] = block.timestamp;
                }
            } else {
                if (numDays < 84) {
                // sold over 5% so we reset the last buy to be now
                _firstBuy[from] = block.timestamp;
                _lastBuy[from] = block.timestamp;
                }
            }

            // Record last sell timestamp
            _lastSell[from] = block.timestamp;

            // Transfer with taxes
            _tokenTransferTaxed(from,to,amount);

        //} else if (from == uniswapV2Pair && to != address(uniswapV2Router) && to != owner() && to != address(this)) {
        } else if ((from == uniswapV2Pair) && ! _isExcludedFromFee[to]) {
            // Buying from uniswapV2Pair:

            // ensure trading is open
            require(tradingOpen,"trading is not yet open");

            // Has buyer made a trade before? If not set to current block timestamp
            if (!_hasTraded[to]){
                _firstBuy[to] = block.timestamp;
                _hasTraded[to] = true;
            }

            // snapshot the last buy timestamp
            _lastBuy[to] = block.timestamp;

            // Simple Transfer with no taxes 
            _transferFree(from, to, amount);
        } else {
            // Other transfer

            // Block known bots from selling - If you think this was a mistake please contact the Stealth Team
            require(!bots[from] && !bots[to], "Stealth is a Bot Free Zone");

            // Handle the case of wallet to wallet transfer
            _firstBuy[to] = block.timestamp;
            _hasTraded[to] = true;

            // Simple Transfer with no taxes
            _transferFree(from, to, amount);
        }

    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount, 
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    // If we are doing a tax free Transfer that happens here after _transfer:
    function _transferFree(address sender, address recipient, uint256 tAmount) private {
        _balances[sender] = _balances[sender].sub(tAmount);
        _balances[recipient] = _balances[recipient].add(tAmount); 
        emit Transfer(sender, recipient, tAmount);
    }
        
    // If we are doing a taxed Transfer that happens here after _transfer:
    function _tokenTransferTaxed(address sender, address recipient, uint256 amount) private {
        _transferTaxed(sender, recipient, amount);
    }

    function _transferTaxed(address sender, address recipient, uint256 tAmount) private {

        // Calculate the taxed token amount
        uint256 tTeam = _getTaxedValue(tAmount, sender);
        uint256 transferAmount = tAmount - tTeam;

        _balances[sender] = _balances[sender].sub(tAmount);
        _balances[recipient] = _balances[recipient].add(transferAmount); 
        _takeTeam(tTeam);
        emit Transfer(sender, recipient, transferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        _balances[address(this)] = _balances[address(this)].add(tTeam);
    }

    // Check to see if the sell amount is greater than 5% of tokens in a 7 day period
    function _justTakingProfits(uint256 sellAmount, address account) private view returns(bool) {
        // Basic cheak to see if we are selling more than 5% - if so return false
        if ((sellAmount * 20) > _balances[account]) {
            return false;
        } else {
            return true;
        }
    }

    // Calculate the number of taxed tokens for a transaction
    function _getTaxedValue(uint256 transTokens, address account) private view returns(uint256){
        uint256 taxRate = _getTaxRate(account);
        if (taxRate == 0) {
            return 0;
        } else {
            uint256 numerator = (transTokens * (10000 - (100 * taxRate)));
            return (((transTokens * 10000) - numerator) / 10000);
        }
    }

    // Calculate the current tax rate.
	function _getTaxRate(address account) private view returns(uint256) {
        uint256 numHours = _getHours(_tradingStartTimestamp, block.timestamp);

        if (numHours <= 24){
            // 20% Sell Tax first 24 Hours
            return 20;
        } else if (numHours <= 48){
            // 16% Sell Tax second 24 Hours
            return 16;
        } else {
            // 12% Sell Tax starting rate
            numHours = _getHours(_firstBuy[account], block.timestamp);
            uint256 numDays = (numHours / 24);
            if (numDays >= 84 ){
                //12 x 7 = 84 = tax free!
                return 0;
            } else {
                uint256 numWeeks = (numDays / 7);
                return (12 - numWeeks);
            }
        }
    }

    // Calculate the number of hours that have passed between endDate and startDate:
    function _getHours(uint256 startDate, uint256 endDate) private pure returns(uint256){
        return ((endDate - startDate) / 60 / 60);
    }
    
    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _stealthMultiSigWallet || _msgSender() == address(this) || _msgSender() == owner());
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _stealthMultiSigWallet || _msgSender() == address(this) || _msgSender() == owner());
        uint256 contractETHBalance = address(this).balance;
        sendETHToWallet(contractETHBalance);
    }

    function airdrop(address[] memory _user, uint256[] memory _amount) external onlyOwner {
        uint256 len = _user.length;
        require(len == _amount.length);
        for (uint256 i = 0; i < len; i++) {
            _balances[_msgSender()] = _balances[_msgSender()].sub(_amount[i], "ERC20: transfer amount exceeds balance");
            _balances[_user[i]] = _balances[_user[i]].add(_amount[i]);
            emit Transfer(_msgSender(), _user[i], _amount[i]);
        }
    }
    
    function setMultipleBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function setBot(address isbot) public onlyOwner {
        bots[isbot] = true;
    }
    
    function deleteBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function isBlacklisted(address isbot) public view returns(bool) {
        return bots[isbot];
    }

    function setAntiBotMode(bool onoff) external onlyOwner() {
        antiBotEnabled = onoff;
    }

    function isAntiBotEnabled() public view returns(bool) {
        return antiBotEnabled;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setSellCoolDownTime(uint256 _newTime) public onlyOwner {
        sellCoolDownTime = _newTime;
    }

    function updateRouter(IUniswapV2Router02 newRouter, address newPair) external onlyOwner {
        uniswapV2Router = newRouter;
        uniswapV2Pair = newPair;
    }
            
    function sendETHToWallet(uint256 amount) private {
        _stealthMultiSigWallet.transfer(amount);
    }
    
    function startTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        antiBotEnabled = true;
        swapEnabled = true;
        tradingOpen = true;
        _tradingStartTimestamp = block.timestamp;
    }

    function setSwapEnabledMode(bool swap) external onlyOwner {
        swapEnabled = swap;
    }

    function isTradingOpen() public view returns(bool) {
        return tradingOpen;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"_user","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"airdrop","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"deleteBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isAntiBotEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"isbot","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellCoolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setAntiBotMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"isbot","type":"address"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setMultipleBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTime","type":"uint256"}],"name":"setSellCoolDownTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swap","type":"bool"}],"name":"setSwapEnabledMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","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":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IUniswapV2Router02","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052603c600d5562000033620186a06c0c9f2c9cd04674edea400000006200062860201b620020821790919060201c565b600e556000601160146101000a81548160ff0219169083151502179055506000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff021916908315150217905550348015620000af57600080fd5b50620000c06200067a60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a373852a8cb5d5e09133eda0713c1a475a5b7de80226600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023157600080fd5b505afa15801562000246573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026c91906200072a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002cf57600080fd5b505afa158015620002e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030a91906200072a565b6040518363ffffffff1660e01b815260040162000329929190620007bf565b602060405180830381600087803b1580156200034457600080fd5b505af115801562000359573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037f91906200072a565b905081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506c0c9f2c9cd04674edea4000000060036000620004256200067a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620004796200068260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005ac6200067a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c0c9f2c9cd04674edea4000000060405162000618919062000810565b60405180910390a3505062000954565b60006200067283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006ab60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620006f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006ec9190620007ec565b60405180910390fd5b506000838562000706919062000849565b9050809150509392505050565b60008151905062000724816200093a565b92915050565b60006020828403121562000743576200074262000924565b5b6000620007538482850162000713565b91505092915050565b620007678162000881565b82525050565b60006200077a826200082d565b62000786818562000838565b935062000798818560208601620008bf565b620007a38162000929565b840191505092915050565b620007b981620008b5565b82525050565b6000604082019050620007d660008301856200075c565b620007e560208301846200075c565b9392505050565b600060208201905081810360008301526200080881846200076d565b905092915050565b6000602082019050620008276000830184620007ae565b92915050565b600081519050919050565b600082825260208201905092915050565b60006200085682620008b5565b91506200086383620008b5565b925082620008765762000875620008f5565b5b828204905092915050565b60006200088e8262000895565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620008df578082015181840152602081019050620008c2565b83811115620008ef576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b620009458162000881565b81146200095157600080fd5b50565b614b6b80620009646000396000f3fe6080604052600436106101fd5760003560e01c80636b5caec41161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e146106b8578063ea2f0b37146106f5578063f0327afc1461071e578063f2fde38b14610749578063fe575a871461077257610204565b8063a9059cbb14610612578063bf49e0581461064f578063c3c8cd8014610678578063dd4670641461068f57610204565b80638a60b622116100dc5780638a60b6221461057c5780638da5cb5b146105a557806395d89b41146105d0578063a69df4b5146105fb57610204565b80636b5caec4146104e85780636fc3eaec1461051157806370a0823114610528578063715018a61461056557610204565b8063357d39111161019057806349bd5a5e1161015f57806349bd5a5e1461041357806356a060a21461043e578063602bc62b1461046957806361d371dd1461049457806367243482146104bf57610204565b8063357d39111461036f57806336ce4c0e146103985780633bf2e2b0146103c1578063437823ec146103ea57610204565b806318160ddd116101cc57806318160ddd146102c557806323b872dd146102f0578063293230b81461032d578063313ce5671461034457610204565b806306291ffc1461020957806306fdde0314610232578063095ea7b31461025d5780631694505e1461029a57610204565b3661020457005b600080fd5b34801561021557600080fd5b50610230600480360381019061022b91906139d6565b6107af565b005b34801561023e57600080fd5b5061024761089f565b6040516102549190614001565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f9190613af0565b6108dc565b6040516102919190613fcb565b60405180910390f35b3480156102a657600080fd5b506102af6108fa565b6040516102bc9190613fe6565b60405180910390f35b3480156102d157600080fd5b506102da610920565b6040516102e79190614203565b60405180910390f35b3480156102fc57600080fd5b5061031760048036038101906103129190613a9d565b610935565b6040516103249190613fcb565b60405180910390f35b34801561033957600080fd5b50610342610a0e565b005b34801561035057600080fd5b50610359610b4d565b6040516103669190614278565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190613c1e565b610b56565b005b3480156103a457600080fd5b506103bf60048036038101906103ba9190613bf1565b610c71565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190613c5e565b610d23565b005b3480156103f657600080fd5b50610411600480360381019061040c91906139d6565b610dc2565b005b34801561041f57600080fd5b50610428610eb2565b6040516104359190613fb0565b60405180910390f35b34801561044a57600080fd5b50610453610ed8565b6040516104609190613fcb565b60405180910390f35b34801561047557600080fd5b5061047e610eef565b60405161048b9190614203565b60405180910390f35b3480156104a057600080fd5b506104a9610ef9565b6040516104b69190613fcb565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190613b79565b610f10565b005b3480156104f457600080fd5b5061050f600480360381019061050a91906139d6565b611236565b005b34801561051d57600080fd5b50610526611326565b005b34801561053457600080fd5b5061054f600480360381019061054a91906139d6565b611419565b60405161055c9190614203565b60405180910390f35b34801561057157600080fd5b5061057a611462565b005b34801561058857600080fd5b506105a3600480360381019061059e9190613bf1565b6115b5565b005b3480156105b157600080fd5b506105ba611667565b6040516105c79190613fb0565b60405180910390f35b3480156105dc57600080fd5b506105e5611690565b6040516105f29190614001565b60405180910390f35b34801561060757600080fd5b506106106116cd565b005b34801561061e57600080fd5b5061063960048036038101906106349190613af0565b6118e3565b6040516106469190613fcb565b60405180910390f35b34801561065b57600080fd5b5061067660048036038101906106719190613b30565b611901565b005b34801561068457600080fd5b5061068d611a2b565b005b34801561069b57600080fd5b506106b660048036038101906106b19190613c5e565b611b26565b005b3480156106c457600080fd5b506106df60048036038101906106da9190613a5d565b611ced565b6040516106ec9190614203565b60405180910390f35b34801561070157600080fd5b5061071c600480360381019061071791906139d6565b611d74565b005b34801561072a57600080fd5b50610733611e64565b6040516107409190614203565b60405180910390f35b34801561075557600080fd5b50610770600480360381019061076b9190613a30565b611e6a565b005b34801561077e57600080fd5b50610799600480360381019061079491906139d6565b61202c565b6040516107a69190613fcb565b60405180910390f35b6107b76120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083b90614123565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280601081526020017f537465616c7468205374616e6461726400000000000000000000000000000000815250905090565b60006108f06108e96120cc565b84846120d4565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006c0c9f2c9cd04674edea40000000905090565b600061094284848461229f565b610a038461094e6120cc565b6109fe85604051806060016040528060288152602001614b0e60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b46120cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de29092919063ffffffff16565b6120d4565b600190509392505050565b610a166120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90614123565b60405180910390fd5b601160149054906101000a900460ff1615610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea906141c3565b60405180910390fd5b6001601160176101000a81548160ff0219169083151502179055506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555042600c81905550565b60006012905090565b610b5e6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be290614123565b60405180910390fd5b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610c796120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90614123565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b610d2b6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90614123565b60405180910390fd5b80600d8190555050565b610dca6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90614123565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601160149054906101000a900460ff16905090565b6000600254905090565b6000601160179054906101000a900460ff16905090565b610f186120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c90614123565b60405180910390fd5b60008251905081518114610fb857600080fd5b60005b8181101561123057611050838281518110610fd957610fd8614634565b5b6020026020010151604051806060016040528060268152602001614ae860269139600360006110066120cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de29092919063ffffffff16565b6003600061105c6120cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111208382815181106110b0576110af614634565b5b6020026020010151600360008785815181106110cf576110ce614634565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4690919063ffffffff16565b6003600086848151811061113757611136614634565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508381815181106111905761118f614634565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166111b66120cc565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858481518110611200576111ff614634565b5b60200260200101516040516112159190614203565b60405180910390a380806112289061458d565b915050610fbb565b50505050565b61123e6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c290614123565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113676120cc565b73ffffffffffffffffffffffffffffffffffffffff1614806113bb57503073ffffffffffffffffffffffffffffffffffffffff166113a36120cc565b73ffffffffffffffffffffffffffffffffffffffff16145b806113ff57506113c9611667565b73ffffffffffffffffffffffffffffffffffffffff166113e76120cc565b73ffffffffffffffffffffffffffffffffffffffff16145b61140857600080fd5b600047905061141681612ea4565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61146a6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90614123565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6115bd6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190614123565b60405180910390fd5b80601160166101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f24535445414c5448000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611754906141e3565b60405180910390fd5b60025442116117a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179890614043565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006118f76118f06120cc565b848461229f565b6001905092915050565b6119096120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d90614123565b60405180910390fd5b60005b8151811015611a27576001600a60008484815181106119bb576119ba614634565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611a1f9061458d565b915050611999565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a6c6120cc565b73ffffffffffffffffffffffffffffffffffffffff161480611ac057503073ffffffffffffffffffffffffffffffffffffffff16611aa86120cc565b73ffffffffffffffffffffffffffffffffffffffff16145b80611b045750611ace611667565b73ffffffffffffffffffffffffffffffffffffffff16611aec6120cc565b73ffffffffffffffffffffffffffffffffffffffff16145b611b0d57600080fd5b6000611b1830611419565b9050611b2381612f10565b50565b611b2e6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb290614123565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508042611c699190614365565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d7c6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0090614123565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d5481565b611e726120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef690614123565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6690614083565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006120c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613198565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b906141a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ab906140a3565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122929190614203565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561230f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230690614183565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561237f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237690614023565b60405180910390fd5b600081116123c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b990614143565b60405180910390fd5b806123cc84611419565b101561240d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612404906140e3565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156124b45750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a1457601160149054906101000a900460ff16612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff90614063565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258c90614163565b60405180910390fd5b601160179054906101000a900460ff16156126ce576000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050804211612630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262790614103565b60405180910390fd5b42600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061267b57600080fd5b600d54426126899190614365565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127bc5742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601160169054906101000a900460ff16156128215760006127dc30611419565b9050600e54811061281f57601160159054906101000a900460ff1661281e5761280481612f10565b6000479050600081111561281c5761281b47612ea4565b5b505b5b505b600061282d82856131fb565b9050600061287a600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442613264565b9050600060188261288b91906143bb565b9050821561292a5760078110156129255742600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6129bd565b60548110156129bc5742600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b42600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a0c868686613291565b505050612ddd565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612abb5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5157601160149054906101000a900460ff16612b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0690614063565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612bfd5742600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b42600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4c8383836132a1565b612ddc565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cf55750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2b90614163565b60405180910390fd5b42600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612ddb8383836132a1565b5b5b505050565b6000838311158290612e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e219190614001565b60405180910390fd5b5060008385612e399190614446565b9050809150509392505050565b6000808284612e559190614365565b905083811015612e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e91906140c3565b60405180910390fd5b8091505092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f0c573d6000803e3d6000fd5b5050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612f4857612f47614663565b5b604051908082528060200260200182016040528015612f765781602001602082028036833780820191505090505b5090503081600081518110612f8e57612f8d614634565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561303057600080fd5b505afa158015613044573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130689190613a03565b8160018151811061307c5761307b614634565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506130e330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120d4565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161314795949392919061421e565b600060405180830381600087803b15801561316157600080fd5b505af1158015613175573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831182906131df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d69190614001565b60405180910390fd5b50600083856131ee91906143bb565b9050809150509392505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460148461324a91906143ec565b1115613259576000905061325e565b600190505b92915050565b6000603c8084846132759190614446565b61327f91906143bb565b61328991906143bb565b905092915050565b61329c838383613435565b505050565b6132f381600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f290919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061338881600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134289190614203565b60405180910390a3505050565b6000613441828561363c565b9050600081836134519190614446565b90506134a583600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f290919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061353a81600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4690919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613586826136b7565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135e39190614203565b60405180910390a35050505050565b600061363483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de2565b905092915050565b6000806136488361374f565b9050600081141561365d5760009150506136b1565b600081606461366c91906143ec565b6127106136799190614446565b8561368491906143ec565b9050612710816127108761369891906143ec565b6136a29190614446565b6136ac91906143bb565b925050505b92915050565b61370981600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60008061375e600c5442613264565b905060188111613772576014915050613817565b60308111613784576010915050613817565b6137cd600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442613264565b905060006018826137de91906143bb565b9050605481106137f357600092505050613817565b600060078261380291906143bb565b905080600c6138119190614446565b93505050505b919050565b600061382f61382a846142b8565b614293565b9050808382526020820190508285602086028201111561385257613851614697565b5b60005b85811015613882578161386888826138fc565b845260208401935060208301925050600181019050613855565b5050509392505050565b600061389f61389a846142e4565b614293565b905080838252602082019050828560208602820111156138c2576138c1614697565b5b60005b858110156138f257816138d888826139c1565b8452602084019350602083019250506001810190506138c5565b5050509392505050565b60008135905061390b81614a74565b92915050565b60008151905061392081614a74565b92915050565b60008135905061393581614a8b565b92915050565b600082601f8301126139505761394f614692565b5b813561396084826020860161381c565b91505092915050565b600082601f83011261397e5761397d614692565b5b813561398e84826020860161388c565b91505092915050565b6000813590506139a681614aa2565b92915050565b6000813590506139bb81614ab9565b92915050565b6000813590506139d081614ad0565b92915050565b6000602082840312156139ec576139eb6146a1565b5b60006139fa848285016138fc565b91505092915050565b600060208284031215613a1957613a186146a1565b5b6000613a2784828501613911565b91505092915050565b600060208284031215613a4657613a456146a1565b5b6000613a5484828501613926565b91505092915050565b60008060408385031215613a7457613a736146a1565b5b6000613a82858286016138fc565b9250506020613a93858286016138fc565b9150509250929050565b600080600060608486031215613ab657613ab56146a1565b5b6000613ac4868287016138fc565b9350506020613ad5868287016138fc565b9250506040613ae6868287016139c1565b9150509250925092565b60008060408385031215613b0757613b066146a1565b5b6000613b15858286016138fc565b9250506020613b26858286016139c1565b9150509250929050565b600060208284031215613b4657613b456146a1565b5b600082013567ffffffffffffffff811115613b6457613b6361469c565b5b613b708482850161393b565b91505092915050565b60008060408385031215613b9057613b8f6146a1565b5b600083013567ffffffffffffffff811115613bae57613bad61469c565b5b613bba8582860161393b565b925050602083013567ffffffffffffffff811115613bdb57613bda61469c565b5b613be785828601613969565b9150509250929050565b600060208284031215613c0757613c066146a1565b5b6000613c1584828501613997565b91505092915050565b60008060408385031215613c3557613c346146a1565b5b6000613c43858286016139ac565b9250506020613c54858286016138fc565b9150509250929050565b600060208284031215613c7457613c736146a1565b5b6000613c82848285016139c1565b91505092915050565b6000613c978383613ca3565b60208301905092915050565b613cac8161447a565b82525050565b613cbb8161447a565b82525050565b6000613ccc82614320565b613cd68185614343565b9350613ce183614310565b8060005b83811015613d12578151613cf98882613c8b565b9750613d0483614336565b925050600181019050613ce5565b5085935050505092915050565b613d288161449e565b82525050565b613d37816144f3565b82525050565b613d4681614517565b82525050565b6000613d578261432b565b613d618185614354565b9350613d71818560208601614529565b613d7a816146a6565b840191505092915050565b6000613d92602383614354565b9150613d9d826146b7565b604082019050919050565b6000613db5602583614354565b9150613dc082614706565b604082019050919050565b6000613dd8601783614354565b9150613de382614755565b602082019050919050565b6000613dfb602683614354565b9150613e068261477e565b604082019050919050565b6000613e1e602283614354565b9150613e29826147cd565b604082019050919050565b6000613e41601b83614354565b9150613e4c8261481c565b602082019050919050565b6000613e64601983614354565b9150613e6f82614845565b602082019050919050565b6000613e87602983614354565b9150613e928261486e565b604082019050919050565b6000613eaa602083614354565b9150613eb5826148bd565b602082019050919050565b6000613ecd602983614354565b9150613ed8826148e6565b604082019050919050565b6000613ef0601a83614354565b9150613efb82614935565b602082019050919050565b6000613f13602583614354565b9150613f1e8261495e565b604082019050919050565b6000613f36602483614354565b9150613f41826149ad565b604082019050919050565b6000613f59601783614354565b9150613f64826149fc565b602082019050919050565b6000613f7c602383614354565b9150613f8782614a25565b604082019050919050565b613f9b816144dc565b82525050565b613faa816144e6565b82525050565b6000602082019050613fc56000830184613cb2565b92915050565b6000602082019050613fe06000830184613d1f565b92915050565b6000602082019050613ffb6000830184613d2e565b92915050565b6000602082019050818103600083015261401b8184613d4c565b905092915050565b6000602082019050818103600083015261403c81613d85565b9050919050565b6000602082019050818103600083015261405c81613da8565b9050919050565b6000602082019050818103600083015261407c81613dcb565b9050919050565b6000602082019050818103600083015261409c81613dee565b9050919050565b600060208201905081810360008301526140bc81613e11565b9050919050565b600060208201905081810360008301526140dc81613e34565b9050919050565b600060208201905081810360008301526140fc81613e57565b9050919050565b6000602082019050818103600083015261411c81613e7a565b9050919050565b6000602082019050818103600083015261413c81613e9d565b9050919050565b6000602082019050818103600083015261415c81613ec0565b9050919050565b6000602082019050818103600083015261417c81613ee3565b9050919050565b6000602082019050818103600083015261419c81613f06565b9050919050565b600060208201905081810360008301526141bc81613f29565b9050919050565b600060208201905081810360008301526141dc81613f4c565b9050919050565b600060208201905081810360008301526141fc81613f6f565b9050919050565b60006020820190506142186000830184613f92565b92915050565b600060a0820190506142336000830188613f92565b6142406020830187613d3d565b81810360408301526142528186613cc1565b90506142616060830185613cb2565b61426e6080830184613f92565b9695505050505050565b600060208201905061428d6000830184613fa1565b92915050565b600061429d6142ae565b90506142a9828261455c565b919050565b6000604051905090565b600067ffffffffffffffff8211156142d3576142d2614663565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156142ff576142fe614663565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614370826144dc565b915061437b836144dc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143b0576143af6145d6565b5b828201905092915050565b60006143c6826144dc565b91506143d1836144dc565b9250826143e1576143e0614605565b5b828204905092915050565b60006143f7826144dc565b9150614402836144dc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561443b5761443a6145d6565b5b828202905092915050565b6000614451826144dc565b915061445c836144dc565b92508282101561446f5761446e6145d6565b5b828203905092915050565b6000614485826144bc565b9050919050565b6000614497826144bc565b9050919050565b60008115159050919050565b60006144b58261447a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006144fe82614505565b9050919050565b6000614510826144bc565b9050919050565b6000614522826144dc565b9050919050565b60005b8381101561454757808201518184015260208101905061452c565b83811115614556576000848401525b50505050565b614565826146a6565b810181811067ffffffffffffffff8211171561458457614583614663565b5b80604052505050565b6000614598826144dc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156145cb576145ca6145d6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973206c6f636b656420756e74696c20646566696e656460008201527f2064617973000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4e6f7420656e6f7567682062616c616e636520666f7220747800000000000000600082015250565b7f536f727279202d206e6f2046726f6e7452756e6e696e6720616c6c6f7765642060008201527f7269676874206e6f770000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f537465616c7468206973206120426f742046726565205a6f6e65000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b614a7d8161447a565b8114614a8857600080fd5b50565b614a948161448c565b8114614a9f57600080fd5b50565b614aab8161449e565b8114614ab657600080fd5b50565b614ac2816144aa565b8114614acd57600080fd5b50565b614ad9816144dc565b8114614ae457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d19ce80d824c23f20ef23ce6fa9664081761593819659a6fbe6272b3a7dedce664736f6c63430008060033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80636b5caec41161010d578063a9059cbb116100a0578063dd62ed3e1161006f578063dd62ed3e146106b8578063ea2f0b37146106f5578063f0327afc1461071e578063f2fde38b14610749578063fe575a871461077257610204565b8063a9059cbb14610612578063bf49e0581461064f578063c3c8cd8014610678578063dd4670641461068f57610204565b80638a60b622116100dc5780638a60b6221461057c5780638da5cb5b146105a557806395d89b41146105d0578063a69df4b5146105fb57610204565b80636b5caec4146104e85780636fc3eaec1461051157806370a0823114610528578063715018a61461056557610204565b8063357d39111161019057806349bd5a5e1161015f57806349bd5a5e1461041357806356a060a21461043e578063602bc62b1461046957806361d371dd1461049457806367243482146104bf57610204565b8063357d39111461036f57806336ce4c0e146103985780633bf2e2b0146103c1578063437823ec146103ea57610204565b806318160ddd116101cc57806318160ddd146102c557806323b872dd146102f0578063293230b81461032d578063313ce5671461034457610204565b806306291ffc1461020957806306fdde0314610232578063095ea7b31461025d5780631694505e1461029a57610204565b3661020457005b600080fd5b34801561021557600080fd5b50610230600480360381019061022b91906139d6565b6107af565b005b34801561023e57600080fd5b5061024761089f565b6040516102549190614001565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f9190613af0565b6108dc565b6040516102919190613fcb565b60405180910390f35b3480156102a657600080fd5b506102af6108fa565b6040516102bc9190613fe6565b60405180910390f35b3480156102d157600080fd5b506102da610920565b6040516102e79190614203565b60405180910390f35b3480156102fc57600080fd5b5061031760048036038101906103129190613a9d565b610935565b6040516103249190613fcb565b60405180910390f35b34801561033957600080fd5b50610342610a0e565b005b34801561035057600080fd5b50610359610b4d565b6040516103669190614278565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190613c1e565b610b56565b005b3480156103a457600080fd5b506103bf60048036038101906103ba9190613bf1565b610c71565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190613c5e565b610d23565b005b3480156103f657600080fd5b50610411600480360381019061040c91906139d6565b610dc2565b005b34801561041f57600080fd5b50610428610eb2565b6040516104359190613fb0565b60405180910390f35b34801561044a57600080fd5b50610453610ed8565b6040516104609190613fcb565b60405180910390f35b34801561047557600080fd5b5061047e610eef565b60405161048b9190614203565b60405180910390f35b3480156104a057600080fd5b506104a9610ef9565b6040516104b69190613fcb565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190613b79565b610f10565b005b3480156104f457600080fd5b5061050f600480360381019061050a91906139d6565b611236565b005b34801561051d57600080fd5b50610526611326565b005b34801561053457600080fd5b5061054f600480360381019061054a91906139d6565b611419565b60405161055c9190614203565b60405180910390f35b34801561057157600080fd5b5061057a611462565b005b34801561058857600080fd5b506105a3600480360381019061059e9190613bf1565b6115b5565b005b3480156105b157600080fd5b506105ba611667565b6040516105c79190613fb0565b60405180910390f35b3480156105dc57600080fd5b506105e5611690565b6040516105f29190614001565b60405180910390f35b34801561060757600080fd5b506106106116cd565b005b34801561061e57600080fd5b5061063960048036038101906106349190613af0565b6118e3565b6040516106469190613fcb565b60405180910390f35b34801561065b57600080fd5b5061067660048036038101906106719190613b30565b611901565b005b34801561068457600080fd5b5061068d611a2b565b005b34801561069b57600080fd5b506106b660048036038101906106b19190613c5e565b611b26565b005b3480156106c457600080fd5b506106df60048036038101906106da9190613a5d565b611ced565b6040516106ec9190614203565b60405180910390f35b34801561070157600080fd5b5061071c600480360381019061071791906139d6565b611d74565b005b34801561072a57600080fd5b50610733611e64565b6040516107409190614203565b60405180910390f35b34801561075557600080fd5b50610770600480360381019061076b9190613a30565b611e6a565b005b34801561077e57600080fd5b50610799600480360381019061079491906139d6565b61202c565b6040516107a69190613fcb565b60405180910390f35b6107b76120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083b90614123565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280601081526020017f537465616c7468205374616e6461726400000000000000000000000000000000815250905090565b60006108f06108e96120cc565b84846120d4565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006c0c9f2c9cd04674edea40000000905090565b600061094284848461229f565b610a038461094e6120cc565b6109fe85604051806060016040528060288152602001614b0e60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b46120cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de29092919063ffffffff16565b6120d4565b600190509392505050565b610a166120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90614123565b60405180910390fd5b601160149054906101000a900460ff1615610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea906141c3565b60405180910390fd5b6001601160176101000a81548160ff0219169083151502179055506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555042600c81905550565b60006012905090565b610b5e6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be290614123565b60405180910390fd5b81601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610c796120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90614123565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b610d2b6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90614123565b60405180910390fd5b80600d8190555050565b610dca6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90614123565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601160149054906101000a900460ff16905090565b6000600254905090565b6000601160179054906101000a900460ff16905090565b610f186120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c90614123565b60405180910390fd5b60008251905081518114610fb857600080fd5b60005b8181101561123057611050838281518110610fd957610fd8614634565b5b6020026020010151604051806060016040528060268152602001614ae860269139600360006110066120cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612de29092919063ffffffff16565b6003600061105c6120cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111208382815181106110b0576110af614634565b5b6020026020010151600360008785815181106110cf576110ce614634565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4690919063ffffffff16565b6003600086848151811061113757611136614634565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508381815181106111905761118f614634565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166111b66120cc565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858481518110611200576111ff614634565b5b60200260200101516040516112159190614203565b60405180910390a380806112289061458d565b915050610fbb565b50505050565b61123e6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c290614123565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113676120cc565b73ffffffffffffffffffffffffffffffffffffffff1614806113bb57503073ffffffffffffffffffffffffffffffffffffffff166113a36120cc565b73ffffffffffffffffffffffffffffffffffffffff16145b806113ff57506113c9611667565b73ffffffffffffffffffffffffffffffffffffffff166113e76120cc565b73ffffffffffffffffffffffffffffffffffffffff16145b61140857600080fd5b600047905061141681612ea4565b50565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61146a6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90614123565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6115bd6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190614123565b60405180910390fd5b80601160166101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f24535445414c5448000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611754906141e3565b60405180910390fd5b60025442116117a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179890614043565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006118f76118f06120cc565b848461229f565b6001905092915050565b6119096120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198d90614123565b60405180910390fd5b60005b8151811015611a27576001600a60008484815181106119bb576119ba614634565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611a1f9061458d565b915050611999565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a6c6120cc565b73ffffffffffffffffffffffffffffffffffffffff161480611ac057503073ffffffffffffffffffffffffffffffffffffffff16611aa86120cc565b73ffffffffffffffffffffffffffffffffffffffff16145b80611b045750611ace611667565b73ffffffffffffffffffffffffffffffffffffffff16611aec6120cc565b73ffffffffffffffffffffffffffffffffffffffff16145b611b0d57600080fd5b6000611b1830611419565b9050611b2381612f10565b50565b611b2e6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb290614123565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508042611c699190614365565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d7c6120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0090614123565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d5481565b611e726120cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef690614123565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6690614083565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006120c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613198565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b906141a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ab906140a3565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516122929190614203565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561230f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230690614183565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561237f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237690614023565b60405180910390fd5b600081116123c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b990614143565b60405180910390fd5b806123cc84611419565b101561240d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612404906140e3565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156124b45750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a1457601160149054906101000a900460ff16612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff90614063565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258c90614163565b60405180910390fd5b601160179054906101000a900460ff16156126ce576000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050804211612630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262790614103565b60405180910390fd5b42600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061267b57600080fd5b600d54426126899190614365565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127bc5742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601160169054906101000a900460ff16156128215760006127dc30611419565b9050600e54811061281f57601160159054906101000a900460ff1661281e5761280481612f10565b6000479050600081111561281c5761281b47612ea4565b5b505b5b505b600061282d82856131fb565b9050600061287a600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442613264565b9050600060188261288b91906143bb565b9050821561292a5760078110156129255742600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6129bd565b60548110156129bc5742600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b42600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a0c868686613291565b505050612ddd565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612abb5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612c5157601160149054906101000a900460ff16612b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0690614063565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612bfd5742600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b42600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4c8383836132a1565b612ddc565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cf55750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2b90614163565b60405180910390fd5b42600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612ddb8383836132a1565b5b5b505050565b6000838311158290612e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e219190614001565b60405180910390fd5b5060008385612e399190614446565b9050809150509392505050565b6000808284612e559190614365565b905083811015612e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e91906140c3565b60405180910390fd5b8091505092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f0c573d6000803e3d6000fd5b5050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612f4857612f47614663565b5b604051908082528060200260200182016040528015612f765781602001602082028036833780820191505090505b5090503081600081518110612f8e57612f8d614634565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561303057600080fd5b505afa158015613044573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130689190613a03565b8160018151811061307c5761307b614634565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506130e330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120d4565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161314795949392919061421e565b600060405180830381600087803b15801561316157600080fd5b505af1158015613175573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831182906131df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d69190614001565b60405180910390fd5b50600083856131ee91906143bb565b9050809150509392505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460148461324a91906143ec565b1115613259576000905061325e565b600190505b92915050565b6000603c8084846132759190614446565b61327f91906143bb565b61328991906143bb565b905092915050565b61329c838383613435565b505050565b6132f381600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f290919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061338881600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516134289190614203565b60405180910390a3505050565b6000613441828561363c565b9050600081836134519190614446565b90506134a583600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f290919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061353a81600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4690919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613586826136b7565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516135e39190614203565b60405180910390a35050505050565b600061363483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de2565b905092915050565b6000806136488361374f565b9050600081141561365d5760009150506136b1565b600081606461366c91906143ec565b6127106136799190614446565b8561368491906143ec565b9050612710816127108761369891906143ec565b6136a29190614446565b6136ac91906143bb565b925050505b92915050565b61370981600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4690919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60008061375e600c5442613264565b905060188111613772576014915050613817565b60308111613784576010915050613817565b6137cd600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442613264565b905060006018826137de91906143bb565b9050605481106137f357600092505050613817565b600060078261380291906143bb565b905080600c6138119190614446565b93505050505b919050565b600061382f61382a846142b8565b614293565b9050808382526020820190508285602086028201111561385257613851614697565b5b60005b85811015613882578161386888826138fc565b845260208401935060208301925050600181019050613855565b5050509392505050565b600061389f61389a846142e4565b614293565b905080838252602082019050828560208602820111156138c2576138c1614697565b5b60005b858110156138f257816138d888826139c1565b8452602084019350602083019250506001810190506138c5565b5050509392505050565b60008135905061390b81614a74565b92915050565b60008151905061392081614a74565b92915050565b60008135905061393581614a8b565b92915050565b600082601f8301126139505761394f614692565b5b813561396084826020860161381c565b91505092915050565b600082601f83011261397e5761397d614692565b5b813561398e84826020860161388c565b91505092915050565b6000813590506139a681614aa2565b92915050565b6000813590506139bb81614ab9565b92915050565b6000813590506139d081614ad0565b92915050565b6000602082840312156139ec576139eb6146a1565b5b60006139fa848285016138fc565b91505092915050565b600060208284031215613a1957613a186146a1565b5b6000613a2784828501613911565b91505092915050565b600060208284031215613a4657613a456146a1565b5b6000613a5484828501613926565b91505092915050565b60008060408385031215613a7457613a736146a1565b5b6000613a82858286016138fc565b9250506020613a93858286016138fc565b9150509250929050565b600080600060608486031215613ab657613ab56146a1565b5b6000613ac4868287016138fc565b9350506020613ad5868287016138fc565b9250506040613ae6868287016139c1565b9150509250925092565b60008060408385031215613b0757613b066146a1565b5b6000613b15858286016138fc565b9250506020613b26858286016139c1565b9150509250929050565b600060208284031215613b4657613b456146a1565b5b600082013567ffffffffffffffff811115613b6457613b6361469c565b5b613b708482850161393b565b91505092915050565b60008060408385031215613b9057613b8f6146a1565b5b600083013567ffffffffffffffff811115613bae57613bad61469c565b5b613bba8582860161393b565b925050602083013567ffffffffffffffff811115613bdb57613bda61469c565b5b613be785828601613969565b9150509250929050565b600060208284031215613c0757613c066146a1565b5b6000613c1584828501613997565b91505092915050565b60008060408385031215613c3557613c346146a1565b5b6000613c43858286016139ac565b9250506020613c54858286016138fc565b9150509250929050565b600060208284031215613c7457613c736146a1565b5b6000613c82848285016139c1565b91505092915050565b6000613c978383613ca3565b60208301905092915050565b613cac8161447a565b82525050565b613cbb8161447a565b82525050565b6000613ccc82614320565b613cd68185614343565b9350613ce183614310565b8060005b83811015613d12578151613cf98882613c8b565b9750613d0483614336565b925050600181019050613ce5565b5085935050505092915050565b613d288161449e565b82525050565b613d37816144f3565b82525050565b613d4681614517565b82525050565b6000613d578261432b565b613d618185614354565b9350613d71818560208601614529565b613d7a816146a6565b840191505092915050565b6000613d92602383614354565b9150613d9d826146b7565b604082019050919050565b6000613db5602583614354565b9150613dc082614706565b604082019050919050565b6000613dd8601783614354565b9150613de382614755565b602082019050919050565b6000613dfb602683614354565b9150613e068261477e565b604082019050919050565b6000613e1e602283614354565b9150613e29826147cd565b604082019050919050565b6000613e41601b83614354565b9150613e4c8261481c565b602082019050919050565b6000613e64601983614354565b9150613e6f82614845565b602082019050919050565b6000613e87602983614354565b9150613e928261486e565b604082019050919050565b6000613eaa602083614354565b9150613eb5826148bd565b602082019050919050565b6000613ecd602983614354565b9150613ed8826148e6565b604082019050919050565b6000613ef0601a83614354565b9150613efb82614935565b602082019050919050565b6000613f13602583614354565b9150613f1e8261495e565b604082019050919050565b6000613f36602483614354565b9150613f41826149ad565b604082019050919050565b6000613f59601783614354565b9150613f64826149fc565b602082019050919050565b6000613f7c602383614354565b9150613f8782614a25565b604082019050919050565b613f9b816144dc565b82525050565b613faa816144e6565b82525050565b6000602082019050613fc56000830184613cb2565b92915050565b6000602082019050613fe06000830184613d1f565b92915050565b6000602082019050613ffb6000830184613d2e565b92915050565b6000602082019050818103600083015261401b8184613d4c565b905092915050565b6000602082019050818103600083015261403c81613d85565b9050919050565b6000602082019050818103600083015261405c81613da8565b9050919050565b6000602082019050818103600083015261407c81613dcb565b9050919050565b6000602082019050818103600083015261409c81613dee565b9050919050565b600060208201905081810360008301526140bc81613e11565b9050919050565b600060208201905081810360008301526140dc81613e34565b9050919050565b600060208201905081810360008301526140fc81613e57565b9050919050565b6000602082019050818103600083015261411c81613e7a565b9050919050565b6000602082019050818103600083015261413c81613e9d565b9050919050565b6000602082019050818103600083015261415c81613ec0565b9050919050565b6000602082019050818103600083015261417c81613ee3565b9050919050565b6000602082019050818103600083015261419c81613f06565b9050919050565b600060208201905081810360008301526141bc81613f29565b9050919050565b600060208201905081810360008301526141dc81613f4c565b9050919050565b600060208201905081810360008301526141fc81613f6f565b9050919050565b60006020820190506142186000830184613f92565b92915050565b600060a0820190506142336000830188613f92565b6142406020830187613d3d565b81810360408301526142528186613cc1565b90506142616060830185613cb2565b61426e6080830184613f92565b9695505050505050565b600060208201905061428d6000830184613fa1565b92915050565b600061429d6142ae565b90506142a9828261455c565b919050565b6000604051905090565b600067ffffffffffffffff8211156142d3576142d2614663565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156142ff576142fe614663565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614370826144dc565b915061437b836144dc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143b0576143af6145d6565b5b828201905092915050565b60006143c6826144dc565b91506143d1836144dc565b9250826143e1576143e0614605565b5b828204905092915050565b60006143f7826144dc565b9150614402836144dc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561443b5761443a6145d6565b5b828202905092915050565b6000614451826144dc565b915061445c836144dc565b92508282101561446f5761446e6145d6565b5b828203905092915050565b6000614485826144bc565b9050919050565b6000614497826144bc565b9050919050565b60008115159050919050565b60006144b58261447a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006144fe82614505565b9050919050565b6000614510826144bc565b9050919050565b6000614522826144dc565b9050919050565b60005b8381101561454757808201518184015260208101905061452c565b83811115614556576000848401525b50505050565b614565826146a6565b810181811067ffffffffffffffff8211171561458457614583614663565b5b80604052505050565b6000614598826144dc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156145cb576145ca6145d6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973206c6f636b656420756e74696c20646566696e656460008201527f2064617973000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e67206973206e6f7420796574206f70656e000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4e6f7420656e6f7567682062616c616e636520666f7220747800000000000000600082015250565b7f536f727279202d206e6f2046726f6e7452756e6e696e6720616c6c6f7765642060008201527f7269676874206e6f770000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f537465616c7468206973206120426f742046726565205a6f6e65000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b614a7d8161447a565b8114614a8857600080fd5b50565b614a948161448c565b8114614a9f57600080fd5b50565b614aab8161449e565b8114614ab657600080fd5b50565b614ac2816144aa565b8114614acd57600080fd5b50565b614ad9816144dc565b8114614ae457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d19ce80d824c23f20ef23ce6fa9664081761593819659a6fbe6272b3a7dedce664736f6c63430008060033

Deployed Bytecode Sourcemap

13303:15052:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26819:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15480:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16313:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14431:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15757:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16482:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27897:252;;;;;;;;;;;;;:::i;:::-;;15666:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27590:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27027:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27472:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27235:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14479:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28260:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11630:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27133:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26044:486;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26722:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25772:264;;;;;;;;;;;;;:::i;:::-;;15860:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11136:157;;;;;;;;;;;;;:::i;:::-;;28157:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10922:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15571:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12103:431;;;;;;;;;;;;;:::i;:::-;;15987:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26542:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25498:262;;;;;;;;;;;;;:::i;:::-;;11796:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16162:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27354:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14097:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11301:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26918:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26819:91;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26897:5:::1;26882:4;:12;26887:6;26882:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;26819:91:::0;:::o;15480:83::-;15517:13;15550:5;;;;;;;;;;;;;;;;;15543:12;;15480:83;:::o;16313:161::-;16388:4;16405:39;16414:12;:10;:12::i;:::-;16428:7;16437:6;16405:8;:39::i;:::-;16462:4;16455:11;;16313:161;;;;:::o;14431:41::-;;;;;;;;;;;;;:::o;15757:95::-;15810:7;14023:22;15830:14;;15757:95;:::o;16482:313::-;16580:4;16597:36;16607:6;16615:9;16626:6;16597:9;:36::i;:::-;16644:121;16653:6;16661:12;:10;:12::i;:::-;16675:89;16713:6;16675:89;;;;;;;;;;;;;;;;;:11;:19;16687:6;16675:19;;;;;;;;;;;;;;;:33;16695:12;:10;:12::i;:::-;16675:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;16644:8;:121::i;:::-;16783:4;16776:11;;16482:313;;;;;:::o;27897:252::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27962:11:::1;;;;;;;;;;;27961:12;27953:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;28028:4;28011:14;;:21;;;;;;;;;;;;;;;;;;28057:4;28043:11;;:18;;;;;;;;;;;;;;;;;;28086:4;28072:11;;:18;;;;;;;;;;;;;;;;;;28126:15;28101:22;:40;;;;27897:252::o:0;15666:83::-;15707:5;14416:2;15725:16;;15666:83;:::o;27590:168::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27707:9:::1;27689:15;;:27;;;;;;;;;;;;;;;;;;27743:7;27727:13;;:23;;;;;;;;;;;;;;;;;;27590:168:::0;;:::o;27027:98::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27112:5:::1;27095:14;;:22;;;;;;;;;;;;;;;;;;27027:98:::0;:::o;27472:110::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27566:8:::1;27547:16;:27;;;;27472:110:::0;:::o;27235:111::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27334:4:::1;27304:18;:27;27323:7;27304:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;27235:111:::0;:::o;14479:28::-;;;;;;;;;;;;;:::o;28260:88::-;28305:4;28329:11;;;;;;;;;;;28322:18;;28260:88;:::o;11630:90::-;11676:7;11703:9;;11696:16;;11630:90;:::o;27133:94::-;27181:4;27205:14;;;;;;;;;;;27198:21;;27133:94;:::o;26044:486::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26141:11:::1;26155:5;:12;26141:26;;26193:7;:14;26186:3;:21;26178:30;;;::::0;::::1;;26224:9;26219:304;26243:3;26239:1;:7;26219:304;;;26294:81;26322:7;26330:1;26322:10;;;;;;;;:::i;:::-;;;;;;;;26294:81;;;;;;;;;;;;;;;;;:9;:23;26304:12;:10;:12::i;:::-;26294:23;;;;;;;;;;;;;;;;:27;;:81;;;;;:::i;:::-;26268:9;:23;26278:12;:10;:12::i;:::-;26268:23;;;;;;;;;;;;;;;:107;;;;26412:35;26436:7;26444:1;26436:10;;;;;;;;:::i;:::-;;;;;;;;26412:9;:19;26422:5;26428:1;26422:8;;;;;;;;:::i;:::-;;;;;;;;26412:19;;;;;;;;;;;;;;;;:23;;:35;;;;:::i;:::-;26390:9;:19;26400:5;26406:1;26400:8;;;;;;;;:::i;:::-;;;;;;;;26390:19;;;;;;;;;;;;;;;:57;;;;26490:5;26496:1;26490:8;;;;;;;;:::i;:::-;;;;;;;;26467:44;;26476:12;:10;:12::i;:::-;26467:44;;;26500:7;26508:1;26500:10;;;;;;;;:::i;:::-;;;;;;;;26467:44;;;;;;:::i;:::-;;;;;;;;26248:3;;;;;:::i;:::-;;;;26219:304;;;;26130:400;26044:486:::0;;:::o;26722:85::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26795:4:::1;26781;:11;26786:5;26781:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;26722:85:::0;:::o;25772:264::-;25838:22;;;;;;;;;;;25822:38;;:12;:10;:12::i;:::-;:38;;;:71;;;;25888:4;25864:29;;:12;:10;:12::i;:::-;:29;;;25822:71;:98;;;;25913:7;:5;:7::i;:::-;25897:23;;:12;:10;:12::i;:::-;:23;;;25822:98;25814:107;;;;;;25932:26;25961:21;25932:50;;25993:35;26009:18;25993:15;:35::i;:::-;25803:233;25772:264::o;15860:119::-;15926:7;15953:9;:18;15963:7;15953:18;;;;;;;;;;;;;;;;15946:25;;15860:119;;;:::o;11136:157::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11243:1:::1;11206:40;;11227:6;::::0;::::1;;;;;;;;11206:40;;;;;;;;;;;;11282:1;11257:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;11136:157::o:0;28157:95::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;28240:4:::1;28226:11;;:18;;;;;;;;;;;;;;;;;;28157:95:::0;:::o;10922:79::-;10960:7;10987:6;;;;;;;;;;;10980:13;;10922:79;:::o;15571:87::-;15610:13;15643:7;;;;;;;;;;;;;;;;;15636:14;;15571:87;:::o;12103:431::-;12187:10;12169:28;;:14;;;;;;;;;;;:28;;;12147:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;12311:9;;12293:15;:27;12271:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;12430:14;;;;;;;;;;;12401:44;;12422:6;;;;;;;;;;12401:44;;;;;;;;;;;;12465:14;;;;;;;;;;;12456:6;;:23;;;;;;;;;;;;;;;;;;12523:1;12490:14;;:36;;;;;;;;;;;;;;;;;;12103:431::o;15987:167::-;16065:4;16082:42;16092:12;:10;:12::i;:::-;16106:9;16117:6;16082:9;:42::i;:::-;16142:4;16135:11;;15987:167;;;;:::o;26542:172::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26624:6:::1;26619:88;26640:5;:12;26636:1;:16;26619:88;;;26691:4;26674;:14;26679:5;26685:1;26679:8;;;;;;;;:::i;:::-;;;;;;;;26674:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;26654:3;;;;;:::i;:::-;;;;26619:88;;;;26542:172:::0;:::o;25498:262::-;25564:22;;;;;;;;;;;25548:38;;:12;:10;:12::i;:::-;:38;;;:71;;;;25614:4;25590:29;;:12;:10;:12::i;:::-;:29;;;25548:71;:98;;;;25639:7;:5;:7::i;:::-;25623:23;;:12;:10;:12::i;:::-;:23;;;25548:98;25540:107;;;;;;25658:23;25684:24;25702:4;25684:9;:24::i;:::-;25658:50;;25719:33;25736:15;25719:16;:33::i;:::-;25529:231;25498:262::o;11796:235::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11877:6:::1;::::0;::::1;;;;;;;;11860:14;;:23;;;;;;;;;;;;;;;;;;11919:1;11894:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;11963:4;11945:15;:22;;;;:::i;:::-;11933:9;:34;;;;12020:1;11983:40;;12004:6;::::0;::::1;;;;;;;;11983:40;;;;;;;;;;;;11796:235:::0;:::o;16162:143::-;16243:7;16270:11;:18;16282:5;16270:18;;;;;;;;;;;;;;;:27;16289:7;16270:27;;;;;;;;;;;;;;;;16263:34;;16162:143;;;;:::o;27354:110::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27451:5:::1;27421:18;:27;27440:7;27421:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;27354:110:::0;:::o;14097:44::-;;;;:::o;11301:321::-;11059:12;:10;:12::i;:::-;11049:22;;:6;;;;;;;;;;:22;;;11041:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11464:1:::1;11444:22;;:8;:22;;;;11422:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11577:8;11548:38;;11569:6;::::0;::::1;;;;;;;;11548:38;;;;;;;;;;;;11606:8;11597:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;11301:321:::0;:::o;26918:101::-;26976:4;27000;:11;27005:5;27000:11;;;;;;;;;;;;;;;;;;;;;;;;;26993:18;;26918:101;;;:::o;10198:132::-;10256:7;10283:39;10287:1;10290;10283:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;10276:46;;10198:132;;;;:::o;6286:115::-;6339:15;6382:10;6367:26;;6286:115;:::o;16803:335::-;16913:1;16896:19;;:5;:19;;;;16888:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16994:1;16975:21;;:7;:21;;;;16967:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17076:6;17046:11;:18;17058:5;17046:18;;;;;;;;;;;;;;;:27;17065:7;17046:27;;;;;;;;;;;;;;;:36;;;;17114:7;17098:32;;17107:5;17098:32;;;17123:6;17098:32;;;;;;:::i;:::-;;;;;;;;16803:335;;;:::o;17146:4670::-;17250:1;17234:18;;:4;:18;;;;17226:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17327:1;17313:16;;:2;:16;;;;17305:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17397:1;17388:6;:10;17380:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17482:6;17463:15;17473:4;17463:9;:15::i;:::-;:25;;17455:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;17761:13;;;;;;;;;;;17755:19;;:2;:19;;;17754:51;;;;;17781:18;:24;17800:4;17781:24;;;;;;;;;;;;;;;;;;;;;;;;;17779:26;17754:51;17750:4057;;;17913:11;;;;;;;;;;;17905:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;18089:4;:10;18094:4;18089:10;;;;;;;;;;;;;;;;;;;;;;;;;18088:11;18080:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;18259:14;;;;;;;;;;;18254:316;;;18294:15;18312:8;:14;18321:4;18312:14;;;;;;;;;;;;;;;;18294:32;;18371:7;18353:15;:25;18345:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;18468:15;18451:8;:14;18460:4;18451:14;;;;;;;;;;;;;;;;:32;18443:41;;;;;;18538:16;;18520:15;:34;;;;:::i;:::-;18503:8;:14;18512:4;18503:14;;;;;;;;;;;;;;;:51;;;;18275:295;18254:316;18773:10;:16;18784:4;18773:16;;;;;;;;;;;;;;;;;;;;;;;;;18768:132;;18827:15;18809:9;:15;18819:4;18809:15;;;;;;;;;;;;;;;:33;;;;18880:4;18861:10;:16;18872:4;18861:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;18768:132;18920:11;;;;;;;;;;;18916:599;;;19014:28;19045:24;19063:4;19045:9;:24::i;:::-;19014:55;;19116:15;;19092:20;:39;19088:412;;19161:6;;;;;;;;;;;19156:325;;19196:38;19213:20;19196:16;:38::i;:::-;19261:26;19290:21;19261:50;;19362:1;19341:18;:22;19338:120;;;19392:38;19408:21;19392:15;:38::i;:::-;19338:120;19169:312;19156:325;19088:412;18933:582;18916:599;19614:22;19639:32;19658:6;19666:4;19639:18;:32::i;:::-;19614:57;;19686:16;19705:43;19715:9;:15;19725:4;19715:15;;;;;;;;;;;;;;;;19732;19705:9;:43::i;:::-;19686:62;;19763:15;19793:2;19782:8;:13;;;;:::i;:::-;19763:33;;19815:17;19811:564;;;19977:1;19967:7;:11;19963:148;;;20021:15;20003:9;:15;20013:4;20003:15;;;;;;;;;;;;;;;:33;;;;20076:15;20059:8;:14;20068:4;20059:14;;;;;;;;;;;;;;;:32;;;;19963:148;19811:564;;;20165:2;20155:7;:12;20151:209;;;20274:15;20256:9;:15;20266:4;20256:15;;;;;;;;;;;;;;;:33;;;;20325:15;20308:8;:14;20317:4;20308:14;;;;;;;;;;;;;;;:32;;;;20151:209;19811:564;20452:15;20434:9;:15;20444:4;20434:15;;;;;;;;;;;;;;;:33;;;;20520:35;20540:4;20545:2;20548:6;20520:19;:35::i;:::-;17807:2883;;;17750:4057;;;20709:13;;;;;;;;;;;20701:21;;:4;:21;;;20700:51;;;;;20729:18;:22;20748:2;20729:22;;;;;;;;;;;;;;;;;;;;;;;;;20727:24;20700:51;20696:1111;;;20860:11;;;;;;;;;;;20852:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;21005:10;:14;21016:2;21005:14;;;;;;;;;;;;;;;;;;;;;;;;;21000:126;;21055:15;21039:9;:13;21049:2;21039:13;;;;;;;;;;;;;;;:31;;;;21106:4;21089:10;:14;21100:2;21089:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;21000:126;21205:15;21190:8;:12;21199:2;21190:12;;;;;;;;;;;;;;;:30;;;;21284:31;21298:4;21304:2;21308:6;21284:13;:31::i;:::-;20696:1111;;;21502:4;:10;21507:4;21502:10;;;;;;;;;;;;;;;;;;;;;;;;;21501:11;:24;;;;;21517:4;:8;21522:2;21517:8;;;;;;;;;;;;;;;;;;;;;;;;;21516:9;21501:24;21493:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21650:15;21634:9;:13;21644:2;21634:13;;;;;;;;;;;;;;;:31;;;;21697:4;21680:10;:14;21691:2;21680:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;21764:31;21778:4;21784:2;21788:6;21764:13;:31::i;:::-;20696:1111;17750:4057;17146:4670;;;:::o;9746:190::-;9832:7;9865:1;9860;:6;;9868:12;9852:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9892:9;9908:1;9904;:5;;;;:::i;:::-;9892:17;;9927:1;9920:8;;;9746:190;;;;;:::o;9415:179::-;9473:7;9493:9;9509:1;9505;:5;;;;:::i;:::-;9493:17;;9534:1;9529;:6;;9521:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9585:1;9578:8;;;9415:179;;;;:::o;27778:107::-;27838:22;;;;;;;;;;;:31;;:39;27870:6;27838:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27778:107;:::o;21824:484::-;14711:4;14702:6;;:13;;;;;;;;;;;;;;;;;;21902:21:::1;21940:1;21926:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21902:40;;21971:4;21953;21958:1;21953:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;21997:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21987:4;21992:1;21987:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;22030:62;22047:4;22062:15;;;;;;;;;;;22080:11;22030:8;:62::i;:::-;22103:15;;;;;;;;;;;:66;;;22184:11;22211:1;22227:4;22254;22274:15;22103:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21891:417;14747:5:::0;14738:6;;:14;;;;;;;;;;;;;;;;;;21824:484;:::o;10338:189::-;10424:7;10456:1;10452;:5;10459:12;10444:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;10483:9;10499:1;10495;:5;;;;:::i;:::-;10483:17;;10518:1;10511:8;;;10338:189;;;;;:::o;23613:320::-;23699:4;23823:9;:18;23833:7;23823:18;;;;;;;;;;;;;;;;23817:2;23804:10;:15;;;;:::i;:::-;23803:38;23799:127;;;23865:5;23858:12;;;;23799:127;23910:4;23903:11;;23613:320;;;;;:::o;25302:143::-;25378:7;25434:2;25429;25416:9;25406:7;:19;;;;:::i;:::-;25405:26;;;;:::i;:::-;:31;;;;:::i;:::-;25397:40;;25302:143;;;;:::o;22759:148::-;22858:41;22873:6;22881:9;22892:6;22858:14;:41::i;:::-;22759:148;;;:::o;22395:272::-;22509:30;22531:7;22509:9;:17;22519:6;22509:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;22489:9;:17;22499:6;22489:17;;;;;;;;;;;;;;;:50;;;;22573:33;22598:7;22573:9;:20;22583:9;22573:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;22550:9;:20;22560:9;22550:20;;;;;;;;;;;;;;;:56;;;;22640:9;22623:36;;22632:6;22623:36;;;22651:7;22623:36;;;;;;:::i;:::-;;;;;;;;22395:272;;;:::o;22915:472::-;23057:13;23073:31;23088:7;23097:6;23073:14;:31::i;:::-;23057:47;;23115:22;23150:5;23140:7;:15;;;;:::i;:::-;23115:40;;23188:30;23210:7;23188:9;:17;23198:6;23188:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;23168:9;:17;23178:6;23168:17;;;;;;;;;;;;;;;:50;;;;23252:40;23277:14;23252:9;:20;23262:9;23252:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;23229:9;:20;23239:9;23229:20;;;;;;;;;;;;;;;:63;;;;23304:16;23314:5;23304:9;:16::i;:::-;23353:9;23336:43;;23345:6;23336:43;;;23364:14;23336:43;;;;;;:::i;:::-;;;;;;;;22999:388;;22915:472;;;:::o;9602:136::-;9660:7;9687:43;9691:1;9694;9687:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;9680:50;;9602:136;;;;:::o;24004:372::-;24087:7;24106:15;24124:20;24136:7;24124:11;:20::i;:::-;24106:38;;24170:1;24159:7;:12;24155:214;;;24195:1;24188:8;;;;;24155:214;24229:17;24280:7;24274:3;:13;;;;:::i;:::-;24265:5;:23;;;;:::i;:::-;24250:11;:39;;;;:::i;:::-;24229:61;;24351:5;24338:9;24329:5;24315:11;:19;;;;:::i;:::-;24314:33;;;;:::i;:::-;24313:43;;;;:::i;:::-;24305:52;;;;24004:372;;;;;:::o;23395:123::-;23475:35;23504:5;23475:9;:24;23493:4;23475:24;;;;;;;;;;;;;;;;:28;;:35;;;;:::i;:::-;23448:9;:24;23466:4;23448:24;;;;;;;;;;;;;;;:62;;;;23395:123;:::o;24421:787::-;24480:7;24500:16;24519:50;24529:22;;24553:15;24519:9;:50::i;:::-;24500:69;;24598:2;24586:8;:14;24582:619;;24667:2;24660:9;;;;;24582:619;24703:2;24691:8;:14;24687:514;;24773:2;24766:9;;;;;24687:514;24862:46;24872:9;:18;24882:7;24872:18;;;;;;;;;;;;;;;;24892:15;24862:9;:46::i;:::-;24851:57;;24923:15;24953:2;24942:8;:13;;;;:::i;:::-;24923:33;;24986:2;24975:7;:13;24971:219;;25059:1;25052:8;;;;;;24971:219;25101:16;25131:1;25121:7;:11;;;;:::i;:::-;25101:32;;25165:8;25160:2;:13;;;;:::i;:::-;25152:22;;;;;24421:787;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;769:722::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:2;;;1149:79;;:::i;:::-;1095:2;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;;;;;;:::o;1497:139::-;1543:5;1581:6;1568:20;1559:29;;1597:33;1624:5;1597:33;:::i;:::-;1549:87;;;;:::o;1642:143::-;1699:5;1730:6;1724:13;1715:22;;1746:33;1773:5;1746:33;:::i;:::-;1705:80;;;;:::o;1791:155::-;1845:5;1883:6;1870:20;1861:29;;1899:41;1934:5;1899:41;:::i;:::-;1851:95;;;;:::o;1969:370::-;2040:5;2089:3;2082:4;2074:6;2070:17;2066:27;2056:2;;2097:79;;:::i;:::-;2056:2;2214:6;2201:20;2239:94;2329:3;2321:6;2314:4;2306:6;2302:17;2239:94;:::i;:::-;2230:103;;2046:293;;;;;:::o;2362:370::-;2433:5;2482:3;2475:4;2467:6;2463:17;2459:27;2449:2;;2490:79;;:::i;:::-;2449:2;2607:6;2594:20;2632:94;2722:3;2714:6;2707:4;2699:6;2695:17;2632:94;:::i;:::-;2623:103;;2439:293;;;;;:::o;2738:133::-;2781:5;2819:6;2806:20;2797:29;;2835:30;2859:5;2835:30;:::i;:::-;2787:84;;;;:::o;2877:191::-;2949:5;2987:6;2974:20;2965:29;;3003:59;3056:5;3003:59;:::i;:::-;2955:113;;;;:::o;3074:139::-;3120:5;3158:6;3145:20;3136:29;;3174:33;3201:5;3174:33;:::i;:::-;3126:87;;;;:::o;3219:329::-;3278:6;3327:2;3315:9;3306:7;3302:23;3298:32;3295:2;;;3333:79;;:::i;:::-;3295:2;3453:1;3478:53;3523:7;3514:6;3503:9;3499:22;3478:53;:::i;:::-;3468:63;;3424:117;3285:263;;;;:::o;3554:351::-;3624:6;3673:2;3661:9;3652:7;3648:23;3644:32;3641:2;;;3679:79;;:::i;:::-;3641:2;3799:1;3824:64;3880:7;3871:6;3860:9;3856:22;3824:64;:::i;:::-;3814:74;;3770:128;3631:274;;;;:::o;3911:345::-;3978:6;4027:2;4015:9;4006:7;4002:23;3998:32;3995:2;;;4033:79;;:::i;:::-;3995:2;4153:1;4178:61;4231:7;4222:6;4211:9;4207:22;4178:61;:::i;:::-;4168:71;;4124:125;3985:271;;;;:::o;4262:474::-;4330:6;4338;4387:2;4375:9;4366:7;4362:23;4358:32;4355:2;;;4393:79;;:::i;:::-;4355:2;4513:1;4538:53;4583:7;4574:6;4563:9;4559:22;4538:53;:::i;:::-;4528:63;;4484:117;4640:2;4666:53;4711:7;4702:6;4691:9;4687:22;4666:53;:::i;:::-;4656:63;;4611:118;4345:391;;;;;:::o;4742:619::-;4819:6;4827;4835;4884:2;4872:9;4863:7;4859:23;4855:32;4852:2;;;4890:79;;:::i;:::-;4852:2;5010:1;5035:53;5080:7;5071:6;5060:9;5056:22;5035:53;:::i;:::-;5025:63;;4981:117;5137:2;5163:53;5208:7;5199:6;5188:9;5184:22;5163:53;:::i;:::-;5153:63;;5108:118;5265:2;5291:53;5336:7;5327:6;5316:9;5312:22;5291:53;:::i;:::-;5281:63;;5236:118;4842:519;;;;;:::o;5367:474::-;5435:6;5443;5492:2;5480:9;5471:7;5467:23;5463:32;5460:2;;;5498:79;;:::i;:::-;5460:2;5618:1;5643:53;5688:7;5679:6;5668:9;5664:22;5643:53;:::i;:::-;5633:63;;5589:117;5745:2;5771:53;5816:7;5807:6;5796:9;5792:22;5771:53;:::i;:::-;5761:63;;5716:118;5450:391;;;;;:::o;5847:539::-;5931:6;5980:2;5968:9;5959:7;5955:23;5951:32;5948:2;;;5986:79;;:::i;:::-;5948:2;6134:1;6123:9;6119:17;6106:31;6164:18;6156:6;6153:30;6150:2;;;6186:79;;:::i;:::-;6150:2;6291:78;6361:7;6352:6;6341:9;6337:22;6291:78;:::i;:::-;6281:88;;6077:302;5938:448;;;;:::o;6392:894::-;6510:6;6518;6567:2;6555:9;6546:7;6542:23;6538:32;6535:2;;;6573:79;;:::i;:::-;6535:2;6721:1;6710:9;6706:17;6693:31;6751:18;6743:6;6740:30;6737:2;;;6773:79;;:::i;:::-;6737:2;6878:78;6948:7;6939:6;6928:9;6924:22;6878:78;:::i;:::-;6868:88;;6664:302;7033:2;7022:9;7018:18;7005:32;7064:18;7056:6;7053:30;7050:2;;;7086:79;;:::i;:::-;7050:2;7191:78;7261:7;7252:6;7241:9;7237:22;7191:78;:::i;:::-;7181:88;;6976:303;6525:761;;;;;:::o;7292:323::-;7348:6;7397:2;7385:9;7376:7;7372:23;7368:32;7365:2;;;7403:79;;:::i;:::-;7365:2;7523:1;7548:50;7590:7;7581:6;7570:9;7566:22;7548:50;:::i;:::-;7538:60;;7494:114;7355:260;;;;:::o;7621:526::-;7715:6;7723;7772:2;7760:9;7751:7;7747:23;7743:32;7740:2;;;7778:79;;:::i;:::-;7740:2;7898:1;7923:79;7994:7;7985:6;7974:9;7970:22;7923:79;:::i;:::-;7913:89;;7869:143;8051:2;8077:53;8122:7;8113:6;8102:9;8098:22;8077:53;:::i;:::-;8067:63;;8022:118;7730:417;;;;;:::o;8153:329::-;8212:6;8261:2;8249:9;8240:7;8236:23;8232:32;8229:2;;;8267:79;;:::i;:::-;8229:2;8387:1;8412:53;8457:7;8448:6;8437:9;8433:22;8412:53;:::i;:::-;8402:63;;8358:117;8219:263;;;;:::o;8488:179::-;8557:10;8578:46;8620:3;8612:6;8578:46;:::i;:::-;8656:4;8651:3;8647:14;8633:28;;8568:99;;;;:::o;8673:108::-;8750:24;8768:5;8750:24;:::i;:::-;8745:3;8738:37;8728:53;;:::o;8787:118::-;8874:24;8892:5;8874:24;:::i;:::-;8869:3;8862:37;8852:53;;:::o;8941:732::-;9060:3;9089:54;9137:5;9089:54;:::i;:::-;9159:86;9238:6;9233:3;9159:86;:::i;:::-;9152:93;;9269:56;9319:5;9269:56;:::i;:::-;9348:7;9379:1;9364:284;9389:6;9386:1;9383:13;9364:284;;;9465:6;9459:13;9492:63;9551:3;9536:13;9492:63;:::i;:::-;9485:70;;9578:60;9631:6;9578:60;:::i;:::-;9568:70;;9424:224;9411:1;9408;9404:9;9399:14;;9364:284;;;9368:14;9664:3;9657:10;;9065:608;;;;;;;:::o;9679:109::-;9760:21;9775:5;9760:21;:::i;:::-;9755:3;9748:34;9738:50;;:::o;9794:183::-;9907:63;9964:5;9907:63;:::i;:::-;9902:3;9895:76;9885:92;;:::o;9983:147::-;10078:45;10117:5;10078:45;:::i;:::-;10073:3;10066:58;10056:74;;:::o;10136:364::-;10224:3;10252:39;10285:5;10252:39;:::i;:::-;10307:71;10371:6;10366:3;10307:71;:::i;:::-;10300:78;;10387:52;10432:6;10427:3;10420:4;10413:5;10409:16;10387:52;:::i;:::-;10464:29;10486:6;10464:29;:::i;:::-;10459:3;10455:39;10448:46;;10228:272;;;;;:::o;10506:366::-;10648:3;10669:67;10733:2;10728:3;10669:67;:::i;:::-;10662:74;;10745:93;10834:3;10745:93;:::i;:::-;10863:2;10858:3;10854:12;10847:19;;10652:220;;;:::o;10878:366::-;11020:3;11041:67;11105:2;11100:3;11041:67;:::i;:::-;11034:74;;11117:93;11206:3;11117:93;:::i;:::-;11235:2;11230:3;11226:12;11219:19;;11024:220;;;:::o;11250:366::-;11392:3;11413:67;11477:2;11472:3;11413:67;:::i;:::-;11406:74;;11489:93;11578:3;11489:93;:::i;:::-;11607:2;11602:3;11598:12;11591:19;;11396:220;;;:::o;11622:366::-;11764:3;11785:67;11849:2;11844:3;11785:67;:::i;:::-;11778:74;;11861:93;11950:3;11861:93;:::i;:::-;11979:2;11974:3;11970:12;11963:19;;11768:220;;;:::o;11994:366::-;12136:3;12157:67;12221:2;12216:3;12157:67;:::i;:::-;12150:74;;12233:93;12322:3;12233:93;:::i;:::-;12351:2;12346:3;12342:12;12335:19;;12140:220;;;:::o;12366:366::-;12508:3;12529:67;12593:2;12588:3;12529:67;:::i;:::-;12522:74;;12605:93;12694:3;12605:93;:::i;:::-;12723:2;12718:3;12714:12;12707:19;;12512:220;;;:::o;12738:366::-;12880:3;12901:67;12965:2;12960:3;12901:67;:::i;:::-;12894:74;;12977:93;13066:3;12977:93;:::i;:::-;13095:2;13090:3;13086:12;13079:19;;12884:220;;;:::o;13110:366::-;13252:3;13273:67;13337:2;13332:3;13273:67;:::i;:::-;13266:74;;13349:93;13438:3;13349:93;:::i;:::-;13467:2;13462:3;13458:12;13451:19;;13256:220;;;:::o;13482:366::-;13624:3;13645:67;13709:2;13704:3;13645:67;:::i;:::-;13638:74;;13721:93;13810:3;13721:93;:::i;:::-;13839:2;13834:3;13830:12;13823:19;;13628:220;;;:::o;13854:366::-;13996:3;14017:67;14081:2;14076:3;14017:67;:::i;:::-;14010:74;;14093:93;14182:3;14093:93;:::i;:::-;14211:2;14206:3;14202:12;14195:19;;14000:220;;;:::o;14226:366::-;14368:3;14389:67;14453:2;14448:3;14389:67;:::i;:::-;14382:74;;14465:93;14554:3;14465:93;:::i;:::-;14583:2;14578:3;14574:12;14567:19;;14372:220;;;:::o;14598:366::-;14740:3;14761:67;14825:2;14820:3;14761:67;:::i;:::-;14754:74;;14837:93;14926:3;14837:93;:::i;:::-;14955:2;14950:3;14946:12;14939:19;;14744:220;;;:::o;14970:366::-;15112:3;15133:67;15197:2;15192:3;15133:67;:::i;:::-;15126:74;;15209:93;15298:3;15209:93;:::i;:::-;15327:2;15322:3;15318:12;15311:19;;15116:220;;;:::o;15342:366::-;15484:3;15505:67;15569:2;15564:3;15505:67;:::i;:::-;15498:74;;15581:93;15670:3;15581:93;:::i;:::-;15699:2;15694:3;15690:12;15683:19;;15488:220;;;:::o;15714:366::-;15856:3;15877:67;15941:2;15936:3;15877:67;:::i;:::-;15870:74;;15953:93;16042:3;15953:93;:::i;:::-;16071:2;16066:3;16062:12;16055:19;;15860:220;;;:::o;16086:118::-;16173:24;16191:5;16173:24;:::i;:::-;16168:3;16161:37;16151:53;;:::o;16210:112::-;16293:22;16309:5;16293:22;:::i;:::-;16288:3;16281:35;16271:51;;:::o;16328:222::-;16421:4;16459:2;16448:9;16444:18;16436:26;;16472:71;16540:1;16529:9;16525:17;16516:6;16472:71;:::i;:::-;16426:124;;;;:::o;16556:210::-;16643:4;16681:2;16670:9;16666:18;16658:26;;16694:65;16756:1;16745:9;16741:17;16732:6;16694:65;:::i;:::-;16648:118;;;;:::o;16772:274::-;16891:4;16929:2;16918:9;16914:18;16906:26;;16942:97;17036:1;17025:9;17021:17;17012:6;16942:97;:::i;:::-;16896:150;;;;:::o;17052:313::-;17165:4;17203:2;17192:9;17188:18;17180:26;;17252:9;17246:4;17242:20;17238:1;17227:9;17223:17;17216:47;17280:78;17353:4;17344:6;17280:78;:::i;:::-;17272:86;;17170:195;;;;:::o;17371:419::-;17537:4;17575:2;17564:9;17560:18;17552:26;;17624:9;17618:4;17614:20;17610:1;17599:9;17595:17;17588:47;17652:131;17778:4;17652:131;:::i;:::-;17644:139;;17542:248;;;:::o;17796:419::-;17962:4;18000:2;17989:9;17985:18;17977:26;;18049:9;18043:4;18039:20;18035:1;18024:9;18020:17;18013:47;18077:131;18203:4;18077:131;:::i;:::-;18069:139;;17967:248;;;:::o;18221:419::-;18387:4;18425:2;18414:9;18410:18;18402:26;;18474:9;18468:4;18464:20;18460:1;18449:9;18445:17;18438:47;18502:131;18628:4;18502:131;:::i;:::-;18494:139;;18392:248;;;:::o;18646:419::-;18812:4;18850:2;18839:9;18835:18;18827:26;;18899:9;18893:4;18889:20;18885:1;18874:9;18870:17;18863:47;18927:131;19053:4;18927:131;:::i;:::-;18919:139;;18817:248;;;:::o;19071:419::-;19237:4;19275:2;19264:9;19260:18;19252:26;;19324:9;19318:4;19314:20;19310:1;19299:9;19295:17;19288:47;19352:131;19478:4;19352:131;:::i;:::-;19344:139;;19242:248;;;:::o;19496:419::-;19662:4;19700:2;19689:9;19685:18;19677:26;;19749:9;19743:4;19739:20;19735:1;19724:9;19720:17;19713:47;19777:131;19903:4;19777:131;:::i;:::-;19769:139;;19667:248;;;:::o;19921:419::-;20087:4;20125:2;20114:9;20110:18;20102:26;;20174:9;20168:4;20164:20;20160:1;20149:9;20145:17;20138:47;20202:131;20328:4;20202:131;:::i;:::-;20194:139;;20092:248;;;:::o;20346:419::-;20512:4;20550:2;20539:9;20535:18;20527:26;;20599:9;20593:4;20589:20;20585:1;20574:9;20570:17;20563:47;20627:131;20753:4;20627:131;:::i;:::-;20619:139;;20517:248;;;:::o;20771:419::-;20937:4;20975:2;20964:9;20960:18;20952:26;;21024:9;21018:4;21014:20;21010:1;20999:9;20995:17;20988:47;21052:131;21178:4;21052:131;:::i;:::-;21044:139;;20942:248;;;:::o;21196:419::-;21362:4;21400:2;21389:9;21385:18;21377:26;;21449:9;21443:4;21439:20;21435:1;21424:9;21420:17;21413:47;21477:131;21603:4;21477:131;:::i;:::-;21469:139;;21367:248;;;:::o;21621:419::-;21787:4;21825:2;21814:9;21810:18;21802:26;;21874:9;21868:4;21864:20;21860:1;21849:9;21845:17;21838:47;21902:131;22028:4;21902:131;:::i;:::-;21894:139;;21792:248;;;:::o;22046:419::-;22212:4;22250:2;22239:9;22235:18;22227:26;;22299:9;22293:4;22289:20;22285:1;22274:9;22270:17;22263:47;22327:131;22453:4;22327:131;:::i;:::-;22319:139;;22217:248;;;:::o;22471:419::-;22637:4;22675:2;22664:9;22660:18;22652:26;;22724:9;22718:4;22714:20;22710:1;22699:9;22695:17;22688:47;22752:131;22878:4;22752:131;:::i;:::-;22744:139;;22642:248;;;:::o;22896:419::-;23062:4;23100:2;23089:9;23085:18;23077:26;;23149:9;23143:4;23139:20;23135:1;23124:9;23120:17;23113:47;23177:131;23303:4;23177:131;:::i;:::-;23169:139;;23067:248;;;:::o;23321:419::-;23487:4;23525:2;23514:9;23510:18;23502:26;;23574:9;23568:4;23564:20;23560:1;23549:9;23545:17;23538:47;23602:131;23728:4;23602:131;:::i;:::-;23594:139;;23492:248;;;:::o;23746:222::-;23839:4;23877:2;23866:9;23862:18;23854:26;;23890:71;23958:1;23947:9;23943:17;23934:6;23890:71;:::i;:::-;23844:124;;;;:::o;23974:831::-;24237:4;24275:3;24264:9;24260:19;24252:27;;24289:71;24357:1;24346:9;24342:17;24333:6;24289:71;:::i;:::-;24370:80;24446:2;24435:9;24431:18;24422:6;24370:80;:::i;:::-;24497:9;24491:4;24487:20;24482:2;24471:9;24467:18;24460:48;24525:108;24628:4;24619:6;24525:108;:::i;:::-;24517:116;;24643:72;24711:2;24700:9;24696:18;24687:6;24643:72;:::i;:::-;24725:73;24793:3;24782:9;24778:19;24769:6;24725:73;:::i;:::-;24242:563;;;;;;;;:::o;24811:214::-;24900:4;24938:2;24927:9;24923:18;24915:26;;24951:67;25015:1;25004:9;25000:17;24991:6;24951:67;:::i;:::-;24905:120;;;;:::o;25031:129::-;25065:6;25092:20;;:::i;:::-;25082:30;;25121:33;25149:4;25141:6;25121:33;:::i;:::-;25072:88;;;:::o;25166:75::-;25199:6;25232:2;25226:9;25216:19;;25206:35;:::o;25247:311::-;25324:4;25414:18;25406:6;25403:30;25400:2;;;25436:18;;:::i;:::-;25400:2;25486:4;25478:6;25474:17;25466:25;;25546:4;25540;25536:15;25528:23;;25329:229;;;:::o;25564:311::-;25641:4;25731:18;25723:6;25720:30;25717:2;;;25753:18;;:::i;:::-;25717:2;25803:4;25795:6;25791:17;25783:25;;25863:4;25857;25853:15;25845:23;;25646:229;;;:::o;25881:132::-;25948:4;25971:3;25963:11;;26001:4;25996:3;25992:14;25984:22;;25953:60;;;:::o;26019:114::-;26086:6;26120:5;26114:12;26104:22;;26093:40;;;:::o;26139:99::-;26191:6;26225:5;26219:12;26209:22;;26198:40;;;:::o;26244:113::-;26314:4;26346;26341:3;26337:14;26329:22;;26319:38;;;:::o;26363:184::-;26462:11;26496:6;26491:3;26484:19;26536:4;26531:3;26527:14;26512:29;;26474:73;;;;:::o;26553:169::-;26637:11;26671:6;26666:3;26659:19;26711:4;26706:3;26702:14;26687:29;;26649:73;;;;:::o;26728:305::-;26768:3;26787:20;26805:1;26787:20;:::i;:::-;26782:25;;26821:20;26839:1;26821:20;:::i;:::-;26816:25;;26975:1;26907:66;26903:74;26900:1;26897:81;26894:2;;;26981:18;;:::i;:::-;26894:2;27025:1;27022;27018:9;27011:16;;26772:261;;;;:::o;27039:185::-;27079:1;27096:20;27114:1;27096:20;:::i;:::-;27091:25;;27130:20;27148:1;27130:20;:::i;:::-;27125:25;;27169:1;27159:2;;27174:18;;:::i;:::-;27159:2;27216:1;27213;27209:9;27204:14;;27081:143;;;;:::o;27230:348::-;27270:7;27293:20;27311:1;27293:20;:::i;:::-;27288:25;;27327:20;27345:1;27327:20;:::i;:::-;27322:25;;27515:1;27447:66;27443:74;27440:1;27437:81;27432:1;27425:9;27418:17;27414:105;27411:2;;;27522:18;;:::i;:::-;27411:2;27570:1;27567;27563:9;27552:20;;27278:300;;;;:::o;27584:191::-;27624:4;27644:20;27662:1;27644:20;:::i;:::-;27639:25;;27678:20;27696:1;27678:20;:::i;:::-;27673:25;;27717:1;27714;27711:8;27708:2;;;27722:18;;:::i;:::-;27708:2;27767:1;27764;27760:9;27752:17;;27629:146;;;;:::o;27781:96::-;27818:7;27847:24;27865:5;27847:24;:::i;:::-;27836:35;;27826:51;;;:::o;27883:104::-;27928:7;27957:24;27975:5;27957:24;:::i;:::-;27946:35;;27936:51;;;:::o;27993:90::-;28027:7;28070:5;28063:13;28056:21;28045:32;;28035:48;;;:::o;28089:122::-;28152:7;28181:24;28199:5;28181:24;:::i;:::-;28170:35;;28160:51;;;:::o;28217:126::-;28254:7;28294:42;28287:5;28283:54;28272:65;;28262:81;;;:::o;28349:77::-;28386:7;28415:5;28404:16;;28394:32;;;:::o;28432:86::-;28467:7;28507:4;28500:5;28496:16;28485:27;;28475:43;;;:::o;28524:178::-;28600:9;28633:63;28690:5;28633:63;:::i;:::-;28620:76;;28610:92;;;:::o;28708:139::-;28784:9;28817:24;28835:5;28817:24;:::i;:::-;28804:37;;28794:53;;;:::o;28853:121::-;28911:9;28944:24;28962:5;28944:24;:::i;:::-;28931:37;;28921:53;;;:::o;28980:307::-;29048:1;29058:113;29072:6;29069:1;29066:13;29058:113;;;29157:1;29152:3;29148:11;29142:18;29138:1;29133:3;29129:11;29122:39;29094:2;29091:1;29087:10;29082:15;;29058:113;;;29189:6;29186:1;29183:13;29180:2;;;29269:1;29260:6;29255:3;29251:16;29244:27;29180:2;29029:258;;;;:::o;29293:281::-;29376:27;29398:4;29376:27;:::i;:::-;29368:6;29364:40;29506:6;29494:10;29491:22;29470:18;29458:10;29455:34;29452:62;29449:2;;;29517:18;;:::i;:::-;29449:2;29557:10;29553:2;29546:22;29336:238;;;:::o;29580:233::-;29619:3;29642:24;29660:5;29642:24;:::i;:::-;29633:33;;29688:66;29681:5;29678:77;29675:2;;;29758:18;;:::i;:::-;29675:2;29805:1;29798:5;29794:13;29787:20;;29623:190;;;:::o;29819:180::-;29867:77;29864:1;29857:88;29964:4;29961:1;29954:15;29988:4;29985:1;29978:15;30005:180;30053:77;30050:1;30043:88;30150:4;30147:1;30140:15;30174:4;30171:1;30164:15;30191:180;30239:77;30236:1;30229:88;30336:4;30333:1;30326:15;30360:4;30357:1;30350:15;30377:180;30425:77;30422:1;30415:88;30522:4;30519:1;30512:15;30546:4;30543:1;30536:15;30563:117;30672:1;30669;30662:12;30686:117;30795:1;30792;30785:12;30809:117;30918:1;30915;30908:12;30932:117;31041:1;31038;31031:12;31055:102;31096:6;31147:2;31143:7;31138:2;31131:5;31127:14;31123:28;31113:38;;31103:54;;;:::o;31163:222::-;31303:34;31299:1;31291:6;31287:14;31280:58;31372:5;31367:2;31359:6;31355:15;31348:30;31269:116;:::o;31391:224::-;31531:34;31527:1;31519:6;31515:14;31508:58;31600:7;31595:2;31587:6;31583:15;31576:32;31497:118;:::o;31621:173::-;31761:25;31757:1;31749:6;31745:14;31738:49;31727:67;:::o;31800:225::-;31940:34;31936:1;31928:6;31924:14;31917:58;32009:8;32004:2;31996:6;31992:15;31985:33;31906:119;:::o;32031:221::-;32171:34;32167:1;32159:6;32155:14;32148:58;32240:4;32235:2;32227:6;32223:15;32216:29;32137:115;:::o;32258:177::-;32398:29;32394:1;32386:6;32382:14;32375:53;32364:71;:::o;32441:175::-;32581:27;32577:1;32569:6;32565:14;32558:51;32547:69;:::o;32622:228::-;32762:34;32758:1;32750:6;32746:14;32739:58;32831:11;32826:2;32818:6;32814:15;32807:36;32728:122;:::o;32856:182::-;32996:34;32992:1;32984:6;32980:14;32973:58;32962:76;:::o;33044:228::-;33184:34;33180:1;33172:6;33168:14;33161:58;33253:11;33248:2;33240:6;33236:15;33229:36;33150:122;:::o;33278:176::-;33418:28;33414:1;33406:6;33402:14;33395:52;33384:70;:::o;33460:224::-;33600:34;33596:1;33588:6;33584:14;33577:58;33669:7;33664:2;33656:6;33652:15;33645:32;33566:118;:::o;33690:223::-;33830:34;33826:1;33818:6;33814:14;33807:58;33899:6;33894:2;33886:6;33882:15;33875:31;33796:117;:::o;33919:173::-;34059:25;34055:1;34047:6;34043:14;34036:49;34025:67;:::o;34098:222::-;34238:34;34234:1;34226:6;34222:14;34215:58;34307:5;34302:2;34294:6;34290:15;34283:30;34204:116;:::o;34326:122::-;34399:24;34417:5;34399:24;:::i;:::-;34392:5;34389:35;34379:2;;34438:1;34435;34428:12;34379:2;34369:79;:::o;34454:138::-;34535:32;34561:5;34535:32;:::i;:::-;34528:5;34525:43;34515:2;;34582:1;34579;34572:12;34515:2;34505:87;:::o;34598:116::-;34668:21;34683:5;34668:21;:::i;:::-;34661:5;34658:32;34648:2;;34704:1;34701;34694:12;34648:2;34638:76;:::o;34720:174::-;34819:50;34863:5;34819:50;:::i;:::-;34812:5;34809:61;34799:2;;34884:1;34881;34874:12;34799:2;34789:105;:::o;34900:122::-;34973:24;34991:5;34973:24;:::i;:::-;34966:5;34963:35;34953:2;;35012:1;35009;35002:12;34953:2;34943:79;:::o

Swarm Source

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