ETH Price: $2,483.86 (-1.48%)

Token

Empire Network (EMPIRE)
 

Overview

Max Total Supply

63,415.41141206972203734 EMPIRE

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Null: 0x000...000
Balance
0 EMPIRE

Value
$0.00
0x0000000000000000000000000000000000000000
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:
EmpireV2

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// File @openzeppelin/contracts/utils/[email protected]

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

pragma solidity ^0.8.0;

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

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


// File @openzeppelin/contracts/access/[email protected]


// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

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

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

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


// File contracts/dependencies/Controller.sol


pragma solidity 0.8.4;

contract Controller is Ownable {
    mapping(address => bool) public operator;
    event OperatorCreated(address _operator, bool _whiteList);

    modifier onlyOperator() {
        require(operator[msg.sender], "Only-Operator");
        _;
    }

    function setOperator(address _operator, bool _whiteList) public onlyOwner {
        operator[_operator] = _whiteList;
        emit OperatorCreated(_operator, _whiteList);
    }

}


// File contracts/EmpireV2.sol


pragma solidity 0.8.4;

interface IERC20 {
    function transfer(address _to, uint256 _amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function balanceOf(address owner) external view returns (uint256);
}

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

interface IEmpireRouter {
    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;
}

/// @title EmpireV2: A contract for the EMPIREv2 token
/// @author Empire Capital (Splnty, Tranquil Flow) https://github.com/Empire-Capital
/// @dev This contract defines the core logic of EMPIRE token
contract EmpireV2 is Controller {
    string  private _name = "Empire Network";
    string  private _symbol = "EMPIRE";
    uint256 private _totalSupply;
    uint8   private _decimals = 18;

    address public pair;
    uint256 public addLiquidityAmount;
    uint256 public buyLiquidityFee;
    uint256 public sellLiquidityFee;
    uint256 public blockCooldownAmount;

    bool private _inSwap;
    bool public tradingActive;
    bool public antiBotsActive;

    IEmpireRouter private router;
    
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping (address => bool) public _excludedFees;
    mapping (address => bool) public _excludedAntiMev;
    mapping (address => uint256) public antiMevBlock;
    mapping (address => bool) public automatedMarketMakerPairs;
   
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event LiquidityAdded(uint256 tokens, uint256 nativeCoin, uint256 lpAdded);
    event NewLimit(uint256 newAddLiqAmount);
    event NewFees(uint256 newBuyLiqFee, uint256 newSellLiqFee);
    event SetExcludedFees(address addr, bool status);
    event SetTradingActive(bool status);
    
    /// @param _router The address of the router that EMPIRE is interacting with for transfer fees
    constructor (address _router) {

        router = IEmpireRouter(_router);        

        pair = IEmpireFactory(router.factory())
            .createPair(address(this), router.WETH());

        setAutomatedMarketMakerPair(pair, true);

        addLiquidityAmount = 100 * 10 **_decimals;
        buyLiquidityFee = 5000;         // 5%
        sellLiquidityFee = 5000;        // 5%
        blockCooldownAmount = 1;
        antiBotsActive = true;
        
        setExcludedFees(address(this), true);
        setExcludedFees(owner(), true);
        setExcludedAntiMev(address(this), true);
    }
    
    receive() payable external {}

    /*//////////////////////////////////////////////////////////////
                            USER FUNCTIONS
    //////////////////////////////////////////////////////////////*/

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

    function symbol() public view returns (string memory) {
        return _symbol;
    }
    
    function decimals() public view returns (uint8) {
        return _decimals;
    }
    
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

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

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "Wallet address can not be the zero address!");
        require(spender != address(0), "Spender can not be the zero address!");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    
    function allowance(address owner, address spender) public view virtual returns (uint256) {
        return _allowances[owner][spender];
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "Decreased allowance below zero!");
        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

