ETH Price: $3,285.80 (-0.42%)

Token

Dogelena (ELENA)
 

Overview

Max Total Supply

1,000,000,000,000,000 ELENA

Holders

193

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Dogelon: Deployer
Balance
21,802,390,833,427.674052232094631638 ELENA

Value
$0.00
0xaa9186b9953ba0153f276bf87381f2f6ca0423f4
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:
Dogelena2

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-27
*/

/*

██████╗  ██████╗  ██████╗ ███████╗██╗     ███████╗███╗   ██╗ █████╗ ███╗   ███╗ █████╗ ██████╗ ███████╗
██╔══██╗██╔═══██╗██╔════╝ ██╔════╝██║     ██╔════╝████╗  ██║██╔══██╗████╗ ████║██╔══██╗██╔══██╗██╔════╝
██║  ██║██║   ██║██║  ███╗█████╗  ██║     █████╗  ██╔██╗ ██║███████║██╔████╔██║███████║██████╔╝███████╗
██║  ██║██║   ██║██║   ██║██╔══╝  ██║     ██╔══╝  ██║╚██╗██║██╔══██║██║╚██╔╝██║██╔══██║██╔══██╗╚════██║
██████╔╝╚██████╔╝╚██████╔╝███████╗███████╗███████╗██║ ╚████║██║  ██║██║ ╚═╝ ██║██║  ██║██║  ██║███████║
╚═════╝  ╚═════╝  ╚═════╝ ╚══════╝╚══════╝╚══════╝╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝     ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝
  
Website:
https://www.dogelenamars.com

*/

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

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

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

    /**
   
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
    
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**

     */
    function approve(address spender, uint256 amount) external returns (bool);

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

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

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

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

