ETH Price: $2,078.58 (+0.99%)
 

Overview

Max Total Supply

2,453,561,516.549261965906159844 Baseforever Token

Holders

5,930

Transfers

-
518 ( 9.98%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BaseforeverToken

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2025-10-25
*/

// $$$$$$$\                                 $$$$$$\                                                             
// $$  __$$\                               $$  __$$\                                                            
// $$ |  $$ | $$$$$$\   $$$$$$$\  $$$$$$\  $$ /  \__|$$$$$$\   $$$$$$\   $$$$$$\ $$\    $$\  $$$$$$\   $$$$$$\  
// $$$$$$$\ | \____$$\ $$  _____|$$  __$$\ $$$$\    $$  __$$\ $$  __$$\ $$  __$$\\$$\  $$  |$$  __$$\ $$  __$$\ 
// $$  __$$\  $$$$$$$ |\$$$$$$\  $$$$$$$$ |$$  _|   $$ /  $$ |$$ |  \__|$$$$$$$$ |\$$\$$  / $$$$$$$$ |$$ |  \__|
// $$ |  $$ |$$  __$$ | \____$$\ $$   ____|$$ |     $$ |  $$ |$$ |      $$   ____| \$$$  /  $$   ____|$$ |      
// $$$$$$$  |\$$$$$$$ |$$$$$$$  |\$$$$$$$\ $$ |     \$$$$$$  |$$ |      \$$$$$$$\   \$  /   \$$$$$$$\ $$ |      
// \_______/  \_______|\_______/  \_______|\__|      \______/ \__|       \_______|   \_/     \_______|\__|      
                                                                                                             
                                                                                                             
//Official Website: https://baseforever.io/ 
// Staking Webiste: https://stake.baseforever.io/

//Socials
 // X Account      : https://x.com/baseforever_off
 // Telegram       : https://t.me/baseforeverofficiall
 // Youtube        : https://www.youtube.com/@baseforeverofficial                                                                                                        
                                                                                                            
                                                                                                            



// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;


/**
 * @dev Provides information about the current execution context
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Contract module which provides a basic access control mechanism
 */
abstract contract Ownable is Context {
    address private _owner;

    error OwnableUnauthorizedAccount(address account);
    error OwnableInvalidOwner(address owner);

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

    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

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

 

/**
 * @title BaseforeverToken
 * @dev Reflection token with minting, vesting, and configurable buy/sell fees
 */
contract BaseforeverToken is Ownable {
    
    // ERC20 standard details
    string private constant _name = "Baseforever";
    string private constant _symbol = "Baseforever Token";
    uint8 private constant _decimals = 18;
    
    // Reflection mechanism variables
    uint256 private _tTotal;
    uint256 private _rTotal;
    uint256 private _tFeeTotal;
    
    // Mapping for reflected and standard balances
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    
    // Excluded addresses from reflections
    mapping(address => bool) private _isExcluded;
    address[] private _excluded;
    uint256 public constant MAX_EXCLUDED = 50; // Prevent gas griefing
    
    // Fee structure (in basis points, 100 = 1%)
    uint256 public buyFee = 0;           // 0% initially
    uint256 public sellFee = 1000;       // 10% initially
    uint256 public constant MAX_FEE = 2500; // 25% maximum
    
    // Fee distribution percentages (out of total fee)
    uint256 public reflectionPortion = 50;   // 50% of fee goes to reflection
    uint256 public marketingPortion = 25;    // 25% of fee goes to marketing
    uint256 public burnPortion = 25;         // 25% of fee goes to burn

    // Token allocation constants (in wei)
    uint256 public constant TOTAL_SUPPLY = 10_000_000_000 ether;
    uint256 public constant INITIAL_MINT = 2_500_000_000 ether;   // 25%
    uint256 public constant STAKING_POOL = 2_500_000_000 ether;   // 25%
    uint256 public constant VESTING_POOL = 5_000_000_000 ether;   // 50%

    // Vesting configuration
    uint256 public constant MONTHLY_RELEASE_BPS = 1;      // 0.01% = 1 basis point
    uint256 public constant BPS_DENOMINATOR = 10_000;
    uint256 public constant SECONDS_PER_MONTH = 30 days;

    // State tracking
    uint256 public totalStakingMinted;
    uint256 public claimedVesting;
    uint256 public lastClaim;
        
    // Other contract configurations
    mapping(address => bool) public isTaxFree;
    mapping(address => bool) public isPairAddress;
    mapping(address => bool) public isAuthorizedUser;
    mapping(address => mapping(address => uint256)) private _allowances;
    
    // Wallets
    address public marketingWallet;
    address public teamWallet;
    
    // Events
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event TaxFreeStatusChanged(address indexed account, bool isTaxFree);
    event PairAddressSet(address indexed pairAddress);
    event ExcessTokensRecovered(uint256 amount);
    event MarketingWalletUpdated(address indexed newWallet);
    event Mint(address indexed to, uint256 amount);
    event AuthorizedUserSet(address indexed user, bool isAuthorized);
    event ExcludeFromReflection(address indexed account);
    event IncludeInReflection(address indexed account);
    event Burn(address indexed from, uint256 amount);
    event MarketingFeeCollected(uint256 amount);
    event VestingClaimed(address indexed to, uint256 amount);
    event FeesUpdated(uint256 buyFee, uint256 sellFee);
    event FeeDistributionUpdated(uint256 reflection, uint256 marketing, uint256 burn);
    
    constructor(
        address _marketingWallet,
        address _owner,
        address _teamWallet
    ) Ownable(_owner) {
        require(_marketingWallet != address(0), "Invalid marketing wallet");
        require(_teamWallet != address(0), "Invalid team wallet");
        
        marketingWallet = _marketingWallet;
        teamWallet = _teamWallet;

        // Initialize reflection supplies based on INITIAL MINT ONLY (25%)
        // Remaining 75% (staking 25% + vesting 50%) will be minted later
        _tTotal = INITIAL_MINT;
        _rTotal = type(uint256).max - (type(uint256).max % _tTotal);
        uint256 rate = _rTotal / _tTotal;

        // Split the initial 25% supply: 52% owner, 16% marketing, 32% team
        uint256 tOwner = (INITIAL_MINT * 13) / 25;      // 1,300,000,000 tokens (52% of 2.5B)
        uint256 tMarketing = (INITIAL_MINT * 4) / 25;   // 400,000,000 tokens (16% of 2.5B)
        uint256 tTeam = (INITIAL_MINT * 8) / 25;        // 800,000,000 tokens (32% of 2.5B)

        // Assign reflected balances
        _rOwned[_owner] = tOwner * rate;
        _rOwned[_marketingWallet] = tMarketing * rate;
        _rOwned[_teamWallet] = tTeam * rate;

        // Emit transfer events
        emit Transfer(address(0), _owner, tOwner);
        emit Transfer(address(0), _marketingWallet, tMarketing);
        emit Transfer(address(0), _teamWallet, tTeam);

        // Initialize vesting
        lastClaim = block.timestamp;
        
        // Set initial configurations
        isTaxFree[address(this)] = true;
        isTaxFree[_owner] = true;
        isAuthorizedUser[_owner] = true;
    }

    // ==================== ERC20 STANDARD FUNCTIONS ====================
    
    function name() public pure returns (string memory) {
        return _name;
    }
    
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    
    function totalSupply() public view returns (uint256) {
        return _tTotal;
    }
    
    function balanceOf(address account) public view returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }
    
    function transfer(address recipient, uint256 amount) public  returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public   returns (bool) {
        _transfer(sender, recipient, amount);
        
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
        
        return true;
    }
    
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }
        
        return true;
    }

    // ==================== MINTING FUNCTIONS ====================

    /**
     * @dev Mint tokens from staking pool (25% allocation = 2.5B tokens)
     */
    function mint(address account, uint256 amount) external   {
        require(isAuthorizedUser[_msgSender()], "Not authorized");
        require(account != address(0), "Zero address");
        require(amount > 0, "Cannot mint zero");
        require(totalStakingMinted + amount <= STAKING_POOL, "Staking pool exhausted");
        require(_tTotal + amount <= TOTAL_SUPPLY, "Exceeds total supply");

        totalStakingMinted += amount;
        _mintInternal(account, amount);
        
        emit Mint(account, amount);
    }

    /**
     * @dev Calculate unlocked vesting tokens based on time elapsed
     */
    function unlockedTokens() public view returns (uint256) {
        if (claimedVesting >= VESTING_POOL) return 0;

        uint256 elapsed = block.timestamp - lastClaim;
        if (elapsed == 0) return 0;

        // Monthly amount = 0.01% of 5B = 500,000 tokens
        uint256 monthlyAmount = (VESTING_POOL * MONTHLY_RELEASE_BPS) / BPS_DENOMINATOR;

        // Pro-rate by elapsed time
        uint256 amount = (monthlyAmount * elapsed) / SECONDS_PER_MONTH;

        // Don't exceed remaining vesting pool
        uint256 remaining = VESTING_POOL - claimedVesting;
        if (amount > remaining) amount = remaining;
        
        return amount;
    }

    /**
     * @dev Withdraw unlocked vesting tokens
     */
    function withdraw() external onlyOwner   {
        uint256 amount = unlockedTokens();
        require(amount > 0, "No tokens to withdraw");
        require(_tTotal + amount <= TOTAL_SUPPLY, "Exceeds total supply");
        
        claimedVesting += amount;
        lastClaim = block.timestamp;
        
        _mintInternal(msg.sender, amount);
        
        emit VestingClaimed(msg.sender, amount);
    }

    /**
     * @dev Internal mint function with proper rTotal synchronization
     */
    function _mintInternal(address account, uint256 amount) private {
        require(account != address(0), "ERC20: mint to zero address");
        
        uint256 rate = _getRate();
        uint256 rAmount = amount * rate;
        
        // CRITICAL FIX: Update both _tTotal and _rTotal to maintain rate
        _tTotal += amount;
        _rTotal += rAmount;
        
        _rOwned[account] += rAmount;
        if (_isExcluded[account]) {
            _tOwned[account] += amount;
        }
        
        emit Transfer(address(0), account, amount);
    }

    // ==================== VIEW FUNCTIONS FOR ALLOCATION ====================

    function remainingStakingPool() public view returns (uint256) {
        return STAKING_POOL - totalStakingMinted;
    }

    function remainingVestingPool() public view returns (uint256) {
        return VESTING_POOL - claimedVesting;
    }

    function circulatingSupply() public view returns (uint256) {
        return _tTotal;
    }

    // ==================== REFLECTION FUNCTIONS ====================
    
    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }
    
    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns (uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            uint256 rate = _getRate();
            return tAmount * rate;
        } else {
            (uint256 tTransferAmount, , , ) = _calculateFees(tAmount, sellFee);
            uint256 rate = _getRate();
            return tTransferAmount * rate;
        }
    }
    
    function tokenFromReflection(uint256 rAmount) public view returns (uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount / currentRate;
    }
    
    function excludeFromReflection(address account) public onlyOwner {
        require(!_isExcluded[account], "Account already excluded");
        require(_excluded.length < MAX_EXCLUDED, "Too many excluded addresses");
        
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
        
        emit ExcludeFromReflection(account);
    }
    
    function includeInReflection(address account) public onlyOwner {
        require(_isExcluded[account], "Account not excluded");
        
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
        
        emit IncludeInReflection(account);
    }
    
    // ==================== ADMIN FUNCTIONS ====================
    
    function setTaxFree(address account, bool status) external onlyOwner {
        isTaxFree[account] = status;
        emit TaxFreeStatusChanged(account, status);
    }
    
    function setAuthorizedUser(address user, bool status) external onlyOwner {
        isAuthorizedUser[user] = status;
        emit AuthorizedUserSet(user, status);
    }
    
    
    function setPairAddress(address pairAddress) external onlyOwner {
        require(pairAddress != address(0), "Invalid pair address");
        require(_isContract(pairAddress), "Not a contract");
        isPairAddress[pairAddress] = true;
        emit PairAddressSet(pairAddress);
    }
    
    function recoverExcessTokens(uint256 amount) external onlyOwner   {
        require(amount > 0, "Zero amount");
        require(amount <= balanceOf(address(this)), "Insufficient balance");
        _transfer(address(this), _msgSender(), amount);
        emit ExcessTokensRecovered(amount);
    }
    
    function setMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Zero address");
        marketingWallet = newWallet;
        emit MarketingWalletUpdated(newWallet);
    }

    /**
     * @dev Set buy and sell fees (in basis points, 100 = 1%)
     * FIXED: Now properly implements separate buy and sell fees
     */
    function setTradeFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= MAX_FEE, "Buy fee exceeds maximum");
        require(_sellFee <= MAX_FEE, "Sell fee exceeds maximum");
        
        buyFee = _buyFee;
        sellFee = _sellFee;
        
        emit FeesUpdated(_buyFee, _sellFee);
    }

    /**
     * @dev Set fee distribution percentages (must total 100)
     */
    function setFeeDistribution(
        uint256 _reflectionPortion,
        uint256 _marketingPortion,
        uint256 _burnPortion
    ) external onlyOwner {
        require(
            _reflectionPortion + _marketingPortion + _burnPortion == 100,
            "Portions must total 100"
        );
        
        reflectionPortion = _reflectionPortion;
        marketingPortion = _marketingPortion;
        burnPortion = _burnPortion;
        
        emit FeeDistributionUpdated(_reflectionPortion, _marketingPortion, _burnPortion);
    }

    function burn(uint256 amount) external   {
        _burn(msg.sender, amount);
    }

    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "Burn from zero address");
        require(amount > 0, "Cannot burn zero");
        
        uint256 currentRate = _getRate();
        uint256 rAmount = amount * currentRate;
        
        if (_isExcluded[account]) {
            require(_tOwned[account] >= amount, "Burn exceeds balance");
            _tOwned[account] -= amount;
            _rOwned[account] -= rAmount;
        } else {
            require(_rOwned[account] >= rAmount, "Burn exceeds balance");
            _rOwned[account] -= rAmount;
        }
        
        _tTotal -= amount;
        _rTotal -= rAmount;
        
        emit Transfer(account, address(0), amount);
        emit Burn(account, amount);
    }
    
    // ==================== INTERNAL UTILITY FUNCTIONS ====================
    
    function _isContract(address addr) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(addr)
        }
        return size > 0;
    }
    
    /**
     * @dev Calculate fees based on transaction type
     * FIXED: Now properly differentiates between buy and sell
     */
    function _calculateFees(uint256 tAmount, uint256 feePercent) 
        private 
        view 
        returns (uint256 tTransferAmount, uint256 tReflection, uint256 tMarketing, uint256 tBurn) 
    {
        if (feePercent == 0) {
            return (tAmount, 0, 0, 0);
        }
        
        uint256 totalFee = (tAmount * feePercent) / 10000;
        
        tReflection = (totalFee * reflectionPortion) / 100;
        tMarketing = (totalFee * marketingPortion) / 100;
        tBurn = (totalFee * burnPortion) / 100;
        tTransferAmount = tAmount - tReflection - tMarketing - tBurn;
    }
    
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply / tSupply;
    }
    
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        uint256 excludedLength = _excluded.length;
        
        for (uint256 i = 0; i < excludedLength; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) {
                return (_rTotal, _tTotal);
            }
            rSupply -= _rOwned[_excluded[i]];
            tSupply -= _tOwned[_excluded[i]];
        }
        
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal -= rFee;
        _tFeeTotal += tFee;
    }
    
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "Approve from zero address");
        require(spender != address(0), "Approve to zero address");
        
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    /**
     * @dev Main transfer function with proper buy/sell detection
     * FIXED: Now properly identifies and applies correct fees
     */
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "Transfer from zero address");
        require(to != address(0), "Transfer to zero address");
        require(amount > 0, "Zero amount");
    
        bool takeFee = true;
        
        // Don't take fee if tax-free or owner
        if (isTaxFree[from] || isTaxFree[to] || from == owner() || to == owner()) {
            takeFee = false;
        }
        
        // Determine if buy or sell
        bool isBuy = isPairAddress[from] && !isPairAddress[to];
        bool isSell = !isPairAddress[from] && isPairAddress[to];
        
        uint256 feeToApply = 0;
        if (takeFee) {
            if (isBuy) {
                feeToApply = buyFee;
            } else if (isSell) {
                feeToApply = sellFee;
            }
            // Regular transfers have no fee
        }
        
        _executeTransfer(from, to, amount, feeToApply);
    }
    
 
    function _executeTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        uint256 feePercent
    ) private {
        // 1) compute token-side fees and rate
        (uint256 tTransfer, uint256 tRef, uint256 tMkt, uint256 tBurn) =
            _calculateFees(tAmount, feePercent);

        uint256 rate = _getRate();

        // 2) derive reflected amounts and dispatch
        _applyTransfer(
            sender,
            recipient,
            tAmount,
            tTransfer,
            tRef * rate,
            tRef,
            tMkt * rate,
            tMkt,
            tBurn * rate,
            tBurn,
            rate
        );
    }

    function _applyTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        uint256 tTransferAmount,
        uint256 rReflection,
        uint256 tReflection,
        uint256 rMarketing,
        uint256 tMarketing,
        uint256 rBurn,
        uint256 tBurn,
        uint256 rate
    ) private {
        uint256 rAmount = tAmount * rate;
        uint256 rTransferAmount = rAmount - rReflection - rMarketing - rBurn;

        // debit sender
        _rOwned[sender] -= rAmount;
        if (_isExcluded[sender]) { _tOwned[sender] -= tAmount; }

        // credit recipient
        _rOwned[recipient] += rTransferAmount;
        if (_isExcluded[recipient]) { _tOwned[recipient] += tTransferAmount; }

        // reflection
        if (tReflection > 0) { _reflectFee(rReflection, tReflection); }

        // marketing
        if (tMarketing > 0) {
            _rOwned[marketingWallet] += rMarketing;
            if (_isExcluded[marketingWallet]) { _tOwned[marketingWallet] += tMarketing; }
            emit Transfer(sender, marketingWallet, tMarketing);
            emit MarketingFeeCollected(tMarketing);
        }

        // burn
        if (tBurn > 0) {
            _tTotal -= tBurn;
            _rTotal -= rBurn;
            emit Transfer(sender, address(0), tBurn);
            emit Burn(sender, tBurn);
        }

        emit Transfer(sender, recipient, tTransferAmount);
    }

    
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_teamWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"AuthorizedUserSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ExcessTokensRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reflection","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burn","type":"uint256"}],"name":"FeeDistributionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"IncludeInReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MarketingFeeCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","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":"pairAddress","type":"address"}],"name":"PairAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isTaxFree","type":"bool"}],"name":"TaxFreeStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"VestingClaimed","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INITIAL_MINT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_EXCLUDED","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MONTHLY_RELEASE_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECONDS_PER_MONTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKING_POOL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VESTING_POOL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnPortion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimedVesting","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReflection","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":"","type":"address"}],"name":"isAuthorizedUser","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPairAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTaxFree","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingPortion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recoverExcessTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reflectionPortion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainingStakingPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remainingVestingPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setAuthorizedUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reflectionPortion","type":"uint256"},{"internalType":"uint256","name":"_marketingPortion","type":"uint256"},{"internalType":"uint256","name":"_burnPortion","type":"uint256"}],"name":"setFeeDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setTaxFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setTradeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakingMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040525f6008556103e86009556032600a556019600b556019600c5534801562000029575f80fd5b5060405162002bdf38038062002bdf8339810160408190526200004c91620003ea565b816001600160a01b0381166200007c57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b62000087816200037f565b506001600160a01b038316620000e05760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206d61726b6574696e672077616c6c65740000000000000000604482015260640162000073565b6001600160a01b038116620001385760405162461bcd60e51b815260206004820152601360248201527f496e76616c6964207465616d2077616c6c657400000000000000000000000000604482015260640162000073565b601480546001600160a01b038086166001600160a01b03199283161790925560158054928416929091169190911790556b0813f3978f89409844000000600181905562000187905f1962000445565b62000194905f196200046f565b60028190556001545f91620001aa91906200048b565b90505f6019620001c86b0813f3978f89409844000000600d620004a1565b620001d491906200048b565b90505f6019620001f26b0813f3978f894098440000006004620004a1565b620001fe91906200048b565b90505f60196200021c6b0813f3978f894098440000006008620004a1565b6200022891906200048b565b9050620002368484620004a1565b6001600160a01b0387165f908152600460205260409020556200025a8483620004a1565b6001600160a01b0388165f908152600460205260409020556200027e8482620004a1565b6001600160a01b038087165f9081526004602052604080822093909355915190881691905f8051602062002bbf83398151915290620002c09087815260200190565b60405180910390a36040518281526001600160a01b038816905f905f8051602062002bbf8339815191529060200160405180910390a36040518181526001600160a01b038616905f905f8051602062002bbf8339815191529060200160405180910390a3505042600f555050305f9081526010602090815260408083208054600160ff1991821681179092556001600160a01b039690961684528184208054871682179055601290925290912080549093161790915550620004bb9050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620003e5575f80fd5b919050565b5f805f60608486031215620003fd575f80fd5b6200040884620003ce565b92506200041860208501620003ce565b91506200042860408501620003ce565b90509250925092565b634e487b7160e01b5f52601260045260245ffd5b5f8262000456576200045662000431565b500690565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200048557620004856200045b565b92915050565b5f826200049c576200049c62000431565b500490565b80820281158282048414176200048557620004856200045b565b6126f680620004c95f395ff3fe608060405234801561000f575f80fd5b506004361061034d575f3560e01c806370a08231116101c9578063ba8e568f116100fe578063e1a452181161009e578063ec17e13a11610079578063ec17e13a146106c9578063f2fde38b146106eb578063f3347ee5146106fe578063f557387514610711575f80fd5b8063e1a45218146106a5578063e6c11885146106ae578063e978f9e7146106c1575f80fd5b8063c592effe116100d9578063c592effe14610643578063ca7df92c146103e2578063d8ab6ce11461064b578063dd62ed3e1461066d575f80fd5b8063ba8e568f1461061e578063bc063e1a14610631578063c1650b2f1461063a575f80fd5b806395d89b4111610169578063a457c2d711610144578063a457c2d7146105e7578063a8adb564146105fa578063a9059cbb14610603578063abc88bda14610616575f80fd5b806395d89b4114610594578063a22d4832146105c1578063a249225e146105d4575f80fd5b806375f0a874116101a457806375f0a8741461055e5780638da5cb5b14610571578063902d55a5146105815780639358928b146103f5575f80fd5b806370a082311461053b578063715018a61461054e578063735b28dc14610556575f80fd5b80632e8f3d1a1161029f57806342966c681161023f5780634caec6e11161021a5780634caec6e1146104ec57806359927044146104f45780635d098b381461051f57806364938fc914610532575f80fd5b806342966c68146104bd5780634549b039146104d057806347062402146104e3575f80fd5b80633ccfd60b1161027a5780633ccfd60b146104905780633e1b037f1461049857806340161cc9146104a157806340c10f19146104aa575f80fd5b80632e8f3d1a1461045b578063313ce5671461046e578063395093511461047d575f80fd5b806318160ddd1161030a57806323b872dd116102e557806323b872dd1461041957806327334a081461042c5780632b14ca561461043f5780632d83811914610448575f80fd5b806318160ddd146103f55780631cb25cbc146103fd5780631cb9794014610410575f80fd5b806305f82a451461035157806306fdde0314610366578063095ea7b31461039f57806310786deb146103c257806313114a9d146103da57806314ae36ae146103e2575b5f80fd5b61036461035f366004612459565b610733565b005b60408051808201909152600b81526a2130b9b2b337b932bb32b960a91b60208201525b6040516103969190612472565b60405180910390f35b6103b26103ad3660046124be565b6108e6565b6040519015158152602001610396565b6103cc62278d0081565b604051908152602001610396565b6003546103cc565b6103cc6b0813f3978f8940984400000081565b6001546103cc565b61036461040b3660046124f5565b6108fc565b6103cc600e5481565b6103b2610427366004612526565b610963565b61036461043a366004612459565b610a0b565b6103cc60095481565b6103cc61045636600461255f565b610baf565b61036461046936600461255f565b610c31565b60405160128152602001610396565b6103b261048b3660046124be565b610d06565b610364610d41565b6103cc600b5481565b6103cc600d5481565b6103646104b83660046124be565b610e57565b6103646104cb36600461255f565b61104b565b6103cc6104de366004612576565b611058565b6103cc60085481565b6103cc600181565b601554610507906001600160a01b031681565b6040516001600160a01b039091168152602001610396565b61036461052d366004612459565b6110fd565b6103cc600a5481565b6103cc610549366004612459565b611193565b6103646111ef565b6103cc611202565b601454610507906001600160a01b031681565b5f546001600160a01b0316610507565b6103cc6b204fce5e3e2502611000000081565b6040805180820190915260118152702130b9b2b337b932bb32b9102a37b5b2b760791b6020820152610389565b6103646105cf366004612459565b611222565b6103646105e23660046124f5565b611301565b6103b26105f53660046124be565b611360565b6103cc600f5481565b6103b26106113660046124be565b6113f8565b6103cc611404565b61036461062c366004612597565b6114b1565b6103cc6109c481565b6103cc600c5481565b6103cc611572565b6103b2610659366004612459565b60106020525f908152604090205460ff1681565b6103cc61067b3660046125c0565b6001600160a01b039182165f90815260136020908152604080832093909416825291909152205490565b6103cc61271081565b6103646106bc3660046125e8565b61158d565b6103cc603281565b6103b26106d7366004612459565b60126020525f908152604090205460ff1681565b6103646106f9366004612459565b611680565b6103cc6b1027e72f1f1281308800000081565b6103b261071f366004612459565b60116020525f908152604090205460ff1681565b61073b6116ba565b6001600160a01b0381165f9081526006602052604090205460ff1661079e5760405162461bcd60e51b81526020600482015260146024820152731058d8dbdd5b9d081b9bdd08195e18db1d59195960621b60448201526064015b60405180910390fd5b5f5b6007548110156108af57816001600160a01b0316600782815481106107c7576107c7612608565b5f918252602090912001546001600160a01b0316036108a757600780546107f090600190612630565b8154811061080057610800612608565b5f91825260209091200154600780546001600160a01b03909216918390811061082b5761082b612608565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600690925220805460ff19169055600780548061088257610882612643565b5f8281526020902081015f1990810180546001600160a01b03191690550190556108af565b6001016107a0565b506040516001600160a01b038216907fbc60ea2907fcdafe53db285c79dc7f5c4871e4d26a2d97a7bb5ae1e61f890997905f90a250565b5f6108f23384846116e6565b5060015b92915050565b6109046116ba565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f6cc9a68a61b7b3ebe53bd2a9f12d2d338634ab542664594d095a7fd430dc054691015b60405180910390a25050565b5f61096f8484846117f2565b6001600160a01b0384165f908152601360209081526040808320338452909152902054828110156109f35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610795565b610a0085338584036116e6565b506001949350505050565b610a136116ba565b6001600160a01b0381165f9081526006602052604090205460ff1615610a7b5760405162461bcd60e51b815260206004820152601860248201527f4163636f756e7420616c7265616479206578636c7564656400000000000000006044820152606401610795565b600754603211610acd5760405162461bcd60e51b815260206004820152601b60248201527f546f6f206d616e79206578636c756465642061646472657373657300000000006044820152606401610795565b6001600160a01b0381165f9081526004602052604090205415610b24576001600160a01b0381165f90815260046020526040902054610b0b90610baf565b6001600160a01b0382165f908152600560205260409020555b6001600160a01b0381165f81815260066020526040808220805460ff1916600190811790915560078054918201815583527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191684179055517fb1e6291bd894dac65335f88fa5b41166f1f5d6194503a8b59c1afa98de3794269190a250565b5f600254821115610c155760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610795565b5f610c1e611a0b565b9050610c2a8184612657565b9392505050565b610c396116ba565b5f8111610c765760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606401610795565b610c7f30611193565b811115610cc55760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610795565b610cd03033836117f2565b6040518181527fe638c41912f4ef786deec8d10416778e478284334c2f18acea6e03f435d464779060200160405180910390a150565b335f8181526013602090815260408083206001600160a01b038716845290915281205490916108f2918590610d3c908690612676565b6116e6565b610d496116ba565b5f610d52611404565b90505f8111610d9b5760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b6044820152606401610795565b6b204fce5e3e2502611000000081600154610db69190612676565b1115610dfb5760405162461bcd60e51b81526020600482015260146024820152734578636565647320746f74616c20737570706c7960601b6044820152606401610795565b80600e5f828254610e0c9190612676565b909155505042600f55610e1f3382611a2c565b60405181815233907f9fe9b7be9d151c7a8b6de49a1312ff27a15096d0d1d12999af85fe4310e0b1259060200160405180910390a250565b335f9081526012602052604090205460ff16610ea65760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610795565b6001600160a01b038216610eeb5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610795565b5f8111610f2d5760405162461bcd60e51b815260206004820152601060248201526f43616e6e6f74206d696e74207a65726f60801b6044820152606401610795565b6b0813f3978f8940984400000081600d54610f489190612676565b1115610f8f5760405162461bcd60e51b815260206004820152601660248201527514dd185ada5b99c81c1bdbdb08195e1a185d5cdd195960521b6044820152606401610795565b6b204fce5e3e2502611000000081600154610faa9190612676565b1115610fef5760405162461bcd60e51b81526020600482015260146024820152734578636565647320746f74616c20737570706c7960601b6044820152606401610795565b80600d5f8282546110009190612676565b9091555061101090508282611a2c565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161095791815260200190565b6110553382611b74565b50565b5f6001548311156110ab5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610795565b816110cd575f6110b9611a0b565b90506110c58185612689565b9150506108f6565b5f6110da84600954611e29565b50505090505f6110e8611a0b565b90506110f48183612689565b925050506108f6565b6111056116ba565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610795565b601480546001600160a01b0319166001600160a01b0383169081179091556040517fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e7905f90a250565b6001600160a01b0381165f9081526006602052604081205460ff16156111ce57506001600160a01b03165f9081526005602052604090205490565b6001600160a01b0382165f908152600460205260409020546108f690610baf565b6111f76116ba565b6112005f611edf565b565b5f600e546b1027e72f1f1281308800000061121d9190612630565b905090565b61122a6116ba565b6001600160a01b0381166112775760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b6044820152606401610795565b803b6112b65760405162461bcd60e51b815260206004820152600e60248201526d139bdd08184818dbdb9d1c9858dd60921b6044820152606401610795565b6001600160a01b0381165f81815260116020526040808220805460ff19166001179055517f5d338516e06e286e70c606dc31a9818bc3ecf6eb9995eaa5c4c7cae87e86adda9190a250565b6113096116ba565b6001600160a01b0382165f81815260126020908152604091829020805460ff191685151590811790915591519182527f1d778915579d1eab571aaabfef4cad45f44457b46165d03669a495599a5f5a6d9101610957565b335f9081526013602090815260408083206001600160a01b0386168452909152812054828110156113e15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610795565b6113ee33858584036116e6565b5060019392505050565b5f6108f23384846117f2565b5f6b1027e72f1f12813088000000600e541061141f57505f90565b5f600f544261142e9190612630565b9050805f0361143e575f91505090565b5f61271061145960016b1027e72f1f12813088000000612689565b6114639190612657565b90505f62278d006114748484612689565b61147e9190612657565b90505f600e546b1027e72f1f1281308800000061149b9190612630565b9050808211156114a9578091505b509392505050565b6114b96116ba565b806114c48385612676565b6114ce9190612676565b60641461151d5760405162461bcd60e51b815260206004820152601760248201527f506f7274696f6e73206d75737420746f74616c203130300000000000000000006044820152606401610795565b600a839055600b829055600c81905560408051848152602081018490529081018290527fc2598ee1064d25a35cc42ae49954377c76f68eb4289b1825844a9f751bcae1529060600160405180910390a1505050565b5f600d546b0813f3978f8940984400000061121d9190612630565b6115956116ba565b6109c48211156115e75760405162461bcd60e51b815260206004820152601760248201527f427579206665652065786365656473206d6178696d756d0000000000000000006044820152606401610795565b6109c48111156116395760405162461bcd60e51b815260206004820152601860248201527f53656c6c206665652065786365656473206d6178696d756d00000000000000006044820152606401610795565b6008829055600981905560408051838152602081018390527f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1910160405180910390a15050565b6116886116ba565b6001600160a01b0381166116b157604051631e4fbdf760e01b81525f6004820152602401610795565b61105581611edf565b5f546001600160a01b031633146112005760405163118cdaa760e01b8152336004820152602401610795565b6001600160a01b03831661173c5760405162461bcd60e51b815260206004820152601960248201527f417070726f76652066726f6d207a65726f2061646472657373000000000000006044820152606401610795565b6001600160a01b0382166117925760405162461bcd60e51b815260206004820152601760248201527f417070726f766520746f207a65726f20616464726573730000000000000000006044820152606401610795565b6001600160a01b038381165f8181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118485760405162461bcd60e51b815260206004820152601a60248201527f5472616e736665722066726f6d207a65726f20616464726573730000000000006044820152606401610795565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152601860248201527f5472616e7366657220746f207a65726f206164647265737300000000000000006044820152606401610795565b5f81116118db5760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606401610795565b6001600160a01b0383165f9081526010602052604090205460019060ff168061191b57506001600160a01b0383165f9081526010602052604090205460ff165b8061193257505f546001600160a01b038581169116145b8061194957505f546001600160a01b038481169116145b1561195157505f5b6001600160a01b0384165f9081526011602052604081205460ff16801561199057506001600160a01b0384165f9081526011602052604090205460ff16155b6001600160a01b0386165f908152601160205260408120549192509060ff161580156119d357506001600160a01b0385165f9081526011602052604090205460ff165b90505f83156119f65782156119eb57506008546119f6565b81156119f657506009545b611a0287878784611f2e565b50505050505050565b5f805f611a16611f88565b9092509050611a258183612657565b9250505090565b6001600160a01b038216611a825760405162461bcd60e51b815260206004820152601b60248201527f45524332303a206d696e7420746f207a65726f206164647265737300000000006044820152606401610795565b5f611a8b611a0b565b90505f611a988284612689565b90508260015f828254611aab9190612676565b925050819055508060025f828254611ac39190612676565b90915550506001600160a01b0384165f9081526004602052604081208054839290611aef908490612676565b90915550506001600160a01b0384165f9081526006602052604090205460ff1615611b41576001600160a01b0384165f9081526005602052604081208054859290611b3b908490612676565b90915550505b6040518381526001600160a01b038516905f905f805160206126a18339815191529060200160405180910390a350505050565b6001600160a01b038216611bc35760405162461bcd60e51b81526020600482015260166024820152754275726e2066726f6d207a65726f206164647265737360501b6044820152606401610795565b5f8111611c055760405162461bcd60e51b815260206004820152601060248201526f43616e6e6f74206275726e207a65726f60801b6044820152606401610795565b5f611c0e611a0b565b90505f611c1b8284612689565b6001600160a01b0385165f9081526006602052604090205490915060ff1615611cfa576001600160a01b0384165f90815260056020526040902054831115611c9c5760405162461bcd60e51b81526020600482015260146024820152734275726e20657863656564732062616c616e636560601b6044820152606401610795565b6001600160a01b0384165f9081526005602052604081208054859290611cc3908490612630565b90915550506001600160a01b0384165f9081526004602052604081208054839290611cef908490612630565b90915550611d859050565b6001600160a01b0384165f90815260046020526040902054811115611d585760405162461bcd60e51b81526020600482015260146024820152734275726e20657863656564732062616c616e636560601b6044820152606401610795565b6001600160a01b0384165f9081526004602052604081208054839290611d7f908490612630565b90915550505b8260015f828254611d969190612630565b925050819055508060025f828254611dae9190612630565b90915550506040518381525f906001600160a01b038616905f805160206126a18339815191529060200160405180910390a3836001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca584604051611e1b91815260200190565b60405180910390a250505050565b5f805f80845f03611e4457508492505f915081905080611ed6565b5f612710611e528789612689565b611e5c9190612657565b90506064600a5482611e6e9190612689565b611e789190612657565b93506064600b5482611e8a9190612689565b611e949190612657565b92506064600c5482611ea69190612689565b611eb09190612657565b91508183611ebe868a612630565b611ec89190612630565b611ed29190612630565b9450505b92959194509250565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f805f80611f3c8686611e29565b93509350935093505f611f4d611a0b565b9050611f7d89898988611f60868a612689565b89611f6b888b612689565b8a611f768a8c612689565b8b8b6120fe565b505050505050505050565b6002546001546007545f9283929091835b818110156120cb578360045f60078481548110611fb857611fb8612608565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061202057508260055f60078481548110611ffa57611ffa612608565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156120375760025460015495509550505050509091565b60045f6007838154811061204d5761204d612608565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461207b9085612630565b935060055f6007838154811061209357612093612608565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546120c19084612630565b9250600101611f99565b506001546002546120dc9190612657565b8310156120f457600254600154945094505050509091565b5090939092509050565b5f612109828b612689565b90505f84876121188b85612630565b6121229190612630565b61212c9190612630565b6001600160a01b038e165f90815260046020526040812080549293508492909190612158908490612630565b90915550506001600160a01b038d165f9081526006602052604090205460ff16156121aa576001600160a01b038d165f90815260056020526040812080548d92906121a4908490612630565b90915550505b6001600160a01b038c165f90815260046020526040812080548392906121d1908490612676565b90915550506001600160a01b038c165f9081526006602052604090205460ff1615612223576001600160a01b038c165f90815260056020526040812080548c929061221d908490612676565b90915550505b871561223357612233898961240c565b851561231e576014546001600160a01b03165f9081526004602052604081208054899290612262908490612676565b90915550506014546001600160a01b03165f9081526006602052604090205460ff16156122b8576014546001600160a01b03165f90815260056020526040812080548892906122b2908490612676565b90915550505b6014546040518781526001600160a01b03918216918f16905f805160206126a18339815191529060200160405180910390a36040518681527f14c3945b0e552cb130d2e123df9730f5b69c4872acd0fc354d63649227d61f129060200160405180910390a15b83156123c3578360015f8282546123359190612630565b925050819055508460025f82825461234d9190612630565b90915550506040518481525f906001600160a01b038f16905f805160206126a18339815191529060200160405180910390a38c6001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5856040516123ba91815260200190565b60405180910390a25b8b6001600160a01b03168d6001600160a01b03165f805160206126a18339815191528c6040516123f591815260200190565b60405180910390a350505050505050505050505050565b8160025f82825461241d9190612630565b925050819055508060035f8282546124359190612676565b90915550505050565b80356001600160a01b0381168114612454575f80fd5b919050565b5f60208284031215612469575f80fd5b610c2a8261243e565b5f602080835283518060208501525f5b8181101561249e57858101830151858201604001528201612482565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156124cf575f80fd5b6124d88361243e565b946020939093013593505050565b80358015158114612454575f80fd5b5f8060408385031215612506575f80fd5b61250f8361243e565b915061251d602084016124e6565b90509250929050565b5f805f60608486031215612538575f80fd5b6125418461243e565b925061254f6020850161243e565b9150604084013590509250925092565b5f6020828403121561256f575f80fd5b5035919050565b5f8060408385031215612587575f80fd5b8235915061251d602084016124e6565b5f805f606084860312156125a9575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156125d1575f80fd5b6125da8361243e565b915061251d6020840161243e565b5f80604083850312156125f9575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108f6576108f661261c565b634e487b7160e01b5f52603160045260245ffd5b5f8261267157634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156108f6576108f661261c565b80820281158282048414176108f6576108f661261c56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204db0d40631c3d2d187db2979de69d85dfed739738f23a35be61a00753f1f757e64736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0000000000000000000000000f60fc0b266e189a94db7c597df5e4576d9693f700000000000000000000000038e747ac305bfabb622e9de3776b7d2a927b4d2a000000000000000000000000280d5d8b1205f7b7ee708bd9e3e4e64865648937

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061034d575f3560e01c806370a08231116101c9578063ba8e568f116100fe578063e1a452181161009e578063ec17e13a11610079578063ec17e13a146106c9578063f2fde38b146106eb578063f3347ee5146106fe578063f557387514610711575f80fd5b8063e1a45218146106a5578063e6c11885146106ae578063e978f9e7146106c1575f80fd5b8063c592effe116100d9578063c592effe14610643578063ca7df92c146103e2578063d8ab6ce11461064b578063dd62ed3e1461066d575f80fd5b8063ba8e568f1461061e578063bc063e1a14610631578063c1650b2f1461063a575f80fd5b806395d89b4111610169578063a457c2d711610144578063a457c2d7146105e7578063a8adb564146105fa578063a9059cbb14610603578063abc88bda14610616575f80fd5b806395d89b4114610594578063a22d4832146105c1578063a249225e146105d4575f80fd5b806375f0a874116101a457806375f0a8741461055e5780638da5cb5b14610571578063902d55a5146105815780639358928b146103f5575f80fd5b806370a082311461053b578063715018a61461054e578063735b28dc14610556575f80fd5b80632e8f3d1a1161029f57806342966c681161023f5780634caec6e11161021a5780634caec6e1146104ec57806359927044146104f45780635d098b381461051f57806364938fc914610532575f80fd5b806342966c68146104bd5780634549b039146104d057806347062402146104e3575f80fd5b80633ccfd60b1161027a5780633ccfd60b146104905780633e1b037f1461049857806340161cc9146104a157806340c10f19146104aa575f80fd5b80632e8f3d1a1461045b578063313ce5671461046e578063395093511461047d575f80fd5b806318160ddd1161030a57806323b872dd116102e557806323b872dd1461041957806327334a081461042c5780632b14ca561461043f5780632d83811914610448575f80fd5b806318160ddd146103f55780631cb25cbc146103fd5780631cb9794014610410575f80fd5b806305f82a451461035157806306fdde0314610366578063095ea7b31461039f57806310786deb146103c257806313114a9d146103da57806314ae36ae146103e2575b5f80fd5b61036461035f366004612459565b610733565b005b60408051808201909152600b81526a2130b9b2b337b932bb32b960a91b60208201525b6040516103969190612472565b60405180910390f35b6103b26103ad3660046124be565b6108e6565b6040519015158152602001610396565b6103cc62278d0081565b604051908152602001610396565b6003546103cc565b6103cc6b0813f3978f8940984400000081565b6001546103cc565b61036461040b3660046124f5565b6108fc565b6103cc600e5481565b6103b2610427366004612526565b610963565b61036461043a366004612459565b610a0b565b6103cc60095481565b6103cc61045636600461255f565b610baf565b61036461046936600461255f565b610c31565b60405160128152602001610396565b6103b261048b3660046124be565b610d06565b610364610d41565b6103cc600b5481565b6103cc600d5481565b6103646104b83660046124be565b610e57565b6103646104cb36600461255f565b61104b565b6103cc6104de366004612576565b611058565b6103cc60085481565b6103cc600181565b601554610507906001600160a01b031681565b6040516001600160a01b039091168152602001610396565b61036461052d366004612459565b6110fd565b6103cc600a5481565b6103cc610549366004612459565b611193565b6103646111ef565b6103cc611202565b601454610507906001600160a01b031681565b5f546001600160a01b0316610507565b6103cc6b204fce5e3e2502611000000081565b6040805180820190915260118152702130b9b2b337b932bb32b9102a37b5b2b760791b6020820152610389565b6103646105cf366004612459565b611222565b6103646105e23660046124f5565b611301565b6103b26105f53660046124be565b611360565b6103cc600f5481565b6103b26106113660046124be565b6113f8565b6103cc611404565b61036461062c366004612597565b6114b1565b6103cc6109c481565b6103cc600c5481565b6103cc611572565b6103b2610659366004612459565b60106020525f908152604090205460ff1681565b6103cc61067b3660046125c0565b6001600160a01b039182165f90815260136020908152604080832093909416825291909152205490565b6103cc61271081565b6103646106bc3660046125e8565b61158d565b6103cc603281565b6103b26106d7366004612459565b60126020525f908152604090205460ff1681565b6103646106f9366004612459565b611680565b6103cc6b1027e72f1f1281308800000081565b6103b261071f366004612459565b60116020525f908152604090205460ff1681565b61073b6116ba565b6001600160a01b0381165f9081526006602052604090205460ff1661079e5760405162461bcd60e51b81526020600482015260146024820152731058d8dbdd5b9d081b9bdd08195e18db1d59195960621b60448201526064015b60405180910390fd5b5f5b6007548110156108af57816001600160a01b0316600782815481106107c7576107c7612608565b5f918252602090912001546001600160a01b0316036108a757600780546107f090600190612630565b8154811061080057610800612608565b5f91825260209091200154600780546001600160a01b03909216918390811061082b5761082b612608565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600690925220805460ff19169055600780548061088257610882612643565b5f8281526020902081015f1990810180546001600160a01b03191690550190556108af565b6001016107a0565b506040516001600160a01b038216907fbc60ea2907fcdafe53db285c79dc7f5c4871e4d26a2d97a7bb5ae1e61f890997905f90a250565b5f6108f23384846116e6565b5060015b92915050565b6109046116ba565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f6cc9a68a61b7b3ebe53bd2a9f12d2d338634ab542664594d095a7fd430dc054691015b60405180910390a25050565b5f61096f8484846117f2565b6001600160a01b0384165f908152601360209081526040808320338452909152902054828110156109f35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610795565b610a0085338584036116e6565b506001949350505050565b610a136116ba565b6001600160a01b0381165f9081526006602052604090205460ff1615610a7b5760405162461bcd60e51b815260206004820152601860248201527f4163636f756e7420616c7265616479206578636c7564656400000000000000006044820152606401610795565b600754603211610acd5760405162461bcd60e51b815260206004820152601b60248201527f546f6f206d616e79206578636c756465642061646472657373657300000000006044820152606401610795565b6001600160a01b0381165f9081526004602052604090205415610b24576001600160a01b0381165f90815260046020526040902054610b0b90610baf565b6001600160a01b0382165f908152600560205260409020555b6001600160a01b0381165f81815260066020526040808220805460ff1916600190811790915560078054918201815583527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191684179055517fb1e6291bd894dac65335f88fa5b41166f1f5d6194503a8b59c1afa98de3794269190a250565b5f600254821115610c155760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610795565b5f610c1e611a0b565b9050610c2a8184612657565b9392505050565b610c396116ba565b5f8111610c765760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606401610795565b610c7f30611193565b811115610cc55760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610795565b610cd03033836117f2565b6040518181527fe638c41912f4ef786deec8d10416778e478284334c2f18acea6e03f435d464779060200160405180910390a150565b335f8181526013602090815260408083206001600160a01b038716845290915281205490916108f2918590610d3c908690612676565b6116e6565b610d496116ba565b5f610d52611404565b90505f8111610d9b5760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b6044820152606401610795565b6b204fce5e3e2502611000000081600154610db69190612676565b1115610dfb5760405162461bcd60e51b81526020600482015260146024820152734578636565647320746f74616c20737570706c7960601b6044820152606401610795565b80600e5f828254610e0c9190612676565b909155505042600f55610e1f3382611a2c565b60405181815233907f9fe9b7be9d151c7a8b6de49a1312ff27a15096d0d1d12999af85fe4310e0b1259060200160405180910390a250565b335f9081526012602052604090205460ff16610ea65760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610795565b6001600160a01b038216610eeb5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610795565b5f8111610f2d5760405162461bcd60e51b815260206004820152601060248201526f43616e6e6f74206d696e74207a65726f60801b6044820152606401610795565b6b0813f3978f8940984400000081600d54610f489190612676565b1115610f8f5760405162461bcd60e51b815260206004820152601660248201527514dd185ada5b99c81c1bdbdb08195e1a185d5cdd195960521b6044820152606401610795565b6b204fce5e3e2502611000000081600154610faa9190612676565b1115610fef5760405162461bcd60e51b81526020600482015260146024820152734578636565647320746f74616c20737570706c7960601b6044820152606401610795565b80600d5f8282546110009190612676565b9091555061101090508282611a2c565b816001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161095791815260200190565b6110553382611b74565b50565b5f6001548311156110ab5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610795565b816110cd575f6110b9611a0b565b90506110c58185612689565b9150506108f6565b5f6110da84600954611e29565b50505090505f6110e8611a0b565b90506110f48183612689565b925050506108f6565b6111056116ba565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610795565b601480546001600160a01b0319166001600160a01b0383169081179091556040517fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e7905f90a250565b6001600160a01b0381165f9081526006602052604081205460ff16156111ce57506001600160a01b03165f9081526005602052604090205490565b6001600160a01b0382165f908152600460205260409020546108f690610baf565b6111f76116ba565b6112005f611edf565b565b5f600e546b1027e72f1f1281308800000061121d9190612630565b905090565b61122a6116ba565b6001600160a01b0381166112775760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b6044820152606401610795565b803b6112b65760405162461bcd60e51b815260206004820152600e60248201526d139bdd08184818dbdb9d1c9858dd60921b6044820152606401610795565b6001600160a01b0381165f81815260116020526040808220805460ff19166001179055517f5d338516e06e286e70c606dc31a9818bc3ecf6eb9995eaa5c4c7cae87e86adda9190a250565b6113096116ba565b6001600160a01b0382165f81815260126020908152604091829020805460ff191685151590811790915591519182527f1d778915579d1eab571aaabfef4cad45f44457b46165d03669a495599a5f5a6d9101610957565b335f9081526013602090815260408083206001600160a01b0386168452909152812054828110156113e15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610795565b6113ee33858584036116e6565b5060019392505050565b5f6108f23384846117f2565b5f6b1027e72f1f12813088000000600e541061141f57505f90565b5f600f544261142e9190612630565b9050805f0361143e575f91505090565b5f61271061145960016b1027e72f1f12813088000000612689565b6114639190612657565b90505f62278d006114748484612689565b61147e9190612657565b90505f600e546b1027e72f1f1281308800000061149b9190612630565b9050808211156114a9578091505b509392505050565b6114b96116ba565b806114c48385612676565b6114ce9190612676565b60641461151d5760405162461bcd60e51b815260206004820152601760248201527f506f7274696f6e73206d75737420746f74616c203130300000000000000000006044820152606401610795565b600a839055600b829055600c81905560408051848152602081018490529081018290527fc2598ee1064d25a35cc42ae49954377c76f68eb4289b1825844a9f751bcae1529060600160405180910390a1505050565b5f600d546b0813f3978f8940984400000061121d9190612630565b6115956116ba565b6109c48211156115e75760405162461bcd60e51b815260206004820152601760248201527f427579206665652065786365656473206d6178696d756d0000000000000000006044820152606401610795565b6109c48111156116395760405162461bcd60e51b815260206004820152601860248201527f53656c6c206665652065786365656473206d6178696d756d00000000000000006044820152606401610795565b6008829055600981905560408051838152602081018390527f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1910160405180910390a15050565b6116886116ba565b6001600160a01b0381166116b157604051631e4fbdf760e01b81525f6004820152602401610795565b61105581611edf565b5f546001600160a01b031633146112005760405163118cdaa760e01b8152336004820152602401610795565b6001600160a01b03831661173c5760405162461bcd60e51b815260206004820152601960248201527f417070726f76652066726f6d207a65726f2061646472657373000000000000006044820152606401610795565b6001600160a01b0382166117925760405162461bcd60e51b815260206004820152601760248201527f417070726f766520746f207a65726f20616464726573730000000000000000006044820152606401610795565b6001600160a01b038381165f8181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118485760405162461bcd60e51b815260206004820152601a60248201527f5472616e736665722066726f6d207a65726f20616464726573730000000000006044820152606401610795565b6001600160a01b03821661189e5760405162461bcd60e51b815260206004820152601860248201527f5472616e7366657220746f207a65726f206164647265737300000000000000006044820152606401610795565b5f81116118db5760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606401610795565b6001600160a01b0383165f9081526010602052604090205460019060ff168061191b57506001600160a01b0383165f9081526010602052604090205460ff165b8061193257505f546001600160a01b038581169116145b8061194957505f546001600160a01b038481169116145b1561195157505f5b6001600160a01b0384165f9081526011602052604081205460ff16801561199057506001600160a01b0384165f9081526011602052604090205460ff16155b6001600160a01b0386165f908152601160205260408120549192509060ff161580156119d357506001600160a01b0385165f9081526011602052604090205460ff165b90505f83156119f65782156119eb57506008546119f6565b81156119f657506009545b611a0287878784611f2e565b50505050505050565b5f805f611a16611f88565b9092509050611a258183612657565b9250505090565b6001600160a01b038216611a825760405162461bcd60e51b815260206004820152601b60248201527f45524332303a206d696e7420746f207a65726f206164647265737300000000006044820152606401610795565b5f611a8b611a0b565b90505f611a988284612689565b90508260015f828254611aab9190612676565b925050819055508060025f828254611ac39190612676565b90915550506001600160a01b0384165f9081526004602052604081208054839290611aef908490612676565b90915550506001600160a01b0384165f9081526006602052604090205460ff1615611b41576001600160a01b0384165f9081526005602052604081208054859290611b3b908490612676565b90915550505b6040518381526001600160a01b038516905f905f805160206126a18339815191529060200160405180910390a350505050565b6001600160a01b038216611bc35760405162461bcd60e51b81526020600482015260166024820152754275726e2066726f6d207a65726f206164647265737360501b6044820152606401610795565b5f8111611c055760405162461bcd60e51b815260206004820152601060248201526f43616e6e6f74206275726e207a65726f60801b6044820152606401610795565b5f611c0e611a0b565b90505f611c1b8284612689565b6001600160a01b0385165f9081526006602052604090205490915060ff1615611cfa576001600160a01b0384165f90815260056020526040902054831115611c9c5760405162461bcd60e51b81526020600482015260146024820152734275726e20657863656564732062616c616e636560601b6044820152606401610795565b6001600160a01b0384165f9081526005602052604081208054859290611cc3908490612630565b90915550506001600160a01b0384165f9081526004602052604081208054839290611cef908490612630565b90915550611d859050565b6001600160a01b0384165f90815260046020526040902054811115611d585760405162461bcd60e51b81526020600482015260146024820152734275726e20657863656564732062616c616e636560601b6044820152606401610795565b6001600160a01b0384165f9081526004602052604081208054839290611d7f908490612630565b90915550505b8260015f828254611d969190612630565b925050819055508060025f828254611dae9190612630565b90915550506040518381525f906001600160a01b038616905f805160206126a18339815191529060200160405180910390a3836001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca584604051611e1b91815260200190565b60405180910390a250505050565b5f805f80845f03611e4457508492505f915081905080611ed6565b5f612710611e528789612689565b611e5c9190612657565b90506064600a5482611e6e9190612689565b611e789190612657565b93506064600b5482611e8a9190612689565b611e949190612657565b92506064600c5482611ea69190612689565b611eb09190612657565b91508183611ebe868a612630565b611ec89190612630565b611ed29190612630565b9450505b92959194509250565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f805f80611f3c8686611e29565b93509350935093505f611f4d611a0b565b9050611f7d89898988611f60868a612689565b89611f6b888b612689565b8a611f768a8c612689565b8b8b6120fe565b505050505050505050565b6002546001546007545f9283929091835b818110156120cb578360045f60078481548110611fb857611fb8612608565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061202057508260055f60078481548110611ffa57611ffa612608565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156120375760025460015495509550505050509091565b60045f6007838154811061204d5761204d612608565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461207b9085612630565b935060055f6007838154811061209357612093612608565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546120c19084612630565b9250600101611f99565b506001546002546120dc9190612657565b8310156120f457600254600154945094505050509091565b5090939092509050565b5f612109828b612689565b90505f84876121188b85612630565b6121229190612630565b61212c9190612630565b6001600160a01b038e165f90815260046020526040812080549293508492909190612158908490612630565b90915550506001600160a01b038d165f9081526006602052604090205460ff16156121aa576001600160a01b038d165f90815260056020526040812080548d92906121a4908490612630565b90915550505b6001600160a01b038c165f90815260046020526040812080548392906121d1908490612676565b90915550506001600160a01b038c165f9081526006602052604090205460ff1615612223576001600160a01b038c165f90815260056020526040812080548c929061221d908490612676565b90915550505b871561223357612233898961240c565b851561231e576014546001600160a01b03165f9081526004602052604081208054899290612262908490612676565b90915550506014546001600160a01b03165f9081526006602052604090205460ff16156122b8576014546001600160a01b03165f90815260056020526040812080548892906122b2908490612676565b90915550505b6014546040518781526001600160a01b03918216918f16905f805160206126a18339815191529060200160405180910390a36040518681527f14c3945b0e552cb130d2e123df9730f5b69c4872acd0fc354d63649227d61f129060200160405180910390a15b83156123c3578360015f8282546123359190612630565b925050819055508460025f82825461234d9190612630565b90915550506040518481525f906001600160a01b038f16905f805160206126a18339815191529060200160405180910390a38c6001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5856040516123ba91815260200190565b60405180910390a25b8b6001600160a01b03168d6001600160a01b03165f805160206126a18339815191528c6040516123f591815260200190565b60405180910390a350505050505050505050505050565b8160025f82825461241d9190612630565b925050819055508060035f8282546124359190612676565b90915550505050565b80356001600160a01b0381168114612454575f80fd5b919050565b5f60208284031215612469575f80fd5b610c2a8261243e565b5f602080835283518060208501525f5b8181101561249e57858101830151858201604001528201612482565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156124cf575f80fd5b6124d88361243e565b946020939093013593505050565b80358015158114612454575f80fd5b5f8060408385031215612506575f80fd5b61250f8361243e565b915061251d602084016124e6565b90509250929050565b5f805f60608486031215612538575f80fd5b6125418461243e565b925061254f6020850161243e565b9150604084013590509250925092565b5f6020828403121561256f575f80fd5b5035919050565b5f8060408385031215612587575f80fd5b8235915061251d602084016124e6565b5f805f606084860312156125a9575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156125d1575f80fd5b6125da8361243e565b915061251d6020840161243e565b5f80604083850312156125f9575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156108f6576108f661261c565b634e487b7160e01b5f52603160045260245ffd5b5f8261267157634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156108f6576108f661261c565b80820281158282048414176108f6576108f661261c56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204db0d40631c3d2d187db2979de69d85dfed739738f23a35be61a00753f1f757e64736f6c63430008180033

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

