ETH Price: $3,454.21 (+1.63%)
Gas: 4.75 Gwei

Token

The Upgraded Inu (WOLF)
 

Overview

Max Total Supply

1,000,000,000,000 WOLF

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 WOLF

Value
$0.00
0x8bbf3d8c076df2fe640953f7c497b1942f540630
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
WOLF

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-20
*/

/**
0 Tax, liquidity being locked for 100 years. 

Telegram: T.me/WolfinuETH
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.11;

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

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

    interface IERC20 {

        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }

    library SafeMath {
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            uint256 c = a + b;
            require(c >= a, "SafeMath: addition overflow");

            return c;
        }
        function sub(uint256 a, uint256 b) internal pure returns (uint256) {
            return sub(a, b, "SafeMath: subtraction overflow");
        }
        function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b <= a, errorMessage);
            uint256 c = a - b;

            return c;
        }
        function mul(uint256 a, uint256 b) internal pure returns (uint256) {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) {
                return 0;
            }

            uint256 c = a * b;
            require(c / a == b, "SafeMath: multiplication overflow");

            return c;
        }
        function div(uint256 a, uint256 b) internal pure returns (uint256) {
            return div(a, b, "SafeMath: division by zero");
        }
        function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b > 0, errorMessage);
            uint256 c = a / b;
            // assert(a == b * c + a % b); // There is no case in which this doesn't hold

            return c;
        }
        function mod(uint256 a, uint256 b) internal pure returns (uint256) {
            return mod(a, b, "SafeMath: modulo by zero");
        }
        function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b != 0, errorMessage);
            return a % b;
        }
    }

    library Address {

        function isContract(address account) internal view returns (bool) {
            // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
            // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
            // for accounts without code, i.e. `keccak256('')`
            bytes32 codehash;
            bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
            // solhint-disable-next-line no-inline-assembly
            assembly { codehash := extcodehash(account) }
            return (codehash != accountHash && codehash != 0x0);
        }

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

            // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
            (bool success, ) = recipient.call{ value: amount }("");
            require(success, "Address: unable to send value, recipient may have reverted");
        }

        function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
        }

        function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
            return _functionCallWithValue(target, data, 0, errorMessage);
        }

        function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
            return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
        }

        function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
            require(address(this).balance >= value, "Address: insufficient balance for call");
            return _functionCallWithValue(target, data, value, errorMessage);
        }

        function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
            require(isContract(target), "Address: call to non-contract");

            // solhint-disable-next-line avoid-low-level-calls
            (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
            if (success) {
                return returndata;
            } else {
                // Look for revert reason and bubble it up if present
                if (returndata.length > 0) {
                    // The easiest way to bubble the revert reason is using memory via assembly

                    // solhint-disable-next-line no-inline-assembly
                    assembly {
                        let returndata_size := mload(returndata)
                        revert(add(32, returndata), returndata_size)
                    }
                } else {
                    revert(errorMessage);
                }
            }
        }
    }

    contract Ownable is Context {
        address private _owner;
        address private _previousOwner;
        uint256 private _lockTime;

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

        constructor () {
            address msgSender = _msgSender();
            _owner = msgSender;
            emit OwnershipTransferred(address(0), msgSender);
        }

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

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

        function renounceOwnership() public virtual onlyOwner {
            emit OwnershipTransferred(_owner, address(0));
            _owner = address(0);
        }

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

        function geUnlockTime() public view returns (uint256) {
            return _lockTime;
        }

        //Locks the contract for owner for the amount of time provided
        function lock(uint256 time) public virtual onlyOwner {
            _previousOwner = _owner;
            _owner = address(0);
            _lockTime = block.timestamp + time;
            emit OwnershipTransferred(_owner, address(0));
        }
        
        //Unlocks the contract for owner when _lockTime is exceeds
        function unlock() public virtual {
            require(_previousOwner == msg.sender, "You don't have permission to unlock");
            require(block.timestamp > _lockTime , "Contract is locked until 7 days");
            emit OwnershipTransferred(_owner, _previousOwner);
            _owner = _previousOwner;
        }
    }  

    interface IUniswapV2Factory {
        event PairCreated(address indexed token0, address indexed token1, address pair, uint);

        function feeTo() external view returns (address);
        function feeToSetter() external view returns (address);

        function getPair(address tokenA, address tokenB) external view returns (address pair);
        function allPairs(uint) external view returns (address pair);
        function allPairsLength() external view returns (uint);

        function createPair(address tokenA, address tokenB) external returns (address pair);

        function setFeeTo(address) external;
        function setFeeToSetter(address) external;
    } 

    interface IUniswapV2Pair {
        event Approval(address indexed owner, address indexed spender, uint value);
        event Transfer(address indexed from, address indexed to, uint value);

        function name() external pure returns (string memory);
        function symbol() external pure returns (string memory);
        function decimals() external pure returns (uint8);
        function totalSupply() external view returns (uint);
        function balanceOf(address owner) external view returns (uint);
        function allowance(address owner, address spender) external view returns (uint);

        function approve(address spender, uint value) external returns (bool);
        function transfer(address to, uint value) external returns (bool);
        function transferFrom(address from, address to, uint value) external returns (bool);

        function DOMAIN_SEPARATOR() external view returns (bytes32);
        function PERMIT_TYPEHASH() external pure returns (bytes32);
        function nonces(address owner) external view returns (uint);

        function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

        event Mint(address indexed sender, uint amount0, uint amount1);
        event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
        event Swap(
            address indexed sender,
            uint amount0In,
            uint amount1In,
            uint amount0Out,
            uint amount1Out,
            address indexed to
        );
        event Sync(uint112 reserve0, uint112 reserve1);

        function MINIMUM_LIQUIDITY() external pure returns (uint);
        function factory() external view returns (address);
        function token0() external view returns (address);
        function token1() external view returns (address);
        function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
        function price0CumulativeLast() external view returns (uint);
        function price1CumulativeLast() external view returns (uint);
        function kLast() external view returns (uint);

        function mint(address to) external returns (uint liquidity);
        function burn(address to) external returns (uint amount0, uint amount1);
        function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
        function skim(address to) external;
        function sync() external;

        function initialize(address, address) external;
    }

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

        function addLiquidity(
            address tokenA,
            address tokenB,
            uint amountADesired,
            uint amountBDesired,
            uint amountAMin,
            uint amountBMin,
            address to,
            uint deadline
        ) external returns (uint amountA, uint amountB, uint liquidity);
        function addLiquidityETH(
            address token,
            uint amountTokenDesired,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
        function removeLiquidity(
            address tokenA,
            address tokenB,
            uint liquidity,
            uint amountAMin,
            uint amountBMin,
            address to,
            uint deadline
        ) external returns (uint amountA, uint amountB);
        function removeLiquidityETH(
            address token,
            uint liquidity,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external returns (uint amountToken, uint amountETH);
        function removeLiquidityWithPermit(
            address tokenA,
            address tokenB,
            uint liquidity,
            uint amountAMin,
            uint amountBMin,
            address to,
            uint deadline,
            bool approveMax, uint8 v, bytes32 r, bytes32 s
        ) external returns (uint amountA, uint amountB);
        function removeLiquidityETHWithPermit(
            address token,
            uint liquidity,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline,
            bool approveMax, uint8 v, bytes32 r, bytes32 s
        ) external returns (uint amountToken, uint amountETH);
        function swapExactTokensForTokens(
            uint amountIn,
            uint amountOutMin,
            address[] calldata path,
            address to,
            uint deadline
        ) external returns (uint[] memory amounts);
        function swapTokensForExactTokens(
            uint amountOut,
            uint amountInMax,
            address[] calldata path,
            address to,
            uint deadline
        ) external returns (uint[] memory amounts);
        function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
            external
            payable
            returns (uint[] memory amounts);
        function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
            external
            returns (uint[] memory amounts);
        function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
            external
            returns (uint[] memory amounts);
        function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
            external
            payable
            returns (uint[] memory amounts);

        function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
        function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
        function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
        function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
        function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
    }

    interface IUniswapV2Router02 is IUniswapV2Router01 {
        function removeLiquidityETHSupportingFeeOnTransferTokens(
            address token,
            uint liquidity,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external returns (uint amountETH);
        function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
            address token,
            uint liquidity,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline,
            bool approveMax, uint8 v, bytes32 r, bytes32 s
        ) external returns (uint amountETH);

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

    // Contract implementation
    contract WOLF is Context, IERC20, Ownable {
        using SafeMath for uint256;
        using Address for address; 

        mapping (address => uint256) private _rOwned;
        mapping (address => uint256) private _tOwned;
        mapping (address => mapping (address => uint256)) private _allowances;
        mapping (address => bool) private _isExcludedFromFee;

        mapping (address => bool) private _isExcluded;
        address[] private _excluded;
    
        uint256 private constant MAX = ~uint256(0);
        uint256 private _tTotal = 1_000_000_000_000* 10**9;
        uint256 private _rTotal = (MAX - (MAX % _tTotal));
        uint256 private _tFeeTotal;

        string private _name = 'The Upgraded Inu';
        string private _symbol = 'WOLF';
        uint8 private _decimals = 9;
        
        uint256 public _liquidityFee = 0;
        uint256 private _taxFee = 0;
        uint256 private _previousTaxFee = _taxFee;
    
        address payable private _MarketingWalletAddress;
        
        IUniswapV2Router02 public immutable uniswapV2Router;
        address public immutable uniswapV2Pair;

        bool inSwap = false;
        bool public swapEnabled = true;

        uint256 private _maxTxAmount = _tTotal * 3 / 100;
        uint256 private _numOfTokensToExchangeForMarketing = 5 * 10**3 * 10**9;
        uint256 private _Denominator = 17;
        uint256 private _previousDenominator = _Denominator; 

        event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
        event SwapEnabledUpdated(bool enabled);

        modifier lockTheSwap {
            inSwap = true;
            _;
            inSwap = false;
        }

        constructor (address payable MarketingWalletAddress) public {
            _MarketingWalletAddress = MarketingWalletAddress;
            _rOwned[_msgSender()] = _rTotal;

            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());

            uniswapV2Router = _uniswapV2Router;

            _isExcludedFromFee[owner()] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[_MarketingWalletAddress] = true;
       

            emit Transfer(address(0), _msgSender(), _tTotal);
        }

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

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

        function decimals() public view returns (uint8) {
            return _decimals;
        }

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

        function balanceOf(address account) public view override returns (uint256) {
            if (_isExcluded[account]) return _tOwned[account];
            return tokenFromReflection(_rOwned[account]);
        }

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

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

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

        function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
            _transfer(sender, recipient, amount);
            _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
            return true;
        }

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

        function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
            _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
            return true;
        }

        function deliver(uint256 tAmount) public {
            address sender = _msgSender();
            require(!_isExcluded[sender], "Excluded addresses cannot call this function");
            (uint256 rAmount,,,,,) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _rTotal = _rTotal.sub(rAmount);
            _tFeeTotal = _tFeeTotal.add(tAmount);
        }

        function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
            require(tAmount <= _tTotal, "Amount must be less than supply");
            if (!deductTransferFee) {
                (uint256 rAmount,,,,,) = _getValues(tAmount);
                return rAmount;
            } else {
                (,uint256 rTransferAmount,,,,) = _getValues(tAmount);
                return rTransferAmount;
            }
        }

        function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
            require(rAmount <= _rTotal, "Amount must be less than total reflections");
            uint256 currentRate =  _getRate();
            return rAmount.div(currentRate);
        }

        function excludeAccount(address account) external onlyOwner() {
            require(!_isExcluded[account], "Account is already excluded");
            if(_rOwned[account] > 0) {
                _tOwned[account] = tokenFromReflection(_rOwned[account]);
            }
            _isExcluded[account] = true;
            _excluded.push(account);
        }

        function includeAccount(address account) external onlyOwner() {
            require(_isExcluded[account], "Account is already 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;
                }
            }
        }

        function removeAllFee() private {
            if(_taxFee == 0 && _Denominator == 0) return;
            
            _previousTaxFee = _taxFee;
            _previousDenominator = _Denominator;
            
            _taxFee = 0;
            _Denominator = 0;
        }
    
        function restoreAllFee() private {
            _taxFee = _previousTaxFee;
            _Denominator = _previousDenominator;
        }
    
        function isExcludedFromFee(address account) public view returns(bool) {
            return _isExcludedFromFee[account];
        }

        function _approve(address owner, address spender, uint256 amount) private {
            require(owner != address(0), "ERC20: approve from the zero address");
            require(spender != address(0), "ERC20: approve to the zero address");

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

        function _transfer(address sender, address recipient, uint256 amount) private {
            require(sender != address(0), "ERC20: transfer from the zero address");
            require(recipient != address(0), "ERC20: transfer to the zero address");
            require(amount > 0, "Transfer amount must be greater than zero");
            
            if(sender != owner() && recipient != owner())
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");

           
            uint256 contractTokenBalance = balanceOf(address(this));
            
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            bool overMinTokenBalance = contractTokenBalance >= _numOfTokensToExchangeForMarketing;
            if (!inSwap && swapEnabled && overMinTokenBalance && sender != uniswapV2Pair) {
               
                swapTokensForEth(contractTokenBalance);

            }
            
        
            bool takeFee = true;
            
      
            if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){
                takeFee = false;
            }
            
      
            _tokenTransfer(sender,recipient,amount,takeFee);
        }

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

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

         
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0, 
                path,
                address(this),
                block.timestamp
            );
        }
        
        function sendETHToMarketing(uint256 amount) private {
            _MarketingWalletAddress.transfer(amount);
          
        }
        
        function manualSwap() external {
            uint256 contractBalance = balanceOf(address(this));
            swapTokensForEth(contractBalance);
        }
        
        function manualSend() external {
            uint256 contractETHBalance = address(this).balance;
            _MarketingWalletAddress.transfer(contractETHBalance);
        }
        
        function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
            if(!takeFee)
                removeAllFee();

            if (_isExcluded[sender] && !_isExcluded[recipient]) {
                _transferFromExcluded(sender, recipient, amount);
            } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
                _transferToExcluded(sender, recipient, amount);
            } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
                _transferStandard(sender, recipient, amount);
            } else if (_isExcluded[sender] && _isExcluded[recipient]) {
                _transferBothExcluded(sender, recipient, amount);
            } else {
                _transferStandard(sender, recipient, amount);
            }

            if(!takeFee)
                restoreAllFee();
        }

        function _transferStandard(address sender, address recipient, uint256 tAmount) private {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
            _takeMarketing(tMarketing); 
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        }

        function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);    
            _takeMarketing(tMarketing);           
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        }

        function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getValues(tAmount);
            _tOwned[sender] = _tOwned[sender].sub(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
            _takeMarketing(tMarketing);   
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        }

        function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getValues(tAmount);
            _tOwned[sender] = _tOwned[sender].sub(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
            _takeMarketing(tMarketing);         
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        }

        function _takeMarketing(uint256 tMarketing) private {
            uint256 currentRate =  _getRate();
            uint256 rMarketing = tMarketing.mul(currentRate);
            _rOwned[address(this)] = _rOwned[address(this)].add(rMarketing);
            if(_isExcluded[address(this)])
                _tOwned[address(this)] = _tOwned[address(this)].add(tMarketing);
        }

        function _reflectFee(uint256 rFee, uint256 tFee) private {
            _rTotal = _rTotal.sub(rFee);
            _tFeeTotal = _tFeeTotal.add(tFee);
        }

        receive() external payable {}

        function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
            (uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getTValues(tAmount, _taxFee, _Denominator);
            uint256 currentRate =  _getRate();
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
            return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tMarketing);
        }

        function _getTValues(uint256 tAmount, uint256 taxFee, uint256 MarketingFee) private pure returns (uint256, uint256, uint256) {
            uint256 tFee = tAmount.mul(taxFee).div(100);
            uint256 tMarketing = tAmount.mul(MarketingFee).div(100);
            uint256 tTransferAmount = tAmount.sub(tFee).sub(tMarketing);
            return (tTransferAmount, tFee, tMarketing);
        }

        function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
            uint256 rAmount = tAmount.mul(currentRate);
            uint256 rFee = tFee.mul(currentRate);
            uint256 rTransferAmount = rAmount.sub(rFee);
            return (rAmount, rTransferAmount, rFee);
        }

        function _getRate() private view returns(uint256) {
            (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
            return rSupply.div(tSupply);
        }

        function _getCurrentSupply() private view returns(uint256, uint256) {
            uint256 rSupply = _rTotal;
            uint256 tSupply = _tTotal;      
            for (uint256 i = 0; i < _excluded.length; i++) {
                if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
                rSupply = rSupply.sub(_rOwned[_excluded[i]]);
                tSupply = tSupply.sub(_tOwned[_excluded[i]]);
            }
            if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
            return (rSupply, tSupply);
        }

        function _getMaxTxAmount() public view returns(uint256) {
            return _maxTxAmount;
        }
        
        function _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
            _maxTxAmount = maxTxAmount;
        }
   
    }

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"MarketingWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052683635c9adc5dea0000060098190556200002190600019620004c6565b6200002f90600019620004f3565b600a556040805180820190915260108082526f54686520557067726164656420496e7560801b60209092019182526200006b91600c916200040a565b50604080518082019091526004808252632ba7a62360e11b60209092019182526200009991600d916200040a565b50600e805460ff191660099081179091556000600f81905560108190556011556012805461ffff60a01b1916600160a81b17905554606490620000de9060036200050d565b620000ea91906200052f565b60135565048c2739500060145560116015556015546016553480156200010f57600080fd5b506040516200294b3803806200294b83398101604081905262000132916200055f565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601280546001600160a01b0319166001600160a01b038316179055600a54600360006200019d3390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000219573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023f91906200055f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b391906200055f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000301573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032791906200055f565b6001600160a01b0390811660a0528116608052600160066000620003536000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526006909352818320805485166001908117909155601254909116835291208054909216179055620003b23390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620003fa91815260200190565b60405180910390a35050620005c3565b828054620004189062000586565b90600052602060002090601f0160209004810192826200043c576000855562000487565b82601f106200045757805160ff191683800117855562000487565b8280016001018555821562000487579182015b82811115620004875782518255916020019190600101906200046a565b506200049592915062000499565b5090565b5b808211156200049557600081556001016200049a565b634e487b7160e01b600052601260045260246000fd5b600082620004d857620004d8620004b0565b500690565b634e487b7160e01b600052601160045260246000fd5b600082821015620005085762000508620004dd565b500390565b60008160001904831182151516156200052a576200052a620004dd565b500290565b600082620005415762000541620004b0565b500490565b6001600160a01b03811681146200055c57600080fd5b50565b6000602082840312156200057257600080fd5b81516200057f8162000546565b9392505050565b600181811c908216806200059b57607f821691505b60208210811415620005bd57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05161234662000605600039600081816103a401526113ac015260008181610255015281816116540152818161170d015261174901526123466000f3fe6080604052600436106101dc5760003560e01c80636ddd171311610102578063b6c5232411610095578063f2fde38b11610064578063f2fde38b146105a3578063f4293890146105c3578063f7a91591146105d8578063f84354f1146105ed57600080fd5b8063b6c5232414610508578063dd4670641461051d578063dd62ed3e1461053d578063f2cc0c181461058357600080fd5b806395d89b41116100d157806395d89b411461049e578063a457c2d7146104b3578063a69df4b5146104d3578063a9059cbb146104e857600080fd5b80636ddd17131461042a57806370a082311461044b578063715018a61461046b5780638da5cb5b1461048057600080fd5b8063313ce5671161017a57806349bd5a5e1161014957806349bd5a5e1461039257806351bc3c85146103c65780635342acb4146103db5780636bc87c3a1461041457600080fd5b8063313ce5671461031057806339509351146103325780633bd5d173146103525780634549b0391461037257600080fd5b806318160ddd116101b657806318160ddd1461028f5780631bbae6e0146102ae57806323b872dd146102d05780632d838119146102f057600080fd5b806306fdde03146101e8578063095ea7b3146102135780631694505e1461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61060d565b60405161020a9190611f68565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004611fd2565b61069f565b604051901515815260200161020a565b34801561024f57600080fd5b506102777f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161020a565b34801561029b57600080fd5b506009545b60405190815260200161020a565b3480156102ba57600080fd5b506102ce6102c9366004611ffe565b6106b6565b005b3480156102dc57600080fd5b506102336102eb366004612017565b6106ee565b3480156102fc57600080fd5b506102a061030b366004611ffe565b610757565b34801561031c57600080fd5b50600e5460405160ff909116815260200161020a565b34801561033e57600080fd5b5061023361034d366004611fd2565b6107db565b34801561035e57600080fd5b506102ce61036d366004611ffe565b610811565b34801561037e57600080fd5b506102a061038d366004612058565b6108fb565b34801561039e57600080fd5b506102777f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d257600080fd5b506102ce610988565b3480156103e757600080fd5b506102336103f636600461208d565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561042057600080fd5b506102a0600f5481565b34801561043657600080fd5b5060125461023390600160a81b900460ff1681565b34801561045757600080fd5b506102a061046636600461208d565b6109a1565b34801561047757600080fd5b506102ce610a00565b34801561048c57600080fd5b506000546001600160a01b0316610277565b3480156104aa57600080fd5b506101fd610a62565b3480156104bf57600080fd5b506102336104ce366004611fd2565b610a71565b3480156104df57600080fd5b506102ce610ac0565b3480156104f457600080fd5b50610233610503366004611fd2565b610bc6565b34801561051457600080fd5b506002546102a0565b34801561052957600080fd5b506102ce610538366004611ffe565b610bd3565b34801561054957600080fd5b506102a06105583660046120aa565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561058f57600080fd5b506102ce61059e36600461208d565b610c58565b3480156105af57600080fd5b506102ce6105be36600461208d565b610dab565b3480156105cf57600080fd5b506102ce610e83565b3480156105e457600080fd5b506013546102a0565b3480156105f957600080fd5b506102ce61060836600461208d565b610ec1565b6060600c805461061c906120d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610648906120d8565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b60006106ac338484611074565b5060015b92915050565b6000546001600160a01b031633146106e95760405162461bcd60e51b81526004016106e090612113565b60405180910390fd5b601355565b60006106fb848484611198565b61074d8433610748856040518060600160405280602881526020016122a4602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061144e565b611074565b5060019392505050565b6000600a548211156107be5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e0565b60006107c8611488565b90506107d483826114ab565b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106ac91859061074890866114ed565b3360008181526007602052604090205460ff16156108865760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016106e0565b60006108918361154c565b505050506001600160a01b0384166000908152600360205260409020549192506108bd919050826115a8565b6001600160a01b038316600090815260036020526040902055600a546108e390826115a8565b600a55600b546108f390846114ed565b600b55505050565b600060095483111561094f5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016106e0565b8161096e57600061095f8461154c565b509395506106b0945050505050565b60006109798461154c565b509295506106b0945050505050565b6000610993306109a1565b905061099e816115ea565b50565b6001600160a01b03811660009081526007602052604081205460ff16156109de57506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546106b090610757565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b81526004016106e090612113565b600080546040516001600160a01b03909116906000805160206122cc833981519152908390a3600080546001600160a01b0319169055565b6060600d805461061c906120d8565b60006106ac3384610748856040518060600160405280602581526020016122ec602591393360009081526005602090815260408083206001600160a01b038d168452909152902054919061144e565b6001546001600160a01b03163314610b265760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016106e0565b6002544211610b775760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016106e0565b600154600080546040516001600160a01b0393841693909116916000805160206122cc83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60006106ac338484611198565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016106e090612113565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610c2c814261215e565b600255600080546040516001600160a01b03909116906000805160206122cc833981519152908390a350565b6000546001600160a01b03163314610c825760405162461bcd60e51b81526004016106e090612113565b6001600160a01b03811660009081526007602052604090205460ff1615610ceb5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106e0565b6001600160a01b03811660009081526003602052604090205415610d45576001600160a01b038116600090815260036020526040902054610d2b90610757565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610dd55760405162461bcd60e51b81526004016106e090612113565b6001600160a01b038116610e3a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e0565b600080546040516001600160a01b03808516939216916000805160206122cc83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60125460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebd573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b81526004016106e090612113565b6001600160a01b03811660009081526007602052604090205460ff16610f535760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106e0565b60005b600854811015610ebd57816001600160a01b031660088281548110610f7d57610f7d612176565b6000918252602090912001546001600160a01b031614156110625760088054610fa89060019061218c565b81548110610fb857610fb8612176565b600091825260209091200154600880546001600160a01b039092169183908110610fe457610fe4612176565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600880548061103c5761103c6121a3565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061106c816121b9565b915050610f56565b6001600160a01b0383166110d65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e0565b6001600160a01b0382166111375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e0565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111fc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e0565b6001600160a01b03821661125e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e0565b600081116112c05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e0565b6000546001600160a01b038481169116148015906112ec57506000546001600160a01b03838116911614155b15611354576013548111156113545760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016106e0565b600061135f306109a1565b9050601354811061136f57506013545b6014546012549082101590600160a01b900460ff1615801561139a5750601254600160a81b900460ff165b80156113a35750805b80156113e157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b156113ef576113ef826115ea565b6001600160a01b03851660009081526006602052604090205460019060ff168061143157506001600160a01b03851660009081526006602052604090205460ff165b1561143a575060005b611446868686846117ca565b505050505050565b600081848411156114725760405162461bcd60e51b81526004016106e09190611f68565b50600061147f848661218c565b95945050505050565b6000806000611495611947565b90925090506114a482826114ab565b9250505090565b60006107d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac9565b6000806114fa838561215e565b9050838110156107d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e0565b60008060008060008060008060006115698a601054601554611af7565b9250925092506000611579611488565b9050600080600061158b8e8786611b4c565b919e509c509a509598509396509194505050505091939550919395565b60006107d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061144e565b6012805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061163257611632612176565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d491906121d4565b816001815181106116e7576116e7612176565b60200260200101906001600160a01b031690816001600160a01b031681525050611732307f000000000000000000000000000000000000000000000000000000000000000084611074565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906117879085906000908690309042906004016121f1565b600060405180830381600087803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b50506012805460ff60a01b1916905550505050565b806117d7576117d7611b88565b6001600160a01b03841660009081526007602052604090205460ff16801561181857506001600160a01b03831660009081526007602052604090205460ff16155b1561182d57611828848484611bb6565b61192b565b6001600160a01b03841660009081526007602052604090205460ff1615801561186e57506001600160a01b03831660009081526007602052604090205460ff165b1561187e57611828848484611cdc565b6001600160a01b03841660009081526007602052604090205460ff161580156118c057506001600160a01b03831660009081526007602052604090205460ff16155b156118d057611828848484611d85565b6001600160a01b03841660009081526007602052604090205460ff16801561191057506001600160a01b03831660009081526007602052604090205460ff165b1561192057611828848484611dc9565b61192b848484611d85565b8061194157611941601154601055601654601555565b50505050565b600a546009546000918291825b600854811015611a995782600360006008848154811061197657611976612176565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806119e157508160046000600884815481106119ba576119ba612176565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156119f757600a54600954945094505050509091565b611a3d6003600060088481548110611a1157611a11612176565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906115a8565b9250611a856004600060088481548110611a5957611a59612176565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906115a8565b915080611a91816121b9565b915050611954565b50600954600a54611aa9916114ab565b821015611ac057600a546009549350935050509091565b90939092509050565b60008183611aea5760405162461bcd60e51b81526004016106e09190611f68565b50600061147f8486612262565b6000808080611b116064611b0b8989611e3c565b906114ab565b90506000611b246064611b0b8a89611e3c565b90506000611b3c82611b368b866115a8565b906115a8565b9992985090965090945050505050565b6000808080611b5b8786611e3c565b90506000611b698787611e3c565b90506000611b7783836115a8565b929992985090965090945050505050565b601054158015611b985750601554155b15611b9f57565b601080546011556015805460165560009182905555565b600080600080600080611bc88761154c565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611bfa90886115a8565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611c2990876115a8565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611c5890866114ed565b6001600160a01b038916600090815260036020526040902055611c7a81611ebb565b611c848483611f44565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cc991815260200190565b60405180910390a3505050505050505050565b600080600080600080611cee8761154c565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611d2090876115a8565b6001600160a01b03808b16600090815260036020908152604080832094909455918b16815260049091522054611d5690846114ed565b6001600160a01b038916600090815260046020908152604080832093909355600390522054611c5890866114ed565b600080600080600080611d978761154c565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611c2990876115a8565b600080600080600080611ddb8761154c565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611e0d90886115a8565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611d2090876115a8565b600082611e4b575060006106b0565b6000611e578385612284565b905082611e648583612262565b146107d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e0565b6000611ec5611488565b90506000611ed38383611e3c565b30600090815260036020526040902054909150611ef090826114ed565b3060009081526003602090815260408083209390935560079052205460ff1615611f3f5730600090815260046020526040902054611f2e90846114ed565b306000908152600460205260409020555b505050565b600a54611f5190836115a8565b600a55600b54611f6190826114ed565b600b555050565b600060208083528351808285015260005b81811015611f9557858101830151858201604001528201611f79565b81811115611fa7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461099e57600080fd5b60008060408385031215611fe557600080fd5b8235611ff081611fbd565b946020939093013593505050565b60006020828403121561201057600080fd5b5035919050565b60008060006060848603121561202c57600080fd5b833561203781611fbd565b9250602084013561204781611fbd565b929592945050506040919091013590565b6000806040838503121561206b57600080fd5b823591506020830135801515811461208257600080fd5b809150509250929050565b60006020828403121561209f57600080fd5b81356107d481611fbd565b600080604083850312156120bd57600080fd5b82356120c881611fbd565b9150602083013561208281611fbd565b600181811c908216806120ec57607f821691505b6020821081141561210d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561217157612171612148565b500190565b634e487b7160e01b600052603260045260246000fd5b60008282101561219e5761219e612148565b500390565b634e487b7160e01b600052603160045260246000fd5b60006000198214156121cd576121cd612148565b5060010190565b6000602082840312156121e657600080fd5b81516107d481611fbd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122415784516001600160a01b03168352938301939183019160010161221c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261227f57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561229e5761229e612148565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203393a30a8f27c1c0e4a948747430f0cc192274bfceaf2a2d5dd0cd90dd59717a64736f6c634300080b0033000000000000000000000000f8797abd2fac6a7349bd952c964771ed64ef28cc

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80636ddd171311610102578063b6c5232411610095578063f2fde38b11610064578063f2fde38b146105a3578063f4293890146105c3578063f7a91591146105d8578063f84354f1146105ed57600080fd5b8063b6c5232414610508578063dd4670641461051d578063dd62ed3e1461053d578063f2cc0c181461058357600080fd5b806395d89b41116100d157806395d89b411461049e578063a457c2d7146104b3578063a69df4b5146104d3578063a9059cbb146104e857600080fd5b80636ddd17131461042a57806370a082311461044b578063715018a61461046b5780638da5cb5b1461048057600080fd5b8063313ce5671161017a57806349bd5a5e1161014957806349bd5a5e1461039257806351bc3c85146103c65780635342acb4146103db5780636bc87c3a1461041457600080fd5b8063313ce5671461031057806339509351146103325780633bd5d173146103525780634549b0391461037257600080fd5b806318160ddd116101b657806318160ddd1461028f5780631bbae6e0146102ae57806323b872dd146102d05780632d838119146102f057600080fd5b806306fdde03146101e8578063095ea7b3146102135780631694505e1461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61060d565b60405161020a9190611f68565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004611fd2565b61069f565b604051901515815260200161020a565b34801561024f57600080fd5b506102777f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161020a565b34801561029b57600080fd5b506009545b60405190815260200161020a565b3480156102ba57600080fd5b506102ce6102c9366004611ffe565b6106b6565b005b3480156102dc57600080fd5b506102336102eb366004612017565b6106ee565b3480156102fc57600080fd5b506102a061030b366004611ffe565b610757565b34801561031c57600080fd5b50600e5460405160ff909116815260200161020a565b34801561033e57600080fd5b5061023361034d366004611fd2565b6107db565b34801561035e57600080fd5b506102ce61036d366004611ffe565b610811565b34801561037e57600080fd5b506102a061038d366004612058565b6108fb565b34801561039e57600080fd5b506102777f000000000000000000000000c746cae3e924d5f16e4f8f3c6e5d83ebd4d7073281565b3480156103d257600080fd5b506102ce610988565b3480156103e757600080fd5b506102336103f636600461208d565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561042057600080fd5b506102a0600f5481565b34801561043657600080fd5b5060125461023390600160a81b900460ff1681565b34801561045757600080fd5b506102a061046636600461208d565b6109a1565b34801561047757600080fd5b506102ce610a00565b34801561048c57600080fd5b506000546001600160a01b0316610277565b3480156104aa57600080fd5b506101fd610a62565b3480156104bf57600080fd5b506102336104ce366004611fd2565b610a71565b3480156104df57600080fd5b506102ce610ac0565b3480156104f457600080fd5b50610233610503366004611fd2565b610bc6565b34801561051457600080fd5b506002546102a0565b34801561052957600080fd5b506102ce610538366004611ffe565b610bd3565b34801561054957600080fd5b506102a06105583660046120aa565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561058f57600080fd5b506102ce61059e36600461208d565b610c58565b3480156105af57600080fd5b506102ce6105be36600461208d565b610dab565b3480156105cf57600080fd5b506102ce610e83565b3480156105e457600080fd5b506013546102a0565b3480156105f957600080fd5b506102ce61060836600461208d565b610ec1565b6060600c805461061c906120d8565b80601f0160208091040260200160405190810160405280929190818152602001828054610648906120d8565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b60006106ac338484611074565b5060015b92915050565b6000546001600160a01b031633146106e95760405162461bcd60e51b81526004016106e090612113565b60405180910390fd5b601355565b60006106fb848484611198565b61074d8433610748856040518060600160405280602881526020016122a4602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061144e565b611074565b5060019392505050565b6000600a548211156107be5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e0565b60006107c8611488565b90506107d483826114ab565b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106ac91859061074890866114ed565b3360008181526007602052604090205460ff16156108865760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016106e0565b60006108918361154c565b505050506001600160a01b0384166000908152600360205260409020549192506108bd919050826115a8565b6001600160a01b038316600090815260036020526040902055600a546108e390826115a8565b600a55600b546108f390846114ed565b600b55505050565b600060095483111561094f5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016106e0565b8161096e57600061095f8461154c565b509395506106b0945050505050565b60006109798461154c565b509295506106b0945050505050565b6000610993306109a1565b905061099e816115ea565b50565b6001600160a01b03811660009081526007602052604081205460ff16156109de57506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546106b090610757565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b81526004016106e090612113565b600080546040516001600160a01b03909116906000805160206122cc833981519152908390a3600080546001600160a01b0319169055565b6060600d805461061c906120d8565b60006106ac3384610748856040518060600160405280602581526020016122ec602591393360009081526005602090815260408083206001600160a01b038d168452909152902054919061144e565b6001546001600160a01b03163314610b265760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016106e0565b6002544211610b775760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016106e0565b600154600080546040516001600160a01b0393841693909116916000805160206122cc83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60006106ac338484611198565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016106e090612113565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610c2c814261215e565b600255600080546040516001600160a01b03909116906000805160206122cc833981519152908390a350565b6000546001600160a01b03163314610c825760405162461bcd60e51b81526004016106e090612113565b6001600160a01b03811660009081526007602052604090205460ff1615610ceb5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106e0565b6001600160a01b03811660009081526003602052604090205415610d45576001600160a01b038116600090815260036020526040902054610d2b90610757565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610dd55760405162461bcd60e51b81526004016106e090612113565b6001600160a01b038116610e3a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e0565b600080546040516001600160a01b03808516939216916000805160206122cc83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60125460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebd573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b81526004016106e090612113565b6001600160a01b03811660009081526007602052604090205460ff16610f535760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106e0565b60005b600854811015610ebd57816001600160a01b031660088281548110610f7d57610f7d612176565b6000918252602090912001546001600160a01b031614156110625760088054610fa89060019061218c565b81548110610fb857610fb8612176565b600091825260209091200154600880546001600160a01b039092169183908110610fe457610fe4612176565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600880548061103c5761103c6121a3565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061106c816121b9565b915050610f56565b6001600160a01b0383166110d65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e0565b6001600160a01b0382166111375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e0565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111fc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e0565b6001600160a01b03821661125e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e0565b600081116112c05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e0565b6000546001600160a01b038481169116148015906112ec57506000546001600160a01b03838116911614155b15611354576013548111156113545760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016106e0565b600061135f306109a1565b9050601354811061136f57506013545b6014546012549082101590600160a01b900460ff1615801561139a5750601254600160a81b900460ff165b80156113a35750805b80156113e157507f000000000000000000000000c746cae3e924d5f16e4f8f3c6e5d83ebd4d707326001600160a01b0316856001600160a01b031614155b156113ef576113ef826115ea565b6001600160a01b03851660009081526006602052604090205460019060ff168061143157506001600160a01b03851660009081526006602052604090205460ff165b1561143a575060005b611446868686846117ca565b505050505050565b600081848411156114725760405162461bcd60e51b81526004016106e09190611f68565b50600061147f848661218c565b95945050505050565b6000806000611495611947565b90925090506114a482826114ab565b9250505090565b60006107d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac9565b6000806114fa838561215e565b9050838110156107d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e0565b60008060008060008060008060006115698a601054601554611af7565b9250925092506000611579611488565b9050600080600061158b8e8786611b4c565b919e509c509a509598509396509194505050505091939550919395565b60006107d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061144e565b6012805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061163257611632612176565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d491906121d4565b816001815181106116e7576116e7612176565b60200260200101906001600160a01b031690816001600160a01b031681525050611732307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611074565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906117879085906000908690309042906004016121f1565b600060405180830381600087803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b50506012805460ff60a01b1916905550505050565b806117d7576117d7611b88565b6001600160a01b03841660009081526007602052604090205460ff16801561181857506001600160a01b03831660009081526007602052604090205460ff16155b1561182d57611828848484611bb6565b61192b565b6001600160a01b03841660009081526007602052604090205460ff1615801561186e57506001600160a01b03831660009081526007602052604090205460ff165b1561187e57611828848484611cdc565b6001600160a01b03841660009081526007602052604090205460ff161580156118c057506001600160a01b03831660009081526007602052604090205460ff16155b156118d057611828848484611d85565b6001600160a01b03841660009081526007602052604090205460ff16801561191057506001600160a01b03831660009081526007602052604090205460ff165b1561192057611828848484611dc9565b61192b848484611d85565b8061194157611941601154601055601654601555565b50505050565b600a546009546000918291825b600854811015611a995782600360006008848154811061197657611976612176565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806119e157508160046000600884815481106119ba576119ba612176565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156119f757600a54600954945094505050509091565b611a3d6003600060088481548110611a1157611a11612176565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906115a8565b9250611a856004600060088481548110611a5957611a59612176565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906115a8565b915080611a91816121b9565b915050611954565b50600954600a54611aa9916114ab565b821015611ac057600a546009549350935050509091565b90939092509050565b60008183611aea5760405162461bcd60e51b81526004016106e09190611f68565b50600061147f8486612262565b6000808080611b116064611b0b8989611e3c565b906114ab565b90506000611b246064611b0b8a89611e3c565b90506000611b3c82611b368b866115a8565b906115a8565b9992985090965090945050505050565b6000808080611b5b8786611e3c565b90506000611b698787611e3c565b90506000611b7783836115a8565b929992985090965090945050505050565b601054158015611b985750601554155b15611b9f57565b601080546011556015805460165560009182905555565b600080600080600080611bc88761154c565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611bfa90886115a8565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611c2990876115a8565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611c5890866114ed565b6001600160a01b038916600090815260036020526040902055611c7a81611ebb565b611c848483611f44565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cc991815260200190565b60405180910390a3505050505050505050565b600080600080600080611cee8761154c565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611d2090876115a8565b6001600160a01b03808b16600090815260036020908152604080832094909455918b16815260049091522054611d5690846114ed565b6001600160a01b038916600090815260046020908152604080832093909355600390522054611c5890866114ed565b600080600080600080611d978761154c565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611c2990876115a8565b600080600080600080611ddb8761154c565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611e0d90886115a8565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611d2090876115a8565b600082611e4b575060006106b0565b6000611e578385612284565b905082611e648583612262565b146107d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e0565b6000611ec5611488565b90506000611ed38383611e3c565b30600090815260036020526040902054909150611ef090826114ed565b3060009081526003602090815260408083209390935560079052205460ff1615611f3f5730600090815260046020526040902054611f2e90846114ed565b306000908152600460205260409020555b505050565b600a54611f5190836115a8565b600a55600b54611f6190826114ed565b600b555050565b600060208083528351808285015260005b81811015611f9557858101830151858201604001528201611f79565b81811115611fa7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461099e57600080fd5b60008060408385031215611fe557600080fd5b8235611ff081611fbd565b946020939093013593505050565b60006020828403121561201057600080fd5b5035919050565b60008060006060848603121561202c57600080fd5b833561203781611fbd565b9250602084013561204781611fbd565b929592945050506040919091013590565b6000806040838503121561206b57600080fd5b823591506020830135801515811461208257600080fd5b809150509250929050565b60006020828403121561209f57600080fd5b81356107d481611fbd565b600080604083850312156120bd57600080fd5b82356120c881611fbd565b9150602083013561208281611fbd565b600181811c908216806120ec57607f821691505b6020821081141561210d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561217157612171612148565b500190565b634e487b7160e01b600052603260045260246000fd5b60008282101561219e5761219e612148565b500390565b634e487b7160e01b600052603160045260246000fd5b60006000198214156121cd576121cd612148565b5060010190565b6000602082840312156121e657600080fd5b81516107d481611fbd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122415784516001600160a01b03168352938301939183019160010161221c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261227f57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561229e5761229e612148565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203393a30a8f27c1c0e4a948747430f0cc192274bfceaf2a2d5dd0cd90dd59717a64736f6c634300080b0033

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

000000000000000000000000f8797abd2fac6a7349bd952c964771ed64ef28cc

-----Decoded View---------------
Arg [0] : MarketingWalletAddress (address): 0xF8797abD2fAC6A7349bD952c964771eD64EF28Cc

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f8797abd2fac6a7349bd952c964771ed64ef28cc


Deployed Bytecode Sourcemap

17123:16335:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19596:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20592:173;;;;;;;;;;-1:-1:-1;20592:173:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;20592:173:0;1072:187:1;18169:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1455:32:1;;;1437:51;;1425:2;1410:18;18169:51:0;1264:230:1;19909:103:0;;;;;;;;;;-1:-1:-1;19993:7:0;;19909:103;;;1645:25:1;;;1633:2;1618:18;19909:103:0;1499:177:1;33326:120:0;;;;;;;;;;-1:-1:-1;33326:120:0;;;;;:::i;:::-;;:::i;:::-;;20777:329;;;;;;;;;;-1:-1:-1;20777:329:0;;;;;:::i;:::-;;:::i;22554:269::-;;;;;;;;;;-1:-1:-1;22554:269:0;;;;;:::i;:::-;;:::i;19806:91::-;;;;;;;;;;-1:-1:-1;19876:9:0;;19806:91;;19876:9;;;;2469:36:1;;2457:2;2442:18;19806:91:0;2327:184:1;21118:230:0;;;;;;;;;;-1:-1:-1;21118:230:0;;;;;:::i;:::-;;:::i;21653:405::-;;;;;;;;;;-1:-1:-1;21653:405:0;;;;;:::i;:::-;;:::i;22070:472::-;;;;;;;;;;-1:-1:-1;22070:472:0;;;;;:::i;:::-;;:::i;18231:38::-;;;;;;;;;;;;;;;26771:156;;;;;;;;;;;;;:::i;24186:131::-;;;;;;;;;;-1:-1:-1;24186:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;24278:27:0;24250:4;24278:27;;;:18;:27;;;;;;;;;24186:131;17962:32;;;;;;;;;;;;;;;;18312:30;;;;;;;;;;-1:-1:-1;18312:30:0;;;;-1:-1:-1;;;18312:30:0;;;;;;20024:210;;;;;;;;;;-1:-1:-1;20024:210:0;;;;;:::i;:::-;;:::i;7094:160::-;;;;;;;;;;;;;:::i;6852:87::-;;;;;;;;;;-1:-1:-1;6890:7:0;6921:6;-1:-1:-1;;;;;6921:6:0;6852:87;;19699:95;;;;;;;;;;;;;:::i;21360:281::-;;;;;;;;;;-1:-1:-1;21360:281:0;;;;;:::i;:::-;;:::i;8053:325::-;;;;;;;;;;;;;:::i;20246:171::-;;;;;;;;;;-1:-1:-1;20246:171:0;;;;;:::i;:::-;;:::i;7538:97::-;;;;;;;;;;-1:-1:-1;7614:9:0;;7538:97;;7719:246;;;;;;;;;;-1:-1:-1;7719:246:0;;;;;:::i;:::-;;:::i;20429:151::-;;;;;;;;;;-1:-1:-1;20429:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;20541:18:0;;;20510:7;20541:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20429:151;22835:360;;;;;;;;;;-1:-1:-1;22835:360:0;;;;;:::i;:::-;;:::i;7266:260::-;;;;;;;;;;-1:-1:-1;7266:260:0;;;;;:::i;:::-;;:::i;26947:175::-;;;;;;;;;;;;;:::i;33204:102::-;;;;;;;;;;-1:-1:-1;33282:12:0;;33204:102;;23207:522;;;;;;;;;;-1:-1:-1;23207:522:0;;;;;:::i;:::-;;:::i;19596:91::-;19633:13;19670:5;19663:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19596:91;:::o;20592:173::-;20667:4;20688:39;294:10;20711:7;20720:6;20688:8;:39::i;:::-;-1:-1:-1;20749:4:0;20592:173;;;;;:::o;33326:120::-;6995:6;;-1:-1:-1;;;;;6995:6:0;294:10;6995:22;6987:67;;;;-1:-1:-1;;;6987:67:0;;;;;;;:::i;:::-;;;;;;;;;33408:12:::1;:26:::0;33326:120::o;20777:329::-;20875:4;20896:36;20906:6;20914:9;20925:6;20896:9;:36::i;:::-;20947:121;20956:6;294:10;20978:89;21016:6;20978:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20978:19:0;;;;;;:11;:19;;;;;;;;294:10;20978:33;;;;;;;;;;:37;:89::i;:::-;20947:8;:121::i;:::-;-1:-1:-1;21090:4:0;20777:329;;;;;:::o;22554:269::-;22620:7;22663;;22652;:18;;22644:73;;;;-1:-1:-1;;;22644:73:0;;4663:2:1;22644:73:0;;;4645:21:1;4702:2;4682:18;;;4675:30;4741:34;4721:18;;;4714:62;-1:-1:-1;;;4792:18:1;;;4785:40;4842:19;;22644:73:0;4461:406:1;22644:73:0;22732:19;22755:10;:8;:10::i;:::-;22732:33;-1:-1:-1;22787:24:0;:7;22732:33;22787:11;:24::i;:::-;22780:31;22554:269;-1:-1:-1;;;22554:269:0:o;21118:230::-;294:10;21206:4;21259:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21259:34:0;;;;;;;;;;21206:4;;21227:83;;21250:7;;21259:50;;21298:10;21259:38;:50::i;21653:405::-;294:10;21709:14;21762:19;;;:11;:19;;;;;;;;21761:20;21753:77;;;;-1:-1:-1;;;21753:77:0;;5074:2:1;21753:77:0;;;5056:21:1;5113:2;5093:18;;;5086:30;5152:34;5132:18;;;5125:62;-1:-1:-1;;;5203:18:1;;;5196:42;5255:19;;21753:77:0;4872:408:1;21753:77:0;21846:15;21870:19;21881:7;21870:10;:19::i;:::-;-1:-1:-1;;;;;;;;;21922:15:0;;;;;;:7;:15;;;;;;21845:44;;-1:-1:-1;21922:28:0;;:15;-1:-1:-1;21845:44:0;21922:19;:28::i;:::-;-1:-1:-1;;;;;21904:15:0;;;;;;:7;:15;;;;;:46;21975:7;;:20;;21987:7;21975:11;:20::i;:::-;21965:7;:30;22023:10;;:23;;22038:7;22023:14;:23::i;:::-;22010:10;:36;-1:-1:-1;;;21653:405:0:o;22070:472::-;22160:7;22203;;22192;:18;;22184:62;;;;-1:-1:-1;;;22184:62:0;;5487:2:1;22184:62:0;;;5469:21:1;5526:2;5506:18;;;5499:30;5565:33;5545:18;;;5538:61;5616:18;;22184:62:0;5285:355:1;22184:62:0;22266:17;22261:270;;22305:15;22329:19;22340:7;22329:10;:19::i;:::-;-1:-1:-1;22304:44:0;;-1:-1:-1;22367:14:0;;-1:-1:-1;;;;;22367:14:0;22261:270;22424:23;22455:19;22466:7;22455:10;:19::i;:::-;-1:-1:-1;22422:52:0;;-1:-1:-1;22493:22:0;;-1:-1:-1;;;;;22493:22:0;26771:156;26817:23;26843:24;26861:4;26843:9;:24::i;:::-;26817:50;;26882:33;26899:15;26882:16;:33::i;:::-;26802:125;26771:156::o;20024:210::-;-1:-1:-1;;;;;20118:20:0;;20090:7;20118:20;;;:11;:20;;;;;;;;20114:49;;;-1:-1:-1;;;;;;20147:16:0;;;;;:7;:16;;;;;;;20024:210::o;20114:49::-;-1:-1:-1;;;;;20205:16:0;;;;;;:7;:16;;;;;;20185:37;;:19;:37::i;7094:160::-;6995:6;;-1:-1:-1;;;;;6995:6:0;294:10;6995:22;6987:67;;;;-1:-1:-1;;;6987:67:0;;;;;;;:::i;:::-;7205:1:::1;7189:6:::0;;7168:40:::1;::::0;-1:-1:-1;;;;;7189:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;7168:40:0;7205:1;;7168:40:::1;7240:1;7223:19:::0;;-1:-1:-1;;;;;;7223:19:0::1;::::0;;7094:160::o;19699:95::-;19738:13;19775:7;19768:14;;;;;:::i;21360:281::-;21453:4;21474:129;294:10;21497:7;21506:96;21545:15;21506:96;;;;;;;;;;;;;;;;;294:10;21506:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21506:34:0;;;;;;;;;;;;:38;:96::i;8053:325::-;8109:14;;-1:-1:-1;;;;;8109:14:0;8127:10;8109:28;8101:76;;;;-1:-1:-1;;;8101:76:0;;5847:2:1;8101:76:0;;;5829:21:1;5886:2;5866:18;;;5859:30;5925:34;5905:18;;;5898:62;-1:-1:-1;;;5976:18:1;;;5969:33;6019:19;;8101:76:0;5645:399:1;8101:76:0;8218:9;;8200:15;:27;8192:72;;;;-1:-1:-1;;;8192:72:0;;6251:2:1;8192:72:0;;;6233:21:1;6290:2;6270:18;;;6263:30;6329:33;6309:18;;;6302:61;6380:18;;8192:72:0;6049:355:1;8192:72:0;8313:14;;;8305:6;;8284:44;;-1:-1:-1;;;;;8313:14:0;;;;8305:6;;;;-1:-1:-1;;;;;;;;;;;8284:44:0;;8352:14;;;8343:23;;-1:-1:-1;;;;;;8343:23:0;-1:-1:-1;;;;;8352:14:0;;;8343:23;;;;;;8053:325::o;20246:171::-;20324:4;20341:42;294:10;20365:9;20376:6;20341:9;:42::i;7719:246::-;6995:6;;-1:-1:-1;;;;;6995:6:0;294:10;6995:22;6987:67;;;;-1:-1:-1;;;6987:67:0;;;;;;;:::i;:::-;7804:6:::1;::::0;;;7787:23;;-1:-1:-1;;;;;;7787:23:0;;::::1;-1:-1:-1::0;;;;;7804:6:0;::::1;7787:23;::::0;;;7825:19:::1;::::0;;7871:22:::1;7889:4:::0;7871:15:::1;:22;:::i;:::-;7859:9;:34:::0;7950:1:::1;7934:6:::0;;7913:40:::1;::::0;-1:-1:-1;;;;;7934:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;7913:40:0;7950:1;;7913:40:::1;7719:246:::0;:::o;22835:360::-;6995:6;;-1:-1:-1;;;;;6995:6:0;294:10;6995:22;6987:67;;;;-1:-1:-1;;;6987:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22921:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22920:21;22912:61;;;::::0;-1:-1:-1;;;22912:61:0;;6876:2:1;22912:61:0::1;::::0;::::1;6858:21:1::0;6915:2;6895:18;;;6888:30;6954:29;6934:18;;;6927:57;7001:18;;22912:61:0::1;6674:351:1::0;22912:61:0::1;-1:-1:-1::0;;;;;22991:16:0;::::1;23010:1;22991:16:::0;;;:7:::1;:16;::::0;;;;;:20;22988:116:::1;;-1:-1:-1::0;;;;;23071:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;23051:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;23032:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;22988:116:::1;-1:-1:-1::0;;;;;23118:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;23118:27:0::1;23141:4;23118:27:::0;;::::1;::::0;;;23160:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;23160:23:0::1;::::0;;::::1;::::0;;22835:360::o;7266:260::-;6995:6;;-1:-1:-1;;;;;6995:6:0;294:10;6995:22;6987:67;;;;-1:-1:-1;;;6987:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7359:22:0;::::1;7351:73;;;::::0;-1:-1:-1;;;7351:73:0;;7232:2:1;7351:73:0::1;::::0;::::1;7214:21:1::0;7271:2;7251:18;;;7244:30;7310:34;7290:18;;;7283:62;-1:-1:-1;;;7361:18:1;;;7354:36;7407:19;;7351:73:0::1;7030:402:1::0;7351:73:0::1;7465:6;::::0;;7444:38:::1;::::0;-1:-1:-1;;;;;7444:38:0;;::::1;::::0;7465:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;7444:38:0;::::1;7497:6;:17:::0;;-1:-1:-1;;;;;;7497:17:0::1;-1:-1:-1::0;;;;;7497:17:0;;;::::1;::::0;;;::::1;::::0;;7266:260::o;26947:175::-;27058:23;;:52;;27022:21;;-1:-1:-1;;;;;27058:23:0;;:52;;;;;27022:21;;26993:26;27058:52;26993:26;27058:52;27022:21;27058:23;:52;;;;;;;;;;;;;;;;;;;;;26978:144;26947:175::o;23207:522::-;6995:6;;-1:-1:-1;;;;;6995:6:0;294:10;6995:22;6987:67;;;;-1:-1:-1;;;6987:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23292:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;23284:60;;;::::0;-1:-1:-1;;;23284:60:0;;6876:2:1;23284:60:0::1;::::0;::::1;6858:21:1::0;6915:2;6895:18;;;6888:30;6954:29;6934:18;;;6927:57;7001:18;;23284:60:0::1;6674:351:1::0;23284:60:0::1;23364:9;23359:359;23383:9;:16:::0;23379:20;::::1;23359:359;;;23445:7;-1:-1:-1::0;;;;;23429:23:0::1;:9;23439:1;23429:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;23429:12:0::1;:23;23425:278;;;23492:9;23502:16:::0;;:20:::1;::::0;23521:1:::1;::::0;23502:20:::1;:::i;:::-;23492:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;23477:9:::1;:12:::0;;-1:-1:-1;;;;;23492:31:0;;::::1;::::0;23487:1;;23477:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;23477:46:0::1;-1:-1:-1::0;;;;;23477:46:0;;::::1;;::::0;;23546:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;23589:11:::1;:20:::0;;;;:28;;-1:-1:-1;;23589:28:0::1;::::0;;23640:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;23640:15:0;;;;;-1:-1:-1;;;;;;23640:15:0::1;::::0;;;;;27058:52;26978:144;26947:175::o;23425:278::-:1;23401:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23359:359;;24329:357:::0;-1:-1:-1;;;;;24426:19:0;;24418:68;;;;-1:-1:-1;;;24418:68:0;;8173:2:1;24418:68:0;;;8155:21:1;8212:2;8192:18;;;8185:30;8251:34;8231:18;;;8224:62;-1:-1:-1;;;8302:18:1;;;8295:34;8346:19;;24418:68:0;7971:400:1;24418:68:0;-1:-1:-1;;;;;24509:21:0;;24501:68;;;;-1:-1:-1;;;24501:68:0;;8578:2:1;24501:68:0;;;8560:21:1;8617:2;8597:18;;;8590:30;8656:34;8636:18;;;8629:62;-1:-1:-1;;;8707:18:1;;;8700:32;8749:19;;24501:68:0;8376:398:1;24501:68:0;-1:-1:-1;;;;;24586:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24642:32;;1645:25:1;;;24642:32:0;;1618:18:1;24642:32:0;;;;;;;24329:357;;;:::o;24698:1333::-;-1:-1:-1;;;;;24799:20:0;;24791:70;;;;-1:-1:-1;;;24791:70:0;;8981:2:1;24791:70:0;;;8963:21:1;9020:2;9000:18;;;8993:30;9059:34;9039:18;;;9032:62;-1:-1:-1;;;9110:18:1;;;9103:35;9155:19;;24791:70:0;8779:401:1;24791:70:0;-1:-1:-1;;;;;24884:23:0;;24876:71;;;;-1:-1:-1;;;24876:71:0;;9387:2:1;24876:71:0;;;9369:21:1;9426:2;9406:18;;;9399:30;9465:34;9445:18;;;9438:62;-1:-1:-1;;;9516:18:1;;;9509:33;9559:19;;24876:71:0;9185:399:1;24876:71:0;24979:1;24970:6;:10;24962:64;;;;-1:-1:-1;;;24962:64:0;;9791:2:1;24962:64:0;;;9773:21:1;9830:2;9810:18;;;9803:30;9869:34;9849:18;;;9842:62;-1:-1:-1;;;9920:18:1;;;9913:39;9969:19;;24962:64:0;9589:405:1;24962:64:0;6890:7;6921:6;-1:-1:-1;;;;;25058:17:0;;;6921:6;;25058:17;;;;:41;;-1:-1:-1;6890:7:0;6921:6;-1:-1:-1;;;;;25079:20:0;;;6921:6;;25079:20;;25058:41;25055:138;;;25136:12;;25126:6;:22;;25118:75;;;;-1:-1:-1;;;25118:75:0;;10201:2:1;25118:75:0;;;10183:21:1;10240:2;10220:18;;;10213:30;10279:34;10259:18;;;10252:62;-1:-1:-1;;;10330:18:1;;;10323:38;10378:19;;25118:75:0;9999:404:1;25118:75:0;25223:28;25254:24;25272:4;25254:9;:24::i;:::-;25223:55;;25334:12;;25310:20;:36;25307:124;;-1:-1:-1;25403:12:0;;25307:124;25510:34;;25564:6;;25486:58;;;;;-1:-1:-1;;;25564:6:0;;;;25563:7;:22;;;;-1:-1:-1;25574:11:0;;-1:-1:-1;;;25574:11:0;;;;25563:22;:45;;;;;25589:19;25563:45;:72;;;;;25622:13;-1:-1:-1;;;;;25612:23:0;:6;-1:-1:-1;;;;;25612:23:0;;;25563:72;25559:170;;;25673:38;25690:20;25673:16;:38::i;:::-;-1:-1:-1;;;;;25826:26:0;;25767:12;25826:26;;;:18;:26;;;;;;25782:4;;25826:26;;;:59;;-1:-1:-1;;;;;;25856:29:0;;;;;;:18;:29;;;;;;;;25826:59;25823:113;;;-1:-1:-1;25915:5:0;25823:113;25972:47;25987:6;25994:9;26004:6;26011:7;25972:14;:47::i;:::-;24776:1255;;;24698:1333;;;:::o;1697:208::-;1783:7;1823:12;1815:6;;;;1807:29;;;;-1:-1:-1;;;1807:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1851:9:0;1863:5;1867:1;1863;:5;:::i;:::-;1851:17;1697:208;-1:-1:-1;;;;;1697:208:0:o;32404:175::-;32445:7;32470:15;32487;32506:19;:17;:19::i;:::-;32469:56;;-1:-1:-1;32469:56:0;-1:-1:-1;32547:20:0;32469:56;;32547:11;:20::i;:::-;32540:27;;;;32404:175;:::o;2436:140::-;2494:7;2525:39;2529:1;2532;2525:39;;;;;;;;;;;;;;;;;:3;:39::i;1336:197::-;1394:7;;1430:5;1434:1;1430;:5;:::i;:::-;1418:17;;1463:1;1458;:6;;1450:46;;;;-1:-1:-1;;;1450:46:0;;10610:2:1;1450:46:0;;;10592:21:1;10649:2;10629:18;;;10622:30;10688:29;10668:18;;;10661:57;10735:18;;1450:46:0;10408:351:1;31123:495:0;31182:7;31191;31200;31209;31218;31227;31252:23;31277:12;31291:18;31313:43;31325:7;31334;;31343:12;;31313:11;:43::i;:::-;31251:105;;;;;;31371:19;31394:10;:8;:10::i;:::-;31371:33;;31420:15;31437:23;31462:12;31478:39;31490:7;31499:4;31505:11;31478;:39::i;:::-;31419:98;;-1:-1:-1;31419:98:0;-1:-1:-1;31419:98:0;-1:-1:-1;31572:15:0;;-1:-1:-1;31589:4:0;;-1:-1:-1;31595:10:0;;-1:-1:-1;;;;;31123:495:0;;;;;;;:::o;1543:144::-;1601:7;1632:43;1636:1;1639;1632:43;;;;;;;;;;;;;;;;;:3;:43::i;26043:557::-;18763:6;:13;;-1:-1:-1;;;;18763:13:0;-1:-1:-1;;;18763:13:0;;;26159:16:::1;::::0;;26173:1:::1;26159:16:::0;;;;;::::1;::::0;;-1:-1:-1;;26159:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;26159:16:0::1;26135:40;;26208:4;26190;26195:1;26190:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;26190:23:0::1;;;-1:-1:-1::0;;;;;26190:23:0::1;;;::::0;::::1;26238:15;-1:-1:-1::0;;;;;26238:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26228:4;26233:1;26228:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;26228:32:0::1;;;-1:-1:-1::0;;;;;26228:32:0::1;;;::::0;::::1;26277:62;26294:4;26309:15;26327:11;26277:8;:62::i;:::-;26367:221;::::0;-1:-1:-1;;;26367:221:0;;-1:-1:-1;;;;;26367:15:0::1;:66;::::0;::::1;::::0;:221:::1;::::0;26452:11;;26482:1:::1;::::0;26503:4;;26534::::1;::::0;26558:15:::1;::::0;26367:221:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18807:6:0;:14;;-1:-1:-1;;;;18807:14:0;;;-1:-1:-1;;;;26043:557:0:o;27142:883::-;27258:7;27254:44;;27284:14;:12;:14::i;:::-;-1:-1:-1;;;;;27319:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;27343:22:0;;;;;;:11;:22;;;;;;;;27342:23;27319:46;27315:637;;;27386:48;27408:6;27416:9;27427:6;27386:21;:48::i;:::-;27315:637;;;-1:-1:-1;;;;;27461:19:0;;;;;;:11;:19;;;;;;;;27460:20;:46;;;;-1:-1:-1;;;;;;27484:22:0;;;;;;:11;:22;;;;;;;;27460:46;27456:496;;;27527:46;27547:6;27555:9;27566:6;27527:19;:46::i;27456:496::-;-1:-1:-1;;;;;27600:19:0;;;;;;:11;:19;;;;;;;;27599:20;:47;;;;-1:-1:-1;;;;;;27624:22:0;;;;;;:11;:22;;;;;;;;27623:23;27599:47;27595:357;;;27667:44;27685:6;27693:9;27704:6;27667:17;:44::i;27595:357::-;-1:-1:-1;;;;;27737:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;27760:22:0;;;;;;:11;:22;;;;;;;;27737:45;27733:219;;;27803:48;27825:6;27833:9;27844:6;27803:21;:48::i;27733:219::-;27892:44;27910:6;27918:9;27929:6;27892:17;:44::i;:::-;27972:7;27968:45;;27998:15;24093;;24083:7;:25;24138:20;;24123:12;:35;24035:135;27998:15;27142:883;;;;:::o;32591:601::-;32692:7;;32732;;32641;;;;;32760:305;32784:9;:16;32780:20;;32760:305;;;32854:7;32830;:21;32838:9;32848:1;32838:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;32838:12:0;32830:21;;;;;;;;;;;;;:31;;:66;;;32889:7;32865;:21;32873:9;32883:1;32873:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;32873:12:0;32865:21;;;;;;;;;;;;;:31;32830:66;32826:97;;;32906:7;;32915;;32898:25;;;;;;;32591:601;;:::o;32826:97::-;32952:34;32964:7;:21;32972:9;32982:1;32972:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;32972:12:0;32964:21;;;;;;;;;;;;;32952:7;;:11;:34::i;:::-;32942:44;;33015:34;33027:7;:21;33035:9;33045:1;33035:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;33035:12:0;33027:21;;;;;;;;;;;;;33015:7;;:11;:34::i;:::-;33005:44;-1:-1:-1;32802:3:0;;;;:::i;:::-;;;;32760:305;;;-1:-1:-1;33105:7:0;;33093;;:20;;:11;:20::i;:::-;33083:7;:30;33079:61;;;33123:7;;33132;;33115:25;;;;;;32591:601;;:::o;33079:61::-;33163:7;;33172;;-1:-1:-1;32591:601:0;-1:-1:-1;32591:601:0:o;2586:298::-;2672:7;2711:12;2704:5;2696:28;;;;-1:-1:-1;;;2696:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2739:9:0;2751:5;2755:1;2751;:5;:::i;31630:396::-;31728:7;;;;31785:28;31809:3;31785:19;:7;31797:6;31785:11;:19::i;:::-;:23;;:28::i;:::-;31770:43;-1:-1:-1;31828:18:0;31849:34;31879:3;31849:25;:7;31861:12;31849:11;:25::i;:34::-;31828:55;-1:-1:-1;31898:23:0;31924:33;31828:55;31924:17;:7;31936:4;31924:11;:17::i;:::-;:21;;:33::i;:::-;31898:59;31997:4;;-1:-1:-1;32003:10:0;;-1:-1:-1;31630:396:0;;-1:-1:-1;;;;;31630:396:0:o;32038:354::-;32133:7;;;;32193:24;:7;32205:11;32193;:24::i;:::-;32175:42;-1:-1:-1;32232:12:0;32247:21;:4;32256:11;32247:8;:21::i;:::-;32232:36;-1:-1:-1;32283:23:0;32309:17;:7;32232:36;32309:11;:17::i;:::-;32349:7;;;;-1:-1:-1;32375:4:0;;-1:-1:-1;32038:354:0;;-1:-1:-1;;;;;32038:354:0:o;23741:278::-;23791:7;;:12;:33;;;;-1:-1:-1;23807:12:0;;:17;23791:33;23788:45;;;23741:278::o;23788:45::-;23879:7;;;23861:15;:25;23924:12;;;23901:20;:35;-1:-1:-1;23965:11:0;;;;23991:16;23741:278::o;29215:599::-;29322:15;29339:23;29364:12;29378:23;29403:12;29417:18;29439:19;29450:7;29439:10;:19::i;:::-;-1:-1:-1;;;;;29491:15:0;;;;;;:7;:15;;;;;;29321:137;;-1:-1:-1;29321:137:0;;-1:-1:-1;29321:137:0;;-1:-1:-1;29321:137:0;-1:-1:-1;29321:137:0;-1:-1:-1;29321:137:0;-1:-1:-1;29491:28:0;;29511:7;29491:19;:28::i;:::-;-1:-1:-1;;;;;29473:15:0;;;;;;:7;:15;;;;;;;;:46;;;;29552:7;:15;;;;:28;;29572:7;29552:19;:28::i;:::-;-1:-1:-1;;;;;29534:15:0;;;;;;;:7;:15;;;;;;:46;;;;29616:18;;;;;;;:39;;29639:15;29616:22;:39::i;:::-;-1:-1:-1;;;;;29595:18:0;;;;;;:7;:18;;;;;:60;29671:26;29686:10;29671:14;:26::i;:::-;29715:23;29727:4;29733;29715:11;:23::i;:::-;29775:9;-1:-1:-1;;;;;29758:44:0;29767:6;-1:-1:-1;;;;;29758:44:0;;29786:15;29758:44;;;;1645:25:1;;1633:2;1618:18;;1499:177;29758:44:0;;;;;;;;29306:508;;;;;;29215:599;;;:::o;28581:622::-;28686:15;28703:23;28728:12;28742:23;28767:12;28781:18;28803:19;28814:7;28803:10;:19::i;:::-;-1:-1:-1;;;;;28855:15:0;;;;;;:7;:15;;;;;;28685:137;;-1:-1:-1;28685:137:0;;-1:-1:-1;28685:137:0;;-1:-1:-1;28685:137:0;-1:-1:-1;28685:137:0;-1:-1:-1;28685:137:0;-1:-1:-1;28855:28:0;;28685:137;28855:19;:28::i;:::-;-1:-1:-1;;;;;28837:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;28919:18;;;;;:7;:18;;;;;:39;;28942:15;28919:22;:39::i;:::-;-1:-1:-1;;;;;28898:18:0;;;;;;:7;:18;;;;;;;;:60;;;;28994:7;:18;;;;:39;;29017:15;28994:22;:39::i;28037:532::-;28140:15;28157:23;28182:12;28196:23;28221:12;28235:18;28257:19;28268:7;28257:10;:19::i;:::-;-1:-1:-1;;;;;28309:15:0;;;;;;:7;:15;;;;;;28139:137;;-1:-1:-1;28139:137:0;;-1:-1:-1;28139:137:0;;-1:-1:-1;28139:137:0;-1:-1:-1;28139:137:0;-1:-1:-1;28139:137:0;-1:-1:-1;28309:28:0;;28139:137;28309:19;:28::i;29826:682::-;29933:15;29950:23;29975:12;29989:23;30014:12;30028:18;30050:19;30061:7;30050:10;:19::i;:::-;-1:-1:-1;;;;;30102:15:0;;;;;;:7;:15;;;;;;29932:137;;-1:-1:-1;29932:137:0;;-1:-1:-1;29932:137:0;;-1:-1:-1;29932:137:0;-1:-1:-1;29932:137:0;-1:-1:-1;29932:137:0;-1:-1:-1;30102:28:0;;30122:7;30102:19;:28::i;:::-;-1:-1:-1;;;;;30084:15:0;;;;;;:7;:15;;;;;;;;:46;;;;30163:7;:15;;;;:28;;30183:7;30163:19;:28::i;1915:511::-;1973:7;2234:6;2230:55;;-1:-1:-1;2268:1:0;2261:8;;2230:55;2301:9;2313:5;2317:1;2313;:5;:::i;:::-;2301:17;-1:-1:-1;2350:1:0;2341:5;2345:1;2301:17;2341:5;:::i;:::-;:10;2333:56;;;;-1:-1:-1;;;2333:56:0;;12734:2:1;2333:56:0;;;12716:21:1;12773:2;12753:18;;;12746:30;12812:34;12792:18;;;12785:62;-1:-1:-1;;;12863:18:1;;;12856:31;12904:19;;2333:56:0;12532:397:1;30520:379:0;30587:19;30610:10;:8;:10::i;:::-;30587:33;-1:-1:-1;30635:18:0;30656:27;:10;30587:33;30656:14;:27::i;:::-;30739:4;30723:22;;;;:7;:22;;;;;;30635:48;;-1:-1:-1;30723:38:0;;30635:48;30723:26;:38::i;:::-;30714:4;30698:22;;;;:7;:22;;;;;;;;:63;;;;30779:11;:26;;;;;;30776:111;;;30865:4;30849:22;;;;:7;:22;;;;;;:38;;30876:10;30849:26;:38::i;:::-;30840:4;30824:22;;;;:7;:22;;;;;:63;30776:111;30572:327;;30520:379;:::o;30911:159::-;30993:7;;:17;;31005:4;30993:11;:17::i;:::-;30983:7;:27;31038:10;;:20;;31053:4;31038:14;:20::i;:::-;31025:10;:33;-1:-1:-1;;30911:159:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1681:180::-;1740:6;1793:2;1781:9;1772:7;1768:23;1764:32;1761:52;;;1809:1;1806;1799:12;1761:52;-1:-1:-1;1832:23:1;;1681:180;-1:-1:-1;1681:180:1:o;1866:456::-;1943:6;1951;1959;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2067:9;2054:23;2086:31;2111:5;2086:31;:::i;:::-;2136:5;-1:-1:-1;2193:2:1;2178:18;;2165:32;2206:33;2165:32;2206:33;:::i;:::-;1866:456;;2258:7;;-1:-1:-1;;;2312:2:1;2297:18;;;;2284:32;;1866:456::o;2516:341::-;2581:6;2589;2642:2;2630:9;2621:7;2617:23;2613:32;2610:52;;;2658:1;2655;2648:12;2610:52;2694:9;2681:23;2671:33;;2754:2;2743:9;2739:18;2726:32;2801:5;2794:13;2787:21;2780:5;2777:32;2767:60;;2823:1;2820;2813:12;2767:60;2846:5;2836:15;;;2516:341;;;;;:::o;3070:247::-;3129:6;3182:2;3170:9;3161:7;3157:23;3153:32;3150:52;;;3198:1;3195;3188:12;3150:52;3237:9;3224:23;3256:31;3281:5;3256:31;:::i;3322:388::-;3390:6;3398;3451:2;3439:9;3430:7;3426:23;3422:32;3419:52;;;3467:1;3464;3457:12;3419:52;3506:9;3493:23;3525:31;3550:5;3525:31;:::i;:::-;3575:5;-1:-1:-1;3632:2:1;3617:18;;3604:32;3645:33;3604:32;3645:33;:::i;3715:380::-;3794:1;3790:12;;;;3837;;;3858:61;;3912:4;3904:6;3900:17;3890:27;;3858:61;3965:2;3957:6;3954:14;3934:18;3931:38;3928:161;;;4011:10;4006:3;4002:20;3999:1;3992:31;4046:4;4043:1;4036:15;4074:4;4071:1;4064:15;3928:161;;3715:380;;;:::o;4100:356::-;4302:2;4284:21;;;4321:18;;;4314:30;4380:34;4375:2;4360:18;;4353:62;4447:2;4432:18;;4100:356::o;6409:127::-;6470:10;6465:3;6461:20;6458:1;6451:31;6501:4;6498:1;6491:15;6525:4;6522:1;6515:15;6541:128;6581:3;6612:1;6608:6;6605:1;6602:13;6599:39;;;6618:18;;:::i;:::-;-1:-1:-1;6654:9:1;;6541:128::o;7437:127::-;7498:10;7493:3;7489:20;7486:1;7479:31;7529:4;7526:1;7519:15;7553:4;7550:1;7543:15;7569:125;7609:4;7637:1;7634;7631:8;7628:34;;;7642:18;;:::i;:::-;-1:-1:-1;7679:9:1;;7569:125::o;7699:127::-;7760:10;7755:3;7751:20;7748:1;7741:31;7791:4;7788:1;7781:15;7815:4;7812:1;7805:15;7831:135;7870:3;-1:-1:-1;;7891:17:1;;7888:43;;;7911:18;;:::i;:::-;-1:-1:-1;7958:1:1;7947:13;;7831:135::o;10896:251::-;10966:6;11019:2;11007:9;10998:7;10994:23;10990:32;10987:52;;;11035:1;11032;11025:12;10987:52;11067:9;11061:16;11086:31;11111:5;11086:31;:::i;11152:980::-;11414:4;11462:3;11451:9;11447:19;11493:6;11482:9;11475:25;11519:2;11557:6;11552:2;11541:9;11537:18;11530:34;11600:3;11595:2;11584:9;11580:18;11573:31;11624:6;11659;11653:13;11690:6;11682;11675:22;11728:3;11717:9;11713:19;11706:26;;11767:2;11759:6;11755:15;11741:29;;11788:1;11798:195;11812:6;11809:1;11806:13;11798:195;;;11877:13;;-1:-1:-1;;;;;11873:39:1;11861:52;;11968:15;;;;11933:12;;;;11909:1;11827:9;11798:195;;;-1:-1:-1;;;;;;;12049:32:1;;;;12044:2;12029:18;;12022:60;-1:-1:-1;;;12113:3:1;12098:19;12091:35;12010:3;11152:980;-1:-1:-1;;;11152:980:1:o;12137:217::-;12177:1;12203;12193:132;;12247:10;12242:3;12238:20;12235:1;12228:31;12282:4;12279:1;12272:15;12310:4;12307:1;12300:15;12193:132;-1:-1:-1;12339:9:1;;12137:217::o;12359:168::-;12399:7;12465:1;12461;12457:6;12453:14;12450:1;12447:21;12442:1;12435:9;12428:17;12424:45;12421:71;;;12472:18;;:::i;:::-;-1:-1:-1;12512:9:1;;12359:168::o

Swarm Source

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