ETH Price: $3,454.78 (-1.92%)
Gas: 3 Gwei

Token

ShitFlowz Token (SHTFLZ)
 

Overview

Max Total Supply

1,000,000,000 SHTFLZ

Holders

516

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12,463.467511931197045713 SHTFLZ

Value
$0.00
0x17DA4F3654149e560A1AB0c93a91cE7718825E33
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:
ShitFlowz

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// BUILT BY SAFU DEV IAN CAWREY 


//     ██████  ██░ ██  ██▓▄▄▄█████▓  █████▒██▓     ▒█████   █     █░▒███████▒
//   ▒██    ▒ ▓██░ ██▒▓██▒▓  ██▒ ▓▒▓██   ▒▓██▒    ▒██▒  ██▒▓█░ █ ░█░▒ ▒ ▒ ▄▀░
//   ░ ▓██▄   ▒██▀▀██░▒██▒▒ ▓██░ ▒░▒████ ░▒██░    ▒██░  ██▒▒█░ █ ░█ ░ ▒ ▄▀▒░ 
//     ▒   ██▒░▓█ ░██ ░██░░ ▓██▓ ░ ░▓█▒  ░▒██░    ▒██   ██░░█░ █ ░█   ▄▀▒   ░
//   ▒██████▒▒░▓█▒░██▓░██░  ▒██▒ ░ ░▒█░   ░██████▒░ ████▓▒░░░██▒██▓ ▒███████▒
//   ▒ ▒▓▒ ▒ ░ ▒ ░░▒░▒░▓    ▒ ░░    ▒ ░   ░ ▒░▓  ░░ ▒░▒░▒░ ░ ▓░▒ ▒  ░▒▒ ▓░▒░▒
//   ░ ░▒  ░ ░ ▒ ░▒░ ░ ▒ ░    ░     ░     ░ ░ ▒  ░  ░ ▒ ▒░   ▒ ░ ░  ░░▒ ▒ ░ ▒
//   ░  ░  ░   ░  ░░ ░ ▒ ░  ░       ░ ░     ░ ░   ░ ░ ░ ▒    ░   ░  ░ ░ ░ ░ ░
//         ░   ░  ░  ░ ░                      ░  ░    ░ ░      ░      ░ ░    
//                                                                  ░        

                                                                                                                     
                                                                                                                    



// SPDX-License-Identifier: UNLICENSED
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

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

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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

// File: @openzeppelin/contracts/utils/Context.sol


// 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/token/ERC20/ERC20.sol


// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;




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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default 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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (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 Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions 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);
    }
}

interface BURNTOKEN {
  function burn(uint256 amount) external;
}


pragma solidity ^0.8.0;

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

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

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

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