0000000000000000000000000f60fc0b266e189a94db7c597df5e4576d9693f700000000000000000000000038e747ac305bfabb622e9de3776b7d2a927b4d2a000000000000000000000000280d5d8b1205f7b7ee708bd9e3e4e64865648937

-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0x0F60fc0B266E189A94dB7c597DF5e4576D9693f7
Arg [1] : _owner (address): 0x38e747aC305bFABB622e9dE3776B7D2a927b4d2A
Arg [2] : _teamWallet (address): 0x280d5d8b1205f7b7EE708bd9e3e4E64865648937

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000f60fc0b266e189a94db7c597df5e4576d9693f7
Arg [1] : 00000000000000000000000038e747ac305bfabb622e9de3776b7d2a927b4d2a
Arg [2] : 000000000000000000000000280d5d8b1205f7b7ee708bd9e3e4e64865648937


Deployed Bytecode Sourcemap

3691:21286:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15433:536;;;;;;:::i;:::-;;:::i;:::-;;8752:83;8822:5;;;;;;;;;;;;-1:-1:-1;;;8822:5:0;;;;8752:83;;;;;;;:::i;:::-;;;;;;;;9657:152;;;;;;:::i;:::-;;:::i;:::-;;;1360:14:1;;1353:22;1335:41;;1323:2;1308:18;9657:152:0;1195:187:1;5461:51:0;;5505:7;5461:51;;;;;1533:25:1;;;1521:2;1506:18;5461:51:0;1387:177:1;14081:87:0;14150:10;;14081:87;;5142:58;;5181:19;5142:58;;9041:86;9112:7;;9041:86;;16053:168;;;;;;:::i;:::-;;:::i;5584:29::-;;;;;;9821:459;;;;;;:::i;:::-;;:::i;14940:481::-;;;;;;:::i;:::-;;:::i;4545:29::-;;;;;;14678:250;;;;;;:::i;:::-;;:::i;16723:299::-;;;;;;:::i;:::-;;:::i;8946:83::-;;;3919:2;2653:36:1;;2641:2;2626:18;8946:83:0;2511:184:1;10292:207:0;;;;;;:::i;:::-;;:::i;12468:421::-;;;:::i;4805:36::-;;;;;;5544:33;;;;;;11094:535;;;;;;:::i;:::-;;:::i;18398:85::-;;;;;;:::i;:::-;;:::i;14180:486::-;;;;;;:::i;:::-;;:::i;4487:25::-;;;;;;5322:47;;5368:1;5322:47;;5987:25;;;;;-1:-1:-1;;;;;5987:25:0;;;;;;-1:-1:-1;;;;;3117:32:1;;;3099:51;;3087:2;3072:18;5987:25:0;2953:203:1;17034:220:0;;;;;;:::i;:::-;;:::i;4726:37::-;;;;;;9139:189;;;;;;:::i;:::-;;:::i;3031:103::-;;;:::i;13779:117::-;;;:::i;5950:30::-;;;;;-1:-1:-1;;;;;5950:30:0;;;2762:87;2808:7;2835:6;-1:-1:-1;;;;;2835:6:0;2762:87;;5002:59;;5041:20;5002:59;;8847:87;8919:7;;;;;;;;;;;;-1:-1:-1;;;8919:7:0;;;;8847:87;;16421:290;;;;;;:::i;:::-;;:::i;16233:170::-;;;;;;:::i;:::-;;:::i;10511:413::-;;;;;;:::i;:::-;;:::i;5620:24::-;;;;;;9340:159;;;;;;:::i;:::-;;:::i;11724:672::-;;;:::i;17836:554::-;;;;;;:::i;:::-;;:::i;4604:38::-;;4638:4;4604:38;;4883:31;;;;;;13650:121;;;:::i;5699:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9511:134;;;;;;:::i;:::-;-1:-1:-1;;;;;9610:18:0;;;9583:7;9610:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9511:134;5406:48;;5448:6;5406:48;;17409:338;;;;;;:::i;:::-;;:::i;4359:41::-;;4398:2;4359:41;;5799:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3142:220;;;;;;:::i;:::-;;:::i;5216:58::-;;5255:19;5216:58;;5747:45;;;;;;:::i;:::-;;;;;;;;;;;;;;;;15433:536;2721:13;:11;:13::i;:::-;-1:-1:-1;;;;;15515:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;15507:53;;;::::0;-1:-1:-1;;;15507:53:0;;4202:2:1;15507:53:0::1;::::0;::::1;4184:21:1::0;4241:2;4221:18;;;4214:30;-1:-1:-1;;;4260:18:1;;;4253:50;4320:18;;15507:53:0::1;;;;;;;;;15586:9;15581:327;15605:9;:16:::0;15601:20;::::1;15581:327;;;15663:7;-1:-1:-1::0;;;;;15647:23:0::1;:9;15657:1;15647:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;15647:12:0::1;:23:::0;15643:254:::1;;15706:9;15716:16:::0;;:20:::1;::::0;15735:1:::1;::::0;15716:20:::1;:::i;:::-;15706:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;15691:9:::1;:12:::0;;-1:-1:-1;;;;;15706:31:0;;::::1;::::0;15701:1;;15691:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;15691:46:0::1;-1:-1:-1::0;;;;;15691:46:0;;::::1;;::::0;;15756:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;15795:11:::1;:20:::0;;;;:28;;-1:-1:-1;;15795:28:0::1;::::0;;15842:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15842:15:0;;;;;-1:-1:-1;;;;;;15842:15:0::1;::::0;;;;;15876:5:::1;;15643:254;15623:3;;15581:327;;;-1:-1:-1::0;15933:28:0::1;::::0;-1:-1:-1;;;;;15933:28:0;::::1;::::0;::::1;::::0;;;::::1;15433:536:::0;:::o;9657:152::-;9723:4;9740:39;2000:10;9763:7;9772:6;9740:8;:39::i;:::-;-1:-1:-1;9797:4:0;9657:152;;;;;:::o;16053:168::-;2721:13;:11;:13::i;:::-;-1:-1:-1;;;;;16133:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;;;;:27;;-1:-1:-1;;16133:27:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16176:37;;1335:41:1;;;16176:37:0::1;::::0;1308:18:1;16176:37:0::1;;;;;;;;16053:168:::0;;:::o;9821:459::-;9912:4;9929:36;9939:6;9947:9;9958:6;9929:9;:36::i;:::-;-1:-1:-1;;;;;10013:19:0;;9986:24;10013:19;;;:11;:19;;;;;;;;2000:10;10013:33;;;;;;;;10065:26;;;;10057:79;;;;-1:-1:-1;;;10057:79:0;;5080:2:1;10057:79:0;;;5062:21:1;5119:2;5099:18;;;5092:30;5158:34;5138:18;;;5131:62;-1:-1:-1;;;5209:18:1;;;5202:38;5257:19;;10057:79:0;4878:404:1;10057:79:0;10172:57;10181:6;2000:10;10222:6;10203:16;:25;10172:8;:57::i;:::-;-1:-1:-1;10268:4:0;;9821:459;-1:-1:-1;;;;9821:459:0:o;14940:481::-;2721:13;:11;:13::i;:::-;-1:-1:-1;;;;;15025:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;15024:21;15016:58;;;::::0;-1:-1:-1;;;15016:58:0;;5489:2:1;15016:58:0::1;::::0;::::1;5471:21:1::0;5528:2;5508:18;;;5501:30;5567:26;5547:18;;;5540:54;5611:18;;15016:58:0::1;5287:348:1::0;15016:58:0::1;15093:9;:16:::0;4398:2:::1;-1:-1:-1::0;15085:71:0::1;;;::::0;-1:-1:-1;;;15085:71:0;;5842:2:1;15085:71:0::1;::::0;::::1;5824:21:1::0;5881:2;5861:18;;;5854:30;5920:29;5900:18;;;5893:57;5967:18;;15085:71:0::1;5640:351:1::0;15085:71:0::1;-1:-1:-1::0;;;;;15181:16:0;::::1;15200:1;15181:16:::0;;;:7:::1;:16;::::0;;;;;:20;15177:109:::1;;-1:-1:-1::0;;;;;15257:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;15237:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;15218:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;15177:109:::1;-1:-1:-1::0;;;;;15296:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;:27;;-1:-1:-1;;15296:27:0::1;15319:4;15296:27:::0;;::::1;::::0;;;15334:9:::1;:23:::0;;;;::::1;::::0;;;;;::::1;::::0;;-1:-1:-1;;;;;;15334:23:0::1;::::0;::::1;::::0;;15383:30;::::1;::::0;15296:20;15383:30:::1;14940:481:::0;:::o;14678:250::-;14745:7;14784;;14773;:18;;14765:73;;;;-1:-1:-1;;;14765:73:0;;6198:2:1;14765:73:0;;;6180:21:1;6237:2;6217:18;;;6210:30;6276:34;6256:18;;;6249:62;-1:-1:-1;;;6327:18:1;;;6320:40;6377:19;;14765:73:0;5996:406:1;14765:73:0;14849:19;14871:10;:8;:10::i;:::-;14849:32;-1:-1:-1;14899:21:0;14849:32;14899:7;:21;:::i;:::-;14892:28;14678:250;-1:-1:-1;;;14678:250:0:o;16723:299::-;2721:13;:11;:13::i;:::-;16817:1:::1;16808:6;:10;16800:34;;;::::0;-1:-1:-1;;;16800:34:0;;6831:2:1;16800:34:0::1;::::0;::::1;6813:21:1::0;6870:2;6850:18;;;6843:30;-1:-1:-1;;;6889:18:1;;;6882:41;6940:18;;16800:34:0::1;6629:335:1::0;16800:34:0::1;16863:24;16881:4;16863:9;:24::i;:::-;16853:6;:34;;16845:67;;;::::0;-1:-1:-1;;;16845:67:0;;7171:2:1;16845:67:0::1;::::0;::::1;7153:21:1::0;7210:2;7190:18;;;7183:30;-1:-1:-1;;;7229:18:1;;;7222:50;7289:18;;16845:67:0::1;6969:344:1::0;16845:67:0::1;16923:46;16941:4;2000:10:::0;16962:6:::1;16923:9;:46::i;:::-;16985:29;::::0;1533:25:1;;;16985:29:0::1;::::0;1521:2:1;1506:18;16985:29:0::1;;;;;;;16723:299:::0;:::o;10292:207::-;2000:10;10372:4;10421:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10421:34:0;;;;;;;;;;10372:4;;10389:80;;10412:7;;10421:47;;10458:10;;10421:47;:::i;:::-;10389:8;:80::i;12468:421::-;2721:13;:11;:13::i;:::-;12520:14:::1;12537:16;:14;:16::i;:::-;12520:33;;12581:1;12572:6;:10;12564:44;;;::::0;-1:-1:-1;;;12564:44:0;;7650:2:1;12564:44:0::1;::::0;::::1;7632:21:1::0;7689:2;7669:18;;;7662:30;-1:-1:-1;;;7708:18:1;;;7701:51;7769:18;;12564:44:0::1;7448:345:1::0;12564:44:0::1;5041:20;12637:6;12627:7;;:16;;;;:::i;:::-;:32;;12619:65;;;::::0;-1:-1:-1;;;12619:65:0;;8000:2:1;12619:65:0::1;::::0;::::1;7982:21:1::0;8039:2;8019:18;;;8012:30;-1:-1:-1;;;8058:18:1;;;8051:50;8118:18;;12619:65:0::1;7798:344:1::0;12619:65:0::1;12723:6;12705:14;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12752:15:0::1;12740:9;:27:::0;12788:33:::1;12802:10;12814:6:::0;12788:13:::1;:33::i;:::-;12847:34;::::0;1533:25:1;;;12862:10:0::1;::::0;12847:34:::1;::::0;1521:2:1;1506:18;12847:34:0::1;;;;;;;12509:380;12468:421::o:0;11094:535::-;2000:10;11171:30;;;;:16;:30;;;;;;;;11163:57;;;;-1:-1:-1;;;11163:57:0;;8349:2:1;11163:57:0;;;8331:21:1;8388:2;8368:18;;;8361:30;-1:-1:-1;;;8407:18:1;;;8400:44;8461:18;;11163:57:0;8147:338:1;11163:57:0;-1:-1:-1;;;;;11239:21:0;;11231:46;;;;-1:-1:-1;;;11231:46:0;;8692:2:1;11231:46:0;;;8674:21:1;8731:2;8711:18;;;8704:30;-1:-1:-1;;;8750:18:1;;;8743:42;8802:18;;11231:46:0;8490:336:1;11231:46:0;11305:1;11296:6;:10;11288:39;;;;-1:-1:-1;;;11288:39:0;;9033:2:1;11288:39:0;;;9015:21:1;9072:2;9052:18;;;9045:30;-1:-1:-1;;;9091:18:1;;;9084:46;9147:18;;11288:39:0;8831:340:1;11288:39:0;5181:19;11367:6;11346:18;;:27;;;;:::i;:::-;:43;;11338:78;;;;-1:-1:-1;;;11338:78:0;;9378:2:1;11338:78:0;;;9360:21:1;9417:2;9397:18;;;9390:30;-1:-1:-1;;;9436:18:1;;;9429:52;9498:18;;11338:78:0;9176:346:1;11338:78:0;5041:20;11445:6;11435:7;;:16;;;;:::i;:::-;:32;;11427:65;;;;-1:-1:-1;;;11427:65:0;;8000:2:1;11427:65:0;;;7982:21:1;8039:2;8019:18;;;8012:30;-1:-1:-1;;;8058:18:1;;;8051:50;8118:18;;11427:65:0;7798:344:1;11427:65:0;11527:6;11505:18;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;11544:30:0;;-1:-1:-1;11558:7:0;11567:6;11544:13;:30::i;:::-;11605:7;-1:-1:-1;;;;;11600:21:0;;11614:6;11600:21;;;;1533:25:1;;1521:2;1506:18;;1387:177;18398:85:0;18450:25;18456:10;18468:6;18450:5;:25::i;:::-;18398:85;:::o;14180:486::-;14271:7;14310;;14299;:18;;14291:62;;;;-1:-1:-1;;;14291:62:0;;9729:2:1;14291:62:0;;;9711:21:1;9768:2;9748:18;;;9741:30;9807:33;9787:18;;;9780:61;9858:18;;14291:62:0;9527:355:1;14291:62:0;14369:17;14364:295;;14403:12;14418:10;:8;:10::i;:::-;14403:25;-1:-1:-1;14450:14:0;14403:25;14450:7;:14;:::i;:::-;14443:21;;;;;14364:295;14498:23;14531:32;14546:7;14555;;14531:14;:32::i;:::-;14497:66;;;;;14578:12;14593:10;:8;:10::i;:::-;14578:25;-1:-1:-1;14625:22:0;14578:25;14625:15;:22;:::i;:::-;14618:29;;;;;;17034:220;2721:13;:11;:13::i;:::-;-1:-1:-1;;;;;17119:23:0;::::1;17111:48;;;::::0;-1:-1:-1;;;17111:48:0;;8692:2:1;17111:48:0::1;::::0;::::1;8674:21:1::0;8731:2;8711:18;;;8704:30;-1:-1:-1;;;8750:18:1;;;8743:42;8802:18;;17111:48:0::1;8490:336:1::0;17111:48:0::1;17170:15;:27:::0;;-1:-1:-1;;;;;;17170:27:0::1;-1:-1:-1::0;;;;;17170:27:0;::::1;::::0;;::::1;::::0;;;17213:33:::1;::::0;::::1;::::0;-1:-1:-1;;17213:33:0::1;17034:220:::0;:::o;9139:189::-;-1:-1:-1;;;;;9220:20:0;;9196:7;9220:20;;;:11;:20;;;;;;;;9216:49;;;-1:-1:-1;;;;;;9249:16:0;;;;;:7;:16;;;;;;;9139:189::o;9216:49::-;-1:-1:-1;;;;;9303:16:0;;;;;;:7;:16;;;;;;9283:37;;:19;:37::i;3031:103::-;2721:13;:11;:13::i;:::-;3096:30:::1;3123:1;3096:18;:30::i;:::-;3031:103::o:0;13779:117::-;13832:7;13874:14;;5255:19;13859:29;;;;:::i;:::-;13852:36;;13779:117;:::o;16421:290::-;2721:13;:11;:13::i;:::-;-1:-1:-1;;;;;16504:25:0;::::1;16496:58;;;::::0;-1:-1:-1;;;16496:58:0;;10262:2:1;16496:58:0::1;::::0;::::1;10244:21:1::0;10301:2;10281:18;;;10274:30;-1:-1:-1;;;10320:18:1;;;10313:50;10380:18;;16496:58:0::1;10060:344:1::0;16496:58:0::1;19517:17:::0;;16565:51:::1;;;::::0;-1:-1:-1;;;16565:51:0;;10611:2:1;16565:51:0::1;::::0;::::1;10593:21:1::0;10650:2;10630:18;;;10623:30;-1:-1:-1;;;10669:18:1;;;10662:44;10723:18;;16565:51:0::1;10409:338:1::0;16565:51:0::1;-1:-1:-1::0;;;;;16627:26:0;::::1;;::::0;;;:13:::1;:26;::::0;;;;;:33;;-1:-1:-1;;16627:33:0::1;16656:4;16627:33;::::0;;16676:27;::::1;::::0;16627:26;16676:27:::1;16421:290:::0;:::o;16233:170::-;2721:13;:11;:13::i;:::-;-1:-1:-1;;;;;16317:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;;;;:31;;-1:-1:-1;;16317:31:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16364;;1335:41:1;;;16364:31:0::1;::::0;1308:18:1;16364:31:0::1;1195:187:1::0;10511:413:0;2000:10;10596:4;10640:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10640:34:0;;;;;;;;;;10693:35;;;;10685:85;;;;-1:-1:-1;;;10685:85:0;;10954:2:1;10685:85:0;;;10936:21:1;10993:2;10973:18;;;10966:30;11032:34;11012:18;;;11005:62;-1:-1:-1;;;11083:18:1;;;11076:35;11128:19;;10685:85:0;10752:401:1;10685:85:0;10806:67;2000:10;10829:7;10857:15;10838:16;:34;10806:8;:67::i;:::-;-1:-1:-1;10912:4:0;;10511:413;-1:-1:-1;;;10511:413:0:o;9340:159::-;9410:4;9427:42;2000:10;9451:9;9462:6;9427:9;:42::i;11724:672::-;11771:7;5255:19;11795:14;;:30;11791:44;;-1:-1:-1;11834:1:0;;11724:672::o;11791:44::-;11848:15;11884:9;;11866:15;:27;;;;:::i;:::-;11848:45;;11908:7;11919:1;11908:12;11904:26;;11929:1;11922:8;;;11724:672;:::o;11904:26::-;12001:21;5448:6;12026:34;5368:1;5255:19;12026:34;:::i;:::-;12025:54;;;;:::i;:::-;12001:78;-1:-1:-1;12129:14:0;5505:7;12147:23;12163:7;12001:78;12147:23;:::i;:::-;12146:45;;;;:::i;:::-;12129:62;;12252:17;12287:14;;5255:19;12272:29;;;;:::i;:::-;12252:49;;12325:9;12316:6;:18;12312:42;;;12345:9;12336:18;;12312:42;-1:-1:-1;12382:6:0;11724:672;-1:-1:-1;;;11724:672:0:o;17836:554::-;2721:13;:11;:13::i;:::-;18068:12;18027:38:::1;18048:17:::0;18027:18;:38:::1;:::i;:::-;:53;;;;:::i;:::-;18084:3;18027:60;18005:133;;;::::0;-1:-1:-1;;;18005:133:0;;11360:2:1;18005:133:0::1;::::0;::::1;11342:21:1::0;11399:2;11379:18;;;11372:30;11438:25;11418:18;;;11411:53;11481:18;;18005:133:0::1;11158:347:1::0;18005:133:0::1;18159:17;:38:::0;;;18208:16:::1;:36:::0;;;18255:11:::1;:26:::0;;;18307:75:::1;::::0;;11712:25:1;;;11768:2;11753:18;;11746:34;;;11796:18;;;11789:34;;;18307:75:0::1;::::0;11700:2:1;11685:18;18307:75:0::1;;;;;;;17836:554:::0;;;:::o;13650:121::-;13703:7;13745:18;;5181:19;13730:33;;;;:::i;17409:338::-;2721:13;:11;:13::i;:::-;4638:4:::1;17504:7;:18;;17496:54;;;::::0;-1:-1:-1;;;17496:54:0;;12036:2:1;17496:54:0::1;::::0;::::1;12018:21:1::0;12075:2;12055:18;;;12048:30;12114:25;12094:18;;;12087:53;12157:18;;17496:54:0::1;11834:347:1::0;17496:54:0::1;4638:4;17569:8;:19;;17561:56;;;::::0;-1:-1:-1;;;17561:56:0;;12388:2:1;17561:56:0::1;::::0;::::1;12370:21:1::0;12427:2;12407:18;;;12400:30;12466:26;12446:18;;;12439:54;12510:18;;17561:56:0::1;12186:348:1::0;17561:56:0::1;17638:6;:16:::0;;;17665:7:::1;:18:::0;;;17709:30:::1;::::0;;12713:25:1;;;12769:2;12754:18;;12747:34;;;17709:30:0::1;::::0;12686:18:1;17709:30:0::1;;;;;;;17409:338:::0;;:::o;3142:220::-;2721:13;:11;:13::i;:::-;-1:-1:-1;;;;;3227:22:0;::::1;3223:93;;3273:31;::::0;-1:-1:-1;;;3273:31:0;;3301:1:::1;3273:31;::::0;::::1;3099:51:1::0;3072:18;;3273:31:0::1;2953:203:1::0;3223:93:0::1;3326:28;3345:8;3326:18;:28::i;2857:166::-:0;2808:7;2835:6;-1:-1:-1;;;;;2835:6:0;2000:10;2917:23;2913:103;;2964:40;;-1:-1:-1;;;2964:40:0;;2000:10;2964:40;;;3099:51:1;3072:18;;2964:40:0;2953:203:1;21299:323:0;-1:-1:-1;;;;;21392:19:0;;21384:57;;;;-1:-1:-1;;;21384:57:0;;12994:2:1;21384:57:0;;;12976:21:1;13033:2;13013:18;;;13006:30;13072:27;13052:18;;;13045:55;13117:18;;21384:57:0;12792:349:1;21384:57:0;-1:-1:-1;;;;;21460:21:0;;21452:57;;;;-1:-1:-1;;;21452:57:0;;13348:2:1;21452:57:0;;;13330:21:1;13387:2;13367:18;;;13360:30;13426:25;13406:18;;;13399:53;13469:18;;21452:57:0;13146:347:1;21452:57:0;-1:-1:-1;;;;;21530:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21582:32;;1533:25:1;;;21582:32:0;;1506:18:1;21582:32:0;;;;;;;21299:323;;;:::o;21783:995::-;-1:-1:-1;;;;;21871:18:0;;21863:57;;;;-1:-1:-1;;;21863:57:0;;13700:2:1;21863:57:0;;;13682:21:1;13739:2;13719:18;;;13712:30;13778:28;13758:18;;;13751:56;13824:18;;21863:57:0;13498:350:1;21863:57:0;-1:-1:-1;;;;;21939:16:0;;21931:53;;;;-1:-1:-1;;;21931:53:0;;14055:2:1;21931:53:0;;;14037:21:1;14094:2;14074:18;;;14067:30;14133:26;14113:18;;;14106:54;14177:18;;21931:53:0;13853:348:1;21931:53:0;22012:1;22003:6;:10;21995:34;;;;-1:-1:-1;;;21995:34:0;;6831:2:1;21995:34:0;;;6813:21:1;6870:2;6850:18;;;6843:30;-1:-1:-1;;;6889:18:1;;;6882:41;6940:18;;21995:34:0;6629:335:1;21995:34:0;-1:-1:-1;;;;;22138:15:0;;22046:12;22138:15;;;:9;:15;;;;;;22061:4;;22138:15;;;:32;;-1:-1:-1;;;;;;22157:13:0;;;;;;:9;:13;;;;;;;;22138:32;:51;;;-1:-1:-1;2808:7:0;2835:6;-1:-1:-1;;;;;22174:15:0;;;2835:6;;22174:15;22138:51;:68;;;-1:-1:-1;2808:7:0;2835:6;-1:-1:-1;;;;;22193:13:0;;;2835:6;;22193:13;22138:68;22134:116;;;-1:-1:-1;22233:5:0;22134:116;-1:-1:-1;;;;;22320:19:0;;22307:10;22320:19;;;:13;:19;;;;;;;;:41;;;;-1:-1:-1;;;;;;22344:17:0;;;;;;:13;:17;;;;;;;;22343:18;22320:41;-1:-1:-1;;;;;22387:19:0;;22372:11;22387:19;;;:13;:19;;;;;;22307:54;;-1:-1:-1;22372:11:0;22387:19;;22386:20;:41;;;;-1:-1:-1;;;;;;22410:17:0;;;;;;:13;:17;;;;;;;;22386:41;22372:55;;22448:18;22485:7;22481:223;;;22513:5;22509:138;;;-1:-1:-1;22552:6:0;;22509:138;;;22584:6;22580:67;;;-1:-1:-1;22624:7:0;;22580:67;22724:46;22741:4;22747:2;22751:6;22759:10;22724:16;:46::i;:::-;21852:926;;;;21783:995;;;:::o;20349:161::-;20391:7;20412:15;20429;20448:19;:17;:19::i;:::-;20411:56;;-1:-1:-1;20411:56:0;-1:-1:-1;20485:17:0;20411:56;;20485:17;:::i;:::-;20478:24;;;;20349:161;:::o;12986:574::-;-1:-1:-1;;;;;13069:21:0;;13061:61;;;;-1:-1:-1;;;13061:61:0;;14408:2:1;13061:61:0;;;14390:21:1;14447:2;14427:18;;;14420:30;14486:29;14466:18;;;14459:57;14533:18;;13061:61:0;14206:351:1;13061:61:0;13143:12;13158:10;:8;:10::i;:::-;13143:25;-1:-1:-1;13179:15:0;13197:13;13143:25;13197:6;:13;:::i;:::-;13179:31;;13317:6;13306:7;;:17;;;;;;;:::i;:::-;;;;;;;;13345:7;13334;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;13373:16:0;;;;;;:7;:16;;;;;:27;;13393:7;;13373:16;:27;;13393:7;;13373:27;:::i;:::-;;;;-1:-1:-1;;;;;;;13415:20:0;;;;;;:11;:20;;;;;;;;13411:79;;;-1:-1:-1;;;;;13452:16:0;;;;;;:7;:16;;;;;:26;;13472:6;;13452:16;:26;;13472:6;;13452:26;:::i;:::-;;;;-1:-1:-1;;13411:79:0;13515:37;;1533:25:1;;;-1:-1:-1;;;;;13515:37:0;;;13532:1;;-1:-1:-1;;;;;;;;;;;13515:37:0;1521:2:1;1506:18;13515:37:0;;;;;;;13050:510;;12986:574;;:::o;18491:801::-;-1:-1:-1;;;;;18567:21:0;;18559:56;;;;-1:-1:-1;;;18559:56:0;;14764:2:1;18559:56:0;;;14746:21:1;14803:2;14783:18;;;14776:30;-1:-1:-1;;;14822:18:1;;;14815:52;14884:18;;18559:56:0;14562:346:1;18559:56:0;18643:1;18634:6;:10;18626:39;;;;-1:-1:-1;;;18626:39:0;;15115:2:1;18626:39:0;;;15097:21:1;15154:2;15134:18;;;15127:30;-1:-1:-1;;;15173:18:1;;;15166:46;15229:18;;18626:39:0;14913:340:1;18626:39:0;18686:19;18708:10;:8;:10::i;:::-;18686:32;-1:-1:-1;18729:15:0;18747:20;18686:32;18747:6;:20;:::i;:::-;-1:-1:-1;;;;;18792:20:0;;;;;;:11;:20;;;;;;18729:38;;-1:-1:-1;18792:20:0;;18788:330;;;-1:-1:-1;;;;;18837:16:0;;;;;;:7;:16;;;;;;:26;-1:-1:-1;18837:26:0;18829:59;;;;-1:-1:-1;;;18829:59:0;;15460:2:1;18829:59:0;;;15442:21:1;15499:2;15479:18;;;15472:30;-1:-1:-1;;;15518:18:1;;;15511:50;15578:18;;18829:59:0;15258:344:1;18829:59:0;-1:-1:-1;;;;;18903:16:0;;;;;;:7;:16;;;;;:26;;18923:6;;18903:16;:26;;18923:6;;18903:26;:::i;:::-;;;;-1:-1:-1;;;;;;;18944:16:0;;;;;;:7;:16;;;;;:27;;18964:7;;18944:16;:27;;18964:7;;18944:27;:::i;:::-;;;;-1:-1:-1;18788:330:0;;-1:-1:-1;18788:330:0;;-1:-1:-1;;;;;19012:16:0;;;;;;:7;:16;;;;;;:27;-1:-1:-1;19012:27:0;19004:60;;;;-1:-1:-1;;;19004:60:0;;15460:2:1;19004:60:0;;;15442:21:1;15499:2;15479:18;;;15472:30;-1:-1:-1;;;15518:18:1;;;15511:50;15578:18;;19004:60:0;15258:344:1;19004:60:0;-1:-1:-1;;;;;19079:16:0;;;;;;:7;:16;;;;;:27;;19099:7;;19079:16;:27;;19099:7;;19079:27;:::i;:::-;;;;-1:-1:-1;;18788:330:0;19149:6;19138:7;;:17;;;;;;;:::i;:::-;;;;;;;;19177:7;19166;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;19210:37:0;;1533:25:1;;;19236:1:0;;-1:-1:-1;;;;;19210:37:0;;;-1:-1:-1;;;;;;;;;;;19210:37:0;1521:2:1;1506:18;19210:37:0;;;;;;;19268:7;-1:-1:-1;;;;;19263:21:0;;19277:6;19263:21;;;;1533:25:1;;1521:2;1506:18;;1387:177;19263:21:0;;;;;;;;18548:744;;18491:801;;:::o;19726:611::-;19839:23;19864:19;19885:18;19905:13;19941:10;19955:1;19941:15;19937:73;;-1:-1:-1;19981:7:0;;-1:-1:-1;19990:1:0;;-1:-1:-1;19990:1:0;;-1:-1:-1;19990:1:0;19973:25;;19937:73;20030:16;20074:5;20050:20;20060:10;20050:7;:20;:::i;:::-;20049:30;;;;:::i;:::-;20030:49;;20147:3;20126:17;;20115:8;:28;;;;:::i;:::-;20114:36;;;;:::i;:::-;20100:50;;20206:3;20186:16;;20175:8;:27;;;;:::i;:::-;20174:35;;;;:::i;:::-;20161:48;;20255:3;20240:11;;20229:8;:22;;;;:::i;:::-;20228:30;;;;:::i;:::-;20220:38;-1:-1:-1;20220:38:0;20311:10;20287:21;20297:11;20287:7;:21;:::i;:::-;:34;;;;:::i;:::-;:42;;;;:::i;:::-;20269:60;;19926:411;19726:611;;;;;;;;:::o;3370:191::-;3444:16;3463:6;;-1:-1:-1;;;;;3480:17:0;;;-1:-1:-1;;;;;;3480:17:0;;;;;;3513:40;;3463:6;;;;;;;3513:40;;3444:16;3513:40;3433:128;3370:191;:::o;22793:705::-;23002:17;23021:12;23035;23049:13;23079:35;23094:7;23103:10;23079:14;:35::i;:::-;23001:113;;;;;;;;23127:12;23142:10;:8;:10::i;:::-;23127:25;-1:-1:-1;23218:272:0;23247:6;23268:9;23292:7;23314:9;23338:11;23127:25;23338:4;:11;:::i;:::-;23364:4;23383:11;23390:4;23383;:11;:::i;:::-;23409:4;23428:12;23436:4;23428:5;:12;:::i;:::-;23455:5;23475:4;23218:14;:272::i;:::-;22942:556;;;;;22793:705;;;;:::o;20522:633::-;20620:7;;20656;;20699:9;:16;20573:7;;;;20620;;20573;20736:297;20760:14;20756:1;:18;20736:297;;;20824:7;20800;:21;20808:9;20818:1;20808:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;20808:12:0;20800:21;;;;;;;;;;;;;:31;;:66;;;20859:7;20835;:21;20843:9;20853:1;20843:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;20843:12:0;20835:21;;;;;;;;;;;;;:31;20800:66;20796:132;;;20895:7;;20904;;20887:25;;;;;;;;20522:633;;:::o;20796:132::-;20953:7;:21;20961:9;20971:1;20961:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;20961:12:0;20953:21;;;;;;;;;;;;;20942:32;;;;:::i;:::-;;;21000:7;:21;21008:9;21018:1;21008:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;21008:12:0;21000:21;;;;;;;;;;;;;20989:32;;;;:::i;:::-;;-1:-1:-1;20776:3:0;;20736:297;;;;21077:7;;21067;;:17;;;;:::i;:::-;21057:7;:27;21053:58;;;21094:7;;21103;;21086:25;;;;;;;20522:633;;:::o;21053:58::-;-1:-1:-1;21130:7:0;;21139;;-1:-1:-1;20522:633:0;-1:-1:-1;20522:633:0:o;23506:1460::-;23858:15;23876:14;23886:4;23876:7;:14;:::i;:::-;23858:32;-1:-1:-1;23901:23:0;23964:5;23951:10;23927:21;23937:11;23858:32;23927:21;:::i;:::-;:34;;;;:::i;:::-;:42;;;;:::i;:::-;-1:-1:-1;;;;;24007:15:0;;;;;;:7;:15;;;;;:26;;23901:68;;-1:-1:-1;24026:7:0;;24007:15;;;:26;;24026:7;;24007:26;:::i;:::-;;;;-1:-1:-1;;;;;;;24048:19:0;;;;;;:11;:19;;;;;;;;24044:56;;;-1:-1:-1;;;;;24071:15:0;;;;;;:7;:15;;;;;:26;;24090:7;;24071:15;:26;;24090:7;;24071:26;:::i;:::-;;;;-1:-1:-1;;24044:56:0;-1:-1:-1;;;;;24141:18:0;;;;;;:7;:18;;;;;:37;;24163:15;;24141:18;:37;;24163:15;;24141:37;:::i;:::-;;;;-1:-1:-1;;;;;;;24193:22:0;;;;;;:11;:22;;;;;;;;24189:70;;;-1:-1:-1;;;;;24219:18:0;;;;;;:7;:18;;;;;:37;;24241:15;;24219:18;:37;;24241:15;;24219:37;:::i;:::-;;;;-1:-1:-1;;24189:70:0;24298:15;;24294:63;;24317:37;24329:11;24342;24317;:37::i;:::-;24395:14;;24391:294;;24434:15;;-1:-1:-1;;;;;24434:15:0;24426:24;;;;:7;:24;;;;;:38;;24454:10;;24426:24;:38;;24454:10;;24426:38;:::i;:::-;;;;-1:-1:-1;;24495:15:0;;-1:-1:-1;;;;;24495:15:0;24483:28;;;;:11;:28;;;;;;;;24479:77;;;24523:15;;-1:-1:-1;;;;;24523:15:0;24515:24;;;;:7;:24;;;;;:38;;24543:10;;24515:24;:38;;24543:10;;24515:38;:::i;:::-;;;;-1:-1:-1;;24479:77:0;24592:15;;24575:45;;1533:25:1;;;-1:-1:-1;;;;;24592:15:0;;;;24575:45;;;-1:-1:-1;;;;;;;;;;;24575:45:0;1521:2:1;1506:18;24575:45:0;;;;;;;24640:33;;1533:25:1;;;24640:33:0;;1521:2:1;1506:18;24640:33:0;;;;;;;24391:294;24718:9;;24714:183;;24755:5;24744:7;;:16;;;;;;;:::i;:::-;;;;;;;;24786:5;24775:7;;:16;;;;;;;:::i;:::-;;;;-1:-1:-1;;24811:35:0;;1533:25:1;;;24836:1:0;;-1:-1:-1;;;;;24811:35:0;;;-1:-1:-1;;;;;;;;;;;24811:35:0;1521:2:1;1506:18;24811:35:0;;;;;;;24871:6;-1:-1:-1;;;;;24866:19:0;;24879:5;24866:19;;;;1533:25:1;;1521:2;1506:18;;1387:177;24866:19:0;;;;;;;;24714:183;24931:9;-1:-1:-1;;;;;24914:44:0;24923:6;-1:-1:-1;;;;;24914:44:0;-1:-1:-1;;;;;;;;;;;24942:15:0;24914:44;;;;1533:25:1;;1521:2;1506:18;;1387:177;24914:44:0;;;;;;;;23847:1119;;23506:1460;;;;;;;;;;;:::o;21167:120::-;21246:4;21235:7;;:15;;;;;;;:::i;:::-;;;;;;;;21275:4;21261:10;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;21167:120:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:548::-;495:4;524:2;553;542:9;535:21;585:6;579:13;628:6;623:2;612:9;608:18;601:34;653:1;663:140;677:6;674:1;671:13;663:140;;;772:14;;;768:23;;762:30;738:17;;;757:2;734:26;727:66;692:10;;663:140;;;667:3;852:1;847:2;838:6;827:9;823:22;819:31;812:42;922:2;915;911:7;906:2;898:6;894:15;890:29;879:9;875:45;871:54;863:62;;;;383:548;;;;:::o;936:254::-;1004:6;1012;1065:2;1053:9;1044:7;1040:23;1036:32;1033:52;;;1081:1;1078;1071:12;1033:52;1104:29;1123:9;1104:29;:::i;:::-;1094:39;1180:2;1165:18;;;;1152:32;;-1:-1:-1;;;936:254:1:o;1569:160::-;1634:20;;1690:13;;1683:21;1673:32;;1663:60;;1719:1;1716;1709:12;1734:254;1799:6;1807;1860:2;1848:9;1839:7;1835:23;1831:32;1828:52;;;1876:1;1873;1866:12;1828:52;1899:29;1918:9;1899:29;:::i;:::-;1889:39;;1947:35;1978:2;1967:9;1963:18;1947:35;:::i;:::-;1937:45;;1734:254;;;;;:::o;1993:328::-;2070:6;2078;2086;2139:2;2127:9;2118:7;2114:23;2110:32;2107:52;;;2155:1;2152;2145:12;2107:52;2178:29;2197:9;2178:29;:::i;:::-;2168:39;;2226:38;2260:2;2249:9;2245:18;2226:38;:::i;:::-;2216:48;;2311:2;2300:9;2296:18;2283:32;2273:42;;1993:328;;;;;:::o;2326:180::-;2385:6;2438:2;2426:9;2417:7;2413:23;2409:32;2406:52;;;2454:1;2451;2444:12;2406:52;-1:-1:-1;2477:23:1;;2326:180;-1:-1:-1;2326:180:1:o;2700:248::-;2765:6;2773;2826:2;2814:9;2805:7;2801:23;2797:32;2794:52;;;2842:1;2839;2832:12;2794:52;2878:9;2865:23;2855:33;;2907:35;2938:2;2927:9;2923:18;2907:35;:::i;3161:316::-;3238:6;3246;3254;3307:2;3295:9;3286:7;3282:23;3278:32;3275:52;;;3323:1;3320;3313:12;3275:52;-1:-1:-1;;3346:23:1;;;3416:2;3401:18;;3388:32;;-1:-1:-1;3467:2:1;3452:18;;;3439:32;;3161:316;-1:-1:-1;3161:316:1:o;3482:260::-;3550:6;3558;3611:2;3599:9;3590:7;3586:23;3582:32;3579:52;;;3627:1;3624;3617:12;3579:52;3650:29;3669:9;3650:29;:::i;:::-;3640:39;;3698:38;3732:2;3721:9;3717:18;3698:38;:::i;3747:248::-;3815:6;3823;3876:2;3864:9;3855:7;3851:23;3847:32;3844:52;;;3892:1;3889;3882:12;3844:52;-1:-1:-1;;3915:23:1;;;3985:2;3970:18;;;3957:32;;-1:-1:-1;3747:248:1:o;4349:127::-;4410:10;4405:3;4401:20;4398:1;4391:31;4441:4;4438:1;4431:15;4465:4;4462:1;4455:15;4481:127;4542:10;4537:3;4533:20;4530:1;4523:31;4573:4;4570:1;4563:15;4597:4;4594:1;4587:15;4613:128;4680:9;;;4701:11;;;4698:37;;;4715:18;;:::i;4746:127::-;4807:10;4802:3;4798:20;4795:1;4788:31;4838:4;4835:1;4828:15;4862:4;4859:1;4852:15;6407:217;6447:1;6473;6463:132;;6517:10;6512:3;6508:20;6505:1;6498:31;6552:4;6549:1;6542:15;6580:4;6577:1;6570:15;6463:132;-1:-1:-1;6609:9:1;;6407:217::o;7318:125::-;7383:9;;;7404:10;;;7401:36;;;7417:18;;:::i;9887:168::-;9960:9;;;9991;;10008:15;;;10002:22;;9988:37;9978:71;;10029:18;;:::i

Swarm Source

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