ETH Price: $3,123.71 (+0.54%)

Token

X (X)
 

Overview

Max Total Supply

1,000,000,000,000 X

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,900,000 X

Value
$0.00
0x4bfec3b09562bc95e52fb0358540e38f7e6760d2
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:
X

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 2023-07-24
*/

// SPDX-License-Identifier: MIT

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

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

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

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

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

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

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

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

pragma solidity ^0.8.4;
/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

pragma solidity ^0.8.4;
/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.4;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

pragma solidity ^0.8.4;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

pragma solidity ^0.8.4;

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

pragma solidity ^0.8.4;

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

pragma solidity ^0.8.4;

contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

pragma solidity ^0.8.4;

contract X is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    mapping (address => uint256) public _rOwned;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    mapping(address => bool) public _isBlacklisted;

    bool public liquidityLaunched = false;
    bool public isFirstLaunch = true;
    uint256 public lastSnipeTaxBlock;
    uint8 public snipeBlocks = 0;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1 * (10**12) * (10**9);
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 1;
    
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 1;
    
    uint256 private _redisFee;
    uint256 private _taxFee;
    
    string private constant _name = "X";
    string private constant _symbol = "X";
    uint8 private constant _decimals = 9;
    
    address payable private _marketingAddress = payable(0x713208F0247E42D2b2ba01584A2F8E1272929774);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
    }

    function setSnipeBlocks(uint8 _blocks) external onlyOwner {
        require(!liquidityLaunched);
        snipeBlocks = _blocks;
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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(!_isBlacklisted[from], 'Blacklisted address');

        _redisFee = 0;
        _taxFee = 0;

        // No adding liquidity before launched
        if (!liquidityLaunched) {
            if (to == uniswapV2Pair) {
                liquidityLaunched = true;
                // high tax ends in x blocks
                lastSnipeTaxBlock = block.number + snipeBlocks;
            }
        }

        //antibot block
        if(liquidityLaunched && block.number <= lastSnipeTaxBlock && !isFirstLaunch){
            _redisFee = _redisFeeOnBuy;
            _taxFee = _taxFeeOnBuy;
            _tokenTransfer(from,to,amount);
            if (to != address(uniswapV2Pair)) {
                _isBlacklisted[to]=true;
            }
            return;
        }

        if (liquidityLaunched && isFirstLaunch){
            isFirstLaunch = false;
        }
        
        if (from != owner() && to != owner()) {
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance > 0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
            if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
                _redisFee = 0;
                _taxFee = 0;
            }
            
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        uint256 currentRate =  _getRate();
        uint256 tTransferAmount = tAmount.sub(tAmount.mul(_redisFee).div(100)).sub(tAmount.mul(_taxFee).div(100));
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tAmount.mul(_redisFee).div(100).mul(currentRate);
        uint256 rTeam = tAmount.mul(_taxFee).div(100).mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
        _reflectFee(rFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    /**
     * only thing to change _rTotal
     */
    function _reflectFee(uint256 rFee) private {
        _rTotal = _rTotal.sub(rFee);
    }

    receive() external payable {}

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded);
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
        emit ExcludeMultipleAccountsFromFees(accounts, excluded);
    }

    event ExcludeFromFees(address indexed account, bool isExcluded);
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    event BlacklistAddress(address indexed account, bool value);
    function blacklistAddress(address account, bool value) public onlyOwner{
        _isBlacklisted[account] = value;
        emit BlacklistAddress(account, value);
    }

    event BlacklistMultiAddresses(address[] accounts, bool value);
    function blacklistMultiAddresses(address[] calldata accounts, bool value) public onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++) {
            _isBlacklisted[accounts[i]] = value;
        }
        emit BlacklistMultiAddresses(accounts, value);
    }

}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"BlacklistAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"BlacklistMultiAddresses","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rOwned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"blacklistMultiAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isFirstLaunch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSnipeTaxBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_blocks","type":"uint8"}],"name":"setSnipeBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipeBlocks","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600560006101000a81548160ff0219169083151502179055506001600560016101000a81548160ff0219169083151502179055506000600760006101000a81548160ff021916908360ff160217905550683635c9adc5dea000006000196200006f91906200077b565b6000196200007e919062000702565b60085560006009556001600a556000600b556001600c5573713208f0247e42d2b2ba01584a2f8e1272929774600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601160146101000a81548160ff0219169083151502179055506001601160156101000a81548160ff0219169083151502179055503480156200012d57600080fd5b506000620001406200062260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060085460016000620001f56200062260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002d457600080fd5b505afa158015620002e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030f91906200066a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037257600080fd5b505afa15801562000387573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ad91906200066a565b6040518363ffffffff1660e01b8152600401620003cc929190620006b8565b602060405180830381600087803b158015620003e757600080fd5b505af1158015620003fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042291906200066a565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004786200062a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005ab6200062260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620006139190620006e5565b60405180910390a3506200082b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006648162000811565b92915050565b6000602082840312156200067d57600080fd5b60006200068d8482850162000653565b91505092915050565b620006a1816200073d565b82525050565b620006b28162000771565b82525050565b6000604082019050620006cf600083018562000696565b620006de602083018462000696565b9392505050565b6000602082019050620006fc6000830184620006a7565b92915050565b60006200070f8262000771565b91506200071c8362000771565b925082821015620007325762000731620007b3565b5b828203905092915050565b60006200074a8262000751565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620007888262000771565b9150620007958362000771565b925082620007a857620007a7620007e2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6200081c816200073d565b81146200082857600080fd5b50565b61365e806200083b6000396000f3fe6080604052600436106101855760003560e01c80636a1961c4116100d1578063a9059cbb1161008a578063c492f04611610064578063c492f046146105a7578063dd62ed3e146105d0578063f2fde38b1461060d578063fca419ae146106365761018c565b8063a9059cbb14610518578063a9f6151814610555578063c02466681461057e5761018c565b80636a1961c41461040657806370a0823114610431578063715018a61461046e578063768dc710146104855780638da5cb5b146104c257806395d89b41146104ed5761018c565b80631cdd3be31161013e5780632be29fa8116101185780632be29fa81461035c578063313ce56714610387578063455a4396146103b257806349bd5a5e146103db5761018c565b80631cdd3be3146102b75780631eb147d5146102f457806323b872dd1461031f5761018c565b806306fdde0314610191578063095ea7b3146101bc5780630cfc15f9146101f95780631694505e14610236578063181281291461026157806318160ddd1461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661065f565b6040516101b39190612d91565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061295b565b61069c565b6040516101f09190612d5b565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190612842565b6106ba565b60405161022d9190612f13565b60405180910390f35b34801561024257600080fd5b5061024b6106d2565b6040516102589190612d76565b60405180910390f35b34801561026d57600080fd5b506102766106f8565b6040516102839190612d5b565b60405180910390f35b34801561029857600080fd5b506102a161070b565b6040516102ae9190612f13565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d99190612842565b61071c565b6040516102eb9190612d5b565b60405180910390f35b34801561030057600080fd5b5061030961073c565b6040516103169190612d5b565b60405180910390f35b34801561032b57600080fd5b50610346600480360381019061034191906128d0565b61074f565b6040516103539190612d5b565b60405180910390f35b34801561036857600080fd5b50610371610828565b60405161037e9190612f88565b60405180910390f35b34801561039357600080fd5b5061039c61083b565b6040516103a99190612f88565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d4919061291f565b610844565b005b3480156103e757600080fd5b506103f0610982565b6040516103fd9190612d0e565b60405180910390f35b34801561041257600080fd5b5061041b6109a8565b6040516104289190612f13565b60405180910390f35b34801561043d57600080fd5b5061045860048036038101906104539190612842565b6109ae565b6040516104659190612f13565b60405180910390f35b34801561047a57600080fd5b506104836109ff565b005b34801561049157600080fd5b506104ac60048036038101906104a79190612842565b610b52565b6040516104b99190612d5b565b60405180910390f35b3480156104ce57600080fd5b506104d7610b72565b6040516104e49190612d0e565b60405180910390f35b3480156104f957600080fd5b50610502610b9b565b60405161050f9190612d91565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a919061295b565b610bd8565b60405161054c9190612d5b565b60405180910390f35b34801561056157600080fd5b5061057c600480360381019061057791906129ef565b610bf6565b005b34801561058a57600080fd5b506105a560048036038101906105a0919061291f565b610cc3565b005b3480156105b357600080fd5b506105ce60048036038101906105c99190612997565b610e01565b005b3480156105dc57600080fd5b506105f760048036038101906105f29190612894565b610f9c565b6040516106049190612f13565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f9190612842565b611023565b005b34801561064257600080fd5b5061065d60048036038101906106589190612997565b6111e5565b005b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b60006106b06106a9611380565b8484611388565b6001905092915050565b60016020528060005260406000206000915090505481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900460ff1681565b6000683635c9adc5dea00000905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900460ff1681565b600061075c848484611553565b61081d84610768611380565b6108188560405180606001604052806028815260200161360160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107ce611380565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d559092919063ffffffff16565b611388565b600190509392505050565b600760009054906101000a900460ff1681565b60006009905090565b61084c611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d090612e93565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f09fb98d4f02479ce251faed0f992a3c326d006e19ffa4f7269239763a644f725826040516109769190612d5b565b60405180910390a25050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60006109f8600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db9565b9050919050565b610a07611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b90612e93565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b6000610bec610be5611380565b8484611553565b6001905092915050565b610bfe611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290612e93565b60405180910390fd5b600560009054906101000a900460ff1615610ca557600080fd5b80600760006101000a81548160ff021916908360ff16021790555050565b610ccb611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612e93565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610df59190612d5b565b60405180910390a25050565b610e09611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d90612e93565b60405180910390fd5b60005b83839050811015610f5b578160036000868685818110610ee2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610ef79190612842565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f53906131f9565b915050610e99565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35838383604051610f8f93929190612d29565b60405180910390a1505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61102b611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110af90612e93565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90612df3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ed611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190612e93565b60405180910390fd5b60005b8383905081101561133f5781600460008686858181106112c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906112db9190612842565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611337906131f9565b91505061127d565b507fd09d39390fc688d281adc0e04befeb10838d7a58109b6eb8c29db9b251ebccf683838360405161137393929190612d29565b60405180910390a1505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612ef3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90612e13565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115469190612f13565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba90612ed3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162a90612db3565b60405180910390fd5b60008111611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90612eb3565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa90612e53565b60405180910390fd5b6000600d819055506000600e81905550600560009054906101000a900460ff166117be57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117bd576001600560006101000a81548160ff021916908315150217905550600760009054906101000a900460ff1660ff16436117b69190613026565b6006819055505b5b600560009054906101000a900460ff1680156117dc57506006544311155b80156117f55750600560019054906101000a900460ff16155b156118ca57600954600d81905550600a54600e81905550611817838383611e27565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118c5576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611d50565b600560009054906101000a900460ff1680156118f25750600560019054906101000a900460ff165b15611913576000600560016101000a81548160ff0219169083151502179055505b61191b610b72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119895750611959610b72565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d44576000611999306109ae565b9050601160149054906101000a900460ff16158015611a065750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1e5750601160159054906101000a900460ff165b8015611a2a5750600081115b15611a5257611a3881611e37565b60004790506000811115611a5057611a4f47612131565b5b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611afd5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b1557600954600d81905550600a54600e819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bc05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bd857600b54600d81905550600c54600e819055505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c795750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d2c5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d2b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d42576000600d819055506000600e819055505b505b611d4f838383611e27565b5b505050565b6000838311158290611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d949190612d91565b60405180910390fd5b5060008385611dac9190613107565b9050809150509392505050565b6000600854821115611e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df790612dd3565b60405180910390fd5b6000611e0a61219d565b9050611e1f81846121c890919063ffffffff16565b915050919050565b611e32838383612212565b505050565b6001601160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e95577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611ec35781602001602082028036833780820191505090505b5090503081600081518110611f01577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fa357600080fd5b505afa158015611fb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdb919061286b565b81600181518110612015577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207c30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611388565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120e0959493929190612f2e565b600060405180830381600087803b1580156120fa57600080fd5b505af115801561210e573d6000803e3d6000fd5b50505050506000601160146101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612199573d6000803e3d6000fd5b5050565b60008060006121aa612589565b915091506121c181836121c890919063ffffffff16565b9250505090565b600061220a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125eb565b905092915050565b600061221c61219d565b9050600061229361224b606461223d600e548761264e90919063ffffffff16565b6121c890919063ffffffff16565b6122856122766064612268600d548961264e90919063ffffffff16565b6121c890919063ffffffff16565b866126c990919063ffffffff16565b6126c990919063ffffffff16565b905060006122aa838561264e90919063ffffffff16565b905060006122e8846122da60646122cc600d548a61264e90919063ffffffff16565b6121c890919063ffffffff16565b61264e90919063ffffffff16565b9050600061232685612318606461230a600e548b61264e90919063ffffffff16565b6121c890919063ffffffff16565b61264e90919063ffffffff16565b9050600061234f8261234185876126c990919063ffffffff16565b6126c990919063ffffffff16565b90506123a384600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c990919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061243881600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124cd82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061251983612771565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516125769190612f13565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea0000090506125bf683635c9adc5dea000006008546121c890919063ffffffff16565b8210156125de57600854683635c9adc5dea000009350935050506125e7565b81819350935050505b9091565b60008083118290612632576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126299190612d91565b60405180910390fd5b5060008385612641919061307c565b9050809150509392505050565b60008083141561266157600090506126c3565b6000828461266f91906130ad565b905082848261267e919061307c565b146126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b590612e73565b60405180910390fd5b809150505b92915050565b600061270b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d55565b905092915050565b60008082846127229190613026565b905083811015612767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275e90612e33565b60405180910390fd5b8091505092915050565b612786816008546126c990919063ffffffff16565b60088190555050565b60008135905061279e816135a4565b92915050565b6000815190506127b3816135a4565b92915050565b60008083601f8401126127cb57600080fd5b8235905067ffffffffffffffff8111156127e457600080fd5b6020830191508360208202830111156127fc57600080fd5b9250929050565b600081359050612812816135bb565b92915050565b600081359050612827816135d2565b92915050565b60008135905061283c816135e9565b92915050565b60006020828403121561285457600080fd5b60006128628482850161278f565b91505092915050565b60006020828403121561287d57600080fd5b600061288b848285016127a4565b91505092915050565b600080604083850312156128a757600080fd5b60006128b58582860161278f565b92505060206128c68582860161278f565b9150509250929050565b6000806000606084860312156128e557600080fd5b60006128f38682870161278f565b93505060206129048682870161278f565b925050604061291586828701612818565b9150509250925092565b6000806040838503121561293257600080fd5b60006129408582860161278f565b925050602061295185828601612803565b9150509250929050565b6000806040838503121561296e57600080fd5b600061297c8582860161278f565b925050602061298d85828601612818565b9150509250929050565b6000806000604084860312156129ac57600080fd5b600084013567ffffffffffffffff8111156129c657600080fd5b6129d2868287016127b9565b935093505060206129e586828701612803565b9150509250925092565b600060208284031215612a0157600080fd5b6000612a0f8482850161282d565b91505092915050565b6000612a248383612a30565b60208301905092915050565b612a398161313b565b82525050565b612a488161313b565b82525050565b6000612a5a8385612fed565b9350612a6582612fa3565b8060005b85811015612a9e57612a7b828461300f565b612a858882612a18565b9750612a9083612fd3565b925050600181019050612a69565b5085925050509392505050565b6000612ab682612fbd565b612ac08185612fed565b9350612acb83612fad565b8060005b83811015612afc578151612ae38882612a18565b9750612aee83612fe0565b925050600181019050612acf565b5085935050505092915050565b612b128161314d565b82525050565b612b2181613190565b82525050565b612b30816131b4565b82525050565b6000612b4182612fc8565b612b4b8185612ffe565b9350612b5b8185602086016131c6565b612b64816132a0565b840191505092915050565b6000612b7c602383612ffe565b9150612b87826132b1565b604082019050919050565b6000612b9f602a83612ffe565b9150612baa82613300565b604082019050919050565b6000612bc2602683612ffe565b9150612bcd8261334f565b604082019050919050565b6000612be5602283612ffe565b9150612bf08261339e565b604082019050919050565b6000612c08601b83612ffe565b9150612c13826133ed565b602082019050919050565b6000612c2b601383612ffe565b9150612c3682613416565b602082019050919050565b6000612c4e602183612ffe565b9150612c598261343f565b604082019050919050565b6000612c71602083612ffe565b9150612c7c8261348e565b602082019050919050565b6000612c94602983612ffe565b9150612c9f826134b7565b604082019050919050565b6000612cb7602583612ffe565b9150612cc282613506565b604082019050919050565b6000612cda602483612ffe565b9150612ce582613555565b604082019050919050565b612cf981613179565b82525050565b612d0881613183565b82525050565b6000602082019050612d236000830184612a3f565b92915050565b60006040820190508181036000830152612d44818587612a4e565b9050612d536020830184612b09565b949350505050565b6000602082019050612d706000830184612b09565b92915050565b6000602082019050612d8b6000830184612b18565b92915050565b60006020820190508181036000830152612dab8184612b36565b905092915050565b60006020820190508181036000830152612dcc81612b6f565b9050919050565b60006020820190508181036000830152612dec81612b92565b9050919050565b60006020820190508181036000830152612e0c81612bb5565b9050919050565b60006020820190508181036000830152612e2c81612bd8565b9050919050565b60006020820190508181036000830152612e4c81612bfb565b9050919050565b60006020820190508181036000830152612e6c81612c1e565b9050919050565b60006020820190508181036000830152612e8c81612c41565b9050919050565b60006020820190508181036000830152612eac81612c64565b9050919050565b60006020820190508181036000830152612ecc81612c87565b9050919050565b60006020820190508181036000830152612eec81612caa565b9050919050565b60006020820190508181036000830152612f0c81612ccd565b9050919050565b6000602082019050612f286000830184612cf0565b92915050565b600060a082019050612f436000830188612cf0565b612f506020830187612b27565b8181036040830152612f628186612aab565b9050612f716060830185612a3f565b612f7e6080830184612cf0565b9695505050505050565b6000602082019050612f9d6000830184612cff565b92915050565b6000819050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061301e602084018461278f565b905092915050565b600061303182613179565b915061303c83613179565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561307157613070613242565b5b828201905092915050565b600061308782613179565b915061309283613179565b9250826130a2576130a1613271565b5b828204905092915050565b60006130b882613179565b91506130c383613179565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130fc576130fb613242565b5b828202905092915050565b600061311282613179565b915061311d83613179565b9250828210156131305761312f613242565b5b828203905092915050565b600061314682613159565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061319b826131a2565b9050919050565b60006131ad82613159565b9050919050565b60006131bf82613179565b9050919050565b60005b838110156131e45780820151818401526020810190506131c9565b838111156131f3576000848401525b50505050565b600061320482613179565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561323757613236613242565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6135ad8161313b565b81146135b857600080fd5b50565b6135c48161314d565b81146135cf57600080fd5b50565b6135db81613179565b81146135e657600080fd5b50565b6135f281613183565b81146135fd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051588095a627f4cbbdff87ac05db847429551600e42c0ec5cd237dba2191972464736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80636a1961c4116100d1578063a9059cbb1161008a578063c492f04611610064578063c492f046146105a7578063dd62ed3e146105d0578063f2fde38b1461060d578063fca419ae146106365761018c565b8063a9059cbb14610518578063a9f6151814610555578063c02466681461057e5761018c565b80636a1961c41461040657806370a0823114610431578063715018a61461046e578063768dc710146104855780638da5cb5b146104c257806395d89b41146104ed5761018c565b80631cdd3be31161013e5780632be29fa8116101185780632be29fa81461035c578063313ce56714610387578063455a4396146103b257806349bd5a5e146103db5761018c565b80631cdd3be3146102b75780631eb147d5146102f457806323b872dd1461031f5761018c565b806306fdde0314610191578063095ea7b3146101bc5780630cfc15f9146101f95780631694505e14610236578063181281291461026157806318160ddd1461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a661065f565b6040516101b39190612d91565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061295b565b61069c565b6040516101f09190612d5b565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190612842565b6106ba565b60405161022d9190612f13565b60405180910390f35b34801561024257600080fd5b5061024b6106d2565b6040516102589190612d76565b60405180910390f35b34801561026d57600080fd5b506102766106f8565b6040516102839190612d5b565b60405180910390f35b34801561029857600080fd5b506102a161070b565b6040516102ae9190612f13565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d99190612842565b61071c565b6040516102eb9190612d5b565b60405180910390f35b34801561030057600080fd5b5061030961073c565b6040516103169190612d5b565b60405180910390f35b34801561032b57600080fd5b50610346600480360381019061034191906128d0565b61074f565b6040516103539190612d5b565b60405180910390f35b34801561036857600080fd5b50610371610828565b60405161037e9190612f88565b60405180910390f35b34801561039357600080fd5b5061039c61083b565b6040516103a99190612f88565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d4919061291f565b610844565b005b3480156103e757600080fd5b506103f0610982565b6040516103fd9190612d0e565b60405180910390f35b34801561041257600080fd5b5061041b6109a8565b6040516104289190612f13565b60405180910390f35b34801561043d57600080fd5b5061045860048036038101906104539190612842565b6109ae565b6040516104659190612f13565b60405180910390f35b34801561047a57600080fd5b506104836109ff565b005b34801561049157600080fd5b506104ac60048036038101906104a79190612842565b610b52565b6040516104b99190612d5b565b60405180910390f35b3480156104ce57600080fd5b506104d7610b72565b6040516104e49190612d0e565b60405180910390f35b3480156104f957600080fd5b50610502610b9b565b60405161050f9190612d91565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a919061295b565b610bd8565b60405161054c9190612d5b565b60405180910390f35b34801561056157600080fd5b5061057c600480360381019061057791906129ef565b610bf6565b005b34801561058a57600080fd5b506105a560048036038101906105a0919061291f565b610cc3565b005b3480156105b357600080fd5b506105ce60048036038101906105c99190612997565b610e01565b005b3480156105dc57600080fd5b506105f760048036038101906105f29190612894565b610f9c565b6040516106049190612f13565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f9190612842565b611023565b005b34801561064257600080fd5b5061065d60048036038101906106589190612997565b6111e5565b005b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b60006106b06106a9611380565b8484611388565b6001905092915050565b60016020528060005260406000206000915090505481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900460ff1681565b6000683635c9adc5dea00000905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900460ff1681565b600061075c848484611553565b61081d84610768611380565b6108188560405180606001604052806028815260200161360160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107ce611380565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d559092919063ffffffff16565b611388565b600190509392505050565b600760009054906101000a900460ff1681565b60006009905090565b61084c611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d090612e93565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f09fb98d4f02479ce251faed0f992a3c326d006e19ffa4f7269239763a644f725826040516109769190612d5b565b60405180910390a25050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60006109f8600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611db9565b9050919050565b610a07611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b90612e93565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b6000610bec610be5611380565b8484611553565b6001905092915050565b610bfe611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290612e93565b60405180910390fd5b600560009054906101000a900460ff1615610ca557600080fd5b80600760006101000a81548160ff021916908360ff16021790555050565b610ccb611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612e93565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610df59190612d5b565b60405180910390a25050565b610e09611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d90612e93565b60405180910390fd5b60005b83839050811015610f5b578160036000868685818110610ee2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610ef79190612842565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f53906131f9565b915050610e99565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35838383604051610f8f93929190612d29565b60405180910390a1505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61102b611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110af90612e93565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90612df3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ed611380565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190612e93565b60405180910390fd5b60005b8383905081101561133f5781600460008686858181106112c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906112db9190612842565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611337906131f9565b91505061127d565b507fd09d39390fc688d281adc0e04befeb10838d7a58109b6eb8c29db9b251ebccf683838360405161137393929190612d29565b60405180910390a1505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612ef3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90612e13565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115469190612f13565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba90612ed3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162a90612db3565b60405180910390fd5b60008111611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90612eb3565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa90612e53565b60405180910390fd5b6000600d819055506000600e81905550600560009054906101000a900460ff166117be57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117bd576001600560006101000a81548160ff021916908315150217905550600760009054906101000a900460ff1660ff16436117b69190613026565b6006819055505b5b600560009054906101000a900460ff1680156117dc57506006544311155b80156117f55750600560019054906101000a900460ff16155b156118ca57600954600d81905550600a54600e81905550611817838383611e27565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118c5576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611d50565b600560009054906101000a900460ff1680156118f25750600560019054906101000a900460ff165b15611913576000600560016101000a81548160ff0219169083151502179055505b61191b610b72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119895750611959610b72565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d44576000611999306109ae565b9050601160149054906101000a900460ff16158015611a065750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1e5750601160159054906101000a900460ff165b8015611a2a5750600081115b15611a5257611a3881611e37565b60004790506000811115611a5057611a4f47612131565b5b505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611afd5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b1557600954600d81905550600a54600e819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bc05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bd857600b54600d81905550600c54600e819055505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c795750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d2c5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d2b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d42576000600d819055506000600e819055505b505b611d4f838383611e27565b5b505050565b6000838311158290611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d949190612d91565b60405180910390fd5b5060008385611dac9190613107565b9050809150509392505050565b6000600854821115611e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df790612dd3565b60405180910390fd5b6000611e0a61219d565b9050611e1f81846121c890919063ffffffff16565b915050919050565b611e32838383612212565b505050565b6001601160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e95577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611ec35781602001602082028036833780820191505090505b5090503081600081518110611f01577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fa357600080fd5b505afa158015611fb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdb919061286b565b81600181518110612015577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207c30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611388565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120e0959493929190612f2e565b600060405180830381600087803b1580156120fa57600080fd5b505af115801561210e573d6000803e3d6000fd5b50505050506000601160146101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612199573d6000803e3d6000fd5b5050565b60008060006121aa612589565b915091506121c181836121c890919063ffffffff16565b9250505090565b600061220a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125eb565b905092915050565b600061221c61219d565b9050600061229361224b606461223d600e548761264e90919063ffffffff16565b6121c890919063ffffffff16565b6122856122766064612268600d548961264e90919063ffffffff16565b6121c890919063ffffffff16565b866126c990919063ffffffff16565b6126c990919063ffffffff16565b905060006122aa838561264e90919063ffffffff16565b905060006122e8846122da60646122cc600d548a61264e90919063ffffffff16565b6121c890919063ffffffff16565b61264e90919063ffffffff16565b9050600061232685612318606461230a600e548b61264e90919063ffffffff16565b6121c890919063ffffffff16565b61264e90919063ffffffff16565b9050600061234f8261234185876126c990919063ffffffff16565b6126c990919063ffffffff16565b90506123a384600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c990919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061243881600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124cd82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461271390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061251983612771565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516125769190612f13565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea0000090506125bf683635c9adc5dea000006008546121c890919063ffffffff16565b8210156125de57600854683635c9adc5dea000009350935050506125e7565b81819350935050505b9091565b60008083118290612632576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126299190612d91565b60405180910390fd5b5060008385612641919061307c565b9050809150509392505050565b60008083141561266157600090506126c3565b6000828461266f91906130ad565b905082848261267e919061307c565b146126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b590612e73565b60405180910390fd5b809150505b92915050565b600061270b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d55565b905092915050565b60008082846127229190613026565b905083811015612767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275e90612e33565b60405180910390fd5b8091505092915050565b612786816008546126c990919063ffffffff16565b60088190555050565b60008135905061279e816135a4565b92915050565b6000815190506127b3816135a4565b92915050565b60008083601f8401126127cb57600080fd5b8235905067ffffffffffffffff8111156127e457600080fd5b6020830191508360208202830111156127fc57600080fd5b9250929050565b600081359050612812816135bb565b92915050565b600081359050612827816135d2565b92915050565b60008135905061283c816135e9565b92915050565b60006020828403121561285457600080fd5b60006128628482850161278f565b91505092915050565b60006020828403121561287d57600080fd5b600061288b848285016127a4565b91505092915050565b600080604083850312156128a757600080fd5b60006128b58582860161278f565b92505060206128c68582860161278f565b9150509250929050565b6000806000606084860312156128e557600080fd5b60006128f38682870161278f565b93505060206129048682870161278f565b925050604061291586828701612818565b9150509250925092565b6000806040838503121561293257600080fd5b60006129408582860161278f565b925050602061295185828601612803565b9150509250929050565b6000806040838503121561296e57600080fd5b600061297c8582860161278f565b925050602061298d85828601612818565b9150509250929050565b6000806000604084860312156129ac57600080fd5b600084013567ffffffffffffffff8111156129c657600080fd5b6129d2868287016127b9565b935093505060206129e586828701612803565b9150509250925092565b600060208284031215612a0157600080fd5b6000612a0f8482850161282d565b91505092915050565b6000612a248383612a30565b60208301905092915050565b612a398161313b565b82525050565b612a488161313b565b82525050565b6000612a5a8385612fed565b9350612a6582612fa3565b8060005b85811015612a9e57612a7b828461300f565b612a858882612a18565b9750612a9083612fd3565b925050600181019050612a69565b5085925050509392505050565b6000612ab682612fbd565b612ac08185612fed565b9350612acb83612fad565b8060005b83811015612afc578151612ae38882612a18565b9750612aee83612fe0565b925050600181019050612acf565b5085935050505092915050565b612b128161314d565b82525050565b612b2181613190565b82525050565b612b30816131b4565b82525050565b6000612b4182612fc8565b612b4b8185612ffe565b9350612b5b8185602086016131c6565b612b64816132a0565b840191505092915050565b6000612b7c602383612ffe565b9150612b87826132b1565b604082019050919050565b6000612b9f602a83612ffe565b9150612baa82613300565b604082019050919050565b6000612bc2602683612ffe565b9150612bcd8261334f565b604082019050919050565b6000612be5602283612ffe565b9150612bf08261339e565b604082019050919050565b6000612c08601b83612ffe565b9150612c13826133ed565b602082019050919050565b6000612c2b601383612ffe565b9150612c3682613416565b602082019050919050565b6000612c4e602183612ffe565b9150612c598261343f565b604082019050919050565b6000612c71602083612ffe565b9150612c7c8261348e565b602082019050919050565b6000612c94602983612ffe565b9150612c9f826134b7565b604082019050919050565b6000612cb7602583612ffe565b9150612cc282613506565b604082019050919050565b6000612cda602483612ffe565b9150612ce582613555565b604082019050919050565b612cf981613179565b82525050565b612d0881613183565b82525050565b6000602082019050612d236000830184612a3f565b92915050565b60006040820190508181036000830152612d44818587612a4e565b9050612d536020830184612b09565b949350505050565b6000602082019050612d706000830184612b09565b92915050565b6000602082019050612d8b6000830184612b18565b92915050565b60006020820190508181036000830152612dab8184612b36565b905092915050565b60006020820190508181036000830152612dcc81612b6f565b9050919050565b60006020820190508181036000830152612dec81612b92565b9050919050565b60006020820190508181036000830152612e0c81612bb5565b9050919050565b60006020820190508181036000830152612e2c81612bd8565b9050919050565b60006020820190508181036000830152612e4c81612bfb565b9050919050565b60006020820190508181036000830152612e6c81612c1e565b9050919050565b60006020820190508181036000830152612e8c81612c41565b9050919050565b60006020820190508181036000830152612eac81612c64565b9050919050565b60006020820190508181036000830152612ecc81612c87565b9050919050565b60006020820190508181036000830152612eec81612caa565b9050919050565b60006020820190508181036000830152612f0c81612ccd565b9050919050565b6000602082019050612f286000830184612cf0565b92915050565b600060a082019050612f436000830188612cf0565b612f506020830187612b27565b8181036040830152612f628186612aab565b9050612f716060830185612a3f565b612f7e6080830184612cf0565b9695505050505050565b6000602082019050612f9d6000830184612cff565b92915050565b6000819050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061301e602084018461278f565b905092915050565b600061303182613179565b915061303c83613179565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561307157613070613242565b5b828201905092915050565b600061308782613179565b915061309283613179565b9250826130a2576130a1613271565b5b828204905092915050565b60006130b882613179565b91506130c383613179565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130fc576130fb613242565b5b828202905092915050565b600061311282613179565b915061311d83613179565b9250828210156131305761312f613242565b5b828203905092915050565b600061314682613159565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061319b826131a2565b9050919050565b60006131ad82613159565b9050919050565b60006131bf82613179565b9050919050565b60005b838110156131e45780820151818401526020810190506131c9565b838111156131f3576000848401525b50505050565b600061320482613179565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561323757613236613242565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6135ad8161313b565b81146135b857600080fd5b50565b6135c48161314d565b81146135cf57600080fd5b50565b6135db81613179565b81146135e657600080fd5b50565b6135f281613183565b81146135fd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122051588095a627f4cbbdff87ac05db847429551600e42c0ec5cd237dba2191972464736f6c63430008040033