/*

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

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

/**
 * @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}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

    /**
    
     */
    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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
    
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

    /**

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

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

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

    /**
 
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

/**

 */
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() {
    }

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

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

    /**

     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(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");
        _setOwner(newOwner);
    }

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

/**

 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
   
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**

     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

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

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

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

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

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

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

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

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

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

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

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

contract Dogelena2 is ERC20, Ownable, Pausable {

    uint256 private initialSupply;
    uint256 private denominator = 100;
    uint256 private swapThreshold = 0.000005 ether;
    uint256 private devTaxBuy;
    uint256 private liquidityTaxBuy;
    uint256 private devTaxSell;
    uint256 private liquidityTaxSell;
    uint256 public maxWallet;
    address private devTaxWallet;
    address private liquidityTaxWallet;

    bool private tradingOpen;
    //Anti snipe feature
    uint256 private deadBlockNumber;
    uint256 private launchedBlockNumber;
    
    // Mappings
    mapping (address => bool) private blacklist;
    mapping (address => bool) private excludeList;
    
    mapping (string => uint256) private buyTaxes;
    mapping (string => uint256) private sellTaxes;
    mapping (string => address) private taxWallets;
    mapping (address => bool) public preTrader;

    bool public taxStatus = true;
    
    IUniswapV2Router02 private uniswapV2Router02;
    IUniswapV2Factory private uniswapV2Factory;
    IUniswapV2Pair public uniswapV2Pair;
    
    constructor(string memory _tokenName,string memory _tokenSymbol,uint256 _supply) ERC20(_tokenName, _tokenSymbol) payable
    {
        initialSupply =_supply * (10**18);
        maxWallet = initialSupply * 2 / 100; 
        _setOwner(msg.sender);
        uniswapV2Router02 = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Factory = IUniswapV2Factory(uniswapV2Router02.factory());
        uniswapV2Pair = IUniswapV2Pair(uniswapV2Factory.createPair(address(this), uniswapV2Router02.WETH()));
        taxWallets["liquidity"] = address(0);
        setBuyTax(15,5); 
        setSellTax(1,98); 
        setTaxWallets(0x1a58e7F25dA15F91559811cf9b43F86EbcCc311A);
        exclude(msg.sender);
        exclude(address(this));
        exclude(devTaxWallet);
        _mint(msg.sender, initialSupply);
    }
    
    uint256 private devTokens;
    uint256 private liquidityTokens;
    
    /**
     * @dev Calculates the tax, transfer it to the contract. If the user is selling, and the swap threshold is met, it executes the tax.
     */
    function handleTax(address from, address to, uint256 amount) private returns (uint256) {
        address[] memory sellPath = new address[](2);
        sellPath[0] = address(this);
        sellPath[1] = uniswapV2Router02.WETH();
        
        if(!isExcluded(from) && !isExcluded(to)) {
            uint256 tax;
            uint256 baseUnit = amount / denominator;
            if(from == address(uniswapV2Pair)) { //BUY

                //Anti Snipe - Penalize 99% tax to snipers purchasing in launch block
                if(tradingOpen && block.number <= deadBlockNumber) {
                    tax += baseUnit * 99;
                    devTokens += baseUnit * 99;
                } else {
                    tax += baseUnit * buyTaxes["dev"];
                    tax += baseUnit * buyTaxes["liquidity"];
                    devTokens += baseUnit * buyTaxes["dev"];
                    liquidityTokens += baseUnit * buyTaxes["liquidity"];
                }
                
                if(tax > 0) {
                    _transfer(from, address(this), tax);   
                }

            } else if(to == address(uniswapV2Pair)) { //SELL
                
                tax += baseUnit * sellTaxes["dev"];
                tax += baseUnit * sellTaxes["liquidity"];
                
                if(tax > 0) {
                    _transfer(from, address(this), tax);   
                }
               
                devTokens += baseUnit * sellTaxes["dev"];
                liquidityTokens += baseUnit * sellTaxes["liquidity"];
                
                uint256 taxSum =  devTokens + liquidityTokens;
                
                if(taxSum == 0) return amount;
                
                uint256 ethValue = uniswapV2Router02.getAmountsOut( devTokens + liquidityTokens, sellPath)[1];
                
                if(ethValue >= swapThreshold) {
                    uint256 startBalance = address(this).balance;

                    uint256 toSell = devTokens + liquidityTokens / 2 ;
                    
                    _approve(address(this), address(uniswapV2Router02), toSell);
            
                    uniswapV2Router02.swapExactTokensForETH(
                        toSell,
                        0,
                        sellPath,
                        address(this),
                        block.timestamp
                    );
                    
                    uint256 ethGained = address(this).balance - startBalance;
                    
                    uint256 liquidityToken = liquidityTokens / 2;
                    uint256 liquidityETH = (ethGained * ((liquidityTokens / 2 * 10**18) / taxSum)) / 10**18;
                    
                    uint256 devETH = (ethGained * ((devTokens * 10**18) / taxSum)) / 10**18;
                    
                    _approve(address(this), address(uniswapV2Router02), liquidityToken);
                    
                    uniswapV2Router02.addLiquidityETH{value: liquidityETH}(
                        address(this),
                        liquidityToken,
                        0,
                        0,
                        taxWallets["liquidity"],
                        block.timestamp
                    );
                    
                    uint256 remainingTokens = (devTokens + liquidityTokens) - (toSell + liquidityToken);
                    
                    if(remainingTokens > 0) {
                        _transfer(address(this), taxWallets["dev"], remainingTokens);
                    }
                    
                   (bool success,) = taxWallets["dev"].call{value: devETH}("");
                   require(success, "transfer to  dev wallet failed");
                    
                    if(ethGained - ( devETH + liquidityETH) > 0) {
                       (bool success1,) = taxWallets["dev"].call{value: ethGained - (devETH + liquidityETH)}("");
                        require(success1, "transfer to  dev wallet failed");
                    }
                    
                    devTokens = 0;
                    liquidityTokens = 0;
                    
                }
                
            }
            
            amount -= tax;
            if (to != address(uniswapV2Pair)){
                require(balanceOf(to) + amount <= maxWallet, "maxWallet limit exceeded");
            }

            //Trade start check
            if(!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
           
        }
        
        return amount;
    }
    
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override virtual {
        require(!paused(), "ERC20: token transfer while paused");
        require(!isBlacklisted(msg.sender), "ERC20: sender blacklisted");
        require(!isBlacklisted(recipient), "ERC20: recipient blacklisted");
        require(!isBlacklisted(tx.origin), "ERC20: sender blacklisted");
        
        if(taxStatus) {
            amount = handleTax(sender, recipient, amount);   
        }

        super._transfer(sender, recipient, amount);
    }
    
    /**
     * @dev Triggers the tax handling functionality
     */
    function triggerTax() public onlyOwner {
        handleTax(address(0), address(uniswapV2Pair), 0);
    }
    
    /**
     * @dev Pauses transfers on the token.
     */
    function pause() public onlyOwner {
        require(!paused(), "ERC20: Contract is already paused");
        _pause();
    }

    /**
     * @dev Unpauses transfers on the token.
     */
    function unpause() public onlyOwner {
        require(paused(), "ERC20: Contract is not paused");
        _unpause();
    }

     /**
     * @dev set max wallet limit per address.
     */

    function setMaxWallet(uint256 amount) external onlyOwner {
        require (amount > 10000, "NO rug pull");
        maxWallet = amount * 10**18;
    }
    
    /**
     * @dev Burns tokens from caller address.
     */
    function burn(uint256 amount) public onlyOwner {
        _burn(msg.sender, amount);
    }
    
    /**
     * @dev Blacklists the specified account (Disables transfers to and from the account).
     */
    function enableBlacklist(address account) public onlyOwner {
        require(!blacklist[account], "ERC20: Account is already blacklisted");
        blacklist[account] = true;
    }
    
    /**
     * @dev Remove the specified account from the blacklist.
     */
    function disableBlacklist(address account) public onlyOwner {
        require(blacklist[account], "ERC20: Account is not blacklisted");
        blacklist[account] = false;
    }
    
    /**
     * @dev Excludes the specified account from tax.
     */
    function exclude(address account) public onlyOwner {
        require(!isExcluded(account), "ERC20: Account is already excluded");
        excludeList[account] = true;
    }
    
    /**
     * @dev Re-enables tax on the specified account.
     */
    function removeExclude(address account) public onlyOwner {
        require(isExcluded(account), "ERC20: Account is not excluded");
        excludeList[account] = false;
    }
    
    /**
     * @dev Sets tax for buys.
     */
    function setBuyTax(uint256 dev,uint256 liquidity) public onlyOwner {
        buyTaxes["dev"] = dev;
        buyTaxes["liquidity"] = liquidity;
       
    }
    
    /**
     * @dev Sets tax for sells.
     */
    function setSellTax(uint256 dev, uint256 liquidity) public onlyOwner {

        sellTaxes["dev"] = dev;
        sellTaxes["liquidity"] = liquidity;
        
    }
    
    /**
     * @dev Sets wallets for taxes.
     */
    function setTaxWallets(address dev) public onlyOwner {
        taxWallets["dev"] = dev;
    }

    function claimStuckTokens(address _token) external onlyOwner {
 
        if (_token == address(0x0)) {
            payable(owner()).transfer(address(this).balance);
            return;
        }
        IERC20 erc20token = IERC20(_token);
        uint256 balance = erc20token.balanceOf(address(this));
        erc20token.transfer(owner(), balance);
    }
    
    /**
     * @dev Enables tax globally.
     */
    function enableTax() public onlyOwner {
        require(!taxStatus, "ERC20: Tax is already enabled");
        taxStatus = true;
    }
    
    /**
     * @dev Disables tax globally.
     */
    function disableTax() public onlyOwner {
        require(taxStatus, "ERC20: Tax is already disabled");
        taxStatus = false;
    }
    
    /**
     * @dev Returns true if the account is blacklisted, and false otherwise.
     */
    function isBlacklisted(address account) public view returns (bool) {
        return blacklist[account];
    }
    
    /**
     * @dev Returns true if the account is excluded, and false otherwise.
     */
    function isExcluded(address account) public view returns (bool) {
        return excludeList[account];
    }

    function setTrading(bool _tradingOpen, uint _deadBlocks) public onlyOwner {
        tradingOpen = _tradingOpen;

        //Run only first time of project launch
        //Anti snipe feature
        if(launchedBlockNumber == 0) {
            launchedBlockNumber = block.number;
            deadBlockNumber = block.number + _deadBlocks;
        }
    }

    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }

    /// @notice Get the block. at which the project launched
    function getLaunchedBlockNumber() public view returns (uint256) {
        return launchedBlockNumber;
    }
    
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_tokenName","type":"string"},{"internalType":"string","name":"_tokenSymbol","type":"string"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","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":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimStuckTokens","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":[{"internalType":"address","name":"account","type":"address"}],"name":"disableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"enableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLaunchedBlockNumber","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":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dev","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"triggerTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040819052606460075565048c273950006008556018805460ff191660011790556200356a388190039081908339810160408190526200004191620008a1565b8251839083906200005a9060039060208501906200072e565b508051620000709060049060208401906200072e565b50506005805460ff60a01b19169055506200009481670de0b6b3a76400006200092a565b6006819055606490620000a99060026200092a565b620000b591906200094c565b600d55620000c3336200033e565b60188054747a250d5630b4cf539739df2c5dacb4c659f2488d00610100600160a81b031990911617908190556040805163c45a015560e01b815290516101009092046001600160a01b03169163c45a0155916004808201926020929091908290030181865afa1580156200013b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016191906200096f565b601980546001600160a01b0319166001600160a01b03928316908117909155601854604080516315ab88c960e31b81529051929363c9c6539693309361010090049091169163ad5c46489160048083019260209291908290030181865afa158015620001d1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f791906200096f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b91906200096f565b601a80546001600160a01b03929092166001600160a01b031992831617905560408051686c697175696469747960b81b815260166009820152905160299181900391909101902080549091169055620002c7600f600562000390565b620002d56001606262000438565b620002f4731a58e7f25da15f91559811cf9b43f86ebccc311a620004cd565b620002ff3362000564565b6200030a3062000564565b600e5462000321906001600160a01b031662000564565b62000335336006546200064960201b60201c565b505050620009f8565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620003df5760405162461bcd60e51b815260206004820181905260248201526000805160206200354a83398151915260448201526064015b60405180910390fd5b816014604051620003f990623232bb60e91b815260030190565b90815260405190819003602001812091909155686c697175696469747960b81b815281906014906009015b908152604051908190036020019020555050565b6005546001600160a01b03163314620004835760405162461bcd60e51b815260206004820181905260248201526000805160206200354a8339815191526044820152606401620003d6565b8160156040516200049d90623232bb60e91b815260030190565b90815260405190819003602001812091909155686c697175696469747960b81b8152819060159060090162000424565b6005546001600160a01b03163314620005185760405162461bcd60e51b815260206004820181905260248201526000805160206200354a8339815191526044820152606401620003d6565b8060166040516200053290623232bb60e91b815260030190565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b031990921691909117905550565b6005546001600160a01b03163314620005af5760405162461bcd60e51b815260206004820181905260248201526000805160206200354a8339815191526044820152606401620003d6565b6001600160a01b03811660009081526013602052604090205460ff1615620006255760405162461bcd60e51b815260206004820152602260248201527f45524332303a204163636f756e7420697320616c7265616479206578636c7564604482015261195960f21b6064820152608401620003d6565b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6001600160a01b038216620006a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620003d6565b8060026000828254620006b59190620009a1565b90915550506001600160a01b03821660009081526020819052604081208054839290620006e4908490620009a1565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200073c90620009bc565b90600052602060002090601f016020900481019282620007605760008555620007ab565b82601f106200077b57805160ff1916838001178555620007ab565b82800160010185558215620007ab579182015b82811115620007ab5782518255916020019190600101906200078e565b50620007b9929150620007bd565b5090565b5b80821115620007b95760008155600101620007be565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620007fc57600080fd5b81516001600160401b0380821115620008195762000819620007d4565b604051601f8301601f19908116603f01168101908282118183101715620008445762000844620007d4565b816040528381526020925086838588010111156200086157600080fd5b600091505b8382101562000885578582018301518183018401529082019062000866565b83821115620008975760008385830101525b9695505050505050565b600080600060608486031215620008b757600080fd5b83516001600160401b0380821115620008cf57600080fd5b620008dd87838801620007ea565b94506020860151915080821115620008f457600080fd5b506200090386828701620007ea565b925050604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000947576200094762000914565b500290565b6000826200096a57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200098257600080fd5b81516001600160a01b03811681146200099a57600080fd5b9392505050565b60008219821115620009b757620009b762000914565b500190565b600181811c90821680620009d157607f821691505b602082108103620009f257634e487b7160e01b600052602260045260246000fd5b50919050565b612b428062000a086000396000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063cba0e996116100ab578063e2aa6cae1161006f578063e2aa6cae1461069b578063f2fde38b146106bb578063f8b45b05146106db578063f9d0831a146106f1578063fe575a871461071157600080fd5b8063cba0e996146105e0578063ced695a414610600578063cfefd79e14610615578063d01dc84b14610635578063dd62ed3e1461065557600080fd5b806395d89b41116100f257806395d89b411461053b578063a457c2d714610550578063a9059cbb14610570578063abe4f11d14610590578063bdd795ef146105b057600080fd5b806370a082311461049d578063715018a6146104d3578063717a8651146104e85780638456cb59146105085780638da5cb5b1461051d57600080fd5b80632f9c4569116101bc57806349bd5a5e1161018057806349bd5a5e146103f15780634febf53d1461042957806353eb3bcf146104495780635c975abb1461045e5780635d0044ca1461047d57600080fd5b80632f9c456914610360578063313ce56714610380578063395093511461039c5780633f4ba83a146103bc57806342966c68146103d157600080fd5b806318160ddd1161020357806318160ddd146102dc57806323a38a38146102f157806323b872dd1461030b578063247b912d1461032b5780632c32abc21461034b57600080fd5b806305a1f36d1461024057806306fdde0314610262578063095ea7b31461028d5780630dbd397c146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b366004612625565b61074a565b005b34801561026e57600080fd5b506102776107c1565b6040516102849190612647565b60405180910390f35b34801561029957600080fd5b506102ad6102a83660046126b1565b610853565b6040519015158152602001610284565b3480156102c957600080fd5b506011545b604051908152602001610284565b3480156102e857600080fd5b506002546102ce565b3480156102fd57600080fd5b506018546102ad9060ff1681565b34801561031757600080fd5b506102ad6103263660046126dd565b610869565b34801561033757600080fd5b50610260610346366004612625565b610915565b34801561035757600080fd5b5061026061096f565b34801561036c57600080fd5b5061026061037b36600461272c565b6109b5565b34801561038c57600080fd5b5060405160128152602001610284565b3480156103a857600080fd5b506102ad6103b73660046126b1565b610a7a565b3480156103c857600080fd5b50610260610ab6565b3480156103dd57600080fd5b506102606103ec366004612765565b610b43565b3480156103fd57600080fd5b50601a54610411906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b34801561043557600080fd5b5061026061044436600461277e565b610b77565b34801561045557600080fd5b50610260610c26565b34801561046a57600080fd5b50600554600160a01b900460ff166102ad565b34801561048957600080fd5b50610260610498366004612765565b610cb2565b3480156104a957600080fd5b506102ce6104b836600461277e565b6001600160a01b031660009081526020819052604090205490565b3480156104df57600080fd5b50610260610d33565b3480156104f457600080fd5b5061026061050336600461277e565b610d67565b34801561051457600080fd5b50610260610e2c565b34801561052957600080fd5b506005546001600160a01b0316610411565b34801561054757600080fd5b50610277610ec2565b34801561055c57600080fd5b506102ad61056b3660046126b1565b610ed1565b34801561057c57600080fd5b506102ad61058b3660046126b1565b610f6a565b34801561059c57600080fd5b506102606105ab36600461277e565b610f77565b3480156105bc57600080fd5b506102ad6105cb36600461277e565b60176020526000908152604090205460ff1681565b3480156105ec57600080fd5b506102ad6105fb36600461277e565b611017565b34801561060c57600080fd5b50610260611035565b34801561062157600080fd5b5061026061063036600461277e565b6110bd565b34801561064157600080fd5b5061026061065036600461277e565b61117a565b34801561066157600080fd5b506102ce61067036600461279b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106a757600080fd5b506102606106b63660046127c9565b6111e5565b3480156106c757600080fd5b506102606106d636600461277e565b611249565b3480156106e757600080fd5b506102ce600d5481565b3480156106fd57600080fd5b5061026061070c36600461277e565b6112e1565b34801561071d57600080fd5b506102ad61072c36600461277e565b6001600160a01b031660009081526012602052604090205460ff1690565b6005546001600160a01b0316331461077d5760405162461bcd60e51b8152600401610774906127e7565b60405180910390fd5b81601460405161078c9061281c565b9081526020016040518091039020819055508060146040516107ad9061282b565b908152604051908190036020019020555050565b6060600380546107d090612840565b80601f01602080910402602001604051908101604052809291908181526020018280546107fc90612840565b80156108495780601f1061081e57610100808354040283529160200191610849565b820191906000526020600020905b81548152906001019060200180831161082c57829003601f168201915b5050505050905090565b6000610860338484611459565b50600192915050565b600061087684848461157d565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108fb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610774565b6109088533858403611459565b60019150505b9392505050565b6005546001600160a01b0316331461093f5760405162461bcd60e51b8152600401610774906127e7565b81601560405161094e9061281c565b9081526020016040518091039020819055508060156040516107ad9061282b565b6005546001600160a01b031633146109995760405162461bcd60e51b8152600401610774906127e7565b601a546109b2906000906001600160a01b03168161172c565b50565b6005546001600160a01b031633146109df5760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b03821660009081526017602052604090205481151560ff909116151503610a4f5760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610774565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610860918590610ab1908690612890565b611459565b6005546001600160a01b03163314610ae05760405162461bcd60e51b8152600401610774906127e7565b600554600160a01b900460ff16610b395760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20436f6e7472616374206973206e6f74207061757365640000006044820152606401610774565b610b41612192565b565b6005546001600160a01b03163314610b6d5760405162461bcd60e51b8152600401610774906127e7565b6109b2338261222f565b6005546001600160a01b03163314610ba15760405162461bcd60e51b8152600401610774906127e7565b610baa81611017565b15610c025760405162461bcd60e51b815260206004820152602260248201527f45524332303a204163636f756e7420697320616c7265616479206578636c7564604482015261195960f21b6064820152608401610774565b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6005546001600160a01b03163314610c505760405162461bcd60e51b8152600401610774906127e7565b60185460ff1615610ca35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054617820697320616c726561647920656e61626c65640000006044820152606401610774565b6018805460ff19166001179055565b6005546001600160a01b03163314610cdc5760405162461bcd60e51b8152600401610774906127e7565b6127108111610d1b5760405162461bcd60e51b815260206004820152600b60248201526a1393c81c9d59c81c1d5b1b60aa1b6044820152606401610774565b610d2d81670de0b6b3a76400006128a8565b600d5550565b6005546001600160a01b03163314610d5d5760405162461bcd60e51b8152600401610774906127e7565b610b41600061237d565b6005546001600160a01b03163314610d915760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b03811660009081526012602052604090205460ff1615610e085760405162461bcd60e51b815260206004820152602560248201527f45524332303a204163636f756e7420697320616c726561647920626c61636b6c6044820152641a5cdd195960da1b6064820152608401610774565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6005546001600160a01b03163314610e565760405162461bcd60e51b8152600401610774906127e7565b600554600160a01b900460ff1615610eba5760405162461bcd60e51b815260206004820152602160248201527f45524332303a20436f6e747261637420697320616c72656164792070617573656044820152601960fa1b6064820152608401610774565b610b416123cf565b6060600480546107d090612840565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f535760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610774565b610f603385858403611459565b5060019392505050565b600061086033848461157d565b6005546001600160a01b03163314610fa15760405162461bcd60e51b8152600401610774906127e7565b610faa81611017565b610ff65760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204163636f756e74206973206e6f74206578636c7564656400006044820152606401610774565b6001600160a01b03166000908152601360205260409020805460ff19169055565b6001600160a01b031660009081526013602052604090205460ff1690565b6005546001600160a01b0316331461105f5760405162461bcd60e51b8152600401610774906127e7565b60185460ff166110b15760405162461bcd60e51b815260206004820152601e60248201527f45524332303a2054617820697320616c72656164792064697361626c656400006044820152606401610774565b6018805460ff19169055565b6005546001600160a01b031633146110e75760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b03811660009081526012602052604090205460ff166111595760405162461bcd60e51b815260206004820152602160248201527f45524332303a204163636f756e74206973206e6f7420626c61636b6c697374656044820152601960fa1b6064820152608401610774565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6005546001600160a01b031633146111a45760405162461bcd60e51b8152600401610774906127e7565b8060166040516111b39061281c565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b031990921691909117905550565b6005546001600160a01b0316331461120f5760405162461bcd60e51b8152600401610774906127e7565b600f805460ff60a01b1916600160a01b8415150217905560115460000361124557436011819055611241908290612890565b6010555b5050565b6005546001600160a01b031633146112735760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b0381166112d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610774565b6109b28161237d565b6005546001600160a01b0316331461130b5760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b038116611352576005546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611245573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561139b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bf91906128c7565b9050816001600160a01b031663a9059cbb6113e26005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561142f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145391906128e0565b50505050565b6001600160a01b0383166114bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610774565b6001600160a01b03821661151c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610774565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600554600160a01b900460ff16156115e25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20746f6b656e207472616e73666572207768696c652070617573604482015261195960f21b6064820152608401610774565b3360009081526012602052604090205460ff161561163e5760405162461bcd60e51b8152602060048201526019602482015278115490cc8c0e881cd95b99195c88189b1858dadb1a5cdd1959603a1b6044820152606401610774565b6001600160a01b03821660009081526012602052604090205460ff16156116a75760405162461bcd60e51b815260206004820152601c60248201527f45524332303a20726563697069656e7420626c61636b6c6973746564000000006044820152606401610774565b3260009081526012602052604090205460ff16156117035760405162461bcd60e51b8152602060048201526019602482015278115490cc8c0e881cd95b99195c88189b1858dadb1a5cdd1959603a1b6044820152606401610774565b60185460ff161561171c5761171983838361172c565b90505b611727838383612457565b505050565b60408051600280825260608201835260009283929190602083019080368337019050509050308160008151811061176557611765612913565b60200260200101906001600160a01b031690816001600160a01b031681525050601860019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fc9190612929565b8160018151811061180f5761180f612913565b60200260200101906001600160a01b031690816001600160a01b03168152505061183885611017565b15801561184b575061184984611017565b155b1561218957600080600754856118619190612946565b601a549091506001600160a01b03908116908816036119d457600f54600160a01b900460ff16801561189557506010544311155b156118d8576118a58160636128a8565b6118af9083612890565b91506118bc8160636128a8565b601b60008282546118cd9190612890565b909155506119be9050565b60146040516118e69061281c565b9081526020016040518091039020548161190091906128a8565b61190a9083612890565b9150601460405161191a9061282b565b9081526020016040518091039020548161193491906128a8565b61193e9083612890565b9150601460405161194e9061281c565b9081526020016040518091039020548161196891906128a8565b601b60008282546119799190612890565b909155505060405160149061198d9061282b565b908152602001604051809103902054816119a791906128a8565b601c60008282546119b89190612890565b90915550505b81156119cf576119cf87308461157d565b61204a565b601a546001600160a01b039081169087160361204a5760156040516119f89061281c565b90815260200160405180910390205481611a1291906128a8565b611a1c9083612890565b91506015604051611a2c9061282b565b90815260200160405180910390205481611a4691906128a8565b611a509083612890565b91508115611a6357611a6387308461157d565b6015604051611a719061281c565b90815260200160405180910390205481611a8b91906128a8565b601b6000828254611a9c9190612890565b9091555050604051601590611ab09061282b565b90815260200160405180910390205481611aca91906128a8565b601c6000828254611adb9190612890565b9091555050601c54601b54600091611af291612890565b905080600003611b08578594505050505061090e565b601854601c54601b5460009261010090046001600160a01b03169163d06ca61f91611b339190612890565b876040518363ffffffff1660e01b8152600401611b519291906129ac565b600060405180830381865afa158015611b6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b9691908101906129cd565b600181518110611ba857611ba8612913565b60200260200101519050600854811061204757601c544790600090611bcf90600290612946565b601b54611bdc9190612890565b9050611bfe30601860019054906101000a90046001600160a01b031683611459565b6018546040516318cbafe560e01b81526101009091046001600160a01b0316906318cbafe590611c3b9084906000908c9030904290600401612a8b565b6000604051808303816000875af1158015611c5a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c8291908101906129cd565b506000611c8f8347612ac7565b905060006002601c54611ca29190612946565b90506000670de0b6b3a7640000876002601c54611cbf9190612946565b611cd190670de0b6b3a76400006128a8565b611cdb9190612946565b611ce590856128a8565b611cef9190612946565b90506000670de0b6b3a764000088601b54670de0b6b3a7640000611d1391906128a8565b611d1d9190612946565b611d2790866128a8565b611d319190612946565b9050611d5330601860019054906101000a90046001600160a01b031685611459565b601860019054906101000a90046001600160a01b03166001600160a01b031663f305d7198330866000806016604051611d8b9061282b565b908152604051908190036020018120546001600160e01b031960e089901b1682526001600160a01b039586166004830152602482019490945260448101929092526064820152911660848201524260a482015260c40160606040518083038185885af1158015611dff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e249190612ade565b50505060008386611e359190612890565b601c54601b54611e459190612890565b611e4f9190612ac7565b90508015611e8857611e88306016604051611e699061281c565b908152604051908190036020019020546001600160a01b03168361157d565b60006016604051611e989061281c565b908152604051908190036020018120546001600160a01b031690849060006040518083038185875af1925050503d8060008114611ef1576040519150601f19603f3d011682016040523d82523d6000602084013e611ef6565b606091505b5050905080611f475760405162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f20206465762077616c6c6574206661696c656400006044820152606401610774565b6000611f538585612890565b611f5d9088612ac7565b11156120345760006016604051611f739061281c565b908152604051908190036020019020546001600160a01b0316611f968686612890565b611fa09089612ac7565b604051600081818185875af1925050503d8060008114611fdc576040519150601f19603f3d011682016040523d82523d6000602084013e611fe1565b606091505b50509050806120325760405162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f20206465762077616c6c6574206661696c656400006044820152606401610774565b505b50506000601b819055601c555050505050505b50505b6120548286612ac7565b601a549095506001600160a01b038781169116146120e757600d548561208f886001600160a01b031660009081526020819052604090205490565b6120999190612890565b11156120e75760405162461bcd60e51b815260206004820152601860248201527f6d617857616c6c6574206c696d697420657863656564656400000000000000006044820152606401610774565b600f54600160a01b900460ff16612186576001600160a01b03871660009081526017602052604090205460ff166121865760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610774565b50505b50909392505050565b600554600160a01b900460ff166121e25760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610774565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821661228f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610774565b6001600160a01b038216600090815260208190526040902054818110156123035760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610774565b6001600160a01b0383166000908152602081905260408120838303905560028054849290612332908490612ac7565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600554600160a01b900460ff161561241c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610774565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586122123390565b6001600160a01b0383166124bb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610774565b6001600160a01b03821661251d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610774565b6001600160a01b038316600090815260208190526040902054818110156125955760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610774565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906125cc908490612890565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161261891815260200190565b60405180910390a3611453565b6000806040838503121561263857600080fd5b50508035926020909101359150565b600060208083528351808285015260005b8181101561267457858101830151858201604001528201612658565b81811115612686576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146109b257600080fd5b600080604083850312156126c457600080fd5b82356126cf8161269c565b946020939093013593505050565b6000806000606084860312156126f257600080fd5b83356126fd8161269c565b9250602084013561270d8161269c565b929592945050506040919091013590565b80151581146109b257600080fd5b6000806040838503121561273f57600080fd5b823561274a8161269c565b9150602083013561275a8161271e565b809150509250929050565b60006020828403121561277757600080fd5b5035919050565b60006020828403121561279057600080fd5b813561090e8161269c565b600080604083850312156127ae57600080fd5b82356127b98161269c565b9150602083013561275a8161269c565b600080604083850312156127dc57600080fd5b82356126cf8161271e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b623232bb60e91b815260030190565b686c697175696469747960b81b815260090190565b600181811c9082168061285457607f821691505b60208210810361287457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156128a3576128a361287a565b500190565b60008160001904831182151516156128c2576128c261287a565b500290565b6000602082840312156128d957600080fd5b5051919050565b6000602082840312156128f257600080fd5b815161090e8161271e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561293b57600080fd5b815161090e8161269c565b60008261296357634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b838110156129a15781516001600160a01b03168752958201959082019060010161297c565b509495945050505050565b8281526040602082015260006129c56040830184612968565b949350505050565b600060208083850312156129e057600080fd5b825167ffffffffffffffff808211156129f857600080fd5b818501915085601f830112612a0c57600080fd5b815181811115612a1e57612a1e6128fd565b8060051b604051601f19603f83011681018181108582111715612a4357612a436128fd565b604052918252848201925083810185019188831115612a6157600080fd5b938501935b82851015612a7f57845184529385019392850192612a66565b98975050505050505050565b85815284602082015260a060408201526000612aaa60a0830186612968565b6001600160a01b0394909416606083015250608001529392505050565b600082821015612ad957612ad961287a565b500390565b600080600060608486031215612af357600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200064a814ce321a1e699903cd909fd827d4a2776a1f90c4e86c6cff8f03e74f7a64736f6c634300080d00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000038d7ea4c680000000000000000000000000000000000000000000000000000000000000000008446f67656c656e610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005454c454e41000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102345760003560e01c806370a082311161012e578063cba0e996116100ab578063e2aa6cae1161006f578063e2aa6cae1461069b578063f2fde38b146106bb578063f8b45b05146106db578063f9d0831a146106f1578063fe575a871461071157600080fd5b8063cba0e996146105e0578063ced695a414610600578063cfefd79e14610615578063d01dc84b14610635578063dd62ed3e1461065557600080fd5b806395d89b41116100f257806395d89b411461053b578063a457c2d714610550578063a9059cbb14610570578063abe4f11d14610590578063bdd795ef146105b057600080fd5b806370a082311461049d578063715018a6146104d3578063717a8651146104e85780638456cb59146105085780638da5cb5b1461051d57600080fd5b80632f9c4569116101bc57806349bd5a5e1161018057806349bd5a5e146103f15780634febf53d1461042957806353eb3bcf146104495780635c975abb1461045e5780635d0044ca1461047d57600080fd5b80632f9c456914610360578063313ce56714610380578063395093511461039c5780633f4ba83a146103bc57806342966c68146103d157600080fd5b806318160ddd1161020357806318160ddd146102dc57806323a38a38146102f157806323b872dd1461030b578063247b912d1461032b5780632c32abc21461034b57600080fd5b806305a1f36d1461024057806306fdde0314610262578063095ea7b31461028d5780630dbd397c146102bd57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061026061025b366004612625565b61074a565b005b34801561026e57600080fd5b506102776107c1565b6040516102849190612647565b60405180910390f35b34801561029957600080fd5b506102ad6102a83660046126b1565b610853565b6040519015158152602001610284565b3480156102c957600080fd5b506011545b604051908152602001610284565b3480156102e857600080fd5b506002546102ce565b3480156102fd57600080fd5b506018546102ad9060ff1681565b34801561031757600080fd5b506102ad6103263660046126dd565b610869565b34801561033757600080fd5b50610260610346366004612625565b610915565b34801561035757600080fd5b5061026061096f565b34801561036c57600080fd5b5061026061037b36600461272c565b6109b5565b34801561038c57600080fd5b5060405160128152602001610284565b3480156103a857600080fd5b506102ad6103b73660046126b1565b610a7a565b3480156103c857600080fd5b50610260610ab6565b3480156103dd57600080fd5b506102606103ec366004612765565b610b43565b3480156103fd57600080fd5b50601a54610411906001600160a01b031681565b6040516001600160a01b039091168152602001610284565b34801561043557600080fd5b5061026061044436600461277e565b610b77565b34801561045557600080fd5b50610260610c26565b34801561046a57600080fd5b50600554600160a01b900460ff166102ad565b34801561048957600080fd5b50610260610498366004612765565b610cb2565b3480156104a957600080fd5b506102ce6104b836600461277e565b6001600160a01b031660009081526020819052604090205490565b3480156104df57600080fd5b50610260610d33565b3480156104f457600080fd5b5061026061050336600461277e565b610d67565b34801561051457600080fd5b50610260610e2c565b34801561052957600080fd5b506005546001600160a01b0316610411565b34801561054757600080fd5b50610277610ec2565b34801561055c57600080fd5b506102ad61056b3660046126b1565b610ed1565b34801561057c57600080fd5b506102ad61058b3660046126b1565b610f6a565b34801561059c57600080fd5b506102606105ab36600461277e565b610f77565b3480156105bc57600080fd5b506102ad6105cb36600461277e565b60176020526000908152604090205460ff1681565b3480156105ec57600080fd5b506102ad6105fb36600461277e565b611017565b34801561060c57600080fd5b50610260611035565b34801561062157600080fd5b5061026061063036600461277e565b6110bd565b34801561064157600080fd5b5061026061065036600461277e565b61117a565b34801561066157600080fd5b506102ce61067036600461279b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106a757600080fd5b506102606106b63660046127c9565b6111e5565b3480156106c757600080fd5b506102606106d636600461277e565b611249565b3480156106e757600080fd5b506102ce600d5481565b3480156106fd57600080fd5b5061026061070c36600461277e565b6112e1565b34801561071d57600080fd5b506102ad61072c36600461277e565b6001600160a01b031660009081526012602052604090205460ff1690565b6005546001600160a01b0316331461077d5760405162461bcd60e51b8152600401610774906127e7565b60405180910390fd5b81601460405161078c9061281c565b9081526020016040518091039020819055508060146040516107ad9061282b565b908152604051908190036020019020555050565b6060600380546107d090612840565b80601f01602080910402602001604051908101604052809291908181526020018280546107fc90612840565b80156108495780601f1061081e57610100808354040283529160200191610849565b820191906000526020600020905b81548152906001019060200180831161082c57829003601f168201915b5050505050905090565b6000610860338484611459565b50600192915050565b600061087684848461157d565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108fb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610774565b6109088533858403611459565b60019150505b9392505050565b6005546001600160a01b0316331461093f5760405162461bcd60e51b8152600401610774906127e7565b81601560405161094e9061281c565b9081526020016040518091039020819055508060156040516107ad9061282b565b6005546001600160a01b031633146109995760405162461bcd60e51b8152600401610774906127e7565b601a546109b2906000906001600160a01b03168161172c565b50565b6005546001600160a01b031633146109df5760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b03821660009081526017602052604090205481151560ff909116151503610a4f5760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e0000000000000000006044820152606401610774565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610860918590610ab1908690612890565b611459565b6005546001600160a01b03163314610ae05760405162461bcd60e51b8152600401610774906127e7565b600554600160a01b900460ff16610b395760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20436f6e7472616374206973206e6f74207061757365640000006044820152606401610774565b610b41612192565b565b6005546001600160a01b03163314610b6d5760405162461bcd60e51b8152600401610774906127e7565b6109b2338261222f565b6005546001600160a01b03163314610ba15760405162461bcd60e51b8152600401610774906127e7565b610baa81611017565b15610c025760405162461bcd60e51b815260206004820152602260248201527f45524332303a204163636f756e7420697320616c7265616479206578636c7564604482015261195960f21b6064820152608401610774565b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6005546001600160a01b03163314610c505760405162461bcd60e51b8152600401610774906127e7565b60185460ff1615610ca35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054617820697320616c726561647920656e61626c65640000006044820152606401610774565b6018805460ff19166001179055565b6005546001600160a01b03163314610cdc5760405162461bcd60e51b8152600401610774906127e7565b6127108111610d1b5760405162461bcd60e51b815260206004820152600b60248201526a1393c81c9d59c81c1d5b1b60aa1b6044820152606401610774565b610d2d81670de0b6b3a76400006128a8565b600d5550565b6005546001600160a01b03163314610d5d5760405162461bcd60e51b8152600401610774906127e7565b610b41600061237d565b6005546001600160a01b03163314610d915760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b03811660009081526012602052604090205460ff1615610e085760405162461bcd60e51b815260206004820152602560248201527f45524332303a204163636f756e7420697320616c726561647920626c61636b6c6044820152641a5cdd195960da1b6064820152608401610774565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6005546001600160a01b03163314610e565760405162461bcd60e51b8152600401610774906127e7565b600554600160a01b900460ff1615610eba5760405162461bcd60e51b815260206004820152602160248201527f45524332303a20436f6e747261637420697320616c72656164792070617573656044820152601960fa1b6064820152608401610774565b610b416123cf565b6060600480546107d090612840565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f535760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610774565b610f603385858403611459565b5060019392505050565b600061086033848461157d565b6005546001600160a01b03163314610fa15760405162461bcd60e51b8152600401610774906127e7565b610faa81611017565b610ff65760405162461bcd60e51b815260206004820152601e60248201527f45524332303a204163636f756e74206973206e6f74206578636c7564656400006044820152606401610774565b6001600160a01b03166000908152601360205260409020805460ff19169055565b6001600160a01b031660009081526013602052604090205460ff1690565b6005546001600160a01b0316331461105f5760405162461bcd60e51b8152600401610774906127e7565b60185460ff166110b15760405162461bcd60e51b815260206004820152601e60248201527f45524332303a2054617820697320616c72656164792064697361626c656400006044820152606401610774565b6018805460ff19169055565b6005546001600160a01b031633146110e75760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b03811660009081526012602052604090205460ff166111595760405162461bcd60e51b815260206004820152602160248201527f45524332303a204163636f756e74206973206e6f7420626c61636b6c697374656044820152601960fa1b6064820152608401610774565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6005546001600160a01b031633146111a45760405162461bcd60e51b8152600401610774906127e7565b8060166040516111b39061281c565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b031990921691909117905550565b6005546001600160a01b0316331461120f5760405162461bcd60e51b8152600401610774906127e7565b600f805460ff60a01b1916600160a01b8415150217905560115460000361124557436011819055611241908290612890565b6010555b5050565b6005546001600160a01b031633146112735760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b0381166112d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610774565b6109b28161237d565b6005546001600160a01b0316331461130b5760405162461bcd60e51b8152600401610774906127e7565b6001600160a01b038116611352576005546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611245573d6000803e3d6000fd5b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561139b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bf91906128c7565b9050816001600160a01b031663a9059cbb6113e26005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561142f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145391906128e0565b50505050565b6001600160a01b0383166114bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610774565b6001600160a01b03821661151c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610774565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600554600160a01b900460ff16156115e25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20746f6b656e207472616e73666572207768696c652070617573604482015261195960f21b6064820152608401610774565b3360009081526012602052604090205460ff161561163e5760405162461bcd60e51b8152602060048201526019602482015278115490cc8c0e881cd95b99195c88189b1858dadb1a5cdd1959603a1b6044820152606401610774565b6001600160a01b03821660009081526012602052604090205460ff16156116a75760405162461bcd60e51b815260206004820152601c60248201527f45524332303a20726563697069656e7420626c61636b6c6973746564000000006044820152606401610774565b3260009081526012602052604090205460ff16156117035760405162461bcd60e51b8152602060048201526019602482015278115490cc8c0e881cd95b99195c88189b1858dadb1a5cdd1959603a1b6044820152606401610774565b60185460ff161561171c5761171983838361172c565b90505b611727838383612457565b505050565b60408051600280825260608201835260009283929190602083019080368337019050509050308160008151811061176557611765612913565b60200260200101906001600160a01b031690816001600160a01b031681525050601860019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fc9190612929565b8160018151811061180f5761180f612913565b60200260200101906001600160a01b031690816001600160a01b03168152505061183885611017565b15801561184b575061184984611017565b155b1561218957600080600754856118619190612946565b601a549091506001600160a01b03908116908816036119d457600f54600160a01b900460ff16801561189557506010544311155b156118d8576118a58160636128a8565b6118af9083612890565b91506118bc8160636128a8565b601b60008282546118cd9190612890565b909155506119be9050565b60146040516118e69061281c565b9081526020016040518091039020548161190091906128a8565b61190a9083612890565b9150601460405161191a9061282b565b9081526020016040518091039020548161193491906128a8565b61193e9083612890565b9150601460405161194e9061281c565b9081526020016040518091039020548161196891906128a8565b601b60008282546119799190612890565b909155505060405160149061198d9061282b565b908152602001604051809103902054816119a791906128a8565b601c60008282546119b89190612890565b90915550505b81156119cf576119cf87308461157d565b61204a565b601a546001600160a01b039081169087160361204a5760156040516119f89061281c565b90815260200160405180910390205481611a1291906128a8565b611a1c9083612890565b91506015604051611a2c9061282b565b90815260200160405180910390205481611a4691906128a8565b611a509083612890565b91508115611a6357611a6387308461157d565b6015604051611a719061281c565b90815260200160405180910390205481611a8b91906128a8565b601b6000828254611a9c9190612890565b9091555050604051601590611ab09061282b565b90815260200160405180910390205481611aca91906128a8565b601c6000828254611adb9190612890565b9091555050601c54601b54600091611af291612890565b905080600003611b08578594505050505061090e565b601854601c54601b5460009261010090046001600160a01b03169163d06ca61f91611b339190612890565b876040518363ffffffff1660e01b8152600401611b519291906129ac565b600060405180830381865afa158015611b6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b9691908101906129cd565b600181518110611ba857611ba8612913565b60200260200101519050600854811061204757601c544790600090611bcf90600290612946565b601b54611bdc9190612890565b9050611bfe30601860019054906101000a90046001600160a01b031683611459565b6018546040516318cbafe560e01b81526101009091046001600160a01b0316906318cbafe590611c3b9084906000908c9030904290600401612a8b565b6000604051808303816000875af1158015611c5a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c8291908101906129cd565b506000611c8f8347612ac7565b905060006002601c54611ca29190612946565b90506000670de0b6b3a7640000876002601c54611cbf9190612946565b611cd190670de0b6b3a76400006128a8565b611cdb9190612946565b611ce590856128a8565b611cef9190612946565b90506000670de0b6b3a764000088601b54670de0b6b3a7640000611d1391906128a8565b611d1d9190612946565b611d2790866128a8565b611d319190612946565b9050611d5330601860019054906101000a90046001600160a01b031685611459565b601860019054906101000a90046001600160a01b03166001600160a01b031663f305d7198330866000806016604051611d8b9061282b565b908152604051908190036020018120546001600160e01b031960e089901b1682526001600160a01b039586166004830152602482019490945260448101929092526064820152911660848201524260a482015260c40160606040518083038185885af1158015611dff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e249190612ade565b50505060008386611e359190612890565b601c54601b54611e459190612890565b611e4f9190612ac7565b90508015611e8857611e88306016604051611e699061281c565b908152604051908190036020019020546001600160a01b03168361157d565b60006016604051611e989061281c565b908152604051908190036020018120546001600160a01b031690849060006040518083038185875af1925050503d8060008114611ef1576040519150601f19603f3d011682016040523d82523d6000602084013e611ef6565b606091505b5050905080611f475760405162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f20206465762077616c6c6574206661696c656400006044820152606401610774565b6000611f538585612890565b611f5d9088612ac7565b11156120345760006016604051611f739061281c565b908152604051908190036020019020546001600160a01b0316611f968686612890565b611fa09089612ac7565b604051600081818185875af1925050503d8060008114611fdc576040519150601f19603f3d011682016040523d82523d6000602084013e611fe1565b606091505b50509050806120325760405162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f20206465762077616c6c6574206661696c656400006044820152606401610774565b505b50506000601b819055601c555050505050505b50505b6120548286612ac7565b601a549095506001600160a01b038781169116146120e757600d548561208f886001600160a01b031660009081526020819052604090205490565b6120999190612890565b11156120e75760405162461bcd60e51b815260206004820152601860248201527f6d617857616c6c6574206c696d697420657863656564656400000000000000006044820152606401610774565b600f54600160a01b900460ff16612186576001600160a01b03871660009081526017602052604090205460ff166121865760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610774565b50505b50909392505050565b600554600160a01b900460ff166121e25760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610774565b6005805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821661228f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610774565b6001600160a01b038216600090815260208190526040902054818110156123035760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610774565b6001600160a01b0383166000908152602081905260408120838303905560028054849290612332908490612ac7565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600554600160a01b900460ff161561241c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610774565b6005805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586122123390565b6001600160a01b0383166124bb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610774565b6001600160a01b03821661251d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610774565b6001600160a01b038316600090815260208190526040902054818110156125955760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610774565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906125cc908490612890565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161261891815260200190565b60405180910390a3611453565b6000806040838503121561263857600080fd5b50508035926020909101359150565b600060208083528351808285015260005b8181101561267457858101830151858201604001528201612658565b81811115612686576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146109b257600080fd5b600080604083850312156126c457600080fd5b82356126cf8161269c565b946020939093013593505050565b6000806000606084860312156126f257600080fd5b83356126fd8161269c565b9250602084013561270d8161269c565b929592945050506040919091013590565b80151581146109b257600080fd5b6000806040838503121561273f57600080fd5b823561274a8161269c565b9150602083013561275a8161271e565b809150509250929050565b60006020828403121561277757600080fd5b5035919050565b60006020828403121561279057600080fd5b813561090e8161269c565b600080604083850312156127ae57600080fd5b82356127b98161269c565b9150602083013561275a8161269c565b600080604083850312156127dc57600080fd5b82356126cf8161271e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b623232bb60e91b815260030190565b686c697175696469747960b81b815260090190565b600181811c9082168061285457607f821691505b60208210810361287457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156128a3576128a361287a565b500190565b60008160001904831182151516156128c2576128c261287a565b500290565b6000602082840312156128d957600080fd5b5051919050565b6000602082840312156128f257600080fd5b815161090e8161271e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561293b57600080fd5b815161090e8161269c565b60008261296357634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b838110156129a15781516001600160a01b03168752958201959082019060010161297c565b509495945050505050565b8281526040602082015260006129c56040830184612968565b949350505050565b600060208083850312156129e057600080fd5b825167ffffffffffffffff808211156129f857600080fd5b818501915085601f830112612a0c57600080fd5b815181811115612a1e57612a1e6128fd565b8060051b604051601f19603f83011681018181108582111715612a4357612a436128fd565b604052918252848201925083810185019188831115612a6157600080fd5b938501935b82851015612a7f57845184529385019392850192612a66565b98975050505050505050565b85815284602082015260a060408201526000612aaa60a0830186612968565b6001600160a01b0394909416606083015250608001529392505050565b600082821015612ad957612ad961287a565b500390565b600080600060608486031215612af357600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212200064a814ce321a1e699903cd909fd827d4a2776a1f90c4e86c6cff8f03e74f7a64736f6c634300080d0033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000038d7ea4c680000000000000000000000000000000000000000000000000000000000000000008446f67656c656e610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005454c454e41000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _tokenName (string): Dogelena
Arg [1] : _tokenSymbol (string): ELENA
Arg [2] : _supply (uint256): 1000000000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000038d7ea4c68000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [4] : 446f67656c656e61000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 454c454e41000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

