ETH Price: $2,677.13 (-0.74%)

Token

There Is No Spoon (TINS)
 

Overview

Max Total Supply

953,334.125263 TINS

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
6,200 TINS

Value
$0.00
0x03fba5ea1c825f9cdc08b2d6ecdbaebaabed9336
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:
TINS

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-12
*/

/**
 *Submitted for verification at Etherscan.io on 2025-05-04
 *http://nospoonproject.com/
 *https://t.me/Thereisnospoonportal
 *In the digital world all is not as it seems. You browse the world with blinkered eyes that hide you from the truth.
 The crypto world as you know it is not real, you have been deceived all your life. The simple truth is this. 
 There Is No Spoon! The markets are manipulated by you. You are the key. You are the market. You decide. 
 Forget all you know and join us in a journey of self discovery and wealth beyond your wildest dreams.
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

library Address {
        
    function isContract(address account) internal view returns (bool) {
        
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

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

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

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

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

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

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

contract TINS is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    string private constant _name = "There Is No Spoon";
    string private constant _symbol = "TINS";
    uint8 private constant _decimals = 6;
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 public _tTotal = 1000 * 1e3 * 1e6; //1,000,000

    uint256 public _maxWalletAmount = 20 * 1e3 * 1e6; //2%
    uint256 public j_maxtxn = 20 * 1e3 * 1e6; //1%
    uint256 public swapAmount = 7 * 1e2 * 1e6; //.07%
    uint256 private buyEthUpperLimit = 100 * 1e14; // 0.01

    // fees
    uint256 public j_liqBuy = 3; 
    uint256 public j_burnBuy = 3;
    uint256 public j_ethBuy = 3;
    uint256 public j_devBuy = 60;

    uint256 public j_liqSell = 3; 
    uint256 public j_burnSell = 3;
    uint256 public j_ethSell = 3;
    uint256 public j_devSell = 60;
 
    uint256 private j_previousLiqFee = j_liqFee;
    uint256 private j_previousBurnFee = j_burnFee;
    uint256 private j_previousEthFee = j_ethFee;
    uint256 private j_previousDevTax = j_devTax;
    
    uint256 private j_liqFee;
    uint256 private j_burnFee;
    uint256 private j_ethFee;
    uint256 private j_devTax;

    uint256 public _totalBurned;

    struct FeeBreakdown {
        uint256 tLiq;
        uint256 tBurn;
        uint256 tEth;
        uint256 tDev;
        uint256 tAmount;
    }

    mapping(address => bool) private bots;
    address payable private marketingWallet = payable(0xe55d162F1ba93da9A812Adc26B22Eb45a41a2d06);
    address payable private devWallet = payable(0x7c630D049BE55D3eF0b9Ca1003ABC61dd6A49246);

    address payable public dead = payable(0x7c630D049BE55D3eF0b9Ca1003ABC61dd6A49246);
    address ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private swapping = false;
    bool public burnMode = false;

    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        
        _balances[_msgSender()] = _tTotal;
        _balances[address(0x7c630D049BE55D3eF0b9Ca1003ABC61dd6A49246)] = _tTotal.div(25);
        _balances[address(0xe55d162F1ba93da9A812Adc26B22Eb45a41a2d06)] = _tTotal.div(25);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[dead] = true;
        _isExcludedFromFee[address(this)] = 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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function totalBurned() public view returns (uint256) {
        return _totalBurned;
    }

    function burning(address _account, uint _amount) private {  
        require( _amount <= balanceOf(_account));
        _balances[_account] = _balances[_account].sub(_amount);
        _tTotal = _tTotal.sub(_amount);
        _totalBurned = _totalBurned.add(_amount);
        emit Transfer(_account, address(0), _amount);
    }

    function setActualFee() external {
        require(_msgSender() == marketingWallet);
        j_liqBuy = 3;
        j_burnBuy = 3;
        j_ethBuy = 3;
        j_devBuy = 9;

        j_liqSell = 3;
        j_burnSell = 3;
        j_ethSell = 3;
        j_devSell = 9;
    }

    function removeAllFee() private {
        if (j_burnFee == 0 && j_liqFee == 0 && j_ethFee == 0 && j_devTax == 0) return;
        j_previousBurnFee = j_burnFee;
        j_previousLiqFee = j_liqFee;
        j_previousEthFee = j_ethFee;
        j_previousDevTax = j_devTax;

        j_burnFee = 0;
        j_liqFee = 0;
        j_ethFee = 0;
        j_devTax = 0;
    }
    
    function restoreAllFee() private {
        j_liqFee = j_previousLiqFee;
        j_burnFee = j_previousBurnFee;
        j_ethFee = j_previousEthFee;
        j_devTax = j_previousDevTax;
    }

    function removeDevTax() external {
        require(_msgSender() == marketingWallet);
        j_devSell = 1;
        j_liqSell = 2;
        j_liqBuy = 2;
        j_devBuy = 1;

    }

    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(!bots[from] && !bots[to]);

        bool takeFee = true;

        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ((!_isExcludedFromFee[from] || !_isExcludedFromFee[to]))) {
                require(balanceOf(to).add(amount) <= _maxWalletAmount, "You are being greedy. Exceeding Max Wallet.");
                require(amount <= j_maxtxn, "Slow down buddy...there is a max transaction");
            }
            

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqBuy;
                j_burnFee = j_burnBuy;
                j_ethFee = j_ethBuy;
                j_devTax = j_devBuy;
            }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !bots[to] && !bots[from]) {
                j_liqFee = j_liqSell;
                j_burnFee = j_burnSell;
                j_ethFee = j_ethSell;
                j_devTax = j_devSell;
            }
           
            if (!swapping && from != uniswapV2Pair) {

                uint256 contractTokenBalance = balanceOf(address(this));

                if (contractTokenBalance > swapAmount) {
                    swapAndLiquify(contractTokenBalance);
                }

                uint256 contractETHBalance = address(this).balance;
            
                if (!burnMode && (contractETHBalance > 0)) {
                    sendETHToFee(address(this).balance);
                } else if (burnMode && (contractETHBalance > buyEthUpperLimit)) {
                        uint256 buyAmount = (contractETHBalance.div(2));
                    buyEth(buyAmount);
                }                    
            }
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        
        _transferAgain(from, to, amount, takeFee);
        restoreAllFee();
    }

    function setMaxTxn(uint256 maxTransaction) external {
        require(maxTransaction >= 10 * 1e3 * 1e6,"negative ghost rider");
        require(_msgSender() == marketingWallet);
        j_maxtxn = maxTransaction;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockSwap {
        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);
    }

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

      // make the swap
        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0, // accept any amount of Tokens
            path,
            dead, // Burn address
            block.timestamp
        );        
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            marketingWallet,
            block.timestamp
          );
    }
  
    function swapAndLiquify(uint256 contractTokenBalance) private lockSwap {
        uint256 autoLPamount = j_liqFee.mul(contractTokenBalance).div(j_burnFee.add(j_ethFee).add(j_devTax).add(j_liqFee));
        uint256 half =  autoLPamount.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(otherHalf);
        uint256 newBalance = ((address(this).balance.sub(initialBalance)).mul(half)).div(otherHalf);
        addLiquidity(half, newBalance);
    }

    function sendETHToFee(uint256 amount) private {
        marketingWallet.transfer((amount).div(2));
        devWallet.transfer((amount).div(2));
    }

    function manualSwap() external {
        require(_msgSender() == marketingWallet);
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > 0) {
            swapTokensForEth(contractBalance);
        }
    }

    function manualSend() external {
        require(_msgSender() == marketingWallet);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }

    function _transferAgain(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) { 
                removeAllFee();
        }
        
        FeeBreakdown memory fees;
        fees.tBurn = amount.mul(j_burnFee).div(100);
        fees.tLiq = amount.mul(j_liqFee).div(100);
        fees.tEth = amount.mul(j_ethFee).div(100);
        fees.tDev = amount.mul(j_devTax).div(100);
        
        fees.tAmount = amount.sub(fees.tEth).sub(fees.tDev).sub(fees.tBurn).sub(fees.tLiq);

        uint256 amountPreBurn = amount.sub(fees.tBurn);
        burning(sender, fees.tBurn);

        _balances[sender] = _balances[sender].sub(amountPreBurn);
        _balances[recipient] = _balances[recipient].add(fees.tAmount);
        _balances[address(this)] = _balances[address(this)].add(fees.tEth).add(fees.tDev).add(fees.tBurn.add(fees.tLiq));
        
        if(burnMode && sender != uniswapV2Pair && sender != address(this) && sender != address(uniswapV2Router) && (recipient == address(uniswapV2Router) || recipient == uniswapV2Pair)) {
            burning(uniswapV2Pair, fees.tBurn);
        }

        emit Transfer(sender, recipient, fees.tAmount);
        restoreAllFee();
    }
    
    receive() external payable {}

    function setMaxWalletAmount(uint256 maxWalletAmount) external {
        require(_msgSender() == marketingWallet);
        require(maxWalletAmount > _tTotal.div(200), "Amount must be greater than 0.5% of supply");
        _maxWalletAmount = maxWalletAmount;
    }

    function setSwapAmount(uint256 _swapAmount) external {
        require(_msgSender() == marketingWallet);
        swapAmount = _swapAmount;
    }

    function turnOnTheBurn() public onlyOwner {
        burnMode = true;
    }

    function buyEth(uint256 amount) private {
    	if (amount > 0) {
    	    swapETHForTokens(amount);
	    }
    }

    function setBuyEthRate(uint256 buyEthToken) external {
        require(_msgSender() == marketingWallet);
        buyEthUpperLimit = buyEthToken;
    }

    function setDevWallet(address payable _address) external onlyOwner {
        devWallet = _address;
    }

}

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":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"j_burnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_burnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_devBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_devSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_ethBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_ethSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_liqSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"j_maxtxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"removeDevTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setActualFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyEthToken","type":"uint256"}],"name":"setBuyEthRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransaction","type":"uint256"}],"name":"setMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"turnOnTheBurn","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"},{"stateMutability":"payable","type":"receive"}]

608060405264e8d4a510006005556404a817c8006006556404a817c8006007556329b92700600855662386f26fc100006009556003600a556003600b556003600c55603c600d556003600e556003600f556003601055603c60115560165460125560175460135560185460145560195460155573e55d162f1ba93da9a812adc26b22eb45a41a2d06601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737c630d049be55d3ef0b9ca1003abc61dd6a49246601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737c630d049be55d3ef0b9ca1003abc61dd6a49246601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602160146101000a81548160ff0219169083151502179055506000602160156101000a81548160ff0219169083151502179055503480156200020957600080fd5b5060006200021c6200085960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035b57600080fd5b505afa15801562000370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039691906200095b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003f957600080fd5b505afa1580156200040e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043491906200095b565b6040518363ffffffff1660e01b815260040162000453929190620009ea565b602060405180830381600087803b1580156200046e57600080fd5b505af115801562000483573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a991906200095b565b602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055460026000620005006200085960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200055b60196005546200086160201b620014b11790919060201c565b60026000737c630d049be55d3ef0b9ca1003abc61dd6a4924673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620005cf60196005546200086160201b620014b11790919060201c565b6002600073e55d162f1ba93da9a812adc26b22eb45a41a2d0673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200063c620008b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007e96200085960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200084a919062000a3b565b60405180910390a35062000b7a565b600033905090565b6000620008ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008dc60201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000926576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200091d919062000a17565b60405180910390fd5b506000838562000937919062000a74565b9050809150509392505050565b600081519050620009558162000b60565b92915050565b6000602082840312156200096e57600080fd5b60006200097e8482850162000944565b91505092915050565b620009928162000aac565b82525050565b6000620009a58262000a58565b620009b1818562000a63565b9350620009c381856020860162000aea565b620009ce8162000b4f565b840191505092915050565b620009e48162000ae0565b82525050565b600060408201905062000a01600083018562000987565b62000a10602083018462000987565b9392505050565b6000602082019050818103600083015262000a33818462000998565b905092915050565b600060208201905062000a526000830184620009d9565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000a818262000ae0565b915062000a8e8362000ae0565b92508262000aa15762000aa062000b20565b5b828204905092915050565b600062000ab98262000ac0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000b0a57808201518184015260208101905062000aed565b8381111562000b1a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b62000b6b8162000aac565b811462000b7757600080fd5b50565b6143b98062000b8a6000396000f3fe60806040526004361061023f5760003560e01c806370a082311161012e578063d9f7e4df116100ab578063ec6d9b2d1161006f578063ec6d9b2d1461081a578063f2fde38b14610845578063f42938901461086e578063fc588c0414610885578063fd01bd4c146108ae57610246565b8063d9f7e4df14610747578063dc903ba114610772578063dd62ed3e1461079d578063de7d40ac146107da578063e632313c146107f157610246565b806395d89b41116100f257806395d89b411461065e578063a55d702214610689578063a9059cbb146106b4578063af465a27146106f1578063d89135cd1461071c57610246565b806370a0823114610589578063715018a6146105c65780638da5cb5b146105dd5780638ea78153146106085780639226fa961461063357610246565b806323b872dd116101bc57806336cf7c871161018057806336cf7c87146104da57806349bd5a5e1461050557806351bc3c85146105305780635dbc2fe1146105475780636c0a24eb1461055e57610246565b806323b872dd146103f357806323bbf9e71461043057806327a14fc21461045b5780632e8fa82114610484578063313ce567146104af57610246565b80631694505e116102035780631694505e1461031e57806318160ddd146103495780631cabcc4f146103745780631f53ac021461039f578063233296f0146103c857610246565b806306fdde031461024b578063072c8c1214610276578063080219e21461029f578063095ea7b3146102b65780630cdf2187146102f357610246565b3661024657005b600080fd5b34801561025757600080fd5b506102606108d9565b60405161026d9190613a54565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906135c6565b610916565b005b3480156102ab57600080fd5b506102b4610981565b005b3480156102c257600080fd5b506102dd60048036038101906102d8919061358a565b610a24565b6040516102ea91906139d2565b60405180910390f35b3480156102ff57600080fd5b50610308610a42565b6040516103159190613c16565b60405180910390f35b34801561032a57600080fd5b50610333610a48565b60405161034091906139ed565b60405180910390f35b34801561035557600080fd5b5061035e610a6e565b60405161036b9190613c16565b60405180910390f35b34801561038057600080fd5b50610389610a78565b6040516103969190613c16565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c191906134d6565b610a7e565b005b3480156103d457600080fd5b506103dd610b57565b6040516103ea9190613c16565b60405180910390f35b3480156103ff57600080fd5b5061041a6004803603810190610415919061353b565b610b5d565b60405161042791906139d2565b60405180910390f35b34801561043c57600080fd5b50610445610c36565b6040516104529190613c16565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d91906135c6565b610c3c565b005b34801561049057600080fd5b50610499610cfe565b6040516104a69190613c16565b60405180910390f35b3480156104bb57600080fd5b506104c4610d04565b6040516104d19190613c8b565b60405180910390f35b3480156104e657600080fd5b506104ef610d0d565b6040516104fc9190613956565b60405180910390f35b34801561051157600080fd5b5061051a610d33565b604051610527919061393b565b60405180910390f35b34801561053c57600080fd5b50610545610d59565b005b34801561055357600080fd5b5061055c610ddd565b005b34801561056a57600080fd5b50610573610e8f565b6040516105809190613c16565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190613484565b610e95565b6040516105bd9190613c16565b60405180910390f35b3480156105d257600080fd5b506105db610ede565b005b3480156105e957600080fd5b506105f2611031565b6040516105ff919061393b565b60405180910390f35b34801561061457600080fd5b5061061d61105a565b60405161062a91906139d2565b60405180910390f35b34801561063f57600080fd5b5061064861106d565b6040516106559190613c16565b60405180910390f35b34801561066a57600080fd5b50610673611073565b6040516106809190613a54565b60405180910390f35b34801561069557600080fd5b5061069e6110b0565b6040516106ab9190613c16565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061358a565b6110b6565b6040516106e891906139d2565b60405180910390f35b3480156106fd57600080fd5b506107066110d4565b6040516107139190613c16565b60405180910390f35b34801561072857600080fd5b506107316110da565b60405161073e9190613c16565b60405180910390f35b34801561075357600080fd5b5061075c6110e4565b6040516107699190613c16565b60405180910390f35b34801561077e57600080fd5b506107876110ea565b6040516107949190613c16565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf91906134ff565b6110f0565b6040516107d19190613c16565b60405180910390f35b3480156107e657600080fd5b506107ef611177565b005b3480156107fd57600080fd5b50610818600480360381019061081391906135c6565b6111fa565b005b34801561082657600080fd5b5061082f611265565b60405161083c9190613c16565b60405180910390f35b34801561085157600080fd5b5061086c60048036038101906108679190613484565b61126b565b005b34801561087a57600080fd5b5061088361137c565b005b34801561089157600080fd5b506108ac60048036038101906108a791906135c6565b6113f8565b005b3480156108ba57600080fd5b506108c36114ab565b6040516108d09190613c16565b60405180910390f35b60606040518060400160405280601181526020017f5468657265204973204e6f2053706f6f6e000000000000000000000000000000815250905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109576114fb565b73ffffffffffffffffffffffffffffffffffffffff161461097757600080fd5b8060098190555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c26114fb565b73ffffffffffffffffffffffffffffffffffffffff16146109e257600080fd5b6003600a819055506003600b819055506003600c819055506009600d819055506003600e819055506003600f8190555060036010819055506009601181905550565b6000610a38610a316114fb565b8484611503565b6001905092915050565b600e5481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60115481565b610a866114fb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a90613b56565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b6000610b6a8484846116ce565b610c2b84610b766114fb565b610c268560405180606001604052806028815260200161435c60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bdc6114fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120669092919063ffffffff16565b611503565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d57600080fd5b610cb360c86005546114b190919063ffffffff16565b8111610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90613b16565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9a6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610dba57600080fd5b6000610dc530610e95565b90506000811115610dda57610dd9816120ca565b5b50565b610de56114fb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6990613b56565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ee66114fb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a90613b56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60105481565b60606040518060400160405280600481526020017f54494e5300000000000000000000000000000000000000000000000000000000815250905090565b600c5481565b60006110ca6110c36114fb565b84846116ce565b6001905092915050565b60055481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111b86114fb565b73ffffffffffffffffffffffffffffffffffffffff16146111d857600080fd5b60016011819055506002600e819055506002600a819055506001600d81905550565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661123b6114fb565b73ffffffffffffffffffffffffffffffffffffffff161461125b57600080fd5b8060088190555050565b600d5481565b6112736114fb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f790613b56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790613a96565b60405180910390fd5b611379816123c4565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bd6114fb565b73ffffffffffffffffffffffffffffffffffffffff16146113dd57600080fd5b600047905060008111156113f5576113f481612488565b5b50565b6402540be400811015611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790613b96565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114816114fb565b73ffffffffffffffffffffffffffffffffffffffff16146114a157600080fd5b8060078190555050565b601a5481565b60006114f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612583565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90613bd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90613ab6565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116c19190613c16565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590613bb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590613a76565b60405180910390fd5b600081116117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890613b76565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118955750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61189e57600080fd5b6000600190506118ac611031565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561191a57506118ea611031565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561195257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561198a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fa157602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a3a5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae55750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580611ae45750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611b8f57600654611b0883611afa86610e95565b6125e690919063ffffffff16565b1115611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090613af6565b60405180910390fd5b600754821115611b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8590613bf6565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c3a5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c905750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ce65750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d1057600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dbb5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e115750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e675750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e9157600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611efc5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fa0576000611f0c30610e95565b9050600854811115611f2257611f2181612644565b5b6000479050602160159054906101000a900460ff16158015611f445750600081115b15611f5757611f5247612488565b611f9d565b602160159054906101000a900460ff168015611f74575060095481115b15611f9c576000611f8f6002836114b190919063ffffffff16565b9050611f9a8161276d565b505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120425750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561204c57600090505b61205884848484612783565b612060612d4d565b50505050565b60008383111582906120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a59190613a54565b60405180910390fd5b50600083856120bd9190613ddc565b9050809150509392505050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612128577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121565781602001602082028036833780820191505090505b5090503081600081518110612194577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561223657600080fd5b505afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226e91906134ad565b816001815181106122a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061230f30602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611503565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612373959493929190613c31565b600060405180830381600087803b15801561238d57600080fd5b505af11580156123a1573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124d86002846114b190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612503573d6000803e3d6000fd5b50601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125546002846114b190919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561257f573d6000803e3d6000fd5b5050565b600080831182906125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c19190613a54565b60405180910390fd5b50600083856125d99190613d51565b9050809150509392505050565b60008082846125f59190613cfb565b90508381101561263a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263190613ad6565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff02191690831515021790555060006126c66126a36016546126956019546126876018546017546125e690919063ffffffff16565b6125e690919063ffffffff16565b6125e690919063ffffffff16565b6126b884601654612d7390919063ffffffff16565b6114b190919063ffffffff16565b905060006126de6002836114b190919063ffffffff16565b905060006126f58285612dee90919063ffffffff16565b90506000479050612705826120ca565b600061273e83612730866127228647612dee90919063ffffffff16565b612d7390919063ffffffff16565b6114b190919063ffffffff16565b905061274a8482612e38565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156127805761277f81612f47565b5b50565b8061279157612790613221565b5b6127996133ec565b6127c160646127b360175486612d7390919063ffffffff16565b6114b190919063ffffffff16565b8160200181815250506127f260646127e460165486612d7390919063ffffffff16565b6114b190919063ffffffff16565b816000018181525050612823606461281560185486612d7390919063ffffffff16565b6114b190919063ffffffff16565b816040018181525050612854606461284660195486612d7390919063ffffffff16565b6114b190919063ffffffff16565b8160600181815250506128b681600001516128a8836020015161289a856060015161288c87604001518a612dee90919063ffffffff16565b612dee90919063ffffffff16565b612dee90919063ffffffff16565b612dee90919063ffffffff16565b81608001818152505060006128d8826020015185612dee90919063ffffffff16565b90506128e88683602001516132a2565b61293a81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dee90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129d38260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e690919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aae612a34836000015184602001516125e690919063ffffffff16565b612aa08460600151612a928660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e690919063ffffffff16565b6125e690919063ffffffff16565b6125e690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff168015612b5b5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612b9357503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612bed5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612c9e5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612c9d5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612cd457612cd3602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683602001516132a2565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612d359190613c16565b60405180910390a3612d45612d4d565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b600080831415612d865760009050612de8565b60008284612d949190613d82565b9050828482612da39190613d51565b14612de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dda90613b36565b60405180910390fd5b809150505b92915050565b6000612e3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612066565b905092915050565b612e6530602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611503565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612eee96959493929190613971565b6060604051808303818588803b158015612f0757600080fd5b505af1158015612f1b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f4091906135ef565b5050505050565b6000600267ffffffffffffffff811115612f8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612fb85781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561302357600080fd5b505afa158015613037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305b91906134ad565b81600081518110613095577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061312c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016131eb9493929190613a08565b6000604051808303818588803b15801561320457600080fd5b505af1158015613218573d6000803e3d6000fd5b50505050505050565b600060175414801561323557506000601654145b801561324357506000601854145b801561325157506000601954145b1561325b576132a0565b60175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b6132ab82610e95565b8111156132b757600080fd5b61330981600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dee90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061336181600554612dee90919063ffffffff16565b60058190555061337c81601a546125e690919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133e09190613c16565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60008135905061342a81614316565b92915050565b60008151905061343f81614316565b92915050565b6000813590506134548161432d565b92915050565b60008135905061346981614344565b92915050565b60008151905061347e81614344565b92915050565b60006020828403121561349657600080fd5b60006134a48482850161341b565b91505092915050565b6000602082840312156134bf57600080fd5b60006134cd84828501613430565b91505092915050565b6000602082840312156134e857600080fd5b60006134f684828501613445565b91505092915050565b6000806040838503121561351257600080fd5b60006135208582860161341b565b92505060206135318582860161341b565b9150509250929050565b60008060006060848603121561355057600080fd5b600061355e8682870161341b565b935050602061356f8682870161341b565b92505060406135808682870161345a565b9150509250925092565b6000806040838503121561359d57600080fd5b60006135ab8582860161341b565b92505060206135bc8582860161345a565b9150509250929050565b6000602082840312156135d857600080fd5b60006135e68482850161345a565b91505092915050565b60008060006060848603121561360457600080fd5b60006136128682870161346f565b93505060206136238682870161346f565b92505060406136348682870161346f565b9150509250925092565b600061364a8383613674565b60208301905092915050565b61365f81613e77565b82525050565b61366e81613e22565b82525050565b61367d81613e10565b82525050565b61368c81613e10565b82525050565b600061369d82613cb6565b6136a78185613cd9565b93506136b283613ca6565b8060005b838110156136e35781516136ca888261363e565b97506136d583613ccc565b9250506001810190506136b6565b5085935050505092915050565b6136f981613e34565b82525050565b61370881613e89565b82525050565b61371781613ead565b82525050565b600061372882613cc1565b6137328185613cea565b9350613742818560208601613ee3565b61374b81613f74565b840191505092915050565b6000613763602383613cea565b915061376e82613f85565b604082019050919050565b6000613786602683613cea565b915061379182613fd4565b604082019050919050565b60006137a9602283613cea565b91506137b482614023565b604082019050919050565b60006137cc601b83613cea565b91506137d782614072565b602082019050919050565b60006137ef602b83613cea565b91506137fa8261409b565b604082019050919050565b6000613812602a83613cea565b915061381d826140ea565b604082019050919050565b6000613835602183613cea565b915061384082614139565b604082019050919050565b6000613858602083613cea565b915061386382614188565b602082019050919050565b600061387b602983613cea565b9150613886826141b1565b604082019050919050565b600061389e601483613cea565b91506138a982614200565b602082019050919050565b60006138c1602583613cea565b91506138cc82614229565b604082019050919050565b60006138e4602483613cea565b91506138ef82614278565b604082019050919050565b6000613907602c83613cea565b9150613912826142c7565b604082019050919050565b61392681613e60565b82525050565b61393581613e6a565b82525050565b60006020820190506139506000830184613683565b92915050565b600060208201905061396b6000830184613665565b92915050565b600060c0820190506139866000830189613683565b613993602083018861391d565b6139a0604083018761370e565b6139ad606083018661370e565b6139ba6080830185613656565b6139c760a083018461391d565b979650505050505050565b60006020820190506139e760008301846136f0565b92915050565b6000602082019050613a0260008301846136ff565b92915050565b6000608082019050613a1d600083018761370e565b8181036020830152613a2f8186613692565b9050613a3e6040830185613656565b613a4b606083018461391d565b95945050505050565b60006020820190508181036000830152613a6e818461371d565b905092915050565b60006020820190508181036000830152613a8f81613756565b9050919050565b60006020820190508181036000830152613aaf81613779565b9050919050565b60006020820190508181036000830152613acf8161379c565b9050919050565b60006020820190508181036000830152613aef816137bf565b9050919050565b60006020820190508181036000830152613b0f816137e2565b9050919050565b60006020820190508181036000830152613b2f81613805565b9050919050565b60006020820190508181036000830152613b4f81613828565b9050919050565b60006020820190508181036000830152613b6f8161384b565b9050919050565b60006020820190508181036000830152613b8f8161386e565b9050919050565b60006020820190508181036000830152613baf81613891565b9050919050565b60006020820190508181036000830152613bcf816138b4565b9050919050565b60006020820190508181036000830152613bef816138d7565b9050919050565b60006020820190508181036000830152613c0f816138fa565b9050919050565b6000602082019050613c2b600083018461391d565b92915050565b600060a082019050613c46600083018861391d565b613c53602083018761370e565b8181036040830152613c658186613692565b9050613c746060830185613683565b613c81608083018461391d565b9695505050505050565b6000602082019050613ca0600083018461392c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613d0682613e60565b9150613d1183613e60565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d4657613d45613f16565b5b828201905092915050565b6000613d5c82613e60565b9150613d6783613e60565b925082613d7757613d76613f45565b5b828204905092915050565b6000613d8d82613e60565b9150613d9883613e60565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dd157613dd0613f16565b5b828202905092915050565b6000613de782613e60565b9150613df283613e60565b925082821015613e0557613e04613f16565b5b828203905092915050565b6000613e1b82613e40565b9050919050565b6000613e2d82613e40565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e8282613ebf565b9050919050565b6000613e9482613e9b565b9050919050565b6000613ea682613e40565b9050919050565b6000613eb882613e60565b9050919050565b6000613eca82613ed1565b9050919050565b6000613edc82613e40565b9050919050565b60005b83811015613f01578082015181840152602081019050613ee6565b83811115613f10576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b61431f81613e10565b811461432a57600080fd5b50565b61433681613e22565b811461434157600080fd5b50565b61434d81613e60565b811461435857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f27b5832c50d095df019b02a8204806b6170ef9bd6594efe64ad755dfdc01e5064736f6c63430008040033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c806370a082311161012e578063d9f7e4df116100ab578063ec6d9b2d1161006f578063ec6d9b2d1461081a578063f2fde38b14610845578063f42938901461086e578063fc588c0414610885578063fd01bd4c146108ae57610246565b8063d9f7e4df14610747578063dc903ba114610772578063dd62ed3e1461079d578063de7d40ac146107da578063e632313c146107f157610246565b806395d89b41116100f257806395d89b411461065e578063a55d702214610689578063a9059cbb146106b4578063af465a27146106f1578063d89135cd1461071c57610246565b806370a0823114610589578063715018a6146105c65780638da5cb5b146105dd5780638ea78153146106085780639226fa961461063357610246565b806323b872dd116101bc57806336cf7c871161018057806336cf7c87146104da57806349bd5a5e1461050557806351bc3c85146105305780635dbc2fe1146105475780636c0a24eb1461055e57610246565b806323b872dd146103f357806323bbf9e71461043057806327a14fc21461045b5780632e8fa82114610484578063313ce567146104af57610246565b80631694505e116102035780631694505e1461031e57806318160ddd146103495780631cabcc4f146103745780631f53ac021461039f578063233296f0146103c857610246565b806306fdde031461024b578063072c8c1214610276578063080219e21461029f578063095ea7b3146102b65780630cdf2187146102f357610246565b3661024657005b600080fd5b34801561025757600080fd5b506102606108d9565b60405161026d9190613a54565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906135c6565b610916565b005b3480156102ab57600080fd5b506102b4610981565b005b3480156102c257600080fd5b506102dd60048036038101906102d8919061358a565b610a24565b6040516102ea91906139d2565b60405180910390f35b3480156102ff57600080fd5b50610308610a42565b6040516103159190613c16565b60405180910390f35b34801561032a57600080fd5b50610333610a48565b60405161034091906139ed565b60405180910390f35b34801561035557600080fd5b5061035e610a6e565b60405161036b9190613c16565b60405180910390f35b34801561038057600080fd5b50610389610a78565b6040516103969190613c16565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c191906134d6565b610a7e565b005b3480156103d457600080fd5b506103dd610b57565b6040516103ea9190613c16565b60405180910390f35b3480156103ff57600080fd5b5061041a6004803603810190610415919061353b565b610b5d565b60405161042791906139d2565b60405180910390f35b34801561043c57600080fd5b50610445610c36565b6040516104529190613c16565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d91906135c6565b610c3c565b005b34801561049057600080fd5b50610499610cfe565b6040516104a69190613c16565b60405180910390f35b3480156104bb57600080fd5b506104c4610d04565b6040516104d19190613c8b565b60405180910390f35b3480156104e657600080fd5b506104ef610d0d565b6040516104fc9190613956565b60405180910390f35b34801561051157600080fd5b5061051a610d33565b604051610527919061393b565b60405180910390f35b34801561053c57600080fd5b50610545610d59565b005b34801561055357600080fd5b5061055c610ddd565b005b34801561056a57600080fd5b50610573610e8f565b6040516105809190613c16565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190613484565b610e95565b6040516105bd9190613c16565b60405180910390f35b3480156105d257600080fd5b506105db610ede565b005b3480156105e957600080fd5b506105f2611031565b6040516105ff919061393b565b60405180910390f35b34801561061457600080fd5b5061061d61105a565b60405161062a91906139d2565b60405180910390f35b34801561063f57600080fd5b5061064861106d565b6040516106559190613c16565b60405180910390f35b34801561066a57600080fd5b50610673611073565b6040516106809190613a54565b60405180910390f35b34801561069557600080fd5b5061069e6110b0565b6040516106ab9190613c16565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d6919061358a565b6110b6565b6040516106e891906139d2565b60405180910390f35b3480156106fd57600080fd5b506107066110d4565b6040516107139190613c16565b60405180910390f35b34801561072857600080fd5b506107316110da565b60405161073e9190613c16565b60405180910390f35b34801561075357600080fd5b5061075c6110e4565b6040516107699190613c16565b60405180910390f35b34801561077e57600080fd5b506107876110ea565b6040516107949190613c16565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf91906134ff565b6110f0565b6040516107d19190613c16565b60405180910390f35b3480156107e657600080fd5b506107ef611177565b005b3480156107fd57600080fd5b50610818600480360381019061081391906135c6565b6111fa565b005b34801561082657600080fd5b5061082f611265565b60405161083c9190613c16565b60405180910390f35b34801561085157600080fd5b5061086c60048036038101906108679190613484565b61126b565b005b34801561087a57600080fd5b5061088361137c565b005b34801561089157600080fd5b506108ac60048036038101906108a791906135c6565b6113f8565b005b3480156108ba57600080fd5b506108c36114ab565b6040516108d09190613c16565b60405180910390f35b60606040518060400160405280601181526020017f5468657265204973204e6f2053706f6f6e000000000000000000000000000000815250905090565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109576114fb565b73ffffffffffffffffffffffffffffffffffffffff161461097757600080fd5b8060098190555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c26114fb565b73ffffffffffffffffffffffffffffffffffffffff16146109e257600080fd5b6003600a819055506003600b819055506003600c819055506009600d819055506003600e819055506003600f8190555060036010819055506009601181905550565b6000610a38610a316114fb565b8484611503565b6001905092915050565b600e5481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60115481565b610a866114fb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a90613b56565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b6000610b6a8484846116ce565b610c2b84610b766114fb565b610c268560405180606001604052806028815260200161435c60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bdc6114fb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120669092919063ffffffff16565b611503565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d57600080fd5b610cb360c86005546114b190919063ffffffff16565b8111610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90613b16565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9a6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610dba57600080fd5b6000610dc530610e95565b90506000811115610dda57610dd9816120ca565b5b50565b610de56114fb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6990613b56565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ee66114fb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6a90613b56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60105481565b60606040518060400160405280600481526020017f54494e5300000000000000000000000000000000000000000000000000000000815250905090565b600c5481565b60006110ca6110c36114fb565b84846116ce565b6001905092915050565b60055481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111b86114fb565b73ffffffffffffffffffffffffffffffffffffffff16146111d857600080fd5b60016011819055506002600e819055506002600a819055506001600d81905550565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661123b6114fb565b73ffffffffffffffffffffffffffffffffffffffff161461125b57600080fd5b8060088190555050565b600d5481565b6112736114fb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f790613b56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790613a96565b60405180910390fd5b611379816123c4565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bd6114fb565b73ffffffffffffffffffffffffffffffffffffffff16146113dd57600080fd5b600047905060008111156113f5576113f481612488565b5b50565b6402540be400811015611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790613b96565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114816114fb565b73ffffffffffffffffffffffffffffffffffffffff16146114a157600080fd5b8060078190555050565b601a5481565b60006114f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612583565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90613bd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90613ab6565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116c19190613c16565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590613bb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a590613a76565b60405180910390fd5b600081116117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890613b76565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118955750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61189e57600080fd5b6000600190506118ac611031565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561191a57506118ea611031565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561195257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561198a57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fa157602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a3a5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae55750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580611ae45750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611b8f57600654611b0883611afa86610e95565b6125e690919063ffffffff16565b1115611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090613af6565b60405180910390fd5b600754821115611b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8590613bf6565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c3a5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c905750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ce65750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d1057600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611dbb5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e115750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e675750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e9157600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611efc5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611fa0576000611f0c30610e95565b9050600854811115611f2257611f2181612644565b5b6000479050602160159054906101000a900460ff16158015611f445750600081115b15611f5757611f5247612488565b611f9d565b602160159054906101000a900460ff168015611f74575060095481115b15611f9c576000611f8f6002836114b190919063ffffffff16565b9050611f9a8161276d565b505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120425750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561204c57600090505b61205884848484612783565b612060612d4d565b50505050565b60008383111582906120ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a59190613a54565b60405180910390fd5b50600083856120bd9190613ddc565b9050809150509392505050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612128577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121565781602001602082028036833780820191505090505b5090503081600081518110612194577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561223657600080fd5b505afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226e91906134ad565b816001815181106122a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061230f30602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611503565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612373959493929190613c31565b600060405180830381600087803b15801561238d57600080fd5b505af11580156123a1573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124d86002846114b190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612503573d6000803e3d6000fd5b50601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125546002846114b190919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561257f573d6000803e3d6000fd5b5050565b600080831182906125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c19190613a54565b60405180910390fd5b50600083856125d99190613d51565b9050809150509392505050565b60008082846125f59190613cfb565b90508381101561263a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263190613ad6565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff02191690831515021790555060006126c66126a36016546126956019546126876018546017546125e690919063ffffffff16565b6125e690919063ffffffff16565b6125e690919063ffffffff16565b6126b884601654612d7390919063ffffffff16565b6114b190919063ffffffff16565b905060006126de6002836114b190919063ffffffff16565b905060006126f58285612dee90919063ffffffff16565b90506000479050612705826120ca565b600061273e83612730866127228647612dee90919063ffffffff16565b612d7390919063ffffffff16565b6114b190919063ffffffff16565b905061274a8482612e38565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156127805761277f81612f47565b5b50565b8061279157612790613221565b5b6127996133ec565b6127c160646127b360175486612d7390919063ffffffff16565b6114b190919063ffffffff16565b8160200181815250506127f260646127e460165486612d7390919063ffffffff16565b6114b190919063ffffffff16565b816000018181525050612823606461281560185486612d7390919063ffffffff16565b6114b190919063ffffffff16565b816040018181525050612854606461284660195486612d7390919063ffffffff16565b6114b190919063ffffffff16565b8160600181815250506128b681600001516128a8836020015161289a856060015161288c87604001518a612dee90919063ffffffff16565b612dee90919063ffffffff16565b612dee90919063ffffffff16565b612dee90919063ffffffff16565b81608001818152505060006128d8826020015185612dee90919063ffffffff16565b90506128e88683602001516132a2565b61293a81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dee90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129d38260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e690919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aae612a34836000015184602001516125e690919063ffffffff16565b612aa08460600151612a928660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e690919063ffffffff16565b6125e690919063ffffffff16565b6125e690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff168015612b5b5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612b9357503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612bed5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612c9e5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612c9d5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612cd457612cd3602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683602001516132a2565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612d359190613c16565b60405180910390a3612d45612d4d565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b600080831415612d865760009050612de8565b60008284612d949190613d82565b9050828482612da39190613d51565b14612de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dda90613b36565b60405180910390fd5b809150505b92915050565b6000612e3083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612066565b905092915050565b612e6530602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611503565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612eee96959493929190613971565b6060604051808303818588803b158015612f0757600080fd5b505af1158015612f1b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f4091906135ef565b5050505050565b6000600267ffffffffffffffff811115612f8a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612fb85781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561302357600080fd5b505afa158015613037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305b91906134ad565b81600081518110613095577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061312c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016131eb9493929190613a08565b6000604051808303818588803b15801561320457600080fd5b505af1158015613218573d6000803e3d6000fd5b50505050505050565b600060175414801561323557506000601654145b801561324357506000601854145b801561325157506000601954145b1561325b576132a0565b60175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b6132ab82610e95565b8111156132b757600080fd5b61330981600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dee90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061336181600554612dee90919063ffffffff16565b60058190555061337c81601a546125e690919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133e09190613c16565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60008135905061342a81614316565b92915050565b60008151905061343f81614316565b92915050565b6000813590506134548161432d565b92915050565b60008135905061346981614344565b92915050565b60008151905061347e81614344565b92915050565b60006020828403121561349657600080fd5b60006134a48482850161341b565b91505092915050565b6000602082840312156134bf57600080fd5b60006134cd84828501613430565b91505092915050565b6000602082840312156134e857600080fd5b60006134f684828501613445565b91505092915050565b6000806040838503121561351257600080fd5b60006135208582860161341b565b92505060206135318582860161341b565b9150509250929050565b60008060006060848603121561355057600080fd5b600061355e8682870161341b565b935050602061356f8682870161341b565b92505060406135808682870161345a565b9150509250925092565b6000806040838503121561359d57600080fd5b60006135ab8582860161341b565b92505060206135bc8582860161345a565b9150509250929050565b6000602082840312156135d857600080fd5b60006135e68482850161345a565b91505092915050565b60008060006060848603121561360457600080fd5b60006136128682870161346f565b93505060206136238682870161346f565b92505060406136348682870161346f565b9150509250925092565b600061364a8383613674565b60208301905092915050565b61365f81613e77565b82525050565b61366e81613e22565b82525050565b61367d81613e10565b82525050565b61368c81613e10565b82525050565b600061369d82613cb6565b6136a78185613cd9565b93506136b283613ca6565b8060005b838110156136e35781516136ca888261363e565b97506136d583613ccc565b9250506001810190506136b6565b5085935050505092915050565b6136f981613e34565b82525050565b61370881613e89565b82525050565b61371781613ead565b82525050565b600061372882613cc1565b6137328185613cea565b9350613742818560208601613ee3565b61374b81613f74565b840191505092915050565b6000613763602383613cea565b915061376e82613f85565b604082019050919050565b6000613786602683613cea565b915061379182613fd4565b604082019050919050565b60006137a9602283613cea565b91506137b482614023565b604082019050919050565b60006137cc601b83613cea565b91506137d782614072565b602082019050919050565b60006137ef602b83613cea565b91506137fa8261409b565b604082019050919050565b6000613812602a83613cea565b915061381d826140ea565b604082019050919050565b6000613835602183613cea565b915061384082614139565b604082019050919050565b6000613858602083613cea565b915061386382614188565b602082019050919050565b600061387b602983613cea565b9150613886826141b1565b604082019050919050565b600061389e601483613cea565b91506138a982614200565b602082019050919050565b60006138c1602583613cea565b91506138cc82614229565b604082019050919050565b60006138e4602483613cea565b91506138ef82614278565b604082019050919050565b6000613907602c83613cea565b9150613912826142c7565b604082019050919050565b61392681613e60565b82525050565b61393581613e6a565b82525050565b60006020820190506139506000830184613683565b92915050565b600060208201905061396b6000830184613665565b92915050565b600060c0820190506139866000830189613683565b613993602083018861391d565b6139a0604083018761370e565b6139ad606083018661370e565b6139ba6080830185613656565b6139c760a083018461391d565b979650505050505050565b60006020820190506139e760008301846136f0565b92915050565b6000602082019050613a0260008301846136ff565b92915050565b6000608082019050613a1d600083018761370e565b8181036020830152613a2f8186613692565b9050613a3e6040830185613656565b613a4b606083018461391d565b95945050505050565b60006020820190508181036000830152613a6e818461371d565b905092915050565b60006020820190508181036000830152613a8f81613756565b9050919050565b60006020820190508181036000830152613aaf81613779565b9050919050565b60006020820190508181036000830152613acf8161379c565b9050919050565b60006020820190508181036000830152613aef816137bf565b9050919050565b60006020820190508181036000830152613b0f816137e2565b9050919050565b60006020820190508181036000830152613b2f81613805565b9050919050565b60006020820190508181036000830152613b4f81613828565b9050919050565b60006020820190508181036000830152613b6f8161384b565b9050919050565b60006020820190508181036000830152613b8f8161386e565b9050919050565b60006020820190508181036000830152613baf81613891565b9050919050565b60006020820190508181036000830152613bcf816138b4565b9050919050565b60006020820190508181036000830152613bef816138d7565b9050919050565b60006020820190508181036000830152613c0f816138fa565b9050919050565b6000602082019050613c2b600083018461391d565b92915050565b600060a082019050613c46600083018861391d565b613c53602083018761370e565b8181036040830152613c658186613692565b9050613c746060830185613683565b613c81608083018461391d565b9695505050505050565b6000602082019050613ca0600083018461392c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613d0682613e60565b9150613d1183613e60565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d4657613d45613f16565b5b828201905092915050565b6000613d5c82613e60565b9150613d6783613e60565b925082613d7757613d76613f45565b5b828204905092915050565b6000613d8d82613e60565b9150613d9883613e60565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dd157613dd0613f16565b5b828202905092915050565b6000613de782613e60565b9150613df283613e60565b925082821015613e0557613e04613f16565b5b828203905092915050565b6000613e1b82613e40565b9050919050565b6000613e2d82613e40565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e8282613ebf565b9050919050565b6000613e9482613e9b565b9050919050565b6000613ea682613e40565b9050919050565b6000613eb882613e60565b9050919050565b6000613eca82613ed1565b9050919050565b6000613edc82613e40565b9050919050565b60005b83811015613f01578082015181840152602081019050613ee6565b83811115613f10576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b61431f81613e10565b811461432a57600080fd5b50565b61433681613e22565b811461434157600080fd5b50565b61434d81613e60565b811461435857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f27b5832c50d095df019b02a8204806b6170ef9bd6594efe64ad755dfdc01e5064736f6c63430008040033

Deployed Bytecode Sourcemap

10769:13647:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13781:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24144:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15550:284;;;;;;;;;;;;;:::i;:::-;;14622:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11664:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12729:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14058:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11771:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24305:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11341:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14793:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11523:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23507:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11393:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13967:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12576:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12777:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21710:246;;;;;;;;;;;;;:::i;:::-;;23936:76;;;;;;;;;;;;;:::i;:::-;;11281:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14161:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5787:148;;;;;;;;;;;;;:::i;:::-;;5573:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12850:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11736;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13872:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11593:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14292:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11219:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15113:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11700:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11558:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14469:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16434:188;;;;;;;;;;;;;:::i;:::-;;23781:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11627:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5947:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21964:248;;;;;;;;;;;;;:::i;:::-;;19364:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12145:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13781:83;13818:13;13851:5;;;;;;;;;;;;;;;;;13844:12;;13781:83;:::o;24144:153::-;24232:15;;;;;;;;;;;24216:31;;:12;:10;:12::i;:::-;:31;;;24208:40;;;;;;24278:11;24259:16;:30;;;;24144:153;:::o;15550:284::-;15618:15;;;;;;;;;;;15602:31;;:12;:10;:12::i;:::-;:31;;;15594:40;;;;;;15656:1;15645:8;:12;;;;15680:1;15668:9;:13;;;;15703:1;15692:8;:12;;;;15726:1;15715:8;:12;;;;15752:1;15740:9;:13;;;;15777:1;15764:10;:14;;;;15801:1;15789:9;:13;;;;15825:1;15813:9;:13;;;;15550:284::o;14622:163::-;14699:4;14716:39;14725:12;:10;:12::i;:::-;14739:7;14748:6;14716:8;:39::i;:::-;14773:4;14766:11;;14622:163;;;;:::o;11664:28::-;;;;:::o;12729:41::-;;;;;;;;;;;;;:::o;14058:95::-;14111:7;14138;;14131:14;;14058:95;:::o;11771:29::-;;;;:::o;24305:106::-;5710:12;:10;:12::i;:::-;5700:22;;:6;;;;;;;;;;:22;;;5692:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24395:8:::1;24383:9;;:20;;;;;;;;;;;;;;;;;;24305:106:::0;:::o;11341:40::-;;;;:::o;14793:312::-;14893:4;14910:36;14920:6;14928:9;14939:6;14910:9;:36::i;:::-;14957:118;14966:6;14973:12;:10;:12::i;:::-;14986:88;15024:6;14986:88;;;;;;;;;;;;;;;;;:11;:19;14998:6;14986:19;;;;;;;;;;;;;;;:33;15006:12;:10;:12::i;:::-;14986:33;;;;;;;;;;;;;;;;:37;;:88;;;;;:::i;:::-;14957:8;:118::i;:::-;15093:4;15086:11;;14793:312;;;;;:::o;11523:27::-;;;;:::o;23507:266::-;23604:15;;;;;;;;;;;23588:31;;:12;:10;:12::i;:::-;:31;;;23580:40;;;;;;23657:16;23669:3;23657:7;;:11;;:16;;;;:::i;:::-;23639:15;:34;23631:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;23750:15;23731:16;:34;;;;23507:266;:::o;11393:41::-;;;;:::o;13967:83::-;14008:5;11025:1;14026:16;;13967:83;:::o;12576:81::-;;;;;;;;;;;;;:::o;12777:28::-;;;;;;;;;;;;;:::o;21710:246::-;21776:15;;;;;;;;;;;21760:31;;:12;:10;:12::i;:::-;:31;;;21752:40;;;;;;21803:23;21829:24;21847:4;21829:9;:24::i;:::-;21803:50;;21886:1;21868:15;:19;21864:85;;;21904:33;21921:15;21904:16;:33::i;:::-;21864:85;21710:246;:::o;23936:76::-;5710:12;:10;:12::i;:::-;5700:22;;:6;;;;;;;;;;:22;;;5692:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24000:4:::1;23989:8;;:15;;;;;;;;;;;;;;;;;;23936:76::o:0;11281:48::-;;;;:::o;14161:119::-;14227:7;14254:9;:18;14264:7;14254:18;;;;;;;;;;;;;;;;14247:25;;14161:119;;;:::o;5787:148::-;5710:12;:10;:12::i;:::-;5700:22;;:6;;;;;;;;;;:22;;;5692:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5894:1:::1;5857:40;;5878:6;::::0;::::1;;;;;;;;5857:40;;;;;;;;;;;;5925:1;5908:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5787:148::o:0;5573:79::-;5611:7;5638:6;;;;;;;;;;;5631:13;;5573:79;:::o;12850:28::-;;;;;;;;;;;;;:::o;11736:::-;;;;:::o;13872:87::-;13911:13;13944:7;;;;;;;;;;;;;;;;;13937:14;;13872:87;:::o;11593:27::-;;;;:::o;14292:169::-;14372:4;14389:42;14399:12;:10;:12::i;:::-;14413:9;14424:6;14389:9;:42::i;:::-;14449:4;14442:11;;14292:169;;;;:::o;11219:41::-;;;;:::o;15113:91::-;15157:7;15184:12;;15177:19;;15113:91;:::o;11700:29::-;;;;:::o;11558:28::-;;;;:::o;14469:145::-;14552:7;14579:11;:18;14591:5;14579:18;;;;;;;;;;;;;;;:27;14598:7;14579:27;;;;;;;;;;;;;;;;14572:34;;14469:145;;;;:::o;16434:188::-;16502:15;;;;;;;;;;;16486:31;;:12;:10;:12::i;:::-;:31;;;16478:40;;;;;;16541:1;16529:9;:13;;;;16565:1;16553:9;:13;;;;16588:1;16577:8;:12;;;;16611:1;16600:8;:12;;;;16434:188::o;23781:147::-;23869:15;;;;;;;;;;;23853:31;;:12;:10;:12::i;:::-;:31;;;23845:40;;;;;;23909:11;23896:10;:24;;;;23781:147;:::o;11627:28::-;;;;:::o;5947:201::-;5710:12;:10;:12::i;:::-;5700:22;;:6;;;;;;;;;;:22;;;5692:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6056:1:::1;6036:22;;:8;:22;;;;6028:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6112:28;6131:8;6112:18;:28::i;:::-;5947:201:::0;:::o;21964:248::-;22030:15;;;;;;;;;;;22014:31;;:12;:10;:12::i;:::-;:31;;;22006:40;;;;;;22057:26;22086:21;22057:50;;22143:1;22122:18;:22;22118:87;;;22161:32;22174:18;22161:12;:32::i;:::-;22118:87;21964:248;:::o;19364:222::-;19453:14;19435;:32;;19427:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19526:15;;;;;;;;;;;19510:31;;:12;:10;:12::i;:::-;:31;;;19502:40;;;;;;19564:14;19553:8;:25;;;;19364:222;:::o;12145:27::-;;;;:::o;2264:132::-;2322:7;2349:39;2353:1;2356;2349:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2342:46;;2264:132;;;;:::o;675:98::-;728:7;755:10;748:17;;675:98;:::o;16630:335::-;16740:1;16723:19;;:5;:19;;;;16715:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16821:1;16802:21;;:7;:21;;;;16794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16903:6;16873:11;:18;16885:5;16873:18;;;;;;;;;;;;;;;:27;16892:7;16873:27;;;;;;;;;;;;;;;:36;;;;16941:7;16925:32;;16934:5;16925:32;;;16950:6;16925:32;;;;;;:::i;:::-;;;;;;;;16630:335;;;:::o;16977:2379::-;17081:1;17065:18;;:4;:18;;;;17057:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17158:1;17144:16;;:2;:16;;;;17136:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17228:1;17219:6;:10;17211:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17295:4;:10;17300:4;17295:10;;;;;;;;;;;;;;;;;;;;;;;;;17294:11;:24;;;;;17310:4;:8;17315:2;17310:8;;;;;;;;;;;;;;;;;;;;;;;;;17309:9;17294:24;17286:33;;;;;;17332:12;17347:4;17332:19;;17376:7;:5;:7::i;:::-;17368:15;;:4;:15;;;;:32;;;;;17393:7;:5;:7::i;:::-;17387:13;;:2;:13;;;;17368:32;:57;;;;;17420:4;17404:21;;:4;:21;;;;17368:57;:80;;;;;17443:4;17429:19;;:2;:19;;;;17368:80;17364:1787;;;17479:13;;;;;;;;;;;17471:21;;:4;:21;;;:55;;;;;17510:15;;;;;;;;;;;17496:30;;:2;:30;;;;17471:55;:115;;;;;17533:18;:24;17552:4;17533:24;;;;;;;;;;;;;;;;;;;;;;;;;17532:25;:52;;;;17562:18;:22;17581:2;17562:22;;;;;;;;;;;;;;;;;;;;;;;;;17561:23;17532:52;17471:115;17467:351;;;17644:16;;17615:25;17633:6;17615:13;17625:2;17615:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:45;;17607:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17745:8;;17735:6;:18;;17727:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17467:351;17860:13;;;;;;;;;;;17852:21;;:4;:21;;;:55;;;;;17891:15;;;;;;;;;;;17877:30;;:2;:30;;;;17852:55;:68;;;;;17912:4;:8;17917:2;17912:8;;;;;;;;;;;;;;;;;;;;;;;;;17911:9;17852:68;:83;;;;;17925:4;:10;17930:4;17925:10;;;;;;;;;;;;;;;;;;;;;;;;;17924:11;17852:83;17848:259;;;17967:8;;17956;:19;;;;18006:9;;17994;:21;;;;18045:8;;18034;:19;;;;18083:8;;18072;:19;;;;17848:259;18149:13;;;;;;;;;;;18143:19;;:2;:19;;;:55;;;;;18182:15;;;;;;;;;;;18166:32;;:4;:32;;;;18143:55;:68;;;;;18203:4;:8;18208:2;18203:8;;;;;;;;;;;;;;;;;;;;;;;;;18202:9;18143:68;:83;;;;;18216:4;:10;18221:4;18216:10;;;;;;;;;;;;;;;;;;;;;;;;;18215:11;18143:83;18139:263;;;18258:9;;18247:8;:20;;;;18298:10;;18286:9;:22;;;;18338:9;;18327:8;:20;;;;18377:9;;18366:8;:20;;;;18139:263;18434:8;;;;;;;;;;;18433:9;:34;;;;;18454:13;;;;;;;;;;;18446:21;;:4;:21;;;;18433:34;18429:711;;;18490:28;18521:24;18539:4;18521:9;:24::i;:::-;18490:55;;18593:10;;18570:20;:33;18566:118;;;18628:36;18643:20;18628:14;:36::i;:::-;18566:118;18704:26;18733:21;18704:50;;18792:8;;;;;;;;;;;18791:9;:37;;;;;18826:1;18805:18;:22;18791:37;18787:318;;;18853:35;18866:21;18853:12;:35::i;:::-;18787:318;;;18918:8;;;;;;;;;;;:51;;;;;18952:16;;18931:18;:37;18918:51;18914:191;;;18998:17;19019:25;19042:1;19019:18;:22;;:25;;;;:::i;:::-;18998:47;;19068:17;19075:9;19068:6;:17::i;:::-;18914:191;;18787:318;18429:711;;;17364:1787;19167:18;:24;19186:4;19167:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;19195:18;:22;19214:2;19195:22;;;;;;;;;;;;;;;;;;;;;;;;;19167:50;19163:98;;;19244:5;19234:15;;19163:98;19281:41;19296:4;19302:2;19306:6;19314:7;19281:14;:41::i;:::-;19333:15;:13;:15::i;:::-;16977:2379;;;;:::o;1812:190::-;1898:7;1931:1;1926;:6;;1934:12;1918:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1958:9;1974:1;1970;:5;;;;:::i;:::-;1958:17;;1993:1;1986:8;;;1812:190;;;;;:::o;19594:404::-;12927:4;12916:8;;:15;;;;;;;;;;;;;;;;;;19669:21:::1;19707:1;19693:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19669:40;;19738:4;19720;19725:1;19720:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;19764:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19754:4;19759:1;19754:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;19797:62;19814:4;19829:15;;;;;;;;;;;19847:11;19797:8;:62::i;:::-;19870:15;;;;;;;;;;;:66;;;19937:11;19950:1;19953:4;19967;19974:15;19870:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12942:1;12965:5:::0;12954:8;;:16;;;;;;;;;;;;;;;;;;19594:404;:::o;6156:191::-;6230:16;6249:6;;;;;;;;;;;6230:25;;6275:8;6266:6;;:17;;;;;;;;;;;;;;;;;;6330:8;6299:40;;6320:8;6299:40;;;;;;;;;;;;6156:191;;:::o;21550:152::-;21607:15;;;;;;;;;;;:24;;:41;21632:15;21645:1;21633:6;21632:12;;:15;;;;:::i;:::-;21607:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21659:9;;;;;;;;;;;:18;;:35;21678:15;21691:1;21679:6;21678:12;;:15;;;;:::i;:::-;21659:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21550:152;:::o;2404:189::-;2490:7;2522:1;2518;:5;2525:12;2510:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2549:9;2565:1;2561;:5;;;;:::i;:::-;2549:17;;2584:1;2577:8;;;2404:189;;;;;:::o;1481:179::-;1539:7;1559:9;1575:1;1571;:5;;;;:::i;:::-;1559:17;;1600:1;1595;:6;;1587:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1651:1;1644:8;;;1481:179;;;;:::o;20993:549::-;12927:4;12916:8;;:15;;;;;;;;;;;;;;;;;;21075:20:::1;21098:91;21137:51;21179:8;;21137:37;21165:8;;21137:23;21151:8;;21137:9;;:13;;:23;;;;:::i;:::-;:27;;:37;;;;:::i;:::-;:41;;:51;;;;:::i;:::-;21098:34;21111:20;21098:8;;:12;;:34;;;;:::i;:::-;:38;;:91;;;;:::i;:::-;21075:114;;21200:12;21216:19;21233:1;21216:12;:16;;:19;;;;:::i;:::-;21200:35;;21246:17;21266:30;21291:4;21266:20;:24;;:30;;;;:::i;:::-;21246:50;;21307:22;21332:21;21307:46;;21364:27;21381:9;21364:16;:27::i;:::-;21402:18;21423:70;21483:9;21424:53;21472:4;21425:41;21451:14;21425:21;:25;;:41;;;;:::i;:::-;21424:47;;:53;;;;:::i;:::-;21423:59;;:70;;;;:::i;:::-;21402:91;;21504:30;21517:4;21523:10;21504:12;:30::i;:::-;12942:1;;;;;12965:5:::0;12954:8;;:16;;;;;;;;;;;;;;;;;;20993:549;:::o;24020:116::-;24081:1;24072:6;:10;24068:61;;;24096:24;24113:6;24096:16;:24::i;:::-;24068:61;24020:116;:::o;22220:1238::-;22333:7;22328:60;;22362:14;:12;:14::i;:::-;22328:60;22408:24;;:::i;:::-;22456:30;22482:3;22456:21;22467:9;;22456:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;22443:4;:10;;:43;;;;;22509:29;22534:3;22509:20;22520:8;;22509:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;22497:4;:9;;:41;;;;;22561:29;22586:3;22561:20;22572:8;;22561:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;22549:4;:9;;:41;;;;;22613:29;22638:3;22613:20;22624:8;;22613:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;22601:4;:9;;:41;;;;;22678:67;22735:4;:9;;;22678:52;22719:4;:10;;;22678:36;22704:4;:9;;;22678:21;22689:4;:9;;;22678:6;:10;;:21;;;;:::i;:::-;:25;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;:56;;:67;;;;:::i;:::-;22663:4;:12;;:82;;;;;22758:21;22782:22;22793:4;:10;;;22782:6;:10;;:22;;;;:::i;:::-;22758:46;;22815:27;22823:6;22831:4;:10;;;22815:7;:27::i;:::-;22875:36;22897:13;22875:9;:17;22885:6;22875:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;22855:9;:17;22865:6;22855:17;;;;;;;;;;;;;;;:56;;;;22945:38;22970:4;:12;;;22945:9;:20;22955:9;22945:20;;;;;;;;;;;;;;;;:24;;:38;;;;:::i;:::-;22922:9;:20;22932:9;22922:20;;;;;;;;;;;;;;;:61;;;;23021:85;23080:25;23095:4;:9;;;23080:4;:10;;;:14;;:25;;;;:::i;:::-;23021:54;23065:4;:9;;;23021:39;23050:4;:9;;;23021;:24;23039:4;23021:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;:43;;:54;;;;:::i;:::-;:58;;:85;;;;:::i;:::-;22994:9;:24;23012:4;22994:24;;;;;;;;;;;;;;;:112;;;;23130:8;;;;;;;;;;;:35;;;;;23152:13;;;;;;;;;;;23142:23;;:6;:23;;;;23130:35;:62;;;;;23187:4;23169:23;;:6;:23;;;;23130:62;:100;;;;;23214:15;;;;;;;;;;;23196:34;;:6;:34;;;;23130:100;:173;;;;;23256:15;;;;;;;;;;;23235:37;;:9;:37;;;:67;;;;23289:13;;;;;;;;;;;23276:26;;:9;:26;;;23235:67;23130:173;23127:239;;;23320:34;23328:13;;;;;;;;;;;23343:4;:10;;;23320:7;:34::i;:::-;23127:239;23400:9;23383:41;;23392:6;23383:41;;;23411:4;:12;;;23383:41;;;;;;:::i;:::-;;;;;;;;23435:15;:13;:15::i;:::-;22220:1238;;;;;;:::o;16231:195::-;16286:16;;16275:8;:27;;;;16325:17;;16313:9;:29;;;;16364:16;;16353:8;:27;;;;16402:16;;16391:8;:27;;;;16231:195::o;2010:246::-;2068:7;2097:1;2092;:6;2088:47;;;2122:1;2115:8;;;;2088:47;2145:9;2161:1;2157;:5;;;;:::i;:::-;2145:17;;2190:1;2185;2181;:5;;;;:::i;:::-;:10;2173:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2247:1;2240:8;;;2010:246;;;;;:::o;1668:136::-;1726:7;1753:43;1757:1;1760;1753:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1746:50;;1668:136;;;;:::o;20527:456::-;20608:62;20625:4;20640:15;;;;;;;;;;;20658:11;20608:8;:62::i;:::-;20713:15;;;;;;;;;;;:31;;;20752:9;20785:4;20805:11;20831:1;20874;20917:15;;;;;;;;;;;20947;20713:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20527:456;;:::o;20006:513::-;20127:21;20165:1;20151:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20127:40;;20188:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20178:4;20183:1;20178:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;20239:3;;;;;;;;;;;20221:4;20226:1;20221:7;;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;20280:15;;;;;;;;;;;:66;;;20354:6;20376:1;20423:4;20442;;;;;;;;;;;20477:15;20280:223;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20006:513;;:::o;15842:377::-;15902:1;15889:9;;:14;:31;;;;;15919:1;15907:8;;:13;15889:31;:48;;;;;15936:1;15924:8;;:13;15889:48;:65;;;;;15953:1;15941:8;;:13;15889:65;15885:78;;;15956:7;;15885:78;15993:9;;15973:17;:29;;;;16032:8;;16013:16;:27;;;;16070:8;;16051:16;:27;;;;16108:8;;16089:16;:27;;;;16141:1;16129:9;:13;;;;16164:1;16153:8;:12;;;;16187:1;16176:8;:12;;;;16210:1;16199:8;:12;;;;15842:377;:::o;15212:330::-;15302:19;15312:8;15302:9;:19::i;:::-;15291:7;:30;;15282:40;;;;;;15355:32;15379:7;15355:9;:19;15365:8;15355:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;15333:9;:19;15343:8;15333:19;;;;;;;;;;;;;;;:54;;;;15408:20;15420:7;15408;;:11;;:20;;;;:::i;:::-;15398:7;:30;;;;15454:25;15471:7;15454:12;;:16;;:25;;;;:::i;:::-;15439:12;:40;;;;15522:1;15495:39;;15504:8;15495:39;;;15526:7;15495:39;;;;;;:::i;:::-;;;;;;;;15212:330;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:139::-;508:5;546:6;533:20;524:29;;562:33;589:5;562:33;:::i;:::-;514:87;;;;:::o;607:143::-;664:5;695:6;689:13;680:22;;711:33;738:5;711:33;:::i;:::-;670:80;;;;:::o;756:262::-;815:6;864:2;852:9;843:7;839:23;835:32;832:2;;;880:1;877;870:12;832:2;923:1;948:53;993:7;984:6;973:9;969:22;948:53;:::i;:::-;938:63;;894:117;822:196;;;;:::o;1024:284::-;1094:6;1143:2;1131:9;1122:7;1118:23;1114:32;1111:2;;;1159:1;1156;1149:12;1111:2;1202:1;1227:64;1283:7;1274:6;1263:9;1259:22;1227:64;:::i;:::-;1217:74;;1173:128;1101:207;;;;:::o;1314:278::-;1381:6;1430:2;1418:9;1409:7;1405:23;1401:32;1398:2;;;1446:1;1443;1436:12;1398:2;1489:1;1514:61;1567:7;1558:6;1547:9;1543:22;1514:61;:::i;:::-;1504:71;;1460:125;1388:204;;;;:::o;1598:407::-;1666:6;1674;1723:2;1711:9;1702:7;1698:23;1694:32;1691:2;;;1739:1;1736;1729:12;1691:2;1782:1;1807:53;1852:7;1843:6;1832:9;1828:22;1807:53;:::i;:::-;1797:63;;1753:117;1909:2;1935:53;1980:7;1971:6;1960:9;1956:22;1935:53;:::i;:::-;1925:63;;1880:118;1681:324;;;;;:::o;2011:552::-;2088:6;2096;2104;2153:2;2141:9;2132:7;2128:23;2124:32;2121:2;;;2169:1;2166;2159:12;2121:2;2212:1;2237:53;2282:7;2273:6;2262:9;2258:22;2237:53;:::i;:::-;2227:63;;2183:117;2339:2;2365:53;2410:7;2401:6;2390:9;2386:22;2365:53;:::i;:::-;2355:63;;2310:118;2467:2;2493:53;2538:7;2529:6;2518:9;2514:22;2493:53;:::i;:::-;2483:63;;2438:118;2111:452;;;;;:::o;2569:407::-;2637:6;2645;2694:2;2682:9;2673:7;2669:23;2665:32;2662:2;;;2710:1;2707;2700:12;2662:2;2753:1;2778:53;2823:7;2814:6;2803:9;2799:22;2778:53;:::i;:::-;2768:63;;2724:117;2880:2;2906:53;2951:7;2942:6;2931:9;2927:22;2906:53;:::i;:::-;2896:63;;2851:118;2652:324;;;;;:::o;2982:262::-;3041:6;3090:2;3078:9;3069:7;3065:23;3061:32;3058:2;;;3106:1;3103;3096:12;3058:2;3149:1;3174:53;3219:7;3210:6;3199:9;3195:22;3174:53;:::i;:::-;3164:63;;3120:117;3048:196;;;;:::o;3250:596::-;3338:6;3346;3354;3403:2;3391:9;3382:7;3378:23;3374:32;3371:2;;;3419:1;3416;3409:12;3371:2;3462:1;3487:64;3543:7;3534:6;3523:9;3519:22;3487:64;:::i;:::-;3477:74;;3433:128;3600:2;3626:64;3682:7;3673:6;3662:9;3658:22;3626:64;:::i;:::-;3616:74;;3571:129;3739:2;3765:64;3821:7;3812:6;3801:9;3797:22;3765:64;:::i;:::-;3755:74;;3710:129;3361:485;;;;;:::o;3852:179::-;3921:10;3942:46;3984:3;3976:6;3942:46;:::i;:::-;4020:4;4015:3;4011:14;3997:28;;3932:99;;;;:::o;4037:147::-;4132:45;4171:5;4132:45;:::i;:::-;4127:3;4120:58;4110:74;;:::o;4190:142::-;4293:32;4319:5;4293:32;:::i;:::-;4288:3;4281:45;4271:61;;:::o;4338:108::-;4415:24;4433:5;4415:24;:::i;:::-;4410:3;4403:37;4393:53;;:::o;4452:118::-;4539:24;4557:5;4539:24;:::i;:::-;4534:3;4527:37;4517:53;;:::o;4606:732::-;4725:3;4754:54;4802:5;4754:54;:::i;:::-;4824:86;4903:6;4898:3;4824:86;:::i;:::-;4817:93;;4934:56;4984:5;4934:56;:::i;:::-;5013:7;5044:1;5029:284;5054:6;5051:1;5048:13;5029:284;;;5130:6;5124:13;5157:63;5216:3;5201:13;5157:63;:::i;:::-;5150:70;;5243:60;5296:6;5243:60;:::i;:::-;5233:70;;5089:224;5076:1;5073;5069:9;5064:14;;5029:284;;;5033:14;5329:3;5322:10;;4730:608;;;;;;;:::o;5344:109::-;5425:21;5440:5;5425:21;:::i;:::-;5420:3;5413:34;5403:50;;:::o;5459:183::-;5572:63;5629:5;5572:63;:::i;:::-;5567:3;5560:76;5550:92;;:::o;5648:147::-;5743:45;5782:5;5743:45;:::i;:::-;5738:3;5731:58;5721:74;;:::o;5801:364::-;5889:3;5917:39;5950:5;5917:39;:::i;:::-;5972:71;6036:6;6031:3;5972:71;:::i;:::-;5965:78;;6052:52;6097:6;6092:3;6085:4;6078:5;6074:16;6052:52;:::i;:::-;6129:29;6151:6;6129:29;:::i;:::-;6124:3;6120:39;6113:46;;5893:272;;;;;:::o;6171:366::-;6313:3;6334:67;6398:2;6393:3;6334:67;:::i;:::-;6327:74;;6410:93;6499:3;6410:93;:::i;:::-;6528:2;6523:3;6519:12;6512:19;;6317:220;;;:::o;6543:366::-;6685:3;6706:67;6770:2;6765:3;6706:67;:::i;:::-;6699:74;;6782:93;6871:3;6782:93;:::i;:::-;6900:2;6895:3;6891:12;6884:19;;6689:220;;;:::o;6915:366::-;7057:3;7078:67;7142:2;7137:3;7078:67;:::i;:::-;7071:74;;7154:93;7243:3;7154:93;:::i;:::-;7272:2;7267:3;7263:12;7256:19;;7061:220;;;:::o;7287:366::-;7429:3;7450:67;7514:2;7509:3;7450:67;:::i;:::-;7443:74;;7526:93;7615:3;7526:93;:::i;:::-;7644:2;7639:3;7635:12;7628:19;;7433:220;;;:::o;7659:366::-;7801:3;7822:67;7886:2;7881:3;7822:67;:::i;:::-;7815:74;;7898:93;7987:3;7898:93;:::i;:::-;8016:2;8011:3;8007:12;8000:19;;7805:220;;;:::o;8031:366::-;8173:3;8194:67;8258:2;8253:3;8194:67;:::i;:::-;8187:74;;8270:93;8359:3;8270:93;:::i;:::-;8388:2;8383:3;8379:12;8372:19;;8177:220;;;:::o;8403:366::-;8545:3;8566:67;8630:2;8625:3;8566:67;:::i;:::-;8559:74;;8642:93;8731:3;8642:93;:::i;:::-;8760:2;8755:3;8751:12;8744:19;;8549:220;;;:::o;8775:366::-;8917:3;8938:67;9002:2;8997:3;8938:67;:::i;:::-;8931:74;;9014:93;9103:3;9014:93;:::i;:::-;9132:2;9127:3;9123:12;9116:19;;8921:220;;;:::o;9147:366::-;9289:3;9310:67;9374:2;9369:3;9310:67;:::i;:::-;9303:74;;9386:93;9475:3;9386:93;:::i;:::-;9504:2;9499:3;9495:12;9488:19;;9293:220;;;:::o;9519:366::-;9661:3;9682:67;9746:2;9741:3;9682:67;:::i;:::-;9675:74;;9758:93;9847:3;9758:93;:::i;:::-;9876:2;9871:3;9867:12;9860:19;;9665:220;;;:::o;9891:366::-;10033:3;10054:67;10118:2;10113:3;10054:67;:::i;:::-;10047:74;;10130:93;10219:3;10130:93;:::i;:::-;10248:2;10243:3;10239:12;10232:19;;10037:220;;;:::o;10263:366::-;10405:3;10426:67;10490:2;10485:3;10426:67;:::i;:::-;10419:74;;10502:93;10591:3;10502:93;:::i;:::-;10620:2;10615:3;10611:12;10604:19;;10409:220;;;:::o;10635:366::-;10777:3;10798:67;10862:2;10857:3;10798:67;:::i;:::-;10791:74;;10874:93;10963:3;10874:93;:::i;:::-;10992:2;10987:3;10983:12;10976:19;;10781:220;;;:::o;11007:118::-;11094:24;11112:5;11094:24;:::i;:::-;11089:3;11082:37;11072:53;;:::o;11131:112::-;11214:22;11230:5;11214:22;:::i;:::-;11209:3;11202:35;11192:51;;:::o;11249:222::-;11342:4;11380:2;11369:9;11365:18;11357:26;;11393:71;11461:1;11450:9;11446:17;11437:6;11393:71;:::i;:::-;11347:124;;;;:::o;11477:254::-;11586:4;11624:2;11613:9;11609:18;11601:26;;11637:87;11721:1;11710:9;11706:17;11697:6;11637:87;:::i;:::-;11591:140;;;;:::o;11737:823::-;11994:4;12032:3;12021:9;12017:19;12009:27;;12046:71;12114:1;12103:9;12099:17;12090:6;12046:71;:::i;:::-;12127:72;12195:2;12184:9;12180:18;12171:6;12127:72;:::i;:::-;12209:80;12285:2;12274:9;12270:18;12261:6;12209:80;:::i;:::-;12299;12375:2;12364:9;12360:18;12351:6;12299:80;:::i;:::-;12389:81;12465:3;12454:9;12450:19;12441:6;12389:81;:::i;:::-;12480:73;12548:3;12537:9;12533:19;12524:6;12480:73;:::i;:::-;11999:561;;;;;;;;;:::o;12566:210::-;12653:4;12691:2;12680:9;12676:18;12668:26;;12704:65;12766:1;12755:9;12751:17;12742:6;12704:65;:::i;:::-;12658:118;;;;:::o;12782:274::-;12901:4;12939:2;12928:9;12924:18;12916:26;;12952:97;13046:1;13035:9;13031:17;13022:6;12952:97;:::i;:::-;12906:150;;;;:::o;13062:736::-;13305:4;13343:3;13332:9;13328:19;13320:27;;13357:79;13433:1;13422:9;13418:17;13409:6;13357:79;:::i;:::-;13483:9;13477:4;13473:20;13468:2;13457:9;13453:18;13446:48;13511:108;13614:4;13605:6;13511:108;:::i;:::-;13503:116;;13629:80;13705:2;13694:9;13690:18;13681:6;13629:80;:::i;:::-;13719:72;13787:2;13776:9;13772:18;13763:6;13719:72;:::i;:::-;13310:488;;;;;;;:::o;13804:313::-;13917:4;13955:2;13944:9;13940:18;13932:26;;14004:9;13998:4;13994:20;13990:1;13979:9;13975:17;13968:47;14032:78;14105:4;14096:6;14032:78;:::i;:::-;14024:86;;13922:195;;;;:::o;14123:419::-;14289:4;14327:2;14316:9;14312:18;14304:26;;14376:9;14370:4;14366:20;14362:1;14351:9;14347:17;14340:47;14404:131;14530:4;14404:131;:::i;:::-;14396:139;;14294:248;;;:::o;14548:419::-;14714:4;14752:2;14741:9;14737:18;14729:26;;14801:9;14795:4;14791:20;14787:1;14776:9;14772:17;14765:47;14829:131;14955:4;14829:131;:::i;:::-;14821:139;;14719:248;;;:::o;14973:419::-;15139:4;15177:2;15166:9;15162:18;15154:26;;15226:9;15220:4;15216:20;15212:1;15201:9;15197:17;15190:47;15254:131;15380:4;15254:131;:::i;:::-;15246:139;;15144:248;;;:::o;15398:419::-;15564:4;15602:2;15591:9;15587:18;15579:26;;15651:9;15645:4;15641:20;15637:1;15626:9;15622:17;15615:47;15679:131;15805:4;15679:131;:::i;:::-;15671:139;;15569:248;;;:::o;15823:419::-;15989:4;16027:2;16016:9;16012:18;16004:26;;16076:9;16070:4;16066:20;16062:1;16051:9;16047:17;16040:47;16104:131;16230:4;16104:131;:::i;:::-;16096:139;;15994:248;;;:::o;16248:419::-;16414:4;16452:2;16441:9;16437:18;16429:26;;16501:9;16495:4;16491:20;16487:1;16476:9;16472:17;16465:47;16529:131;16655:4;16529:131;:::i;:::-;16521:139;;16419:248;;;:::o;16673:419::-;16839:4;16877:2;16866:9;16862:18;16854:26;;16926:9;16920:4;16916:20;16912:1;16901:9;16897:17;16890:47;16954:131;17080:4;16954:131;:::i;:::-;16946:139;;16844:248;;;:::o;17098:419::-;17264:4;17302:2;17291:9;17287:18;17279:26;;17351:9;17345:4;17341:20;17337:1;17326:9;17322:17;17315:47;17379:131;17505:4;17379:131;:::i;:::-;17371:139;;17269:248;;;:::o;17523:419::-;17689:4;17727:2;17716:9;17712:18;17704:26;;17776:9;17770:4;17766:20;17762:1;17751:9;17747:17;17740:47;17804:131;17930:4;17804:131;:::i;:::-;17796:139;;17694:248;;;:::o;17948:419::-;18114:4;18152:2;18141:9;18137:18;18129:26;;18201:9;18195:4;18191:20;18187:1;18176:9;18172:17;18165:47;18229:131;18355:4;18229:131;:::i;:::-;18221:139;;18119:248;;;:::o;18373:419::-;18539:4;18577:2;18566:9;18562:18;18554:26;;18626:9;18620:4;18616:20;18612:1;18601:9;18597:17;18590:47;18654:131;18780:4;18654:131;:::i;:::-;18646:139;;18544:248;;;:::o;18798:419::-;18964:4;19002:2;18991:9;18987:18;18979:26;;19051:9;19045:4;19041:20;19037:1;19026:9;19022:17;19015:47;19079:131;19205:4;19079:131;:::i;:::-;19071:139;;18969:248;;;:::o;19223:419::-;19389:4;19427:2;19416:9;19412:18;19404:26;;19476:9;19470:4;19466:20;19462:1;19451:9;19447:17;19440:47;19504:131;19630:4;19504:131;:::i;:::-;19496:139;;19394:248;;;:::o;19648:222::-;19741:4;19779:2;19768:9;19764:18;19756:26;;19792:71;19860:1;19849:9;19845:17;19836:6;19792:71;:::i;:::-;19746:124;;;;:::o;19876:831::-;20139:4;20177:3;20166:9;20162:19;20154:27;;20191:71;20259:1;20248:9;20244:17;20235:6;20191:71;:::i;:::-;20272:80;20348:2;20337:9;20333:18;20324:6;20272:80;:::i;:::-;20399:9;20393:4;20389:20;20384:2;20373:9;20369:18;20362:48;20427:108;20530:4;20521:6;20427:108;:::i;:::-;20419:116;;20545:72;20613:2;20602:9;20598:18;20589:6;20545:72;:::i;:::-;20627:73;20695:3;20684:9;20680:19;20671:6;20627:73;:::i;:::-;20144:563;;;;;;;;:::o;20713:214::-;20802:4;20840:2;20829:9;20825:18;20817:26;;20853:67;20917:1;20906:9;20902:17;20893:6;20853:67;:::i;:::-;20807:120;;;;:::o;20933:132::-;21000:4;21023:3;21015:11;;21053:4;21048:3;21044:14;21036:22;;21005:60;;;:::o;21071:114::-;21138:6;21172:5;21166:12;21156:22;;21145:40;;;:::o;21191:99::-;21243:6;21277:5;21271:12;21261:22;;21250:40;;;:::o;21296:113::-;21366:4;21398;21393:3;21389:14;21381:22;;21371:38;;;:::o;21415:184::-;21514:11;21548:6;21543:3;21536:19;21588:4;21583:3;21579:14;21564:29;;21526:73;;;;:::o;21605:169::-;21689:11;21723:6;21718:3;21711:19;21763:4;21758:3;21754:14;21739:29;;21701:73;;;;:::o;21780:305::-;21820:3;21839:20;21857:1;21839:20;:::i;:::-;21834:25;;21873:20;21891:1;21873:20;:::i;:::-;21868:25;;22027:1;21959:66;21955:74;21952:1;21949:81;21946:2;;;22033:18;;:::i;:::-;21946:2;22077:1;22074;22070:9;22063:16;;21824:261;;;;:::o;22091:185::-;22131:1;22148:20;22166:1;22148:20;:::i;:::-;22143:25;;22182:20;22200:1;22182:20;:::i;:::-;22177:25;;22221:1;22211:2;;22226:18;;:::i;:::-;22211:2;22268:1;22265;22261:9;22256:14;;22133:143;;;;:::o;22282:348::-;22322:7;22345:20;22363:1;22345:20;:::i;:::-;22340:25;;22379:20;22397:1;22379:20;:::i;:::-;22374:25;;22567:1;22499:66;22495:74;22492:1;22489:81;22484:1;22477:9;22470:17;22466:105;22463:2;;;22574:18;;:::i;:::-;22463:2;22622:1;22619;22615:9;22604:20;;22330:300;;;;:::o;22636:191::-;22676:4;22696:20;22714:1;22696:20;:::i;:::-;22691:25;;22730:20;22748:1;22730:20;:::i;:::-;22725:25;;22769:1;22766;22763:8;22760:2;;;22774:18;;:::i;:::-;22760:2;22819:1;22816;22812:9;22804:17;;22681:146;;;;:::o;22833:96::-;22870:7;22899:24;22917:5;22899:24;:::i;:::-;22888:35;;22878:51;;;:::o;22935:104::-;22980:7;23009:24;23027:5;23009:24;:::i;:::-;22998:35;;22988:51;;;:::o;23045:90::-;23079:7;23122:5;23115:13;23108:21;23097:32;;23087:48;;;:::o;23141:126::-;23178:7;23218:42;23211:5;23207:54;23196:65;;23186:81;;;:::o;23273:77::-;23310:7;23339:5;23328:16;;23318:32;;;:::o;23356:86::-;23391:7;23431:4;23424:5;23420:16;23409:27;;23399:43;;;:::o;23448:134::-;23506:9;23539:37;23570:5;23539:37;:::i;:::-;23526:50;;23516:66;;;:::o;23588:178::-;23664:9;23697:63;23754:5;23697:63;:::i;:::-;23684:76;;23674:92;;;:::o;23772:139::-;23848:9;23881:24;23899:5;23881:24;:::i;:::-;23868:37;;23858:53;;;:::o;23917:121::-;23975:9;24008:24;24026:5;24008:24;:::i;:::-;23995:37;;23985:53;;;:::o;24044:126::-;24094:9;24127:37;24158:5;24127:37;:::i;:::-;24114:50;;24104:66;;;:::o;24176:113::-;24226:9;24259:24;24277:5;24259:24;:::i;:::-;24246:37;;24236:53;;;:::o;24295:307::-;24363:1;24373:113;24387:6;24384:1;24381:13;24373:113;;;24472:1;24467:3;24463:11;24457:18;24453:1;24448:3;24444:11;24437:39;24409:2;24406:1;24402:10;24397:15;;24373:113;;;24504:6;24501:1;24498:13;24495:2;;;24584:1;24575:6;24570:3;24566:16;24559:27;24495:2;24344:258;;;;:::o;24608:180::-;24656:77;24653:1;24646:88;24753:4;24750:1;24743:15;24777:4;24774:1;24767:15;24794:180;24842:77;24839:1;24832:88;24939:4;24936:1;24929:15;24963:4;24960:1;24953:15;24980:102;25021:6;25072:2;25068:7;25063:2;25056:5;25052:14;25048:28;25038:38;;25028:54;;;:::o;25088:222::-;25228:34;25224:1;25216:6;25212:14;25205:58;25297:5;25292:2;25284:6;25280:15;25273:30;25194:116;:::o;25316:225::-;25456:34;25452:1;25444:6;25440:14;25433:58;25525:8;25520:2;25512:6;25508:15;25501:33;25422:119;:::o;25547:221::-;25687:34;25683:1;25675:6;25671:14;25664:58;25756:4;25751:2;25743:6;25739:15;25732:29;25653:115;:::o;25774:177::-;25914:29;25910:1;25902:6;25898:14;25891:53;25880:71;:::o;25957:230::-;26097:34;26093:1;26085:6;26081:14;26074:58;26166:13;26161:2;26153:6;26149:15;26142:38;26063:124;:::o;26193:229::-;26333:34;26329:1;26321:6;26317:14;26310:58;26402:12;26397:2;26389:6;26385:15;26378:37;26299:123;:::o;26428:220::-;26568:34;26564:1;26556:6;26552:14;26545:58;26637:3;26632:2;26624:6;26620:15;26613:28;26534:114;:::o;26654:182::-;26794:34;26790:1;26782:6;26778:14;26771:58;26760:76;:::o;26842:228::-;26982:34;26978:1;26970:6;26966:14;26959:58;27051:11;27046:2;27038:6;27034:15;27027:36;26948:122;:::o;27076:170::-;27216:22;27212:1;27204:6;27200:14;27193:46;27182:64;:::o;27252:224::-;27392:34;27388:1;27380:6;27376:14;27369:58;27461:7;27456:2;27448:6;27444:15;27437:32;27358:118;:::o;27482:223::-;27622:34;27618:1;27610:6;27606:14;27599:58;27691:6;27686:2;27678:6;27674:15;27667:31;27588:117;:::o;27711:231::-;27851:34;27847:1;27839:6;27835:14;27828:58;27920:14;27915:2;27907:6;27903:15;27896:39;27817:125;:::o;27948:122::-;28021:24;28039:5;28021:24;:::i;:::-;28014:5;28011:35;28001:2;;28060:1;28057;28050:12;28001:2;27991:79;:::o;28076:138::-;28157:32;28183:5;28157:32;:::i;:::-;28150:5;28147:43;28137:2;;28204:1;28201;28194:12;28137:2;28127:87;:::o;28220:122::-;28293:24;28311:5;28293:24;:::i;:::-;28286:5;28283:35;28273:2;;28332:1;28329;28322:12;28273:2;28263:79;:::o

Swarm Source

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