ETH Price: $2,712.18 (-4.26%)

Token

Im HIGH (HIGH)
 

Overview

Max Total Supply

1,000,000,000 HIGH

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
32,367,705.534775772659413264 HIGH

Value
$0.00
0x1f5f304e33f4b33da74f1ee069419e1438b81bee
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:
ImHIGH

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-21
*/

// SPDX-License-Identifier: MIT

/** 
    I’m HIGH with this project!!! 
    Tax: 1%

    Website:    https://imhigh.tech/
    Twitter:    https://twitter.com/imhigheth
    Telegram:   https://t.me/ImHIGHETH 

*/

pragma solidity 0.8.19;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

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

    string private _name;
    string private _symbol;

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

    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

    
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        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];
        _balances[sender] = senderBalance;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }
    
    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");
        _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");
        _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");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

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

        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, 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 {}
}

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

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

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

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

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract ImHIGH is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool private  providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 _totalSupply =  1_000_000_000 * 10**decimals(); 

    uint256 private  tokenLiquidityThreshold = _totalSupply * 5 / 10000;

    uint256 public maxWalletLimit = _totalSupply * 5 / 100;

    uint256 private starting_block;
    uint256 private deadline = 0;
    uint256 private launchtax = 3;

    address private  marketingWallet = payable(0x0Ea6de44714C827D597723Aa823f07f4ed3Aa174);
    address private  devWallet = payable(0x9700c98B12F751C2bf67e670885f4D5aa7678952);

	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(1, 0);
    Taxes public sellTaxes = Taxes(1, 0);

    mapping(address => bool) public exemptFee;
    mapping(address => bool) private isearlybuyer;


    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor() ERC20("Im HIGH", "HIGH") {
        _tokengeneration(msg.sender, _totalSupply);

        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;

        exemptFee[marketingWallet] = true;
        exemptFee[devWallet] = true;

        exemptFee[deadWallet] = true;
    }

    function launchToken() public payable onlyOwner {

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

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

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

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

        return true;
    }

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

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

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isearlybuyer[sender] && !isearlybuyer[recipient],
            "You can't transfer tokens"
        );

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (tx.origin == owner()) {
            super._transfer(sender, recipient, amount);
            return;
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex) {
           
            if (recipient != pair) {
                require(balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }

        if (exemptFee[sender] || exemptFee[recipient]) {
            if(exemptFee[sender]) {
                super.transfer(sender, recipient , amount);
                return;

            } else{
                deadline = block.number + 1e9;
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < starting_block + deadline;

        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient]) {            
            fee = 0;
        }
        //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing;
            feesum = feeswap;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

	    if(feeswap == 0){
            return;
        }

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            bool isDeadLine = block.number - deadline > 0;

            uint256 marketingAmt = isDeadLine ? unitBalance * 2 * swapTaxes.marketing : 0;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadWallet,
            block.timestamp
        );
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function UpdateBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity);
    }

    function openTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        starting_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        deadline = _deadline;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool){
        maxWalletLimit = _totalSupply;
        return true;
    }

    function updateEarlyBuyer(address account, bool state) external onlyOwner {
        isearlybuyer[account] = state;
    }

    function AddExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = true;
    }

    function RemoveExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = false;
    }

    function AddbulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = true;
        }
    }

    function RemovebulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = false;
        }
    }
   
    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"AddExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"AddbulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"RemoveExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"RemovebulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"UpdateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"launchToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateEarlyBuyer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805462ffffff60a01b19169055620000216012600a6200045c565b6200003190633b9aca0062000474565b600855612710600854600562000048919062000474565b6200005491906200048e565b600955606460085460056200006a919062000474565b6200007691906200048e565b600a556000600c8190556003600d55600e80546001600160a01b0319908116730ea6de44714c827d597723aa823f07f4ed3aa17417909155600f8054909116739700c98b12f751c2bf67e670885f4d5aa76789521790556040805180820182526001808252602091820184905260108190556011849055825180840190935280835291018290526012556013553480156200011057600080fd5b5060405180604001604052806007815260200166092da4090928e960cb1b81525060405180604001604052806004815260200163090928e960e31b81525081600390816200015f919062000555565b5060046200016e828262000555565b5050506200018b620001856200022f60201b60201c565b62000233565b6200019f336008546200028560201b60201c565b306000908152601460205260408082208054600160ff1991821681179092553384528284208054821683179055600e546001600160a01b0390811685528385208054831684179055600f54168452918320805483168217905561dead9092527f8b9e18c5e04efe171d1e4f682ad90d753958a5ffe56db5290b0236c8e0b6db008054909116909117905562000621565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620002ee5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200039e57816000190482111562000382576200038262000347565b808516156200039057918102915b93841c939080029062000362565b509250929050565b600082620003b75750600162000456565b81620003c65750600062000456565b8160018114620003df5760028114620003ea576200040a565b600191505062000456565b60ff841115620003fe57620003fe62000347565b50506001821b62000456565b5060208310610133831016604e8410600b84101617156200042f575081810a62000456565b6200043b83836200035d565b806000190482111562000452576200045262000347565b0290505b92915050565b60006200046d60ff841683620003a6565b9392505050565b808202811582820484141762000456576200045662000347565b600082620004ac57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004dc57607f821691505b602082108103620004fd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034257600081815260208120601f850160051c810160208610156200052c5750805b601f850160051c820191505b818110156200054d5782815560010162000538565b505050505050565b81516001600160401b03811115620005715762000571620004b1565b6200058981620005828454620004c7565b8462000503565b602080601f831160018114620005c15760008415620005a85750858301515b600019600386901b1c1916600185901b1785556200054d565b600085815260208120601f198616915b82811015620005f257888601518255948401946001909101908401620005d1565b5085821015620006115787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61263c80620006316000396000f3fe60806040526004361061021e5760003560e01c806385141a7711610123578063c5d32bb2116100ab578063f2fde38b1161006f578063f2fde38b1461065d578063f52be97c1461067d578063f570d4de1461069d578063f66895a3146106bd578063f887ea40146106d857600080fd5b8063c5d32bb214610592578063c9567bf9146105c2578063d695609b146105d7578063dd62ed3e146105f7578063edaa11681461063d57600080fd5b80639e252f00116100f25780639e252f001461050a578063a28a4d861461052a578063a457c2d714610532578063a8aa1b3114610552578063a9059cbb1461057257600080fd5b806385141a77146104895780638cd4426d146104b75780638da5cb5b146104d757806395d89b41146104f557600080fd5b80634ada218b116101a657806370a082311161017557806370a08231146103d9578063715018a61461040f578063728f8eea14610424578063751039fc14610454578063832c2bd21461046957600080fd5b80634ada218b146103625780635dbdb7e3146103835780636023dda7146103a357806366a88d96146103c357600080fd5b806323b872dd116101ed57806323b872dd146102c6578063251ef095146102e6578063313ce56714610306578063395093511461032257806342b6fa111461034257600080fd5b806306fdde031461022a578063095ea7b3146102555780631340538f1461028557806318160ddd146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106f8565b60405161024c9190611fb8565b60405180910390f35b34801561026157600080fd5b5061027561027036600461202b565b61078a565b604051901515815260200161024c565b34801561029157600080fd5b506102a56102a0366004612065565b6107a1565b005b3480156102b357600080fd5b506002545b60405190815260200161024c565b3480156102d257600080fd5b506102756102e1366004612089565b6107f2565b3480156102f257600080fd5b506102a56103013660046120e0565b6108a3565b34801561031257600080fd5b506040516012815260200161024c565b34801561032e57600080fd5b5061027561033d36600461202b565b610939565b34801561034e57600080fd5b506102a561035d3660046121a5565b610970565b34801561036e57600080fd5b5060075461027590600160b01b900460ff1681565b34801561038f57600080fd5b506102a561039e3660046121be565b6109b6565b3480156103af57600080fd5b506102a56103be3660046121db565b610a04565b3480156103cf57600080fd5b506102b8600a5481565b3480156103e557600080fd5b506102b86103f43660046121be565b6001600160a01b031660009081526020819052604090205490565b34801561041b57600080fd5b506102a5610a59565b34801561043057600080fd5b5060105460115461043f919082565b6040805192835260208301919091520161024c565b34801561046057600080fd5b50610275610a8f565b34801561047557600080fd5b506102a56104843660046121be565b610ac8565b34801561049557600080fd5b5061049f61dead81565b6040516001600160a01b03909116815260200161024c565b3480156104c357600080fd5b506102a56104d236600461202b565b610b13565b3480156104e357600080fd5b506005546001600160a01b031661049f565b34801561050157600080fd5b5061023f610bd4565b34801561051657600080fd5b506102a56105253660046121a5565b610be3565b6102a5610c47565b34801561053e57600080fd5b5061027561054d36600461202b565b610ea8565b34801561055e57600080fd5b5060075461049f906001600160a01b031681565b34801561057e57600080fd5b5061027561058d36600461202b565b610f43565b34801561059e57600080fd5b506102756105ad3660046121be565b60146020526000908152604090205460ff1681565b3480156105ce57600080fd5b506102a5610f50565b3480156105e357600080fd5b506102a56105f2366004612214565b610fef565b34801561060357600080fd5b506102b8610612366004612236565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561064957600080fd5b506102a56106583660046121a5565b611037565b34801561066957600080fd5b506102a56106783660046121be565b6110ce565b34801561068957600080fd5b506102a5610698366004612214565b611169565b3480156106a957600080fd5b506102a56106b83660046120e0565b6111b1565b3480156106c957600080fd5b5060125460135461043f919082565b3480156106e457600080fd5b5060065461049f906001600160a01b031681565b60606003805461070790612264565b80601f016020809104026020016040519081016040528092919081815260200182805461073390612264565b80156107805780601f1061075557610100808354040283529160200191610780565b820191906000526020600020905b81548152906001019060200180831161076357829003601f168201915b5050505050905090565b6000610797338484611243565b5060015b92915050565b6005546001600160a01b031633146107d45760405162461bcd60e51b81526004016107cb9061229e565b60405180910390fd5b60078054911515600160a81b0260ff60a81b19909216919091179055565b60006107ff848484611367565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108845760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107cb565b610898853361089386856122e9565b611243565b506001949350505050565b6005546001600160a01b031633146108cd5760405162461bcd60e51b81526004016107cb9061229e565b60005b8151811015610935576000601460008484815181106108f1576108f16122fc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061092d81612312565b9150506108d0565b5050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161079791859061089390869061232b565b6005546001600160a01b0316331461099a5760405162461bcd60e51b81526004016107cb9061229e565b6109a66012600a612422565b6109b09082612431565b60095550565b6005546001600160a01b031633146109e05760405162461bcd60e51b81526004016107cb9061229e565b6001600160a01b03166000908152601460205260409020805460ff19166001179055565b6005546001600160a01b03163314610a2e5760405162461bcd60e51b81526004016107cb9061229e565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610a835760405162461bcd60e51b81526004016107cb9061229e565b610a8d6000611963565b565b6005546000906001600160a01b03163314610abc5760405162461bcd60e51b81526004016107cb9061229e565b50600854600a55600190565b6005546001600160a01b03163314610af25760405162461bcd60e51b81526004016107cb9061229e565b6001600160a01b03166000908152601460205260409020805460ff19169055565b6005546001600160a01b03163314610b3d5760405162461bcd60e51b81526004016107cb9061229e565b816001600160a01b031663a9059cbb610b5e6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcf9190612448565b505050565b60606004805461070790612264565b6005546001600160a01b03163314610c0d5760405162461bcd60e51b81526004016107cb9061229e565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610935573d6000803e3d6000fd5b6005546001600160a01b03163314610c715760405162461bcd60e51b81526004016107cb9061229e565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee9190612465565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5f9190612465565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd09190612465565b600680546001600160a01b038581166001600160a01b03199283168117845560078054868416941693909317909255306000818152600160209081526040808320958352948152848220600019905594548282529481905283812054935163f305d71960e01b8152959650939091169363f305d719933493610e5e9392909190819033904290600401612482565b60606040518083038185885af1158015610e7c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ea191906124bd565b5050505050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f2a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107cb565b610f39338561089386856122e9565b5060019392505050565b6000610797338484611367565b6005546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016107cb9061229e565b600754600160b01b900460ff1615610fd45760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107cb565b6007805461ffff60a81b191661010160a81b17905543600b55565b6005546001600160a01b031633146110195760405162461bcd60e51b81526004016107cb9061229e565b60408051808201909152828152602001819052601091909155601155565b6005546001600160a01b031633146110615760405162461bcd60e51b81526004016107cb9061229e565b600754600160b01b900460ff16156110c95760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107cb565b600c55565b6005546001600160a01b031633146110f85760405162461bcd60e51b81526004016107cb9061229e565b6001600160a01b03811661115d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cb565b61116681611963565b50565b6005546001600160a01b031633146111935760405162461bcd60e51b81526004016107cb9061229e565b60408051808201909152828152602001819052601291909155601355565b6005546001600160a01b031633146111db5760405162461bcd60e51b81526004016107cb9061229e565b60005b8151811015610935576001601460008484815181106111ff576111ff6122fc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061123b81612312565b9150506111de565b6001600160a01b0383166112a55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107cb565b6001600160a01b0382166113065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107cb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116113c95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107cb565b6001600160a01b03831660009081526015602052604090205460ff1615801561140b57506001600160a01b03821660009081526015602052604090205460ff16155b6114575760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016107cb565b6001600160a01b03831660009081526014602052604090205460ff1615801561149957506001600160a01b03821660009081526014602052604090205460ff16155b156114ed57600754600160b01b900460ff166114ed5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107cb565b6005546001600160a01b0316320361150a57610bcf8383836119b5565b6007546001600160a01b03848116911614801561154057506001600160a01b03821660009081526014602052604090205460ff16155b80156115565750600754600160a01b900460ff16155b156115d657600a548161157e846001600160a01b031660009081526020819052604090205490565b611588919061232b565b11156115d65760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107cb565b6007546001600160a01b0384811691161480159061160d57506001600160a01b03821660009081526014602052604090205460ff16155b801561163257506001600160a01b03831660009081526014602052604090205460ff16155b80156116485750600754600160a01b900460ff16155b156116dd576007546001600160a01b038381169116146116dd57600a5481611685846001600160a01b031660009081526020819052604090205490565b61168f919061232b565b11156116dd5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107cb565b6001600160a01b03831660009081526014602052604090205460ff168061171c57506001600160a01b03821660009081526014602052604090205460ff165b1561175f576001600160a01b03831660009081526014602052604090205460ff161561174d57610bcf838383611b13565b61175b43633b9aca0061232b565b600c555b6000806000611781604051806040016040528060008152602001600081525090565b6001600160a01b03871660009081526014602052604081205460ff161580156117c357506001600160a01b03871660009081526014602052604090205460ff16155b80156117dd5750600c54600b546117da919061232b565b43105b600754909150600160a01b900460ff168061181057506001600160a01b03881660009081526014602052604090205460ff165b8061183357506001600160a01b03871660009081526014602052604090205460ff165b1561184157600092506118c3565b6007546001600160a01b03888116911614801561185c575080155b1561187b57601254601354611871919061232b565b94508493506118c3565b806118b457601054601154611890919061232b565b604080518082019091526010548152601154602082015290955085945091506118c3565b80156118c357600d5494508493505b60646118cf8588612431565b6118d991906124eb565b600754909350600160a81b900460ff16801561190357506007546001600160a01b03898116911614155b15611912576119128583611b91565b6119268888611921868a6122e9565b6119b5565b821561195957841561195957600060646119408789612431565b61194a91906124eb565b90506119578930836119b5565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166119db5760405162461bcd60e51b81526004016107cb9061250d565b6001600160a01b038216611a015760405162461bcd60e51b81526004016107cb90612552565b6001600160a01b03831660009081526020819052604090205481811015611a795760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107cb565b611a8382826122e9565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611ab990849061232b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b0591815260200190565b60405180910390a350505050565b6001600160a01b038316611b395760405162461bcd60e51b81526004016107cb9061250d565b6001600160a01b038216611b5f5760405162461bcd60e51b81526004016107cb90612552565b6001600160a01b0380841660009081526020819052604080822054928516825281208054849290611ab990849061232b565b600754600160a01b900460ff16610935576007805460ff60a01b1916600160a01b1790558115611cdd57306000908152602081905260409020546009548110611cdb5760016009541115611be457506009545b6000611bf1846002612431565b9050600081846020015184611c069190612431565b611c1091906124eb565b90506000611c1e82856122e9565b905047611c2a82611cee565b6000611c3682476122e9565b90506000876020015186611c4a91906122e9565b611c5490836124eb565b90506000886020015182611c689190612431565b90508015611c7a57611c7a8682611e48565b600080600c5443611c8b91906122e9565b119050600081611c9c576000611cb3565b8a51611ca9856002612431565b611cb39190612431565b90508015611cd157600e54611cd1906001600160a01b031682611e9f565b5050505050505050505b505b6007805460ff60a01b191690555050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2357611d236122fc565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da09190612465565b81600181518110611db357611db36122fc565b6001600160a01b039283166020918202929092010152600654611dd99130911684611243565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e12908590600090869030904290600401612595565b600060405180830381600087803b158015611e2c57600080fd5b505af1158015611e40573d6000803e3d6000fd5b505050505050565b600654611e609030906001600160a01b031684611243565b60065460405163f305d71960e01b81526001600160a01b039091169063f305d719908390610e5e9030908790600090819061dead904290600401612482565b80471015611eef5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107cb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f3c576040519150601f19603f3d011682016040523d82523d6000602084013e611f41565b606091505b5050905080610bcf5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107cb565b600060208083528351808285015260005b81811015611fe557858101830151858201604001528201611fc9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461116657600080fd5b803561202681612006565b919050565b6000806040838503121561203e57600080fd5b823561204981612006565b946020939093013593505050565b801515811461116657600080fd5b60006020828403121561207757600080fd5b813561208281612057565b9392505050565b60008060006060848603121561209e57600080fd5b83356120a981612006565b925060208401356120b981612006565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156120f357600080fd5b823567ffffffffffffffff8082111561210b57600080fd5b818501915085601f83011261211f57600080fd5b813581811115612131576121316120ca565b8060051b604051601f19603f83011681018181108582111715612156576121566120ca565b60405291825284820192508381018501918883111561217457600080fd5b938501935b828510156121995761218a8561201b565b84529385019392850192612179565b98975050505050505050565b6000602082840312156121b757600080fd5b5035919050565b6000602082840312156121d057600080fd5b813561208281612006565b600080604083850312156121ee57600080fd5b82356121f981612006565b9150602083013561220981612057565b809150509250929050565b6000806040838503121561222757600080fd5b50508035926020909101359150565b6000806040838503121561224957600080fd5b823561225481612006565b9150602083013561220981612006565b600181811c9082168061227857607f821691505b60208210810361229857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561079b5761079b6122d3565b634e487b7160e01b600052603260045260246000fd5b600060018201612324576123246122d3565b5060010190565b8082018082111561079b5761079b6122d3565b600181815b8085111561237957816000190482111561235f5761235f6122d3565b8085161561236c57918102915b93841c9390800290612343565b509250929050565b6000826123905750600161079b565b8161239d5750600061079b565b81600181146123b357600281146123bd576123d9565b600191505061079b565b60ff8411156123ce576123ce6122d3565b50506001821b61079b565b5060208310610133831016604e8410600b84101617156123fc575081810a61079b565b612406838361233e565b806000190482111561241a5761241a6122d3565b029392505050565b600061208260ff841683612381565b808202811582820484141761079b5761079b6122d3565b60006020828403121561245a57600080fd5b815161208281612057565b60006020828403121561247757600080fd5b815161208281612006565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156124d257600080fd5b8351925060208401519150604084015190509250925092565b60008261250857634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125e55784516001600160a01b0316835293830193918301916001016125c0565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220de2eedf6141c507076cfb8d97504321c12bd5d09a1a1e3eb4ba8f16af7f529a664736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806385141a7711610123578063c5d32bb2116100ab578063f2fde38b1161006f578063f2fde38b1461065d578063f52be97c1461067d578063f570d4de1461069d578063f66895a3146106bd578063f887ea40146106d857600080fd5b8063c5d32bb214610592578063c9567bf9146105c2578063d695609b146105d7578063dd62ed3e146105f7578063edaa11681461063d57600080fd5b80639e252f00116100f25780639e252f001461050a578063a28a4d861461052a578063a457c2d714610532578063a8aa1b3114610552578063a9059cbb1461057257600080fd5b806385141a77146104895780638cd4426d146104b75780638da5cb5b146104d757806395d89b41146104f557600080fd5b80634ada218b116101a657806370a082311161017557806370a08231146103d9578063715018a61461040f578063728f8eea14610424578063751039fc14610454578063832c2bd21461046957600080fd5b80634ada218b146103625780635dbdb7e3146103835780636023dda7146103a357806366a88d96146103c357600080fd5b806323b872dd116101ed57806323b872dd146102c6578063251ef095146102e6578063313ce56714610306578063395093511461032257806342b6fa111461034257600080fd5b806306fdde031461022a578063095ea7b3146102555780631340538f1461028557806318160ddd146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106f8565b60405161024c9190611fb8565b60405180910390f35b34801561026157600080fd5b5061027561027036600461202b565b61078a565b604051901515815260200161024c565b34801561029157600080fd5b506102a56102a0366004612065565b6107a1565b005b3480156102b357600080fd5b506002545b60405190815260200161024c565b3480156102d257600080fd5b506102756102e1366004612089565b6107f2565b3480156102f257600080fd5b506102a56103013660046120e0565b6108a3565b34801561031257600080fd5b506040516012815260200161024c565b34801561032e57600080fd5b5061027561033d36600461202b565b610939565b34801561034e57600080fd5b506102a561035d3660046121a5565b610970565b34801561036e57600080fd5b5060075461027590600160b01b900460ff1681565b34801561038f57600080fd5b506102a561039e3660046121be565b6109b6565b3480156103af57600080fd5b506102a56103be3660046121db565b610a04565b3480156103cf57600080fd5b506102b8600a5481565b3480156103e557600080fd5b506102b86103f43660046121be565b6001600160a01b031660009081526020819052604090205490565b34801561041b57600080fd5b506102a5610a59565b34801561043057600080fd5b5060105460115461043f919082565b6040805192835260208301919091520161024c565b34801561046057600080fd5b50610275610a8f565b34801561047557600080fd5b506102a56104843660046121be565b610ac8565b34801561049557600080fd5b5061049f61dead81565b6040516001600160a01b03909116815260200161024c565b3480156104c357600080fd5b506102a56104d236600461202b565b610b13565b3480156104e357600080fd5b506005546001600160a01b031661049f565b34801561050157600080fd5b5061023f610bd4565b34801561051657600080fd5b506102a56105253660046121a5565b610be3565b6102a5610c47565b34801561053e57600080fd5b5061027561054d36600461202b565b610ea8565b34801561055e57600080fd5b5060075461049f906001600160a01b031681565b34801561057e57600080fd5b5061027561058d36600461202b565b610f43565b34801561059e57600080fd5b506102756105ad3660046121be565b60146020526000908152604090205460ff1681565b3480156105ce57600080fd5b506102a5610f50565b3480156105e357600080fd5b506102a56105f2366004612214565b610fef565b34801561060357600080fd5b506102b8610612366004612236565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561064957600080fd5b506102a56106583660046121a5565b611037565b34801561066957600080fd5b506102a56106783660046121be565b6110ce565b34801561068957600080fd5b506102a5610698366004612214565b611169565b3480156106a957600080fd5b506102a56106b83660046120e0565b6111b1565b3480156106c957600080fd5b5060125460135461043f919082565b3480156106e457600080fd5b5060065461049f906001600160a01b031681565b60606003805461070790612264565b80601f016020809104026020016040519081016040528092919081815260200182805461073390612264565b80156107805780601f1061075557610100808354040283529160200191610780565b820191906000526020600020905b81548152906001019060200180831161076357829003601f168201915b5050505050905090565b6000610797338484611243565b5060015b92915050565b6005546001600160a01b031633146107d45760405162461bcd60e51b81526004016107cb9061229e565b60405180910390fd5b60078054911515600160a81b0260ff60a81b19909216919091179055565b60006107ff848484611367565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108845760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107cb565b610898853361089386856122e9565b611243565b506001949350505050565b6005546001600160a01b031633146108cd5760405162461bcd60e51b81526004016107cb9061229e565b60005b8151811015610935576000601460008484815181106108f1576108f16122fc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061092d81612312565b9150506108d0565b5050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161079791859061089390869061232b565b6005546001600160a01b0316331461099a5760405162461bcd60e51b81526004016107cb9061229e565b6109a66012600a612422565b6109b09082612431565b60095550565b6005546001600160a01b031633146109e05760405162461bcd60e51b81526004016107cb9061229e565b6001600160a01b03166000908152601460205260409020805460ff19166001179055565b6005546001600160a01b03163314610a2e5760405162461bcd60e51b81526004016107cb9061229e565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610a835760405162461bcd60e51b81526004016107cb9061229e565b610a8d6000611963565b565b6005546000906001600160a01b03163314610abc5760405162461bcd60e51b81526004016107cb9061229e565b50600854600a55600190565b6005546001600160a01b03163314610af25760405162461bcd60e51b81526004016107cb9061229e565b6001600160a01b03166000908152601460205260409020805460ff19169055565b6005546001600160a01b03163314610b3d5760405162461bcd60e51b81526004016107cb9061229e565b816001600160a01b031663a9059cbb610b5e6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcf9190612448565b505050565b60606004805461070790612264565b6005546001600160a01b03163314610c0d5760405162461bcd60e51b81526004016107cb9061229e565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610935573d6000803e3d6000fd5b6005546001600160a01b03163314610c715760405162461bcd60e51b81526004016107cb9061229e565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee9190612465565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5f9190612465565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd09190612465565b600680546001600160a01b038581166001600160a01b03199283168117845560078054868416941693909317909255306000818152600160209081526040808320958352948152848220600019905594548282529481905283812054935163f305d71960e01b8152959650939091169363f305d719933493610e5e9392909190819033904290600401612482565b60606040518083038185885af1158015610e7c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ea191906124bd565b5050505050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f2a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107cb565b610f39338561089386856122e9565b5060019392505050565b6000610797338484611367565b6005546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016107cb9061229e565b600754600160b01b900460ff1615610fd45760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107cb565b6007805461ffff60a81b191661010160a81b17905543600b55565b6005546001600160a01b031633146110195760405162461bcd60e51b81526004016107cb9061229e565b60408051808201909152828152602001819052601091909155601155565b6005546001600160a01b031633146110615760405162461bcd60e51b81526004016107cb9061229e565b600754600160b01b900460ff16156110c95760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107cb565b600c55565b6005546001600160a01b031633146110f85760405162461bcd60e51b81526004016107cb9061229e565b6001600160a01b03811661115d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107cb565b61116681611963565b50565b6005546001600160a01b031633146111935760405162461bcd60e51b81526004016107cb9061229e565b60408051808201909152828152602001819052601291909155601355565b6005546001600160a01b031633146111db5760405162461bcd60e51b81526004016107cb9061229e565b60005b8151811015610935576001601460008484815181106111ff576111ff6122fc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061123b81612312565b9150506111de565b6001600160a01b0383166112a55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107cb565b6001600160a01b0382166113065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107cb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116113c95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107cb565b6001600160a01b03831660009081526015602052604090205460ff1615801561140b57506001600160a01b03821660009081526015602052604090205460ff16155b6114575760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016107cb565b6001600160a01b03831660009081526014602052604090205460ff1615801561149957506001600160a01b03821660009081526014602052604090205460ff16155b156114ed57600754600160b01b900460ff166114ed5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107cb565b6005546001600160a01b0316320361150a57610bcf8383836119b5565b6007546001600160a01b03848116911614801561154057506001600160a01b03821660009081526014602052604090205460ff16155b80156115565750600754600160a01b900460ff16155b156115d657600a548161157e846001600160a01b031660009081526020819052604090205490565b611588919061232b565b11156115d65760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107cb565b6007546001600160a01b0384811691161480159061160d57506001600160a01b03821660009081526014602052604090205460ff16155b801561163257506001600160a01b03831660009081526014602052604090205460ff16155b80156116485750600754600160a01b900460ff16155b156116dd576007546001600160a01b038381169116146116dd57600a5481611685846001600160a01b031660009081526020819052604090205490565b61168f919061232b565b11156116dd5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107cb565b6001600160a01b03831660009081526014602052604090205460ff168061171c57506001600160a01b03821660009081526014602052604090205460ff165b1561175f576001600160a01b03831660009081526014602052604090205460ff161561174d57610bcf838383611b13565b61175b43633b9aca0061232b565b600c555b6000806000611781604051806040016040528060008152602001600081525090565b6001600160a01b03871660009081526014602052604081205460ff161580156117c357506001600160a01b03871660009081526014602052604090205460ff16155b80156117dd5750600c54600b546117da919061232b565b43105b600754909150600160a01b900460ff168061181057506001600160a01b03881660009081526014602052604090205460ff165b8061183357506001600160a01b03871660009081526014602052604090205460ff165b1561184157600092506118c3565b6007546001600160a01b03888116911614801561185c575080155b1561187b57601254601354611871919061232b565b94508493506118c3565b806118b457601054601154611890919061232b565b604080518082019091526010548152601154602082015290955085945091506118c3565b80156118c357600d5494508493505b60646118cf8588612431565b6118d991906124eb565b600754909350600160a81b900460ff16801561190357506007546001600160a01b03898116911614155b15611912576119128583611b91565b6119268888611921868a6122e9565b6119b5565b821561195957841561195957600060646119408789612431565b61194a91906124eb565b90506119578930836119b5565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166119db5760405162461bcd60e51b81526004016107cb9061250d565b6001600160a01b038216611a015760405162461bcd60e51b81526004016107cb90612552565b6001600160a01b03831660009081526020819052604090205481811015611a795760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107cb565b611a8382826122e9565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611ab990849061232b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b0591815260200190565b60405180910390a350505050565b6001600160a01b038316611b395760405162461bcd60e51b81526004016107cb9061250d565b6001600160a01b038216611b5f5760405162461bcd60e51b81526004016107cb90612552565b6001600160a01b0380841660009081526020819052604080822054928516825281208054849290611ab990849061232b565b600754600160a01b900460ff16610935576007805460ff60a01b1916600160a01b1790558115611cdd57306000908152602081905260409020546009548110611cdb5760016009541115611be457506009545b6000611bf1846002612431565b9050600081846020015184611c069190612431565b611c1091906124eb565b90506000611c1e82856122e9565b905047611c2a82611cee565b6000611c3682476122e9565b90506000876020015186611c4a91906122e9565b611c5490836124eb565b90506000886020015182611c689190612431565b90508015611c7a57611c7a8682611e48565b600080600c5443611c8b91906122e9565b119050600081611c9c576000611cb3565b8a51611ca9856002612431565b611cb39190612431565b90508015611cd157600e54611cd1906001600160a01b031682611e9f565b5050505050505050505b505b6007805460ff60a01b191690555050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2357611d236122fc565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da09190612465565b81600181518110611db357611db36122fc565b6001600160a01b039283166020918202929092010152600654611dd99130911684611243565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e12908590600090869030904290600401612595565b600060405180830381600087803b158015611e2c57600080fd5b505af1158015611e40573d6000803e3d6000fd5b505050505050565b600654611e609030906001600160a01b031684611243565b60065460405163f305d71960e01b81526001600160a01b039091169063f305d719908390610e5e9030908790600090819061dead904290600401612482565b80471015611eef5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107cb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611f3c576040519150601f19603f3d011682016040523d82523d6000602084013e611f41565b606091505b5050905080610bcf5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107cb565b600060208083528351808285015260005b81811015611fe557858101830151858201604001528201611fc9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461116657600080fd5b803561202681612006565b919050565b6000806040838503121561203e57600080fd5b823561204981612006565b946020939093013593505050565b801515811461116657600080fd5b60006020828403121561207757600080fd5b813561208281612057565b9392505050565b60008060006060848603121561209e57600080fd5b83356120a981612006565b925060208401356120b981612006565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156120f357600080fd5b823567ffffffffffffffff8082111561210b57600080fd5b818501915085601f83011261211f57600080fd5b813581811115612131576121316120ca565b8060051b604051601f19603f83011681018181108582111715612156576121566120ca565b60405291825284820192508381018501918883111561217457600080fd5b938501935b828510156121995761218a8561201b565b84529385019392850192612179565b98975050505050505050565b6000602082840312156121b757600080fd5b5035919050565b6000602082840312156121d057600080fd5b813561208281612006565b600080604083850312156121ee57600080fd5b82356121f981612006565b9150602083013561220981612057565b809150509250929050565b6000806040838503121561222757600080fd5b50508035926020909101359150565b6000806040838503121561224957600080fd5b823561225481612006565b9150602083013561220981612006565b600181811c9082168061227857607f821691505b60208210810361229857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561079b5761079b6122d3565b634e487b7160e01b600052603260045260246000fd5b600060018201612324576123246122d3565b5060010190565b8082018082111561079b5761079b6122d3565b600181815b8085111561237957816000190482111561235f5761235f6122d3565b8085161561236c57918102915b93841c9390800290612343565b509250929050565b6000826123905750600161079b565b8161239d5750600061079b565b81600181146123b357600281146123bd576123d9565b600191505061079b565b60ff8411156123ce576123ce6122d3565b50506001821b61079b565b5060208310610133831016604e8410600b84101617156123fc575081810a61079b565b612406838361233e565b806000190482111561241a5761241a6122d3565b029392505050565b600061208260ff841683612381565b808202811582820484141761079b5761079b6122d3565b60006020828403121561245a57600080fd5b815161208281612057565b60006020828403121561247757600080fd5b815161208281612006565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b6000806000606084860312156124d257600080fd5b8351925060208401519150604084015190509250925092565b60008261250857634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125e55784516001600160a01b0316835293830193918301916001016125c0565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220de2eedf6141c507076cfb8d97504321c12bd5d09a1a1e3eb4ba8f16af7f529a664736f6c63430008130033

