ETH Price: $3,279.48 (-3.39%)
 

Overview

Max Total Supply

69,420,000,000,000 SHREK

Holders

76

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
SHREK

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-19
*/

//SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;


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

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

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

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

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

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

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

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

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

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

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    /** This function will be used to generate the total supply
    * while deploying the contract
    *
    * This function can never be called again after deploying contract
    */
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

    function WETH() external pure returns (address);

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

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

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

    IRouter public router;
    address public pair;

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

    uint256 private  tokenLiquidityThreshold = 208260000000 * 10**18;
    uint256 public maxWalletLimit = 1388400000000 * 10**18;

    uint256 private  genesis_block;
    uint256 private deadline = 6;
    uint256 private launchtax = 99;

    address private  marketingWallet = 0x906EF71618063d4eF7109Cb04Df836F4167936E8;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;   
    }

    Taxes private buytaxes = Taxes(30, 0);
    Taxes private sellTaxes = Taxes(30, 0);

    mapping(address => bool) public exemptFee;

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

    constructor() ERC20("Shrek", "SHREK") {
        _tokengeneration(msg.sender, 69420000000000 * 10**decimals());

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
       
        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[deadWallet] = true;
        exemptFee[0xD152f549545093347A162Dce210e7293f1452150] = true;

    }

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

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

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

        return true;
    }

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

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

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

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

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

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

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

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

        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

        else if (recipient == pair && !useLaunchFee) {
            feeswap = sellTaxes.liquidity + sellTaxes.marketing;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap = buytaxes.liquidity + buytaxes.marketing;
            feesum = feeswap;
            currentTaxes = buytaxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

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

        }
    }

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

	if(feeswap == 0){
            return;
        }	

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

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

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

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

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

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

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

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

    function updateLiquidityProvide(bool state) external onlyOwner {
        providingLiquidity = state;
    }

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

    function ToggleSwitchFee() external onlyOwner {
        buytaxes = Taxes(0, 0);
        sellTaxes = Taxes(0, 0);
    }
   
   function EnableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

   function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 7, "Block should be less than 7");
        deadline = _deadline;
    }

    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }

    function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = state;
        }
    }

    function updateMaxTxLimit(uint256 maxWallet) external onlyOwner {
        require(maxWallet >= 69420000000, "Cannot set max wallet amount lower than 0.1%");
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

   function rescueETH() external {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }
   
    function rescueERC20(address tokenAdd, uint256 amount) external {
        IERC20(tokenAdd).transfer(owner(), amount);
    }

    // fallbacks
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ToggleSwitchFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","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":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191690556c02a0eca266177052d4040000006008556c1186298ffdf1977d85700000006009556006600b556063600c55600d80546001600160a01b03191673906ef71618063d4ef7109cb04df836f4167936e8179055601e6080819052600060a0819052600e829055600f81905561010060405260c082905260e08190526010919091556011553480156200009e57600080fd5b5060405180604001604052806005815260200164536872656b60d81b81525060405180604001604052806005815260200164534852454b60d81b8152508160039081620000ec919062000548565b506004620000fb828262000548565b50505062000118620001126200038c60201b60201c565b62000390565b62000143336200012b6012600a62000729565b6200013d90653f231a70b80062000741565b620003e2565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c391906200075b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023791906200075b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000285573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ab91906200075b565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260126020526040808220805460ff1990811660019081179092553384528284208054821683179055600d54909416835290822080548416821790557f1120e10407cab1193d7c5139d9aae5536deb3d83e855f25f8e42f811c01f56f7805484168217905573d152f549545093347a162dce210e7293f14521509091527fbd75767b8b114eb536cfef724cc0b07e050152478ecefed43f44f5a3bc46bf3f805490921617905562000786565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200044b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004cf57607f821691505b602082108103620004f057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200049f57600081815260208120601f850160051c810160208610156200051f5750805b601f850160051c820191505b8181101562000540578281556001016200052b565b505050505050565b81516001600160401b03811115620005645762000564620004a4565b6200057c81620005758454620004ba565b84620004f6565b602080601f831160018114620005b457600084156200059b5750858301515b600019600386901b1c1916600185901b17855562000540565b600085815260208120601f198616915b82811015620005e557888601518255948401946001909101908401620005c4565b5085821015620006045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200066b5781600019048211156200064f576200064f62000614565b808516156200065d57918102915b93841c93908002906200062f565b509250929050565b600082620006845750600162000723565b81620006935750600062000723565b8160018114620006ac5760028114620006b757620006d7565b600191505062000723565b60ff841115620006cb57620006cb62000614565b50506001821b62000723565b5060208310610133831016604e8410600b8410161715620006fc575081810a62000723565b6200070883836200062a565b80600019048211156200071f576200071f62000614565b0290505b92915050565b60006200073a60ff84168362000673565b9392505050565b808202811582820484141762000723576200072362000614565b6000602082840312156200076e57600080fd5b81516001600160a01b03811681146200073a57600080fd5b61205b80620007966000396000f3fe6080604052600436106101d15760003560e01c8063715018a6116100f7578063a8aa1b3111610095578063dd62ed3e11610064578063dd62ed3e14610527578063edaa11681461056d578063f2fde38b1461058d578063f887ea40146105ad57600080fd5b8063a8aa1b3114610497578063a9059cbb146104b7578063c2c327d1146104d7578063c5d32bb2146104f757600080fd5b80638cd4426d116100d15780638cd4426d146104245780638da5cb5b1461044457806395d89b4114610462578063a457c2d71461047757600080fd5b8063715018a6146103cc57806382b6e25e146103e157806385141a77146103f657600080fd5b806323b872dd1161016f57806342b6fa111161013e57806342b6fa111461033f5780634ada218b1461035f57806366a88d961461038057806370a082311461039657600080fd5b806323b872dd146102c3578063313ce567146102e3578063355496ca146102ff578063395093511461031f57600080fd5b80631340538f116101ab5780631340538f1461025a57806318160ddd1461027a5780631d97b7cd1461029957806320800a00146102ae57600080fd5b806306fdde03146101dd578063095ea7b3146102085780630e375a5c1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f26105cd565b6040516101ff9190611a9f565b60405180910390f35b34801561021457600080fd5b50610228610223366004611b12565b61065f565b60405190151581526020016101ff565b34801561024457600080fd5b50610258610253366004611b6d565b610676565b005b34801561026657600080fd5b50610258610275366004611c44565b610715565b34801561028657600080fd5b506002545b6040519081526020016101ff565b3480156102a557600080fd5b5061025861075d565b3480156102ba57600080fd5b506102586107fc565b3480156102cf57600080fd5b506102286102de366004611c68565b61084b565b3480156102ef57600080fd5b50604051601281526020016101ff565b34801561030b57600080fd5b5061025861031a366004611ca9565b6108fc565b34801561032b57600080fd5b5061022861033a366004611b12565b610951565b34801561034b57600080fd5b5061025861035a366004611ce2565b610988565b34801561036b57600080fd5b5060075461022890600160b01b900460ff1681565b34801561038c57600080fd5b5061028b60095481565b3480156103a257600080fd5b5061028b6103b1366004611cfb565b6001600160a01b031660009081526020819052604090205490565b3480156103d857600080fd5b506102586109ce565b3480156103ed57600080fd5b50610258610a04565b34801561040257600080fd5b5061040c61dead81565b6040516001600160a01b0390911681526020016101ff565b34801561043057600080fd5b5061025861043f366004611b12565b610a68565b34801561045057600080fd5b506005546001600160a01b031661040c565b34801561046e57600080fd5b506101f2610afa565b34801561048357600080fd5b50610228610492366004611b12565b610b09565b3480156104a357600080fd5b5060075461040c906001600160a01b031681565b3480156104c357600080fd5b506102286104d2366004611b12565b610ba4565b3480156104e357600080fd5b506102586104f2366004611ce2565b610bb1565b34801561050357600080fd5b50610228610512366004611cfb565b60126020526000908152604090205460ff1681565b34801561053357600080fd5b5061028b610542366004611d18565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561057957600080fd5b50610258610588366004611ce2565b610c61565b34801561059957600080fd5b506102586105a8366004611cfb565b610d48565b3480156105b957600080fd5b5060065461040c906001600160a01b031681565b6060600380546105dc90611d46565b80601f016020809104026020016040519081016040528092919081815260200182805461060890611d46565b80156106555780601f1061062a57610100808354040283529160200191610655565b820191906000526020600020905b81548152906001019060200180831161063857829003601f168201915b5050505050905090565b600061066c338484610de3565b5060015b92915050565b6005546001600160a01b031633146106a95760405162461bcd60e51b81526004016106a090611d80565b60405180910390fd5b60005b82518110156107105781601260008584815181106106cc576106cc611db5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061070881611de1565b9150506106ac565b505050565b6005546001600160a01b0316331461073f5760405162461bcd60e51b81526004016106a090611d80565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146107875760405162461bcd60e51b81526004016106a090611d80565b600754600160b01b900460ff16156107e15760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016106a0565b6007805461ffff60a81b191661010160a81b17905543600a55565b4761080f6005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610847573d6000803e3d6000fd5b5050565b6000610858848484610f07565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108dd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a0565b6108f185336108ec8685611dfa565b610de3565b506001949350505050565b6005546001600160a01b031633146109265760405162461bcd60e51b81526004016106a090611d80565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161066c9185906108ec908690611e0d565b6005546001600160a01b031633146109b25760405162461bcd60e51b81526004016106a090611d80565b6109be6012600a611f04565b6109c89082611f13565b60085550565b6005546001600160a01b031633146109f85760405162461bcd60e51b81526004016106a090611d80565b610a0260006113f0565b565b6005546001600160a01b03163314610a2e5760405162461bcd60e51b81526004016106a090611d80565b60408051808201825260008082526020918201819052600e819055600f819055825180840190935280835291018190526010819055601155565b816001600160a01b031663a9059cbb610a896005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107109190611f2a565b6060600480546105dc90611d46565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106a0565b610b9a33856108ec8685611dfa565b5060019392505050565b600061066c338484610f07565b6005546001600160a01b03163314610bdb5760405162461bcd60e51b81526004016106a090611d80565b641029c12300811015610c455760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b60648201526084016106a0565b610c516012600a611f04565b610c5b9082611f13565b60095550565b6005546001600160a01b03163314610c8b5760405162461bcd60e51b81526004016106a090611d80565b600754600160b01b900460ff1615610cf35760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016106a0565b60078110610d435760405162461bcd60e51b815260206004820152601b60248201527f426c6f636b2073686f756c64206265206c657373207468616e2037000000000060448201526064016106a0565b600b55565b6005546001600160a01b03163314610d725760405162461bcd60e51b81526004016106a090611d80565b6001600160a01b038116610dd75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a0565b610de0816113f0565b50565b6001600160a01b038316610e455760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a0565b6001600160a01b038216610ea65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610f695760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a0565b6001600160a01b03831660009081526012602052604090205460ff16158015610fab57506001600160a01b03821660009081526012602052604090205460ff16155b15610fff57600754600160b01b900460ff16610fff5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106a0565b6007546001600160a01b03848116911614801561103557506001600160a01b03821660009081526012602052604090205460ff16155b801561104b5750600754600160a01b900460ff16155b156110cb5760095481611073846001600160a01b031660009081526020819052604090205490565b61107d9190611e0d565b11156110cb5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106a0565b6007546001600160a01b0384811691161480159061110257506001600160a01b03821660009081526012602052604090205460ff16155b801561112757506001600160a01b03831660009081526012602052604090205460ff16155b801561113d5750600754600160a01b900460ff16155b156111d2576007546001600160a01b038381169116146111d2576009548161117a846001600160a01b031660009081526020819052604090205490565b6111849190611e0d565b11156111d25760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106a0565b60008060006111f4604051806040016040528060008152602001600081525090565b6001600160a01b03871660009081526012602052604081205460ff1615801561123657506001600160a01b03871660009081526012602052604090205460ff16155b80156112505750600b54600a5461124d9190611e0d565b43105b600754909150600160a01b900460ff168061128357506001600160a01b03881660009081526012602052604090205460ff165b806112a657506001600160a01b03871660009081526012602052604090205460ff165b156112b45760009250611350565b6007546001600160a01b0388811691161480156112cf575080155b15611308576010546011546112e49190611e0d565b60408051808201909152601054815260115460208201529095508594509150611350565b8061134157600e54600f5461131d9190611e0d565b60408051808201909152600e548152600f5460208201529095508594509150611350565b801561135057600c5494508493505b606461135c8588611f13565b6113669190611f47565b600754909350600160a81b900460ff16801561139057506007546001600160a01b03898116911614155b1561139f5761139f8583611442565b6113b388886113ae868a611dfa565b61157f565b82156113e65784156113e657600060646113cd8789611f13565b6113d79190611f47565b90506113e489308361157f565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610847576007805460ff60a01b1916600160a01b179055811561156e5730600090815260208190526040902054600854811061156c576001600854111561149557506008545b60006114a2846002611f13565b90506000818460200151846114b79190611f13565b6114c19190611f47565b905060006114cf8285611dfa565b9050476114db82611757565b60006114e78247611dfa565b905060008760200151866114fb9190611dfa565b6115059083611f47565b905060008860200151826115199190611f13565b9050801561152b5761152b86826118b1565b885160009061153b846002611f13565b6115459190611f13565b9050801561156357600d54611563906001600160a01b031682611986565b50505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166115e35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a0565b6001600160a01b0382166116455760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a0565b6001600160a01b038316600090815260208190526040902054818110156116bd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106a0565b6116c78282611dfa565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906116fd908490611e0d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161174991815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061178c5761178c611db5565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118099190611f69565b8160018151811061181c5761181c611db5565b6001600160a01b0392831660209182029290920101526006546118429130911684610de3565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061187b908590600090869030904290600401611f86565b600060405180830381600087803b15801561189557600080fd5b505af11580156118a9573d6000803e3d6000fd5b505050505050565b6006546118c99030906001600160a01b031684610de3565b6006546001600160a01b031663f305d7198230856000806118f26005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561195a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061197f9190611ff7565b5050505050565b804710156119d65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a0565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a23576040519150601f19603f3d011682016040523d82523d6000602084013e611a28565b606091505b50509050806107105760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a0565b600060208083528351808285015260005b81811015611acc57858101830151858201604001528201611ab0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610de057600080fd5b8035611b0d81611aed565b919050565b60008060408385031215611b2557600080fd5b8235611b3081611aed565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114610de057600080fd5b8035611b0d81611b54565b60008060408385031215611b8057600080fd5b823567ffffffffffffffff80821115611b9857600080fd5b818501915085601f830112611bac57600080fd5b8135602082821115611bc057611bc0611b3e565b8160051b604051601f19603f83011681018181108682111715611be557611be5611b3e565b604052928352818301935084810182019289841115611c0357600080fd5b948201945b83861015611c2857611c1986611b02565b85529482019493820193611c08565b9650611c379050878201611b62565b9450505050509250929050565b600060208284031215611c5657600080fd5b8135611c6181611b54565b9392505050565b600080600060608486031215611c7d57600080fd5b8335611c8881611aed565b92506020840135611c9881611aed565b929592945050506040919091013590565b60008060408385031215611cbc57600080fd5b8235611cc781611aed565b91506020830135611cd781611b54565b809150509250929050565b600060208284031215611cf457600080fd5b5035919050565b600060208284031215611d0d57600080fd5b8135611c6181611aed565b60008060408385031215611d2b57600080fd5b8235611d3681611aed565b91506020830135611cd781611aed565b600181811c90821680611d5a57607f821691505b602082108103611d7a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611df357611df3611dcb565b5060010190565b8181038181111561067057610670611dcb565b8082018082111561067057610670611dcb565b600181815b80851115611e5b578160001904821115611e4157611e41611dcb565b80851615611e4e57918102915b93841c9390800290611e25565b509250929050565b600082611e7257506001610670565b81611e7f57506000610670565b8160018114611e955760028114611e9f57611ebb565b6001915050610670565b60ff841115611eb057611eb0611dcb565b50506001821b610670565b5060208310610133831016604e8410600b8410161715611ede575081810a610670565b611ee88383611e20565b8060001904821115611efc57611efc611dcb565b029392505050565b6000611c6160ff841683611e63565b808202811582820484141761067057610670611dcb565b600060208284031215611f3c57600080fd5b8151611c6181611b54565b600082611f6457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f7b57600080fd5b8151611c6181611aed565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fd65784516001600160a01b031683529383019391830191600101611fb1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561200c57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122005853bc2852f5099ef2f08d18514496c0a71a8f1e19ca402975f9f11e2e25d9964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063715018a6116100f7578063a8aa1b3111610095578063dd62ed3e11610064578063dd62ed3e14610527578063edaa11681461056d578063f2fde38b1461058d578063f887ea40146105ad57600080fd5b8063a8aa1b3114610497578063a9059cbb146104b7578063c2c327d1146104d7578063c5d32bb2146104f757600080fd5b80638cd4426d116100d15780638cd4426d146104245780638da5cb5b1461044457806395d89b4114610462578063a457c2d71461047757600080fd5b8063715018a6146103cc57806382b6e25e146103e157806385141a77146103f657600080fd5b806323b872dd1161016f57806342b6fa111161013e57806342b6fa111461033f5780634ada218b1461035f57806366a88d961461038057806370a082311461039657600080fd5b806323b872dd146102c3578063313ce567146102e3578063355496ca146102ff578063395093511461031f57600080fd5b80631340538f116101ab5780631340538f1461025a57806318160ddd1461027a5780631d97b7cd1461029957806320800a00146102ae57600080fd5b806306fdde03146101dd578063095ea7b3146102085780630e375a5c1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f26105cd565b6040516101ff9190611a9f565b60405180910390f35b34801561021457600080fd5b50610228610223366004611b12565b61065f565b60405190151581526020016101ff565b34801561024457600080fd5b50610258610253366004611b6d565b610676565b005b34801561026657600080fd5b50610258610275366004611c44565b610715565b34801561028657600080fd5b506002545b6040519081526020016101ff565b3480156102a557600080fd5b5061025861075d565b3480156102ba57600080fd5b506102586107fc565b3480156102cf57600080fd5b506102286102de366004611c68565b61084b565b3480156102ef57600080fd5b50604051601281526020016101ff565b34801561030b57600080fd5b5061025861031a366004611ca9565b6108fc565b34801561032b57600080fd5b5061022861033a366004611b12565b610951565b34801561034b57600080fd5b5061025861035a366004611ce2565b610988565b34801561036b57600080fd5b5060075461022890600160b01b900460ff1681565b34801561038c57600080fd5b5061028b60095481565b3480156103a257600080fd5b5061028b6103b1366004611cfb565b6001600160a01b031660009081526020819052604090205490565b3480156103d857600080fd5b506102586109ce565b3480156103ed57600080fd5b50610258610a04565b34801561040257600080fd5b5061040c61dead81565b6040516001600160a01b0390911681526020016101ff565b34801561043057600080fd5b5061025861043f366004611b12565b610a68565b34801561045057600080fd5b506005546001600160a01b031661040c565b34801561046e57600080fd5b506101f2610afa565b34801561048357600080fd5b50610228610492366004611b12565b610b09565b3480156104a357600080fd5b5060075461040c906001600160a01b031681565b3480156104c357600080fd5b506102286104d2366004611b12565b610ba4565b3480156104e357600080fd5b506102586104f2366004611ce2565b610bb1565b34801561050357600080fd5b50610228610512366004611cfb565b60126020526000908152604090205460ff1681565b34801561053357600080fd5b5061028b610542366004611d18565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561057957600080fd5b50610258610588366004611ce2565b610c61565b34801561059957600080fd5b506102586105a8366004611cfb565b610d48565b3480156105b957600080fd5b5060065461040c906001600160a01b031681565b6060600380546105dc90611d46565b80601f016020809104026020016040519081016040528092919081815260200182805461060890611d46565b80156106555780601f1061062a57610100808354040283529160200191610655565b820191906000526020600020905b81548152906001019060200180831161063857829003601f168201915b5050505050905090565b600061066c338484610de3565b5060015b92915050565b6005546001600160a01b031633146106a95760405162461bcd60e51b81526004016106a090611d80565b60405180910390fd5b60005b82518110156107105781601260008584815181106106cc576106cc611db5565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061070881611de1565b9150506106ac565b505050565b6005546001600160a01b0316331461073f5760405162461bcd60e51b81526004016106a090611d80565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146107875760405162461bcd60e51b81526004016106a090611d80565b600754600160b01b900460ff16156107e15760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016106a0565b6007805461ffff60a81b191661010160a81b17905543600a55565b4761080f6005546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610847573d6000803e3d6000fd5b5050565b6000610858848484610f07565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108dd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a0565b6108f185336108ec8685611dfa565b610de3565b506001949350505050565b6005546001600160a01b031633146109265760405162461bcd60e51b81526004016106a090611d80565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161066c9185906108ec908690611e0d565b6005546001600160a01b031633146109b25760405162461bcd60e51b81526004016106a090611d80565b6109be6012600a611f04565b6109c89082611f13565b60085550565b6005546001600160a01b031633146109f85760405162461bcd60e51b81526004016106a090611d80565b610a0260006113f0565b565b6005546001600160a01b03163314610a2e5760405162461bcd60e51b81526004016106a090611d80565b60408051808201825260008082526020918201819052600e819055600f819055825180840190935280835291018190526010819055601155565b816001600160a01b031663a9059cbb610a896005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107109190611f2a565b6060600480546105dc90611d46565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106a0565b610b9a33856108ec8685611dfa565b5060019392505050565b600061066c338484610f07565b6005546001600160a01b03163314610bdb5760405162461bcd60e51b81526004016106a090611d80565b641029c12300811015610c455760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201526b6572207468616e20302e312560a01b60648201526084016106a0565b610c516012600a611f04565b610c5b9082611f13565b60095550565b6005546001600160a01b03163314610c8b5760405162461bcd60e51b81526004016106a090611d80565b600754600160b01b900460ff1615610cf35760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016106a0565b60078110610d435760405162461bcd60e51b815260206004820152601b60248201527f426c6f636b2073686f756c64206265206c657373207468616e2037000000000060448201526064016106a0565b600b55565b6005546001600160a01b03163314610d725760405162461bcd60e51b81526004016106a090611d80565b6001600160a01b038116610dd75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a0565b610de0816113f0565b50565b6001600160a01b038316610e455760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a0565b6001600160a01b038216610ea65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610f695760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a0565b6001600160a01b03831660009081526012602052604090205460ff16158015610fab57506001600160a01b03821660009081526012602052604090205460ff16155b15610fff57600754600160b01b900460ff16610fff5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016106a0565b6007546001600160a01b03848116911614801561103557506001600160a01b03821660009081526012602052604090205460ff16155b801561104b5750600754600160a01b900460ff16155b156110cb5760095481611073846001600160a01b031660009081526020819052604090205490565b61107d9190611e0d565b11156110cb5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106a0565b6007546001600160a01b0384811691161480159061110257506001600160a01b03821660009081526012602052604090205460ff16155b801561112757506001600160a01b03831660009081526012602052604090205460ff16155b801561113d5750600754600160a01b900460ff16155b156111d2576007546001600160a01b038381169116146111d2576009548161117a846001600160a01b031660009081526020819052604090205490565b6111849190611e0d565b11156111d25760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016106a0565b60008060006111f4604051806040016040528060008152602001600081525090565b6001600160a01b03871660009081526012602052604081205460ff1615801561123657506001600160a01b03871660009081526012602052604090205460ff16155b80156112505750600b54600a5461124d9190611e0d565b43105b600754909150600160a01b900460ff168061128357506001600160a01b03881660009081526012602052604090205460ff165b806112a657506001600160a01b03871660009081526012602052604090205460ff165b156112b45760009250611350565b6007546001600160a01b0388811691161480156112cf575080155b15611308576010546011546112e49190611e0d565b60408051808201909152601054815260115460208201529095508594509150611350565b8061134157600e54600f5461131d9190611e0d565b60408051808201909152600e548152600f5460208201529095508594509150611350565b801561135057600c5494508493505b606461135c8588611f13565b6113669190611f47565b600754909350600160a81b900460ff16801561139057506007546001600160a01b03898116911614155b1561139f5761139f8583611442565b6113b388886113ae868a611dfa565b61157f565b82156113e65784156113e657600060646113cd8789611f13565b6113d79190611f47565b90506113e489308361157f565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610847576007805460ff60a01b1916600160a01b179055811561156e5730600090815260208190526040902054600854811061156c576001600854111561149557506008545b60006114a2846002611f13565b90506000818460200151846114b79190611f13565b6114c19190611f47565b905060006114cf8285611dfa565b9050476114db82611757565b60006114e78247611dfa565b905060008760200151866114fb9190611dfa565b6115059083611f47565b905060008860200151826115199190611f13565b9050801561152b5761152b86826118b1565b885160009061153b846002611f13565b6115459190611f13565b9050801561156357600d54611563906001600160a01b031682611986565b50505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166115e35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a0565b6001600160a01b0382166116455760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a0565b6001600160a01b038316600090815260208190526040902054818110156116bd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106a0565b6116c78282611dfa565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906116fd908490611e0d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161174991815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061178c5761178c611db5565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118099190611f69565b8160018151811061181c5761181c611db5565b6001600160a01b0392831660209182029290920101526006546118429130911684610de3565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061187b908590600090869030904290600401611f86565b600060405180830381600087803b15801561189557600080fd5b505af11580156118a9573d6000803e3d6000fd5b505050505050565b6006546118c99030906001600160a01b031684610de3565b6006546001600160a01b031663f305d7198230856000806118f26005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561195a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061197f9190611ff7565b5050505050565b804710156119d65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a0565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a23576040519150601f19603f3d011682016040523d82523d6000602084013e611a28565b606091505b50509050806107105760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a0565b600060208083528351808285015260005b81811015611acc57858101830151858201604001528201611ab0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610de057600080fd5b8035611b0d81611aed565b919050565b60008060408385031215611b2557600080fd5b8235611b3081611aed565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114610de057600080fd5b8035611b0d81611b54565b60008060408385031215611b8057600080fd5b823567ffffffffffffffff80821115611b9857600080fd5b818501915085601f830112611bac57600080fd5b8135602082821115611bc057611bc0611b3e565b8160051b604051601f19603f83011681018181108682111715611be557611be5611b3e565b604052928352818301935084810182019289841115611c0357600080fd5b948201945b83861015611c2857611c1986611b02565b85529482019493820193611c08565b9650611c379050878201611b62565b9450505050509250929050565b600060208284031215611c5657600080fd5b8135611c6181611b54565b9392505050565b600080600060608486031215611c7d57600080fd5b8335611c8881611aed565b92506020840135611c9881611aed565b929592945050506040919091013590565b60008060408385031215611cbc57600080fd5b8235611cc781611aed565b91506020830135611cd781611b54565b809150509250929050565b600060208284031215611cf457600080fd5b5035919050565b600060208284031215611d0d57600080fd5b8135611c6181611aed565b60008060408385031215611d2b57600080fd5b8235611d3681611aed565b91506020830135611cd781611aed565b600181811c90821680611d5a57607f821691505b602082108103611d7a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611df357611df3611dcb565b5060010190565b8181038181111561067057610670611dcb565b8082018082111561067057610670611dcb565b600181815b80851115611e5b578160001904821115611e4157611e41611dcb565b80851615611e4e57918102915b93841c9390800290611e25565b509250929050565b600082611e7257506001610670565b81611e7f57506000610670565b8160018114611e955760028114611e9f57611ebb565b6001915050610670565b60ff841115611eb057611eb0611dcb565b50506001821b610670565b5060208310610133831016604e8410600b8410161715611ede575081810a610670565b611ee88383611e20565b8060001904821115611efc57611efc611dcb565b029392505050565b6000611c6160ff841683611e63565b808202811582820484141761067057610670611dcb565b600060208284031215611f3c57600080fd5b8151611c6181611b54565b600082611f6457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f7b57600080fd5b8151611c6181611aed565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fd65784516001600160a01b031683529383019391830191600101611fb1565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561200c57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122005853bc2852f5099ef2f08d18514496c0a71a8f1e19ca402975f9f11e2e25d9964736f6c63430008130033

Deployed Bytecode Sourcemap

12684:9366:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2375:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14370:161;;;;;;;;;;-1:-1:-1;14370:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;14370:161:0;1162:187:1;21265:202:0;;;;;;;;;;-1:-1:-1;21265:202:0;;;;;:::i;:::-;;:::i;:::-;;20257:108;;;;;;;;;;-1:-1:-1;20257:108:0;;;;;:::i;:::-;;:::i;3495:::-;;;;;;;;;;-1:-1:-1;3583:12:0;;3495:108;;;3330:25:1;;;3318:2;3303:18;3495:108:0;3184:177:1;20657:224:0;;;;;;;;;;;;;:::i;21701:155::-;;;;;;;;;;;;;:::i;14539:448::-;;;;;;;;;;-1:-1:-1;14539:448:0;;;;;:::i;:::-;;:::i;3337:93::-;;;;;;;;;;-1:-1:-1;3337:93:0;;3420:2;3969:36:1;;3957:2;3942:18;3337:93:0;3827:184:1;21137:120:0;;;;;;;;;;-1:-1:-1;21137:120:0;;;;;:::i;:::-;;:::i;14995:248::-;;;;;;;;;;-1:-1:-1;14995:248:0;;;;;:::i;:::-;;:::i;20373:145::-;;;;;;;;;;-1:-1:-1;20373:145:0;;;;;:::i;:::-;;:::i;12912:34::-;;;;;;;;;;-1:-1:-1;12912:34:0;;;;-1:-1:-1;;;12912:34:0;;;;;;13026:54;;;;;;;;;;;;;;;;3666:127;;;;;;;;;;-1:-1:-1;3666:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3767:18:0;3740:7;3767:18;;;;;;;;;;;;3666:127;11347:94;;;;;;;;;;;;;:::i;20526:121::-;;;;;;;;;;;;;:::i;13281:79::-;;;;;;;;;;;;13318:42;13281:79;;;;;-1:-1:-1;;;;;5004:32:1;;;4986:51;;4974:2;4959:18;13281:79:0;4840:203:1;21867:125:0;;;;;;;;;;-1:-1:-1;21867:125:0;;;;;:::i;:::-;;:::i;11124:87::-;;;;;;;;;;-1:-1:-1;11197:6:0;;-1:-1:-1;;;;;11197:6:0;11124:87;;2594:104;;;;;;;;;;;;;:::i;15251:410::-;;;;;;;;;;-1:-1:-1;15251:410:0;;;;;:::i;:::-;;:::i;12794:19::-;;;;;;;;;;-1:-1:-1;12794:19:0;;;;-1:-1:-1;;;;;12794:19:0;;;15669:165;;;;;;;;;;-1:-1:-1;15669:165:0;;;;;:::i;:::-;;:::i;21475:219::-;;;;;;;;;;-1:-1:-1;21475:219:0;;;;;:::i;:::-;;:::i;13548:41::-;;;;;;;;;;-1:-1:-1;13548:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4285:201;;;;;;;;;;-1:-1:-1;4285:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4451:18:0;;;4419:7;4451:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4285:201;20888:241;;;;;;;;;;-1:-1:-1;20888:241:0;;;;;:::i;:::-;;:::i;11449:192::-;;;;;;;;;;-1:-1:-1;11449:192:0;;;;;:::i;:::-;;:::i;12766:21::-;;;;;;;;;;-1:-1:-1;12766:21:0;;;;-1:-1:-1;;;;;12766:21:0;;;2375:100;2429:13;2462:5;2455:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2375:100;:::o;14370:161::-;14445:4;14462:39;177:10;14485:7;14494:6;14462:8;:39::i;:::-;-1:-1:-1;14519:4:0;14370:161;;;;;:::o;21265:202::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;;;;;;;;;21362:9:::1;21357:103;21381:8;:15;21377:1;:19;21357:103;;;21443:5;21418:9;:22;21428:8;21437:1;21428:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21418:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21418:22:0;:30;;-1:-1:-1;;21418:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21398:3;::::1;::::0;::::1;:::i;:::-;;;;21357:103;;;;21265:202:::0;;:::o;20257:108::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;20331:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;20331:26:0::1;-1:-1:-1::0;;;;20331:26:0;;::::1;::::0;;;::::1;::::0;;20257:108::o;20657:224::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;20721:14:::1;::::0;-1:-1:-1;;;20721:14:0;::::1;;;20720:15;20712:54;;;::::0;-1:-1:-1;;;20712:54:0;;7016:2:1;20712:54:0::1;::::0;::::1;6998:21:1::0;7055:2;7035:18;;;7028:30;7094:28;7074:18;;;7067:56;7140:18;;20712:54:0::1;6814:350:1::0;20712:54:0::1;20777:14;:21:::0;;-1:-1:-1;;;;20809:25:0;-1:-1:-1;;;20809:25:0;;;20861:12:::1;20845:13;:28:::0;20657:224::o;21701:155::-;21771:21;21811:7;11197:6;;-1:-1:-1;;;;;11197:6:0;;11124:87;21811:7;-1:-1:-1;;;;;21803:25:0;:45;21829:18;21803:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21731:125;21701:155::o;14539:448::-;14671:4;14688:36;14698:6;14706:9;14717:6;14688:9;:36::i;:::-;-1:-1:-1;;;;;14764:19:0;;14737:24;14764:19;;;:11;:19;;;;;;;;177:10;14764:33;;;;;;;;14816:26;;;;14808:79;;;;-1:-1:-1;;;14808:79:0;;7371:2:1;14808:79:0;;;7353:21:1;7410:2;7390:18;;;7383:30;7449:34;7429:18;;;7422:62;-1:-1:-1;;;7500:18:1;;;7493:38;7548:19;;14808:79:0;7169:404:1;14808:79:0;14898:57;14907:6;177:10;14929:25;14948:6;14929:16;:25;:::i;:::-;14898:8;:57::i;:::-;-1:-1:-1;14975:4:0;;14539:448;-1:-1:-1;;;;14539:448:0:o;21137:120::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21222:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;21222:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21137:120::o;14995:248::-;177:10;15111:4;15165:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15165:34:0;;;;;;;;;;15111:4;;15133:80;;15156:7;;15165:47;;15202:10;;15165:47;:::i;20373:145::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;20496:14:::1;3420:2:::0;20496::::1;:14;:::i;:::-;20483:27;::::0;:10;:27:::1;:::i;:::-;20457:23;:53:::0;-1:-1:-1;20373:145:0:o;11347:94::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;11412:21:::1;11430:1;11412:9;:21::i;:::-;11347:94::o:0;20526:121::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;20594:11:::1;::::0;;;;::::1;::::0;;-1:-1:-1;20594:11:0;;;::::1;::::0;;::::1;::::0;;;20583:8:::1;:22:::0;;;;;;;20628:11;;;;::::1;::::0;;;;;;;::::1;::::0;;;20616:9:::1;:23:::0;;;;;20526:121::o;21867:125::-;21949:8;-1:-1:-1;;;;;21942:25:0;;21968:7;11197:6;;-1:-1:-1;;;;;11197:6:0;;11124:87;21968:7;21942:42;;-1:-1:-1;;;;;;21942:42:0;;;;;;;-1:-1:-1;;;;;9589:32:1;;;21942:42:0;;;9571:51:1;9638:18;;;9631:34;;;9544:18;;21942:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2594:104::-;2650:13;2683:7;2676:14;;;;;:::i;15251:410::-;177:10;15372:4;15421:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15421:34:0;;;;;;;;;;15474:35;;;;15466:85;;;;-1:-1:-1;;;15466:85:0;;10128:2:1;15466:85:0;;;10110:21:1;10167:2;10147:18;;;10140:30;10206:34;10186:18;;;10179:62;-1:-1:-1;;;10257:18:1;;;10250:35;10302:19;;15466:85:0;9926:401:1;15466:85:0;15562:67;177:10;15585:7;15594:34;15613:15;15594:16;:34;:::i;15562:67::-;-1:-1:-1;15649:4:0;;15251:410;-1:-1:-1;;;15251:410:0:o;15669:165::-;15747:4;15764:40;15774:10;15786:9;15797:6;15764:9;:40::i;21475:219::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;21571:11:::1;21558:9;:24;;21550:81;;;::::0;-1:-1:-1;;;21550:81:0;;10534:2:1;21550:81:0::1;::::0;::::1;10516:21:1::0;10573:2;10553:18;;;10546:30;10612:34;10592:18;;;10585:62;-1:-1:-1;;;10663:18:1;;;10656:42;10715:19;;21550:81:0::1;10332:408:1::0;21550:81:0::1;21671:14;3420:2:::0;21671::::1;:14;:::i;:::-;21659:26;::::0;:9;:26:::1;:::i;:::-;21642:14;:43:::0;-1:-1:-1;21475:219:0:o;20888:241::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;20970:14:::1;::::0;-1:-1:-1;;;20970:14:0;::::1;;;20969:15;20961:65;;;::::0;-1:-1:-1;;;20961:65:0;;10947:2:1;20961:65:0::1;::::0;::::1;10929:21:1::0;10986:2;10966:18;;;10959:30;11025:34;11005:18;;;10998:62;-1:-1:-1;;;11076:18:1;;;11069:35;11121:19;;20961:65:0::1;10745:401:1::0;20961:65:0::1;21057:1;21045:9;:13;21037:53;;;::::0;-1:-1:-1;;;21037:53:0;;11353:2:1;21037:53:0::1;::::0;::::1;11335:21:1::0;11392:2;11372:18;;;11365:30;11431:29;11411:18;;;11404:57;11478:18;;21037:53:0::1;11151:351:1::0;21037:53:0::1;21101:8;:20:::0;20888:241::o;11449:192::-;11197:6;;-1:-1:-1;;;;;11197:6:0;177:10;11259:23;11251:68;;;;-1:-1:-1;;;11251:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11538:22:0;::::1;11530:73;;;::::0;-1:-1:-1;;;11530:73:0;;11709:2:1;11530:73:0::1;::::0;::::1;11691:21:1::0;11748:2;11728:18;;;11721:30;11787:34;11767:18;;;11760:62;-1:-1:-1;;;11838:18:1;;;11831:36;11884:19;;11530:73:0::1;11507:402:1::0;11530:73:0::1;11614:19;11624:8;11614:9;:19::i;:::-;11449:192:::0;:::o;9423:380::-;-1:-1:-1;;;;;9559:19:0;;9551:68;;;;-1:-1:-1;;;9551:68:0;;12116:2:1;9551:68:0;;;12098:21:1;12155:2;12135:18;;;12128:30;12194:34;12174:18;;;12167:62;-1:-1:-1;;;12245:18:1;;;12238:34;12289:19;;9551:68:0;11914:400:1;9551:68:0;-1:-1:-1;;;;;9638:21:0;;9630:68;;;;-1:-1:-1;;;9630:68:0;;12521:2:1;9630:68:0;;;12503:21:1;12560:2;12540:18;;;12533:30;12599:34;12579:18;;;12572:62;-1:-1:-1;;;12650:18:1;;;12643:32;12692:19;;9630:68:0;12319:398:1;9630:68:0;-1:-1:-1;;;;;9711:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9763:32;;3330:25:1;;;9763:32:0;;3303:18:1;9763:32:0;;;;;;;9423:380;;;:::o;15842:2147::-;15992:1;15983:6;:10;15975:64;;;;-1:-1:-1;;;15975:64:0;;12924:2:1;15975:64:0;;;12906:21:1;12963:2;12943:18;;;12936:30;13002:34;12982:18;;;12975:62;-1:-1:-1;;;13053:18:1;;;13046:39;13102:19;;15975:64:0;12722:405:1;15975:64:0;-1:-1:-1;;;;;16057:17:0;;;;;;:9;:17;;;;;;;;16056:18;:43;;;;-1:-1:-1;;;;;;16079:20:0;;;;;;:9;:20;;;;;;;;16078:21;16056:43;16052:122;;;16124:14;;-1:-1:-1;;;16124:14:0;;;;16116:46;;;;-1:-1:-1;;;16116:46:0;;13334:2:1;16116:46:0;;;13316:21:1;13373:2;13353:18;;;13346:30;-1:-1:-1;;;13392:18:1;;;13385:49;13451:18;;16116:46:0;13132:343:1;16116:46:0;16200:4;;-1:-1:-1;;;;;16190:14:0;;;16200:4;;16190:14;:39;;;;-1:-1:-1;;;;;;16209:20:0;;;;;;:9;:20;;;;;;;;16208:21;16190:39;:59;;;;-1:-1:-1;16234:15:0;;-1:-1:-1;;;16234:15:0;;;;16233:16;16190:59;16186:215;;;16307:14;;16297:6;16274:20;16284:9;-1:-1:-1;;;;;3767:18:0;3740:7;3767:18;;;;;;;;;;;;3666:127;16274:20;:29;;;;:::i;:::-;:47;;16266:123;;;;-1:-1:-1;;;16266:123:0;;13682:2:1;16266:123:0;;;13664:21:1;;;13701:18;;;13694:30;13760:34;13740:18;;;13733:62;13812:18;;16266:123:0;13480:356:1;16266:123:0;16427:4;;-1:-1:-1;;;;;16417:14:0;;;16427:4;;16417:14;;;;:39;;-1:-1:-1;;;;;;16436:20:0;;;;;;:9;:20;;;;;;;;16435:21;16417:39;:61;;;;-1:-1:-1;;;;;;16461:17:0;;;;;;:9;:17;;;;;;;;16460:18;16417:61;:81;;;;-1:-1:-1;16483:15:0;;-1:-1:-1;;;16483:15:0;;;;16482:16;16417:81;16413:315;;;16545:4;;-1:-1:-1;;;;;16532:17:0;;;16545:4;;16532:17;16528:189;;16611:14;;16601:6;16578:20;16588:9;-1:-1:-1;;;;;3767:18:0;3740:7;3767:18;;;;;;;;;;;;3666:127;16578:20;:29;;;;:::i;:::-;:47;;16570:131;;;;-1:-1:-1;;;16570:131:0;;13682:2:1;16570:131:0;;;13664:21:1;;;13701:18;;;13694:30;13760:34;13740:18;;;13733:62;13812:18;;16570:131:0;13480:356:1;16570:131:0;16740:15;16766:14;16791:11;16813:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;16813:25:0;-1:-1:-1;;;;;16872:17:0;;16851;16872;;;:9;:17;;;;;;;;16871:18;:56;;;;-1:-1:-1;;;;;;16907:20:0;;;;;;:9;:20;;;;;;;;16906:21;16871:56;:112;;;;;16975:8;;16959:13;;:24;;;;:::i;:::-;16944:12;:39;16871:112;17000:15;;16851:132;;-1:-1:-1;;;;17000:15:0;;;;;:36;;-1:-1:-1;;;;;;17019:17:0;;;;;;:9;:17;;;;;;;;17000:36;:60;;;-1:-1:-1;;;;;;17040:20:0;;;;;;:9;:20;;;;;;;;17000:60;16996:565;;;17081:1;17075:7;;16996:565;;;17117:4;;-1:-1:-1;;;;;17104:17:0;;;17117:4;;17104:17;:34;;;;;17126:12;17125:13;17104:34;17100:461;;;17187:9;:19;17165;;:41;;17187:19;17165:41;:::i;:::-;17252:24;;;;;;;;;17267:9;17252:24;;;;;;;;;17155:51;;-1:-1:-1;17155:51:0;;-1:-1:-1;17252:24:0;-1:-1:-1;17100:461:0;;;17299:12;17294:267;;17359:8;:18;17338;;:39;;17359:18;17338:39;:::i;:::-;17423:23;;;;;;;;;17438:8;17423:23;;;;;;;;;17328:49;;-1:-1:-1;17328:49:0;;-1:-1:-1;17423:23:0;-1:-1:-1;17294:267:0;;;17468:12;17464:97;;;17507:9;;;-1:-1:-1;17507:9:0;;-1:-1:-1;17464:97:0;17599:3;17580:15;17589:6;17580;:15;:::i;:::-;17579:23;;;;:::i;:::-;17619:18;;17573:29;;-1:-1:-1;;;;17619:18:0;;;;:36;;;;-1:-1:-1;17651:4:0;;-1:-1:-1;;;;;17641:14:0;;;17651:4;;17641:14;;17619:36;17615:76;;;17657:34;17669:7;17678:12;17657:11;:34::i;:::-;17704:48;17720:6;17728:9;17739:12;17748:3;17739:6;:12;:::i;:::-;17704:15;:48::i;:::-;17767:7;;17763:219;;17809:11;;17805:164;;17841:17;17882:3;17862:16;17871:7;17862:6;:16;:::i;:::-;17861:24;;;;:::i;:::-;17841:44;;17904:49;17920:6;17936:4;17943:9;17904:15;:49::i;:::-;17822:147;17805:164;15964:2025;;;;;15842:2147;;;:::o;11649:173::-;11724:6;;;-1:-1:-1;;;;;11741:17:0;;;-1:-1:-1;;;;;;11741:17:0;;;;;;;11774:40;;11724:6;;;11741:17;11724:6;;11774:40;;11705:16;;11774:40;11694:128;11649:173;:::o;17997:1388::-;13635:15;;-1:-1:-1;;;13635:15:0;;;;13630:125;;13667:15;:22;;-1:-1:-1;;;;13667:22:0;-1:-1:-1;;;13667:22:0;;;18083:49;;18114:7:::1;18083:49;18189:4;18145:23;3767:18:::0;;;;;;;;;;;18229:23:::1;::::0;18210:42;::::1;18206:1172;;18299:1;18273:23;;:27;18269:109;;;-1:-1:-1::0;18339:23:0::1;::::0;18269:109:::1;18449:19;18471:11;:7:::0;18481:1:::1;18471:11;:::i;:::-;18449:33;;18497:32;18591:11;18551:9;:19;;;18533:15;:37;;;;:::i;:::-;18532:70;;;;:::i;:::-;18497:105:::0;-1:-1:-1;18617:14:0::1;18634:42;18497:105:::0;18634:15;:42:::1;:::i;:::-;18617:59:::0;-1:-1:-1;18718:21:0::1;18756:24;18617:59:::0;18756:16:::1;:24::i;:::-;18797:20;18820:38;18844:14:::0;18820:21:::1;:38;:::i;:::-;18797:61;;18873:19;18925:9;:19;;;18911:11;:33;;;;:::i;:::-;18895:50;::::0;:12;:50:::1;:::i;:::-;18873:72;;18960:29;19006:9;:19;;;18992:11;:33;;;;:::i;:::-;18960:65:::0;-1:-1:-1;19046:25:0;;19042:127:::1;;19092:61;19105:24;19131:21;19092:12;:61::i;:::-;19226:19:::0;;19185:20:::1;::::0;19208:15:::1;:11:::0;19222:1:::1;19208:15;:::i;:::-;:37;;;;:::i;:::-;19185:60:::0;-1:-1:-1;19264:16:0;;19260:105:::1;;19309:15;::::0;19301:48:::1;::::0;-1:-1:-1;;;;;19309:15:0::1;19336:12:::0;19301:34:::1;:48::i;:::-;18254:1124;;;;;;;;18206:1172;18077:1308;13704:1;13720:15:::0;:23;;-1:-1:-1;;;;13720:23:0;;;17997:1388;;:::o;7798:638::-;-1:-1:-1;;;;;7938:20:0;;7930:70;;;;-1:-1:-1;;;7930:70:0;;14265:2:1;7930:70:0;;;14247:21:1;14304:2;14284:18;;;14277:30;14343:34;14323:18;;;14316:62;-1:-1:-1;;;14394:18:1;;;14387:35;14439:19;;7930:70:0;14063:401:1;7930:70:0;-1:-1:-1;;;;;8019:23:0;;8011:71;;;;-1:-1:-1;;;8011:71:0;;14671:2:1;8011:71:0;;;14653:21:1;14710:2;14690:18;;;14683:30;14749:34;14729:18;;;14722:62;-1:-1:-1;;;14800:18:1;;;14793:33;14843:19;;8011:71:0;14469:399:1;8011:71:0;-1:-1:-1;;;;;8179:17:0;;8155:21;8179:17;;;;;;;;;;;8215:23;;;;8207:74;;;;-1:-1:-1;;;8207:74:0;;15075:2:1;8207:74:0;;;15057:21:1;15114:2;15094:18;;;15087:30;15153:34;15133:18;;;15126:62;-1:-1:-1;;;15204:18:1;;;15197:36;15250:19;;8207:74:0;14873:402:1;8207:74:0;8312:22;8328:6;8312:13;:22;:::i;:::-;-1:-1:-1;;;;;8292:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8345:20;;;;;;;;:30;;8369:6;;8292:9;8345:30;;8369:6;;8345:30;:::i;:::-;;;;;;;;8410:9;-1:-1:-1;;;;;8393:35:0;8402:6;-1:-1:-1;;;;;8393:35:0;;8421:6;8393:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;8393:35:0;;;;;;;;7919:517;7798:638;;;:::o;19393:448::-;19483:16;;;19497:1;19483:16;;;;;;;;19459:21;;19483:16;;;;;;;;;;-1:-1:-1;19483:16:0;19459:40;;19528:4;19510;19515:1;19510:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19510:23:0;;;:7;;;;;;;;;;:23;;;;19554:6;;:13;;;-1:-1:-1;;;19554:13:0;;;;:6;;;;;:11;;:13;;;;;19510:7;;19554:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19544:4;19549:1;19544:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19544:23:0;;;:7;;;;;;;;;:23;19612:6;;19580:53;;19597:4;;19612:6;19621:11;19580:8;:53::i;:::-;19646:6;;:187;;-1:-1:-1;;;19646:187:0;;-1:-1:-1;;;;;19646:6:0;;;;:57;;:187;;19718:11;;19646:6;;19760:4;;19787;;19807:15;;19646:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19448:393;19393:448;:::o;19849:400::-;19962:6;;19930:53;;19947:4;;-1:-1:-1;;;;;19962:6:0;19971:11;19930:8;:53::i;:::-;19996:6;;-1:-1:-1;;;;;19996:6:0;:22;20027:9;20061:4;20081:11;19996:6;;20193:7;11197:6;;-1:-1:-1;;;;;11197:6:0;;11124:87;20193:7;19996:245;;;;;;-1:-1:-1;;;;;;19996:245:0;;;-1:-1:-1;;;;;16880:15:1;;;19996:245:0;;;16862:34:1;16912:18;;;16905:34;;;;16955:18;;;16948:34;;;;16998:18;;;16991:34;17062:15;;;17041:19;;;17034:44;20215:15:0;17094:19:1;;;17087:35;16796:19;;19996:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19849:400;;:::o;10567:319::-;10682:6;10657:21;:31;;10649:73;;;;-1:-1:-1;;;10649:73:0;;17646:2:1;10649:73:0;;;17628:21:1;17685:2;17665:18;;;17658:30;17724:31;17704:18;;;17697:59;17773:18;;10649:73:0;17444:353:1;10649:73:0;10736:12;10754:9;-1:-1:-1;;;;;10754:14:0;10777:6;10754:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10735:54;;;10808:7;10800:78;;;;-1:-1:-1;;;10800:78:0;;18214:2:1;10800:78:0;;;18196:21:1;18253:2;18233:18;;;18226:30;18292:34;18272:18;;;18265:62;18363:28;18343:18;;;18336:56;18409:19;;10800:78:0;18012:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:127::-;1415:10;1410:3;1406:20;1403:1;1396:31;1446:4;1443:1;1436:15;1470:4;1467:1;1460:15;1486:118;1572:5;1565:13;1558:21;1551:5;1548:32;1538:60;;1594:1;1591;1584:12;1609:128;1674:20;;1703:28;1674:20;1703:28;:::i;1742:1191::-;1832:6;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1949:9;1936:23;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:4;2221:2;2217;2214:10;2211:36;;;2227:18;;:::i;:::-;2273:2;2270:1;2266:10;2305:2;2299:9;2368:2;2364:7;2359:2;2355;2351:11;2347:25;2339:6;2335:38;2423:6;2411:10;2408:22;2403:2;2391:10;2388:18;2385:46;2382:72;;;2434:18;;:::i;:::-;2470:2;2463:22;2520:18;;;2554:15;;;;-1:-1:-1;2596:11:1;;;2592:20;;;2624:19;;;2621:39;;;2656:1;2653;2646:12;2621:39;2680:11;;;;2700:148;2716:6;2711:3;2708:15;2700:148;;;2782:23;2801:3;2782:23;:::i;:::-;2770:36;;2733:12;;;;2826;;;;2700:148;;;2867:6;-1:-1:-1;2892:35:1;;-1:-1:-1;2908:18:1;;;2892:35;:::i;:::-;2882:45;;;;;;1742:1191;;;;;:::o;2938:241::-;2994:6;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3102:9;3089:23;3121:28;3143:5;3121:28;:::i;:::-;3168:5;2938:241;-1:-1:-1;;;2938:241:1:o;3366:456::-;3443:6;3451;3459;3512:2;3500:9;3491:7;3487:23;3483:32;3480:52;;;3528:1;3525;3518:12;3480:52;3567:9;3554:23;3586:31;3611:5;3586:31;:::i;:::-;3636:5;-1:-1:-1;3693:2:1;3678:18;;3665:32;3706:33;3665:32;3706:33;:::i;:::-;3366:456;;3758:7;;-1:-1:-1;;;3812:2:1;3797:18;;;;3784:32;;3366:456::o;4016:382::-;4081:6;4089;4142:2;4130:9;4121:7;4117:23;4113:32;4110:52;;;4158:1;4155;4148:12;4110:52;4197:9;4184:23;4216:31;4241:5;4216:31;:::i;:::-;4266:5;-1:-1:-1;4323:2:1;4308:18;;4295:32;4336:30;4295:32;4336:30;:::i;:::-;4385:7;4375:17;;;4016:382;;;;;:::o;4403:180::-;4462:6;4515:2;4503:9;4494:7;4490:23;4486:32;4483:52;;;4531:1;4528;4521:12;4483:52;-1:-1:-1;4554:23:1;;4403:180;-1:-1:-1;4403:180:1:o;4588:247::-;4647:6;4700:2;4688:9;4679:7;4675:23;4671:32;4668:52;;;4716:1;4713;4706:12;4668:52;4755:9;4742:23;4774:31;4799:5;4774:31;:::i;5048:388::-;5116:6;5124;5177:2;5165:9;5156:7;5152:23;5148:32;5145:52;;;5193:1;5190;5183:12;5145:52;5232:9;5219:23;5251:31;5276:5;5251:31;:::i;:::-;5301:5;-1:-1:-1;5358:2:1;5343:18;;5330:32;5371:33;5330:32;5371:33;:::i;5664:380::-;5743:1;5739:12;;;;5786;;;5807:61;;5861:4;5853:6;5849:17;5839:27;;5807:61;5914:2;5906:6;5903:14;5883:18;5880:38;5877:161;;5960:10;5955:3;5951:20;5948:1;5941:31;5995:4;5992:1;5985:15;6023:4;6020:1;6013:15;5877:161;;5664:380;;;:::o;6049:356::-;6251:2;6233:21;;;6270:18;;;6263:30;6329:34;6324:2;6309:18;;6302:62;6396:2;6381:18;;6049:356::o;6410:127::-;6471:10;6466:3;6462:20;6459:1;6452:31;6502:4;6499:1;6492:15;6526:4;6523:1;6516:15;6542:127;6603:10;6598:3;6594:20;6591:1;6584:31;6634:4;6631:1;6624:15;6658:4;6655:1;6648:15;6674:135;6713:3;6734:17;;;6731:43;;6754:18;;:::i;:::-;-1:-1:-1;6801:1:1;6790:13;;6674:135::o;7578:128::-;7645:9;;;7666:11;;;7663:37;;;7680:18;;:::i;7711:125::-;7776:9;;;7797:10;;;7794:36;;;7810:18;;:::i;7841:422::-;7930:1;7973:5;7930:1;7987:270;8008:7;7998:8;7995:21;7987:270;;;8067:4;8063:1;8059:6;8055:17;8049:4;8046:27;8043:53;;;8076:18;;:::i;:::-;8126:7;8116:8;8112:22;8109:55;;;8146:16;;;;8109:55;8225:22;;;;8185:15;;;;7987:270;;;7991:3;7841:422;;;;;:::o;8268:806::-;8317:5;8347:8;8337:80;;-1:-1:-1;8388:1:1;8402:5;;8337:80;8436:4;8426:76;;-1:-1:-1;8473:1:1;8487:5;;8426:76;8518:4;8536:1;8531:59;;;;8604:1;8599:130;;;;8511:218;;8531:59;8561:1;8552:10;;8575:5;;;8599:130;8636:3;8626:8;8623:17;8620:43;;;8643:18;;:::i;:::-;-1:-1:-1;;8699:1:1;8685:16;;8714:5;;8511:218;;8813:2;8803:8;8800:16;8794:3;8788:4;8785:13;8781:36;8775:2;8765:8;8762:16;8757:2;8751:4;8748:12;8744:35;8741:77;8738:159;;;-1:-1:-1;8850:19:1;;;8882:5;;8738:159;8929:34;8954:8;8948:4;8929:34;:::i;:::-;8999:6;8995:1;8991:6;8987:19;8978:7;8975:32;8972:58;;;9010:18;;:::i;:::-;9048:20;;8268:806;-1:-1:-1;;;8268:806:1:o;9079:140::-;9137:5;9166:47;9207:4;9197:8;9193:19;9187:4;9166:47;:::i;9224:168::-;9297:9;;;9328;;9345:15;;;9339:22;;9325:37;9315:71;;9366:18;;:::i;9676:245::-;9743:6;9796:2;9784:9;9775:7;9771:23;9767:32;9764:52;;;9812:1;9809;9802:12;9764:52;9844:9;9838:16;9863:28;9885:5;9863:28;:::i;13841:217::-;13881:1;13907;13897:132;;13951:10;13946:3;13942:20;13939:1;13932:31;13986:4;13983:1;13976:15;14014:4;14011:1;14004:15;13897:132;-1:-1:-1;14043:9:1;;13841:217::o;15280:251::-;15350:6;15403:2;15391:9;15382:7;15378:23;15374:32;15371:52;;;15419:1;15416;15409:12;15371:52;15451:9;15445:16;15470:31;15495:5;15470:31;:::i;15536:980::-;15798:4;15846:3;15835:9;15831:19;15877:6;15866:9;15859:25;15903:2;15941:6;15936:2;15925:9;15921:18;15914:34;15984:3;15979:2;15968:9;15964:18;15957:31;16008:6;16043;16037:13;16074:6;16066;16059:22;16112:3;16101:9;16097:19;16090:26;;16151:2;16143:6;16139:15;16125:29;;16172:1;16182:195;16196:6;16193:1;16190:13;16182:195;;;16261:13;;-1:-1:-1;;;;;16257:39:1;16245:52;;16352:15;;;;16317:12;;;;16293:1;16211:9;16182:195;;;-1:-1:-1;;;;;;;16433:32:1;;;;16428:2;16413:18;;16406:60;-1:-1:-1;;;16497:3:1;16482:19;16475:35;16394:3;15536:980;-1:-1:-1;;;15536:980:1:o;17133:306::-;17221:6;17229;17237;17290:2;17278:9;17269:7;17265:23;17261:32;17258:52;;;17306:1;17303;17296:12;17258:52;17335:9;17329:16;17319:26;;17385:2;17374:9;17370:18;17364:25;17354:35;;17429:2;17418:9;17414:18;17408:25;17398:35;;17133:306;;;;;:::o

Swarm Source

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