contract ShitFlowz is Ownable, ERC20('ShitFlowz Token', 'SHTFLZ') {
       
    IRouter public Router;
    
    uint256 public donationsFee;
    uint256 public burnFee;
    uint256 public marketingFee;
    address public burnToken;
    uint256 public swapAtAmount;
    address payable public  marketingWallet;
    address payable public donationsWallet;
    address public swapPair;
    mapping (address => bool) public automatedMarketMakerPairs;
    mapping (address => bool) private _isExcludedFromFees;
    
    constructor(address _router, address _MarketingWallet, address _donationsWallet, uint256 initialSupply, address _burnToken)  {
       donationsFee = 300;  // 300 = 3%
       burnFee = 100; // 100 = 1%
       marketingFee = 300;  // 300 = 3%
       burnToken = _burnToken;
       marketingWallet = payable(_MarketingWallet);
       donationsWallet = payable(_donationsWallet);
       excludeFromFees(owner(), true);
       excludeFromFees(address(this), true);
       _mint(owner(), initialSupply * (10**18));
       swapAtAmount = totalSupply() * 10 / 1000000;  // .01% 
       updateSwapRouter(_router);   
    }
   
     event ExcludeFromFees(address indexed account, bool isExcluded);
     event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    
    function setdonationsFee(uint256 _newdonationsFee) public onlyOwner {
      require(_newdonationsFee <= 1000, "Cannot exceed 1000");
      donationsFee = _newdonationsFee;
    }
    
    function setBurnFee(uint256 _newBurnFee) public onlyOwner {
      require(_newBurnFee <= 1000, "Cannot exceed 1000");
      burnFee = _newBurnFee;
    }

    function setmarketingFee(uint256 _newmarketingFee) public onlyOwner {
      require(_newmarketingFee <= 1000, "Cannot exceed 1000");
      marketingFee = _newmarketingFee;
    }
    
    function setMarketingWallet(address payable newMarketingWallet) public onlyOwner {
         if (_isExcludedFromFees[marketingWallet] = true) excludeFromFees(marketingWallet, false);
        marketingWallet = newMarketingWallet;
         if (_isExcludedFromFees[marketingWallet] = false) excludeFromFees(marketingWallet, true);
    }

    function setBurnToken(address _newBurnToken) external onlyOwner {
        burnToken = _newBurnToken;
    }
    
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        require(_isExcludedFromFees[account] != excluded, "Account is already the value of 'excluded'");
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }
    
    function _setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }
   
    function updateSwapRouter(address newAddress) public onlyOwner {
        require(newAddress != address(Router), "The router already has that address");
        Router = IRouter(newAddress);
        address bnbPair = IFactory(Router.factory())
            .getPair(address(this), Router.WETH());
        if(bnbPair == address(0)) bnbPair = IFactory(Router.factory()).createPair(address(this), Router.WETH());
        if (automatedMarketMakerPairs[bnbPair] != true && bnbPair != address(0) ){
            _setAutomatedMarketMakerPair(bnbPair, true);
        }
          _approve(address(this), address(Router), ~uint256(0));
        
        swapPair = bnbPair;
    }
    
    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function setSwapAtAmount(uint256 _newSwapAtAmount) external onlyOwner {
        swapAtAmount = _newSwapAtAmount;
    }

    bool private inSwapAndLiquify;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
           
        // if any account belongs to _isExcludedFromFee account then remove the fee
        if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {

            if(automatedMarketMakerPairs[to] || automatedMarketMakerPairs[from]) {
                uint256 extraFee;
                if(donationsFee >0 || burnFee >0 || marketingFee >0) extraFee =(amount * donationsFee)/10000 + (amount * burnFee)/10000 + (amount * marketingFee)/10000;
                

                if (balanceOf(address(this)) > swapAtAmount && !inSwapAndLiquify && automatedMarketMakerPairs[to]) SwapFees();
                
                if (extraFee > 0) {
                  super._transfer(from, address(this), extraFee);
                  amount = amount - extraFee;
                }
                
            }     
        }
      super._transfer(from, to, amount);
        
   }

    function SwapFees() private lockTheSwap {
       
          address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = Router.WETH();

                Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                    balanceOf(address(this)),
                    0,
                    path,
                    address(this),
                    block.timestamp
                );

            uint256 burnAmount = address(this).balance * burnFee / (burnFee + donationsFee + marketingFee);
            
            address[] memory path1 = new address[](2);
            path1[0] = Router.WETH();
            path1[1] = burnToken;

                Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: burnAmount} (
                    0,
                    path1,
                    address(this),
                    block.timestamp
                );
                        
            BURNTOKEN(burnToken).burn(ERC20(burnToken).balanceOf(address(this)));

            uint256 marketingAmount = address(this).balance * marketingFee / ( donationsFee + marketingFee );

            payable(marketingWallet).transfer(marketingAmount);
            payable(marketingWallet).transfer(address(this).balance);
                    
    }

        function manualSwapAndBurn() external onlyOwner {
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = Router.WETH();

                Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                    balanceOf(address(this)),
                    0,
                    path,
                    address(this),
                    block.timestamp
                );

            uint256 burnAmount = address(this).balance * burnFee / (burnFee + donationsFee + marketingFee);
            
            address[] memory path1 = new address[](2);
            path1[0] = Router.WETH();
            path1[1] = burnToken;

                Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: burnAmount} (
                    0,
                    path1,
                    address(this),
                    block.timestamp
                );
                        
            BURNTOKEN(burnToken).burn(ERC20(burnToken).balanceOf(address(this)));

            uint256 marketingAmount = address(this).balance * marketingFee / ( donationsFee + marketingFee );

            payable(marketingWallet).transfer(marketingAmount);
            payable(marketingWallet).transfer(address(this).balance);
        }

        function withdawlBNB() external onlyOwner {
            payable(msg.sender).transfer(address(this).balance);
        }

        function withdrawlToken(address _tokenAddress) external onlyOwner {
            ERC20(_tokenAddress).transfer(msg.sender, ERC20(_tokenAddress).balanceOf(address(this)));
        }   
 

    // to receive Eth From Router when Swapping
    receive() external payable {}
    
    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_MarketingWallet","type":"address"},{"internalType":"address","name":"_donationsWallet","type":"address"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"_burnToken","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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"_setAutomatedMarketMakerPair","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":"","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":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnToken","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":[],"name":"donationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"donationsWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"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"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapAndBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBurnFee","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newBurnToken","type":"address"}],"name":"setBurnToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newSwapAtAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newdonationsFee","type":"uint256"}],"name":"setdonationsFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmarketingFee","type":"uint256"}],"name":"setmarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdawlBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"withdrawlToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801562000010575f80fd5b5060405162002f3138038062002f31833981016040819052620000339162000a3f565b6040518060400160405280600f81526020016e29b434ba233637bbbd102a37b5b2b760891b8152506040518060400160405280600681526020016529a42a23262d60d11b815250620000946200008e6200018c60201b60201c565b62000190565b6004620000a2838262000b41565b506005620000b1828262000b41565b505061012c6007819055606460085560095550600a80546001600160a01b03199081166001600160a01b0384811691909117909255600c80548216878416179055600d80549091168583161790555f546200010f91166001620001df565b6200011c306001620001df565b6200014c620001325f546001600160a01b031690565b6200014684670de0b6b3a764000062000c1d565b620002cf565b620f42406200015a60035490565b6200016790600a62000c1d565b62000173919062000c3d565b600b556200018185620003b1565b505050505062000c96565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b620001e9620007a6565b6001600160a01b0382165f9081526010602052604090205481151560ff909116151503620002715760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b60648201526084015b60405180910390fd5b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620003275760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000268565b8060035f8282546200033a919062000c5d565b90915550506001600160a01b0382165f90815260016020526040812080548392906200036890849062000c5d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b620003bb620007a6565b6006546001600160a01b0390811690821603620004275760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b606482015260840162000268565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290515f929163c45a01559160048083019260209291908290030181865afa15801562000481573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004a7919062000c73565b6001600160a01b031663e6a439053060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000507573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200052d919062000c73565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801562000577573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200059d919062000c73565b90506001600160a01b0381166200071f5760065f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000625919062000c73565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000685573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006ab919062000c73565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620006f6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200071c919062000c73565b90505b6001600160a01b0381165f908152600f602052604090205460ff1615156001148015906200075557506001600160a01b03811615155b1562000768576200076881600162000808565b600654620007839030906001600160a01b03165f19620008fc565b600e80546001600160a01b0319166001600160a01b039290921691909117905550565b5f546001600160a01b03163314620008015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000268565b565b505050565b62000812620007a6565b6001600160a01b0382165f908152600f602052604090205481151560ff909116151503620008a95760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c75650000000000000000606482015260840162000268565b6001600160a01b0382165f818152600f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316620009605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000268565b6001600160a01b038216620009c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000268565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b80516001600160a01b038116811462000a3a575f80fd5b919050565b5f805f805f60a0868803121562000a54575f80fd5b62000a5f8662000a23565b945062000a6f6020870162000a23565b935062000a7f6040870162000a23565b92506060860151915062000a966080870162000a23565b90509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168062000acb57607f821691505b60208210810362000aea57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000803575f81815260208120601f850160051c8101602086101562000b185750805b601f850160051c820191505b8181101562000b395782815560010162000b24565b505050505050565b81516001600160401b0381111562000b5d5762000b5d62000aa2565b62000b758162000b6e845462000ab6565b8462000af0565b602080601f83116001811462000bab575f841562000b935750858301515b5f19600386901b1c1916600185901b17855562000b39565b5f85815260208120601f198616915b8281101562000bdb5788860151825594840194600190910190840162000bba565b508582101562000bf957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141762000c375762000c3762000c09565b92915050565b5f8262000c5857634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111562000c375762000c3762000c09565b5f6020828403121562000c84575f80fd5b62000c8f8262000a23565b9392505050565b61228d8062000ca45f395ff3fe608060405260043610610215575f3560e01c806394a4ebd51161011e578063c0246668116100a8578063f287eada1161006d578063f287eada1461061f578063f2fde38b1461063e578063f6d7eade1461065d578063faa0a2641461067c578063fce589d81461069b575f80fd5b8063c024666814610599578063c3587980146105b8578063c824d807146105d7578063dd62ed3e146105ec578063e799ffb11461060b575f80fd5b8063a9059cbb116100ee578063a9059cbb146104fa578063ac5cad5614610519578063b62496f514610538578063b9413b5114610566578063b98b677f1461057a575f80fd5b806394a4ebd51461048957806395d89b41146104a8578063a457c2d7146104bc578063a7f7b36f146104db575f80fd5b80635d098b381161019f578063715018a61161016f578063715018a61461040657806375f0a8741461041a57806386917524146104395780638c9a5a311461044e5780638da5cb5b1461046d575f80fd5b80635d098b381461037f5780636402511e1461039e5780636b67c4df146103bd57806370a08231146103d2575f80fd5b806326991cc8116101e557806326991cc8146102b6578063313ce567146102ed57806339509351146103085780634bf2c7c9146103275780634fbee19314610348575f80fd5b806306fdde0314610220578063095ea7b31461024a57806318160ddd1461027957806323b872dd14610297575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b506102346106b0565b6040516102419190611f01565b60405180910390f35b348015610255575f80fd5b50610269610264366004611f60565b610740565b6040519015158152602001610241565b348015610284575f80fd5b506003545b604051908152602001610241565b3480156102a2575f80fd5b506102696102b1366004611f8a565b610759565b3480156102c1575f80fd5b50600e546102d5906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156102f8575f80fd5b5060405160128152602001610241565b348015610313575f80fd5b50610269610322366004611f60565b61077c565b348015610332575f80fd5b50610346610341366004611fc8565b61079d565b005b348015610353575f80fd5b50610269610362366004611fdf565b6001600160a01b03165f9081526010602052604090205460ff1690565b34801561038a575f80fd5b50610346610399366004611fdf565b6107d5565b3480156103a9575f80fd5b506103466103b8366004611fc8565b61084e565b3480156103c8575f80fd5b5061028960095481565b3480156103dd575f80fd5b506102896103ec366004611fdf565b6001600160a01b03165f9081526001602052604090205490565b348015610411575f80fd5b5061034661085b565b348015610425575f80fd5b50600c546102d5906001600160a01b031681565b348015610444575f80fd5b50610289600b5481565b348015610459575f80fd5b50610346610468366004611fc8565b61086e565b348015610478575f80fd5b505f546001600160a01b03166102d5565b348015610494575f80fd5b506103466104a3366004611fc8565b61089d565b3480156104b3575f80fd5b506102346108cc565b3480156104c7575f80fd5b506102696104d6366004611f60565b6108db565b3480156104e6575f80fd5b506103466104f536600461200e565b610955565b348015610505575f80fd5b50610269610514366004611f60565b610a45565b348015610524575f80fd5b50610346610533366004611fdf565b610a52565b348015610543575f80fd5b50610269610552366004611fdf565b600f6020525f908152604090205460ff1681565b348015610571575f80fd5b50610346610b3a565b348015610585575f80fd5b50610346610594366004611fdf565b610f67565b3480156105a4575f80fd5b506103466105b336600461200e565b61133f565b3480156105c3575f80fd5b506103466105d2366004611fdf565b611427565b3480156105e2575f80fd5b5061028960075481565b3480156105f7575f80fd5b50610289610606366004612045565b611451565b348015610616575f80fd5b5061034661147b565b34801561062a575f80fd5b50600d546102d5906001600160a01b031681565b348015610649575f80fd5b50610346610658366004611fdf565b6114ac565b348015610668575f80fd5b506006546102d5906001600160a01b031681565b348015610687575f80fd5b50600a546102d5906001600160a01b031681565b3480156106a6575f80fd5b5061028960085481565b6060600480546106bf90612071565b80601f01602080910402602001604051908101604052809291908181526020018280546106eb90612071565b80156107365780601f1061070d57610100808354040283529160200191610736565b820191905f5260205f20905b81548152906001019060200180831161071957829003601f168201915b5050505050905090565b5f3361074d818585611522565b60019150505b92915050565b5f33610766858285611645565b6107718585856116bd565b506001949350505050565b5f3361074d81858561078e8383611451565b61079891906120bd565b611522565b6107a5611851565b6103e88111156107d05760405162461bcd60e51b81526004016107c7906120d0565b60405180910390fd5b600855565b6107dd611851565b600c546001600160a01b03165f908152601060205260409020805460ff19166001179055600c54610817906001600160a01b03165f61133f565b600c80546001600160a01b0319166001600160a01b0383169081179091555f908152601060205260409020805460ff191690555b50565b610856611851565b600b55565b610863611851565b61086c5f6118aa565b565b610876611851565b6103e88111156108985760405162461bcd60e51b81526004016107c7906120d0565b600955565b6108a5611851565b6103e88111156108c75760405162461bcd60e51b81526004016107c7906120d0565b600755565b6060600580546106bf90612071565b5f33816108e88286611451565b9050838110156109485760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c7565b6107718286868403611522565b61095d611851565b6001600160a01b0382165f908152600f602052604090205481151560ff9091161515036109f25760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084016107c7565b6001600160a01b0382165f818152600f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f3361074d8185856116bd565b610a5a611851565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610aa6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aca91906120fc565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610b12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b369190612113565b5050565b610b42611851565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610b7557610b7561212e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf09190612142565b81600181518110610c0357610c0361212e565b6001600160a01b0392831660209182029290920101526006541663791ac947610c40306001600160a01b03165f9081526001602052604090205490565b5f8430426040518663ffffffff1660e01b8152600401610c6495949392919061219f565b5f604051808303815f87803b158015610c7b575f80fd5b505af1158015610c8d573d5f803e3d5ffd5b505050505f600954600754600854610ca591906120bd565b610caf91906120bd565b600854610cbc90476121da565b610cc691906121f1565b6040805160028082526060820183529293505f9290916020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610d32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d569190612142565b815f81518110610d6857610d6861212e565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110610d9957610d9961212e565b6001600160a01b03928316602091820292909201015260065460405163b6f9de9560e01b815291169063b6f9de95908490610dde905f90869030904290600401612210565b5f604051808303818588803b158015610df5575f80fd5b505af1158015610e07573d5f803e3d5ffd5b5050600a546040516370a0823160e01b81523060048201526001600160a01b0390911693506342966c6892508391506370a0823190602401602060405180830381865afa158015610e5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7e91906120fc565b6040518263ffffffff1660e01b8152600401610e9c91815260200190565b5f604051808303815f87803b158015610eb3575f80fd5b505af1158015610ec5573d5f803e3d5ffd5b505050505f600954600754610eda91906120bd565b600954610ee790476121da565b610ef191906121f1565b600c546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610f29573d5f803e3d5ffd5b50600c546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610f60573d5f803e3d5ffd5b5050505050565b610f6f611851565b6006546001600160a01b0390811690821603610fd95760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b60648201526084016107c7565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290515f929163c45a01559160048083019260209291908290030181865afa158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190612142565b6001600160a01b031663e6a439053060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d99190612142565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611122573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111469190612142565b90506001600160a01b0381166112be5760065f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ca9190612142565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611229573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124d9190612142565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611297573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bb9190612142565b90505b6001600160a01b0381165f908152600f602052604090205460ff1615156001148015906112f357506001600160a01b03811615155b1561130357611303816001610955565b60065461131c9030906001600160a01b03165f19611522565b600e80546001600160a01b0319166001600160a01b039290921691909117905550565b611347611851565b6001600160a01b0382165f9081526010602052604090205481151560ff9091161515036113c95760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b60648201526084016107c7565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b61142f611851565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b611483611851565b60405133904780156108fc02915f818181858888f1935050505015801561084b573d5f803e3d5ffd5b6114b4611851565b6001600160a01b0381166115195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c7565b61084b816118aa565b6001600160a01b0383166115845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c7565b6001600160a01b0382166115e55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c7565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6116508484611451565b90505f1981146116b757818110156116aa5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107c7565b6116b78484848403611522565b50505050565b6001600160a01b0383165f9081526010602052604090205460ff161580156116fd57506001600160a01b0382165f9081526010602052604090205460ff16155b15611841576001600160a01b0382165f908152600f602052604090205460ff168061173f57506001600160a01b0383165f908152600f602052604090205460ff165b15611841575f80600754118061175657505f600854115b8061176257505f600954115b156117cf576127106009548361177891906121da565b61178291906121f1565b6127106008548461179391906121da565b61179d91906121f1565b612710600754856117ae91906121da565b6117b891906121f1565b6117c291906120bd565b6117cc91906120bd565b90505b600b54305f908152600160205260409020541180156117f1575060115460ff16155b801561181457506001600160a01b0383165f908152600f602052604090205460ff165b15611821576118216118f9565b801561183f57611832843083611d35565b61183c8183612244565b91505b505b61184c838383611d35565b505050565b5f546001600160a01b0316331461086c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6011805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106119395761193961212e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611990573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b49190612142565b816001815181106119c7576119c761212e565b6001600160a01b0392831660209182029290920101526006541663791ac947611a04306001600160a01b03165f9081526001602052604090205490565b5f8430426040518663ffffffff1660e01b8152600401611a2895949392919061219f565b5f604051808303815f87803b158015611a3f575f80fd5b505af1158015611a51573d5f803e3d5ffd5b505050505f600954600754600854611a6991906120bd565b611a7391906120bd565b600854611a8090476121da565b611a8a91906121f1565b6040805160028082526060820183529293505f9290916020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611af6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1a9190612142565b815f81518110611b2c57611b2c61212e565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110611b5d57611b5d61212e565b6001600160a01b03928316602091820292909201015260065460405163b6f9de9560e01b815291169063b6f9de95908490611ba2905f90869030904290600401612210565b5f604051808303818588803b158015611bb9575f80fd5b505af1158015611bcb573d5f803e3d5ffd5b5050600a546040516370a0823160e01b81523060048201526001600160a01b0390911693506342966c6892508391506370a0823190602401602060405180830381865afa158015611c1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4291906120fc565b6040518263ffffffff1660e01b8152600401611c6091815260200190565b5f604051808303815f87803b158015611c77575f80fd5b505af1158015611c89573d5f803e3d5ffd5b505050505f600954600754611c9e91906120bd565b600954611cab90476121da565b611cb591906121f1565b600c546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015611ced573d5f803e3d5ffd5b50600c546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015611d24573d5f803e3d5ffd5b50506011805460ff19169055505050565b6001600160a01b038316611d995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c7565b6001600160a01b038216611dfb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c7565b6001600160a01b0383165f9081526001602052604090205481811015611e725760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c7565b6001600160a01b038085165f90815260016020526040808220858503905591851681529081208054849290611ea89084906120bd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef491815260200190565b60405180910390a36116b7565b5f6020808352835180828501525f5b81811015611f2c57858101830151858201604001528201611f10565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084b575f80fd5b5f8060408385031215611f71575f80fd5b8235611f7c81611f4c565b946020939093013593505050565b5f805f60608486031215611f9c575f80fd5b8335611fa781611f4c565b92506020840135611fb781611f4c565b929592945050506040919091013590565b5f60208284031215611fd8575f80fd5b5035919050565b5f60208284031215611fef575f80fd5b8135611ffa81611f4c565b9392505050565b801515811461084b575f80fd5b5f806040838503121561201f575f80fd5b823561202a81611f4c565b9150602083013561203a81612001565b809150509250929050565b5f8060408385031215612056575f80fd5b823561206181611f4c565b9150602083013561203a81611f4c565b600181811c9082168061208557607f821691505b6020821081036120a357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610753576107536120a9565b602080825260129082015271043616e6e6f742065786365656420313030360741b604082015260600190565b5f6020828403121561210c575f80fd5b5051919050565b5f60208284031215612123575f80fd5b8151611ffa81612001565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612152575f80fd5b8151611ffa81611f4c565b5f8151808452602080850194508084015f5b838110156121945781516001600160a01b03168752958201959082019060010161216f565b509495945050505050565b85815284602082015260a060408201525f6121bd60a083018661215d565b6001600160a01b0394909416606083015250608001529392505050565b8082028115828204841417610753576107536120a9565b5f8261220b57634e487b7160e01b5f52601260045260245ffd5b500490565b848152608060208201525f612228608083018661215d565b6001600160a01b03949094166040830152506060015292915050565b81810381811115610753576107536120a956fea26469706673582212200ccaee847969bee882853c1763c323846b692715497287ebd5fa16431d85b80c64736f6c634300081500330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000de4b4c21e0fcb4c2ff2794cad0e82ef800da9a39000000000000000000000000ffcf2b0e8080722b12899cb5d7ed45e14ec99892000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d9