Deployed Bytecode Sourcemap

16377:9937:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18562:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19414:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16462:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17522:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16747:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18839:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16648:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16703:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19583:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16825:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18748:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25793:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17570:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16786:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18942:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15796:148;;;;;;;;;;;;;:::i;:::-;;16590:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15154:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18653:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19088:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18418:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25538:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25159:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19263:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16099:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26038:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18562:83;18599:13;18632:5;;;;;;;;;;;;;;;;;18625:12;;18562:83;:::o;19414:161::-;19489:4;19506:39;19515:12;:10;:12::i;:::-;19529:7;19538:6;19506:8;:39::i;:::-;19563:4;19556:11;;19414:161;;;;:::o;16462:43::-;;;;;;;;;;;;;;;;;:::o;17522:41::-;;;;;;;;;;;;;:::o;16747:32::-;;;;;;;;;;;;;:::o;18839:95::-;18892:7;16950:22;18912:14;;18839:95;:::o;16648:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;16703:37::-;;;;;;;;;;;;;:::o;19583:313::-;19681:4;19698:36;19708:6;19716:9;19727:6;19698:9;:36::i;:::-;19745:121;19754:6;19762:12;:10;:12::i;:::-;19776:89;19814:6;19776:89;;;;;;;;;;;;;;;;;:11;:19;19788:6;19776:19;;;;;;;;;;;;;;;:33;19796:12;:10;:12::i;:::-;19776:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19745:8;:121::i;:::-;19884:4;19877:11;;19583:313;;;;;:::o;16825:28::-;;;;;;;;;;;;;:::o;18748:83::-;18789:5;17404:1;18807:16;;18748:83;:::o;25793:169::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25901:5:::1;25875:14;:23;25890:7;25875:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;25939:7;25922:32;;;25948:5;25922:32;;;;;;:::i;:::-;;;;;;;;25793:169:::0;;:::o;17570:28::-;;;;;;;;;;;;;:::o;16786:32::-;;;;:::o;18942:138::-;19008:7;19035:37;19055:7;:16;19063:7;19055:16;;;;;;;;;;;;;;;;19035:19;:37::i;:::-;19028:44;;18942:138;;;:::o;15796:148::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15903:1:::1;15866:40;;15887:6;::::0;::::1;;;;;;;;15866:40;;;;;;;;;;;;15934:1;15917:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15796:148::o:0;16590:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;15154:79::-;15192:7;15219:6;;;;;;;;;;;15212:13;;15154:79;:::o;18653:87::-;18692:13;18725:7;;;;;;;;;;;;;;;;;18718:14;;18653:87;:::o;19088:167::-;19166:4;19183:42;19193:12;:10;:12::i;:::-;19207:9;19218:6;19183:9;:42::i;:::-;19243:4;19236:11;;19088:167;;;;:::o;18418:136::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18496:17:::1;;;;;;;;;;;18495:18;18487:27;;;::::0;::::1;;18539:7;18525:11;;:21;;;;;;;;;;;;;;;;;;18418:136:::0;:::o;25538:181::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25653:8:::1;25623:18;:27;25642:7;25623:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;25693:7;25677:34;;;25702:8;25677:34;;;;;;:::i;:::-;;;;;;;;25538:181:::0;;:::o;25159:301::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25276:9:::1;25272:114;25295:8;;:15;;25291:1;:19;25272:114;;;25366:8;25332:18;:31;25351:8;;25360:1;25351:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25332:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;25312:3;;;;;:::i;:::-;;;;25272:114;;;;25401:51;25433:8;;25443;25401:51;;;;;;;;:::i;:::-;;;;;;;;25159:301:::0;;;:::o;19263:143::-;19344:7;19371:11;:18;19383:5;19371:18;;;;;;;;;;;;;;;:27;19390:7;19371:27;;;;;;;;;;;;;;;;19364:34;;19263:143;;;;:::o;16099:244::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16208:1:::1;16188:22;;:8;:22;;;;16180:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16298:8;16269:38;;16290:6;::::0;::::1;;;;;;;;16269:38;;;;;;;;;;;;16327:8;16318:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16099:244:::0;:::o;26038:271::-;15376:12;:10;:12::i;:::-;15366:22;;:6;;;;;;;;;;:22;;;15358:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26143:9:::1;26139:107;26162:8;;:15;;26158:1;:19;26139:107;;;26229:5;26199:14;:27;26214:8;;26223:1;26214:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26199:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;26179:3;;;;;:::i;:::-;;;;26139:107;;;;26261:40;26285:8;;26295:5;26261:40;;;;;;;;:::i;:::-;;;;;;;;26038:271:::0;;;:::o;3372:98::-;3425:7;3452:10;3445:17;;3372:98;:::o;20166:335::-;20276:1;20259:19;;:5;:19;;;;20251:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20357:1;20338:21;;:7;:21;;;;20330:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20439:6;20409:11;:18;20421:5;20409:18;;;;;;;;;;;;;;;:27;20428:7;20409:27;;;;;;;;;;;;;;;:36;;;;20477:7;20461:32;;20470:5;20461:32;;;20486:6;20461:32;;;;;;:::i;:::-;;;;;;;;20166:335;;;:::o;20509:2357::-;20613:1;20597:18;;:4;:18;;;;20589:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20690:1;20676:16;;:2;:16;;;;20668:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20760:1;20751:6;:10;20743:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20827:14;:20;20842:4;20827:20;;;;;;;;;;;;;;;;;;;;;;;;;20826:21;20818:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;20896:1;20884:9;:13;;;;20918:1;20908:7;:11;;;;20985:17;;;;;;;;;;;20980:245;;21029:13;;;;;;;;;;;21023:19;;:2;:19;;;21019:195;;;21083:4;21063:17;;:24;;;;;;;;;;;;;;;;;;21187:11;;;;;;;;;;;21172:26;;:12;:26;;;;:::i;:::-;21152:17;:46;;;;21019:195;20980:245;21265:17;;;;;;;;;;;:54;;;;;21302:17;;21286:12;:33;;21265:54;:72;;;;;21324:13;;;;;;;;;;;21323:14;21265:72;21262:338;;;21365:14;;21353:9;:26;;;;21404:12;;21394:7;:22;;;;21431:30;21446:4;21451:2;21454:6;21431:14;:30::i;:::-;21494:13;;;;;;;;;;;21480:28;;:2;:28;;;21476:92;;21548:4;21529:14;:18;21544:2;21529:18;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;21476:92;21582:7;;21262:338;21616:17;;;;;;;;;;;:34;;;;;21637:13;;;;;;;;;;;21616:34;21612:87;;;21682:5;21666:13;;:21;;;;;;;;;;;;;;;;;;21612:87;21731:7;:5;:7::i;:::-;21723:15;;:4;:15;;;;:32;;;;;21748:7;:5;:7::i;:::-;21742:13;;:2;:13;;;;21723:32;21719:1097;;;21786:28;21817:24;21835:4;21817:9;:24::i;:::-;21786:55;;21861:6;;;;;;;;;;;21860:7;:32;;;;;21879:13;;;;;;;;;;;21871:21;;:4;:21;;;;21860:32;:47;;;;;21896:11;;;;;;;;;;;21860:47;:75;;;;;21934:1;21911:20;:24;21860:75;21856:346;;;21956:38;21973:20;21956:16;:38::i;:::-;22013:26;22042:21;22013:50;;22106:1;22085:18;:22;22082:105;;;22132:35;22145:21;22132:12;:35::i;:::-;22082:105;21856:346;;22241:13;;;;;;;;;;;22233:21;;:4;:21;;;:55;;;;;22272:15;;;;;;;;;;;22258:30;;:2;:30;;;;22233:55;22230:162;;;22321:14;;22309:9;:26;;;;22364:12;;22354:7;:22;;;;22230:162;22422:13;;;;;;;;;;;22416:19;;:2;:19;;;:55;;;;;22455:15;;;;;;;;;;;22439:32;;:4;:32;;;;22416:55;22412:165;;;22504:15;;22492:9;:27;;;;22548:13;;22538:7;:23;;;;22412:165;22610:18;:24;22629:4;22610:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;22638:18;:22;22657:2;22638:22;;;;;;;;;;;;;;;;;;;;;;;;;22610:50;22609:102;;;;22674:13;;;;;;;;;;;22666:21;;:4;:21;;;;:44;;;;;22697:13;;;;;;;;;;;22691:19;;:2;:19;;;;22666:44;22609:102;22605:186;;;22744:1;22732:9;:13;;;;22774:1;22764:7;:11;;;;22605:186;21719:1097;;22828:30;22843:4;22848:2;22851:6;22828:14;:30::i;:::-;20509:2357;;;;:::o;5484:192::-;5570:7;5603:1;5598;:6;;5606:12;5590:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5630:9;5646:1;5642;:5;;;;:::i;:::-;5630:17;;5667:1;5660:8;;;5484:192;;;;;:::o;19904:254::-;19971:7;20010;;19999;:18;;19991:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20075:19;20098:10;:8;:10::i;:::-;20075:33;;20126:24;20138:11;20126:7;:11;;:24;;;;:::i;:::-;20119:31;;;19904:254;;;:::o;23484:146::-;23578:44;23596:6;23604:9;23615:6;23578:17;:44::i;:::-;23484:146;;;:::o;22874:483::-;17730:4;17721:6;;:13;;;;;;;;;;;;;;;;;;22952:21:::1;22990:1;22976:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22952:40;;23021:4;23003;23008:1;23003:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;23047:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23037:4;23042:1;23037:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;23080:62;23097:4;23112:15;;;;;;;;;;;23130:11;23080:8;:62::i;:::-;23153:15;;;;;;;;;;;:66;;;23234:11;23260:1;23276:4;23303;23323:15;23153:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17745:1;17766:5:::0;17757:6;;:14;;;;;;;;;;;;;;;;;;22874:483;:::o;23373:99::-;23430:17;;;;;;;;;;;:26;;:34;23457:6;23430:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23373:99;:::o;24637:163::-;24678:7;24699:15;24716;24735:19;:17;:19::i;:::-;24698:56;;;;24772:20;24784:7;24772;:11;;:20;;;;:::i;:::-;24765:27;;;;24637:163;:::o;6882:132::-;6940:7;6967:39;6971:1;6974;6967:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6960:46;;6882:132;;;;:::o;23638:805::-;23736:19;23759:10;:8;:10::i;:::-;23736:33;;23780:23;23806:79;23855:29;23880:3;23855:20;23867:7;;23855;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;23806:44;23818:31;23845:3;23818:22;23830:9;;23818:7;:11;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;23806:7;:11;;:44;;;;:::i;:::-;:48;;:79;;;;:::i;:::-;23780:105;;23896:15;23914:24;23926:11;23914:7;:11;;:24;;;;:::i;:::-;23896:42;;23949:12;23964:48;24000:11;23964:31;23991:3;23964:22;23976:9;;23964:7;:11;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;:35;;:48;;;;:::i;:::-;23949:63;;24023:13;24039:46;24073:11;24039:29;24064:3;24039:20;24051:7;;24039;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;:33;;:46;;;;:::i;:::-;24023:62;;24096:23;24122:28;24144:5;24122:17;24134:4;24122:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;24096:54;;24179:28;24199:7;24179;:15;24187:6;24179:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24161:7;:15;24169:6;24161:15;;;;;;;;;;;;;;;:46;;;;24239:39;24262:15;24239:7;:18;24247:9;24239:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24218:7;:18;24226:9;24218:18;;;;;;;;;;;;;;;:60;;;;24314:33;24341:5;24314:7;:22;24330:4;24314:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;24289:7;:22;24305:4;24289:22;;;;;;;;;;;;;;;:58;;;;24358:17;24370:4;24358:11;:17::i;:::-;24408:9;24391:44;;24400:6;24391:44;;;24419:15;24391:44;;;;;;:::i;:::-;;;;;;;;23638:805;;;;;;;;;:::o;24808:262::-;24858:7;24867;24887:15;24905:7;;24887:25;;24923:15;16950:22;24923:25;;24979:20;16950:22;24979:7;;:11;;:20;;;;:::i;:::-;24969:7;:30;24965:61;;;25009:7;;16950:22;25001:25;;;;;;;;24965:61;25045:7;25054;25037:25;;;;;;24808:262;;;:::o;7510:278::-;7596:7;7628:1;7624;:5;7631:12;7616:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7655:9;7671:1;7667;:5;;;;:::i;:::-;7655:17;;7779:1;7772:8;;;7510:278;;;;;:::o;5935:471::-;5993:7;6243:1;6238;:6;6234:47;;;6268:1;6261:8;;;;6234:47;6293:9;6309:1;6305;:5;;;;:::i;:::-;6293:17;;6338:1;6333;6329;:5;;;;:::i;:::-;:10;6321:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6397:1;6390:8;;;5935:471;;;;;:::o;5045:136::-;5103:7;5130:43;5134:1;5137;5130:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5123:50;;5045:136;;;;:::o;4581:181::-;4639:7;4659:9;4675:1;4671;:5;;;;:::i;:::-;4659:17;;4700:1;4695;:6;;4687:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4753:1;4746:8;;;4581:181;;;;:::o;24506:89::-;24570:17;24582:4;24570:7;;:11;;:17;;;;:::i;:::-;24560:7;:27;;;;24506:89;:::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;318:367::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;469:1;466;459:12;418:2;505:6;492:20;482:30;;535:18;527:6;524:30;521:2;;;567:1;564;557:12;521:2;604:4;596:6;592:17;580:29;;658:3;650:4;642:6;638:17;628:8;624:32;621:41;618:2;;;675:1;672;665:12;618:2;408:277;;;;;:::o;691:133::-;734:5;772:6;759:20;750:29;;788:30;812:5;788:30;:::i;:::-;740:84;;;;:::o;830:139::-;876:5;914:6;901:20;892:29;;930:33;957:5;930:33;:::i;:::-;882:87;;;;:::o;975:135::-;1019:5;1057:6;1044:20;1035:29;;1073:31;1098:5;1073:31;:::i;:::-;1025:85;;;;:::o;1116:262::-;1175:6;1224:2;1212:9;1203:7;1199:23;1195:32;1192:2;;;1240:1;1237;1230:12;1192:2;1283:1;1308:53;1353:7;1344:6;1333:9;1329:22;1308:53;:::i;:::-;1298:63;;1254:117;1182:196;;;;:::o;1384:284::-;1454:6;1503:2;1491:9;1482:7;1478:23;1474:32;1471:2;;;1519:1;1516;1509:12;1471:2;1562:1;1587:64;1643:7;1634:6;1623:9;1619:22;1587:64;:::i;:::-;1577:74;;1533:128;1461:207;;;;:::o;1674:407::-;1742:6;1750;1799:2;1787:9;1778:7;1774:23;1770:32;1767:2;;;1815:1;1812;1805:12;1767:2;1858:1;1883:53;1928:7;1919:6;1908:9;1904:22;1883:53;:::i;:::-;1873:63;;1829:117;1985:2;2011:53;2056:7;2047:6;2036:9;2032:22;2011:53;:::i;:::-;2001:63;;1956:118;1757:324;;;;;:::o;2087:552::-;2164:6;2172;2180;2229:2;2217:9;2208:7;2204:23;2200:32;2197:2;;;2245:1;2242;2235:12;2197:2;2288:1;2313:53;2358:7;2349:6;2338:9;2334:22;2313:53;:::i;:::-;2303:63;;2259:117;2415:2;2441:53;2486:7;2477:6;2466:9;2462:22;2441:53;:::i;:::-;2431:63;;2386:118;2543:2;2569:53;2614:7;2605:6;2594:9;2590:22;2569:53;:::i;:::-;2559:63;;2514:118;2187:452;;;;;:::o;2645:401::-;2710:6;2718;2767:2;2755:9;2746:7;2742:23;2738:32;2735:2;;;2783:1;2780;2773:12;2735:2;2826:1;2851:53;2896:7;2887:6;2876:9;2872:22;2851:53;:::i;:::-;2841:63;;2797:117;2953:2;2979:50;3021:7;3012:6;3001:9;2997:22;2979:50;:::i;:::-;2969:60;;2924:115;2725:321;;;;;:::o;3052:407::-;3120:6;3128;3177:2;3165:9;3156:7;3152:23;3148:32;3145:2;;;3193:1;3190;3183:12;3145:2;3236:1;3261:53;3306:7;3297:6;3286:9;3282:22;3261:53;:::i;:::-;3251:63;;3207:117;3363:2;3389:53;3434:7;3425:6;3414:9;3410:22;3389:53;:::i;:::-;3379:63;;3334:118;3135:324;;;;;:::o;3465:564::-;3557:6;3565;3573;3622:2;3610:9;3601:7;3597:23;3593:32;3590:2;;;3638:1;3635;3628:12;3590:2;3709:1;3698:9;3694:17;3681:31;3739:18;3731:6;3728:30;3725:2;;;3771:1;3768;3761:12;3725:2;3807:80;3879:7;3870:6;3859:9;3855:22;3807:80;:::i;:::-;3789:98;;;;3652:245;3936:2;3962:50;4004:7;3995:6;3984:9;3980:22;3962:50;:::i;:::-;3952:60;;3907:115;3580:449;;;;;:::o;4035:258::-;4092:6;4141:2;4129:9;4120:7;4116:23;4112:32;4109:2;;;4157:1;4154;4147:12;4109:2;4200:1;4225:51;4268:7;4259:6;4248:9;4244:22;4225:51;:::i;:::-;4215:61;;4171:115;4099:194;;;;:::o;4299:179::-;4368:10;4389:46;4431:3;4423:6;4389:46;:::i;:::-;4467:4;4462:3;4458:14;4444:28;;4379:99;;;;:::o;4484:108::-;4561:24;4579:5;4561:24;:::i;:::-;4556:3;4549:37;4539:53;;:::o;4598:118::-;4685:24;4703:5;4685:24;:::i;:::-;4680:3;4673:37;4663:53;;:::o;4752:699::-;4881:3;4904:86;4983:6;4978:3;4904:86;:::i;:::-;4897:93;;5014:58;5066:5;5014:58;:::i;:::-;5095:7;5126:1;5111:315;5136:6;5133:1;5130:13;5111:315;;;5206:42;5241:6;5232:7;5206:42;:::i;:::-;5268:63;5327:3;5312:13;5268:63;:::i;:::-;5261:70;;5354:62;5409:6;5354:62;:::i;:::-;5344:72;;5171:255;5158:1;5155;5151:9;5146:14;;5111:315;;;5115:14;5442:3;5435:10;;4886:565;;;;;;;:::o;5487:732::-;5606:3;5635:54;5683:5;5635:54;:::i;:::-;5705:86;5784:6;5779:3;5705:86;:::i;:::-;5698:93;;5815:56;5865:5;5815:56;:::i;:::-;5894:7;5925:1;5910:284;5935:6;5932:1;5929:13;5910:284;;;6011:6;6005:13;6038:63;6097:3;6082:13;6038:63;:::i;:::-;6031:70;;6124:60;6177:6;6124:60;:::i;:::-;6114:70;;5970:224;5957:1;5954;5950:9;5945:14;;5910:284;;;5914:14;6210:3;6203:10;;5611:608;;;;;;;:::o;6225:109::-;6306:21;6321:5;6306:21;:::i;:::-;6301:3;6294:34;6284:50;;:::o;6340:183::-;6453:63;6510:5;6453:63;:::i;:::-;6448:3;6441:76;6431:92;;:::o;6529:147::-;6624:45;6663:5;6624:45;:::i;:::-;6619:3;6612:58;6602:74;;:::o;6682:364::-;6770:3;6798:39;6831:5;6798:39;:::i;:::-;6853:71;6917:6;6912:3;6853:71;:::i;:::-;6846:78;;6933:52;6978:6;6973:3;6966:4;6959:5;6955:16;6933:52;:::i;:::-;7010:29;7032:6;7010:29;:::i;:::-;7005:3;7001:39;6994:46;;6774:272;;;;;:::o;7052:366::-;7194:3;7215:67;7279:2;7274:3;7215:67;:::i;:::-;7208:74;;7291:93;7380:3;7291:93;:::i;:::-;7409:2;7404:3;7400:12;7393:19;;7198:220;;;:::o;7424:366::-;7566:3;7587:67;7651:2;7646:3;7587:67;:::i;:::-;7580:74;;7663:93;7752:3;7663:93;:::i;:::-;7781:2;7776:3;7772:12;7765:19;;7570:220;;;:::o;7796:366::-;7938:3;7959:67;8023:2;8018:3;7959:67;:::i;:::-;7952:74;;8035:93;8124:3;8035:93;:::i;:::-;8153:2;8148:3;8144:12;8137:19;;7942:220;;;:::o;8168:366::-;8310:3;8331:67;8395:2;8390:3;8331:67;:::i;:::-;8324:74;;8407:93;8496:3;8407:93;:::i;:::-;8525:2;8520:3;8516:12;8509:19;;8314:220;;;:::o;8540:366::-;8682:3;8703:67;8767:2;8762:3;8703:67;:::i;:::-;8696:74;;8779:93;8868:3;8779:93;:::i;:::-;8897:2;8892:3;8888:12;8881:19;;8686:220;;;:::o;8912:366::-;9054:3;9075:67;9139:2;9134:3;9075:67;:::i;:::-;9068:74;;9151:93;9240:3;9151:93;:::i;:::-;9269:2;9264:3;9260:12;9253:19;;9058:220;;;:::o;9284:366::-;9426:3;9447:67;9511:2;9506:3;9447:67;:::i;:::-;9440:74;;9523:93;9612:3;9523:93;:::i;:::-;9641:2;9636:3;9632:12;9625:19;;9430:220;;;:::o;9656:366::-;9798:3;9819:67;9883:2;9878:3;9819:67;:::i;:::-;9812:74;;9895:93;9984:3;9895:93;:::i;:::-;10013:2;10008:3;10004:12;9997:19;;9802:220;;;:::o;10028:366::-;10170:3;10191:67;10255:2;10250:3;10191:67;:::i;:::-;10184:74;;10267:93;10356:3;10267:93;:::i;:::-;10385:2;10380:3;10376:12;10369:19;;10174:220;;;:::o;10400:366::-;10542:3;10563:67;10627:2;10622:3;10563:67;:::i;:::-;10556:74;;10639:93;10728:3;10639:93;:::i;:::-;10757:2;10752:3;10748:12;10741:19;;10546:220;;;:::o;10772:366::-;10914:3;10935:67;10999:2;10994:3;10935:67;:::i;:::-;10928:74;;11011:93;11100:3;11011:93;:::i;:::-;11129:2;11124:3;11120:12;11113:19;;10918:220;;;:::o;11144:118::-;11231:24;11249:5;11231:24;:::i;:::-;11226:3;11219:37;11209:53;;:::o;11268:112::-;11351:22;11367:5;11351:22;:::i;:::-;11346:3;11339:35;11329:51;;:::o;11386:222::-;11479:4;11517:2;11506:9;11502:18;11494:26;;11530:71;11598:1;11587:9;11583:17;11574:6;11530:71;:::i;:::-;11484:124;;;;:::o;11614:491::-;11789:4;11827:2;11816:9;11812:18;11804:26;;11876:9;11870:4;11866:20;11862:1;11851:9;11847:17;11840:47;11904:118;12017:4;12008:6;12000;11904:118;:::i;:::-;11896:126;;12032:66;12094:2;12083:9;12079:18;12070:6;12032:66;:::i;:::-;11794:311;;;;;;:::o;12111:210::-;12198:4;12236:2;12225:9;12221:18;12213:26;;12249:65;12311:1;12300:9;12296:17;12287:6;12249:65;:::i;:::-;12203:118;;;;:::o;12327:274::-;12446:4;12484:2;12473:9;12469:18;12461:26;;12497:97;12591:1;12580:9;12576:17;12567:6;12497:97;:::i;:::-;12451:150;;;;:::o;12607:313::-;12720:4;12758:2;12747:9;12743:18;12735:26;;12807:9;12801:4;12797:20;12793:1;12782:9;12778:17;12771:47;12835:78;12908:4;12899:6;12835:78;:::i;:::-;12827:86;;12725:195;;;;:::o;12926:419::-;13092:4;13130:2;13119:9;13115:18;13107:26;;13179:9;13173:4;13169:20;13165:1;13154:9;13150:17;13143:47;13207:131;13333:4;13207:131;:::i;:::-;13199:139;;13097:248;;;:::o;13351:419::-;13517:4;13555:2;13544:9;13540:18;13532:26;;13604:9;13598:4;13594:20;13590:1;13579:9;13575:17;13568:47;13632:131;13758:4;13632:131;:::i;:::-;13624:139;;13522:248;;;:::o;13776:419::-;13942:4;13980:2;13969:9;13965:18;13957:26;;14029:9;14023:4;14019:20;14015:1;14004:9;14000:17;13993:47;14057:131;14183:4;14057:131;:::i;:::-;14049:139;;13947:248;;;:::o;14201:419::-;14367:4;14405:2;14394:9;14390:18;14382:26;;14454:9;14448:4;14444:20;14440:1;14429:9;14425:17;14418:47;14482:131;14608:4;14482:131;:::i;:::-;14474:139;;14372:248;;;:::o;14626:419::-;14792:4;14830:2;14819:9;14815:18;14807:26;;14879:9;14873:4;14869:20;14865:1;14854:9;14850:17;14843:47;14907:131;15033:4;14907:131;:::i;:::-;14899:139;;14797:248;;;:::o;15051:419::-;15217:4;15255:2;15244:9;15240:18;15232:26;;15304:9;15298:4;15294:20;15290:1;15279:9;15275:17;15268:47;15332:131;15458:4;15332:131;:::i;:::-;15324:139;;15222:248;;;:::o;15476:419::-;15642:4;15680:2;15669:9;15665:18;15657:26;;15729:9;15723:4;15719:20;15715:1;15704:9;15700:17;15693:47;15757:131;15883:4;15757:131;:::i;:::-;15749:139;;15647:248;;;:::o;15901:419::-;16067:4;16105:2;16094:9;16090:18;16082:26;;16154:9;16148:4;16144:20;16140:1;16129:9;16125:17;16118:47;16182:131;16308:4;16182:131;:::i;:::-;16174:139;;16072:248;;;:::o;16326:419::-;16492:4;16530:2;16519:9;16515:18;16507:26;;16579:9;16573:4;16569:20;16565:1;16554:9;16550:17;16543:47;16607:131;16733:4;16607:131;:::i;:::-;16599:139;;16497:248;;;:::o;16751:419::-;16917:4;16955:2;16944:9;16940:18;16932:26;;17004:9;16998:4;16994:20;16990:1;16979:9;16975:17;16968:47;17032:131;17158:4;17032:131;:::i;:::-;17024:139;;16922:248;;;:::o;17176:419::-;17342:4;17380:2;17369:9;17365:18;17357:26;;17429:9;17423:4;17419:20;17415:1;17404:9;17400:17;17393:47;17457:131;17583:4;17457:131;:::i;:::-;17449:139;;17347:248;;;:::o;17601:222::-;17694:4;17732:2;17721:9;17717:18;17709:26;;17745:71;17813:1;17802:9;17798:17;17789:6;17745:71;:::i;:::-;17699:124;;;;:::o;17829:831::-;18092:4;18130:3;18119:9;18115:19;18107:27;;18144:71;18212:1;18201:9;18197:17;18188:6;18144:71;:::i;:::-;18225:80;18301:2;18290:9;18286:18;18277:6;18225:80;:::i;:::-;18352:9;18346:4;18342:20;18337:2;18326:9;18322:18;18315:48;18380:108;18483:4;18474:6;18380:108;:::i;:::-;18372:116;;18498:72;18566:2;18555:9;18551:18;18542:6;18498:72;:::i;:::-;18580:73;18648:3;18637:9;18633:19;18624:6;18580:73;:::i;:::-;18097:563;;;;;;;;:::o;18666:214::-;18755:4;18793:2;18782:9;18778:18;18770:26;;18806:67;18870:1;18859:9;18855:17;18846:6;18806:67;:::i;:::-;18760:120;;;;:::o;18886:102::-;18955:4;18978:3;18970:11;;18960:28;;;:::o;18994:132::-;19061:4;19084:3;19076:11;;19114:4;19109:3;19105:14;19097:22;;19066:60;;;:::o;19132:114::-;19199:6;19233:5;19227:12;19217:22;;19206:40;;;:::o;19252:99::-;19304:6;19338:5;19332:12;19322:22;;19311:40;;;:::o;19357:115::-;19429:4;19461;19456:3;19452:14;19444:22;;19434:38;;;:::o;19478:113::-;19548:4;19580;19575:3;19571:14;19563:22;;19553:38;;;:::o;19597:184::-;19696:11;19730:6;19725:3;19718:19;19770:4;19765:3;19761:14;19746:29;;19708:73;;;;:::o;19787:169::-;19871:11;19905:6;19900:3;19893:19;19945:4;19940:3;19936:14;19921:29;;19883:73;;;;:::o;19962:122::-;20014:5;20039:39;20074:2;20069:3;20065:12;20060:3;20039:39;:::i;:::-;20030:48;;20020:64;;;;:::o;20090:305::-;20130:3;20149:20;20167:1;20149:20;:::i;:::-;20144:25;;20183:20;20201:1;20183:20;:::i;:::-;20178:25;;20337:1;20269:66;20265:74;20262:1;20259:81;20256:2;;;20343:18;;:::i;:::-;20256:2;20387:1;20384;20380:9;20373:16;;20134:261;;;;:::o;20401:185::-;20441:1;20458:20;20476:1;20458:20;:::i;:::-;20453:25;;20492:20;20510:1;20492:20;:::i;:::-;20487:25;;20531:1;20521:2;;20536:18;;:::i;:::-;20521:2;20578:1;20575;20571:9;20566:14;;20443:143;;;;:::o;20592:348::-;20632:7;20655:20;20673:1;20655:20;:::i;:::-;20650:25;;20689:20;20707:1;20689:20;:::i;:::-;20684:25;;20877:1;20809:66;20805:74;20802:1;20799:81;20794:1;20787:9;20780:17;20776:105;20773:2;;;20884:18;;:::i;:::-;20773:2;20932:1;20929;20925:9;20914:20;;20640:300;;;;:::o;20946:191::-;20986:4;21006:20;21024:1;21006:20;:::i;:::-;21001:25;;21040:20;21058:1;21040:20;:::i;:::-;21035:25;;21079:1;21076;21073:8;21070:2;;;21084:18;;:::i;:::-;21070:2;21129:1;21126;21122:9;21114:17;;20991:146;;;;:::o;21143:96::-;21180:7;21209:24;21227:5;21209:24;:::i;:::-;21198:35;;21188:51;;;:::o;21245:90::-;21279:7;21322:5;21315:13;21308:21;21297:32;;21287:48;;;:::o;21341:126::-;21378:7;21418:42;21411:5;21407:54;21396:65;;21386:81;;;:::o;21473:77::-;21510:7;21539:5;21528:16;;21518:32;;;:::o;21556:86::-;21591:7;21631:4;21624:5;21620:16;21609:27;;21599:43;;;:::o;21648:178::-;21724:9;21757:63;21814:5;21757:63;:::i;:::-;21744:76;;21734:92;;;:::o;21832:139::-;21908:9;21941:24;21959:5;21941:24;:::i;:::-;21928:37;;21918:53;;;:::o;21977:121::-;22035:9;22068:24;22086:5;22068:24;:::i;:::-;22055:37;;22045:53;;;:::o;22104:307::-;22172:1;22182:113;22196:6;22193:1;22190:13;22182:113;;;22281:1;22276:3;22272:11;22266:18;22262:1;22257:3;22253:11;22246:39;22218:2;22215:1;22211:10;22206:15;;22182:113;;;22313:6;22310:1;22307:13;22304:2;;;22393:1;22384:6;22379:3;22375:16;22368:27;22304:2;22153:258;;;;:::o;22417:233::-;22456:3;22479:24;22497:5;22479:24;:::i;:::-;22470:33;;22525:66;22518:5;22515:77;22512:2;;;22595:18;;:::i;:::-;22512:2;22642:1;22635:5;22631:13;22624:20;;22460:190;;;:::o;22656:180::-;22704:77;22701:1;22694:88;22801:4;22798:1;22791:15;22825:4;22822:1;22815:15;22842:180;22890:77;22887:1;22880:88;22987:4;22984:1;22977:15;23011:4;23008:1;23001:15;23028:102;23069:6;23120:2;23116:7;23111:2;23104:5;23100:14;23096:28;23086:38;;23076:54;;;:::o;23136:222::-;23276:34;23272:1;23264:6;23260:14;23253:58;23345:5;23340:2;23332:6;23328:15;23321:30;23242:116;:::o;23364:229::-;23504:34;23500:1;23492:6;23488:14;23481:58;23573:12;23568:2;23560:6;23556:15;23549:37;23470:123;:::o;23599:225::-;23739:34;23735:1;23727:6;23723:14;23716:58;23808:8;23803:2;23795:6;23791:15;23784:33;23705:119;:::o;23830:221::-;23970:34;23966:1;23958:6;23954:14;23947:58;24039:4;24034:2;24026:6;24022:15;24015:29;23936:115;:::o;24057:177::-;24197:29;24193:1;24185:6;24181:14;24174:53;24163:71;:::o;24240:169::-;24380:21;24376:1;24368:6;24364:14;24357:45;24346:63;:::o;24415:220::-;24555:34;24551:1;24543:6;24539:14;24532:58;24624:3;24619:2;24611:6;24607:15;24600:28;24521:114;:::o;24641:182::-;24781:34;24777:1;24769:6;24765:14;24758:58;24747:76;:::o;24829:228::-;24969:34;24965:1;24957:6;24953:14;24946:58;25038:11;25033:2;25025:6;25021:15;25014:36;24935:122;:::o;25063:224::-;25203:34;25199:1;25191:6;25187:14;25180:58;25272:7;25267:2;25259:6;25255:15;25248:32;25169:118;:::o;25293:223::-;25433:34;25429:1;25421:6;25417:14;25410:58;25502:6;25497:2;25489:6;25485:15;25478:31;25399:117;:::o;25522:122::-;25595:24;25613:5;25595:24;:::i;:::-;25588:5;25585:35;25575:2;;25634:1;25631;25624:12;25575:2;25565:79;:::o;25650:116::-;25720:21;25735:5;25720:21;:::i;:::-;25713:5;25710:32;25700:2;;25756:1;25753;25746:12;25700:2;25690:76;:::o;25772:122::-;25845:24;25863:5;25845:24;:::i;:::-;25838:5;25835:35;25825:2;;25884:1;25881;25874:12;25825:2;25815:79;:::o;25900:118::-;25971:22;25987:5;25971:22;:::i;:::-;25964:5;25961:33;25951:2;;26008:1;26005;25998:12;25951:2;25941:77;:::o

Swarm Source

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