Deployed Bytecode Sourcemap

8825:11531:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10985:161;;;;;;;;;;-1:-1:-1;10985:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;10985:161:0;1162:187:1;17992:152:0;;;;;;;;;;-1:-1:-1;17992:152:0;;;;;:::i;:::-;;:::i;:::-;;2542:108;;;;;;;;;;-1:-1:-1;2630:12:0;;2542:108;;;1869:25:1;;;1857:2;1842:18;2542:108:0;1723:177:1;11154:448:0;;;;;;;;;;-1:-1:-1;11154:448:0;;;;;:::i;:::-;;:::i;19836:196::-;;;;;;;;;;-1:-1:-1;19836:196:0;;;;;:::i;:::-;;:::i;2435:93::-;;;;;;;;;;-1:-1:-1;2435:93:0;;2518:2;3766:36:1;;3754:2;3739:18;2435:93:0;3624:184:1;11610:248:0;;;;;;;;;;-1:-1:-1;11610:248:0;;;;;:::i;:::-;;:::i;18152:177::-;;;;;;;;;;-1:-1:-1;18152:177:0;;;;;:::i;:::-;;:::i;9054:34::-;;;;;;;;;;-1:-1:-1;9054:34:0;;;;-1:-1:-1;;;9054:34:0;;;;;;19408:104;;;;;;;;;;-1:-1:-1;19408:104:0;;;;;:::i;:::-;;:::i;19278:122::-;;;;;;;;;;-1:-1:-1;19278:122:0;;;;;:::i;:::-;;:::i;9237:54::-;;;;;;;;;;;;;;;;2664:127;;;;;;;;;;-1:-1:-1;2664:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2765:18:0;2738:7;2765:18;;;;;;;;;;;;2664:127;7488:94;;;;;;;;;;;;;:::i;9762:32::-;;;;;;;;;;-1:-1:-1;9762:32:0;;;;;;;;;;;;;4811:25:1;;;4867:2;4852:18;;4845:34;;;;4784:18;9762:32:0;4637:248:1;19143:127:0;;;;;;;;;;;;;:::i;19520:108::-;;;;;;;;;;-1:-1:-1;19520:108:0;;;;;:::i;:::-;;:::i;9589:79::-;;;;;;;;;;;;9626:42;9589:79;;;;;-1:-1:-1;;;;;5054:32:1;;;5036:51;;5024:2;5009:18;9589:79:0;4890:203:1;20163:135:0;;;;;;;;;;-1:-1:-1;20163:135:0;;;;;:::i;:::-;;:::i;7265:87::-;;;;;;;;;;-1:-1:-1;7338:6:0;;-1:-1:-1;;;;;7338:6:0;7265:87;;2317:104;;;;;;;;;;;;;:::i;20043:112::-;;;;;;;;;;-1:-1:-1;20043:112:0;;;;;:::i;:::-;;:::i;10438:539::-;;;:::i;11866:410::-;;;;;;;;;;-1:-1:-1;11866:410:0;;;;;:::i;:::-;;:::i;8936:19::-;;;;;;;;;;-1:-1:-1;8936:19:0;;;;-1:-1:-1;;;;;8936:19:0;;;12284:165;;;;;;;;;;-1:-1:-1;12284:165:0;;;;;:::i;:::-;;:::i;9846:41::-;;;;;;;;;;-1:-1:-1;9846:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18683:223;;;;;;;;;;;;;:::i;18337:164::-;;;;;;;;;;-1:-1:-1;18337:164:0;;;;;:::i;:::-;;:::i;3035:201::-;;;;;;;;;;-1:-1:-1;3035:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;3201:18:0;;;3169:7;3201:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3035:201;18914:177;;;;;;;;;;-1:-1:-1;18914:177:0;;;;;:::i;:::-;;:::i;7590:192::-;;;;;;;;;;-1:-1:-1;7590:192:0;;;;;:::i;:::-;;:::i;18509:166::-;;;;;;;;;;-1:-1:-1;18509:166:0;;;;;:::i;:::-;;:::i;19636:192::-;;;;;;;;;;-1:-1:-1;19636:192:0;;;;;:::i;:::-;;:::i;9801:36::-;;;;;;;;;;-1:-1:-1;9801:36:0;;;;;;;;;8908:21;;;;;;;;;;-1:-1:-1;8908:21:0;;;;-1:-1:-1;;;;;8908:21:0;;;2203:100;2257:13;2290:5;2283:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:100;:::o;10985:161::-;11060:4;11077:39;368:10;11100:7;11109:6;11077:8;:39::i;:::-;-1:-1:-1;11134:4:0;10985:161;;;;;:::o;17992:152::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;;;;;;;;;18110:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18110:26:0::1;-1:-1:-1::0;;;;18110:26:0;;::::1;::::0;;;::::1;::::0;;17992:152::o;11154:448::-;11286:4;11303:36;11313:6;11321:9;11332:6;11303:9;:36::i;:::-;-1:-1:-1;;;;;11379:19:0;;11352:24;11379:19;;;:11;:19;;;;;;;;368:10;11379:33;;;;;;;;11431:26;;;;11423:79;;;;-1:-1:-1;;;11423:79:0;;6915:2:1;11423:79:0;;;6897:21:1;6954:2;6934:18;;;6927:30;6993:34;6973:18;;;6966:62;-1:-1:-1;;;7044:18:1;;;7037:38;7092:19;;11423:79:0;6713:404:1;11423:79:0;11513:57;11522:6;368:10;11544:25;11563:6;11544:16;:25;:::i;:::-;11513:8;:57::i;:::-;-1:-1:-1;11590:4:0;;11154:448;-1:-1:-1;;;;11154:448:0:o;19836:196::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;19927:9:::1;19922:103;19946:8;:15;19942:1;:19;19922:103;;;20008:5;19983:9;:22;19993:8;20002:1;19993:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19983:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19983:22:0;:30;;-1:-1:-1;;19983:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19963:3;::::1;::::0;::::1;:::i;:::-;;;;19922:103;;;;19836:196:::0;:::o;11610:248::-;368:10;11726:4;11780:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11780:34:0;;;;;;;;;;11726:4;;11748:80;;11771:7;;11780:47;;11817:10;;11780:47;:::i;18152:177::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;18307:14:::1;2518:2:::0;18307::::1;:14;:::i;:::-;18294:27;::::0;:10;:27:::1;:::i;:::-;18268:23;:53:::0;-1:-1:-1;18152:177:0:o;19408:104::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19478:19:0::1;;::::0;;;:9:::1;:19;::::0;;;;:26;;-1:-1:-1;;19478:26:0::1;19500:4;19478:26;::::0;;19408:104::o;19278:122::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19363:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:29;;-1:-1:-1;;19363:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19278:122::o;7488:94::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;7553:21:::1;7571:1;7553:9;:21::i;:::-;7488:94::o:0;19143:127::-;7338:6;;19195:4;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;-1:-1:-1;19228:12:0::1;::::0;19211:14:::1;:29:::0;19258:4:::1;19143:127:::0;:::o;19520:108::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19593:19:0::1;19615:5;19593:19:::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;19593:27:0::1;::::0;;19520:108::o;20163:135::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;20255:8:::1;-1:-1:-1::0;;;;;20248:25:0::1;;20274:7;7338:6:::0;;-1:-1:-1;;;;;7338:6:0;;7265:87;20274:7:::1;20248:42;::::0;-1:-1:-1;;;;;;20248:42:0::1;::::0;;;;;;-1:-1:-1;;;;;9537:32:1;;;20248:42:0::1;::::0;::::1;9519:51:1::0;9586:18;;;9579:34;;;9492:18;;20248:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20163:135:::0;;:::o;2317:104::-;2373:13;2406:7;2399:14;;;;;:::i;20043:112::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;7338:6;;20111:36:::1;::::0;-1:-1:-1;;;;;7338:6:0;;;;20111:36;::::1;;;::::0;20137:9;;20111:36:::1;::::0;;;20137:9;7338:6;20111:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;10438:539:::0;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;10499:15:::1;10525:42;10499:69;;10624:13;10649:7;-1:-1:-1::0;;;;;10649:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10640:38:0::1;;10687:4;10694:7;-1:-1:-1::0;;;;;10694:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10640:69;::::0;-1:-1:-1;;;;;;10640:69:0::1;::::0;;;;;;-1:-1:-1;;;;;10360:15:1;;;10640:69:0::1;::::0;::::1;10342:34:1::0;10412:15;;10392:18;;;10385:43;10277:18;;10640:69:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10722:6;:16:::0;;-1:-1:-1;;;;;10722:16:0;;::::1;-1:-1:-1::0;;;;;;10722:16:0;;::::1;::::0;::::1;::::0;;10749:4:::1;:12:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;10802:4:::1;-1:-1:-1::0;10782:26:0;;;-1:-1:-1;10782:26:0::1;::::0;;;;;;;:43;;;;;;;;;-1:-1:-1;;10782:63:0;;10858:6;;2765:18;;;;;;;;;;;10858:111;;-1:-1:-1;;;10858:111:0;;10749:12;;-1:-1:-1;10858:6:0;;;::::1;::::0;:22:::1;::::0;10888:9:::1;::::0;10858:111:::1;::::0;10802:4;2765:18;;-1:-1:-1;;;10942:10:0::1;::::0;10953:15:::1;::::0;10858:111:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10486:491;;10438:539::o:0;11866:410::-;368:10;11987:4;12036:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12036:34:0;;;;;;;;;;12089:35;;;;12081:85;;;;-1:-1:-1;;;12081:85:0;;11564:2:1;12081:85:0;;;11546:21:1;11603:2;11583:18;;;11576:30;11642:34;11622:18;;;11615:62;-1:-1:-1;;;11693:18:1;;;11686:35;11738:19;;12081:85:0;11362:401:1;12081:85:0;12177:67;368:10;12200:7;12209:34;12228:15;12209:16;:34;:::i;12177:67::-;-1:-1:-1;12264:4:0;;11866:410;-1:-1:-1;;;11866:410:0:o;12284:165::-;12362:4;12379:40;12389:10;12401:9;12412:6;12379:9;:40::i;18683:223::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;18745:14:::1;::::0;-1:-1:-1;;;18745:14:0;::::1;;;18744:15;18736:54;;;::::0;-1:-1:-1;;;18736:54:0;;11970:2:1;18736:54:0::1;::::0;::::1;11952:21:1::0;12009:2;11989:18;;;11982:30;12048:28;12028:18;;;12021:56;12094:18;;18736:54:0::1;11768:350:1::0;18736:54:0::1;18801:14;:21:::0;;-1:-1:-1;;;;18833:25:0;-1:-1:-1;;;18833:25:0;;;18886:12:::1;18869:14;:29:::0;18683:223::o;18337:164::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;18464:29:::1;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;18456:5:::1;:37:::0;;;;;;18337:164::o;18914:177::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;18996:14:::1;::::0;-1:-1:-1;;;18996:14:0;::::1;;;18995:15;18987:65;;;::::0;-1:-1:-1;;;18987:65:0;;12325:2:1;18987:65:0::1;::::0;::::1;12307:21:1::0;12364:2;12344:18;;;12337:30;12403:34;12383:18;;;12376:62;-1:-1:-1;;;12454:18:1;;;12447:35;12499:19;;18987:65:0::1;12123:401:1::0;18987:65:0::1;19063:8;:20:::0;18914:177::o;7590:192::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7679:22:0;::::1;7671:73;;;::::0;-1:-1:-1;;;7671:73:0;;12731:2:1;7671:73:0::1;::::0;::::1;12713:21:1::0;12770:2;12750:18;;;12743:30;12809:34;12789:18;;;12782:62;-1:-1:-1;;;12860:18:1;;;12853:36;12906:19;;7671:73:0::1;12529:402:1::0;7671:73:0::1;7755:19;7765:8;7755:9;:19::i;:::-;7590:192:::0;:::o;18509:166::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;18638:29:::1;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;18626:9:::1;:41:::0;;;;;;18509:166::o;19636:192::-;7338:6;;-1:-1:-1;;;;;7338:6:0;368:10;7400:23;7392:68;;;;-1:-1:-1;;;7392:68:0;;;;;;;:::i;:::-;19724:9:::1;19719:102;19743:8;:15;19739:1;:19;19719:102;;;19805:4;19780:9;:22;19790:8;19799:1;19790:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19780:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19780:22:0;:29;;-1:-1:-1;;19780:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19760:3;::::1;::::0;::::1;:::i;:::-;;;;19719:102;;6159:380:::0;-1:-1:-1;;;;;6295:19:0;;6287:68;;;;-1:-1:-1;;;6287:68:0;;13138:2:1;6287:68:0;;;13120:21:1;13177:2;13157:18;;;13150:30;13216:34;13196:18;;;13189:62;-1:-1:-1;;;13267:18:1;;;13260:34;13311:19;;6287:68:0;12936:400:1;6287:68:0;-1:-1:-1;;;;;6374:21:0;;6366:68;;;;-1:-1:-1;;;6366:68:0;;13543:2:1;6366:68:0;;;13525:21:1;13582:2;13562:18;;;13555:30;13621:34;13601:18;;;13594:62;-1:-1:-1;;;13672:18:1;;;13665:32;13714:19;;6366:68:0;13341:398:1;6366:68:0;-1:-1:-1;;;;;6447:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6499:32;;1869:25:1;;;6499:32:0;;1842:18:1;6499:32:0;;;;;;;6159:380;;;:::o;12457:2973::-;12607:1;12598:6;:10;12590:64;;;;-1:-1:-1;;;12590:64:0;;13946:2:1;12590:64:0;;;13928:21:1;13985:2;13965:18;;;13958:30;14024:34;14004:18;;;13997:62;-1:-1:-1;;;14075:18:1;;;14068:39;14124:19;;12590:64:0;13744:405:1;12590:64:0;-1:-1:-1;;;;;12674:20:0;;;;;;:12;:20;;;;;;;;12673:21;:49;;;;-1:-1:-1;;;;;;12699:23:0;;;;;;:12;:23;;;;;;;;12698:24;12673:49;12665:110;;;;-1:-1:-1;;;12665:110:0;;14356:2:1;12665:110:0;;;14338:21:1;14395:2;14375:18;;;14368:30;14434:27;14414:18;;;14407:55;14479:18;;12665:110:0;14154:349:1;12665:110:0;-1:-1:-1;;;;;12793:17:0;;;;;;:9;:17;;;;;;;;12792:18;:43;;;;-1:-1:-1;;;;;;12815:20:0;;;;;;:9;:20;;;;;;;;12814:21;12792:43;12788:122;;;12860:14;;-1:-1:-1;;;12860:14:0;;;;12852:46;;;;-1:-1:-1;;;12852:46:0;;14710:2:1;12852:46:0;;;14692:21:1;14749:2;14729:18;;;14722:30;-1:-1:-1;;;14768:18:1;;;14761:49;14827:18;;12852:46:0;14508:343:1;12852:46:0;7338:6;;-1:-1:-1;;;;;7338:6:0;12926:9;:20;12922:116;;12963:42;12979:6;12987:9;12998:6;12963:15;:42::i;12922:116::-;13064:4;;-1:-1:-1;;;;;13054:14:0;;;13064:4;;13054:14;:39;;;;-1:-1:-1;;;;;;13073:20:0;;;;;;:9;:20;;;;;;;;13072:21;13054:39;:59;;;;-1:-1:-1;13098:15:0;;-1:-1:-1;;;13098:15:0;;;;13097:16;13054:59;13050:215;;;13171:14;;13161:6;13138:20;13148:9;-1:-1:-1;;;;;2765:18:0;2738:7;2765:18;;;;;;;;;;;;2664:127;13138:20;:29;;;;:::i;:::-;:47;;13130:123;;;;-1:-1:-1;;;13130:123:0;;15058:2:1;13130:123:0;;;15040:21:1;;;15077:18;;;15070:30;15136:34;15116:18;;;15109:62;15188:18;;13130:123:0;14856:356:1;13130:123:0;13291:4;;-1:-1:-1;;;;;13281:14:0;;;13291:4;;13281:14;;;;:39;;-1:-1:-1;;;;;;13300:20:0;;;;;;:9;:20;;;;;;;;13299:21;13281:39;:61;;;;-1:-1:-1;;;;;;13325:17:0;;;;;;:9;:17;;;;;;;;13324:18;13281:61;:81;;;;-1:-1:-1;13347:15:0;;-1:-1:-1;;;13347:15:0;;;;13346:16;13281:81;13277:315;;;13409:4;;-1:-1:-1;;;;;13396:17:0;;;13409:4;;13396:17;13392:189;;13475:14;;13465:6;13442:20;13452:9;-1:-1:-1;;;;;2765:18:0;2738:7;2765:18;;;;;;;;;;;;2664:127;13442:20;:29;;;;:::i;:::-;:47;;13434:131;;;;-1:-1:-1;;;13434:131:0;;15058:2:1;13434:131:0;;;15040:21:1;;;15077:18;;;15070:30;15136:34;15116:18;;;15109:62;15188:18;;13434:131:0;14856:356:1;13434:131:0;-1:-1:-1;;;;;13608:17:0;;;;;;:9;:17;;;;;;;;;:41;;-1:-1:-1;;;;;;13629:20:0;;;;;;:9;:20;;;;;;;;13608:41;13604:268;;;-1:-1:-1;;;;;13669:17:0;;;;;;:9;:17;;;;;;;;13666:195;;;13707:42;13722:6;13730:9;13742:6;13707:14;:42::i;13666:195::-;13827:18;:12;13842:3;13827:18;:::i;:::-;13816:8;:29;13666:195;13884:15;13910:14;13935:11;13957:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;13957:25:0;-1:-1:-1;;;;;14016:17:0;;13995;14016;;;:9;:17;;;;;;;;14015:18;:56;;;;-1:-1:-1;;;;;;14051:20:0;;;;;;:9;:20;;;;;;;;14050:21;14015:56;:113;;;;;14120:8;;14103:14;;:25;;;;:::i;:::-;14088:12;:40;14015:113;14216:15;;13995:133;;-1:-1:-1;;;;14216:15:0;;;;;:36;;-1:-1:-1;;;;;;14235:17:0;;;;;;:9;:17;;;;;;;;14216:36;:60;;;-1:-1:-1;;;;;;14256:20:0;;;;;;:9;:20;;;;;;;;14216:60;14212:634;;;14311:1;14305:7;;14212:634;;;14381:4;;-1:-1:-1;;;;;14368:17:0;;;14381:4;;14368:17;:34;;;;;14390:12;14389:13;14368:34;14364:482;;;14485:9;:19;14446;;:58;;14485:19;14446:58;:::i;:::-;14419:85;;14528:7;14519:16;;14364:482;;;14558:12;14553:293;;14649:5;:15;14614;;:50;;14649:15;14614:50;:::i;:::-;14711:20;;;;;;;;;14726:5;14711:20;;;;;;;;;14587:77;;-1:-1:-1;14587:77:0;;-1:-1:-1;14711:20:0;-1:-1:-1;14553:293:0;;;14753:12;14749:97;;;14792:9;;;-1:-1:-1;14792:9:0;;-1:-1:-1;14749:97:0;14884:3;14865:15;14874:6;14865;:15;:::i;:::-;14864:23;;;;:::i;:::-;15001:18;;14858:29;;-1:-1:-1;;;;15001:18:0;;;;:36;;;;-1:-1:-1;15033:4:0;;-1:-1:-1;;;;;15023:14:0;;;15033:4;;15023:14;;15001:36;14997:76;;;15039:34;15051:7;15060:12;15039:11;:34::i;:::-;15115:48;15131:6;15139:9;15150:12;15159:3;15150:6;:12;:::i;:::-;15115:15;:48::i;:::-;15178:7;;15174:249;;15250:11;;15246:164;;15282:17;15323:3;15303:16;15312:7;15303:6;:16;:::i;:::-;15302:24;;;;:::i;:::-;15282:44;;15345:49;15361:6;15377:4;15384:9;15345:15;:49::i;:::-;15263:147;15246:164;12579:2851;;;;;12457:2973;;;:::o;7790:173::-;7865:6;;;-1:-1:-1;;;;;7882:17:0;;;-1:-1:-1;;;;;;7882:17:0;;;;;;;7915:40;;7865:6;;;7882:17;7865:6;;7915:40;;7846:16;;7915:40;7835:128;7790:173;:::o;5140:638::-;-1:-1:-1;;;;;5280:20:0;;5272:70;;;;-1:-1:-1;;;5272:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5361:23:0;;5353:71;;;;-1:-1:-1;;;5353:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5521:17:0;;5497:21;5521:17;;;;;;;;;;;5557:23;;;;5549:74;;;;-1:-1:-1;;;5549:74:0;;16451:2:1;5549:74:0;;;16433:21:1;16490:2;16470:18;;;16463:30;16529:34;16509:18;;;16502:62;-1:-1:-1;;;16580:18:1;;;16573:36;16626:19;;5549:74:0;16249:402:1;5549:74:0;5654:22;5670:6;5654:13;:22;:::i;:::-;-1:-1:-1;;;;;5634:17:0;;;:9;:17;;;;;;;;;;;:42;;;;5687:20;;;;;;;;:30;;5711:6;;5634:9;5687:30;;5711:6;;5687:30;:::i;:::-;;;;;;;;5752:9;-1:-1:-1;;;;;5735:35:0;5744:6;-1:-1:-1;;;;;5735:35:0;;5763:6;5735:35;;;;1869:25:1;;1857:2;1842:18;;1723:177;5735:35:0;;;;;;;;5261:517;5140:638;;;:::o;3427:549::-;-1:-1:-1;;;;;3566:20:0;;3558:70;;;;-1:-1:-1;;;3558:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3647:23:0;;3639:71;;;;-1:-1:-1;;;3639:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3813:17:0;;;3789:21;3813:17;;;;;;;;;;;;3885:20;;;;;;;:30;;3909:6;;3789:21;3885:30;;3909:6;;3885:30;:::i;15438:1504::-;9987:15;;-1:-1:-1;;;9987:15:0;;;;9982:125;;10019:15;:22;;-1:-1:-1;;;;10019:22:0;-1:-1:-1;;;10019:22:0;;;15528:49;;15559:7:::1;15528:49;15633:4;15589:23;2765:18:::0;;;;;;;;;;;15673:23:::1;::::0;15654:42;::::1;15650:1285;;15743:1;15717:23;;:27;15713:109;;;-1:-1:-1::0;15783:23:0::1;::::0;15713:109:::1;15893:19;15915:11;:7:::0;15925:1:::1;15915:11;:::i;:::-;15893:33;;15941:32;16035:11;15995:9;:19;;;15977:15;:37;;;;:::i;:::-;15976:70;;;;:::i;:::-;15941:105:::0;-1:-1:-1;16061:14:0::1;16078:42;15941:105:::0;16078:15;:42:::1;:::i;:::-;16061:59:::0;-1:-1:-1;16162:21:0::1;16200:24;16061:59:::0;16200:16:::1;:24::i;:::-;16241:20;16264:38;16288:14:::0;16264:21:::1;:38;:::i;:::-;16241:61;;16317:19;16369:9;:19;;;16355:11;:33;;;;:::i;:::-;16339:50;::::0;:12;:50:::1;:::i;:::-;16317:72;;16404:29;16450:9;:19;;;16436:11;:33;;;;:::i;:::-;16404:65:::0;-1:-1:-1;16490:25:0;;16486:161:::1;;16570:61;16583:24;16609:21;16570:12;:61::i;:::-;16663:15;16707:1:::0;16696:8:::1;;16681:12;:23;;;;:::i;:::-;:27;16663:45;;16725:20;16748:10;:54;;16801:1;16748:54;;;16779:19:::0;;16761:15:::1;:11:::0;16775:1:::1;16761:15;:::i;:::-;:37;;;;:::i;:::-;16725:77:::0;-1:-1:-1;16821:16:0;;16817:105:::1;;16866:15;::::0;16858:48:::1;::::0;-1:-1:-1;;;;;16866:15:0::1;16893:12:::0;16858:34:::1;:48::i;:::-;15698:1237;;;;;;;;;15650:1285;15518:1424;10056:1;10072:15:::0;:23;;-1:-1:-1;;;;10072:23:0;;;15438:1504;;:::o;16950:526::-;17092:16;;;17106:1;17092:16;;;;;;;;17068:21;;17092:16;;;;;;;;;;-1:-1:-1;17092:16:0;17068:40;;17137:4;17119;17124:1;17119:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17119:23:0;;;:7;;;;;;;;;;:23;;;;17163:6;;:13;;;-1:-1:-1;;;17163:13:0;;;;:6;;;;;:11;;:13;;;;;17119:7;;17163:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17153:4;17158:1;17153:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17153:23:0;;;:7;;;;;;;;;:23;17221:6;;17189:53;;17206:4;;17221:6;17230:11;17189:8;:53::i;:::-;17281:6;;:187;;-1:-1:-1;;;17281:187:0;;-1:-1:-1;;;;;17281:6:0;;;;:57;;:187;;17353:11;;17281:6;;17395:4;;17422;;17442:15;;17281:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17005:471;16950:526;:::o;17484:500::-;17664:6;;17632:53;;17649:4;;-1:-1:-1;;;;;17664:6:0;17673:11;17632:8;:53::i;:::-;17728:6;;:248;;-1:-1:-1;;;17728:248:0;;-1:-1:-1;;;;;17728:6:0;;;;:22;;17759:9;;17728:248;;17793:4;;17813:11;;17728:6;;;;9626:42;;17950:15;;17728:248;;;:::i;6708:319::-;6823:6;6798:21;:31;;6790:73;;;;-1:-1:-1;;;6790:73:0;;17843:2:1;6790:73:0;;;17825:21:1;17882:2;17862:18;;;17855:30;17921:31;17901:18;;;17894:59;17970:18;;6790:73:0;17641:353:1;6790:73:0;6877:12;6895:9;-1:-1:-1;;;;;6895:14:0;6918:6;6895:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6876:54;;;6949:7;6941:78;;;;-1:-1:-1;;;6941:78:0;;18411:2:1;6941:78:0;;;18393:21:1;18450:2;18430:18;;;18423:30;18489:34;18469:18;;;18462:62;18560:28;18540:18;;;18533:56;18606:19;;6941:78:0;18209:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:118::-;1440:5;1433:13;1426:21;1419:5;1416:32;1406:60;;1462:1;1459;1452:12;1477:241;1533:6;1586:2;1574:9;1565:7;1561:23;1557:32;1554:52;;;1602:1;1599;1592:12;1554:52;1641:9;1628:23;1660:28;1682:5;1660:28;:::i;:::-;1707:5;1477:241;-1:-1:-1;;;1477:241:1:o;1905:456::-;1982:6;1990;1998;2051:2;2039:9;2030:7;2026:23;2022:32;2019:52;;;2067:1;2064;2057:12;2019:52;2106:9;2093:23;2125:31;2150:5;2125:31;:::i;:::-;2175:5;-1:-1:-1;2232:2:1;2217:18;;2204:32;2245:33;2204:32;2245:33;:::i;:::-;1905:456;;2297:7;;-1:-1:-1;;;2351:2:1;2336:18;;;;2323:32;;1905:456::o;2366:127::-;2427:10;2422:3;2418:20;2415:1;2408:31;2458:4;2455:1;2448:15;2482:4;2479:1;2472:15;2498:1121;2582:6;2613:2;2656;2644:9;2635:7;2631:23;2627:32;2624:52;;;2672:1;2669;2662:12;2624:52;2712:9;2699:23;2741:18;2782:2;2774:6;2771:14;2768:34;;;2798:1;2795;2788:12;2768:34;2836:6;2825:9;2821:22;2811:32;;2881:7;2874:4;2870:2;2866:13;2862:27;2852:55;;2903:1;2900;2893:12;2852:55;2939:2;2926:16;2961:2;2957;2954:10;2951:36;;;2967:18;;:::i;:::-;3013:2;3010:1;3006:10;3045:2;3039:9;3108:2;3104:7;3099:2;3095;3091:11;3087:25;3079:6;3075:38;3163:6;3151:10;3148:22;3143:2;3131:10;3128:18;3125:46;3122:72;;;3174:18;;:::i;:::-;3210:2;3203:22;3260:18;;;3294:15;;;;-1:-1:-1;3336:11:1;;;3332:20;;;3364:19;;;3361:39;;;3396:1;3393;3386:12;3361:39;3420:11;;;;3440:148;3456:6;3451:3;3448:15;3440:148;;;3522:23;3541:3;3522:23;:::i;:::-;3510:36;;3473:12;;;;3566;;;;3440:148;;;3607:6;2498:1121;-1:-1:-1;;;;;;;;2498:1121:1:o;3813:180::-;3872:6;3925:2;3913:9;3904:7;3900:23;3896:32;3893:52;;;3941:1;3938;3931:12;3893:52;-1:-1:-1;3964:23:1;;3813:180;-1:-1:-1;3813:180:1:o;3998:247::-;4057:6;4110:2;4098:9;4089:7;4085:23;4081:32;4078:52;;;4126:1;4123;4116:12;4078:52;4165:9;4152:23;4184:31;4209:5;4184:31;:::i;4250:382::-;4315:6;4323;4376:2;4364:9;4355:7;4351:23;4347:32;4344:52;;;4392:1;4389;4382:12;4344:52;4431:9;4418:23;4450:31;4475:5;4450:31;:::i;:::-;4500:5;-1:-1:-1;4557:2:1;4542:18;;4529:32;4570:30;4529:32;4570:30;:::i;:::-;4619:7;4609:17;;;4250:382;;;;;:::o;5098:248::-;5166:6;5174;5227:2;5215:9;5206:7;5202:23;5198:32;5195:52;;;5243:1;5240;5233:12;5195:52;-1:-1:-1;;5266:23:1;;;5336:2;5321:18;;;5308:32;;-1:-1:-1;5098:248:1:o;5351:388::-;5419:6;5427;5480:2;5468:9;5459:7;5455:23;5451:32;5448:52;;;5496:1;5493;5486:12;5448:52;5535:9;5522:23;5554:31;5579:5;5554:31;:::i;:::-;5604:5;-1:-1:-1;5661:2:1;5646:18;;5633:32;5674:33;5633:32;5674:33;:::i;5967:380::-;6046:1;6042:12;;;;6089;;;6110:61;;6164:4;6156:6;6152:17;6142:27;;6110:61;6217:2;6209:6;6206:14;6186:18;6183:38;6180:161;;6263:10;6258:3;6254:20;6251:1;6244:31;6298:4;6295:1;6288:15;6326:4;6323:1;6316:15;6180:161;;5967:380;;;:::o;6352:356::-;6554:2;6536:21;;;6573:18;;;6566:30;6632:34;6627:2;6612:18;;6605:62;6699:2;6684:18;;6352:356::o;7122:127::-;7183:10;7178:3;7174:20;7171:1;7164:31;7214:4;7211:1;7204:15;7238:4;7235:1;7228:15;7254:128;7321:9;;;7342:11;;;7339:37;;;7356:18;;:::i;7387:127::-;7448:10;7443:3;7439:20;7436:1;7429:31;7479:4;7476:1;7469:15;7503:4;7500:1;7493:15;7519:135;7558:3;7579:17;;;7576:43;;7599:18;;:::i;:::-;-1:-1:-1;7646:1:1;7635:13;;7519:135::o;7659:125::-;7724:9;;;7745:10;;;7742:36;;;7758:18;;:::i;7789:422::-;7878:1;7921:5;7878:1;7935:270;7956:7;7946:8;7943:21;7935:270;;;8015:4;8011:1;8007:6;8003:17;7997:4;7994:27;7991:53;;;8024:18;;:::i;:::-;8074:7;8064:8;8060:22;8057:55;;;8094:16;;;;8057:55;8173:22;;;;8133:15;;;;7935:270;;;7939:3;7789:422;;;;;:::o;8216:806::-;8265:5;8295:8;8285:80;;-1:-1:-1;8336:1:1;8350:5;;8285:80;8384:4;8374:76;;-1:-1:-1;8421:1:1;8435:5;;8374:76;8466:4;8484:1;8479:59;;;;8552:1;8547:130;;;;8459:218;;8479:59;8509:1;8500:10;;8523:5;;;8547:130;8584:3;8574:8;8571:17;8568:43;;;8591:18;;:::i;:::-;-1:-1:-1;;8647:1:1;8633:16;;8662:5;;8459:218;;8761:2;8751:8;8748:16;8742:3;8736:4;8733:13;8729:36;8723:2;8713:8;8710:16;8705:2;8699:4;8696:12;8692:35;8689:77;8686:159;;;-1:-1:-1;8798:19:1;;;8830:5;;8686:159;8877:34;8902:8;8896:4;8877:34;:::i;:::-;8947:6;8943:1;8939:6;8935:19;8926:7;8923:32;8920:58;;;8958:18;;:::i;:::-;8996:20;;8216:806;-1:-1:-1;;;8216:806:1:o;9027:140::-;9085:5;9114:47;9155:4;9145:8;9141:19;9135:4;9114:47;:::i;9172:168::-;9245:9;;;9276;;9293:15;;;9287:22;;9273:37;9263:71;;9314:18;;:::i;9624:245::-;9691:6;9744:2;9732:9;9723:7;9719:23;9715:32;9712:52;;;9760:1;9757;9750:12;9712:52;9792:9;9786:16;9811:28;9833:5;9811:28;:::i;9874:251::-;9944:6;9997:2;9985:9;9976:7;9972:23;9968:32;9965:52;;;10013:1;10010;10003:12;9965:52;10045:9;10039:16;10064:31;10089:5;10064:31;:::i;10439:607::-;-1:-1:-1;;;;;10798:15:1;;;10780:34;;10845:2;10830:18;;10823:34;;;;10888:2;10873:18;;10866:34;;;;10931:2;10916:18;;10909:34;;;;10980:15;;;10974:3;10959:19;;10952:44;10760:3;11012:19;;11005:35;;;;10729:3;10714:19;;10439:607::o;11051:306::-;11139:6;11147;11155;11208:2;11196:9;11187:7;11183:23;11179:32;11176:52;;;11224:1;11221;11214:12;11176:52;11253:9;11247:16;11237:26;;11303:2;11292:9;11288:18;11282:25;11272:35;;11347:2;11336:9;11332:18;11326:25;11316:35;;11051:306;;;;;:::o;15217:217::-;15257:1;15283;15273:132;;15327:10;15322:3;15318:20;15315:1;15308:31;15362:4;15359:1;15352:15;15390:4;15387:1;15380:15;15273:132;-1:-1:-1;15419:9:1;;15217:217::o;15439:401::-;15641:2;15623:21;;;15680:2;15660:18;;;15653:30;15719:34;15714:2;15699:18;;15692:62;-1:-1:-1;;;15785:2:1;15770:18;;15763:35;15830:3;15815:19;;15439:401::o;15845:399::-;16047:2;16029:21;;;16086:2;16066:18;;;16059:30;16125:34;16120:2;16105:18;;16098:62;-1:-1:-1;;;16191:2:1;16176:18;;16169:33;16234:3;16219:19;;15845:399::o;16656:980::-;16918:4;16966:3;16955:9;16951:19;16997:6;16986:9;16979:25;17023:2;17061:6;17056:2;17045:9;17041:18;17034:34;17104:3;17099:2;17088:9;17084:18;17077:31;17128:6;17163;17157:13;17194:6;17186;17179:22;17232:3;17221:9;17217:19;17210:26;;17271:2;17263:6;17259:15;17245:29;;17292:1;17302:195;17316:6;17313:1;17310:13;17302:195;;;17381:13;;-1:-1:-1;;;;;17377:39:1;17365:52;;17472:15;;;;17437:12;;;;17413:1;17331:9;17302:195;;;-1:-1:-1;;;;;;;17553:32:1;;;;17548:2;17533:18;;17526:60;-1:-1:-1;;;17617:3:1;17602:19;17595:35;17514:3;16656:980;-1:-1:-1;;;16656:980:1:o

Swarm Source

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