Deployed Bytecode

0x608060405260043610610215575f3560e01c806394a4ebd51161011e578063c0246668116100a8578063f287eada1161006d578063f287eada1461061f578063f2fde38b1461063e578063f6d7eade1461065d578063faa0a2641461067c578063fce589d81461069b575f80fd5b8063c024666814610599578063c3587980146105b8578063c824d807146105d7578063dd62ed3e146105ec578063e799ffb11461060b575f80fd5b8063a9059cbb116100ee578063a9059cbb146104fa578063ac5cad5614610519578063b62496f514610538578063b9413b5114610566578063b98b677f1461057a575f80fd5b806394a4ebd51461048957806395d89b41146104a8578063a457c2d7146104bc578063a7f7b36f146104db575f80fd5b80635d098b381161019f578063715018a61161016f578063715018a61461040657806375f0a8741461041a57806386917524146104395780638c9a5a311461044e5780638da5cb5b1461046d575f80fd5b80635d098b381461037f5780636402511e1461039e5780636b67c4df146103bd57806370a08231146103d2575f80fd5b806326991cc8116101e557806326991cc8146102b6578063313ce567146102ed57806339509351146103085780634bf2c7c9146103275780634fbee19314610348575f80fd5b806306fdde0314610220578063095ea7b31461024a57806318160ddd1461027957806323b872dd14610297575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b506102346106b0565b6040516102419190611f01565b60405180910390f35b348015610255575f80fd5b50610269610264366004611f60565b610740565b6040519015158152602001610241565b348015610284575f80fd5b506003545b604051908152602001610241565b3480156102a2575f80fd5b506102696102b1366004611f8a565b610759565b3480156102c1575f80fd5b50600e546102d5906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b3480156102f8575f80fd5b5060405160128152602001610241565b348015610313575f80fd5b50610269610322366004611f60565b61077c565b348015610332575f80fd5b50610346610341366004611fc8565b61079d565b005b348015610353575f80fd5b50610269610362366004611fdf565b6001600160a01b03165f9081526010602052604090205460ff1690565b34801561038a575f80fd5b50610346610399366004611fdf565b6107d5565b3480156103a9575f80fd5b506103466103b8366004611fc8565b61084e565b3480156103c8575f80fd5b5061028960095481565b3480156103dd575f80fd5b506102896103ec366004611fdf565b6001600160a01b03165f9081526001602052604090205490565b348015610411575f80fd5b5061034661085b565b348015610425575f80fd5b50600c546102d5906001600160a01b031681565b348015610444575f80fd5b50610289600b5481565b348015610459575f80fd5b50610346610468366004611fc8565b61086e565b348015610478575f80fd5b505f546001600160a01b03166102d5565b348015610494575f80fd5b506103466104a3366004611fc8565b61089d565b3480156104b3575f80fd5b506102346108cc565b3480156104c7575f80fd5b506102696104d6366004611f60565b6108db565b3480156104e6575f80fd5b506103466104f536600461200e565b610955565b348015610505575f80fd5b50610269610514366004611f60565b610a45565b348015610524575f80fd5b50610346610533366004611fdf565b610a52565b348015610543575f80fd5b50610269610552366004611fdf565b600f6020525f908152604090205460ff1681565b348015610571575f80fd5b50610346610b3a565b348015610585575f80fd5b50610346610594366004611fdf565b610f67565b3480156105a4575f80fd5b506103466105b336600461200e565b61133f565b3480156105c3575f80fd5b506103466105d2366004611fdf565b611427565b3480156105e2575f80fd5b5061028960075481565b3480156105f7575f80fd5b50610289610606366004612045565b611451565b348015610616575f80fd5b5061034661147b565b34801561062a575f80fd5b50600d546102d5906001600160a01b031681565b348015610649575f80fd5b50610346610658366004611fdf565b6114ac565b348015610668575f80fd5b506006546102d5906001600160a01b031681565b348015610687575f80fd5b50600a546102d5906001600160a01b031681565b3480156106a6575f80fd5b5061028960085481565b6060600480546106bf90612071565b80601f01602080910402602001604051908101604052809291908181526020018280546106eb90612071565b80156107365780601f1061070d57610100808354040283529160200191610736565b820191905f5260205f20905b81548152906001019060200180831161071957829003601f168201915b5050505050905090565b5f3361074d818585611522565b60019150505b92915050565b5f33610766858285611645565b6107718585856116bd565b506001949350505050565b5f3361074d81858561078e8383611451565b61079891906120bd565b611522565b6107a5611851565b6103e88111156107d05760405162461bcd60e51b81526004016107c7906120d0565b60405180910390fd5b600855565b6107dd611851565b600c546001600160a01b03165f908152601060205260409020805460ff19166001179055600c54610817906001600160a01b03165f61133f565b600c80546001600160a01b0319166001600160a01b0383169081179091555f908152601060205260409020805460ff191690555b50565b610856611851565b600b55565b610863611851565b61086c5f6118aa565b565b610876611851565b6103e88111156108985760405162461bcd60e51b81526004016107c7906120d0565b600955565b6108a5611851565b6103e88111156108c75760405162461bcd60e51b81526004016107c7906120d0565b600755565b6060600580546106bf90612071565b5f33816108e88286611451565b9050838110156109485760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107c7565b6107718286868403611522565b61095d611851565b6001600160a01b0382165f908152600f602052604090205481151560ff9091161515036109f25760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084016107c7565b6001600160a01b0382165f818152600f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f3361074d8185856116bd565b610a5a611851565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610aa6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aca91906120fc565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610b12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b369190612113565b5050565b610b42611851565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610b7557610b7561212e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf09190612142565b81600181518110610c0357610c0361212e565b6001600160a01b0392831660209182029290920101526006541663791ac947610c40306001600160a01b03165f9081526001602052604090205490565b5f8430426040518663ffffffff1660e01b8152600401610c6495949392919061219f565b5f604051808303815f87803b158015610c7b575f80fd5b505af1158015610c8d573d5f803e3d5ffd5b505050505f600954600754600854610ca591906120bd565b610caf91906120bd565b600854610cbc90476121da565b610cc691906121f1565b6040805160028082526060820183529293505f9290916020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610d32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d569190612142565b815f81518110610d6857610d6861212e565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110610d9957610d9961212e565b6001600160a01b03928316602091820292909201015260065460405163b6f9de9560e01b815291169063b6f9de95908490610dde905f90869030904290600401612210565b5f604051808303818588803b158015610df5575f80fd5b505af1158015610e07573d5f803e3d5ffd5b5050600a546040516370a0823160e01b81523060048201526001600160a01b0390911693506342966c6892508391506370a0823190602401602060405180830381865afa158015610e5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7e91906120fc565b6040518263ffffffff1660e01b8152600401610e9c91815260200190565b5f604051808303815f87803b158015610eb3575f80fd5b505af1158015610ec5573d5f803e3d5ffd5b505050505f600954600754610eda91906120bd565b600954610ee790476121da565b610ef191906121f1565b600c546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610f29573d5f803e3d5ffd5b50600c546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610f60573d5f803e3d5ffd5b5050505050565b610f6f611851565b6006546001600160a01b0390811690821603610fd95760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b60648201526084016107c7565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290515f929163c45a01559160048083019260209291908290030181865afa158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190612142565b6001600160a01b031663e6a439053060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d99190612142565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611122573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111469190612142565b90506001600160a01b0381166112be5760065f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ca9190612142565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611229573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124d9190612142565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015611297573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bb9190612142565b90505b6001600160a01b0381165f908152600f602052604090205460ff1615156001148015906112f357506001600160a01b03811615155b1561130357611303816001610955565b60065461131c9030906001600160a01b03165f19611522565b600e80546001600160a01b0319166001600160a01b039290921691909117905550565b611347611851565b6001600160a01b0382165f9081526010602052604090205481151560ff9091161515036113c95760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b60648201526084016107c7565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b61142f611851565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b611483611851565b60405133904780156108fc02915f818181858888f1935050505015801561084b573d5f803e3d5ffd5b6114b4611851565b6001600160a01b0381166115195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c7565b61084b816118aa565b6001600160a01b0383166115845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c7565b6001600160a01b0382166115e55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c7565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6116508484611451565b90505f1981146116b757818110156116aa5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107c7565b6116b78484848403611522565b50505050565b6001600160a01b0383165f9081526010602052604090205460ff161580156116fd57506001600160a01b0382165f9081526010602052604090205460ff16155b15611841576001600160a01b0382165f908152600f602052604090205460ff168061173f57506001600160a01b0383165f908152600f602052604090205460ff165b15611841575f80600754118061175657505f600854115b8061176257505f600954115b156117cf576127106009548361177891906121da565b61178291906121f1565b6127106008548461179391906121da565b61179d91906121f1565b612710600754856117ae91906121da565b6117b891906121f1565b6117c291906120bd565b6117cc91906120bd565b90505b600b54305f908152600160205260409020541180156117f1575060115460ff16155b801561181457506001600160a01b0383165f908152600f602052604090205460ff165b15611821576118216118f9565b801561183f57611832843083611d35565b61183c8183612244565b91505b505b61184c838383611d35565b505050565b5f546001600160a01b0316331461086c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6011805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106119395761193961212e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611990573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b49190612142565b816001815181106119c7576119c761212e565b6001600160a01b0392831660209182029290920101526006541663791ac947611a04306001600160a01b03165f9081526001602052604090205490565b5f8430426040518663ffffffff1660e01b8152600401611a2895949392919061219f565b5f604051808303815f87803b158015611a3f575f80fd5b505af1158015611a51573d5f803e3d5ffd5b505050505f600954600754600854611a6991906120bd565b611a7391906120bd565b600854611a8090476121da565b611a8a91906121f1565b6040805160028082526060820183529293505f9290916020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015611af6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1a9190612142565b815f81518110611b2c57611b2c61212e565b6001600160a01b039283166020918202929092010152600a54825191169082906001908110611b5d57611b5d61212e565b6001600160a01b03928316602091820292909201015260065460405163b6f9de9560e01b815291169063b6f9de95908490611ba2905f90869030904290600401612210565b5f604051808303818588803b158015611bb9575f80fd5b505af1158015611bcb573d5f803e3d5ffd5b5050600a546040516370a0823160e01b81523060048201526001600160a01b0390911693506342966c6892508391506370a0823190602401602060405180830381865afa158015611c1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c4291906120fc565b6040518263ffffffff1660e01b8152600401611c6091815260200190565b5f604051808303815f87803b158015611c77575f80fd5b505af1158015611c89573d5f803e3d5ffd5b505050505f600954600754611c9e91906120bd565b600954611cab90476121da565b611cb591906121f1565b600c546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015611ced573d5f803e3d5ffd5b50600c546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015611d24573d5f803e3d5ffd5b50506011805460ff19169055505050565b6001600160a01b038316611d995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c7565b6001600160a01b038216611dfb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c7565b6001600160a01b0383165f9081526001602052604090205481811015611e725760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107c7565b6001600160a01b038085165f90815260016020526040808220858503905591851681529081208054849290611ea89084906120bd565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ef491815260200190565b60405180910390a36116b7565b5f6020808352835180828501525f5b81811015611f2c57858101830151858201604001528201611f10565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084b575f80fd5b5f8060408385031215611f71575f80fd5b8235611f7c81611f4c565b946020939093013593505050565b5f805f60608486031215611f9c575f80fd5b8335611fa781611f4c565b92506020840135611fb781611f4c565b929592945050506040919091013590565b5f60208284031215611fd8575f80fd5b5035919050565b5f60208284031215611fef575f80fd5b8135611ffa81611f4c565b9392505050565b801515811461084b575f80fd5b5f806040838503121561201f575f80fd5b823561202a81611f4c565b9150602083013561203a81612001565b809150509250929050565b5f8060408385031215612056575f80fd5b823561206181611f4c565b9150602083013561203a81611f4c565b600181811c9082168061208557607f821691505b6020821081036120a357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610753576107536120a9565b602080825260129082015271043616e6e6f742065786365656420313030360741b604082015260600190565b5f6020828403121561210c575f80fd5b5051919050565b5f60208284031215612123575f80fd5b8151611ffa81612001565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612152575f80fd5b8151611ffa81611f4c565b5f8151808452602080850194508084015f5b838110156121945781516001600160a01b03168752958201959082019060010161216f565b509495945050505050565b85815284602082015260a060408201525f6121bd60a083018661215d565b6001600160a01b0394909416606083015250608001529392505050565b8082028115828204841417610753576107536120a9565b5f8261220b57634e487b7160e01b5f52601260045260245ffd5b500490565b848152608060208201525f612228608083018661215d565b6001600160a01b03949094166040830152506060015292915050565b81810381811115610753576107536120a956fea26469706673582212200ccaee847969bee882853c1763c323846b692715497287ebd5fa16431d85b80c64736f6c63430008150033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000de4b4c21e0fcb4c2ff2794cad0e82ef800da9a39000000000000000000000000ffcf2b0e8080722b12899cb5d7ed45e14ec99892000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d9

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _MarketingWallet (address): 0xDe4B4c21e0fCb4c2ff2794caD0E82EF800DA9a39
Arg [2] : _donationsWallet (address): 0xFfCF2b0e8080722B12899CB5D7ED45E14Ec99892
Arg [3] : initialSupply (uint256): 1000000000
Arg [4] : _burnToken (address): 0x9813037ee2218799597d83D4a5B6F3b6778218d9

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000de4b4c21e0fcb4c2ff2794cad0e82ef800da9a39
Arg [2] : 000000000000000000000000ffcf2b0e8080722b12899cb5d7ed45e14ec99892
Arg [3] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [4] : 0000000000000000000000009813037ee2218799597d83d4a5b6f3b6778218d9


