ETH Price: $3,337.81 (+2.03%)
 

Overview

Max Total Supply

100,000,000 ZYLO

Holders

108

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12,232.306480133314792942 ZYLO

Value
$0.00
0xc86855326EF3C11B14173F9aFA11a4236C6bEbA8
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:
ZYLO

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 6 of 6: ZYLO.sol
/*
Website: zylo.space
Twitter: x.com/zyloeth
Telegram: t.me/zylospace

$ZYLO is a 100% decentralized marketplace platform 
that enables anyone to tokenize wallet-based access 
gates on creative assets with dynamic pricing.
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.22;

import "./ERC20.sol";
import "./Ownable.sol"; 

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn,uint256 amountOutMin,address[] calldata path,address to,uint256 deadline) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

contract ZYLO is ERC20, Ownable {

    uint256 private buyTax = 30;
    uint256 private sellTax = 35;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    mapping(address => bool) public isExempt;
    
    address private immutable marketingAddress;
    address private immutable taxAddress;

    uint256 public maxTransaction;
    uint256 public maxTxLaunch;
    bool private launch = false;
    bool private launchLimits = true;
    uint256 private blockLaunch;
    uint256 private lastSellBlock;
    uint256 private sellCount;
    uint256 private minSwap;
    uint256 private maxSwap;
    uint256 private _buyCount= 0;
    bool private inSwap;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(
        address _taxAddress,
        address _marketingAddress,
        address _strategicPool,
        address _cexPool,
        address _ps
    ) ERC20("Zylo", "ZYLO") Ownable() payable {
        uint256 totalSupply = 100000000 * 10**18;
        
        marketingAddress = _marketingAddress;
        taxAddress = _taxAddress;

        isExempt[msg.sender] = true; 
        isExempt[address(this)] = true; 
        isExempt[_strategicPool] = true;
        isExempt[_cexPool] = true;
        isExempt[marketingAddress] = true; 
        isExempt[taxAddress] = true; 
        isExempt[_ps] = true;

        _mint(_ps, totalSupply * 10 / 100); 
        _mint(_strategicPool, totalSupply * 8 / 100); 
        _mint(_marketingAddress, totalSupply * 10 / 100); 
        _mint(_cexPool, totalSupply * 12 / 100); 
        _mint(address(this), totalSupply * 60 / 100); 

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = address(
            IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH())
        );
        
        maxTransaction = totalSupply * 2 / 100;
        maxTxLaunch = totalSupply * 5 / 1000; 
        maxSwap = 1000000 * 10**18;
        minSwap = 25000 * 10**18;
    }

    function addLiquidityETH() external onlyOwner {
        _approve(address(this), address(uniswapV2Router), balanceOf(address(this)));
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }

     function getMinSwap() public view returns (uint256){
        return minSwap / 10**decimals();
    }

    function setMaxCaSwap(uint256 _maxSwap) external onlyOwner{
        maxSwap = _maxSwap * 10**decimals();
    }

    function setMinSwap(uint256 _minSwap) external onlyOwner{
        minSwap = _minSwap * 10**decimals();
    }

    function switchCaCanSell() external onlyOwner {
        if (inSwap){
            inSwap = false;
        } else {
            inSwap = true;
        }
    }

    function removeLaunchLimits() external onlyOwner {
        launchLimits = false;
    }

    function getMaxSwap() public view returns (uint256){
        return maxSwap / 10**decimals();
    }

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

    function _transfer(address from, address to, uint256 value) internal virtual override {
        if (!isExempt[from] && !isExempt[to]) {
            require(launch, "Not launched");
            uint256 tax = 0;
            
            if (launchLimits && blockLaunch!=block.number){
                require(value <= maxTxLaunch, "OVER MAX TX LIMIT");
            } else {
                require(value <= maxTransaction, "OVER MAX TX LIMIT");
            }

            if (to == uniswapV2Pair) {
                tax = sellTax;
                uint256 tokensSwap = balanceOf(address(this));
                if (tokensSwap > minSwap && !inSwap) {
                    if (block.number > lastSellBlock) {
                        sellCount = 0;
                    }
                    if (sellCount < 3){
                        sellCount++;
                        lastSellBlock = block.number;
                        swapTokensEth(min(maxSwap, min(value, tokensSwap)));
                    }
                }
            } else if (from == uniswapV2Pair){
                tax = buyTax;
                if(block.number == blockLaunch){
                    _buyCount++;
                    tax = 0;
                    require(_buyCount <= 16,"Exceeds buys on the first block.");
                }
            }

            uint256 taxAmount = value * tax / 100;
            uint256 amountAfterTax = value - taxAmount;

            if (taxAmount > 0){
                super._transfer(from, address(this), taxAmount);
            }
            super._transfer(from, to, amountAfterTax);
            return;
        }
        super._transfer(from, to, value);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function setMaxTx(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx* 10**decimals() >= totalSupply()/100); //Protect: MaxTx more then 1%
        maxTransaction= newMaxTx * 10**decimals();
    }

    function setExcludedWallet(address wAddress, bool isExcle) external onlyOwner {
        isExempt[wAddress] = isExcle;
    }
    
    function openTrading() external onlyOwner {
        launch = true;
        blockLaunch = block.number;
    }
    
    function setTax(uint256 newBuyTax , uint256 newSellTax) external onlyOwner {
        require(newBuyTax < 20 && newSellTax < 20); //Protect: Tax less then 20%
        sellTax = newSellTax;
        buyTax = newBuyTax;
    }

    function removeAllLimits() external onlyOwner {
        launchLimits = false;
        maxTransaction = totalSupply();
    }

    function exportETH() external {
        payable(marketingAddress).transfer(address(this).balance);
    }

    function triggerSell(uint256 percentToSell) external onlyOwner {
        uint256 amount = min(balanceOf(address(this)), (totalSupply() / 100 * percentToSell));
        swapTokensEth(amount);
    }

    //Send tokens from ca to dead, call only from owner
    function burnTokens(uint256 percent) external onlyOwner {
        uint256 amount = min(balanceOf(address(this)), (totalSupply() / 100 * percent));
        IERC20(address(this)).transfer(0x000000000000000000000000000000000000dEaD, amount);
    }

    receive() external payable {}
}

File 1 of 6: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @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) {
        return msg.data;
    }
}

File 2 of 6: ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

File 3 of 6: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool);
}

File 4 of 6: IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";

/**
 * @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);
}

File 5 of 6: Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "./Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract 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() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_taxAddress","type":"address"},{"internalType":"address","name":"_marketingAddress","type":"address"},{"internalType":"address","name":"_strategicPool","type":"address"},{"internalType":"address","name":"_cexPool","type":"address"},{"internalType":"address","name":"_ps","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exportETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxLaunch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLaunchLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wAddress","type":"address"},{"internalType":"bool","name":"isExcle","type":"bool"}],"name":"setExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSwap","type":"uint256"}],"name":"setMaxCaSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minSwap","type":"uint256"}],"name":"setMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchCaCanSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"uint256","name":"percentToSell","type":"uint256"}],"name":"triggerSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052601e60065560236007555f600d5f6101000a81548160ff0219169083151502179055506001600d60016101000a81548160ff0219169083151502179055505f60135560405162003d2b38038062003d2b83398181016040528101906200006b919062000a17565b6040518060400160405280600481526020017f5a796c6f000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5a594c4f000000000000000000000000000000000000000000000000000000008152508160039081620000e8919062000cff565b508060049081620000fa919062000cff565b5050506200011d620001116200077960201b60201c565b6200078060201b60201c565b5f6a52b7d2dcc80cd2e400000090508473ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000419826064600a8462000401919062000e10565b6200040d919062000e87565b6200084360201b60201c565b620004478460646008846200042f919062000e10565b6200043b919062000e87565b6200084360201b60201c565b62000475856064600a846200045d919062000e10565b62000469919062000e87565b6200084360201b60201c565b620004a3836064600c846200048b919062000e10565b62000497919062000e87565b6200084360201b60201c565b620004d1306064603c84620004b9919062000e10565b620004c5919062000e87565b6200084360201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000590573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005b6919062000ebe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200063d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000663919062000ebe565b6040518363ffffffff1660e01b81526004016200068292919062000eff565b6020604051808303815f875af11580156200069f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006c5919062000ebe565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460028262000715919062000e10565b62000721919062000e87565b600b819055506103e860058262000739919062000e10565b62000745919062000e87565b600c8190555069d3c21bcecceda100000060128190555069054b40b1f852bda000006011819055505050505050506200100e565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ab9062000f88565b60405180910390fd5b620008c75f8383620009a860201b60201c565b8060025f828254620008da919062000fa8565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000989919062000ff3565b60405180910390a3620009a45f8383620009ad60201b60201c565b5050565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009e182620009b6565b9050919050565b620009f381620009d5565b8114620009fe575f80fd5b50565b5f8151905062000a1181620009e8565b92915050565b5f805f805f60a0868803121562000a335762000a32620009b2565b5b5f62000a428882890162000a01565b955050602062000a558882890162000a01565b945050604062000a688882890162000a01565b935050606062000a7b8882890162000a01565b925050608062000a8e8882890162000a01565b9150509295509295909350565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000b1757607f821691505b60208210810362000b2d5762000b2c62000ad2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b54565b62000b9d868362000b54565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000be762000be162000bdb8462000bb5565b62000bbe565b62000bb5565b9050919050565b5f819050919050565b62000c028362000bc7565b62000c1a62000c118262000bee565b84845462000b60565b825550505050565b5f90565b62000c3062000c22565b62000c3d81848462000bf7565b505050565b5b8181101562000c645762000c585f8262000c26565b60018101905062000c43565b5050565b601f82111562000cb35762000c7d8162000b33565b62000c888462000b45565b8101602085101562000c98578190505b62000cb062000ca78562000b45565b83018262000c42565b50505b505050565b5f82821c905092915050565b5f62000cd55f198460080262000cb8565b1980831691505092915050565b5f62000cef838362000cc4565b9150826002028217905092915050565b62000d0a8262000a9b565b67ffffffffffffffff81111562000d265762000d2562000aa5565b5b62000d32825462000aff565b62000d3f82828562000c68565b5f60209050601f83116001811462000d75575f841562000d60578287015190505b62000d6c858262000ce2565b86555062000ddb565b601f19841662000d858662000b33565b5f5b8281101562000dae5784890151825560018201915060208501945060208101905062000d87565b8683101562000dce578489015162000dca601f89168262000cc4565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000e1c8262000bb5565b915062000e298362000bb5565b925082820262000e398162000bb5565b9150828204841483151762000e535762000e5262000de3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000e938262000bb5565b915062000ea08362000bb5565b92508262000eb35762000eb262000e5a565b5b828204905092915050565b5f6020828403121562000ed65762000ed5620009b2565b5b5f62000ee58482850162000a01565b91505092915050565b62000ef981620009d5565b82525050565b5f60408201905062000f145f83018562000eee565b62000f23602083018462000eee565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000f70601f8362000f2a565b915062000f7d8262000f3a565b602082019050919050565b5f6020820190508181035f83015262000fa18162000f62565b9050919050565b5f62000fb48262000bb5565b915062000fc18362000bb5565b925082820190508082111562000fdc5762000fdb62000de3565b5b92915050565b62000fed8162000bb5565b82525050565b5f602082019050620010085f83018462000fe2565b92915050565b60805160a051612cfb620010305f395f6114bf01525f610dd00152612cfb5ff3fe6080604052600436106101f1575f3560e01c80638da5cb5b1161010c578063bc3371821161009f578063d579d4ed1161006e578063d579d4ed146106b4578063db05e5cb146106ca578063dd62ed3e146106e0578063ed9953071461071c578063f2fde38b14610732576101f8565b8063bc33718214610636578063c01dfd661461065e578063c3f70b5214610674578063c9567bf91461069e576101f8565b8063a9e282b8116100db578063a9e282b814610580578063aca2cd6e146105a8578063acb79766146105d0578063ad5dff73146105fa576101f8565b80638da5cb5b146104b457806395d89b41146104de578063a457c2d714610508578063a9059cbb14610544576101f8565b8063313ce56711610184578063667f652611610153578063667f6526146104125780636d1b229d1461043a57806370a0823114610462578063715018a61461049e576101f8565b8063313ce5671461036c578063395093511461039657806349bd5a5e146103d257806349deb75c146103fc576101f8565b806309d58ae6116101c057806309d58ae6146102b457806318160ddd146102de5780631b6e4c731461030857806323b872dd14610330576101f8565b8063027cc97a146101fc57806306fdde0314610224578063084cf6151461024e578063095ea7b314610278576101f8565b366101f857005b5f80fd5b348015610207575f80fd5b50610222600480360381019061021d9190611cf7565b61075a565b005b34801561022f575f80fd5b5061023861078a565b6040516102459190611dac565b60405180910390f35b348015610259575f80fd5b5061026261081a565b60405161026f9190611ddb565b60405180910390f35b348015610283575f80fd5b5061029e60048036038101906102999190611e4e565b610820565b6040516102ab9190611ea6565b60405180910390f35b3480156102bf575f80fd5b506102c8610842565b6040516102d59190611ddb565b60405180910390f35b3480156102e9575f80fd5b506102f2610869565b6040516102ff9190611ddb565b60405180910390f35b348015610313575f80fd5b5061032e60048036038101906103299190611cf7565b610872565b005b34801561033b575f80fd5b5061035660048036038101906103519190611ebf565b6108ba565b6040516103639190611ea6565b60405180910390f35b348015610377575f80fd5b506103806108e8565b60405161038d9190611f2a565b60405180910390f35b3480156103a1575f80fd5b506103bc60048036038101906103b79190611e4e565b6108f0565b6040516103c99190611ea6565b60405180910390f35b3480156103dd575f80fd5b506103e6610926565b6040516103f39190611f52565b60405180910390f35b348015610407575f80fd5b5061041061094b565b005b34801561041d575f80fd5b5061043860048036038101906104339190611f6b565b6109a2565b005b348015610445575f80fd5b50610460600480360381019061045b9190611cf7565b6109d4565b005b34801561046d575f80fd5b5061048860048036038101906104839190611fa9565b610a91565b6040516104959190611ddb565b60405180910390f35b3480156104a9575f80fd5b506104b2610ad6565b005b3480156104bf575f80fd5b506104c8610ae9565b6040516104d59190611f52565b60405180910390f35b3480156104e9575f80fd5b506104f2610b11565b6040516104ff9190611dac565b60405180910390f35b348015610513575f80fd5b5061052e60048036038101906105299190611e4e565b610ba1565b60405161053b9190611ea6565b60405180910390f35b34801561054f575f80fd5b5061056a60048036038101906105659190611e4e565b610c16565b6040516105779190611ea6565b60405180910390f35b34801561058b575f80fd5b506105a660048036038101906105a19190611cf7565b610c38565b005b3480156105b3575f80fd5b506105ce60048036038101906105c99190611ffe565b610c68565b005b3480156105db575f80fd5b506105e4610cc8565b6040516105f19190611ddb565b60405180910390f35b348015610605575f80fd5b50610620600480360381019061061b9190611fa9565b610cef565b60405161062d9190611ea6565b60405180910390f35b348015610641575f80fd5b5061065c60048036038101906106579190611cf7565b610d0c565b005b348015610669575f80fd5b50610672610d79565b005b34801561067f575f80fd5b50610688610d9d565b6040516106959190611ddb565b60405180910390f35b3480156106a9575f80fd5b506106b2610da3565b005b3480156106bf575f80fd5b506106c8610dce565b005b3480156106d5575f80fd5b506106de610e34565b005b3480156106eb575f80fd5b506107066004803603810190610701919061203c565b610e66565b6040516107139190611ddb565b60405180910390f35b348015610727575f80fd5b50610730610ee8565b005b34801561073d575f80fd5b5061075860048036038101906107539190611fa9565b610fde565b005b610762611060565b61076a6108e8565b600a61077691906121d6565b816107819190612220565b60128190555050565b6060600380546107999061228e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c59061228e565b80156108105780601f106107e757610100808354040283529160200191610810565b820191905f5260205f20905b8154815290600101906020018083116107f357829003601f168201915b5050505050905090565b600c5481565b5f8061082a6110de565b90506108378185856110e5565b600191505092915050565b5f61084b6108e8565b600a61085791906121d6565b60115461086491906122eb565b905090565b5f600254905090565b61087a611060565b5f6108ab61088730610a91565b836064610892610869565b61089c91906122eb565b6108a69190612220565b6112a8565b90506108b6816112c0565b5050565b5f806108c46110de565b90506108d1858285611549565b6108dc8585856115d4565b60019150509392505050565b5f6012905090565b5f806108fa6110de565b905061091b81858561090c8589610e66565b610916919061231b565b6110e5565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610953611060565b60145f9054906101000a900460ff1615610985575f60145f6101000a81548160ff0219169083151502179055506109a0565b600160145f6101000a81548160ff0219169083151502179055505b565b6109aa611060565b6014821080156109ba5750601481105b6109c2575f80fd5b80600781905550816006819055505050565b6109dc611060565b5f610a0d6109e930610a91565b8360646109f4610869565b6109fe91906122eb565b610a089190612220565b6112a8565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b8152600401610a4c92919061234e565b6020604051808303815f875af1158015610a68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8c9190612389565b505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ade611060565b610ae75f611987565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b209061228e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c9061228e565b8015610b975780601f10610b6e57610100808354040283529160200191610b97565b820191905f5260205f20905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b5f80610bab6110de565b90505f610bb88286610e66565b905083811015610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612424565b60405180910390fd5b610c0a82868684036110e5565b60019250505092915050565b5f80610c206110de565b9050610c2d8185856115d4565b600191505092915050565b610c40611060565b610c486108e8565b600a610c5491906121d6565b81610c5f9190612220565b60118190555050565b610c70611060565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610cd16108e8565b600a610cdd91906121d6565b601254610cea91906122eb565b905090565b600a602052805f5260405f205f915054906101000a900460ff1681565b610d14611060565b6064610d1e610869565b610d2891906122eb565b610d306108e8565b600a610d3c91906121d6565b82610d479190612220565b1015610d51575f80fd5b610d596108e8565b600a610d6591906121d6565b81610d709190612220565b600b8190555050565b610d81611060565b5f600d60016101000a81548160ff021916908315150217905550565b600b5481565b610dab611060565b6001600d5f6101000a81548160ff02191690831515021790555043600e81905550565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e31573d5f803e3d5ffd5b50565b610e3c611060565b5f600d60016101000a81548160ff021916908315150217905550610e5e610869565b600b81905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ef0611060565b610f243060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f1f30610a91565b6110e5565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f6c30610a91565b5f80610f76610ae9565b426040518863ffffffff1660e01b8152600401610f9896959493929190612484565b60606040518083038185885af1158015610fb4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fd991906124f7565b505050565b610fe6611060565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b906125b7565b60405180910390fd5b61105d81611987565b50565b6110686110de565b73ffffffffffffffffffffffffffffffffffffffff16611086610ae9565b73ffffffffffffffffffffffffffffffffffffffff16146110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d39061261f565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a906126ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b89061273b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129b9190611ddb565b60405180910390a3505050565b5f8183116112b657826112b8565b815b905092915050565b600160145f6101000a81548160ff0219169083151502179055506113063060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836110e5565b5f600267ffffffffffffffff81111561132257611321612759565b5b6040519080825280602002602001820160405280156113505781602001602082028036833780820191505090505b50905030815f8151811061136757611366612786565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561140b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142f91906127c7565b8160018151811061144357611442612786565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b81526004016114ff9594939291906128a9565b5f604051808303815f87803b158015611516575f80fd5b505af1158015611528573d5f803e3d5ffd5b50505050505f60145f6101000a81548160ff02191690831515021790555050565b5f6115548484610e66565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115ce57818110156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b79061294b565b60405180910390fd5b6115cd84848484036110e5565b5b50505050565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116725750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561197657600d5f9054906101000a900460ff166116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc906129b3565b60405180910390fd5b5f600d60019054906101000a900460ff1680156116e4575043600e5414155b1561173357600c5482111561172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590612a1b565b60405180910390fd5b611779565b600b54821115611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90612a1b565b60405180910390fd5b5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118605760075490505f6117dc30610a91565b9050601154811180156117fb575060145f9054906101000a900460ff16155b1561185a57600f54431115611812575f6010819055505b600360105410156118595760105f81548092919061182f90612a39565b919050555043600f8190555061185861185360125461184e86856112a8565b6112a8565b6112c0565b5b5b50611925565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611924576006549050600e5443036119235760135f8154809291906118d490612a39565b91905055505f905060106013541115611922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191990612aca565b60405180910390fd5b5b5b5b5f606482846119349190612220565b61193e91906122eb565b90505f818461194d9190612ae8565b90505f82111561196357611962863084611a4a565b5b61196e868683611a4a565b505050611982565b611981838383611a4a565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90612b8b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90612c19565b60405180910390fd5b611b31838383611cb6565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab90612ca7565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c9d9190611ddb565b60405180910390a3611cb0848484611cbb565b50505050565b505050565b505050565b5f80fd5b5f819050919050565b611cd681611cc4565b8114611ce0575f80fd5b50565b5f81359050611cf181611ccd565b92915050565b5f60208284031215611d0c57611d0b611cc0565b5b5f611d1984828501611ce3565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d59578082015181840152602081019050611d3e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d7e82611d22565b611d888185611d2c565b9350611d98818560208601611d3c565b611da181611d64565b840191505092915050565b5f6020820190508181035f830152611dc48184611d74565b905092915050565b611dd581611cc4565b82525050565b5f602082019050611dee5f830184611dcc565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e1d82611df4565b9050919050565b611e2d81611e13565b8114611e37575f80fd5b50565b5f81359050611e4881611e24565b92915050565b5f8060408385031215611e6457611e63611cc0565b5b5f611e7185828601611e3a565b9250506020611e8285828601611ce3565b9150509250929050565b5f8115159050919050565b611ea081611e8c565b82525050565b5f602082019050611eb95f830184611e97565b92915050565b5f805f60608486031215611ed657611ed5611cc0565b5b5f611ee386828701611e3a565b9350506020611ef486828701611e3a565b9250506040611f0586828701611ce3565b9150509250925092565b5f60ff82169050919050565b611f2481611f0f565b82525050565b5f602082019050611f3d5f830184611f1b565b92915050565b611f4c81611e13565b82525050565b5f602082019050611f655f830184611f43565b92915050565b5f8060408385031215611f8157611f80611cc0565b5b5f611f8e85828601611ce3565b9250506020611f9f85828601611ce3565b9150509250929050565b5f60208284031215611fbe57611fbd611cc0565b5b5f611fcb84828501611e3a565b91505092915050565b611fdd81611e8c565b8114611fe7575f80fd5b50565b5f81359050611ff881611fd4565b92915050565b5f806040838503121561201457612013611cc0565b5b5f61202185828601611e3a565b925050602061203285828601611fea565b9150509250929050565b5f806040838503121561205257612051611cc0565b5b5f61205f85828601611e3a565b925050602061207085828601611e3a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156120fc578086048111156120d8576120d761207a565b5b60018516156120e75780820291505b80810290506120f5856120a7565b94506120bc565b94509492505050565b5f8261211457600190506121cf565b81612121575f90506121cf565b8160018114612137576002811461214157612170565b60019150506121cf565b60ff8411156121535761215261207a565b5b8360020a91508482111561216a5761216961207a565b5b506121cf565b5060208310610133831016604e8410600b84101617156121a55782820a9050838111156121a05761219f61207a565b5b6121cf565b6121b284848460016120b3565b925090508184048111156121c9576121c861207a565b5b81810290505b9392505050565b5f6121e082611cc4565b91506121eb83611f0f565b92506122187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612105565b905092915050565b5f61222a82611cc4565b915061223583611cc4565b925082820261224381611cc4565b9150828204841483151761225a5761225961207a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806122a557607f821691505b6020821081036122b8576122b7612261565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6122f582611cc4565b915061230083611cc4565b9250826123105761230f6122be565b5b828204905092915050565b5f61232582611cc4565b915061233083611cc4565b92508282019050808211156123485761234761207a565b5b92915050565b5f6040820190506123615f830185611f43565b61236e6020830184611dcc565b9392505050565b5f8151905061238381611fd4565b92915050565b5f6020828403121561239e5761239d611cc0565b5b5f6123ab84828501612375565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61240e602583611d2c565b9150612419826123b4565b604082019050919050565b5f6020820190508181035f83015261243b81612402565b9050919050565b5f819050919050565b5f819050919050565b5f61246e61246961246484612442565b61244b565b611cc4565b9050919050565b61247e81612454565b82525050565b5f60c0820190506124975f830189611f43565b6124a46020830188611dcc565b6124b16040830187612475565b6124be6060830186612475565b6124cb6080830185611f43565b6124d860a0830184611dcc565b979650505050505050565b5f815190506124f181611ccd565b92915050565b5f805f6060848603121561250e5761250d611cc0565b5b5f61251b868287016124e3565b935050602061252c868287016124e3565b925050604061253d868287016124e3565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6125a1602683611d2c565b91506125ac82612547565b604082019050919050565b5f6020820190508181035f8301526125ce81612595565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612609602083611d2c565b9150612614826125d5565b602082019050919050565b5f6020820190508181035f830152612636816125fd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612697602483611d2c565b91506126a28261263d565b604082019050919050565b5f6020820190508181035f8301526126c48161268b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612725602283611d2c565b9150612730826126cb565b604082019050919050565b5f6020820190508181035f83015261275281612719565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506127c181611e24565b92915050565b5f602082840312156127dc576127db611cc0565b5b5f6127e9848285016127b3565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61282481611e13565b82525050565b5f612835838361281b565b60208301905092915050565b5f602082019050919050565b5f612857826127f2565b61286181856127fc565b935061286c8361280c565b805f5b8381101561289c578151612883888261282a565b975061288e83612841565b92505060018101905061286f565b5085935050505092915050565b5f60a0820190506128bc5f830188611dcc565b6128c96020830187612475565b81810360408301526128db818661284d565b90506128ea6060830185611f43565b6128f76080830184611dcc565b9695505050505050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612935601d83611d2c565b915061294082612901565b602082019050919050565b5f6020820190508181035f83015261296281612929565b9050919050565b7f4e6f74206c61756e6368656400000000000000000000000000000000000000005f82015250565b5f61299d600c83611d2c565b91506129a882612969565b602082019050919050565b5f6020820190508181035f8301526129ca81612991565b9050919050565b7f4f564552204d4158205458204c494d49540000000000000000000000000000005f82015250565b5f612a05601183611d2c565b9150612a10826129d1565b602082019050919050565b5f6020820190508181035f830152612a32816129f9565b9050919050565b5f612a4382611cc4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7557612a7461207a565b5b600182019050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f612ab4602083611d2c565b9150612abf82612a80565b602082019050919050565b5f6020820190508181035f830152612ae181612aa8565b9050919050565b5f612af282611cc4565b9150612afd83611cc4565b9250828203905081811115612b1557612b1461207a565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b75602583611d2c565b9150612b8082612b1b565b604082019050919050565b5f6020820190508181035f830152612ba281612b69565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c03602383611d2c565b9150612c0e82612ba9565b604082019050919050565b5f6020820190508181035f830152612c3081612bf7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612c91602683611d2c565b9150612c9c82612c37565b604082019050919050565b5f6020820190508181035f830152612cbe81612c85565b905091905056fea2646970667358221220f9fdbd4f10085c750c1b649072e3f95b54145a763616057b8e9ad41e6212bb5764736f6c634300081700330000000000000000000000008f8c48a464796f57acd05ab156c264b2a4dc332d0000000000000000000000007d8a1a92dc850079f4b7c836265d4a9fb7be2ce800000000000000000000000007da437c4be732b5df4f58ff2f17715a038b86dc0000000000000000000000005c76b21b26c75748896346d09276036c767be1a8000000000000000000000000d30b7db495a437b7fdd273d8b7f34dbad4989df4

Deployed Bytecode

0x6080604052600436106101f1575f3560e01c80638da5cb5b1161010c578063bc3371821161009f578063d579d4ed1161006e578063d579d4ed146106b4578063db05e5cb146106ca578063dd62ed3e146106e0578063ed9953071461071c578063f2fde38b14610732576101f8565b8063bc33718214610636578063c01dfd661461065e578063c3f70b5214610674578063c9567bf91461069e576101f8565b8063a9e282b8116100db578063a9e282b814610580578063aca2cd6e146105a8578063acb79766146105d0578063ad5dff73146105fa576101f8565b80638da5cb5b146104b457806395d89b41146104de578063a457c2d714610508578063a9059cbb14610544576101f8565b8063313ce56711610184578063667f652611610153578063667f6526146104125780636d1b229d1461043a57806370a0823114610462578063715018a61461049e576101f8565b8063313ce5671461036c578063395093511461039657806349bd5a5e146103d257806349deb75c146103fc576101f8565b806309d58ae6116101c057806309d58ae6146102b457806318160ddd146102de5780631b6e4c731461030857806323b872dd14610330576101f8565b8063027cc97a146101fc57806306fdde0314610224578063084cf6151461024e578063095ea7b314610278576101f8565b366101f857005b5f80fd5b348015610207575f80fd5b50610222600480360381019061021d9190611cf7565b61075a565b005b34801561022f575f80fd5b5061023861078a565b6040516102459190611dac565b60405180910390f35b348015610259575f80fd5b5061026261081a565b60405161026f9190611ddb565b60405180910390f35b348015610283575f80fd5b5061029e60048036038101906102999190611e4e565b610820565b6040516102ab9190611ea6565b60405180910390f35b3480156102bf575f80fd5b506102c8610842565b6040516102d59190611ddb565b60405180910390f35b3480156102e9575f80fd5b506102f2610869565b6040516102ff9190611ddb565b60405180910390f35b348015610313575f80fd5b5061032e60048036038101906103299190611cf7565b610872565b005b34801561033b575f80fd5b5061035660048036038101906103519190611ebf565b6108ba565b6040516103639190611ea6565b60405180910390f35b348015610377575f80fd5b506103806108e8565b60405161038d9190611f2a565b60405180910390f35b3480156103a1575f80fd5b506103bc60048036038101906103b79190611e4e565b6108f0565b6040516103c99190611ea6565b60405180910390f35b3480156103dd575f80fd5b506103e6610926565b6040516103f39190611f52565b60405180910390f35b348015610407575f80fd5b5061041061094b565b005b34801561041d575f80fd5b5061043860048036038101906104339190611f6b565b6109a2565b005b348015610445575f80fd5b50610460600480360381019061045b9190611cf7565b6109d4565b005b34801561046d575f80fd5b5061048860048036038101906104839190611fa9565b610a91565b6040516104959190611ddb565b60405180910390f35b3480156104a9575f80fd5b506104b2610ad6565b005b3480156104bf575f80fd5b506104c8610ae9565b6040516104d59190611f52565b60405180910390f35b3480156104e9575f80fd5b506104f2610b11565b6040516104ff9190611dac565b60405180910390f35b348015610513575f80fd5b5061052e60048036038101906105299190611e4e565b610ba1565b60405161053b9190611ea6565b60405180910390f35b34801561054f575f80fd5b5061056a60048036038101906105659190611e4e565b610c16565b6040516105779190611ea6565b60405180910390f35b34801561058b575f80fd5b506105a660048036038101906105a19190611cf7565b610c38565b005b3480156105b3575f80fd5b506105ce60048036038101906105c99190611ffe565b610c68565b005b3480156105db575f80fd5b506105e4610cc8565b6040516105f19190611ddb565b60405180910390f35b348015610605575f80fd5b50610620600480360381019061061b9190611fa9565b610cef565b60405161062d9190611ea6565b60405180910390f35b348015610641575f80fd5b5061065c60048036038101906106579190611cf7565b610d0c565b005b348015610669575f80fd5b50610672610d79565b005b34801561067f575f80fd5b50610688610d9d565b6040516106959190611ddb565b60405180910390f35b3480156106a9575f80fd5b506106b2610da3565b005b3480156106bf575f80fd5b506106c8610dce565b005b3480156106d5575f80fd5b506106de610e34565b005b3480156106eb575f80fd5b506107066004803603810190610701919061203c565b610e66565b6040516107139190611ddb565b60405180910390f35b348015610727575f80fd5b50610730610ee8565b005b34801561073d575f80fd5b5061075860048036038101906107539190611fa9565b610fde565b005b610762611060565b61076a6108e8565b600a61077691906121d6565b816107819190612220565b60128190555050565b6060600380546107999061228e565b80601f01602080910402602001604051908101604052809291908181526020018280546107c59061228e565b80156108105780601f106107e757610100808354040283529160200191610810565b820191905f5260205f20905b8154815290600101906020018083116107f357829003601f168201915b5050505050905090565b600c5481565b5f8061082a6110de565b90506108378185856110e5565b600191505092915050565b5f61084b6108e8565b600a61085791906121d6565b60115461086491906122eb565b905090565b5f600254905090565b61087a611060565b5f6108ab61088730610a91565b836064610892610869565b61089c91906122eb565b6108a69190612220565b6112a8565b90506108b6816112c0565b5050565b5f806108c46110de565b90506108d1858285611549565b6108dc8585856115d4565b60019150509392505050565b5f6012905090565b5f806108fa6110de565b905061091b81858561090c8589610e66565b610916919061231b565b6110e5565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610953611060565b60145f9054906101000a900460ff1615610985575f60145f6101000a81548160ff0219169083151502179055506109a0565b600160145f6101000a81548160ff0219169083151502179055505b565b6109aa611060565b6014821080156109ba5750601481105b6109c2575f80fd5b80600781905550816006819055505050565b6109dc611060565b5f610a0d6109e930610a91565b8360646109f4610869565b6109fe91906122eb565b610a089190612220565b6112a8565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b8152600401610a4c92919061234e565b6020604051808303815f875af1158015610a68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8c9190612389565b505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ade611060565b610ae75f611987565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b209061228e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c9061228e565b8015610b975780601f10610b6e57610100808354040283529160200191610b97565b820191905f5260205f20905b815481529060010190602001808311610b7a57829003601f168201915b5050505050905090565b5f80610bab6110de565b90505f610bb88286610e66565b905083811015610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612424565b60405180910390fd5b610c0a82868684036110e5565b60019250505092915050565b5f80610c206110de565b9050610c2d8185856115d4565b600191505092915050565b610c40611060565b610c486108e8565b600a610c5491906121d6565b81610c5f9190612220565b60118190555050565b610c70611060565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610cd16108e8565b600a610cdd91906121d6565b601254610cea91906122eb565b905090565b600a602052805f5260405f205f915054906101000a900460ff1681565b610d14611060565b6064610d1e610869565b610d2891906122eb565b610d306108e8565b600a610d3c91906121d6565b82610d479190612220565b1015610d51575f80fd5b610d596108e8565b600a610d6591906121d6565b81610d709190612220565b600b8190555050565b610d81611060565b5f600d60016101000a81548160ff021916908315150217905550565b600b5481565b610dab611060565b6001600d5f6101000a81548160ff02191690831515021790555043600e81905550565b7f0000000000000000000000007d8a1a92dc850079f4b7c836265d4a9fb7be2ce873ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e31573d5f803e3d5ffd5b50565b610e3c611060565b5f600d60016101000a81548160ff021916908315150217905550610e5e610869565b600b81905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ef0611060565b610f243060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f1f30610a91565b6110e5565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f6c30610a91565b5f80610f76610ae9565b426040518863ffffffff1660e01b8152600401610f9896959493929190612484565b60606040518083038185885af1158015610fb4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fd991906124f7565b505050565b610fe6611060565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b906125b7565b60405180910390fd5b61105d81611987565b50565b6110686110de565b73ffffffffffffffffffffffffffffffffffffffff16611086610ae9565b73ffffffffffffffffffffffffffffffffffffffff16146110dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d39061261f565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a906126ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b89061273b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129b9190611ddb565b60405180910390a3505050565b5f8183116112b657826112b8565b815b905092915050565b600160145f6101000a81548160ff0219169083151502179055506113063060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836110e5565b5f600267ffffffffffffffff81111561132257611321612759565b5b6040519080825280602002602001820160405280156113505781602001602082028036833780820191505090505b50905030815f8151811061136757611366612786565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561140b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142f91906127c7565b8160018151811061144357611442612786565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f0000000000000000000000008f8c48a464796f57acd05ab156c264b2a4dc332d426040518663ffffffff1660e01b81526004016114ff9594939291906128a9565b5f604051808303815f87803b158015611516575f80fd5b505af1158015611528573d5f803e3d5ffd5b50505050505f60145f6101000a81548160ff02191690831515021790555050565b5f6115548484610e66565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115ce57818110156115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b79061294b565b60405180910390fd5b6115cd84848484036110e5565b5b50505050565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156116725750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561197657600d5f9054906101000a900460ff166116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc906129b3565b60405180910390fd5b5f600d60019054906101000a900460ff1680156116e4575043600e5414155b1561173357600c5482111561172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590612a1b565b60405180910390fd5b611779565b600b54821115611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90612a1b565b60405180910390fd5b5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118605760075490505f6117dc30610a91565b9050601154811180156117fb575060145f9054906101000a900460ff16155b1561185a57600f54431115611812575f6010819055505b600360105410156118595760105f81548092919061182f90612a39565b919050555043600f8190555061185861185360125461184e86856112a8565b6112a8565b6112c0565b5b5b50611925565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611924576006549050600e5443036119235760135f8154809291906118d490612a39565b91905055505f905060106013541115611922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191990612aca565b60405180910390fd5b5b5b5b5f606482846119349190612220565b61193e91906122eb565b90505f818461194d9190612ae8565b90505f82111561196357611962863084611a4a565b5b61196e868683611a4a565b505050611982565b611981838383611a4a565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90612b8b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90612c19565b60405180910390fd5b611b31838383611cb6565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab90612ca7565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c9d9190611ddb565b60405180910390a3611cb0848484611cbb565b50505050565b505050565b505050565b5f80fd5b5f819050919050565b611cd681611cc4565b8114611ce0575f80fd5b50565b5f81359050611cf181611ccd565b92915050565b5f60208284031215611d0c57611d0b611cc0565b5b5f611d1984828501611ce3565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d59578082015181840152602081019050611d3e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d7e82611d22565b611d888185611d2c565b9350611d98818560208601611d3c565b611da181611d64565b840191505092915050565b5f6020820190508181035f830152611dc48184611d74565b905092915050565b611dd581611cc4565b82525050565b5f602082019050611dee5f830184611dcc565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e1d82611df4565b9050919050565b611e2d81611e13565b8114611e37575f80fd5b50565b5f81359050611e4881611e24565b92915050565b5f8060408385031215611e6457611e63611cc0565b5b5f611e7185828601611e3a565b9250506020611e8285828601611ce3565b9150509250929050565b5f8115159050919050565b611ea081611e8c565b82525050565b5f602082019050611eb95f830184611e97565b92915050565b5f805f60608486031215611ed657611ed5611cc0565b5b5f611ee386828701611e3a565b9350506020611ef486828701611e3a565b9250506040611f0586828701611ce3565b9150509250925092565b5f60ff82169050919050565b611f2481611f0f565b82525050565b5f602082019050611f3d5f830184611f1b565b92915050565b611f4c81611e13565b82525050565b5f602082019050611f655f830184611f43565b92915050565b5f8060408385031215611f8157611f80611cc0565b5b5f611f8e85828601611ce3565b9250506020611f9f85828601611ce3565b9150509250929050565b5f60208284031215611fbe57611fbd611cc0565b5b5f611fcb84828501611e3a565b91505092915050565b611fdd81611e8c565b8114611fe7575f80fd5b50565b5f81359050611ff881611fd4565b92915050565b5f806040838503121561201457612013611cc0565b5b5f61202185828601611e3a565b925050602061203285828601611fea565b9150509250929050565b5f806040838503121561205257612051611cc0565b5b5f61205f85828601611e3a565b925050602061207085828601611e3a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156120fc578086048111156120d8576120d761207a565b5b60018516156120e75780820291505b80810290506120f5856120a7565b94506120bc565b94509492505050565b5f8261211457600190506121cf565b81612121575f90506121cf565b8160018114612137576002811461214157612170565b60019150506121cf565b60ff8411156121535761215261207a565b5b8360020a91508482111561216a5761216961207a565b5b506121cf565b5060208310610133831016604e8410600b84101617156121a55782820a9050838111156121a05761219f61207a565b5b6121cf565b6121b284848460016120b3565b925090508184048111156121c9576121c861207a565b5b81810290505b9392505050565b5f6121e082611cc4565b91506121eb83611f0f565b92506122187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612105565b905092915050565b5f61222a82611cc4565b915061223583611cc4565b925082820261224381611cc4565b9150828204841483151761225a5761225961207a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806122a557607f821691505b6020821081036122b8576122b7612261565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6122f582611cc4565b915061230083611cc4565b9250826123105761230f6122be565b5b828204905092915050565b5f61232582611cc4565b915061233083611cc4565b92508282019050808211156123485761234761207a565b5b92915050565b5f6040820190506123615f830185611f43565b61236e6020830184611dcc565b9392505050565b5f8151905061238381611fd4565b92915050565b5f6020828403121561239e5761239d611cc0565b5b5f6123ab84828501612375565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61240e602583611d2c565b9150612419826123b4565b604082019050919050565b5f6020820190508181035f83015261243b81612402565b9050919050565b5f819050919050565b5f819050919050565b5f61246e61246961246484612442565b61244b565b611cc4565b9050919050565b61247e81612454565b82525050565b5f60c0820190506124975f830189611f43565b6124a46020830188611dcc565b6124b16040830187612475565b6124be6060830186612475565b6124cb6080830185611f43565b6124d860a0830184611dcc565b979650505050505050565b5f815190506124f181611ccd565b92915050565b5f805f6060848603121561250e5761250d611cc0565b5b5f61251b868287016124e3565b935050602061252c868287016124e3565b925050604061253d868287016124e3565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6125a1602683611d2c565b91506125ac82612547565b604082019050919050565b5f6020820190508181035f8301526125ce81612595565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612609602083611d2c565b9150612614826125d5565b602082019050919050565b5f6020820190508181035f830152612636816125fd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612697602483611d2c565b91506126a28261263d565b604082019050919050565b5f6020820190508181035f8301526126c48161268b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612725602283611d2c565b9150612730826126cb565b604082019050919050565b5f6020820190508181035f83015261275281612719565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506127c181611e24565b92915050565b5f602082840312156127dc576127db611cc0565b5b5f6127e9848285016127b3565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61282481611e13565b82525050565b5f612835838361281b565b60208301905092915050565b5f602082019050919050565b5f612857826127f2565b61286181856127fc565b935061286c8361280c565b805f5b8381101561289c578151612883888261282a565b975061288e83612841565b92505060018101905061286f565b5085935050505092915050565b5f60a0820190506128bc5f830188611dcc565b6128c96020830187612475565b81810360408301526128db818661284d565b90506128ea6060830185611f43565b6128f76080830184611dcc565b9695505050505050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612935601d83611d2c565b915061294082612901565b602082019050919050565b5f6020820190508181035f83015261296281612929565b9050919050565b7f4e6f74206c61756e6368656400000000000000000000000000000000000000005f82015250565b5f61299d600c83611d2c565b91506129a882612969565b602082019050919050565b5f6020820190508181035f8301526129ca81612991565b9050919050565b7f4f564552204d4158205458204c494d49540000000000000000000000000000005f82015250565b5f612a05601183611d2c565b9150612a10826129d1565b602082019050919050565b5f6020820190508181035f830152612a32816129f9565b9050919050565b5f612a4382611cc4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7557612a7461207a565b5b600182019050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f612ab4602083611d2c565b9150612abf82612a80565b602082019050919050565b5f6020820190508181035f830152612ae181612aa8565b9050919050565b5f612af282611cc4565b9150612afd83611cc4565b9250828203905081811115612b1557612b1461207a565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b75602583611d2c565b9150612b8082612b1b565b604082019050919050565b5f6020820190508181035f830152612ba281612b69565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c03602383611d2c565b9150612c0e82612ba9565b604082019050919050565b5f6020820190508181035f830152612c3081612bf7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612c91602683611d2c565b9150612c9c82612c37565b604082019050919050565b5f6020820190508181035f830152612cbe81612c85565b905091905056fea2646970667358221220f9fdbd4f10085c750c1b649072e3f95b54145a763616057b8e9ad41e6212bb5764736f6c63430008170033

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

0000000000000000000000008f8c48a464796f57acd05ab156c264b2a4dc332d0000000000000000000000007d8a1a92dc850079f4b7c836265d4a9fb7be2ce800000000000000000000000007da437c4be732b5df4f58ff2f17715a038b86dc0000000000000000000000005c76b21b26c75748896346d09276036c767be1a8000000000000000000000000d30b7db495a437b7fdd273d8b7f34dbad4989df4

-----Decoded View---------------
Arg [0] : _taxAddress (address): 0x8F8C48a464796F57ACD05Ab156C264B2A4Dc332d
Arg [1] : _marketingAddress (address): 0x7D8A1A92Dc850079f4B7c836265D4A9fB7bE2cE8
Arg [2] : _strategicPool (address): 0x07da437c4be732B5Df4f58Ff2F17715A038B86dc
Arg [3] : _cexPool (address): 0x5C76b21b26C75748896346D09276036c767be1a8
Arg [4] : _ps (address): 0xD30b7Db495a437B7fdd273D8B7f34dBAd4989Df4

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000008f8c48a464796f57acd05ab156c264b2a4dc332d
Arg [1] : 0000000000000000000000007d8a1a92dc850079f4b7c836265d4a9fb7be2ce8
Arg [2] : 00000000000000000000000007da437c4be732b5df4f58ff2f17715a038b86dc
Arg [3] : 0000000000000000000000005c76b21b26c75748896346d09276036c767be1a8
Arg [4] : 000000000000000000000000d30b7db495a437b7fdd273d8b7f34dbad4989df4


Deployed Bytecode Sourcemap

977:6866:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3532:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2137:98:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1343:26:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4423:197:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3427:99:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3234:106:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7304:196:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5182:256:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3083:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5833:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1132:28:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3762:156;;;;;;;;;;;;;:::i;:::-;;6838:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7562:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3398:125:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1817:101:4;;;;;;;;;;;;;:::i;:::-;;1194:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2348:102:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6554:427;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3719:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3648:108:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6587:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4016:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1166:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6374:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3924:86;;;;;;;;;;;;;:::i;:::-;;1308:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:108;;;;;;;;;;;;;:::i;:::-;;7194:104;;;;;;;;;;;;;:::i;:::-;;7065:123;;;;;;;;;;;;;:::i;:::-;;3966:149:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3056:364:5;;;;;;;;;;;;;:::i;:::-;;2067:198:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3532:110:5;1087:13:4;:11;:13::i;:::-;3625:10:5::1;:8;:10::i;:::-;3621:2;:14;;;;:::i;:::-;3610:8;:25;;;;:::i;:::-;3600:7;:35;;;;3532:110:::0;:::o;2137:98:1:-;2191:13;2223:5;2216:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2137:98;:::o;1343:26:5:-;;;;:::o;4423:197:1:-;4506:4;4522:13;4538:12;:10;:12::i;:::-;4522:28;;4560:32;4569:5;4576:7;4585:6;4560:8;:32::i;:::-;4609:4;4602:11;;;4423:197;;;;:::o;3427:99:5:-;3470:7;3509:10;:8;:10::i;:::-;3505:2;:14;;;;:::i;:::-;3495:7;;:24;;;;:::i;:::-;3488:31;;3427:99;:::o;3234:106:1:-;3295:7;3321:12;;3314:19;;3234:106;:::o;7304:196:5:-;1087:13:4;:11;:13::i;:::-;7377:14:5::1;7394:68;7398:24;7416:4;7398:9;:24::i;:::-;7447:13;7441:3;7425:13;:11;:13::i;:::-;:19;;;;:::i;:::-;:35;;;;:::i;:::-;7394:3;:68::i;:::-;7377:85;;7472:21;7486:6;7472:13;:21::i;:::-;7367:133;7304:196:::0;:::o;5182:256:1:-;5279:4;5295:15;5313:12;:10;:12::i;:::-;5295:30;;5335:38;5351:4;5357:7;5366:6;5335:15;:38::i;:::-;5383:27;5393:4;5399:2;5403:6;5383:9;:27::i;:::-;5427:4;5420:11;;;5182:256;;;;;:::o;3083:91::-;3141:5;3165:2;3158:9;;3083:91;:::o;5833:234::-;5921:4;5937:13;5953:12;:10;:12::i;:::-;5937:28;;5975:64;5984:5;5991:7;6028:10;6000:25;6010:5;6017:7;6000:9;:25::i;:::-;:38;;;;:::i;:::-;5975:8;:64::i;:::-;6056:4;6049:11;;;5833:234;;;;:::o;1132:28:5:-;;;;;;;;;;;;;:::o;3762:156::-;1087:13:4;:11;:13::i;:::-;3822:6:5::1;;;;;;;;;;;3818:94;;;3852:5;3843:6;;:14;;;;;;;;;;;;;;;;;;3818:94;;;3897:4;3888:6;;:13;;;;;;;;;;;;;;;;;;3818:94;3762:156::o:0;6838:221::-;1087:13:4;:11;:13::i;:::-;6943:2:5::1;6931:9;:14;:33;;;;;6962:2;6949:10;:15;6931:33;6923:42;;;::::0;::::1;;7014:10;7004:7;:20;;;;7043:9;7034:6;:18;;;;6838:221:::0;;:::o;7562:244::-;1087:13:4;:11;:13::i;:::-;7628:14:5::1;7645:62;7649:24;7667:4;7649:9;:24::i;:::-;7698:7;7692:3;7676:13;:11;:13::i;:::-;:19;;;;:::i;:::-;:29;;;;:::i;:::-;7645:3;:62::i;:::-;7628:79;;7732:4;7717:30;;;7748:42;7792:6;7717:82;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7618:188;7562:244:::0;:::o;3398:125:1:-;3472:7;3498:9;:18;3508:7;3498:18;;;;;;;;;;;;;;;;3491:25;;3398:125;;;:::o;1817:101:4:-;1087:13;:11;:13::i;:::-;1881:30:::1;1908:1;1881:18;:30::i;:::-;1817:101::o:0;1194:85::-;1240:7;1266:6;;;;;;;;;;;1259:13;;1194:85;:::o;2348:102:1:-;2404:13;2436:7;2429:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2348:102;:::o;6554:427::-;6647:4;6663:13;6679:12;:10;:12::i;:::-;6663:28;;6701:24;6728:25;6738:5;6745:7;6728:9;:25::i;:::-;6701:52;;6791:15;6771:16;:35;;6763:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6882:60;6891:5;6898:7;6926:15;6907:16;:34;6882:8;:60::i;:::-;6970:4;6963:11;;;;6554:427;;;;:::o;3719:189::-;3798:4;3814:13;3830:12;:10;:12::i;:::-;3814:28;;3852;3862:5;3869:2;3873:6;3852:9;:28::i;:::-;3897:4;3890:11;;;3719:189;;;;:::o;3648:108:5:-;1087:13:4;:11;:13::i;:::-;3739:10:5::1;:8;:10::i;:::-;3735:2;:14;;;;:::i;:::-;3724:8;:25;;;;:::i;:::-;3714:7;:35;;;;3648:108:::0;:::o;6587:123::-;1087:13:4;:11;:13::i;:::-;6696:7:5::1;6675:8;:18;6684:8;6675:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6587:123:::0;;:::o;4016:99::-;4059:7;4098:10;:8;:10::i;:::-;4094:2;:14;;;;:::i;:::-;4084:7;;:24;;;;:::i;:::-;4077:31;;4016:99;:::o;1166:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;6374:207::-;1087:13:4;:11;:13::i;:::-;6489:3:5::1;6475:13;:11;:13::i;:::-;:17;;;;:::i;:::-;6461:10;:8;:10::i;:::-;6457:2;:14;;;;:::i;:::-;6447:8;:24;;;;:::i;:::-;:45;;6439:54;;;::::0;::::1;;6564:10;:8;:10::i;:::-;6560:2;:14;;;;:::i;:::-;6549:8;:25;;;;:::i;:::-;6533:14;:41;;;;6374:207:::0;:::o;3924:86::-;1087:13:4;:11;:13::i;:::-;3998:5:5::1;3983:12;;:20;;;;;;;;;;;;;;;;;;3924:86::o:0;1308:29::-;;;;:::o;6720:108::-;1087:13:4;:11;:13::i;:::-;6781:4:5::1;6772:6;;:13;;;;;;;;;;;;;;;;;;6809:12;6795:11;:26;;;;6720:108::o:0;7194:104::-;7242:16;7234:34;;:57;7269:21;7234:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7194:104::o;7065:123::-;1087:13:4;:11;:13::i;:::-;7136:5:5::1;7121:12;;:20;;;;;;;;;;;;;;;;;;7168:13;:11;:13::i;:::-;7151:14;:30;;;;7065:123::o:0;3966:149:1:-;4055:7;4081:11;:18;4093:5;4081:18;;;;;;;;;;;;;;;:27;4100:7;4081:27;;;;;;;;;;;;;;;;4074:34;;3966:149;;;;:::o;3056:364:5:-;1087:13:4;:11;:13::i;:::-;3112:75:5::1;3129:4;3144:15;;;;;;;;;;;3162:24;3180:4;3162:9;:24::i;:::-;3112:8;:75::i;:::-;3197:15;;;;;;;;;;;:31;;;3236:21;3280:4;3299:24;3317:4;3299:9;:24::i;:::-;3337:1;3352::::0;3367:7:::1;:5;:7::i;:::-;3388:15;3197:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3056:364::o:0;2067:198:4:-;1087:13;:11;:13::i;:::-;2175:1:::1;2155:22;;:8;:22;;::::0;2147:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2230:28;2249:8;2230:18;:28::i;:::-;2067:198:::0;:::o;1352:130::-;1426:12;:10;:12::i;:::-;1415:23;;:7;:5;:7::i;:::-;:23;;;1407:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1352:130::o;640:96:0:-;693:7;719:10;712:17;;640:96;:::o;10436:340:1:-;10554:1;10537:19;;:5;:19;;;10529:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10634:1;10615:21;;:7;:21;;;10607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10716:6;10686:11;:18;10698:5;10686:18;;;;;;;;;;;;;;;:27;10705:7;10686:27;;;;;;;;;;;;;;;:36;;;;10753:7;10737:32;;10746:5;10737:32;;;10762:6;10737:32;;;;;;:::i;:::-;;;;;;;;10436:340;;;:::o;6272:96:5:-;6329:7;6355:1;6353;:3;6352:9;;6360:1;6352:9;;;6358:1;6352:9;6345:16;;6272:96;;;;:::o;4121:475::-;1702:4;1693:6;;:13;;;;;;;;;;;;;;;;;;4196:62:::1;4213:4;4228:15;;;;;;;;;;;4246:11;4196:8;:62::i;:::-;4277:21;4315:1;4301:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4277:40;;4345:4;4327;4332:1;4327:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;4370:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4360:4;4365:1;4360:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;4402:15;;;;;;;;;;;:66;;;4482:11;4507:1;4522:4;4540:10;4564:15;4402:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4186:410;1736:5:::0;1727:6;;:14;;;;;;;;;;;;;;;;;;4121:475;:::o;11057:411:1:-;11157:24;11184:25;11194:5;11201:7;11184:9;:25::i;:::-;11157:52;;11243:17;11223:16;:37;11219:243;;11304:6;11284:16;:26;;11276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11386:51;11395:5;11402:7;11430:6;11411:16;:25;11386:8;:51::i;:::-;11219:243;11147:321;11057:411;;;:::o;4602:1664:5:-;4703:8;:14;4712:4;4703:14;;;;;;;;;;;;;;;;;;;;;;;;;4702:15;:32;;;;;4722:8;:12;4731:2;4722:12;;;;;;;;;;;;;;;;;;;;;;;;;4721:13;4702:32;4698:1520;;;4758:6;;;;;;;;;;;4750:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;4795:11;4841:12;;;;;;;;;;;:41;;;;;4870:12;4857:11;;:25;;4841:41;4837:221;;;4918:11;;4909:5;:20;;4901:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;4837:221;;;5007:14;;4998:5;:23;;4990:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;4837:221;5082:13;;;;;;;;;;;5076:19;;:2;:19;;;5072:841;;5121:7;;5115:13;;5146:18;5167:24;5185:4;5167:9;:24::i;:::-;5146:45;;5226:7;;5213:10;:20;:31;;;;;5238:6;;;;;;;;;;;5237:7;5213:31;5209:403;;;5287:13;;5272:12;:28;5268:96;;;5340:1;5328:9;:13;;;;5268:96;5401:1;5389:9;;:13;5385:209;;;5429:9;;:11;;;;;;;;;:::i;:::-;;;;;;5482:12;5466:13;:28;;;;5520:51;5534:36;5538:7;;5547:22;5551:5;5558:10;5547:3;:22::i;:::-;5534:3;:36::i;:::-;5520:13;:51::i;:::-;5385:209;5209:403;5097:529;5072:841;;;5644:13;;;;;;;;;;;5636:21;;:4;:21;;;5632:281;;5682:6;;5676:12;;5725:11;;5709:12;:27;5706:193;;5759:9;;:11;;;;;;;;;:::i;:::-;;;;;;5798:1;5792:7;;5842:2;5829:9;;:15;;5821:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5706:193;5632:281;5072:841;5927:17;5961:3;5955;5947:5;:11;;;;:::i;:::-;:17;;;;:::i;:::-;5927:37;;5978:22;6011:9;6003:5;:17;;;;:::i;:::-;5978:42;;6051:1;6039:9;:13;6035:98;;;6071:47;6087:4;6101;6108:9;6071:15;:47::i;:::-;6035:98;6146:41;6162:4;6168:2;6172:14;6146:15;:41::i;:::-;6201:7;;;;;4698:1520;6227:32;6243:4;6249:2;6253:5;6227:15;:32::i;:::-;4602:1664;;;;:::o;2419:187:4:-;2492:16;2511:6;;;;;;;;;;;2492:25;;2536:8;2527:6;;:17;;;;;;;;;;;;;;;;;;2590:8;2559:40;;2580:8;2559:40;;;;;;;;;;;;2482:124;2419:187;:::o;7435:788:1:-;7547:1;7531:18;;:4;:18;;;7523:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7623:1;7609:16;;:2;:16;;;7601:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7676:38;7697:4;7703:2;7707:6;7676:20;:38::i;:::-;7725:19;7747:9;:15;7757:4;7747:15;;;;;;;;;;;;;;;;7725:37;;7795:6;7780:11;:21;;7772:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7910:6;7896:11;:20;7878:9;:15;7888:4;7878:15;;;;;;;;;;;;;;;:38;;;;8110:6;8093:9;:13;8103:2;8093:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8157:2;8142:26;;8151:4;8142:26;;;8161:6;8142:26;;;;;;:::i;:::-;;;;;;;;8179:37;8199:4;8205:2;8209:6;8179:19;:37::i;:::-;7513:710;7435:788;;;:::o;12052:91::-;;;;:::o;12731:90::-;;;;:::o;88:117:6:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:118::-;2454:24;2472:5;2454:24;:::i;:::-;2449:3;2442:37;2367:118;;:::o;2491:222::-;2584:4;2622:2;2611:9;2607:18;2599:26;;2635:71;2703:1;2692:9;2688:17;2679:6;2635:71;:::i;:::-;2491:222;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:116::-;6425:21;6440:5;6425:21;:::i;:::-;6418:5;6415:32;6405:60;;6461:1;6458;6451:12;6405:60;6355:116;:::o;6477:133::-;6520:5;6558:6;6545:20;6536:29;;6574:30;6598:5;6574:30;:::i;:::-;6477:133;;;;:::o;6616:468::-;6681:6;6689;6738:2;6726:9;6717:7;6713:23;6709:32;6706:119;;;6744:79;;:::i;:::-;6706:119;6864:1;6889:53;6934:7;6925:6;6914:9;6910:22;6889:53;:::i;:::-;6879:63;;6835:117;6991:2;7017:50;7059:7;7050:6;7039:9;7035:22;7017:50;:::i;:::-;7007:60;;6962:115;6616:468;;;;;:::o;7090:474::-;7158:6;7166;7215:2;7203:9;7194:7;7190:23;7186:32;7183:119;;;7221:79;;:::i;:::-;7183:119;7341:1;7366:53;7411:7;7402:6;7391:9;7387:22;7366:53;:::i;:::-;7356:63;;7312:117;7468:2;7494:53;7539:7;7530:6;7519:9;7515:22;7494:53;:::i;:::-;7484:63;;7439:118;7090:474;;;;;:::o;7570:180::-;7618:77;7615:1;7608:88;7715:4;7712:1;7705:15;7739:4;7736:1;7729:15;7756:102;7798:8;7845:5;7842:1;7838:13;7817:34;;7756:102;;;:::o;7864:848::-;7925:5;7932:4;7956:6;7947:15;;7980:5;7971:14;;7994:712;8015:1;8005:8;8002:15;7994:712;;;8110:4;8105:3;8101:14;8095:4;8092:24;8089:50;;;8119:18;;:::i;:::-;8089:50;8169:1;8159:8;8155:16;8152:451;;;8584:4;8577:5;8573:16;8564:25;;8152:451;8634:4;8628;8624:15;8616:23;;8664:32;8687:8;8664:32;:::i;:::-;8652:44;;7994:712;;;7864:848;;;;;;;:::o;8718:1073::-;8772:5;8963:8;8953:40;;8984:1;8975:10;;8986:5;;8953:40;9012:4;9002:36;;9029:1;9020:10;;9031:5;;9002:36;9098:4;9146:1;9141:27;;;;9182:1;9177:191;;;;9091:277;;9141:27;9159:1;9150:10;;9161:5;;;9177:191;9222:3;9212:8;9209:17;9206:43;;;9229:18;;:::i;:::-;9206:43;9278:8;9275:1;9271:16;9262:25;;9313:3;9306:5;9303:14;9300:40;;;9320:18;;:::i;:::-;9300:40;9353:5;;;9091:277;;9477:2;9467:8;9464:16;9458:3;9452:4;9449:13;9445:36;9427:2;9417:8;9414:16;9409:2;9403:4;9400:12;9396:35;9380:111;9377:246;;;9533:8;9527:4;9523:19;9514:28;;9568:3;9561:5;9558:14;9555:40;;;9575:18;;:::i;:::-;9555:40;9608:5;;9377:246;9648:42;9686:3;9676:8;9670:4;9667:1;9648:42;:::i;:::-;9633:57;;;;9722:4;9717:3;9713:14;9706:5;9703:25;9700:51;;;9731:18;;:::i;:::-;9700:51;9780:4;9773:5;9769:16;9760:25;;8718:1073;;;;;;:::o;9797:281::-;9855:5;9879:23;9897:4;9879:23;:::i;:::-;9871:31;;9923:25;9939:8;9923:25;:::i;:::-;9911:37;;9967:104;10004:66;9994:8;9988:4;9967:104;:::i;:::-;9958:113;;9797:281;;;;:::o;10084:410::-;10124:7;10147:20;10165:1;10147:20;:::i;:::-;10142:25;;10181:20;10199:1;10181:20;:::i;:::-;10176:25;;10236:1;10233;10229:9;10258:30;10276:11;10258:30;:::i;:::-;10247:41;;10437:1;10428:7;10424:15;10421:1;10418:22;10398:1;10391:9;10371:83;10348:139;;10467:18;;:::i;:::-;10348:139;10132:362;10084:410;;;;:::o;10500:180::-;10548:77;10545:1;10538:88;10645:4;10642:1;10635:15;10669:4;10666:1;10659:15;10686:320;10730:6;10767:1;10761:4;10757:12;10747:22;;10814:1;10808:4;10804:12;10835:18;10825:81;;10891:4;10883:6;10879:17;10869:27;;10825:81;10953:2;10945:6;10942:14;10922:18;10919:38;10916:84;;10972:18;;:::i;:::-;10916:84;10737:269;10686:320;;;:::o;11012:180::-;11060:77;11057:1;11050:88;11157:4;11154:1;11147:15;11181:4;11178:1;11171:15;11198:185;11238:1;11255:20;11273:1;11255:20;:::i;:::-;11250:25;;11289:20;11307:1;11289:20;:::i;:::-;11284:25;;11328:1;11318:35;;11333:18;;:::i;:::-;11318:35;11375:1;11372;11368:9;11363:14;;11198:185;;;;:::o;11389:191::-;11429:3;11448:20;11466:1;11448:20;:::i;:::-;11443:25;;11482:20;11500:1;11482:20;:::i;:::-;11477:25;;11525:1;11522;11518:9;11511:16;;11546:3;11543:1;11540:10;11537:36;;;11553:18;;:::i;:::-;11537:36;11389:191;;;;:::o;11586:332::-;11707:4;11745:2;11734:9;11730:18;11722:26;;11758:71;11826:1;11815:9;11811:17;11802:6;11758:71;:::i;:::-;11839:72;11907:2;11896:9;11892:18;11883:6;11839:72;:::i;:::-;11586:332;;;;;:::o;11924:137::-;11978:5;12009:6;12003:13;11994:22;;12025:30;12049:5;12025:30;:::i;:::-;11924:137;;;;:::o;12067:345::-;12134:6;12183:2;12171:9;12162:7;12158:23;12154:32;12151:119;;;12189:79;;:::i;:::-;12151:119;12309:1;12334:61;12387:7;12378:6;12367:9;12363:22;12334:61;:::i;:::-;12324:71;;12280:125;12067:345;;;;:::o;12418:224::-;12558:34;12554:1;12546:6;12542:14;12535:58;12627:7;12622:2;12614:6;12610:15;12603:32;12418:224;:::o;12648:366::-;12790:3;12811:67;12875:2;12870:3;12811:67;:::i;:::-;12804:74;;12887:93;12976:3;12887:93;:::i;:::-;13005:2;13000:3;12996:12;12989:19;;12648:366;;;:::o;13020:419::-;13186:4;13224:2;13213:9;13209:18;13201:26;;13273:9;13267:4;13263:20;13259:1;13248:9;13244:17;13237:47;13301:131;13427:4;13301:131;:::i;:::-;13293:139;;13020:419;;;:::o;13445:85::-;13490:7;13519:5;13508:16;;13445:85;;;:::o;13536:60::-;13564:3;13585:5;13578:12;;13536:60;;;:::o;13602:158::-;13660:9;13693:61;13711:42;13720:32;13746:5;13720:32;:::i;:::-;13711:42;:::i;:::-;13693:61;:::i;:::-;13680:74;;13602:158;;;:::o;13766:147::-;13861:45;13900:5;13861:45;:::i;:::-;13856:3;13849:58;13766:147;;:::o;13919:807::-;14168:4;14206:3;14195:9;14191:19;14183:27;;14220:71;14288:1;14277:9;14273:17;14264:6;14220:71;:::i;:::-;14301:72;14369:2;14358:9;14354:18;14345:6;14301:72;:::i;:::-;14383:80;14459:2;14448:9;14444:18;14435:6;14383:80;:::i;:::-;14473;14549:2;14538:9;14534:18;14525:6;14473:80;:::i;:::-;14563:73;14631:3;14620:9;14616:19;14607:6;14563:73;:::i;:::-;14646;14714:3;14703:9;14699:19;14690:6;14646:73;:::i;:::-;13919:807;;;;;;;;;:::o;14732:143::-;14789:5;14820:6;14814:13;14805:22;;14836:33;14863:5;14836:33;:::i;:::-;14732:143;;;;:::o;14881:663::-;14969:6;14977;14985;15034:2;15022:9;15013:7;15009:23;15005:32;15002:119;;;15040:79;;:::i;:::-;15002:119;15160:1;15185:64;15241:7;15232:6;15221:9;15217:22;15185:64;:::i;:::-;15175:74;;15131:128;15298:2;15324:64;15380:7;15371:6;15360:9;15356:22;15324:64;:::i;:::-;15314:74;;15269:129;15437:2;15463:64;15519:7;15510:6;15499:9;15495:22;15463:64;:::i;:::-;15453:74;;15408:129;14881:663;;;;;:::o;15550:225::-;15690:34;15686:1;15678:6;15674:14;15667:58;15759:8;15754:2;15746:6;15742:15;15735:33;15550:225;:::o;15781:366::-;15923:3;15944:67;16008:2;16003:3;15944:67;:::i;:::-;15937:74;;16020:93;16109:3;16020:93;:::i;:::-;16138:2;16133:3;16129:12;16122:19;;15781:366;;;:::o;16153:419::-;16319:4;16357:2;16346:9;16342:18;16334:26;;16406:9;16400:4;16396:20;16392:1;16381:9;16377:17;16370:47;16434:131;16560:4;16434:131;:::i;:::-;16426:139;;16153:419;;;:::o;16578:182::-;16718:34;16714:1;16706:6;16702:14;16695:58;16578:182;:::o;16766:366::-;16908:3;16929:67;16993:2;16988:3;16929:67;:::i;:::-;16922:74;;17005:93;17094:3;17005:93;:::i;:::-;17123:2;17118:3;17114:12;17107:19;;16766:366;;;:::o;17138:419::-;17304:4;17342:2;17331:9;17327:18;17319:26;;17391:9;17385:4;17381:20;17377:1;17366:9;17362:17;17355:47;17419:131;17545:4;17419:131;:::i;:::-;17411:139;;17138:419;;;:::o;17563:223::-;17703:34;17699:1;17691:6;17687:14;17680:58;17772:6;17767:2;17759:6;17755:15;17748:31;17563:223;:::o;17792:366::-;17934:3;17955:67;18019:2;18014:3;17955:67;:::i;:::-;17948:74;;18031:93;18120:3;18031:93;:::i;:::-;18149:2;18144:3;18140:12;18133:19;;17792:366;;;:::o;18164:419::-;18330:4;18368:2;18357:9;18353:18;18345:26;;18417:9;18411:4;18407:20;18403:1;18392:9;18388:17;18381:47;18445:131;18571:4;18445:131;:::i;:::-;18437:139;;18164:419;;;:::o;18589:221::-;18729:34;18725:1;18717:6;18713:14;18706:58;18798:4;18793:2;18785:6;18781:15;18774:29;18589:221;:::o;18816:366::-;18958:3;18979:67;19043:2;19038:3;18979:67;:::i;:::-;18972:74;;19055:93;19144:3;19055:93;:::i;:::-;19173:2;19168:3;19164:12;19157:19;;18816:366;;;:::o;19188:419::-;19354:4;19392:2;19381:9;19377:18;19369:26;;19441:9;19435:4;19431:20;19427:1;19416:9;19412:17;19405:47;19469:131;19595:4;19469:131;:::i;:::-;19461:139;;19188:419;;;:::o;19613:180::-;19661:77;19658:1;19651:88;19758:4;19755:1;19748:15;19782:4;19779:1;19772:15;19799:180;19847:77;19844:1;19837:88;19944:4;19941:1;19934:15;19968:4;19965:1;19958:15;19985:143;20042:5;20073:6;20067:13;20058:22;;20089:33;20116:5;20089:33;:::i;:::-;19985:143;;;;:::o;20134:351::-;20204:6;20253:2;20241:9;20232:7;20228:23;20224:32;20221:119;;;20259:79;;:::i;:::-;20221:119;20379:1;20404:64;20460:7;20451:6;20440:9;20436:22;20404:64;:::i;:::-;20394:74;;20350:128;20134:351;;;;:::o;20491:114::-;20558:6;20592:5;20586:12;20576:22;;20491:114;;;:::o;20611:184::-;20710:11;20744:6;20739:3;20732:19;20784:4;20779:3;20775:14;20760:29;;20611:184;;;;:::o;20801:132::-;20868:4;20891:3;20883:11;;20921:4;20916:3;20912:14;20904:22;;20801:132;;;:::o;20939:108::-;21016:24;21034:5;21016:24;:::i;:::-;21011:3;21004:37;20939:108;;:::o;21053:179::-;21122:10;21143:46;21185:3;21177:6;21143:46;:::i;:::-;21221:4;21216:3;21212:14;21198:28;;21053:179;;;;:::o;21238:113::-;21308:4;21340;21335:3;21331:14;21323:22;;21238:113;;;:::o;21387:732::-;21506:3;21535:54;21583:5;21535:54;:::i;:::-;21605:86;21684:6;21679:3;21605:86;:::i;:::-;21598:93;;21715:56;21765:5;21715:56;:::i;:::-;21794:7;21825:1;21810:284;21835:6;21832:1;21829:13;21810:284;;;21911:6;21905:13;21938:63;21997:3;21982:13;21938:63;:::i;:::-;21931:70;;22024:60;22077:6;22024:60;:::i;:::-;22014:70;;21870:224;21857:1;21854;21850:9;21845:14;;21810:284;;;21814:14;22110:3;22103:10;;21511:608;;;21387:732;;;;:::o;22125:831::-;22388:4;22426:3;22415:9;22411:19;22403:27;;22440:71;22508:1;22497:9;22493:17;22484:6;22440:71;:::i;:::-;22521:80;22597:2;22586:9;22582:18;22573:6;22521:80;:::i;:::-;22648:9;22642:4;22638:20;22633:2;22622:9;22618:18;22611:48;22676:108;22779:4;22770:6;22676:108;:::i;:::-;22668:116;;22794:72;22862:2;22851:9;22847:18;22838:6;22794:72;:::i;:::-;22876:73;22944:3;22933:9;22929:19;22920:6;22876:73;:::i;:::-;22125:831;;;;;;;;:::o;22962:179::-;23102:31;23098:1;23090:6;23086:14;23079:55;22962:179;:::o;23147:366::-;23289:3;23310:67;23374:2;23369:3;23310:67;:::i;:::-;23303:74;;23386:93;23475:3;23386:93;:::i;:::-;23504:2;23499:3;23495:12;23488:19;;23147:366;;;:::o;23519:419::-;23685:4;23723:2;23712:9;23708:18;23700:26;;23772:9;23766:4;23762:20;23758:1;23747:9;23743:17;23736:47;23800:131;23926:4;23800:131;:::i;:::-;23792:139;;23519:419;;;:::o;23944:162::-;24084:14;24080:1;24072:6;24068:14;24061:38;23944:162;:::o;24112:366::-;24254:3;24275:67;24339:2;24334:3;24275:67;:::i;:::-;24268:74;;24351:93;24440:3;24351:93;:::i;:::-;24469:2;24464:3;24460:12;24453:19;;24112:366;;;:::o;24484:419::-;24650:4;24688:2;24677:9;24673:18;24665:26;;24737:9;24731:4;24727:20;24723:1;24712:9;24708:17;24701:47;24765:131;24891:4;24765:131;:::i;:::-;24757:139;;24484:419;;;:::o;24909:167::-;25049:19;25045:1;25037:6;25033:14;25026:43;24909:167;:::o;25082:366::-;25224:3;25245:67;25309:2;25304:3;25245:67;:::i;:::-;25238:74;;25321:93;25410:3;25321:93;:::i;:::-;25439:2;25434:3;25430:12;25423:19;;25082:366;;;:::o;25454:419::-;25620:4;25658:2;25647:9;25643:18;25635:26;;25707:9;25701:4;25697:20;25693:1;25682:9;25678:17;25671:47;25735:131;25861:4;25735:131;:::i;:::-;25727:139;;25454:419;;;:::o;25879:233::-;25918:3;25941:24;25959:5;25941:24;:::i;:::-;25932:33;;25987:66;25980:5;25977:77;25974:103;;26057:18;;:::i;:::-;25974:103;26104:1;26097:5;26093:13;26086:20;;25879:233;;;:::o;26118:182::-;26258:34;26254:1;26246:6;26242:14;26235:58;26118:182;:::o;26306:366::-;26448:3;26469:67;26533:2;26528:3;26469:67;:::i;:::-;26462:74;;26545:93;26634:3;26545:93;:::i;:::-;26663:2;26658:3;26654:12;26647:19;;26306:366;;;:::o;26678:419::-;26844:4;26882:2;26871:9;26867:18;26859:26;;26931:9;26925:4;26921:20;26917:1;26906:9;26902:17;26895:47;26959:131;27085:4;26959:131;:::i;:::-;26951:139;;26678:419;;;:::o;27103:194::-;27143:4;27163:20;27181:1;27163:20;:::i;:::-;27158:25;;27197:20;27215:1;27197:20;:::i;:::-;27192:25;;27241:1;27238;27234:9;27226:17;;27265:1;27259:4;27256:11;27253:37;;;27270:18;;:::i;:::-;27253:37;27103:194;;;;:::o;27303:224::-;27443:34;27439:1;27431:6;27427:14;27420:58;27512:7;27507:2;27499:6;27495:15;27488:32;27303:224;:::o;27533:366::-;27675:3;27696:67;27760:2;27755:3;27696:67;:::i;:::-;27689:74;;27772:93;27861:3;27772:93;:::i;:::-;27890:2;27885:3;27881:12;27874:19;;27533:366;;;:::o;27905:419::-;28071:4;28109:2;28098:9;28094:18;28086:26;;28158:9;28152:4;28148:20;28144:1;28133:9;28129:17;28122:47;28186:131;28312:4;28186:131;:::i;:::-;28178:139;;27905:419;;;:::o;28330:222::-;28470:34;28466:1;28458:6;28454:14;28447:58;28539:5;28534:2;28526:6;28522:15;28515:30;28330:222;:::o;28558:366::-;28700:3;28721:67;28785:2;28780:3;28721:67;:::i;:::-;28714:74;;28797:93;28886:3;28797:93;:::i;:::-;28915:2;28910:3;28906:12;28899:19;;28558:366;;;:::o;28930:419::-;29096:4;29134:2;29123:9;29119:18;29111:26;;29183:9;29177:4;29173:20;29169:1;29158:9;29154:17;29147:47;29211:131;29337:4;29211:131;:::i;:::-;29203:139;;28930:419;;;:::o;29355:225::-;29495:34;29491:1;29483:6;29479:14;29472:58;29564:8;29559:2;29551:6;29547:15;29540:33;29355:225;:::o;29586:366::-;29728:3;29749:67;29813:2;29808:3;29749:67;:::i;:::-;29742:74;;29825:93;29914:3;29825:93;:::i;:::-;29943:2;29938:3;29934:12;29927:19;;29586:366;;;:::o;29958:419::-;30124:4;30162:2;30151:9;30147:18;30139:26;;30211:9;30205:4;30201:20;30197:1;30186:9;30182:17;30175:47;30239:131;30365:4;30239:131;:::i;:::-;30231:139;;29958:419;;;:::o

Swarm Source

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