21235:12234:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30913:160;;;;;;;;;;-1:-1:-1;30913:160:0;;;;;:::i;:::-;;:::i;:::-;;5034:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6594:169;;;;;;;;;;-1:-1:-1;6594:169:0;;;;;:::i;:::-;;:::i;:::-;;;1490:14:1;;1483:22;1465:41;;1453:2;1438:18;6594:169:0;1325:187:1;33316:109:0;;;;;;;;;;-1:-1:-1;33398:19:0;;33316:109;;;1663:25:1;;;1651:2;1636:18;33316:109:0;1517:177:1;5547:108:0;;;;;;;;;;-1:-1:-1;5635:12:0;;5547:108;;22146:28;;;;;;;;;;-1:-1:-1;22146:28:0;;;;;;;;6795:492;;;;;;;;;;-1:-1:-1;6795:492:0;;;;;:::i;:::-;;:::i;31136:167::-;;;;;;;;;;-1:-1:-1;31136:167:0;;;;;:::i;:::-;;:::i;28852:106::-;;;;;;;;;;;;;:::i;33050:196::-;;;;;;;;;;-1:-1:-1;33050:196:0;;;;;:::i;:::-;;:::i;5389:93::-;;;;;;;;;;-1:-1:-1;5389:93:0;;5472:2;2812:36:1;;2800:2;2785:18;5389:93:0;2670:184:1;7319:215:0;;;;;;;;;;-1:-1:-1;7319:215:0;;;;;:::i;:::-;;:::i;29231:126::-;;;;;;;;;;;;;:::i;29663:91::-;;;;;;;;;;-1:-1:-1;29663:91:0;;;;;:::i;:::-;;:::i;22287:35::-;;;;;;;;;;-1:-1:-1;22287:35:0;;;;-1:-1:-1;;;;;22287:35:0;;;;;;-1:-1:-1;;;;;3231:32:1;;;3213:51;;3201:2;3186:18;22287:35:0;3044:226:1;30415:175:0;;;;;;;;;;-1:-1:-1;30415:175:0;;;;;:::i;:::-;;:::i;31901:136::-;;;;;;;;;;;;;:::i;12409:86::-;;;;;;;;;;-1:-1:-1;12480:7:0;;-1:-1:-1;;;12480:7:0;;;;12409:86;;29433:153;;;;;;;;;;-1:-1:-1;29433:153:0;;;;;:::i;:::-;;:::i;5718:127::-;;;;;;;;;;-1:-1:-1;5718:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5819:18:0;5792:7;5819:18;;;;;;;;;;;;5718:127;11233:94;;;;;;;;;;;;;:::i;29876:183::-;;;;;;;;;;-1:-1:-1;29876:183:0;;;;;:::i;:::-;;:::i;29032:127::-;;;;;;;;;;;;;:::i;10905:87::-;;;;;;;;;;-1:-1:-1;10978:6:0;;-1:-1:-1;;;;;10978:6:0;10905:87;;5253:104;;;;;;;;;;;;;:::i;7566:413::-;;;;;;;;;;-1:-1:-1;7566:413:0;;;;;:::i;:::-;;:::i;6058:175::-;;;;;;;;;;-1:-1:-1;6058:175:0;;;;;:::i;:::-;;:::i;30674:177::-;;;;;;;;;;-1:-1:-1;30674:177:0;;;;;:::i;:::-;;:::i;22095:42::-;;;;;;;;;;-1:-1:-1;22095:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;32565:110;;;;;;;;;;-1:-1:-1;32565:110:0;;;;;:::i;:::-;;:::i;32103:138::-;;;;;;;;;;;;;:::i;30151:180::-;;;;;;;;;;-1:-1:-1;30151:180:0;;;;;:::i;:::-;;:::i;31370:95::-;;;;;;;;;;-1:-1:-1;31370:95:0;;;;;:::i;:::-;;:::i;6296:151::-;;;;;;;;;;-1:-1:-1;6296:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;6412:18:0;;;6385:7;6412:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6296:151;32683:359;;;;;;;;;;-1:-1:-1;32683:359:0;;;;;:::i;:::-;;:::i;11482:192::-;;;;;;;;;;-1:-1:-1;11482:192:0;;;;;:::i;:::-;;:::i;21562:24::-;;;;;;;;;;;;;;;;31473:363;;;;;;;;;;-1:-1:-1;31473:363:0;;;;;:::i;:::-;;:::i;32349:111::-;;;;;;;;;;-1:-1:-1;32349:111:0;;;;;:::i;:::-;-1:-1:-1;;;;;32434:18:0;32410:4;32434:18;;;:9;:18;;;;;;;;;32349:111;30913:160;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;;;;;;;;;31009:3:::1;30991:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;31047:9;31023:8;:21;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:33;-1:-1:-1;;30913:160:0:o;5034:100::-;5088:13;5121:5;5114:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5034:100;:::o;6594:169::-;6677:4;6694:39;4128:10;6717:7;6726:6;6694:8;:39::i;:::-;-1:-1:-1;6751:4:0;6594:169;;;;:::o;6795:492::-;6935:4;6952:36;6962:6;6970:9;6981:6;6952:9;:36::i;:::-;-1:-1:-1;;;;;7028:19:0;;7001:24;7028:19;;;:11;:19;;;;;;;;4128:10;7028:33;;;;;;;;7080:26;;;;7072:79;;;;-1:-1:-1;;;7072:79:0;;5912:2:1;7072:79:0;;;5894:21:1;5951:2;5931:18;;;5924:30;5990:34;5970:18;;;5963:62;-1:-1:-1;;;6041:18:1;;;6034:38;6089:19;;7072:79:0;5710:404:1;7072:79:0;7187:57;7196:6;4128:10;7237:6;7218:16;:25;7187:8;:57::i;:::-;7275:4;7268:11;;;6795:492;;;;;;:::o;31136:167::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;31237:3:::1;31218:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;:22;;;;31276:9;31251;:22;;;;;:::i;28852:106::-:0;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;28932:13:::1;::::0;28902:48:::1;::::0;28920:1:::1;::::0;-1:-1:-1;;;;;28932:13:0::1;28920:1:::0;28902:9:::1;:48::i;:::-;;28852:106::o:0;33050:196::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;33142:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;:29;::::1;;:18;::::0;;::::1;:29;;::::0;33134:65:::1;;;::::0;-1:-1:-1;;;33134:65:0;;6321:2:1;33134:65:0::1;::::0;::::1;6303:21:1::0;6360:2;6340:18;;;6333:30;6399:25;6379:18;;;6372:53;6442:18;;33134:65:0::1;6119:347:1::0;33134:65:0::1;-1:-1:-1::0;;;;;33210:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;-1:-1:-1;;33210:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;33050:196::o;7319:215::-;4128:10;7407:4;7456:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7456:34:0;;;;;;;;;;7407:4;;7424:80;;7447:7;;7456:47;;7493:10;;7456:47;:::i;:::-;7424:8;:80::i;29231:126::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;12480:7;;-1:-1:-1;;;12480:7:0;;;;29278:50:::1;;;::::0;-1:-1:-1;;;29278:50:0;;6938:2:1;29278:50:0::1;::::0;::::1;6920:21:1::0;6977:2;6957:18;;;6950:30;7016:31;6996:18;;;6989:59;7065:18;;29278:50:0::1;6736:353:1::0;29278:50:0::1;29339:10;:8;:10::i;:::-;29231:126::o:0;29663:91::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;29721:25:::1;29727:10;29739:6;29721:5;:25::i;30415:175::-:0;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;30486:19:::1;30497:7;30486:10;:19::i;:::-;30485:20;30477:67;;;::::0;-1:-1:-1;;;30477:67:0;;7296:2:1;30477:67:0::1;::::0;::::1;7278:21:1::0;7335:2;7315:18;;;7308:30;7374:34;7354:18;;;7347:62;-1:-1:-1;;;7425:18:1;;;7418:32;7467:19;;30477:67:0::1;7094:398:1::0;30477:67:0::1;-1:-1:-1::0;;;;;30555:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;30555:27:0::1;30578:4;30555:27;::::0;;30415:175::o;31901:136::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;31959:9:::1;::::0;::::1;;31958:10;31950:52;;;::::0;-1:-1:-1;;;31950:52:0;;7699:2:1;31950:52:0::1;::::0;::::1;7681:21:1::0;7738:2;7718:18;;;7711:30;7777:31;7757:18;;;7750:59;7826:18;;31950:52:0::1;7497:353:1::0;31950:52:0::1;32013:9;:16:::0;;-1:-1:-1;;32013:16:0::1;32025:4;32013:16;::::0;;31901:136::o;29433:153::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;29519:5:::1;29510:6;:14;29501:39;;;::::0;-1:-1:-1;;;29501:39:0;;8057:2:1;29501:39:0::1;::::0;::::1;8039:21:1::0;8096:2;8076:18;;;8069:30;-1:-1:-1;;;8115:18:1;;;8108:41;8166:18;;29501:39:0::1;7855:335:1::0;29501:39:0::1;29563:15;:6:::0;29572::::1;29563:15;:::i;:::-;29551:9;:27:::0;-1:-1:-1;29433:153:0:o;11233:94::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;11298:21:::1;11316:1;11298:9;:21::i;29876:183::-:0;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;29955:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;29954:19;29946:69;;;::::0;-1:-1:-1;;;29946:69:0;;8570:2:1;29946:69:0::1;::::0;::::1;8552:21:1::0;8609:2;8589:18;;;8582:30;8648:34;8628:18;;;8621:62;-1:-1:-1;;;8699:18:1;;;8692:35;8744:19;;29946:69:0::1;8368:401:1::0;29946:69:0::1;-1:-1:-1::0;;;;;30026:18:0::1;;::::0;;;:9:::1;:18;::::0;;;;:25;;-1:-1:-1;;30026:25:0::1;30047:4;30026:25;::::0;;29876:183::o;29032:127::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;12480:7;;-1:-1:-1;;;12480:7:0;;;;29085:9:::1;29077:55;;;::::0;-1:-1:-1;;;29077:55:0;;8976:2:1;29077:55:0::1;::::0;::::1;8958:21:1::0;9015:2;8995:18;;;8988:30;9054:34;9034:18;;;9027:62;-1:-1:-1;;;9105:18:1;;;9098:31;9146:19;;29077:55:0::1;8774:397:1::0;29077:55:0::1;29143:8;:6;:8::i;5253:104::-:0;5309:13;5342:7;5335:14;;;;;:::i;7566:413::-;4128:10;7659:4;7703:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7703:34:0;;;;;;;;;;7756:35;;;;7748:85;;;;-1:-1:-1;;;7748:85:0;;9378:2:1;7748:85:0;;;9360:21:1;9417:2;9397:18;;;9390:30;9456:34;9436:18;;;9429:62;-1:-1:-1;;;9507:18:1;;;9500:35;9552:19;;7748:85:0;9176:401:1;7748:85:0;7869:67;4128:10;7892:7;7920:15;7901:16;:34;7869:8;:67::i;:::-;-1:-1:-1;7967:4:0;;7566:413;-1:-1:-1;;;7566:413:0:o;6058:175::-;6144:4;6161:42;4128:10;6185:9;6196:6;6161:9;:42::i;30674:177::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;30750:19:::1;30761:7;30750:10;:19::i;:::-;30742:62;;;::::0;-1:-1:-1;;;30742:62:0;;9784:2:1;30742:62:0::1;::::0;::::1;9766:21:1::0;9823:2;9803:18;;;9796:30;9862:32;9842:18;;;9835:60;9912:18;;30742:62:0::1;9582:354:1::0;30742:62:0::1;-1:-1:-1::0;;;;;30815:20:0::1;30838:5;30815:20:::0;;;:11:::1;:20;::::0;;;;:28;;-1:-1:-1;;30815:28:0::1;::::0;;30674:177::o;32565:110::-;-1:-1:-1;;;;;32647:20:0;32623:4;32647:20;;;:11;:20;;;;;;;;;32565:110::o;32103:138::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;32161:9:::1;::::0;::::1;;32153:52;;;::::0;-1:-1:-1;;;32153:52:0;;10143:2:1;32153:52:0::1;::::0;::::1;10125:21:1::0;10182:2;10162:18;;;10155:30;10221:32;10201:18;;;10194:60;10271:18;;32153:52:0::1;9941:354:1::0;32153:52:0::1;32216:9;:17:::0;;-1:-1:-1;;32216:17:0::1;::::0;;32103:138::o;30151:180::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;30230:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;30222:64;;;::::0;-1:-1:-1;;;30222:64:0;;10502:2:1;30222:64:0::1;::::0;::::1;10484:21:1::0;10541:2;10521:18;;;10514:30;10580:34;10560:18;;;10553:62;-1:-1:-1;;;10631:18:1;;;10624:31;10672:19;;30222:64:0::1;10300:397:1::0;30222:64:0::1;-1:-1:-1::0;;;;;30297:18:0::1;30318:5;30297:18:::0;;;:9:::1;:18;::::0;;;;:26;;-1:-1:-1;;30297:26:0::1;::::0;;30151:180::o;31370:95::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;31454:3:::1;31434:10;:17;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:23;;-1:-1:-1;;;;;31434:23:0;;;::::1;-1:-1:-1::0;;;;;;31434:23:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;31370:95:0:o;32683:359::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;32768:11:::1;:26:::0;;-1:-1:-1;;;;32768:26:0::1;-1:-1:-1::0;;;32768:26:0;::::1;;;;::::0;;32889:19:::1;::::0;-1:-1:-1;32889:24:0;32886:149:::1;;32952:12;32930:19;:34:::0;;;32997:26:::1;::::0;33012:11;;32997:26:::1;:::i;:::-;32979:15;:44:::0;32886:149:::1;32683:359:::0;;:::o;11482:192::-;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11571:22:0;::::1;11563:73;;;::::0;-1:-1:-1;;;11563:73:0;;10904:2:1;11563:73:0::1;::::0;::::1;10886:21:1::0;10943:2;10923:18;;;10916:30;10982:34;10962:18;;;10955:62;-1:-1:-1;;;11033:18:1;;;11026:36;11079:19;;11563:73:0::1;10702:402:1::0;11563:73:0::1;11647:19;11657:8;11647:9;:19::i;31473:363::-:0;10978:6;;-1:-1:-1;;;;;10978:6:0;4128:10;11125:23;11117:68;;;;-1:-1:-1;;;11117:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;31552:22:0;::::1;31548:124;;10978:6:::0;;31591:48:::1;::::0;-1:-1:-1;;;;;10978:6:0;;;;31617:21:::1;31591:48:::0;::::1;;;::::0;::::1;::::0;;;31617:21;10978:6;31591:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;31548:124;31745:35;::::0;-1:-1:-1;;;31745:35:0;;31774:4:::1;31745:35;::::0;::::1;3213:51:1::0;31709:6:0;;31682:17:::1;::::0;-1:-1:-1;;;;;31745:20:0;::::1;::::0;::::1;::::0;3186:18:1;;31745:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31727:53;;31791:10;-1:-1:-1::0;;;;;31791:19:0::1;;31811:7;10978:6:::0;;-1:-1:-1;;;;;10978:6:0;;10905:87;31811:7:::1;31791:37;::::0;-1:-1:-1;;;;;;31791:37:0::1;::::0;;;;;;-1:-1:-1;;;;;11490:32:1;;;31791:37:0::1;::::0;::::1;11472:51:1::0;11539:18;;;11532:34;;;11445:18;;31791:37:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;31534:302;;31473:363:::0;:::o;9828:380::-;-1:-1:-1;;;;;9964:19:0;;9956:68;;;;-1:-1:-1;;;9956:68:0;;12029:2:1;9956:68:0;;;12011:21:1;12068:2;12048:18;;;12041:30;12107:34;12087:18;;;12080:62;-1:-1:-1;;;12158:18:1;;;12151:34;12202:19;;9956:68:0;11827:400:1;9956:68:0;-1:-1:-1;;;;;10043:21:0;;10035:68;;;;-1:-1:-1;;;10035:68:0;;12434:2:1;10035:68:0;;;12416:21:1;12473:2;12453:18;;;12446:30;12512:34;12492:18;;;12485:62;-1:-1:-1;;;12563:18:1;;;12556:32;12605:19;;10035:68:0;12232:398:1;10035:68:0;-1:-1:-1;;;;;10116:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10168:32;;1663:25:1;;;10168:32:0;;1636:18:1;10168:32:0;;;;;;;9828:380;;;:::o;28174:595::-;12480:7;;-1:-1:-1;;;12480:7:0;;;;28323:9;28315:56;;;;-1:-1:-1;;;28315:56:0;;12837:2:1;28315:56:0;;;12819:21:1;12876:2;12856:18;;;12849:30;12915:34;12895:18;;;12888:62;-1:-1:-1;;;12966:18:1;;;12959:32;13008:19;;28315:56:0;12635:398:1;28315:56:0;28405:10;32410:4;32434:18;;;:9;:18;;;;;;;;28390:26;28382:64;;;;-1:-1:-1;;;28382:64:0;;13240:2:1;28382:64:0;;;13222:21:1;13279:2;13259:18;;;13252:30;-1:-1:-1;;;13298:18:1;;;13291:55;13363:18;;28382:64:0;13038:349:1;28382:64:0;-1:-1:-1;;;;;32434:18:0;;32410:4;32434:18;;;:9;:18;;;;;;;;28465:25;28457:66;;;;-1:-1:-1;;;28457:66:0;;13594:2:1;28457:66:0;;;13576:21:1;13633:2;13613:18;;;13606:30;13672;13652:18;;;13645:58;13720:18;;28457:66:0;13392:352:1;28457:66:0;28557:9;32410:4;32434:18;;;:9;:18;;;;;;;;28542:25;28534:63;;;;-1:-1:-1;;;28534:63:0;;13240:2:1;28534:63:0;;;13222:21:1;13279:2;13259:18;;;13252:30;-1:-1:-1;;;13298:18:1;;;13291:55;13363:18;;28534:63:0;13038:349:1;28534:63:0;28621:9;;;;28618:89;;;28656:36;28666:6;28674:9;28685:6;28656:9;:36::i;:::-;28647:45;;28618:89;28719:42;28735:6;28743:9;28754:6;28719:15;:42::i;:::-;28174:595;;;:::o;23424:4738::-;23550:16;;;23564:1;23550:16;;;;;;;;23502:7;;;;23550:16;23564:1;23550:16;;;;;;;;;;-1:-1:-1;23550:16:0;23522:44;;23599:4;23577:8;23586:1;23577:11;;;;;;;;:::i;:::-;;;;;;:27;-1:-1:-1;;;;;23577:27:0;;;-1:-1:-1;;;;;23577:27:0;;;;;23629:17;;;;;;;;;-1:-1:-1;;;;;23629:17:0;-1:-1:-1;;;;;23629:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23615:8;23624:1;23615:11;;;;;;;;:::i;:::-;;;;;;:38;-1:-1:-1;;;;;23615:38:0;;;-1:-1:-1;;;;;23615:38:0;;;;;23678:16;23689:4;23678:10;:16::i;:::-;23677:17;:36;;;;;23699:14;23710:2;23699:10;:14::i;:::-;23698:15;23677:36;23674:4447;;;23730:11;23756:16;23784:11;;23775:6;:20;;;;:::i;:::-;23829:13;;23756:39;;-1:-1:-1;;;;;;23829:13:0;;;23813:30;;;;23810:3899;;23962:11;;-1:-1:-1;;;23962:11:0;;;;:46;;;;;23993:15;;23977:12;:31;;23962:46;23959:443;;;24040:13;:8;24051:2;24040:13;:::i;:::-;24033:20;;;;:::i;:::-;;-1:-1:-1;24089:13:0;:8;24100:2;24089:13;:::i;:::-;24076:9;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;23959:443:0;;-1:-1:-1;23959:443:0;;24169:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;;24158:8;:26;;;;:::i;:::-;24151:33;;;;:::i;:::-;;;24225:8;:21;;;;;:::i;:::-;;;;;;;;;;;;;;24214:8;:32;;;;:::i;:::-;24207:39;;;;:::i;:::-;;;24293:8;:15;;;;;:::i;:::-;;;;;;;;;;;;;;24282:8;:26;;;;:::i;:::-;24269:9;;:39;;;;;;;:::i;:::-;;;;-1:-1:-1;;24361:21:0;;:8;;:21;;;:::i;:::-;;;;;;;;;;;;;;24350:8;:32;;;;:::i;:::-;24331:15;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;;23959:443:0;24441:7;;24438:93;;24473:35;24483:4;24497;24504:3;24473:9;:35::i;:::-;23810:3899;;;24571:13;;-1:-1:-1;;;;;24571:13:0;;;24557:28;;;;24554:3155;;24649:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;;24638:8;:27;;;;:::i;:::-;24631:34;;;;:::i;:::-;;;24702:9;:22;;;;;:::i;:::-;;;;;;;;;;;;;;24691:8;:33;;;;:::i;:::-;24684:40;;;;:::i;:::-;;-1:-1:-1;24764:7:0;;24761:93;;24796:35;24806:4;24820;24827:3;24796:9;:35::i;:::-;24913:9;:16;;;;;:::i;:::-;;;;;;;;;;;;;;24902:8;:27;;;;:::i;:::-;24889:9;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;24978:22:0;;:9;;:22;;;:::i;:::-;;;;;;;;;;;;;;24967:8;:33;;;;:::i;:::-;24948:15;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;;25067:15:0;;25055:9;;25037:14;;25055:27;;;:::i;:::-;25037:45;;25122:6;25132:1;25122:11;25119:29;;25142:6;25135:13;;;;;;;;25119:29;25204:17;;25249:15;;25237:9;;25185:16;;25204:17;;;-1:-1:-1;;;;;25204:17:0;;:31;;25237:27;;25249:15;25237:27;:::i;:::-;25266:8;25204:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25204:71:0;;;;;;;;;;;;:::i;:::-;25276:1;25204:74;;;;;;;;:::i;:::-;;;;;;;25185:93;;25330:13;;25318:8;:25;25315:2361;;25466:15;;25391:21;;25368:20;;25466:19;;25484:1;;25466:19;:::i;:::-;25454:9;;:31;;;;:::i;:::-;25437:48;;25531:59;25548:4;25563:17;;;;;;;;;-1:-1:-1;;;;;25563:17:0;25583:6;25531:8;:59::i;:::-;25627:17;;:240;;-1:-1:-1;;;25627:240:0;;:17;;;;-1:-1:-1;;;;;25627:17:0;;:39;;:240;;25693:6;;25726:1;;25754:8;;25797:4;;25829:15;;25627:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25627:240:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;25912:17:0;25932:36;25956:12;25932:21;:36;:::i;:::-;25912:56;;26013:22;26056:1;26038:15;;:19;;;;:::i;:::-;26013:44;;26080:20;26161:6;26150;26136:1;26118:15;;:19;;;;:::i;:::-;:28;;26140:6;26118:28;:::i;:::-;26117:39;;;;:::i;:::-;26104:53;;:9;:53;:::i;:::-;26103:64;;;;:::i;:::-;26080:87;;26212:14;26277:6;26266;26244:9;;26256:6;26244:18;;;;:::i;:::-;26243:29;;;;:::i;:::-;26230:43;;:9;:43;:::i;:::-;26229:54;;;;:::i;:::-;26212:71;;26328:67;26345:4;26360:17;;;;;;;;;-1:-1:-1;;;;;26360:17:0;26380:14;26328:8;:67::i;:::-;26440:17;;;;;;;;;-1:-1:-1;;;;;26440:17:0;-1:-1:-1;;;;;26440:33:0;;26481:12;26529:4;26561:14;26602:1;26630;26658:10;:23;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26440:306:0;;;;;;;-1:-1:-1;;;;;17480:15:1;;;26440:306:0;;;17462:34:1;17512:18;;;17505:34;;;;17555:18;;;17548:34;;;;17598:18;;;17591:34;26658:23:0;;17641:19:1;;;17634:44;26708:15:0;17694:19:1;;;17687:35;17396:19;;26440:306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;26791:23;26859:14;26850:6;:23;;;;:::i;:::-;26830:15;;26818:9;;:27;;;;:::i;:::-;26817:57;;;;:::i;:::-;26791:83;-1:-1:-1;26922:19:0;;26919:135;;26970:60;26988:4;26995:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;26995:17:0;27014:15;26970:9;:60::i;:::-;27098:12;27115:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;27115:17:0;;27145:6;;27115:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27097:59;;;27186:7;27178:50;;;;-1:-1:-1;;;27178:50:0;;18456:2:1;27178:50:0;;;18438:21:1;18495:2;18475:18;;;18468:30;18534:32;18514:18;;;18507:60;18584:18;;27178:50:0;18254:354:1;27178:50:0;27315:1;27290:21;27299:12;27290:6;:21;:::i;:::-;27276:36;;:9;:36;:::i;:::-;:40;27273:262;;;27345:13;27363:10;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;27363:17:0;27406:21;27415:12;27406:6;:21;:::i;:::-;27393:35;;:9;:35;:::i;:::-;27363:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27344:89;;;27468:8;27460:51;;;;-1:-1:-1;;;27460:51:0;;18456:2:1;27460:51:0;;;18438:21:1;18495:2;18475:18;;;18468:30;18534:32;18514:18;;;18507:60;18584:18;;27460:51:0;18254:354:1;27460:51:0;27318:217;27273:262;-1:-1:-1;;27591:1:0;27579:9;:13;;;27615:15;:19;-1:-1:-1;;;;;;25315:2361:0;24587:3122;;24554:3155;27737:13;27747:3;27737:13;;:::i;:::-;27783;;27737;;-1:-1:-1;;;;;;27769:28:0;;;27783:13;;27769:28;27765:140;;27851:9;;27841:6;27825:13;27835:2;-1:-1:-1;;;;;5819:18:0;5792:7;5819:18;;;;;;;;;;;;5718:127;27825:13;:22;;;;:::i;:::-;:35;;27817:72;;;;-1:-1:-1;;;27817:72:0;;18815:2:1;27817:72:0;;;18797:21:1;18854:2;18834:18;;;18827:30;18893:26;18873:18;;;18866:54;18937:18;;27817:72:0;18613:348:1;27817:72:0;27958:11;;-1:-1:-1;;;27958:11:0;;;;27954:143;;-1:-1:-1;;;;;27998:15:0;;;;;;:9;:15;;;;;;;;27990:91;;;;-1:-1:-1;;;27990:91:0;;19168:2:1;27990:91:0;;;19150:21:1;19207:2;19187:18;;;19180:30;19246:34;19226:18;;;19219:62;19317:33;19297:18;;;19290:61;19368:19;;27990:91:0;18966:427:1;27990:91:0;23715:4406;;23674:4447;-1:-1:-1;28148:6:0;;23424:4738;-1:-1:-1;;;23424:4738:0:o;13145:120::-;12480:7;;-1:-1:-1;;;12480:7:0;;;;12681:41;;;;-1:-1:-1;;;12681:41:0;;19600:2:1;12681:41:0;;;19582:21:1;19639:2;19619:18;;;19612:30;-1:-1:-1;;;19658:18:1;;;19651:50;19718:18;;12681:41:0;19398:344:1;12681:41:0;13204:7:::1;:15:::0;;-1:-1:-1;;;;13204:15:0::1;::::0;;13235:22:::1;4128:10:::0;13244:12:::1;13235:22;::::0;-1:-1:-1;;;;;3231:32:1;;;3213:51;;3201:2;3186:18;13235:22:0::1;;;;;;;13145:120::o:0;9209:591::-;-1:-1:-1;;;;;9293:21:0;;9285:67;;;;-1:-1:-1;;;9285:67:0;;19949:2:1;9285:67:0;;;19931:21:1;19988:2;19968:18;;;19961:30;20027:34;20007:18;;;20000:62;-1:-1:-1;;;20078:18:1;;;20071:31;20119:19;;9285:67:0;19747:397:1;9285:67:0;-1:-1:-1;;;;;9452:18:0;;9427:22;9452:18;;;;;;;;;;;9489:24;;;;9481:71;;;;-1:-1:-1;;;9481:71:0;;20351:2:1;9481:71:0;;;20333:21:1;20390:2;20370:18;;;20363:30;20429:34;20409:18;;;20402:62;-1:-1:-1;;;20480:18:1;;;20473:32;20522:19;;9481:71:0;20149:398:1;9481:71:0;-1:-1:-1;;;;;9588:18:0;;:9;:18;;;;;;;;;;9609:23;;;9588:44;;9654:12;:22;;9626:6;;9588:9;9654:22;;9626:6;;9654:22;:::i;:::-;;;;-1:-1:-1;;9694:37:0;;1663:25:1;;;9720:1:0;;-1:-1:-1;;;;;9694:37:0;;;;;1651:2:1;1636:18;9694:37:0;;;;;;;28174:595;;;:::o;11682:174::-;11758:6;;;-1:-1:-1;;;;;11775:17:0;;;-1:-1:-1;;;;;;11775:17:0;;;;;;;11808:40;;11758:6;;;11775:17;11758:6;;11808:40;;11739:16;;11808:40;11728:128;11682:174;:::o;12886:118::-;12480:7;;-1:-1:-1;;;12480:7:0;;;;12570:9;12562:38;;;;-1:-1:-1;;;12562:38:0;;20754:2:1;12562:38:0;;;20736:21:1;20793:2;20773:18;;;20766:30;-1:-1:-1;;;20812:18:1;;;20805:46;20868:18;;12562:38:0;20552:340:1;12562:38:0;12946:7:::1;:14:::0;;-1:-1:-1;;;;12946:14:0::1;-1:-1:-1::0;;;12946:14:0::1;::::0;;12976:20:::1;12983:12;4128:10:::0;;4048:98;8012:733;-1:-1:-1;;;;;8152:20:0;;8144:70;;;;-1:-1:-1;;;8144:70:0;;21099:2:1;8144:70:0;;;21081:21:1;21138:2;21118:18;;;21111:30;21177:34;21157:18;;;21150:62;-1:-1:-1;;;21228:18:1;;;21221:35;21273:19;;8144:70:0;20897:401:1;8144:70:0;-1:-1:-1;;;;;8233:23:0;;8225:71;;;;-1:-1:-1;;;8225:71:0;;21505:2:1;8225:71:0;;;21487:21:1;21544:2;21524:18;;;21517:30;21583:34;21563:18;;;21556:62;-1:-1:-1;;;21634:18:1;;;21627:33;21677:19;;8225:71:0;21303:399:1;8225:71:0;-1:-1:-1;;;;;8393:17:0;;8369:21;8393:17;;;;;;;;;;;8429:23;;;;8421:74;;;;-1:-1:-1;;;8421:74:0;;21909:2:1;8421:74:0;;;21891:21:1;21948:2;21928:18;;;21921:30;21987:34;21967:18;;;21960:62;-1:-1:-1;;;22038:18:1;;;22031:36;22084:19;;8421:74:0;21707:402:1;8421:74:0;-1:-1:-1;;;;;8531:17:0;;;:9;:17;;;;;;;;;;;8551:22;;;8531:42;;8595:20;;;;;;;;:30;;8567:6;;8531:9;8595:30;;8567:6;;8595:30;:::i;:::-;;;;;;;;8660:9;-1:-1:-1;;;;;8643:35:0;8652:6;-1:-1:-1;;;;;8643:35:0;;8671:6;8643:35;;;;1663:25:1;;1651:2;1636:18;;1517:177;8643:35:0;;;;;;;;8691:46;28174:595;14:248:1;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:597::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;705:6;702:1;699:13;696:91;;;775:1;770:2;761:6;750:9;746:22;742:31;735:42;696:91;-1:-1:-1;848:2:1;827:15;-1:-1:-1;;823:29:1;808:45;;;;855:2;804:54;;267:597;-1:-1:-1;;;267:597:1:o;869:131::-;-1:-1:-1;;;;;944:31:1;;934:42;;924:70;;990:1;987;980:12;1005:315;1073:6;1081;1134:2;1122:9;1113:7;1109:23;1105:32;1102:52;;;1150:1;1147;1140:12;1102:52;1189:9;1176:23;1208:31;1233:5;1208:31;:::i;:::-;1258:5;1310:2;1295:18;;;;1282:32;;-1:-1:-1;;;1005:315:1:o;1699:456::-;1776:6;1784;1792;1845:2;1833:9;1824:7;1820:23;1816:32;1813:52;;;1861:1;1858;1851:12;1813:52;1900:9;1887:23;1919:31;1944:5;1919:31;:::i;:::-;1969:5;-1:-1:-1;2026:2:1;2011:18;;1998:32;2039:33;1998:32;2039:33;:::i;:::-;1699:456;;2091:7;;-1:-1:-1;;;2145:2:1;2130:18;;;;2117:32;;1699:456::o;2160:118::-;2246:5;2239:13;2232:21;2225:5;2222:32;2212:60;;2268:1;2265;2258:12;2283:382;2348:6;2356;2409:2;2397:9;2388:7;2384:23;2380:32;2377:52;;;2425:1;2422;2415:12;2377:52;2464:9;2451:23;2483:31;2508:5;2483:31;:::i;:::-;2533:5;-1:-1:-1;2590:2:1;2575:18;;2562:32;2603:30;2562:32;2603:30;:::i;:::-;2652:7;2642:17;;;2283:382;;;;;:::o;2859:180::-;2918:6;2971:2;2959:9;2950:7;2946:23;2942:32;2939:52;;;2987:1;2984;2977:12;2939:52;-1:-1:-1;3010:23:1;;2859:180;-1:-1:-1;2859:180:1:o;3275:247::-;3334:6;3387:2;3375:9;3366:7;3362:23;3358:32;3355:52;;;3403:1;3400;3393:12;3355:52;3442:9;3429:23;3461:31;3486:5;3461:31;:::i;3735:388::-;3803:6;3811;3864:2;3852:9;3843:7;3839:23;3835:32;3832:52;;;3880:1;3877;3870:12;3832:52;3919:9;3906:23;3938:31;3963:5;3938:31;:::i;:::-;3988:5;-1:-1:-1;4045:2:1;4030:18;;4017:32;4058:33;4017:32;4058:33;:::i;4128:309::-;4193:6;4201;4254:2;4242:9;4233:7;4229:23;4225:32;4222:52;;;4270:1;4267;4260:12;4222:52;4309:9;4296:23;4328:28;4350:5;4328:28;:::i;4442:356::-;4644:2;4626:21;;;4663:18;;;4656:30;4722:34;4717:2;4702:18;;4695:62;4789:2;4774:18;;4442:356::o;4803:253::-;-1:-1:-1;;;5005:18:1;;5048:1;5039:11;;4803:253::o;5061:259::-;-1:-1:-1;;;5263:24:1;;5312:1;5303:11;;5061:259::o;5325:380::-;5404:1;5400:12;;;;5447;;;5468:61;;5522:4;5514:6;5510:17;5500:27;;5468:61;5575:2;5567:6;5564:14;5544:18;5541:38;5538:161;;5621:10;5616:3;5612:20;5609:1;5602:31;5656:4;5653:1;5646:15;5684:4;5681:1;5674:15;5538:161;;5325:380;;;:::o;6471:127::-;6532:10;6527:3;6523:20;6520:1;6513:31;6563:4;6560:1;6553:15;6587:4;6584:1;6577:15;6603:128;6643:3;6674:1;6670:6;6667:1;6664:13;6661:39;;;6680:18;;:::i;:::-;-1:-1:-1;6716:9:1;;6603:128::o;8195:168::-;8235:7;8301:1;8297;8293:6;8289:14;8286:1;8283:21;8278:1;8271:9;8264:17;8260:45;8257:71;;;8308:18;;:::i;:::-;-1:-1:-1;8348:9:1;;8195:168::o;11109:184::-;11179:6;11232:2;11220:9;11211:7;11207:23;11203:32;11200:52;;;11248:1;11245;11238:12;11200:52;-1:-1:-1;11271:16:1;;11109:184;-1:-1:-1;11109:184:1:o;11577:245::-;11644:6;11697:2;11685:9;11676:7;11672:23;11668:32;11665:52;;;11713:1;11710;11703:12;11665:52;11745:9;11739:16;11764:28;11786:5;11764:28;:::i;13749:127::-;13810:10;13805:3;13801:20;13798:1;13791:31;13841:4;13838:1;13831:15;13865:4;13862:1;13855:15;13881:127;13942:10;13937:3;13933:20;13930:1;13923:31;13973:4;13970:1;13963:15;13997:4;13994:1;13987:15;14013:251;14083:6;14136:2;14124:9;14115:7;14111:23;14107:32;14104:52;;;14152:1;14149;14142:12;14104:52;14184:9;14178:16;14203:31;14228:5;14203:31;:::i;14269:217::-;14309:1;14335;14325:132;;14379:10;14374:3;14370:20;14367:1;14360:31;14414:4;14411:1;14404:15;14442:4;14439:1;14432:15;14325:132;-1:-1:-1;14471:9:1;;14269:217::o;14491:461::-;14544:3;14582:5;14576:12;14609:6;14604:3;14597:19;14635:4;14664:2;14659:3;14655:12;14648:19;;14701:2;14694:5;14690:14;14722:1;14732:195;14746:6;14743:1;14740:13;14732:195;;;14811:13;;-1:-1:-1;;;;;14807:39:1;14795:52;;14867:12;;;;14902:15;;;;14843:1;14761:9;14732:195;;;-1:-1:-1;14943:3:1;;14491:461;-1:-1:-1;;;;;14491:461:1:o;14957:332::-;15164:6;15153:9;15146:25;15207:2;15202;15191:9;15187:18;15180:30;15127:4;15227:56;15279:2;15268:9;15264:18;15256:6;15227:56;:::i;:::-;15219:64;14957:332;-1:-1:-1;;;;14957:332:1:o;15294:1105::-;15389:6;15420:2;15463;15451:9;15442:7;15438:23;15434:32;15431:52;;;15479:1;15476;15469:12;15431:52;15512:9;15506:16;15541:18;15582:2;15574:6;15571:14;15568:34;;;15598:1;15595;15588:12;15568:34;15636:6;15625:9;15621:22;15611:32;;15681:7;15674:4;15670:2;15666:13;15662:27;15652:55;;15703:1;15700;15693:12;15652:55;15732:2;15726:9;15754:2;15750;15747:10;15744:36;;;15760:18;;:::i;:::-;15806:2;15803:1;15799:10;15838:2;15832:9;15901:2;15897:7;15892:2;15888;15884:11;15880:25;15872:6;15868:38;15956:6;15944:10;15941:22;15936:2;15924:10;15921:18;15918:46;15915:72;;;15967:18;;:::i;:::-;16003:2;15996:22;16053:18;;;16087:15;;;;-1:-1:-1;16129:11:1;;;16125:20;;;16157:19;;;16154:39;;;16189:1;16186;16179:12;16154:39;16213:11;;;;16233:135;16249:6;16244:3;16241:15;16233:135;;;16315:10;;16303:23;;16266:12;;;;16346;;;;16233:135;;;16387:6;15294:1105;-1:-1:-1;;;;;;;;15294:1105:1:o;16404:582::-;16703:6;16692:9;16685:25;16746:6;16741:2;16730:9;16726:18;16719:34;16789:3;16784:2;16773:9;16769:18;16762:31;16666:4;16810:57;16862:3;16851:9;16847:19;16839:6;16810:57;:::i;:::-;-1:-1:-1;;;;;16903:32:1;;;;16898:2;16883:18;;16876:60;-1:-1:-1;16967:3:1;16952:19;16945:35;16802:65;16404:582;-1:-1:-1;;;16404:582:1:o;16991:125::-;17031:4;17059:1;17056;17053:8;17050:34;;;17064:18;;:::i;:::-;-1:-1:-1;17101:9:1;;16991:125::o;17733:306::-;17821:6;17829;17837;17890:2;17878:9;17869:7;17865:23;17861:32;17858:52;;;17906:1;17903;17896:12;17858:52;17935:9;17929:16;17919:26;;17985:2;17974:9;17970:18;17964:25;17954:35;;18029:2;18018:9;18014:18;18008:25;17998:35;;17733:306;;;;;:::o

Swarm Source

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