Deployed Bytecode Sourcemap

22870:8194:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8512:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10863:201;;;;;;;;;;-1:-1:-1;10863:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10863:201:0;1023:187:1;9632:108:0;;;;;;;;;;-1:-1:-1;9720:12:0;;9632:108;;;1361:25:1;;;1349:2;1334:18;9632:108:0;1215:177:1;11644:295:0;;;;;;;;;;-1:-1:-1;11644:295:0;;;;;:::i;:::-;;:::i;23239:23::-;;;;;;;;;;-1:-1:-1;23239:23:0;;;;-1:-1:-1;;;;;23239:23:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;23239:23:0;1858:203:1;9474:93:0;;;;;;;;;;-1:-1:-1;9474:93:0;;9557:2;2208:36:1;;2196:2;2181:18;9474:93:0;2066:184:1;12348:238:0;;;;;;;;;;-1:-1:-1;12348:238:0;;;;;:::i;:::-;;:::i;24388:155::-;;;;;;;;;;-1:-1:-1;24388:155:0;;;;;:::i;:::-;;:::i;:::-;;26524:125;;;;;;;;;;-1:-1:-1;26524:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;26613:28:0;26589:4;26613:28;;;:19;:28;;;;;;;;;26524:125;24743:336;;;;;;;;;;-1:-1:-1;24743:336:0;;;;;:::i;:::-;;:::i;26657:120::-;;;;;;;;;;-1:-1:-1;26657:120:0;;;;;:::i;:::-;;:::i;23049:27::-;;;;;;;;;;;;;;;;9803:127;;;;;;;;;;-1:-1:-1;9803:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9904:18:0;9877:7;9904:18;;;:9;:18;;;;;;;9803:127;21181:103;;;;;;;;;;;;;:::i;23148:39::-;;;;;;;;;;-1:-1:-1;23148:39:0;;;;-1:-1:-1;;;;;23148:39:0;;;23114:27;;;;;;;;;;;;;;;;24551:180;;;;;;;;;;-1:-1:-1;24551:180:0;;;;;:::i;:::-;;:::i;20533:87::-;;;;;;;;;;-1:-1:-1;20579:7:0;20606:6;-1:-1:-1;;;;;20606:6:0;20533:87;;24196:180;;;;;;;;;;-1:-1:-1;24196:180:0;;;;;:::i;:::-;;:::i;8731:104::-;;;;;;;;;;;;;:::i;13089:436::-;;;;;;;;;;-1:-1:-1;13089:436:0;;;;;:::i;:::-;;:::i;25509:315::-;;;;;;;;;;-1:-1:-1;25509:315:0;;;;;:::i;:::-;;:::i;10136:193::-;;;;;;;;;;-1:-1:-1;10136:193:0;;;;;:::i;:::-;;:::i;30776:181::-;;;;;;;;;;-1:-1:-1;30776:181:0;;;;;:::i;:::-;;:::i;23269:58::-;;;;;;;;;;-1:-1:-1;23269:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;29314:1318;;;;;;;;;;;;;:::i;25835:677::-;;;;;;;;;;-1:-1:-1;25835:677:0;;;;;:::i;:::-;;:::i;25207:290::-;;;;;;;;;;-1:-1:-1;25207:290:0;;;;;:::i;:::-;;:::i;25087:108::-;;;;;;;;;;-1:-1:-1;25087:108:0;;;;;:::i;:::-;;:::i;22986:27::-;;;;;;;;;;;;;;;;10392:151;;;;;;;;;;-1:-1:-1;10392:151:0;;;;;:::i;:::-;;:::i;30644:120::-;;;;;;;;;;;;;:::i;23194:38::-;;;;;;;;;;-1:-1:-1;23194:38:0;;;;-1:-1:-1;;;;;23194:38:0;;;21439:201;;;;;;;;;;-1:-1:-1;21439:201:0;;;;;:::i;:::-;;:::i;22952:21::-;;;;;;;;;;-1:-1:-1;22952:21:0;;;;-1:-1:-1;;;;;22952:21:0;;;23083:24;;;;;;;;;;-1:-1:-1;23083:24:0;;;;-1:-1:-1;;;;;23083:24:0;;;23020:22;;;;;;;;;;;;;;;;8512:100;8566:13;8599:5;8592:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8512:100;:::o;10863:201::-;10946:4;6232:10;11002:32;6232:10;11018:7;11027:6;11002:8;:32::i;:::-;11052:4;11045:11;;;10863:201;;;;;:::o;11644:295::-;11775:4;6232:10;11833:38;11849:4;6232:10;11864:6;11833:15;:38::i;:::-;11882:27;11892:4;11898:2;11902:6;11882:9;:27::i;:::-;-1:-1:-1;11927:4:0;;11644:295;-1:-1:-1;;;;11644:295:0:o;12348:238::-;12436:4;6232:10;12492:64;6232:10;12508:7;12545:10;12517:25;6232:10;12508:7;12517:9;:25::i;:::-;:38;;;;:::i;:::-;12492:8;:64::i;24388:155::-;20419:13;:11;:13::i;:::-;24478:4:::1;24463:11;:19;;24455:50;;;;-1:-1:-1::0;;;24455:50:0::1;;;;;;;:::i;:::-;;;;;;;;;24514:7;:21:::0;24388:155::o;24743:336::-;20419:13;:11;:13::i;:::-;24860:15:::1;::::0;-1:-1:-1;;;;;24860:15:0::1;24840:36;::::0;;;:19:::1;:36;::::0;;;;:43;;-1:-1:-1;;24840:43:0::1;24879:4;24840:43;::::0;;24901:15:::1;::::0;24885:39:::1;::::0;-1:-1:-1;;;;;24901:15:0::1;;24885;:39::i;:::-;24935:15;:36:::0;;-1:-1:-1;;;;;;24935:36:0::1;-1:-1:-1::0;;;;;24935:36:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;24987:36:0;;;:19:::1;:36;::::0;;;;:44;;-1:-1:-1;;24987:44:0::1;::::0;;25033:38:::1;24743:336:::0;:::o;26657:120::-;20419:13;:11;:13::i;:::-;26738:12:::1;:31:::0;26657:120::o;21181:103::-;20419:13;:11;:13::i;:::-;21246:30:::1;21273:1;21246:18;:30::i;:::-;21181:103::o:0;24551:180::-;20419:13;:11;:13::i;:::-;24656:4:::1;24636:16;:24;;24628:55;;;;-1:-1:-1::0;;;24628:55:0::1;;;;;;;:::i;:::-;24692:12;:31:::0;24551:180::o;24196:::-;20419:13;:11;:13::i;:::-;24301:4:::1;24281:16;:24;;24273:55;;;;-1:-1:-1::0;;;24273:55:0::1;;;;;;;:::i;:::-;24337:12;:31:::0;24196:180::o;8731:104::-;8787:13;8820:7;8813:14;;;;;:::i;13089:436::-;13182:4;6232:10;13182:4;13265:25;6232:10;13282:7;13265:9;:25::i;:::-;13238:52;;13329:15;13309:16;:35;;13301:85;;;;-1:-1:-1;;;13301:85:0;;5498:2:1;13301:85:0;;;5480:21:1;5537:2;5517:18;;;5510:30;5576:34;5556:18;;;5549:62;-1:-1:-1;;;5627:18:1;;;5620:35;5672:19;;13301:85:0;5296:401:1;13301:85:0;13422:60;13431:5;13438:7;13466:15;13447:16;:34;13422:8;:60::i;25509:315::-;20419:13;:11;:13::i;:::-;-1:-1:-1;;;;;25609:31:0;::::1;;::::0;;;:25:::1;:31;::::0;;;;;:40;::::1;;:31;::::0;;::::1;:40;;::::0;25601:109:::1;;;::::0;-1:-1:-1;;;25601:109:0;;5904:2:1;25601:109:0::1;::::0;::::1;5886:21:1::0;5943:2;5923:18;;;5916:30;5982:34;5962:18;;;5955:62;6053:26;6033:18;;;6026:54;6097:19;;25601:109:0::1;5702:420:1::0;25601:109:0::1;-1:-1:-1::0;;;;;25721:31:0;::::1;;::::0;;;:25:::1;:31;::::0;;;;;:39;;-1:-1:-1;;25721:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;25776:40;;25721:39;;:31;25776:40:::1;::::0;::::1;25509:315:::0;;:::o;10136:193::-;10215:4;6232:10;10271:28;6232:10;10288:2;10292:6;10271:9;:28::i;30776:181::-;20419:13;:11;:13::i;:::-;30899:45:::1;::::0;-1:-1:-1;;;30899:45:0;;30938:4:::1;30899:45;::::0;::::1;2004:51:1::0;-1:-1:-1;;;;;30857:29:0;::::1;::::0;::::1;::::0;30887:10:::1;::::0;30857:29;;30899:30:::1;::::0;1977:18:1;;30899:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30857:88;::::0;-1:-1:-1;;;;;;30857:88:0::1;::::0;;;;;;-1:-1:-1;;;;;6508:32:1;;;30857:88:0::1;::::0;::::1;6490:51:1::0;6557:18;;;6550:34;6463:18;;30857:88:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;30776:181:::0;:::o;29314:1318::-;20419:13;:11;:13::i;:::-;29401:16:::1;::::0;;29415:1:::1;29401:16:::0;;;;;::::1;::::0;;29377:21:::1;::::0;29401:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;29401:16:0::1;29377:40;;29450:4;29432;29437:1;29432:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29432:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;29480:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;29480:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;29432:7;;29480:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29470:4;29475:1;29470:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29470:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;29514:6:::1;::::0;::::1;:57;29594:24;29612:4;-1:-1:-1::0;;;;;9904:18:0;9877:7;9904:18;;;:9;:18;;;;;;;9803:127;29594:24:::1;29641:1;29665:4;29700;29728:15;29514:248;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;29779:18;29860:12;;29845;;29835:7;;:22;;;;:::i;:::-;:37;;;;:::i;:::-;29824:7;::::0;29800:31:::1;::::0;:21:::1;:31;:::i;:::-;:73;;;;:::i;:::-;29927:16;::::0;;29941:1:::1;29927:16:::0;;;;;::::1;::::0;;29779:94;;-1:-1:-1;29902:22:0::1;::::0;29927:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;29969:6:0::1;::::0;:13:::1;::::0;;-1:-1:-1;;;29969:13:0;;;;29902:41;;-1:-1:-1;;;;;;29969:6:0;;::::1;::::0;:11:::1;::::0;-1:-1:-1;29969:13:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29958:5;29964:1;29958:8;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;29958:24:0;;::::1;:8;::::0;;::::1;::::0;;;;;:24;30008:9:::1;::::0;29997:8;;30008:9;::::1;::::0;29997:5;;30008:9;;29997:8;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;29997:20:0;;::::1;:8;::::0;;::::1;::::0;;;;;:20;30038:6:::1;::::0;:222:::1;::::0;-1:-1:-1;;;30038:222:0;;:6;::::1;::::0;:57:::1;::::0;30103:10;;30038:222:::1;::::0;:6:::1;::::0;30162:5;;30198:4:::1;::::0;30226:15:::1;::::0;30038:222:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;30311:9:0::1;::::0;30327:41:::1;::::0;-1:-1:-1;;;30327:41:0;;30362:4:::1;30327:41;::::0;::::1;2004:51:1::0;-1:-1:-1;;;;;30311:9:0;;::::1;::::0;-1:-1:-1;30301:25:0::1;::::0;-1:-1:-1;30311:9:0;;-1:-1:-1;30327:26:0::1;::::0;1977:18:1;;30327:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30301:68;;;;;;;;;;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;30301:68:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;30386:23;30468:12;;30453;;:27;;;;:::i;:::-;30436:12;::::0;30412:36:::1;::::0;:21:::1;:36;:::i;:::-;:70;;;;:::i;:::-;30507:15;::::0;30499:50:::1;::::0;30386:96;;-1:-1:-1;;;;;;30507:15:0::1;::::0;30499:50;::::1;;;::::0;30386:96;;30507:15:::1;30499:50:::0;30507:15;30499:50;30386:96;30507:15;30499:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;30572:15:0::1;::::0;30564:56:::1;::::0;-1:-1:-1;;;;;30572:15:0;;::::1;::::0;30598:21:::1;30564:56:::0;::::1;;;::::0;30572:15:::1;30564:56:::0;30572:15;30564:56;30598:21;30572:15;30564:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;29362:1270;;;;29314:1318::o:0;25835:677::-;20419:13;:11;:13::i;:::-;25939:6:::1;::::0;-1:-1:-1;;;;;25939:6:0;;::::1;25917:29:::0;;::::1;::::0;25909:77:::1;;;::::0;-1:-1:-1;;;25909:77:0;;9530:2:1;25909:77:0::1;::::0;::::1;9512:21:1::0;9569:2;9549:18;;;9542:30;9608:34;9588:18;;;9581:62;-1:-1:-1;;;9659:18:1;;;9652:33;9702:19;;25909:77:0::1;9328:399:1::0;25909:77:0::1;25997:6;:28:::0;;-1:-1:-1;;;;;;25997:28:0::1;-1:-1:-1::0;;;;;25997:28:0;::::1;::::0;;::::1;::::0;;;26063:16:::1;::::0;;-1:-1:-1;;;26063:16:0;;;;-1:-1:-1;;25997:28:0;26063:14:::1;::::0;:16:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;25997:28;26063:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26054:48:0::1;;26111:4;26118:6;;;;;;;;;-1:-1:-1::0;;;;;26118:6:0::1;-1:-1:-1::0;;;;;26118:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26054:78;::::0;-1:-1:-1;;;;;;26054:78:0::1;::::0;;;;;;-1:-1:-1;;;;;9962:15:1;;;26054:78:0::1;::::0;::::1;9944:34:1::0;10014:15;;9994:18;;;9987:43;9879:18;;26054:78:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26036:96:::0;-1:-1:-1;;;;;;26146:21:0;::::1;26143:103;;26188:6;;;;;;;;;-1:-1:-1::0;;;;;26188:6:0::1;-1:-1:-1::0;;;;;26188:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26179:37:0::1;;26225:4;26232:6;;;;;;;;;-1:-1:-1::0;;;;;26232:6:0::1;-1:-1:-1::0;;;;;26232:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26179:67;::::0;-1:-1:-1;;;;;;26179:67:0::1;::::0;;;;;;-1:-1:-1;;;;;9962:15:1;;;26179:67:0::1;::::0;::::1;9944:34:1::0;10014:15;;9994:18;;;9987:43;9879:18;;26179:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26169:77;;26143:103;-1:-1:-1::0;;;;;26261:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;::::1;;:42;;:34:::0;:42:::1;::::0;::::1;::::0;:67:::1;;-1:-1:-1::0;;;;;;26307:21:0;::::1;::::0;::::1;26261:67;26257:143;;;26345:43;26374:7;26383:4;26345:28;:43::i;:::-;26444:6;::::0;26412:53:::1;::::0;26429:4:::1;::::0;-1:-1:-1;;;;;26444:6:0::1;-1:-1:-1::0;;26412:8:0::1;:53::i;:::-;26486:8;:18:::0;;-1:-1:-1;;;;;;26486:18:0::1;-1:-1:-1::0;;;;;26486:18:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;25835:677:0:o;25207:290::-;20419:13;:11;:13::i;:::-;-1:-1:-1;;;;;25300:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;:40;::::1;;:28;::::0;;::::1;:40;;::::0;25292:95:::1;;;::::0;-1:-1:-1;;;25292:95:0;;10243:2:1;25292:95:0::1;::::0;::::1;10225:21:1::0;10282:2;10262:18;;;10255:30;10321:34;10301:18;;;10294:62;-1:-1:-1;;;10372:18:1;;;10365:40;10422:19;;25292:95:0::1;10041:406:1::0;25292:95:0::1;-1:-1:-1::0;;;;;25398:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;25398:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;25455:34;;1163:41:1;;;25455:34:0::1;::::0;1136:18:1;25455:34:0::1;;;;;;;25207:290:::0;;:::o;25087:108::-;20419:13;:11;:13::i;:::-;25162:9:::1;:25:::0;;-1:-1:-1;;;;;;25162:25:0::1;-1:-1:-1::0;;;;;25162:25:0;;;::::1;::::0;;;::::1;::::0;;25087:108::o;10392:151::-;-1:-1:-1;;;;;10508:18:0;;;10481:7;10508:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10392:151::o;30644:120::-;20419:13;:11;:13::i;:::-;30701:51:::1;::::0;30709:10:::1;::::0;30730:21:::1;30701:51:::0;::::1;;;::::0;::::1;::::0;;;30730:21;30709:10;30701:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;21439:201:::0;20419:13;:11;:13::i;:::-;-1:-1:-1;;;;;21528:22:0;::::1;21520:73;;;::::0;-1:-1:-1;;;21520:73:0;;10654:2:1;21520:73:0::1;::::0;::::1;10636:21:1::0;10693:2;10673:18;;;10666:30;10732:34;10712:18;;;10705:62;-1:-1:-1;;;10783:18:1;;;10776:36;10829:19;;21520:73:0::1;10452:402:1::0;21520:73:0::1;21604:28;21623:8;21604:18;:28::i;16714:380::-:0;-1:-1:-1;;;;;16850:19:0;;16842:68;;;;-1:-1:-1;;;16842:68:0;;11061:2:1;16842:68:0;;;11043:21:1;11100:2;11080:18;;;11073:30;11139:34;11119:18;;;11112:62;-1:-1:-1;;;11190:18:1;;;11183:34;11234:19;;16842:68:0;10859:400:1;16842:68:0;-1:-1:-1;;;;;16929:21:0;;16921:68;;;;-1:-1:-1;;;16921:68:0;;11466:2:1;16921:68:0;;;11448:21:1;11505:2;11485:18;;;11478:30;11544:34;11524:18;;;11517:62;-1:-1:-1;;;11595:18:1;;;11588:32;11637:19;;16921:68:0;11264:398:1;16921:68:0;-1:-1:-1;;;;;17002:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17054:32;;1361:25:1;;;17054:32:0;;1334:18:1;17054:32:0;;;;;;;16714:380;;;:::o;17385:453::-;17520:24;17547:25;17557:5;17564:7;17547:9;:25::i;:::-;17520:52;;-1:-1:-1;;17587:16:0;:37;17583:248;;17669:6;17649:16;:26;;17641:68;;;;-1:-1:-1;;;17641:68:0;;11869:2:1;17641:68:0;;;11851:21:1;11908:2;11888:18;;;11881:30;11947:31;11927:18;;;11920:59;11996:18;;17641:68:0;11667:353:1;17641:68:0;17753:51;17762:5;17769:7;17797:6;17778:16;:25;17753:8;:51::i;:::-;17509:329;17385:453;;;:::o;26943:1016::-;-1:-1:-1;;;;;27169:25:0;;;;;;:19;:25;;;;;;;;27168:26;:54;;;;-1:-1:-1;;;;;;27199:23:0;;;;;;:19;:23;;;;;;;;27198:24;27168:54;27165:736;;;-1:-1:-1;;;;;27244:29:0;;;;;;:25;:29;;;;;;;;;:64;;-1:-1:-1;;;;;;27277:31:0;;;;;;:25;:31;;;;;;;;27244:64;27241:644;;;27329:16;27381:1;27367:12;;:15;:29;;;;27395:1;27386:7;;:10;27367:29;:48;;;;27414:1;27400:12;;:15;27367:48;27364:151;;;27510:5;27496:12;;27487:6;:21;;;;:::i;:::-;27486:29;;;;:::i;:::-;27478:5;27469:7;;27460:6;:16;;;;:::i;:::-;27459:24;;;;:::i;:::-;27451:5;27437:12;;27428:6;:21;;;;:::i;:::-;27427:29;;;;:::i;:::-;:56;;;;:::i;:::-;:88;;;;:::i;:::-;27417:98;;27364:151;27585:12;;27576:4;9877:7;9904:18;;;:9;:18;;;;;;27558:39;:60;;;;-1:-1:-1;27602:16:0;;;;27601:17;27558:60;:93;;;;-1:-1:-1;;;;;;27622:29:0;;;;;;:25;:29;;;;;;;;27558:93;27554:109;;;27653:10;:8;:10::i;:::-;27704:12;;27700:152;;27739:46;27755:4;27769;27776:8;27739:15;:46::i;:::-;27815:17;27824:8;27815:6;:17;:::i;:::-;27806:26;;27700:152;27310:575;27241:644;27909:33;27925:4;27931:2;27935:6;27909:15;:33::i;:::-;26943:1016;;;:::o;20698:132::-;20579:7;20606:6;-1:-1:-1;;;;;20606:6:0;6232:10;20762:23;20754:68;;;;-1:-1:-1;;;20754:68:0;;12360:2:1;20754:68:0;;;12342:21:1;;;12379:18;;;12372:30;12438:34;12418:18;;;12411:62;12490:18;;20754:68:0;12158:356:1;21800:191:0;21874:16;21893:6;;-1:-1:-1;;;;;21910:17:0;;;-1:-1:-1;;;;;;21910:17:0;;;;;;21943:40;;21893:6;;;;;;;21943:40;;21874:16;21943:40;21863:128;21800:191;:::o;27967:1335::-;26853:16;:23;;-1:-1:-1;;26853:23:0;26872:4;26853:23;;;28053:16:::1;::::0;;28067:1:::1;28053:16:::0;;;;;::::1;::::0;;-1:-1:-1;;28053:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;28053:16:0::1;28029:40;;28102:4;28084;28089:1;28084:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;28084:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;28132:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;28132:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;28084:7;;28132:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28122:4;28127:1;28122:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;28122:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;28166:6:::1;::::0;::::1;:57;28246:24;28264:4;-1:-1:-1::0;;;;;9904:18:0;9877:7;9904:18;;;:9;:18;;;;;;;9803:127;28246:24:::1;28293:1;28317:4;28352;28380:15;28166:248;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28431:18;28512:12;;28497;;28487:7;;:22;;;;:::i;:::-;:37;;;;:::i;:::-;28476:7;::::0;28452:31:::1;::::0;:21:::1;:31;:::i;:::-;:73;;;;:::i;:::-;28579:16;::::0;;28593:1:::1;28579:16:::0;;;;;::::1;::::0;;28431:94;;-1:-1:-1;28554:22:0::1;::::0;28579:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;28621:6:0::1;::::0;:13:::1;::::0;;-1:-1:-1;;;28621:13:0;;;;28554:41;;-1:-1:-1;;;;;;28621:6:0;;::::1;::::0;:11:::1;::::0;-1:-1:-1;28621:13:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28610:5;28616:1;28610:8;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;28610:24:0;;::::1;:8;::::0;;::::1;::::0;;;;;:24;28660:9:::1;::::0;28649:8;;28660:9;::::1;::::0;28649:5;;28660:9;;28649:8;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;28649:20:0;;::::1;:8;::::0;;::::1;::::0;;;;;:20;28690:6:::1;::::0;:222:::1;::::0;-1:-1:-1;;;28690:222:0;;:6;::::1;::::0;:57:::1;::::0;28755:10;;28690:222:::1;::::0;:6:::1;::::0;28814:5;;28850:4:::1;::::0;28878:15:::1;::::0;28690:222:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;28963:9:0::1;::::0;28979:41:::1;::::0;-1:-1:-1;;;28979:41:0;;29014:4:::1;28979:41;::::0;::::1;2004:51:1::0;-1:-1:-1;;;;;28963:9:0;;::::1;::::0;-1:-1:-1;28953:25:0::1;::::0;-1:-1:-1;28963:9:0;;-1:-1:-1;28979:26:0::1;::::0;1977:18:1;;28979:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28953:68;;;;;;;;;;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;28953:68:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;29038:23;29120:12;;29105;;:27;;;;:::i;:::-;29088:12;::::0;29064:36:::1;::::0;:21:::1;:36;:::i;:::-;:70;;;;:::i;:::-;29159:15;::::0;29151:50:::1;::::0;29038:96;;-1:-1:-1;;;;;;29159:15:0::1;::::0;29151:50;::::1;;;::::0;29038:96;;29159:15:::1;29151:50:::0;29159:15;29151:50;29038:96;29159:15;29151:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;29224:15:0::1;::::0;29216:56:::1;::::0;-1:-1:-1;;;;;29224:15:0;;::::1;::::0;29250:21:::1;29216:56:::0;::::1;;;::::0;29224:15:::1;29216:56:::0;29224:15;29216:56;29250:21;29224:15;29216:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;26899:16:0;:24;;-1:-1:-1;;26899:24:0;;;-1:-1:-1;;;27967:1335:0:o;13995:671::-;-1:-1:-1;;;;;14126:18:0;;14118:68;;;;-1:-1:-1;;;14118:68:0;;12721:2:1;14118:68:0;;;12703:21:1;12760:2;12740:18;;;12733:30;12799:34;12779:18;;;12772:62;-1:-1:-1;;;12850:18:1;;;12843:35;12895:19;;14118:68:0;12519:401:1;14118:68:0;-1:-1:-1;;;;;14205:16:0;;14197:64;;;;-1:-1:-1;;;14197:64:0;;13127:2:1;14197:64:0;;;13109:21:1;13166:2;13146:18;;;13139:30;13205:34;13185:18;;;13178:62;-1:-1:-1;;;13256:18:1;;;13249:33;13299:19;;14197:64:0;12925:399:1;14197:64:0;-1:-1:-1;;;;;14347:15:0;;14325:19;14347:15;;;:9;:15;;;;;;14381:21;;;;14373:72;;;;-1:-1:-1;;;14373:72:0;;13531:2:1;14373:72:0;;;13513:21:1;13570:2;13550:18;;;13543:30;13609:34;13589:18;;;13582:62;-1:-1:-1;;;13660:18:1;;;13653:36;13706:19;;14373:72:0;13329:402:1;14373:72:0;-1:-1:-1;;;;;14481:15:0;;;;;;;:9;:15;;;;;;14499:20;;;14481:38;;14541:13;;;;;;;;:23;;14513:6;;14481:15;14541:23;;14513:6;;14541:23;:::i;:::-;;;;;;;;14597:2;-1:-1:-1;;;;;14582:26:0;14591:4;-1:-1:-1;;;;;14582:26:0;;14601:6;14582:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;14582:26:0;;;;;;;;14621:37;26943:1016;14:548:1;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:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:180::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;-1:-1:-1;2406:23:1;;2255:180;-1:-1:-1;2255:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;:::-;2676:5;2440:247;-1:-1:-1;;;2440:247:1:o;3176:118::-;3262:5;3255:13;3248:21;3241:5;3238:32;3228:60;;3284:1;3281;3274:12;3299:382;3364:6;3372;3425:2;3413:9;3404:7;3400:23;3396:32;3393:52;;;3441:1;3438;3431:12;3393:52;3480:9;3467:23;3499:31;3524:5;3499:31;:::i;:::-;3549:5;-1:-1:-1;3606:2:1;3591:18;;3578:32;3619:30;3578:32;3619:30;:::i;:::-;3668:7;3658:17;;;3299:382;;;;;:::o;3686:388::-;3754:6;3762;3815:2;3803:9;3794:7;3790:23;3786:32;3783:52;;;3831:1;3828;3821:12;3783:52;3870:9;3857:23;3889:31;3914:5;3889:31;:::i;:::-;3939:5;-1:-1:-1;3996:2:1;3981:18;;3968:32;4009:33;3968:32;4009:33;:::i;4302:380::-;4381:1;4377:12;;;;4424;;;4445:61;;4499:4;4491:6;4487:17;4477:27;;4445:61;4552:2;4544:6;4541:14;4521:18;4518:38;4515:161;;4598:10;4593:3;4589:20;4586:1;4579:31;4633:4;4630:1;4623:15;4661:4;4658:1;4651:15;4515:161;;4302:380;;;:::o;4687:127::-;4748:10;4743:3;4739:20;4736:1;4729:31;4779:4;4776:1;4769:15;4803:4;4800:1;4793:15;4819:125;4884:9;;;4905:10;;;4902:36;;;4918:18;;:::i;4949:342::-;5151:2;5133:21;;;5190:2;5170:18;;;5163:30;-1:-1:-1;;;5224:2:1;5209:18;;5202:48;5282:2;5267:18;;4949:342::o;6127:184::-;6197:6;6250:2;6238:9;6229:7;6225:23;6221:32;6218:52;;;6266:1;6263;6256:12;6218:52;-1:-1:-1;6289:16:1;;6127:184;-1:-1:-1;6127:184:1:o;6595:245::-;6662:6;6715:2;6703:9;6694:7;6690:23;6686:32;6683:52;;;6731:1;6728;6721:12;6683:52;6763:9;6757:16;6782:28;6804:5;6782:28;:::i;6977:127::-;7038:10;7033:3;7029:20;7026:1;7019:31;7069:4;7066:1;7059:15;7093:4;7090:1;7083:15;7109:251;7179:6;7232:2;7220:9;7211:7;7207:23;7203:32;7200:52;;;7248:1;7245;7238:12;7200:52;7280:9;7274:16;7299:31;7324:5;7299:31;:::i;7365:461::-;7418:3;7456:5;7450:12;7483:6;7478:3;7471:19;7509:4;7538:2;7533:3;7529:12;7522:19;;7575:2;7568:5;7564:14;7596:1;7606:195;7620:6;7617:1;7614:13;7606:195;;;7685:13;;-1:-1:-1;;;;;7681:39:1;7669:52;;7741:12;;;;7776:15;;;;7717:1;7635:9;7606:195;;;-1:-1:-1;7817:3:1;;7365:461;-1:-1:-1;;;;;7365:461:1:o;7831:582::-;8130:6;8119:9;8112:25;8173:6;8168:2;8157:9;8153:18;8146:34;8216:3;8211:2;8200:9;8196:18;8189:31;8093:4;8237:57;8289:3;8278:9;8274:19;8266:6;8237:57;:::i;:::-;-1:-1:-1;;;;;8330:32:1;;;;8325:2;8310:18;;8303:60;-1:-1:-1;8394:3:1;8379:19;8372:35;8229:65;7831:582;-1:-1:-1;;;7831:582:1:o;8418:168::-;8491:9;;;8522;;8539:15;;;8533:22;;8519:37;8509:71;;8560:18;;:::i;8591:217::-;8631:1;8657;8647:132;;8701:10;8696:3;8692:20;8689:1;8682:31;8736:4;8733:1;8726:15;8764:4;8761:1;8754:15;8647:132;-1:-1:-1;8793:9:1;;8591:217::o;8813:510::-;9084:6;9073:9;9066:25;9127:3;9122:2;9111:9;9107:18;9100:31;9047:4;9148:57;9200:3;9189:9;9185:19;9177:6;9148:57;:::i;:::-;-1:-1:-1;;;;;9241:32:1;;;;9236:2;9221:18;;9214:60;-1:-1:-1;9305:2:1;9290:18;9283:34;9140:65;8813:510;-1:-1:-1;;8813:510:1:o;12025:128::-;12092:9;;;12113:11;;;12110:37;;;12127:18;;:::i

Swarm Source

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