    /// @notice High level function to move `amount` of tokens from `msg.sender` to `recipient` and applying fees
    /// @dev Transfers amount of tokens from the msg.sender to recipient
    /// @param recipient The address that is receiving tokens
    /// @param amount The initial amount of tokens being sent, before fees on transfer
    /// @return True if transfer is successful, else false
    function transfer(address recipient, uint256 amount) public virtual returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    
    /// @notice High level function to move `amount` of tokens from `sender` to `recipient` and applying fees
    /// @dev Transfers amount of tokens from sender to recipient
    /// @param sender The address that is sending tokens
    /// @param recipient The address that is receiving tokens
    /// @param amount The initial amount of tokens being sent, before fees on transfer
    /// @return True if transfer is succesful, else false
    function transferFrom(address sender, address recipient, uint256 amount) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Amount exceeds allowance!");
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, currentAllowance - amount);    
        return true;
    }

    /// @notice Low level function that sends `amount` from `sender` to `recipient`, checking limitations & apply fees
    /// @dev Transfers amount of tokens from sender to recipient
    /// @param sender The address that is sending tokens
    /// @param recipient The address that is receiving tokens
    /// @param amount The initial amount of tokens being sent, before fees on transfer
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {

        //anti mev
        if(antiBotsActive) {
            if(!_excludedAntiMev[sender] && !_excludedAntiMev[recipient])
            {
                address actor = antiMevCheck(sender, recipient);
                antiMevFreq(actor);
                antiMevBlock[actor] = block.number;
            }
        }
        
        uint256 senderBalance = balanceOf(sender);
        require(senderBalance >= amount, "Amount exceeds senders balance!");
        _balances[sender] = senderBalance - amount;

       if(!tradingActive){
            require(_excludedFees[sender] || _excludedFees[recipient], "Trading is not active.");
        }

        bool takeFee = !_inSwap;

        if(
            _excludedFees[sender] || 
            _excludedFees[recipient] 
        ) {
            takeFee = false;
        }

        if(takeFee) {
            uint256 liquidityAmount = 0;
        
            //if buy
            if(automatedMarketMakerPairs[sender]) {
                liquidityAmount = amount * buyLiquidityFee / 100000;
            }

            //if sell
            if(automatedMarketMakerPairs[recipient]) {
                liquidityAmount = amount * sellLiquidityFee / 100000;
                
                swapAddLiquidity();
            }

            if(liquidityAmount > 0){ 
                amount -= liquidityAmount;
                _balances[address(this)] += liquidityAmount;
                emit Transfer(sender, address(this), liquidityAmount);
            }
        }
        
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    /// @dev Adds liquidity on the EMPIRE/Native Coin pair
    /// @param tokenAmount The amount of tokens for adding to liquidity
    /// @param amount The amount of native coin for adding to liquidity
    function addLiquidity(uint256 tokenAmount, uint256 amount) internal virtual {
        _approve(address(this), address(router), tokenAmount);
        (uint256 tokens, uint256 eth, uint256 lpCreated) = 
        router.addLiquidityETH{value: amount}(address(this), tokenAmount, 0, 0, address(this), block.timestamp);
        emit LiquidityAdded(tokens, eth, lpCreated);
    }

    /// @dev Swaps `amount` EMPIRE for native coin
    /// @param amount The amount of EMPIRE to swap
    function swapTokensForEth(uint256 amount) internal virtual {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), amount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, path, address(this), block.timestamp);
    }

    /// @notice Sells EMPIRE for native coin and uses both to add liquidity
    /// @dev Checks if the amount of EMPIRE on the contract is > addLiquidityAmount
    function swapAddLiquidity() internal virtual {
        uint256 tokenBalance = balanceOf(address(this));
        if(!_inSwap && tokenBalance >= addLiquidityAmount) {
            _inSwap = true;
            
            uint256 sellAmount = tokenBalance;
            uint256 sellHalf = sellAmount / 2;

            uint256 initialEth = address(this).balance;
            swapTokensForEth(sellHalf);
            uint256 receivedEth = address(this).balance - initialEth;

            addLiquidity(sellAmount - sellHalf, (receivedEth));

            _inSwap = false;
        }
    }

    /// @notice Burns `amount` EMPIRE tokens
    /// @dev Used to manually burn EMPIRE
    /// @param amount The amount of EMPIRE to burn
    function manualBurn(uint256 amount) external {
        address account = msg.sender;
        require(amount <= _balances[account], "Burn amount exceeds balance");
        _balances[account] -= amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    /*//////////////////////////////////////////////////////////////
                            ANTI BOT FUNCTIONS
    //////////////////////////////////////////////////////////////*/

    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function antiMevCheck(address _from, address _to) internal virtual returns (address) {
        require(!isContract(_to) || !isContract(_from), "No bots allowed!");
        if (isContract(_to)) return _from;
        else return _to;
    }

    function antiMevFreq(address addr) internal virtual {
        bool isAllowed = antiMevBlock[addr] == 0 ||
            ((antiMevBlock[addr] + blockCooldownAmount) < (block.number + 1));
        require(isAllowed, "Max tx frequency exceeded!");
    }

    /*//////////////////////////////////////////////////////////////
                            ADMIN FUNCTIONS
    //////////////////////////////////////////////////////////////*/

    /// @notice Withdraws token address or native if 0x0 is input
    /// @dev Withdraws native coin or tokens from contract if some gets stuck on the contract
    /// @param token The address of the token being withdrawn
    function recover(address token) external onlyOwner {
        if (token == 0x0000000000000000000000000000000000000000) {
           (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
           require(success, "Transfer failed.");
        } else {
            IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
        }
    }

    /// @notice Changes antiBotsActive to `value`
    /// @dev Determines if anti-MEV checks are conducted on transfers
    /// @param value Determines the new value for antiBotsActive
    function setAntiBotsActive(bool value) external onlyOwner {
        antiBotsActive = value;
    }

    /// @notice Defines the new value for addLiquidityAmount (`_addLiquidityAmount`)
    /// @dev addLiquidityAmount = how many tokens to hold on contract before selling for liquidity
    /// @param _addLiquidityAmount Determines the new value for addLiquidityAmount
    function setLimit(uint256 _addLiquidityAmount) external onlyOwner {
        addLiquidityAmount = _addLiquidityAmount * 10**_decimals;
        emit NewLimit(_addLiquidityAmount);
    }

    /// @dev Defines the fees on transfer for buys and sells separately
    /// @param _buyLiquidityFee Determines the new value for buyLiquidityFee
    /// @param _sellLiquidityFee Determines the new value for sellLiquidityFee
    function setFees(
        uint256 _buyLiquidityFee,
        uint256 _sellLiquidityFee
        ) external onlyOwner {
        require(
            _buyLiquidityFee <= 5000
            && _sellLiquidityFee <= 5000
            , "Fees cannot be more than 5 percent");
        buyLiquidityFee = _buyLiquidityFee;
        sellLiquidityFee = _sellLiquidityFee;
        emit NewFees(_buyLiquidityFee, _sellLiquidityFee);
    }

    /// @notice Defines if an address (`addy`) is exempt from fees on transfer
    /// @param addy Determines the address to be excluded from fees on transfer
    /// @param status Determines if `addy` is excluded from fees on transfer
    function setExcludedFees(address addy, bool status) public onlyOwner {
        _excludedFees[addy] = status;
        emit SetExcludedFees(addy, status);
    }

    /// @notice Defines if an address (`addy`) is exempt from anti-MEV checks
    /// @param addy Determines the address to be excluded from anti-MEV checks
    /// @param status Determines if `addy` is excluded from anti-MEV checks
    function setExcludedAntiMev(address addy, bool status) public onlyOwner {
        _excludedAntiMev[addy] = status;
    }

    /// @notice Defines if `addy` is a DEX trading pair for the EMPIRE token
    /// @dev Specifies the pair address contract
    /// @param addy Determines the address of the market maker pair
    /// @param status Determines if `addy` is a market maker pair
    function setAutomatedMarketMakerPair(address addy, bool status) public onlyOwner {
        automatedMarketMakerPairs[addy] = status;
    }


    /// @notice Changes the tradingActive to `status`
    /// @dev tradingActive determines if trading on a DEX is enabled 
    /// @param status Determines the new status for tradingActive
    function setTradingActive(bool status) external onlyOwner {
        tradingActive = status;
        emit SetTradingActive(status);
    }

    /// @notice Changes the setBlockCooldown variable to `value`
    /// @dev Used to determine anti-MEV logic, setting how many blocks can elapse between transfers
    /// @param value Determines the new value for setBlockCooldown
    function setBlockCooldown(uint value) external onlyOwner {
        blockCooldownAmount = value;
    }

    /// @notice Changes the router variable to `_router`
    /// @dev Used for changing which router is integrated into the auto-liquidity feature
    /// @param _router Determines the address of the new router
    function changeRouter(address _router) external onlyOwner {
        router = IEmpireRouter(_router);
    }

    /*//////////////////////////////////////////////////////////////
                          BRIDGING FUNCTIONS
    //////////////////////////////////////////////////////////////*/

    // BRIDGE OPERATOR ONLY REQUIRES 2BA - TWO BLOCKCHAIN AUTHENTICATION //

    /// @dev Receives `amount` EMPIRE from a cross chain transfer
    /// @param account The address that is receiving a cross chain transfer
    /// @param amount The amount of EMPIRE tokens being received cross chain
    function unlock(address account, uint256 amount) external onlyOperator {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;

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

    /// @notice Called by bridge when user has calls function lock() on LockBurnBridge
    /// @dev Initiates cross chain transfer of `amount` EMPIRE to another chain
    /// @param account The address that is doing a cross chain transfer
    /// @param amount The amount of EMPIRE tokens being transferred cross chain
    function lock(address account, uint256 amount) external onlyOperator {
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"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":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nativeCoin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lpAdded","type":"uint256"}],"name":"LiquidityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyLiqFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellLiqFee","type":"uint256"}],"name":"NewFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAddLiqAmount","type":"uint256"}],"name":"NewLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_whiteList","type":"bool"}],"name":"OperatorCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetExcludedFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetTradingActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_excludedAntiMev","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_excludedFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBotsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"antiMevBlock","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockCooldownAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"changeRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"token","type":"address"}],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setAntiBotsActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setBlockCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedAntiMev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_addLiquidityAmount","type":"uint256"}],"name":"setLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_whiteList","type":"bool"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTradingActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","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":"uint256","name":"amount","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600e60808190526d456d70697265204e6574776f726b60901b60a090815262000031916002919062000523565b5060408051808201909152600680825265454d5049524560d01b6020909201918252620000619160039162000523565b506005805460ff191660121790553480156200007c57600080fd5b50604051620029af380380620029af8339810160408190526200009f91620005c9565b620000aa3362000335565b80600a60036101000a8154816001600160a01b0302191690836001600160a01b03160217905550600a60039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012057600080fd5b505afa15801562000135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015b9190620005c9565b6001600160a01b031663c9c6539630600a60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001b957600080fd5b505afa158015620001ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f49190620005c9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200023d57600080fd5b505af115801562000252573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002789190620005c9565b60058054610100600160a81b0319166101006001600160a01b0393841681029190911791829055620002af92910416600162000385565b600554620002c29060ff16600a62000642565b620002cf90606462000703565b600655611388600781905560085560016009819055600a805462ff000019166201000017905562000302903090620003ff565b62000321620003196000546001600160a01b031690565b6001620003ff565b6200032e306001620004ad565b5062000778565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620003d45760405162461bcd60e51b815260206004820181905260248201526000805160206200298f83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146200044a5760405162461bcd60e51b815260206004820181905260248201526000805160206200298f8339815191526044820152606401620003cb565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f2f6377b1bb86f1f4b88374feff2e0852087984db53f9c4045236ddc58fa0a49a910160405180910390a15050565b6000546001600160a01b03163314620004f85760405162461bcd60e51b815260206004820181905260248201526000805160206200298f8339815191526044820152606401620003cb565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b828054620005319062000725565b90600052602060002090601f016020900481019282620005555760008555620005a0565b82601f106200057057805160ff1916838001178555620005a0565b82800160010185558215620005a0579182015b82811115620005a057825182559160200191906001019062000583565b50620005ae929150620005b2565b5090565b5b80821115620005ae5760008155600101620005b3565b600060208284031215620005db578081fd5b81516001600160a01b0381168114620005f2578182fd5b9392505050565b600181815b808511156200063a5781600019048211156200061e576200061e62000762565b808516156200062c57918102915b93841c9390800290620005fe565b509250929050565b6000620005f260ff8416836000826200065e57506001620006fd565b816200066d57506000620006fd565b81600181146200068657600281146200069157620006b1565b6001915050620006fd565b60ff841115620006a557620006a562000762565b50506001821b620006fd565b5060208310610133831016604e8410600b8410161715620006d6575081810a620006fd565b620006e28383620005f9565b8060001904821115620006f957620006f962000762565b0290505b92915050565b600081600019048311821515161562000720576200072062000762565b500290565b600181811c908216806200073a57607f821691505b602082108114156200075c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61220780620007886000396000f3fe60806040526004361061023f5760003560e01c80636db41ce91161012e578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e14610708578063f11a24d31461074e578063f2fde38b14610764578063f637434214610784578063fe8a6fc41461079a57600080fd5b8063a457c2d714610654578063a8aa1b3114610674578063a9059cbb14610699578063b62496f5146106b9578063bbc0c742146106e957600080fd5b80638da5cb5b116100f25780638da5cb5b1461059d578063959bd6c2146105cf57806395d89b41146105ef5780639a307391146106045780639a7a23d61461063457600080fd5b80636db41ce9146104f257806370a0823114610512578063715018a6146105485780637eee288d1461055d57806380f683101461057d57600080fd5b806323b872dd116101bc57806337c59b5a1161018057806337c59b5a1461044c578063395093511461047c57806341f20b681461049c578063558a7297146104bc57806363ce099f146104dc57600080fd5b806323b872dd146103aa57806327ea6f2b146103ca578063282d3fdf146103ea578063313ce5671461040a578063340ac20f1461042c57600080fd5b806313c72aed1161020357806313c72aed1461030857806318160ddd146103285780631868aadf146103475780632260ac691461035d57806323b635851461038a57600080fd5b806306fdde031461024b578063095ea7b3146102765780630b78f9c0146102a65780630cd865ec146102c85780630e6fa0ff146102e857600080fd5b3661024657005b600080fd5b34801561025757600080fd5b506102606107ca565b60405161026d9190611ee9565b60405180910390f35b34801561028257600080fd5b50610296610291366004611e08565b61085c565b604051901515815260200161026d565b3480156102b257600080fd5b506102c66102c1366004611e9b565b610873565b005b3480156102d457600080fd5b506102c66102e3366004611d24565b610959565b3480156102f457600080fd5b506102c6610303366004611ddb565b610b22565b34801561031457600080fd5b506102c6610323366004611e6b565b610b77565b34801561033457600080fd5b506004545b60405190815260200161026d565b34801561035357600080fd5b5061033960095481565b34801561036957600080fd5b50610339610378366004611d24565b600f6020526000908152604090205481565b34801561039657600080fd5b506102c66103a5366004611e6b565b610ba6565b3480156103b657600080fd5b506102966103c5366004611d9b565b610c7f565b3480156103d657600080fd5b506102c66103e5366004611e6b565b610d1d565b3480156103f657600080fd5b506102c6610405366004611e08565b610d9c565b34801561041657600080fd5b5060055460405160ff909116815260200161026d565b34801561043857600080fd5b506102c6610447366004611d24565b610ec8565b34801561045857600080fd5b50610296610467366004611d24565b600d6020526000908152604090205460ff1681565b34801561048857600080fd5b50610296610497366004611e08565b610f1e565b3480156104a857600080fd5b50600a546102969062010000900460ff1681565b3480156104c857600080fd5b506102c66104d7366004611ddb565b610f55565b3480156104e857600080fd5b5061033960065481565b3480156104fe57600080fd5b506102c661050d366004611ddb565b610fdb565b34801561051e57600080fd5b5061033961052d366004611d24565b6001600160a01b03166000908152600c602052604090205490565b34801561055457600080fd5b506102c6611061565b34801561056957600080fd5b506102c6610578366004611e08565b611097565b34801561058957600080fd5b506102c6610598366004611e33565b6111ac565b3480156105a957600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026d565b3480156105db57600080fd5b506102c66105ea366004611e33565b6111f2565b3480156105fb57600080fd5b50610260611265565b34801561061057600080fd5b5061029661061f366004611d24565b60016020526000908152604090205460ff1681565b34801561064057600080fd5b506102c661064f366004611ddb565b611274565b34801561066057600080fd5b5061029661066f366004611e08565b6112c9565b34801561068057600080fd5b506005546105b79061010090046001600160a01b031681565b3480156106a557600080fd5b506102966106b4366004611e08565b611356565b3480156106c557600080fd5b506102966106d4366004611d24565b60106020526000908152604090205460ff1681565b3480156106f557600080fd5b50600a5461029690610100900460ff1681565b34801561071457600080fd5b50610339610723366004611d63565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561075a57600080fd5b5061033960075481565b34801561077057600080fd5b506102c661077f366004611d24565b611363565b34801561079057600080fd5b5061033960085481565b3480156107a657600080fd5b506102966107b5366004611d24565b600e6020526000908152604090205460ff1681565b6060600280546107d99061213d565b80601f01602080910402602001604051908101604052809291908181526020018280546108059061213d565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60006108693384846113fb565b5060015b92915050565b6000546001600160a01b031633146108a65760405162461bcd60e51b815260040161089d90611f3c565b60405180910390fd5b61138882111580156108ba57506113888111155b6109115760405162461bcd60e51b815260206004820152602260248201527f466565732063616e6e6f74206265206d6f7265207468616e20352070657263656044820152611b9d60f21b606482015260840161089d565b6007829055600881905560408051838152602081018390527f0aaa05fba10caab20c7dfcd757223e489dbd2313a5e1add54bca74aceaf1781991015b60405180910390a15050565b6000546001600160a01b031633146109835760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b038116610a2057604051600090339047908381818185875af1925050503d80600081146109d3576040519150601f19603f3d011682016040523d82523d6000602084013e6109d8565b606091505b5050905080610a1c5760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161089d565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b158015610a6957600080fd5b505afa158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa19190611e83565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610ae757600080fd5b505af1158015610afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c9190611e4f565b50565b6000546001600160a01b03163314610b4c5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ba15760405162461bcd60e51b815260040161089d90611f3c565b600955565b336000818152600c6020526040902054821115610c055760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e63650000000000604482015260640161089d565b6001600160a01b0381166000908152600c602052604081208054849290610c2d908490612126565b925050819055508160046000828254610c469190612126565b90915550506040518281526000906001600160a01b038316906000805160206121b2833981519152906020015b60405180910390a35050565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205482811015610cf35760405162461bcd60e51b815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652100000000000000604482015260640161089d565b610cfe858585611520565b610d128533610d0d8685612126565b6113fb565b506001949350505050565b6000546001600160a01b03163314610d475760405162461bcd60e51b815260040161089d90611f3c565b600554610d589060ff16600a61205c565b610d629082612107565b6006556040518181527fe1e1c8251499b303aefb01cf84a5ce22a95911c20ce2f3f5ae670441a6353d82906020015b60405180910390a150565b3360009081526001602052604090205460ff16610deb5760405162461bcd60e51b815260206004820152600d60248201526c27b7363c96a7b832b930ba37b960991b604482015260640161089d565b6001600160a01b0382166000908152600c602052604090205481811015610e5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161089d565b6001600160a01b0383166000908152600c60205260408120838303905560048054849290610e8e908490612126565b90915550506040518281526000906001600160a01b038516906000805160206121b2833981519152906020015b60405180910390a3505050565b6000546001600160a01b03163314610ef25760405162461bcd60e51b815260040161089d90611f3c565b600a80546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610869918590610d0d908690611fe1565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b038216600081815260016020908152604091829020805460ff19168515159081179091558251938452908301527f016538030c53a1e2cce1e920121b80b3fca876970fa29ed3c3b1c0a6fc423621910161094d565b6000546001600160a01b031633146110055760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f2f6377b1bb86f1f4b88374feff2e0852087984db53f9c4045236ddc58fa0a49a910161094d565b6000546001600160a01b0316331461108b5760405162461bcd60e51b815260040161089d90611f3c565b6110956000611881565b565b3360009081526001602052604090205460ff166110e65760405162461bcd60e51b815260206004820152600d60248201526c27b7363c96a7b832b930ba37b960991b604482015260640161089d565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161089d565b806004600082825461114e9190611fe1565b90915550506001600160a01b0382166000908152600c60205260408120805483929061117b908490611fe1565b90915550506040518181526001600160a01b038316906000906000805160206121b283398151915290602001610c73565b6000546001600160a01b031633146111d65760405162461bcd60e51b815260040161089d90611f3c565b600a8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461121c5760405162461bcd60e51b815260040161089d90611f3c565b600a80548215156101000261ff00199091161790556040517f4fa3af35030a6d531e010728ded75e43818c3b10f563bec547fff22472898da090610d9190831515815260200190565b6060600380546107d99061213d565b6000546001600160a01b0316331461129e5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b336000908152600b602090815260408083206001600160a01b03861684529091528120548281101561133d5760405162461bcd60e51b815260206004820152601f60248201527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f2100604482015260640161089d565b61134c3385610d0d8685612126565b5060019392505050565b6000610869338484611520565b6000546001600160a01b0316331461138d5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b0381166113f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089d565b610b1f81611881565b6001600160a01b0383166114655760405162461bcd60e51b815260206004820152602b60248201527f57616c6c657420616464726573732063616e206e6f7420626520746865207a6560448201526a726f20616464726573732160a81b606482015260840161089d565b6001600160a01b0382166114c75760405162461bcd60e51b8152602060048201526024808201527f5370656e6465722063616e206e6f7420626520746865207a65726f20616464726044820152636573732160e01b606482015260840161089d565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610ebb565b600a5462010000900460ff16156115aa576001600160a01b0383166000908152600e602052604090205460ff1615801561157357506001600160a01b0382166000908152600e602052604090205460ff16155b156115aa57600061158484846118d1565b905061158f81611934565b6001600160a01b03166000908152600f602052604090204390555b6001600160a01b0383166000908152600c6020526040902054818110156116135760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420657863656564732073656e646572732062616c616e63652100604482015260640161089d565b61161d8282612126565b6001600160a01b0385166000908152600c6020526040902055600a54610100900460ff166116c9576001600160a01b0384166000908152600d602052604090205460ff168061168457506001600160a01b0383166000908152600d602052604090205460ff165b6116c95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161089d565b600a546001600160a01b0385166000908152600d602052604090205460ff9182161591168061171057506001600160a01b0384166000908152600d602052604090205460ff165b15611719575060005b8015611810576001600160a01b03851660009081526010602052604081205460ff161561175f57620186a0600754856117529190612107565b61175c9190611ff9565b90505b6001600160a01b03851660009081526010602052604090205460ff16156117a657620186a0600854856117929190612107565b61179c9190611ff9565b90506117a66119d6565b801561180e576117b68185612126565b306000908152600c60205260408120805492965083929091906117da908490611fe1565b909155505060405181815230906001600160a01b038816906000805160206121b28339815191529060200160405180910390a35b505b6001600160a01b0384166000908152600c602052604081208054859290611838908490611fe1565b92505081905550836001600160a01b0316856001600160a01b03166000805160206121b28339815191528560405161187291815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000813b15806118e05750823b155b61191f5760405162461bcd60e51b815260206004820152601060248201526f4e6f20626f747320616c6c6f7765642160801b604482015260640161089d565b813b1561192d57508161086d565b508061086d565b6001600160a01b0381166000908152600f60205260408120541580611987575061195f436001611fe1565b6009546001600160a01b0384166000908152600f60205260409020546119859190611fe1565b105b905080610a1c5760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e637920657863656564656421000000000000604482015260640161089d565b306000908152600c6020526040902054600a5460ff161580156119fb57506006548110155b15610b1f57600a805460ff19166001179055806000611a1b600283611ff9565b905047611a2782611a59565b6000611a338247612126565b9050611a48611a428486612126565b82611c05565b5050600a805460ff19169055505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a9c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050600a60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0a57600080fd5b505afa158015611b1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b429190611d47565b81600181518110611b6357634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600a54611b909130916301000000900416846113fb565b600a5460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611bcf908590600090869030904290600401611f71565b600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b505050505050565b600a54611c24903090630100000090046001600160a01b0316846113fb565b600a5460405163f305d71960e01b81523060048201819052602482018590526000604483018190526064830181905260848301919091524260a48301529182918291630100000090046001600160a01b03169063f305d71990869060c4016060604051808303818588803b158015611c9b57600080fd5b505af1158015611caf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cd49190611ebc565b604080518481526020810184905290810182905292955090935091507fd7f28048575eead8851d024ead087913957dfb4fd1a02b4d1573f5352a5a2be39060600160405180910390a15050505050565b600060208284031215611d35578081fd5b8135611d408161218e565b9392505050565b600060208284031215611d58578081fd5b8151611d408161218e565b60008060408385031215611d75578081fd5b8235611d808161218e565b91506020830135611d908161218e565b809150509250929050565b600080600060608486031215611daf578081fd5b8335611dba8161218e565b92506020840135611dca8161218e565b929592945050506040919091013590565b60008060408385031215611ded578182fd5b8235611df88161218e565b91506020830135611d90816121a3565b60008060408385031215611e1a578182fd5b8235611e258161218e565b946020939093013593505050565b600060208284031215611e44578081fd5b8135611d40816121a3565b600060208284031215611e60578081fd5b8151611d40816121a3565b600060208284031215611e7c578081fd5b5035919050565b600060208284031215611e94578081fd5b5051919050565b60008060408385031215611ead578182fd5b50508035926020909101359150565b600080600060608486031215611ed0578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611f1557858101830151858201604001528201611ef9565b81811115611f265783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611fc05784516001600160a01b031683529383019391830191600101611f9b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ff457611ff4612178565b500190565b60008261201457634e487b7160e01b81526012600452602481fd5b500490565b600181815b8085111561205457816000190482111561203a5761203a612178565b8085161561204757918102915b93841c939080029061201e565b509250929050565b6000611d4060ff8416836000826120755750600161086d565b816120825750600061086d565b816001811461209857600281146120a2576120be565b600191505061086d565b60ff8411156120b3576120b3612178565b50506001821b61086d565b5060208310610133831016604e8410600b84101617156120e1575081810a61086d565b6120eb8383612019565b80600019048211156120ff576120ff612178565b029392505050565b600081600019048311821515161561212157612121612178565b500290565b60008282101561213857612138612178565b500390565b600181811c9082168061215157607f821691505b6020821081141561217257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610b1f57600080fd5b8015158114610b1f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b90057c6da5e45422c6d7352e4a563fdbe7874f288a90b2c3826febaddbd2f7564736f6c634300080400334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80636db41ce91161012e578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e14610708578063f11a24d31461074e578063f2fde38b14610764578063f637434214610784578063fe8a6fc41461079a57600080fd5b8063a457c2d714610654578063a8aa1b3114610674578063a9059cbb14610699578063b62496f5146106b9578063bbc0c742146106e957600080fd5b80638da5cb5b116100f25780638da5cb5b1461059d578063959bd6c2146105cf57806395d89b41146105ef5780639a307391146106045780639a7a23d61461063457600080fd5b80636db41ce9146104f257806370a0823114610512578063715018a6146105485780637eee288d1461055d57806380f683101461057d57600080fd5b806323b872dd116101bc57806337c59b5a1161018057806337c59b5a1461044c578063395093511461047c57806341f20b681461049c578063558a7297146104bc57806363ce099f146104dc57600080fd5b806323b872dd146103aa57806327ea6f2b146103ca578063282d3fdf146103ea578063313ce5671461040a578063340ac20f1461042c57600080fd5b806313c72aed1161020357806313c72aed1461030857806318160ddd146103285780631868aadf146103475780632260ac691461035d57806323b635851461038a57600080fd5b806306fdde031461024b578063095ea7b3146102765780630b78f9c0146102a65780630cd865ec146102c85780630e6fa0ff146102e857600080fd5b3661024657005b600080fd5b34801561025757600080fd5b506102606107ca565b60405161026d9190611ee9565b60405180910390f35b34801561028257600080fd5b50610296610291366004611e08565b61085c565b604051901515815260200161026d565b3480156102b257600080fd5b506102c66102c1366004611e9b565b610873565b005b3480156102d457600080fd5b506102c66102e3366004611d24565b610959565b3480156102f457600080fd5b506102c6610303366004611ddb565b610b22565b34801561031457600080fd5b506102c6610323366004611e6b565b610b77565b34801561033457600080fd5b506004545b60405190815260200161026d565b34801561035357600080fd5b5061033960095481565b34801561036957600080fd5b50610339610378366004611d24565b600f6020526000908152604090205481565b34801561039657600080fd5b506102c66103a5366004611e6b565b610ba6565b3480156103b657600080fd5b506102966103c5366004611d9b565b610c7f565b3480156103d657600080fd5b506102c66103e5366004611e6b565b610d1d565b3480156103f657600080fd5b506102c6610405366004611e08565b610d9c565b34801561041657600080fd5b5060055460405160ff909116815260200161026d565b34801561043857600080fd5b506102c6610447366004611d24565b610ec8565b34801561045857600080fd5b50610296610467366004611d24565b600d6020526000908152604090205460ff1681565b34801561048857600080fd5b50610296610497366004611e08565b610f1e565b3480156104a857600080fd5b50600a546102969062010000900460ff1681565b3480156104c857600080fd5b506102c66104d7366004611ddb565b610f55565b3480156104e857600080fd5b5061033960065481565b3480156104fe57600080fd5b506102c661050d366004611ddb565b610fdb565b34801561051e57600080fd5b5061033961052d366004611d24565b6001600160a01b03166000908152600c602052604090205490565b34801561055457600080fd5b506102c6611061565b34801561056957600080fd5b506102c6610578366004611e08565b611097565b34801561058957600080fd5b506102c6610598366004611e33565b6111ac565b3480156105a957600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026d565b3480156105db57600080fd5b506102c66105ea366004611e33565b6111f2565b3480156105fb57600080fd5b50610260611265565b34801561061057600080fd5b5061029661061f366004611d24565b60016020526000908152604090205460ff1681565b34801561064057600080fd5b506102c661064f366004611ddb565b611274565b34801561066057600080fd5b5061029661066f366004611e08565b6112c9565b34801561068057600080fd5b506005546105b79061010090046001600160a01b031681565b3480156106a557600080fd5b506102966106b4366004611e08565b611356565b3480156106c557600080fd5b506102966106d4366004611d24565b60106020526000908152604090205460ff1681565b3480156106f557600080fd5b50600a5461029690610100900460ff1681565b34801561071457600080fd5b50610339610723366004611d63565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561075a57600080fd5b5061033960075481565b34801561077057600080fd5b506102c661077f366004611d24565b611363565b34801561079057600080fd5b5061033960085481565b3480156107a657600080fd5b506102966107b5366004611d24565b600e6020526000908152604090205460ff1681565b6060600280546107d99061213d565b80601f01602080910402602001604051908101604052809291908181526020018280546108059061213d565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60006108693384846113fb565b5060015b92915050565b6000546001600160a01b031633146108a65760405162461bcd60e51b815260040161089d90611f3c565b60405180910390fd5b61138882111580156108ba57506113888111155b6109115760405162461bcd60e51b815260206004820152602260248201527f466565732063616e6e6f74206265206d6f7265207468616e20352070657263656044820152611b9d60f21b606482015260840161089d565b6007829055600881905560408051838152602081018390527f0aaa05fba10caab20c7dfcd757223e489dbd2313a5e1add54bca74aceaf1781991015b60405180910390a15050565b6000546001600160a01b031633146109835760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b038116610a2057604051600090339047908381818185875af1925050503d80600081146109d3576040519150601f19603f3d011682016040523d82523d6000602084013e6109d8565b606091505b5050905080610a1c5760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161089d565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b158015610a6957600080fd5b505afa158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa19190611e83565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610ae757600080fd5b505af1158015610afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c9190611e4f565b50565b6000546001600160a01b03163314610b4c5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ba15760405162461bcd60e51b815260040161089d90611f3c565b600955565b336000818152600c6020526040902054821115610c055760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e63650000000000604482015260640161089d565b6001600160a01b0381166000908152600c602052604081208054849290610c2d908490612126565b925050819055508160046000828254610c469190612126565b90915550506040518281526000906001600160a01b038316906000805160206121b2833981519152906020015b60405180910390a35050565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205482811015610cf35760405162461bcd60e51b815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652100000000000000604482015260640161089d565b610cfe858585611520565b610d128533610d0d8685612126565b6113fb565b506001949350505050565b6000546001600160a01b03163314610d475760405162461bcd60e51b815260040161089d90611f3c565b600554610d589060ff16600a61205c565b610d629082612107565b6006556040518181527fe1e1c8251499b303aefb01cf84a5ce22a95911c20ce2f3f5ae670441a6353d82906020015b60405180910390a150565b3360009081526001602052604090205460ff16610deb5760405162461bcd60e51b815260206004820152600d60248201526c27b7363c96a7b832b930ba37b960991b604482015260640161089d565b6001600160a01b0382166000908152600c602052604090205481811015610e5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161089d565b6001600160a01b0383166000908152600c60205260408120838303905560048054849290610e8e908490612126565b90915550506040518281526000906001600160a01b038516906000805160206121b2833981519152906020015b60405180910390a3505050565b6000546001600160a01b03163314610ef25760405162461bcd60e51b815260040161089d90611f3c565b600a80546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610869918590610d0d908690611fe1565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b038216600081815260016020908152604091829020805460ff19168515159081179091558251938452908301527f016538030c53a1e2cce1e920121b80b3fca876970fa29ed3c3b1c0a6fc423621910161094d565b6000546001600160a01b031633146110055760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f2f6377b1bb86f1f4b88374feff2e0852087984db53f9c4045236ddc58fa0a49a910161094d565b6000546001600160a01b0316331461108b5760405162461bcd60e51b815260040161089d90611f3c565b6110956000611881565b565b3360009081526001602052604090205460ff166110e65760405162461bcd60e51b815260206004820152600d60248201526c27b7363c96a7b832b930ba37b960991b604482015260640161089d565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161089d565b806004600082825461114e9190611fe1565b90915550506001600160a01b0382166000908152600c60205260408120805483929061117b908490611fe1565b90915550506040518181526001600160a01b038316906000906000805160206121b283398151915290602001610c73565b6000546001600160a01b031633146111d65760405162461bcd60e51b815260040161089d90611f3c565b600a8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461121c5760405162461bcd60e51b815260040161089d90611f3c565b600a80548215156101000261ff00199091161790556040517f4fa3af35030a6d531e010728ded75e43818c3b10f563bec547fff22472898da090610d9190831515815260200190565b6060600380546107d99061213d565b6000546001600160a01b0316331461129e5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b336000908152600b602090815260408083206001600160a01b03861684529091528120548281101561133d5760405162461bcd60e51b815260206004820152601f60248201527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f2100604482015260640161089d565b61134c3385610d0d8685612126565b5060019392505050565b6000610869338484611520565b6000546001600160a01b0316331461138d5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b0381166113f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089d565b610b1f81611881565b6001600160a01b0383166114655760405162461bcd60e51b815260206004820152602b60248201527f57616c6c657420616464726573732063616e206e6f7420626520746865207a6560448201526a726f20616464726573732160a81b606482015260840161089d565b6001600160a01b0382166114c75760405162461bcd60e51b8152602060048201526024808201527f5370656e6465722063616e206e6f7420626520746865207a65726f20616464726044820152636573732160e01b606482015260840161089d565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610ebb565b600a5462010000900460ff16156115aa576001600160a01b0383166000908152600e602052604090205460ff1615801561157357506001600160a01b0382166000908152600e602052604090205460ff16155b156115aa57600061158484846118d1565b905061158f81611934565b6001600160a01b03166000908152600f602052604090204390555b6001600160a01b0383166000908152600c6020526040902054818110156116135760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420657863656564732073656e646572732062616c616e63652100604482015260640161089d565b61161d8282612126565b6001600160a01b0385166000908152600c6020526040902055600a54610100900460ff166116c9576001600160a01b0384166000908152600d602052604090205460ff168061168457506001600160a01b0383166000908152600d602052604090205460ff165b6116c95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161089d565b600a546001600160a01b0385166000908152600d602052604090205460ff9182161591168061171057506001600160a01b0384166000908152600d602052604090205460ff165b15611719575060005b8015611810576001600160a01b03851660009081526010602052604081205460ff161561175f57620186a0600754856117529190612107565b61175c9190611ff9565b90505b6001600160a01b03851660009081526010602052604090205460ff16156117a657620186a0600854856117929190612107565b61179c9190611ff9565b90506117a66119d6565b801561180e576117b68185612126565b306000908152600c60205260408120805492965083929091906117da908490611fe1565b909155505060405181815230906001600160a01b038816906000805160206121b28339815191529060200160405180910390a35b505b6001600160a01b0384166000908152600c602052604081208054859290611838908490611fe1565b92505081905550836001600160a01b0316856001600160a01b03166000805160206121b28339815191528560405161187291815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000813b15806118e05750823b155b61191f5760405162461bcd60e51b815260206004820152601060248201526f4e6f20626f747320616c6c6f7765642160801b604482015260640161089d565b813b1561192d57508161086d565b508061086d565b6001600160a01b0381166000908152600f60205260408120541580611987575061195f436001611fe1565b6009546001600160a01b0384166000908152600f60205260409020546119859190611fe1565b105b905080610a1c5760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e637920657863656564656421000000000000604482015260640161089d565b306000908152600c6020526040902054600a5460ff161580156119fb57506006548110155b15610b1f57600a805460ff19166001179055806000611a1b600283611ff9565b905047611a2782611a59565b6000611a338247612126565b9050611a48611a428486612126565b82611c05565b5050600a805460ff19169055505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a9c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050600a60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0a57600080fd5b505afa158015611b1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b429190611d47565b81600181518110611b6357634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600a54611b909130916301000000900416846113fb565b600a5460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611bcf908590600090869030904290600401611f71565b600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b505050505050565b600a54611c24903090630100000090046001600160a01b0316846113fb565b600a5460405163f305d71960e01b81523060048201819052602482018590526000604483018190526064830181905260848301919091524260a48301529182918291630100000090046001600160a01b03169063f305d71990869060c4016060604051808303818588803b158015611c9b57600080fd5b505af1158015611caf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cd49190611ebc565b604080518481526020810184905290810182905292955090935091507fd7f28048575eead8851d024ead087913957dfb4fd1a02b4d1573f5352a5a2be39060600160405180910390a15050505050565b600060208284031215611d35578081fd5b8135611d408161218e565b9392505050565b600060208284031215611d58578081fd5b8151611d408161218e565b60008060408385031215611d75578081fd5b8235611d808161218e565b91506020830135611d908161218e565b809150509250929050565b600080600060608486031215611daf578081fd5b8335611dba8161218e565b92506020840135611dca8161218e565b929592945050506040919091013590565b60008060408385031215611ded578182fd5b8235611df88161218e565b91506020830135611d90816121a3565b60008060408385031215611e1a578182fd5b8235611e258161218e565b946020939093013593505050565b600060208284031215611e44578081fd5b8135611d40816121a3565b600060208284031215611e60578081fd5b8151611d40816121a3565b600060208284031215611e7c578081fd5b5035919050565b600060208284031215611e94578081fd5b5051919050565b60008060408385031215611ead578182fd5b50508035926020909101359150565b600080600060608486031215611ed0578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611f1557858101830151858201604001528201611ef9565b81811115611f265783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611fc05784516001600160a01b031683529383019391830191600101611f9b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ff457611ff4612178565b500190565b60008261201457634e487b7160e01b81526012600452602481fd5b500490565b600181815b8085111561205457816000190482111561203a5761203a612178565b8085161561204757918102915b93841c939080029061201e565b509250929050565b6000611d4060ff8416836000826120755750600161086d565b816120825750600061086d565b816001811461209857600281146120a2576120be565b600191505061086d565b60ff8411156120b3576120b3612178565b50506001821b61086d565b5060208310610133831016604e8410600b84101617156120e1575081810a61086d565b6120eb8383612019565b80600019048211156120ff576120ff612178565b029392505050565b600081600019048311821515161561212157612121612178565b500290565b60008282101561213857612138612178565b500390565b600181811c9082168061215157607f821691505b6020821081141561217257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610b1f57600080fd5b8015158114610b1f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b90057c6da5e45422c6d7352e4a563fdbe7874f288a90b2c3826febaddbd2f7564736f6c63430008040033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

5402:16745:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7687:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8550:158;;;;;;;;;;-1:-1:-1;8550:158:0;;;;;:::i;:::-;;:::i;:::-;;;5400:14:1;;5393:22;5375:41;;5363:2;5348:18;8550:158:0;5330:92:1;18004:430:0;;;;;;;;;;-1:-1:-1;18004:430:0;;;;;:::i;:::-;;:::i;:::-;;16621:385;;;;;;;;;;-1:-1:-1;16621:385:0;;;;;:::i;:::-;;:::i;19086:122::-;;;;;;;;;;-1:-1:-1;19086:122:0;;;;;:::i;:::-;;:::i;20205:103::-;;;;;;;;;;-1:-1:-1;20205:103:0;;;;;:::i;:::-;;:::i;7972:91::-;;;;;;;;;;-1:-1:-1;8043:12:0;;7972:91;;;12100:25:1;;;12088:2;12073:18;7972:91:0;12055:76:1;5744:34:0;;;;;;;;;;;;;;;;6160:48;;;;;;;;;;-1:-1:-1;6160:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;15002:296;;;;;;;;;;-1:-1:-1;15002:296:0;;;;;:::i;:::-;;:::i;10487:394::-;;;;;;;;;;-1:-1:-1;10487:394:0;;;;;:::i;:::-;;:::i;17579:186::-;;;;;;;;;;-1:-1:-1;17579:186:0;;;;;:::i;:::-;;:::i;21750:392::-;;;;;;;;;;-1:-1:-1;21750:392:0;;;;;:::i;:::-;;:::i;7877:83::-;;;;;;;;;;-1:-1:-1;7943:9:0;;7877:83;;7943:9;;;;13843:36:1;;13831:2;13816:18;7877:83:0;13798:87:1;20530:108:0;;;;;;;;;;-1:-1:-1;20530:108:0;;;;;:::i;:::-;;:::i;6051:46::-;;;;;;;;;;-1:-1:-1;6051:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8870:211;;;;;;;;;;-1:-1:-1;8870:211:0;;;;;:::i;:::-;;:::i;5846:26::-;;;;;;;;;;-1:-1:-1;5846:26:0;;;;;;;;;;;3805:179;;;;;;;;;;-1:-1:-1;3805:179:0;;;;;:::i;:::-;;:::i;5629:33::-;;;;;;;;;;;;;;;;18681:161;;;;;;;;;;-1:-1:-1;18681:161:0;;;;;:::i;:::-;;:::i;8071:110::-;;;;;;;;;;-1:-1:-1;8071:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;8155:18:0;8128:7;8155:18;;;:9;:18;;;;;;;8071:110;2649:103;;;;;;;;;;;;;:::i;21135:284::-;;;;;;;;;;-1:-1:-1;21135:284:0;;;;;:::i;:::-;;:::i;17202:99::-;;;;;;;;;;-1:-1:-1;17202:99:0;;;;;:::i;:::-;;:::i;1998:87::-;;;;;;;;;;-1:-1:-1;2044:7:0;2071:6;-1:-1:-1;;;;;2071:6:0;1998:87;;;-1:-1:-1;;;;;4011:32:1;;;3993:51;;3981:2;3966:18;1998:87:0;3948:102:1;19823:139:0;;;;;;;;;;-1:-1:-1;19823:139:0;;;;;:::i;:::-;;:::i;7778:87::-;;;;;;;;;;;;;:::i;3583:40::-;;;;;;;;;;-1:-1:-1;3583:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19480:140;;;;;;;;;;-1:-1:-1;19480:140:0;;;;;:::i;:::-;;:::i;9093:365::-;;;;;;;;;;-1:-1:-1;9093:365:0;;;;;:::i;:::-;;:::i;5603:19::-;;;;;;;;;;-1:-1:-1;5603:19:0;;;;;;;-1:-1:-1;;;;;5603:19:0;;;9866:164;;;;;;;;;;-1:-1:-1;9866:164:0;;;;;:::i;:::-;;:::i;6215:58::-;;;;;;;;;;-1:-1:-1;6215:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5814:25;;;;;;;;;;-1:-1:-1;5814:25:0;;;;;;;;;;;8720:142;;;;;;;;;;-1:-1:-1;8720:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;8827:18:0;;;8800:7;8827:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8720:142;5669:30;;;;;;;;;;;;;;;;2907:201;;;;;;;;;;-1:-1:-1;2907:201:0;;;;;:::i;:::-;;:::i;5706:31::-;;;;;;;;;;;;;;;;6104:49;;;;;;;;;;-1:-1:-1;6104:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7687:83;7724:13;7757:5;7750:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7687:83;:::o;8550:158::-;8624:4;8641:37;8650:10;8662:7;8671:6;8641:8;:37::i;:::-;-1:-1:-1;8696:4:0;8550:158;;;;;:::o;18004:430::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;;;;;;;;;18175:4:::1;18155:16;:24;;:66;;;;;18217:4;18196:17;:25;;18155:66;18133:141;;;::::0;-1:-1:-1;;;18133:141:0;;10678:2:1;18133:141:0::1;::::0;::::1;10660:21:1::0;10717:2;10697:18;;;10690:30;10756:34;10736:18;;;10729:62;-1:-1:-1;;;10807:18:1;;;10800:32;10849:19;;18133:141:0::1;10650:224:1::0;18133:141:0::1;18285:15;:34:::0;;;18330:16:::1;:36:::0;;;18382:44:::1;::::0;;13298:25:1;;;13354:2;13339:18;;13332:34;;;18382:44:0::1;::::0;13271:18:1;18382:44:0::1;;;;;;;;18004:430:::0;;:::o;16621:385::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16687:51:0;::::1;16683:316;;16772:58;::::0;16755:12:::1;::::0;16780:10:::1;::::0;16804:21:::1;::::0;16755:12;16772:58;16755:12;16772:58;16804:21;16780:10;16772:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16754:76;;;16852:7;16844:36;;;::::0;-1:-1:-1;;;16844:36:0;;10333:2:1;16844:36:0::1;::::0;::::1;10315:21:1::0;10372:2;10352:18;;;10345:30;-1:-1:-1;;;10391:18:1;;;10384:46;10447:18;;16844:36:0::1;10305:166:1::0;16844:36:0::1;16683:316;16621:385:::0;:::o;16683:316::-:1;16948:38;::::0;-1:-1:-1;;;16948:38:0;;16980:4:::1;16948:38;::::0;::::1;3993:51:1::0;-1:-1:-1;;;;;16913:22:0;::::1;::::0;::::1;::::0;16936:10:::1;::::0;16913:22;;16948:23:::1;::::0;3966:18:1;;16948:38:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16913:74;::::0;-1:-1:-1;;;;;;16913:74:0::1;::::0;;;;;;-1:-1:-1;;;;;4536:32:1;;;16913:74:0::1;::::0;::::1;4518:51:1::0;4585:18;;;4578:34;4491:18;;16913:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16683:316::-;16621:385:::0;:::o;19086:122::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19169:22:0;;;::::1;;::::0;;;:16:::1;:22;::::0;;;;:31;;-1:-1:-1;;19169:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19086:122::o;20205:103::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;20273:19:::1;:27:::0;20205:103::o;15002:296::-;15076:10;15058:15;15115:18;;;:9;:18;;;;;;15105:28;;;15097:68;;;;-1:-1:-1;;;15097:68:0;;9211:2:1;15097:68:0;;;9193:21:1;9250:2;9230:18;;;9223:30;9289:29;9269:18;;;9262:57;9336:18;;15097:68:0;9183:177:1;15097:68:0;-1:-1:-1;;;;;15176:18:0;;;;;;:9;:18;;;;;:28;;15198:6;;15176:18;:28;;15198:6;;15176:28;:::i;:::-;;;;;;;;15231:6;15215:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;15253:37:0;;12100:25:1;;;15279:1:0;;-1:-1:-1;;;;;15253:37:0;;;-1:-1:-1;;;;;;;;;;;15253:37:0;12088:2:1;12073:18;15253:37:0;;;;;;;;15002:296;;:::o;10487:394::-;-1:-1:-1;;;;;10628:19:0;;10584:4;10628:19;;;:11;:19;;;;;;;;10648:10;10628:31;;;;;;;;10678:26;;;;10670:64;;;;-1:-1:-1;;;10670:64:0;;8857:2:1;10670:64:0;;;8839:21:1;8896:2;8876:18;;;8869:30;8935:27;8915:18;;;8908:55;8980:18;;10670:64:0;8829:175:1;10670:64:0;10745:36;10755:6;10763:9;10774:6;10745:9;:36::i;:::-;10792:55;10801:6;10809:10;10821:25;10840:6;10821:16;:25;:::i;:::-;10792:8;:55::i;:::-;-1:-1:-1;10869:4:0;;10487:394;-1:-1:-1;;;;10487:394:0:o;17579:186::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;17703:9:::1;::::0;17699:13:::1;::::0;17703:9:::1;;17699:2;:13;:::i;:::-;17677:35;::::0;:19;:35:::1;:::i;:::-;17656:18;:56:::0;17728:29:::1;::::0;12100:25:1;;;17728:29:0::1;::::0;12088:2:1;12073:18;17728:29:0::1;;;;;;;;17579:186:::0;:::o;21750:392::-;3748:10;3739:20;;;;:8;:20;;;;;;;;3731:46;;;;-1:-1:-1;;;3731:46:0;;7398:2:1;3731:46:0;;;7380:21:1;7437:2;7417:18;;;7410:30;-1:-1:-1;;;7456:18:1;;;7449:43;7509:18;;3731:46:0;7370:163:1;3731:46:0;-1:-1:-1;;;;;21855:18:0;::::1;21830:22;21855:18:::0;;;:9:::1;:18;::::0;;;;;21892:24;;::::1;;21884:71;;;::::0;-1:-1:-1;;;21884:71:0;;6237:2:1;21884:71:0::1;::::0;::::1;6219:21:1::0;6276:2;6256:18;;;6249:30;6315:34;6295:18;;;6288:62;-1:-1:-1;;;6366:18:1;;;6359:32;6408:19;;21884:71:0::1;6209:224:1::0;21884:71:0::1;-1:-1:-1::0;;;;;21991:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;22012:23;;::::1;21991:44:::0;;22057:12:::1;:22:::0;;22029:6;;21991:18;22057:22:::1;::::0;22029:6;;22057:22:::1;:::i;:::-;::::0;;;-1:-1:-1;;22097:37:0::1;::::0;12100:25:1;;;22123:1:0::1;::::0;-1:-1:-1;;;;;22097:37:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;22097:37:0;12088:2:1;12073:18;22097:37:0::1;;;;;;;;3788:1;21750:392:::0;;:::o;20530:108::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;20599:6:::1;:31:::0;;-1:-1:-1;;;;;20599:31:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;20599:31:0;;::::1;::::0;;;::::1;::::0;;20530:108::o;8870:211::-;8984:10;8958:4;9005:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9005:32:0;;;;;;;;;;8958:4;;8975:76;;8996:7;;9005:45;;9040:10;;9005:45;:::i;3805:179::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3890:19:0;::::1;;::::0;;;:8:::1;:19;::::0;;;;;;;;:32;;-1:-1:-1;;3890:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;3938:38;;4223:51:1;;;4290:18;;;4283:50;3938:38:0::1;::::0;4196:18:1;3938:38:0::1;4178:161:1::0;18681::0;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18761:19:0;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;18761:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18805:29;;4223:51:1;;;4290:18;;;4283:50;18805:29:0::1;::::0;4196:18:1;18805:29:0::1;4178:161:1::0;2649:103:0;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;2714:30:::1;2741:1;2714:18;:30::i;:::-;2649:103::o:0;21135:284::-;3748:10;3739:20;;;;:8;:20;;;;;;;;3731:46;;;;-1:-1:-1;;;3731:46:0;;7398:2:1;3731:46:0;;;7380:21:1;7437:2;7417:18;;;7410:30;-1:-1:-1;;;7456:18:1;;;7449:43;7509:18;;3731:46:0;7370:163:1;3731:46:0;-1:-1:-1;;;;;21225:21:0;::::1;21217:65;;;::::0;-1:-1:-1;;;21217:65:0;;11796:2:1;21217:65:0::1;::::0;::::1;11778:21:1::0;11835:2;11815:18;;;11808:30;11874:33;11854:18;;;11847:61;11925:18;;21217:65:0::1;11768:181:1::0;21217:65:0::1;21311:6;21295:12;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;21328:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;21350:6;;21328:18;:28:::1;::::0;21350:6;;21328:28:::1;:::i;:::-;::::0;;;-1:-1:-1;;21374:37:0::1;::::0;12100:25:1;;;-1:-1:-1;;;;;21374:37:0;::::1;::::0;21391:1:::1;::::0;-1:-1:-1;;;;;;;;;;;21374:37:0;12088:2:1;12073:18;21374:37:0::1;12055:76:1::0;17202:99:0;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;17271:14:::1;:22:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;17271:22:0;;::::1;::::0;;;::::1;::::0;;17202:99::o;19823:139::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;19892:13:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;19892:22:0;;::::1;;::::0;;19930:24:::1;::::0;::::1;::::0;::::1;::::0;19908:6;5400:14:1;5393:22;5375:41;;5363:2;5348:18;;5330:92;7778:87:0;7817:13;7850:7;7843:14;;;;;:::i;19480:140::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19572:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:40;;-1:-1:-1;;19572:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19480:140::o;9093:365::-;9242:10;9186:4;9230:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9230:32:0;;;;;;;;;;9281:35;;;;9273:79;;;;-1:-1:-1;;;9273:79:0;;7740:2:1;9273:79:0;;;7722:21:1;7779:2;7759:18;;;7752:30;7818:33;7798:18;;;7791:61;7869:18;;9273:79:0;7712:181:1;9273:79:0;9363:65;9372:10;9384:7;9393:34;9412:15;9393:16;:34;:::i;9363:65::-;-1:-1:-1;9446:4:0;;9093:365;-1:-1:-1;;;9093:365:0:o;9866:164::-;9943:4;9960:40;9970:10;9982:9;9993:6;9960:9;:40::i;2907:201::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2996:22:0;::::1;2988:73;;;::::0;-1:-1:-1;;;2988:73:0;;6991:2:1;2988:73:0::1;::::0;::::1;6973:21:1::0;7030:2;7010:18;;;7003:30;7069:34;7049:18;;;7042:62;-1:-1:-1;;;7120:18:1;;;7113:36;7166:19;;2988:73:0::1;6963:228:1::0;2988:73:0::1;3072:28;3091:8;3072:18;:28::i;8189:353::-:0;-1:-1:-1;;;;;8291:19:0;;8283:75;;;;-1:-1:-1;;;8283:75:0;;8100:2:1;8283:75:0;;;8082:21:1;8139:2;8119:18;;;8112:30;8178:34;8158:18;;;8151:62;-1:-1:-1;;;8229:18:1;;;8222:41;8280:19;;8283:75:0;8072:233:1;8283:75:0;-1:-1:-1;;;;;8377:21:0;;8369:70;;;;-1:-1:-1;;;8369:70:0;;9928:2:1;8369:70:0;;;9910:21:1;9967:2;9947:18;;;9940:30;10006:34;9986:18;;;9979:62;-1:-1:-1;;;10057:18:1;;;10050:34;10101:19;;8369:70:0;9900:226:1;8369:70:0;-1:-1:-1;;;;;8450:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8502:32;;12100:25:1;;;8502:32:0;;12073:18:1;8502:32:0;12055:76:1;11284:1741:0;11407:14;;;;;;;11404:292;;;-1:-1:-1;;;;;11442:24:0;;;;;;:16;:24;;;;;;;;11441:25;:57;;;;-1:-1:-1;;;;;;11471:27:0;;;;;;:16;:27;;;;;;;;11470:28;11441:57;11438:247;;;11532:13;11548:31;11561:6;11569:9;11548:12;:31::i;:::-;11532:47;;11598:18;11610:5;11598:11;:18::i;:::-;-1:-1:-1;;;;;11635:19:0;;;;;:12;:19;;;;;11657:12;11635:34;;11438:247;-1:-1:-1;;;;;8155:18:0;;11716:21;8155:18;;;:9;:18;;;;;;11776:23;;;;11768:67;;;;-1:-1:-1;;;11768:67:0;;11436:2:1;11768:67:0;;;11418:21:1;11475:2;11455:18;;;11448:30;11514:33;11494:18;;;11487:61;11565:18;;11768:67:0;11408:181:1;11768:67:0;11866:22;11882:6;11866:13;:22;:::i;:::-;-1:-1:-1;;;;;11846:17:0;;;;;;:9;:17;;;;;:42;11904:13;;;;;;;11900:129;;-1:-1:-1;;;;;11941:21:0;;;;;;:13;:21;;;;;;;;;:49;;-1:-1:-1;;;;;;11966:24:0;;;;;;:13;:24;;;;;;;;11941:49;11933:84;;;;-1:-1:-1;;;11933:84:0;;6640:2:1;11933:84:0;;;6622:21:1;6679:2;6659:18;;;6652:30;-1:-1:-1;;;6698:18:1;;;6691:52;6760:18;;11933:84:0;6612:172:1;11933:84:0;12057:7;;-1:-1:-1;;;;;12094:21:0;;12041:12;12094:21;;;:13;:21;;;;;;12057:7;;;;12056:8;;12094:21;;:63;;-1:-1:-1;;;;;;12133:24:0;;;;;;:13;:24;;;;;;;;12094:63;12077:135;;;-1:-1:-1;12195:5:0;12077:135;12227:7;12224:692;;;-1:-1:-1;;;;;12328:33:0;;12251:23;12328:33;;;:25;:33;;;;;;;;12325:124;;;12427:6;12409:15;;12400:6;:24;;;;:::i;:::-;:33;;;;:::i;:::-;12382:51;;12325:124;-1:-1:-1;;;;;12491:36:0;;;;;;:25;:36;;;;;;;;12488:183;;;12594:6;12575:16;;12566:6;:25;;;;:::i;:::-;:34;;;;:::i;:::-;12548:52;;12637:18;:16;:18::i;:::-;12690:19;;12687:218;;12730:25;12740:15;12730:25;;:::i;:::-;12792:4;12774:24;;;;:9;:24;;;;;:43;;12730:25;;-1:-1:-1;12802:15:0;;12774:24;;;:43;;12802:15;;12774:43;:::i;:::-;;;;-1:-1:-1;;12841:48:0;;12100:25:1;;;12866:4:0;;-1:-1:-1;;;;;12841:48:0;;;-1:-1:-1;;;;;;;;;;;12841:48:0;12088:2:1;12073:18;12841:48:0;;;;;;;12687:218;12224:692;;-1:-1:-1;;;;;12936:20:0;;;;;;:9;:20;;;;;:30;;12960:6;;12936:20;:30;;12960:6;;12936:30;:::i;:::-;;;;;;;;12999:9;-1:-1:-1;;;;;12982:35:0;12991:6;-1:-1:-1;;;;;12982:35:0;-1:-1:-1;;;;;;;;;;;13010:6:0;12982:35;;;;12100:25:1;;12088:2;12073:18;;12055:76;12982:35:0;;;;;;;;11284:1741;;;;;:::o;3268:191::-;3342:16;3361:6;;-1:-1:-1;;;;;3378:17:0;;;-1:-1:-1;;;;;;3378:17:0;;;;;;3411:40;;3361:6;;;;;;;3411:40;;3342:16;3411:40;3268:191;;:::o;15700:241::-;15776:7;15628:20;;15676:8;;15804:38;;-1:-1:-1;15628:20:0;;15676:8;15804:38;15796:67;;;;-1:-1:-1;;;15796:67:0;;8512:2:1;15796:67:0;;;8494:21:1;8551:2;8531:18;;;8524:30;-1:-1:-1;;;8570:18:1;;;8563:46;8626:18;;15796:67:0;8484:166:1;15796:67:0;15628:20;;15676:8;15874:59;;-1:-1:-1;15902:5:0;15895:12;;15874:59;-1:-1:-1;15930:3:0;15923:10;;15949:252;-1:-1:-1;;;;;16029:18:0;;16012:14;16029:18;;;:12;:18;;;;;;:23;;:105;;-1:-1:-1;16116:16:0;:12;16131:1;16116:16;:::i;:::-;16092:19;;-1:-1:-1;;;;;16071:18:0;;;;;;:12;:18;;;;;;:40;;16092:19;16071:40;:::i;:::-;16070:63;16029:105;16012:122;;16153:9;16145:48;;;;-1:-1:-1;;;16145:48:0;;11081:2:1;16145:48:0;;;11063:21:1;11120:2;11100:18;;;11093:30;11159:28;11139:18;;;11132:56;11205:18;;16145:48:0;11053:176:1;14260:593:0;14357:4;14316:20;8155:18;;;:9;:18;;;;;;14378:7;;;;14377:8;:46;;;;;14405:18;;14389:12;:34;;14377:46;14374:472;;;14440:7;:14;;-1:-1:-1;;14440:14:0;14450:4;14440:14;;;14504:12;14440:7;14550:14;14563:1;14504:12;14550:14;:::i;:::-;14531:33;-1:-1:-1;14602:21:0;14638:26;14531:33;14638:16;:26::i;:::-;14679:19;14701:34;14725:10;14701:21;:34;:::i;:::-;14679:56;-1:-1:-1;14752:50:0;14765:21;14778:8;14765:10;:21;:::i;:::-;14789:11;14752:12;:50::i;:::-;-1:-1:-1;;14819:7:0;:15;;-1:-1:-1;;14819:15:0;;;-1:-1:-1;;14260:593:0;:::o;13728:362::-;13822:16;;;13836:1;13822:16;;;;;;;;13798:21;;13822:16;;;;;;;;;;-1:-1:-1;13822:16:0;13798:40;;13867:4;13849;13854:1;13849:7;;;;;;-1:-1:-1;;;13849:7:0;;;;;;;;;;;;;;:23;-1:-1:-1;;;;;13849:23:0;;;-1:-1:-1;;;;;13849:23:0;;;;;13893:6;;;;;;;;;-1:-1:-1;;;;;13893:6:0;-1:-1:-1;;;;;13893:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13883:4;13888:1;13883:7;;;;;;-1:-1:-1;;;13883:7:0;;;;;;;;;-1:-1:-1;;;;;13883:23:0;;;:7;;;;;;;;;:23;13949:6;;13917:48;;13934:4;;13949:6;;;;13958;13917:8;:48::i;:::-;13976:6;;:106;;-1:-1:-1;;;13976:106:0;;:6;;;;-1:-1:-1;;;;;13976:6:0;;:57;;:106;;14034:6;;14042:1;;14045:4;;14059;;14066:15;;13976:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13728:362;;:::o;13239:377::-;13358:6;;13326:53;;13343:4;;13358:6;;;-1:-1:-1;;;;;13358:6:0;13367:11;13326:8;:53::i;:::-;13451:6;;:103;;-1:-1:-1;;;13451:103:0;;13497:4;13451:103;;;4964:34:1;;;5014:18;;;5007:34;;;13391:14:0;5057:18:1;;;5050:34;;;5100:18;;;5093:34;;;5143:19;;;5136:44;;;;13538:15:0;5196:19:1;;;5189:35;13391:14:0;;;;;13451:6;;;-1:-1:-1;;;;;13451:6:0;;:22;;13481:6;;4898:19:1;;13451:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13570:38;;;13579:25:1;;;13635:2;13620:18;;13613:34;;;13663:18;;;13656:34;;;13390:164:0;;-1:-1:-1;13390:164:0;;-1:-1:-1;13390:164:0;-1:-1:-1;13570:38:0;;13567:2:1;13552:18;13570:38:0;;;;;;;13239:377;;;;;:::o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:1:o;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:392::-;1481:6;1489;1542:2;1530:9;1521:7;1517:23;1513:32;1510:2;;;1563:6;1555;1548:22;1510:2;1607:9;1594:23;1626:31;1651:5;1626:31;:::i;:::-;1676:5;-1:-1:-1;1733:2:1;1718:18;;1705:32;1746:30;1705:32;1746:30;:::i;1813:325::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:2;;;1963:6;1955;1948:22;1910:2;2007:9;1994:23;2026:31;2051:5;2026:31;:::i;:::-;2076:5;2128:2;2113:18;;;;2100:32;;-1:-1:-1;;;1900:238:1:o;2143:251::-;2199:6;2252:2;2240:9;2231:7;2227:23;2223:32;2220:2;;;2273:6;2265;2258:22;2220:2;2317:9;2304:23;2336:28;2358:5;2336:28;:::i;2399:255::-;2466:6;2519:2;2507:9;2498:7;2494:23;2490:32;2487:2;;;2540:6;2532;2525:22;2487:2;2577:9;2571:16;2596:28;2618:5;2596:28;:::i;2659:190::-;2718:6;2771:2;2759:9;2750:7;2746:23;2742:32;2739:2;;;2792:6;2784;2777:22;2739:2;-1:-1:-1;2820:23:1;;2729:120;-1:-1:-1;2729:120:1:o;2854:194::-;2924:6;2977:2;2965:9;2956:7;2952:23;2948:32;2945:2;;;2998:6;2990;2983:22;2945:2;-1:-1:-1;3026:16:1;;2935:113;-1:-1:-1;2935:113:1:o;3053:258::-;3121:6;3129;3182:2;3170:9;3161:7;3157:23;3153:32;3150:2;;;3203:6;3195;3188:22;3150:2;-1:-1:-1;;3231:23:1;;;3301:2;3286:18;;;3273:32;;-1:-1:-1;3140:171:1:o;3316:316::-;3404:6;3412;3420;3473:2;3461:9;3452:7;3448:23;3444:32;3441:2;;;3494:6;3486;3479:22;3441:2;3528:9;3522:16;3512:26;;3578:2;3567:9;3563:18;3557:25;3547:35;;3622:2;3611:9;3607:18;3601:25;3591:35;;3431:201;;;;;:::o;5427:603::-;5539:4;5568:2;5597;5586:9;5579:21;5629:6;5623:13;5672:6;5667:2;5656:9;5652:18;5645:34;5697:4;5710:140;5724:6;5721:1;5718:13;5710:140;;;5819:14;;;5815:23;;5809:30;5785:17;;;5804:2;5781:26;5774:66;5739:10;;5710:140;;;5868:6;5865:1;5862:13;5859:2;;;5938:4;5933:2;5924:6;5913:9;5909:22;5905:31;5898:45;5859:2;-1:-1:-1;6014:2:1;5993:15;-1:-1:-1;;5989:29:1;5974:45;;;;6021:2;5970:54;;5548:482;-1:-1:-1;;;5548:482:1:o;9365:356::-;9567:2;9549:21;;;9586:18;;;9579:30;9645:34;9640:2;9625:18;;9618:62;9712:2;9697:18;;9539:182::o;12136:983::-;12398:4;12446:3;12435:9;12431:19;12477:6;12466:9;12459:25;12503:2;12541:6;12536:2;12525:9;12521:18;12514:34;12584:3;12579:2;12568:9;12564:18;12557:31;12608:6;12643;12637:13;12674:6;12666;12659:22;12712:3;12701:9;12697:19;12690:26;;12751:2;12743:6;12739:15;12725:29;;12772:4;12785:195;12799:6;12796:1;12793:13;12785:195;;;12864:13;;-1:-1:-1;;;;;12860:39:1;12848:52;;12955:15;;;;12920:12;;;;12896:1;12814:9;12785:195;;;-1:-1:-1;;;;;;;13036:32:1;;;;13031:2;13016:18;;13009:60;-1:-1:-1;;;13100:3:1;13085:19;13078:35;12997:3;12407:712;-1:-1:-1;;;12407:712:1:o;13890:128::-;13930:3;13961:1;13957:6;13954:1;13951:13;13948:2;;;13967:18;;:::i;:::-;-1:-1:-1;14003:9:1;;13938:80::o;14023:217::-;14063:1;14089;14079:2;;-1:-1:-1;;;14114:31:1;;14168:4;14165:1;14158:15;14196:4;14121:1;14186:15;14079:2;-1:-1:-1;14225:9:1;;14069:171::o;14245:422::-;14334:1;14377:5;14334:1;14391:270;14412:7;14402:8;14399:21;14391:270;;;14471:4;14467:1;14463:6;14459:17;14453:4;14450:27;14447:2;;;14480:18;;:::i;:::-;14530:7;14520:8;14516:22;14513:2;;;14550:16;;;;14513:2;14629:22;;;;14589:15;;;;14391:270;;;14395:3;14309:358;;;;;:::o;14672:140::-;14730:5;14759:47;14800:4;14790:8;14786:19;14780:4;14866:5;14896:8;14886:2;;-1:-1:-1;14937:1:1;14951:5;;14886:2;14985:4;14975:2;;-1:-1:-1;15022:1:1;15036:5;;14975:2;15067:4;15085:1;15080:59;;;;15153:1;15148:130;;;;15060:218;;15080:59;15110:1;15101:10;;15124:5;;;15148:130;15185:3;15175:8;15172:17;15169:2;;;15192:18;;:::i;:::-;-1:-1:-1;;15248:1:1;15234:16;;15263:5;;15060:218;;15362:2;15352:8;15349:16;15343:3;15337:4;15334:13;15330:36;15324:2;15314:8;15311:16;15306:2;15300:4;15297:12;15293:35;15290:77;15287:2;;;-1:-1:-1;15399:19:1;;;15431:5;;15287:2;15478:34;15503:8;15497:4;15478:34;:::i;:::-;15548:6;15544:1;15540:6;15536:19;15527:7;15524:32;15521:2;;;15559:18;;:::i;:::-;15597:20;;14876:747;-1:-1:-1;;;14876:747:1:o;15628:168::-;15668:7;15734:1;15730;15726:6;15722:14;15719:1;15716:21;15711:1;15704:9;15697:17;15693:45;15690:2;;;15741:18;;:::i;:::-;-1:-1:-1;15781:9:1;;15680:116::o;15801:125::-;15841:4;15869:1;15866;15863:8;15860:2;;;15874:18;;:::i;:::-;-1:-1:-1;15911:9:1;;15850:76::o;15931:380::-;16010:1;16006:12;;;;16053;;;16074:2;;16128:4;16120:6;16116:17;16106:27;;16074:2;16181;16173:6;16170:14;16150:18;16147:38;16144:2;;;16227:10;16222:3;16218:20;16215:1;16208:31;16262:4;16259:1;16252:15;16290:4;16287:1;16280:15;16144:2;;15986:325;;;:::o;16316:127::-;16377:10;16372:3;16368:20;16365:1;16358:31;16408:4;16405:1;16398:15;16432:4;16429:1;16422:15;16448:131;-1:-1:-1;;;;;16523:31:1;;16513:42;;16503:2;;16569:1;16566;16559:12;16584:118;16670:5;16663:13;16656:21;16649:5;16646:32;16636:2;;16692:1;16689;16682:12

Swarm Source

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