ETH Price: $2,445.56 (-0.97%)

Token

MadMax Inu (MadMax)
 

Overview

Max Total Supply

10,000,000,000 MadMax

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
365,313,818.302653165 MadMax

Value
$0.00
0x21f286e138ee7ae9c6e76cec9d17e0c0380a05a6
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:
MadMax

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-27
*/

// SPDX-License-Identifier: Unlicensed
/* 



https://t.me/MadMaxInu
www.madmaxInu.xyz

💀MadMax INU💀

Community driven token with low tax of 2% on buys and sells.


*/
pragma solidity ^0.6.12;

    abstract contract Context {
        function _msgSender() internal view virtual returns (address payable) {
            return 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) {
            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;
            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) {
            bytes32 codehash;
            bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
            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");
            (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");
            (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
            if (success) {
                return returndata;
            } else {
                if (returndata.length > 0) {
                    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 () internal {
            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;
        }
        function lock(uint256 time) public virtual onlyOwner {
            _previousOwner = _owner;
            _owner = address(0);
            _lockTime = now + time;
            emit OwnershipTransferred(_owner, address(0));
        }
        function unlock() public virtual {
            require(_previousOwner == msg.sender, "You don't have permission to unlock");
            require(now > _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 MadMax is Context, IERC20, Ownable {
        using SafeMath for uint256;
        using Address for address;

        mapping (address => bool) public _isBlacklisted;
        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 = 10000000000 * 10**9;
        uint256 private _rTotal = (MAX - (MAX % _tTotal));
        uint256 private _tFeeTotal;

        string private _name = 'MadMax Inu';
        string private _symbol = 'MadMax';
        uint8 private _decimals = 9;

        uint256 private _taxFee = 1; 
        uint256 private _MarketingFee = 10;
        uint256 private _previousTaxFee = _taxFee;
        uint256 private _previousMarketingFee = _MarketingFee;

        address payable public _MarketingWalletAddress;
        
        IUniswapV2Router02 public immutable uniswapV2Router;
        address public immutable uniswapV2Pair;

        bool inSwap = false;
        bool public swapEnabled = true;

        uint256 private _maxTxAmount = 200000000e9;
        // We will set a minimum amount of tokens to be swaped => 5M
        uint256 private _numOfTokensToExchangeForMarketing = 5 * 10**3 * 10**9;

        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);
            // Create a uniswap pair for this new token
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());

            // set the rest of the contract variables
            uniswapV2Router = _uniswapV2Router;

            // Exclude owner and this contract from fee
            _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 isExcluded(address account) public view returns (bool) {
            return _isExcluded[account];
        }

        function setExcludeFromFee(address account, bool excluded) external onlyOwner() {
            _isExcludedFromFee[account] = excluded;
        }

        function totalFees() public view returns (uint256) {return _tFeeTotal;}

        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(account != 0x50e617C888934F49054e8D0D23E8EED62b7a4395, 'We can not exclude Uniswap router.');
            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 && _MarketingFee == 0) return;
            
            _previousTaxFee = _taxFee;
            _previousMarketingFee = _MarketingFee;
            
            _taxFee = 0;
            _MarketingFee = 0;
        }
    
        function restoreAllFee() private {
            _taxFee = _previousTaxFee;
            _MarketingFee = _previousMarketingFee;
        }
    
        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 {
            //blacklisted addresses can not buy! If you have ever used a bot, or scammed anybody, then you're wallet address will probably be blacklisted.
            require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "This address is blacklisted");
            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.");

            // is the token balance of this contract address over the min number of
            // tokens that we need to initiate a swap?
            // also, don't swap if sender is uniswap pair.
            uint256 contractTokenBalance = balanceOf(address(this));
            
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            bool overMinTokenBalance = contractTokenBalance >= _numOfTokensToExchangeForMarketing;
            if (!inSwap && swapEnabled && overMinTokenBalance && sender != uniswapV2Pair) {
                // We need to swap the current tokens to ETH and send to the Marketing wallet
                swapTokensForEth(contractTokenBalance);
                
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToMarketing(address(this).balance);
                }
            }
            
            //indicates if fee should be deducted from transfer
            bool takeFee = true;
            
            //if any account belongs to _isExcludedFromFee account then remove the fee
            if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){
                takeFee = false;
            }
            
            //transfer amount, it will take tax and Marketing fee
            _tokenTransfer(sender,recipient,amount,takeFee);
        }

        function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{
            // generate the uniswap pair path of token -> weth
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();

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

            // make the swap
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0, // accept any amount of ETH
                path,
                address(this),
                block.timestamp
            );
        }
        
        function sendETHToMarketing(uint256 amount) private {
            _MarketingWalletAddress.transfer(amount.mul(3).div(8));
          
        }
        
        // We are exposing these functions to be able to manual swap and send
        // in case the token is highly valued and 5M becomes too much
        function manualSwap() external onlyOwner() {
            uint256 contractBalance = balanceOf(address(this));
            swapTokensForEth(contractBalance);
        }
        
        function manualSend() external {
            require(msg.sender==_MarketingWalletAddress);
            uint256 contractETHBalance = address(this).balance;
            sendETHToMarketing(contractETHBalance);
        }

        function setSwapEnabled(bool enabled) external onlyOwner(){
            swapEnabled = enabled;
        }
        
        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);
        }

         //to recieve ETH from uniswapV2Router when swaping
        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, _MarketingFee);
            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 _getTaxFee() private view returns(uint256) {return _taxFee;}
        function _getMaxTxAmount() public view returns(uint256) {return _maxTxAmount;}
        function _getETHBalance() public view returns(uint256 balance) {return address(this).balance;}
        
        function _setTaxFee(uint256 taxFee) external onlyOwner() {
            require(taxFee >= 0 && taxFee <= 10, 'taxFee should be in 0 - 10');
            _taxFee = taxFee;
        }

        function _setMarketingFee(uint256 MarketingFee) external onlyOwner() {
            require(MarketingFee >= 1 && MarketingFee <= 10, 'MarketingFee should be in 1 - 10');
            _MarketingFee = MarketingFee;
        }
        
        function _setMarketingWallet(address payable MarketingWalletAddress) external onlyOwner() {
            _MarketingWalletAddress = MarketingWalletAddress;
        }
        
        function _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {_maxTxAmount = maxTxAmount;}
        function removeFromBlackList(address account) external onlyOwner{_isBlacklisted[account] = false;}

         //adding multiple address to the blacklist - used to manually block known bots and scammers
        function addToBlackList(address[] calldata  addresses) external onlyOwner {
        for(uint256 i; i < addresses.length; ++i) {
            _isBlacklisted[addresses[i]] = true;
            }
        }
   
    }

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":"_MarketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getETHBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"MarketingFee","type":"uint256"}],"name":"_setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"MarketingWalletAddress","type":"address"}],"name":"_setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"_setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"addToBlackList","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":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","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":"totalFees","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"}]

678ac7230489e80000600a90815567693fcf03e3d7ffff19600b5561010060405260c0819052694d61644d617820496e7560b01b60e09081526200004791600d919062000412565b506040805180820190915260068082526509ac2c89ac2f60d31b60209092019182526200007791600e9162000412565b50600f805460ff1916600917905560016010819055600a60118190556012919091556013556014805461ffff60a01b1916600160a81b1790556702c68af0bb14000060155565048c27395000601655348015620000d357600080fd5b50604051620032863803806200328683398181016040526020811015620000f957600080fd5b5051600062000107620003ff565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601480546001600160a01b0319166001600160a01b038316179055600b54600460006200017d620003ff565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f457600080fd5b505afa15801562000209573d6000803e3d6000fd5b505050506040513d60208110156200022057600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b1580156200027157600080fd5b505afa15801562000286573d6000803e3d6000fd5b505050506040513d60208110156200029d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015620002f057600080fd5b505af115801562000305573d6000803e3d6000fd5b505050506040513d60208110156200031c57600080fd5b50516001600160601b0319606091821b811660a0529082901b166080526001600760006200034962000403565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155601454909116835291208054909216179055620003aa620003ff565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a35050620004ae565b3390565b6000546001600160a01b031690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200045557805160ff191683800117855562000485565b8280016001018555821562000485579182015b828111156200048557825182559160200191906001019062000468565b506200049392915062000497565b5090565b5b8082111562000493576000815560010162000498565b60805160601c60a05160601c612d9a620004ec60003980610e525280611e53525080610a905280612165528061221d52806122445250612d9a6000f3fe6080604052600436106102555760003560e01c8063715018a611610139578063dd467064116100b6578063f2fde38b1161007a578063f2fde38b146108b2578063f4293890146108e5578063f7a91591146108fa578063f815a8421461090f578063f84354f114610924578063ff897570146109575761025c565b8063dd467064146107d9578063dd62ed3e14610803578063e01af92c1461083e578063eedeacbe1461086a578063f2cc0c181461087f5761025c565b8063a69df4b5116100fd578063a69df4b514610708578063a9059cbb1461071d578063af9549e014610756578063b6c5232414610791578063cba0e996146107a65761025c565b8063715018a6146106665780638da5cb5b1461067b57806395d89b4114610690578063a457c2d7146106a5578063a52fe9bb146106de5761025c565b8063313ce567116101d25780634a49ac4c116101965780634a49ac4c1461057957806351bc3c85146105ac5780635342acb4146105c15780635880b873146105f45780636ddd17131461061e57806370a08231146106335761025c565b8063313ce567146104a457806339509351146104cf5780633bd5d173146105085780634549b0391461053257806349bd5a5e146105645761025c565b80631bbae6e0116102195780631bbae6e0146103a55780631cdd3be3146103d15780631ff53b601461040457806323b872dd146104375780632d8381191461047a5761025c565b806306fdde0314610261578063095ea7b3146102eb57806313114a9d146103385780631694505e1461035f57806318160ddd146103905761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109d4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102b0578181015183820152602001610298565b50505050905090810190601f1680156102dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f757600080fd5b506103246004803603604081101561030e57600080fd5b506001600160a01b038135169060200135610a6a565b604080519115158252519081900360200190f35b34801561034457600080fd5b5061034d610a88565b60408051918252519081900360200190f35b34801561036b57600080fd5b50610374610a8e565b604080516001600160a01b039092168252519081900360200190f35b34801561039c57600080fd5b5061034d610ab2565b3480156103b157600080fd5b506103cf600480360360208110156103c857600080fd5b5035610ab8565b005b3480156103dd57600080fd5b50610324600480360360208110156103f457600080fd5b50356001600160a01b0316610b15565b34801561041057600080fd5b506103cf6004803603602081101561042757600080fd5b50356001600160a01b0316610b2a565b34801561044357600080fd5b506103246004803603606081101561045a57600080fd5b506001600160a01b03813581169160208101359091169060400135610ba4565b34801561048657600080fd5b5061034d6004803603602081101561049d57600080fd5b5035610c2b565b3480156104b057600080fd5b506104b9610c8d565b6040805160ff9092168252519081900360200190f35b3480156104db57600080fd5b50610324600480360360408110156104f257600080fd5b506001600160a01b038135169060200135610c96565b34801561051457600080fd5b506103cf6004803603602081101561052b57600080fd5b5035610ce4565b34801561053e57600080fd5b5061034d6004803603604081101561055557600080fd5b50803590602001351515610dbe565b34801561057057600080fd5b50610374610e50565b34801561058557600080fd5b506103cf6004803603602081101561059c57600080fd5b50356001600160a01b0316610e74565b3480156105b857600080fd5b506103cf610eed565b3480156105cd57600080fd5b50610324600480360360208110156105e457600080fd5b50356001600160a01b0316610f5e565b34801561060057600080fd5b506103cf6004803603602081101561061757600080fd5b5035610f7c565b34801561062a57600080fd5b5061032461102f565b34801561063f57600080fd5b5061034d6004803603602081101561065657600080fd5b50356001600160a01b031661103f565b34801561067257600080fd5b506103cf6110a1565b34801561068757600080fd5b50610374611131565b34801561069c57600080fd5b50610276611140565b3480156106b157600080fd5b50610324600480360360408110156106c857600080fd5b506001600160a01b0381351690602001356111a1565b3480156106ea57600080fd5b506103cf6004803603602081101561070157600080fd5b5035611209565b34801561071457600080fd5b506103cf6112c9565b34801561072957600080fd5b506103246004803603604081101561074057600080fd5b506001600160a01b0381351690602001356113b7565b34801561076257600080fd5b506103cf6004803603604081101561077957600080fd5b506001600160a01b03813516906020013515156113cb565b34801561079d57600080fd5b5061034d61144e565b3480156107b257600080fd5b50610324600480360360208110156107c957600080fd5b50356001600160a01b0316611454565b3480156107e557600080fd5b506103cf600480360360208110156107fc57600080fd5b5035611472565b34801561080f57600080fd5b5061034d6004803603604081101561082657600080fd5b506001600160a01b0381358116916020013516611510565b34801561084a57600080fd5b506103cf6004803603602081101561086157600080fd5b5035151561153b565b34801561087657600080fd5b506103746115b1565b34801561088b57600080fd5b506103cf600480360360208110156108a257600080fd5b50356001600160a01b03166115c0565b3480156108be57600080fd5b506103cf600480360360208110156108d557600080fd5b50356001600160a01b03166117a2565b3480156108f157600080fd5b506103cf611888565b34801561090657600080fd5b5061034d6118a9565b34801561091b57600080fd5b5061034d6118af565b34801561093057600080fd5b506103cf6004803603602081101561094757600080fd5b50356001600160a01b03166118b3565b34801561096357600080fd5b506103cf6004803603602081101561097a57600080fd5b81019060208101813564010000000081111561099557600080fd5b8201836020820111156109a757600080fd5b803590602001918460208302840111640100000000831117156109c957600080fd5b509092509050611a74565b600d8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a605780601f10610a3557610100808354040283529160200191610a60565b820191906000526020600020905b815481529060010190602001808311610a4357829003601f168201915b5050505050905090565b6000610a7e610a77611b27565b8484611b2b565b5060015b92915050565b600c5490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a5490565b610ac0611b27565b6000546001600160a01b03908116911614610b10576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b601555565b60036020526000908152604090205460ff1681565b610b32611b27565b6000546001600160a01b03908116911614610b82576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bb1848484611c17565b610c2184610bbd611b27565b610c1c85604051806060016040528060288152602001612bf5602891396001600160a01b038a16600090815260066020526040812090610bfb611b27565b6001600160a01b031681526020810191909152604001600020549190611f07565b611b2b565b5060019392505050565b6000600b54821115610c6e5760405162461bcd60e51b815260040180806020018281038252602a815260200180612b3a602a913960400191505060405180910390fd5b6000610c78611f9e565b9050610c848382611fc1565b9150505b919050565b600f5460ff1690565b6000610a7e610ca3611b27565b84610c1c8560066000610cb4611b27565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061200a565b6000610cee611b27565b6001600160a01b03811660009081526008602052604090205490915060ff1615610d495760405162461bcd60e51b815260040180806020018281038252602c815260200180612cf1602c913960400191505060405180910390fd5b6000610d5483612064565b505050506001600160a01b038416600090815260046020526040902054919250610d80919050826120c0565b6001600160a01b038316600090815260046020526040902055600b54610da690826120c0565b600b55600c54610db6908461200a565b600c55505050565b6000600a54831115610e17576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610e36576000610e2784612064565b50939550610a82945050505050565b6000610e4184612064565b50929550610a82945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610e7c611b27565b6000546001600160a01b03908116911614610ecc576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b610ef5611b27565b6000546001600160a01b03908116911614610f45576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6000610f503061103f565b9050610f5b81612102565b50565b6001600160a01b031660009081526007602052604090205460ff1690565b610f84611b27565b6000546001600160a01b03908116911614610fd4576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600a81111561102a576040805162461bcd60e51b815260206004820152601a60248201527f7461784665652073686f756c6420626520696e2030202d203130000000000000604482015290519081900360640190fd5b601055565b601454600160a81b900460ff1681565b6001600160a01b03811660009081526008602052604081205460ff161561107f57506001600160a01b038116600090815260056020526040902054610c88565b6001600160a01b038216600090815260046020526040902054610a8290610c2b565b6110a9611b27565b6000546001600160a01b039081169116146110f9576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600080546040516001600160a01b0390911690600080516020612c3d833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600e8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a605780601f10610a3557610100808354040283529160200191610a60565b6000610a7e6111ae611b27565b84610c1c85604051806060016040528060258152602001612d4060259139600660006111d8611b27565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611f07565b611211611b27565b6000546001600160a01b03908116911614611261576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600181101580156112735750600a8111155b6112c4576040805162461bcd60e51b815260206004820181905260248201527f4d61726b6574696e674665652073686f756c6420626520696e2031202d203130604482015290519081900360640190fd5b601155565b6001546001600160a01b031633146113125760405162461bcd60e51b8152600401808060200182810382526023815260200180612d1d6023913960400191505060405180910390fd5b6002544211611368576040805162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300604482015290519081900360640190fd5b600154600080546040516001600160a01b039384169390911691600080516020612c3d83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610a7e6113c4611b27565b8484611c17565b6113d3611b27565b6000546001600160a01b03908116911614611423576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b60025490565b6001600160a01b031660009081526008602052604090205460ff1690565b61147a611b27565b6000546001600160a01b039081169116146114ca576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b038416179091551681554282016002556040518190600080516020612c3d833981519152908290a350565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b611543611b27565b6000546001600160a01b03908116911614611593576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60148054911515600160a81b0260ff60a81b19909216919091179055565b6014546001600160a01b031681565b6115c8611b27565b6000546001600160a01b03908116911614611618576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b7350e617c888934f49054e8d0d23e8eed62b7a43956001600160a01b03821614156116745760405162461bcd60e51b8152600401808060200182810382526022815260200180612ccf6022913960400191505060405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff16156116e2576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020541561173c576001600160a01b03811660009081526004602052604090205461172290610c2b565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6117aa611b27565b6000546001600160a01b039081169116146117fa576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03811661183f5760405162461bcd60e51b8152600401808060200182810382526026815260200180612b646026913960400191505060405180910390fd5b600080546040516001600160a01b0380851693921691600080516020612c3d83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316331461189f57600080fd5b47610f5b81612339565b60155490565b4790565b6118bb611b27565b6000546001600160a01b0390811691161461190b576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff16611978576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600954811015611a7057816001600160a01b03166009828154811061199c57fe5b6000918252602090912001546001600160a01b03161415611a68576009805460001981019081106119c957fe5b600091825260209091200154600980546001600160a01b0390921691839081106119ef57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600890925220805460ff191690556009805480611a4157fe5b600082815260209020810160001990810180546001600160a01b0319169055019055611a70565b60010161197b565b5050565b611a7c611b27565b6000546001600160a01b03908116911614611acc576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60005b81811015611b2257600160036000858585818110611ae957fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611acf565b505050565b3390565b6001600160a01b038316611b705760405162461bcd60e51b8152600401808060200182810382526024815260200180612cab6024913960400191505060405180910390fd5b6001600160a01b038216611bb55760405162461bcd60e51b8152600401808060200182810382526022815260200180612b8a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831660009081526003602052604090205460ff16158015611c5957506001600160a01b03821660009081526003602052604090205460ff16155b611caa576040805162461bcd60e51b815260206004820152601b60248201527f54686973206164647265737320697320626c61636b6c69737465640000000000604482015290519081900360640190fd5b6001600160a01b038316611cef5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c866025913960400191505060405180910390fd5b6001600160a01b038216611d345760405162461bcd60e51b8152600401808060200182810382526023815260200180612b176023913960400191505060405180910390fd5b60008111611d735760405162461bcd60e51b8152600401808060200182810382526029815260200180612c5d6029913960400191505060405180910390fd5b611d7b611131565b6001600160a01b0316836001600160a01b031614158015611db55750611d9f611131565b6001600160a01b0316826001600160a01b031614155b15611dfb57601554811115611dfb5760405162461bcd60e51b8152600401808060200182810382526028815260200180612bac6028913960400191505060405180910390fd5b6000611e063061103f565b90506015548110611e1657506015545b6016546014549082101590600160a01b900460ff16158015611e415750601454600160a81b900460ff165b8015611e4a5750805b8015611e8857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b15611ea857611e9682612102565b478015611ea657611ea647612339565b505b6001600160a01b03851660009081526007602052604090205460019060ff1680611eea57506001600160a01b03851660009081526007602052604090205460ff165b15611ef3575060005b611eff86868684612386565b505050505050565b60008184841115611f965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f5b578181015183820152602001611f43565b50505050905090810190601f168015611f885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000611fab6124fa565b9092509050611fba8282611fc1565b9250505090565b600061200383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061265d565b9392505050565b600082820183811015612003576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008060008060008060008060006120818a6010546011546126c2565b9250925092506000612091611f9e565b905060008060006120a38e8786612711565b919e509c509a509598509396509194505050505091939550919395565b600061200383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f07565b6014805460ff60a01b1916600160a01b1790556040805160028082526060808301845292602083019080368337019050509050308160008151811061214357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121bc57600080fd5b505afa1580156121d0573d6000803e3d6000fd5b505050506040513d60208110156121e657600080fd5b50518151829060019081106121f757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050612242307f000000000000000000000000000000000000000000000000000000000000000084611b2b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156122e75781810151838201526020016122cf565b505050509050019650505050505050600060405180830381600087803b15801561231057600080fd5b505af1158015612324573d6000803e3d6000fd5b50506014805460ff60a01b1916905550505050565b6014546001600160a01b03166108fc61235e600861235885600361274d565b90611fc1565b6040518115909202916000818181858888f19350505050158015611a70573d6000803e3d6000fd5b80612393576123936127a6565b6001600160a01b03841660009081526008602052604090205460ff1680156123d457506001600160a01b03831660009081526008602052604090205460ff16155b156123e9576123e48484846127d8565b6124e7565b6001600160a01b03841660009081526008602052604090205460ff1615801561242a57506001600160a01b03831660009081526008602052604090205460ff165b1561243a576123e48484846128fc565b6001600160a01b03841660009081526008602052604090205460ff1615801561247c57506001600160a01b03831660009081526008602052604090205460ff16155b1561248c576123e48484846129a5565b6001600160a01b03841660009081526008602052604090205460ff1680156124cc57506001600160a01b03831660009081526008602052604090205460ff165b156124dc576123e48484846129e9565b6124e78484846129a5565b806124f4576124f4612a5c565b50505050565b600b54600a546000918291825b60095481101561262b5782600460006009848154811061252357fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612588575081600560006009848154811061256157fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561259f57600b54600a5494509450505050612659565b6125df60046000600984815481106125b357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906120c0565b925061262160056000600984815481106125f557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906120c0565b9150600101612507565b50600a54600b5461263b91611fc1565b82101561265357600b54600a54935093505050612659565b90925090505b9091565b600081836126ac5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611f5b578181015183820152602001611f43565b5060008385816126b857fe5b0495945050505050565b60008080806126d66064612358898961274d565b905060006126e960646123588a8961274d565b90506000612701826126fb8b866120c0565b906120c0565b9992985090965090945050505050565b6000808080612720878661274d565b9050600061272e878761274d565b9050600061273c83836120c0565b929992985090965090945050505050565b60008261275c57506000610a82565b8282028284828161276957fe5b04146120035760405162461bcd60e51b8152600401808060200182810382526021815260200180612bd46021913960400191505060405180910390fd5b6010541580156127b65750601154155b156127c0576127d6565b6010805460125560118054601355600091829055555b565b6000806000806000806127ea87612064565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061281c90886120c0565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461284b90876120c0565b6001600160a01b03808b1660009081526004602052604080822093909355908a168152205461287a908661200a565b6001600160a01b03891660009081526004602052604090205561289c81612a6a565b6128a68483612af2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061290e87612064565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061294090876120c0565b6001600160a01b03808b16600090815260046020908152604080832094909455918b16815260059091522054612976908461200a565b6001600160a01b03891660009081526005602090815260408083209390935560049052205461287a908661200a565b6000806000806000806129b787612064565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061284b90876120c0565b6000806000806000806129fb87612064565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612a2d90886120c0565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461294090876120c0565b601254601055601354601155565b6000612a74611f9e565b90506000612a82838361274d565b30600090815260046020526040902054909150612a9f908261200a565b3060009081526004602090815260408083209390935560089052205460ff1615611b225730600090815260056020526040902054612add908461200a565b30600090815260056020526040902055505050565b600b54612aff90836120c0565b600b55600c54612b0f908261200a565b600c55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205050b6a594b9f9cb63f31016782488520dfbfe3f3d7cad3b9d731fa51eb05e8664736f6c634300060c0033000000000000000000000000867f10735143ce6b2490203f095c5a759272226f

Deployed Bytecode

0x6080604052600436106102555760003560e01c8063715018a611610139578063dd467064116100b6578063f2fde38b1161007a578063f2fde38b146108b2578063f4293890146108e5578063f7a91591146108fa578063f815a8421461090f578063f84354f114610924578063ff897570146109575761025c565b8063dd467064146107d9578063dd62ed3e14610803578063e01af92c1461083e578063eedeacbe1461086a578063f2cc0c181461087f5761025c565b8063a69df4b5116100fd578063a69df4b514610708578063a9059cbb1461071d578063af9549e014610756578063b6c5232414610791578063cba0e996146107a65761025c565b8063715018a6146106665780638da5cb5b1461067b57806395d89b4114610690578063a457c2d7146106a5578063a52fe9bb146106de5761025c565b8063313ce567116101d25780634a49ac4c116101965780634a49ac4c1461057957806351bc3c85146105ac5780635342acb4146105c15780635880b873146105f45780636ddd17131461061e57806370a08231146106335761025c565b8063313ce567146104a457806339509351146104cf5780633bd5d173146105085780634549b0391461053257806349bd5a5e146105645761025c565b80631bbae6e0116102195780631bbae6e0146103a55780631cdd3be3146103d15780631ff53b601461040457806323b872dd146104375780632d8381191461047a5761025c565b806306fdde0314610261578063095ea7b3146102eb57806313114a9d146103385780631694505e1461035f57806318160ddd146103905761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109d4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102b0578181015183820152602001610298565b50505050905090810190601f1680156102dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f757600080fd5b506103246004803603604081101561030e57600080fd5b506001600160a01b038135169060200135610a6a565b604080519115158252519081900360200190f35b34801561034457600080fd5b5061034d610a88565b60408051918252519081900360200190f35b34801561036b57600080fd5b50610374610a8e565b604080516001600160a01b039092168252519081900360200190f35b34801561039c57600080fd5b5061034d610ab2565b3480156103b157600080fd5b506103cf600480360360208110156103c857600080fd5b5035610ab8565b005b3480156103dd57600080fd5b50610324600480360360208110156103f457600080fd5b50356001600160a01b0316610b15565b34801561041057600080fd5b506103cf6004803603602081101561042757600080fd5b50356001600160a01b0316610b2a565b34801561044357600080fd5b506103246004803603606081101561045a57600080fd5b506001600160a01b03813581169160208101359091169060400135610ba4565b34801561048657600080fd5b5061034d6004803603602081101561049d57600080fd5b5035610c2b565b3480156104b057600080fd5b506104b9610c8d565b6040805160ff9092168252519081900360200190f35b3480156104db57600080fd5b50610324600480360360408110156104f257600080fd5b506001600160a01b038135169060200135610c96565b34801561051457600080fd5b506103cf6004803603602081101561052b57600080fd5b5035610ce4565b34801561053e57600080fd5b5061034d6004803603604081101561055557600080fd5b50803590602001351515610dbe565b34801561057057600080fd5b50610374610e50565b34801561058557600080fd5b506103cf6004803603602081101561059c57600080fd5b50356001600160a01b0316610e74565b3480156105b857600080fd5b506103cf610eed565b3480156105cd57600080fd5b50610324600480360360208110156105e457600080fd5b50356001600160a01b0316610f5e565b34801561060057600080fd5b506103cf6004803603602081101561061757600080fd5b5035610f7c565b34801561062a57600080fd5b5061032461102f565b34801561063f57600080fd5b5061034d6004803603602081101561065657600080fd5b50356001600160a01b031661103f565b34801561067257600080fd5b506103cf6110a1565b34801561068757600080fd5b50610374611131565b34801561069c57600080fd5b50610276611140565b3480156106b157600080fd5b50610324600480360360408110156106c857600080fd5b506001600160a01b0381351690602001356111a1565b3480156106ea57600080fd5b506103cf6004803603602081101561070157600080fd5b5035611209565b34801561071457600080fd5b506103cf6112c9565b34801561072957600080fd5b506103246004803603604081101561074057600080fd5b506001600160a01b0381351690602001356113b7565b34801561076257600080fd5b506103cf6004803603604081101561077957600080fd5b506001600160a01b03813516906020013515156113cb565b34801561079d57600080fd5b5061034d61144e565b3480156107b257600080fd5b50610324600480360360208110156107c957600080fd5b50356001600160a01b0316611454565b3480156107e557600080fd5b506103cf600480360360208110156107fc57600080fd5b5035611472565b34801561080f57600080fd5b5061034d6004803603604081101561082657600080fd5b506001600160a01b0381358116916020013516611510565b34801561084a57600080fd5b506103cf6004803603602081101561086157600080fd5b5035151561153b565b34801561087657600080fd5b506103746115b1565b34801561088b57600080fd5b506103cf600480360360208110156108a257600080fd5b50356001600160a01b03166115c0565b3480156108be57600080fd5b506103cf600480360360208110156108d557600080fd5b50356001600160a01b03166117a2565b3480156108f157600080fd5b506103cf611888565b34801561090657600080fd5b5061034d6118a9565b34801561091b57600080fd5b5061034d6118af565b34801561093057600080fd5b506103cf6004803603602081101561094757600080fd5b50356001600160a01b03166118b3565b34801561096357600080fd5b506103cf6004803603602081101561097a57600080fd5b81019060208101813564010000000081111561099557600080fd5b8201836020820111156109a757600080fd5b803590602001918460208302840111640100000000831117156109c957600080fd5b509092509050611a74565b600d8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a605780601f10610a3557610100808354040283529160200191610a60565b820191906000526020600020905b815481529060010190602001808311610a4357829003601f168201915b5050505050905090565b6000610a7e610a77611b27565b8484611b2b565b5060015b92915050565b600c5490565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600a5490565b610ac0611b27565b6000546001600160a01b03908116911614610b10576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b601555565b60036020526000908152604090205460ff1681565b610b32611b27565b6000546001600160a01b03908116911614610b82576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bb1848484611c17565b610c2184610bbd611b27565b610c1c85604051806060016040528060288152602001612bf5602891396001600160a01b038a16600090815260066020526040812090610bfb611b27565b6001600160a01b031681526020810191909152604001600020549190611f07565b611b2b565b5060019392505050565b6000600b54821115610c6e5760405162461bcd60e51b815260040180806020018281038252602a815260200180612b3a602a913960400191505060405180910390fd5b6000610c78611f9e565b9050610c848382611fc1565b9150505b919050565b600f5460ff1690565b6000610a7e610ca3611b27565b84610c1c8560066000610cb4611b27565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061200a565b6000610cee611b27565b6001600160a01b03811660009081526008602052604090205490915060ff1615610d495760405162461bcd60e51b815260040180806020018281038252602c815260200180612cf1602c913960400191505060405180910390fd5b6000610d5483612064565b505050506001600160a01b038416600090815260046020526040902054919250610d80919050826120c0565b6001600160a01b038316600090815260046020526040902055600b54610da690826120c0565b600b55600c54610db6908461200a565b600c55505050565b6000600a54831115610e17576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610e36576000610e2784612064565b50939550610a82945050505050565b6000610e4184612064565b50929550610a82945050505050565b7f0000000000000000000000006deb5553b1479ce19eeca68163019158a4f95ae281565b610e7c611b27565b6000546001600160a01b03908116911614610ecc576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600360205260409020805460ff19169055565b610ef5611b27565b6000546001600160a01b03908116911614610f45576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6000610f503061103f565b9050610f5b81612102565b50565b6001600160a01b031660009081526007602052604090205460ff1690565b610f84611b27565b6000546001600160a01b03908116911614610fd4576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600a81111561102a576040805162461bcd60e51b815260206004820152601a60248201527f7461784665652073686f756c6420626520696e2030202d203130000000000000604482015290519081900360640190fd5b601055565b601454600160a81b900460ff1681565b6001600160a01b03811660009081526008602052604081205460ff161561107f57506001600160a01b038116600090815260056020526040902054610c88565b6001600160a01b038216600090815260046020526040902054610a8290610c2b565b6110a9611b27565b6000546001600160a01b039081169116146110f9576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600080546040516001600160a01b0390911690600080516020612c3d833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b600e8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a605780601f10610a3557610100808354040283529160200191610a60565b6000610a7e6111ae611b27565b84610c1c85604051806060016040528060258152602001612d4060259139600660006111d8611b27565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611f07565b611211611b27565b6000546001600160a01b03908116911614611261576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b600181101580156112735750600a8111155b6112c4576040805162461bcd60e51b815260206004820181905260248201527f4d61726b6574696e674665652073686f756c6420626520696e2031202d203130604482015290519081900360640190fd5b601155565b6001546001600160a01b031633146113125760405162461bcd60e51b8152600401808060200182810382526023815260200180612d1d6023913960400191505060405180910390fd5b6002544211611368576040805162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300604482015290519081900360640190fd5b600154600080546040516001600160a01b039384169390911691600080516020612c3d83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610a7e6113c4611b27565b8484611c17565b6113d3611b27565b6000546001600160a01b03908116911614611423576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b60025490565b6001600160a01b031660009081526008602052604090205460ff1690565b61147a611b27565b6000546001600160a01b039081169116146114ca576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b038416179091551681554282016002556040518190600080516020612c3d833981519152908290a350565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b611543611b27565b6000546001600160a01b03908116911614611593576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60148054911515600160a81b0260ff60a81b19909216919091179055565b6014546001600160a01b031681565b6115c8611b27565b6000546001600160a01b03908116911614611618576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b7350e617c888934f49054e8d0d23e8eed62b7a43956001600160a01b03821614156116745760405162461bcd60e51b8152600401808060200182810382526022815260200180612ccf6022913960400191505060405180910390fd5b6001600160a01b03811660009081526008602052604090205460ff16156116e2576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600460205260409020541561173c576001600160a01b03811660009081526004602052604090205461172290610c2b565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6117aa611b27565b6000546001600160a01b039081169116146117fa576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03811661183f5760405162461bcd60e51b8152600401808060200182810382526026815260200180612b646026913960400191505060405180910390fd5b600080546040516001600160a01b0380851693921691600080516020612c3d83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316331461189f57600080fd5b47610f5b81612339565b60155490565b4790565b6118bb611b27565b6000546001600160a01b0390811691161461190b576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff16611978576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600954811015611a7057816001600160a01b03166009828154811061199c57fe5b6000918252602090912001546001600160a01b03161415611a68576009805460001981019081106119c957fe5b600091825260209091200154600980546001600160a01b0390921691839081106119ef57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600890925220805460ff191690556009805480611a4157fe5b600082815260209020810160001990810180546001600160a01b0319169055019055611a70565b60010161197b565b5050565b611a7c611b27565b6000546001600160a01b03908116911614611acc576040805162461bcd60e51b81526020600482018190526024820152600080516020612c1d833981519152604482015290519081900360640190fd5b60005b81811015611b2257600160036000858585818110611ae957fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611acf565b505050565b3390565b6001600160a01b038316611b705760405162461bcd60e51b8152600401808060200182810382526024815260200180612cab6024913960400191505060405180910390fd5b6001600160a01b038216611bb55760405162461bcd60e51b8152600401808060200182810382526022815260200180612b8a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831660009081526003602052604090205460ff16158015611c5957506001600160a01b03821660009081526003602052604090205460ff16155b611caa576040805162461bcd60e51b815260206004820152601b60248201527f54686973206164647265737320697320626c61636b6c69737465640000000000604482015290519081900360640190fd5b6001600160a01b038316611cef5760405162461bcd60e51b8152600401808060200182810382526025815260200180612c866025913960400191505060405180910390fd5b6001600160a01b038216611d345760405162461bcd60e51b8152600401808060200182810382526023815260200180612b176023913960400191505060405180910390fd5b60008111611d735760405162461bcd60e51b8152600401808060200182810382526029815260200180612c5d6029913960400191505060405180910390fd5b611d7b611131565b6001600160a01b0316836001600160a01b031614158015611db55750611d9f611131565b6001600160a01b0316826001600160a01b031614155b15611dfb57601554811115611dfb5760405162461bcd60e51b8152600401808060200182810382526028815260200180612bac6028913960400191505060405180910390fd5b6000611e063061103f565b90506015548110611e1657506015545b6016546014549082101590600160a01b900460ff16158015611e415750601454600160a81b900460ff165b8015611e4a5750805b8015611e8857507f0000000000000000000000006deb5553b1479ce19eeca68163019158a4f95ae26001600160a01b0316856001600160a01b031614155b15611ea857611e9682612102565b478015611ea657611ea647612339565b505b6001600160a01b03851660009081526007602052604090205460019060ff1680611eea57506001600160a01b03851660009081526007602052604090205460ff165b15611ef3575060005b611eff86868684612386565b505050505050565b60008184841115611f965760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f5b578181015183820152602001611f43565b50505050905090810190601f168015611f885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000611fab6124fa565b9092509050611fba8282611fc1565b9250505090565b600061200383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061265d565b9392505050565b600082820183811015612003576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008060008060008060008060006120818a6010546011546126c2565b9250925092506000612091611f9e565b905060008060006120a38e8786612711565b919e509c509a509598509396509194505050505091939550919395565b600061200383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f07565b6014805460ff60a01b1916600160a01b1790556040805160028082526060808301845292602083019080368337019050509050308160008151811061214357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121bc57600080fd5b505afa1580156121d0573d6000803e3d6000fd5b505050506040513d60208110156121e657600080fd5b50518151829060019081106121f757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050612242307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611b2b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156122e75781810151838201526020016122cf565b505050509050019650505050505050600060405180830381600087803b15801561231057600080fd5b505af1158015612324573d6000803e3d6000fd5b50506014805460ff60a01b1916905550505050565b6014546001600160a01b03166108fc61235e600861235885600361274d565b90611fc1565b6040518115909202916000818181858888f19350505050158015611a70573d6000803e3d6000fd5b80612393576123936127a6565b6001600160a01b03841660009081526008602052604090205460ff1680156123d457506001600160a01b03831660009081526008602052604090205460ff16155b156123e9576123e48484846127d8565b6124e7565b6001600160a01b03841660009081526008602052604090205460ff1615801561242a57506001600160a01b03831660009081526008602052604090205460ff165b1561243a576123e48484846128fc565b6001600160a01b03841660009081526008602052604090205460ff1615801561247c57506001600160a01b03831660009081526008602052604090205460ff16155b1561248c576123e48484846129a5565b6001600160a01b03841660009081526008602052604090205460ff1680156124cc57506001600160a01b03831660009081526008602052604090205460ff165b156124dc576123e48484846129e9565b6124e78484846129a5565b806124f4576124f4612a5c565b50505050565b600b54600a546000918291825b60095481101561262b5782600460006009848154811061252357fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612588575081600560006009848154811061256157fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561259f57600b54600a5494509450505050612659565b6125df60046000600984815481106125b357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906120c0565b925061262160056000600984815481106125f557fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906120c0565b9150600101612507565b50600a54600b5461263b91611fc1565b82101561265357600b54600a54935093505050612659565b90925090505b9091565b600081836126ac5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611f5b578181015183820152602001611f43565b5060008385816126b857fe5b0495945050505050565b60008080806126d66064612358898961274d565b905060006126e960646123588a8961274d565b90506000612701826126fb8b866120c0565b906120c0565b9992985090965090945050505050565b6000808080612720878661274d565b9050600061272e878761274d565b9050600061273c83836120c0565b929992985090965090945050505050565b60008261275c57506000610a82565b8282028284828161276957fe5b04146120035760405162461bcd60e51b8152600401808060200182810382526021815260200180612bd46021913960400191505060405180910390fd5b6010541580156127b65750601154155b156127c0576127d6565b6010805460125560118054601355600091829055555b565b6000806000806000806127ea87612064565b6001600160a01b038f16600090815260056020526040902054959b5093995091975095509350915061281c90886120c0565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461284b90876120c0565b6001600160a01b03808b1660009081526004602052604080822093909355908a168152205461287a908661200a565b6001600160a01b03891660009081526004602052604090205561289c81612a6a565b6128a68483612af2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061290e87612064565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061294090876120c0565b6001600160a01b03808b16600090815260046020908152604080832094909455918b16815260059091522054612976908461200a565b6001600160a01b03891660009081526005602090815260408083209390935560049052205461287a908661200a565b6000806000806000806129b787612064565b6001600160a01b038f16600090815260046020526040902054959b5093995091975095509350915061284b90876120c0565b6000806000806000806129fb87612064565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612a2d90886120c0565b6001600160a01b038a1660009081526005602090815260408083209390935560049052205461294090876120c0565b601254601055601354601155565b6000612a74611f9e565b90506000612a82838361274d565b30600090815260046020526040902054909150612a9f908261200a565b3060009081526004602090815260408083209390935560089052205460ff1615611b225730600090815260056020526040902054612add908461200a565b30600090815260056020526040902055505050565b600b54612aff90836120c0565b600b55600c54612b0f908261200a565b600c55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205050b6a594b9f9cb63f31016782488520dfbfe3f3d7cad3b9d731fa51eb05e8664736f6c634300060c0033

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

000000000000000000000000867f10735143ce6b2490203f095c5a759272226f

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000867f10735143ce6b2490203f095c5a759272226f


Deployed Bytecode Sourcemap

15879:19582:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18582:67;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19476:173;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19476:173:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;20824:71;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17029:51;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;17029:51:0;;;;;;;;;;;;;;18817:79;;;;;;;;;;;;;:::i;34927:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34927:96:0;;:::i;:::-;;16009:47;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16009:47:0;-1:-1:-1;;;;;16009:47:0;;:::i;34742:165::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34742:165:0;-1:-1:-1;;;;;34742:165:0;;:::i;19661:329::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19661:329:0;;;;;;;;;;;;;;;;;:::i;21808:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21808:269:0;;:::i;18740:67::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20002:230;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20002:230:0;;;;;;;;:::i;20907:405::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20907:405:0;;:::i;21324:472::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21324:472:0;;;;;;;;;:::i;17091:38::-;;;;;;;;;;;;;:::i;35033:98::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35033:98:0;-1:-1:-1;;;;;35033:98:0;;:::i;27347:168::-;;;;;;;;;;;;;:::i;23561:131::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23561:131:0;-1:-1:-1;;;;;23561:131:0;;:::i;34306:181::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34306:181:0;;:::i;17172:30::-;;;;;;;;;;;;;:::i;18908:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18908:210:0;-1:-1:-1;;;;;18908:210:0;;:::i;6088:160::-;;;;;;;;;;;;;:::i;5850:87::-;;;;;;;;;;;;;:::i;18659:71::-;;;;;;;;;;;;;:::i;20244:281::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20244:281:0;;;;;;;;:::i;34499:223::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34499:223:0;;:::i;6879:313::-;;;;;;;;;;;;;:::i;19130:171::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19130:171:0;;;;;;;;:::i;20667:145::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20667:145:0;;;;;;;;;;:::i;6528:97::-;;;;;;;;;;;;;:::i;20537:118::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20537:118:0;-1:-1:-1;;;;;20537:118:0;;:::i;6635:234::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6635:234:0;;:::i;19313:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19313:151:0;;;;;;;;;;:::i;27767:106::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27767:106:0;;;;:::i;16962:46::-;;;;;;;;;;;;;:::i;22089:475::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22089:475:0;-1:-1:-1;;;;;22089:475:0;;:::i;6258:260::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6258:260:0;-1:-1:-1;;;;;6258:260:0;;:::i;27535:220::-;;;;;;;;;;;;;:::i;34104:78::-;;;;;;;;;;;;;:::i;34192:94::-;;;;;;;;;;;;;:::i;22576:522::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22576:522:0;-1:-1:-1;;;;;22576:522:0;;:::i;35245:204::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35245:204:0;;-1:-1:-1;35245:204:0;-1:-1:-1;35245:204:0;:::i;18582:67::-;18642:5;18635:12;;;;;;;;-1:-1:-1;;18635:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18619:13;;18635:12;;18642:5;;18635:12;;18642:5;18635:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18582:67;:::o;19476:173::-;19551:4;19572:39;19581:12;:10;:12::i;:::-;19595:7;19604:6;19572:8;:39::i;:::-;-1:-1:-1;19633:4:0;19476:173;;;;;:::o;20824:71::-;20883:10;;20824:71;:::o;17029:51::-;;;:::o;18817:79::-;18887:7;;18817:79;:::o;34927:96::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;34995:12:::1;:26:::0;34927:96::o;16009:47::-;;;;;;;;;;;;;;;:::o;34742:165::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;34847:23:::1;:48:::0;;-1:-1:-1;;;;;;34847:48:0::1;-1:-1:-1::0;;;;;34847:48:0;;;::::1;::::0;;;::::1;::::0;;34742:165::o;19661:329::-;19759:4;19780:36;19790:6;19798:9;19809:6;19780:9;:36::i;:::-;19831:121;19840:6;19848:12;:10;:12::i;:::-;19862:89;19900:6;19862:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19862:19:0;;;;;;:11;:19;;;;;;19882:12;:10;:12::i;:::-;-1:-1:-1;;;;;19862:33:0;;;;;;;;;;;;-1:-1:-1;19862:33:0;;;:89;:37;:89::i;:::-;19831:8;:121::i;:::-;-1:-1:-1;19974:4:0;19661:329;;;;;:::o;21808:269::-;21874:7;21917;;21906;:18;;21898:73;;;;-1:-1:-1;;;21898:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21986:19;22009:10;:8;:10::i;:::-;21986:33;-1:-1:-1;22041:24:0;:7;21986:33;22041:11;:24::i;:::-;22034:31;;;21808:269;;;;:::o;18740:67::-;18796:9;;;;18740:67;:::o;20002:230::-;20090:4;20111:83;20120:12;:10;:12::i;:::-;20134:7;20143:50;20182:10;20143:11;:25;20155:12;:10;:12::i;:::-;-1:-1:-1;;;;;20143:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;20143:25:0;;;:34;;;;;;;;;;;:38;:50::i;20907:405::-;20963:14;20980:12;:10;:12::i;:::-;-1:-1:-1;;;;;21016:19:0;;;;;;:11;:19;;;;;;20963:29;;-1:-1:-1;21016:19:0;;21015:20;21007:77;;;;-1:-1:-1;;;21007:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21100:15;21124:19;21135:7;21124:10;:19::i;:::-;-1:-1:-1;;;;;;;;;21176:15:0;;;;;;:7;:15;;;;;;21099:44;;-1:-1:-1;21176:28:0;;:15;-1:-1:-1;21099:44:0;21176:19;:28::i;:::-;-1:-1:-1;;;;;21158:15:0;;;;;;:7;:15;;;;;:46;21229:7;;:20;;21241:7;21229:11;:20::i;:::-;21219:7;:30;21277:10;;:23;;21292:7;21277:14;:23::i;:::-;21264:10;:36;-1:-1:-1;;;20907:405:0:o;21324:472::-;21414:7;21457;;21446;:18;;21438:62;;;;;-1:-1:-1;;;21438:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21520:17;21515:270;;21559:15;21583:19;21594:7;21583:10;:19::i;:::-;-1:-1:-1;21558:44:0;;-1:-1:-1;21621:14:0;;-1:-1:-1;;;;;21621:14:0;21515:270;21678:23;21709:19;21720:7;21709:10;:19::i;:::-;-1:-1:-1;21676:52:0;;-1:-1:-1;21747:22:0;;-1:-1:-1;;;;;21747:22:0;17091:38;;;:::o;35033:98::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;35098:23:0::1;35124:5;35098:23:::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;35098:31:0::1;::::0;;35033:98::o;27347:168::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;27405:23:::1;27431:24;27449:4;27431:9;:24::i;:::-;27405:50;;27470:33;27487:15;27470:16;:33::i;:::-;6065:1;27347:168::o:0;23561:131::-;-1:-1:-1;;;;;23653:27:0;23625:4;23653:27;;;:18;:27;;;;;;;;;23561:131::o;34306:181::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;34411:2:::1;34401:6;:12;;34378:66;;;::::0;;-1:-1:-1;;;34378:66:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;34459:7;:16:::0;34306:181::o;17172:30::-;;;-1:-1:-1;;;17172:30:0;;;;;:::o;18908:210::-;-1:-1:-1;;;;;19002:20:0;;18974:7;19002:20;;;:11;:20;;;;;;;;18998:49;;;-1:-1:-1;;;;;;19031:16:0;;;;;;:7;:16;;;;;;19024:23;;18998:49;-1:-1:-1;;;;;19089:16:0;;;;;;:7;:16;;;;;;19069:37;;:19;:37::i;6088:160::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;6199:1:::1;6183:6:::0;;6162:40:::1;::::0;-1:-1:-1;;;;;6183:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;6162:40:0;6199:1;;6162:40:::1;6234:1;6217:19:::0;;-1:-1:-1;;;;;;6217:19:0::1;::::0;;6088:160::o;5850:87::-;5888:7;5919:6;-1:-1:-1;;;;;5919:6:0;5850:87;:::o;18659:71::-;18721:7;18714:14;;;;;;;;-1:-1:-1;;18714:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18698:13;;18714:14;;18721:7;;18714:14;;18721:7;18714:14;;;;;;;;;;;;;;;;;;;;;;;;20244:281;20337:4;20358:129;20367:12;:10;:12::i;:::-;20381:7;20390:96;20429:15;20390:96;;;;;;;;;;;;;;;;;:11;:25;20402:12;:10;:12::i;:::-;-1:-1:-1;;;;;20390:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;20390:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;34499:223::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;34607:1:::1;34591:12;:17;;:39;;;;;34628:2;34612:12;:18;;34591:39;34583:84;;;::::0;;-1:-1:-1;;;34583:84:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;34682:13;:28:::0;34499:223::o;6879:313::-;6935:14;;-1:-1:-1;;;;;6935:14:0;6953:10;6935:28;6927:76;;;;-1:-1:-1;;;6927:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7032:9;;7026:3;:15;7018:60;;;;;-1:-1:-1;;;7018:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7127:14;;;7119:6;;7098:44;;-1:-1:-1;;;;;7127:14:0;;;;7119:6;;;;-1:-1:-1;;;;;;;;;;;7098:44:0;;7166:14;;;7157:23;;-1:-1:-1;;;;;;7157:23:0;-1:-1:-1;;;;;7166:14:0;;;7157:23;;;;;;6879:313::o;19130:171::-;19208:4;19225:42;19235:12;:10;:12::i;:::-;19249:9;19260:6;19225:9;:42::i;20667:145::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20762:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;20762:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20667:145::o;6528:97::-;6604:9;;6528:97;:::o;20537:118::-;-1:-1:-1;;;;;20623:20:0;20595:4;20623:20;;;:11;:20;;;;;;;;;20537:118::o;6635:234::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;6720:6:::1;::::0;;;6703:23;;-1:-1:-1;;;;;;6703:23:0;;::::1;-1:-1:-1::0;;;;;6720:6:0;::::1;6703:23;::::0;;;6741:19:::1;::::0;;6787:3:::1;:10:::0;::::1;6775:9;:22:::0;6817:40:::1;::::0;6720:6;;-1:-1:-1;;;;;;;;;;;6817:40:0;6720:6;;6817:40:::1;6635:234:::0;:::o;19313:151::-;-1:-1:-1;;;;;19425:18:0;;;19394:7;19425:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19313:151::o;27767:106::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;27840:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;27840:21:0::1;-1:-1:-1::0;;;;27840:21:0;;::::1;::::0;;;::::1;::::0;;27767:106::o;16962:46::-;;;-1:-1:-1;;;;;16962:46:0;;:::o;22089:475::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;22185:42:::1;-1:-1:-1::0;;;;;22174:53:0;::::1;;;22166:100;;;;-1:-1:-1::0;;;22166:100:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;22290:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22289:21;22281:61;;;::::0;;-1:-1:-1;;;22281:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;22360:16:0;::::1;22379:1;22360:16:::0;;;:7:::1;:16;::::0;;;;;:20;22357:116:::1;;-1:-1:-1::0;;;;;22440:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;22420:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;22401:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;22357:116:::1;-1:-1:-1::0;;;;;22487:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;22487:27:0::1;22510:4;22487:27:::0;;::::1;::::0;;;22529:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;22529:23:0::1;::::0;;::::1;::::0;;22089:475::o;6258:260::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6351:22:0;::::1;6343:73;;;;-1:-1:-1::0;;;6343:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6457:6;::::0;;6436:38:::1;::::0;-1:-1:-1;;;;;6436:38:0;;::::1;::::0;6457:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;6436:38:0;::::1;6489:6;:17:::0;;-1:-1:-1;;;;;;6489:17:0::1;-1:-1:-1::0;;;;;6489:17:0;;;::::1;::::0;;;::::1;::::0;;6258:260::o;27535:220::-;27601:23;;-1:-1:-1;;;;;27601:23:0;27589:10;:35;27581:44;;;;;;27669:21;27705:38;27669:21;27705:18;:38::i;34104:78::-;34168:12;;34104:78;:::o;34192:94::-;34263:21;34192:94;:::o;22576:522::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22661:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22653:60;;;::::0;;-1:-1:-1;;;22653:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;22733:9;22728:359;22752:9;:16:::0;22748:20;::::1;22728:359;;;22814:7;-1:-1:-1::0;;;;;22798:23:0::1;:9;22808:1;22798:12;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22798:12:0::1;:23;22794:278;;;22861:9;22871:16:::0;;-1:-1:-1;;22871:20:0;;;22861:31;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;22846:9:::1;:12:::0;;-1:-1:-1;;;;;22861:31:0;;::::1;::::0;22856:1;;22846:12;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;22846:46:0::1;-1:-1:-1::0;;;;;22846:46:0;;::::1;;::::0;;22915:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;22958:11:::1;:20:::0;;;;:28;;-1:-1:-1;;22958:28:0::1;::::0;;23009:9:::1;:15:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;23009:15:0;;;;;-1:-1:-1;;;;;;23009:15:0::1;::::0;;;;;23047:5:::1;;22794:278;22770:3;;22728:359;;;;22576:522:::0;:::o;35245:204::-;6001:12;:10;:12::i;:::-;5991:6;;-1:-1:-1;;;;;5991:6:0;;;:22;;;5983:67;;;;;-1:-1:-1;;;5983:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5983:67:0;;;;;;;;;;;;;;;35334:9:::1;35330:108;35345:20:::0;;::::1;35330:108;;;35418:4;35387:14;:28;35402:9;;35412:1;35402:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;35402:12:0::1;35387:28:::0;;-1:-1:-1;35387:28:0;::::1;::::0;;;;;;-1:-1:-1;35387:28:0;:35;;-1:-1:-1;;35387:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;35367:3:0::1;35330:108;;;;35245:204:::0;;:::o;257:114::-;349:10;257:114;:::o;23704:357::-;-1:-1:-1;;;;;23801:19:0;;23793:68;;;;-1:-1:-1;;;23793:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23884:21:0;;23876:68;;;;-1:-1:-1;;;23876:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23961:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24017:32;;;;;;;;;;;;;;;;;23704:357;;;:::o;24073:2271::-;-1:-1:-1;;;;;24331:22:0;;;;;;:14;:22;;;;;;;;24330:23;:53;;;;-1:-1:-1;;;;;;24358:25:0;;;;;;:14;:25;;;;;;;;24357:26;24330:53;24322:93;;;;;-1:-1:-1;;;24322:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24438:20:0;;24430:70;;;;-1:-1:-1;;;24430:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24523:23:0;;24515:71;;;;-1:-1:-1;;;24515:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24618:1;24609:6;:10;24601:64;;;;-1:-1:-1;;;24601:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24707:7;:5;:7::i;:::-;-1:-1:-1;;;;;24697:17:0;:6;-1:-1:-1;;;;;24697:17:0;;;:41;;;;;24731:7;:5;:7::i;:::-;-1:-1:-1;;;;;24718:20:0;:9;-1:-1:-1;;;;;24718:20:0;;;24697:41;24694:138;;;24775:12;;24765:6;:22;;24757:75;;;;-1:-1:-1;;;24757:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25050:28;25081:24;25099:4;25081:9;:24::i;:::-;25050:55;;25161:12;;25137:20;:36;25134:124;;-1:-1:-1;25230:12:0;;25134:124;25337:34;;25391:6;;25313:58;;;;;-1:-1:-1;;;25391:6:0;;;;25390:7;:22;;;;-1:-1:-1;25401:11:0;;-1:-1:-1;;;25401:11:0;;;;25390:22;:45;;;;;25416:19;25390:45;:72;;;;;25449:13;-1:-1:-1;;;;;25439:23:0;:6;-1:-1:-1;;;;;25439:23:0;;;25390:72;25386:462;;;25578:38;25595:20;25578:16;:38::i;:::-;25682:21;25725:22;;25722:111;;25772:41;25791:21;25772:18;:41::i;:::-;25386:462;;-1:-1:-1;;;;;26080:26:0;;25941:12;26080:26;;;:18;:26;;;;;;25956:4;;26080:26;;;:59;;-1:-1:-1;;;;;;26110:29:0;;;;;;:18;:29;;;;;;;;26080:59;26077:113;;;-1:-1:-1;26169:5:0;26077:113;26285:47;26300:6;26307:9;26317:6;26324:7;26285:14;:47::i;:::-;24073:2271;;;;;;:::o;1745:206::-;1831:7;1871:12;1863:6;;;;1855:29;;;;-1:-1:-1;;;1855:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1911:5:0;;;1745:206::o;33217:175::-;33258:7;33283:15;33300;33319:19;:17;:19::i;:::-;33282:56;;-1:-1:-1;33282:56:0;-1:-1:-1;33360:20:0;33282:56;;33360:11;:20::i;:::-;33353:27;;;;33217:175;:::o;2245:140::-;2303:7;2334:39;2338:1;2341;2334:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2327:46;2245:140;-1:-1:-1;;;2245:140:0:o;1386:195::-;1444:7;1480:5;;;1508:6;;;;1500:46;;;;;-1:-1:-1;;;1500:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;31935:496;31994:7;32003;32012;32021;32030;32039;32064:23;32089:12;32103:18;32125:44;32137:7;32146;;32155:13;;32125:11;:44::i;:::-;32063:106;;;;;;32184:19;32207:10;:8;:10::i;:::-;32184:33;;32233:15;32250:23;32275:12;32291:39;32303:7;32312:4;32318:11;32291;:39::i;:::-;32232:98;;-1:-1:-1;32232:98:0;-1:-1:-1;32232:98:0;-1:-1:-1;32385:15:0;;-1:-1:-1;32402:4:0;;-1:-1:-1;32408:10:0;;-1:-1:-1;;;;;31935:496:0;;;;;;;:::o;1591:144::-;1649:7;1680:43;1684:1;1687;1680:43;;;;;;;;;;;;;;;;;:3;:43::i;26356:656::-;17580:6;:13;;-1:-1:-1;;;;17580:13:0;-1:-1:-1;;;17580:13:0;;;26525:16:::1;::::0;;26539:1:::1;26525:16:::0;;;26501:21:::1;26525:16:::0;;::::1;::::0;;26501:21;26525:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;26525:16:0::1;26501:40;;26574:4;26556;26561:1;26556:7;;;;;;;;;;;;;:23;-1:-1:-1::0;;;;;26556:23:0::1;;;-1:-1:-1::0;;;;;26556:23:0::1;;;::::0;::::1;26604:15;-1:-1:-1::0;;;;;26604:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;26604:22:0;26594:7;;:4;;26599:1:::1;::::0;26594:7;::::1;;;;;;;;;;:32;-1:-1:-1::0;;;;;26594:32:0::1;;;-1:-1:-1::0;;;;;26594:32:0::1;;;::::0;::::1;26643:62;26660:4;26675:15;26693:11;26643:8;:62::i;:::-;26752:15;-1:-1:-1::0;;;;;26752:66:0::1;;26837:11;26867:1;26915:4;26946;26970:15;26752:248;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;26752:248:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;17624:6:0;:14;;-1:-1:-1;;;;17624:14:0;;;-1:-1:-1;;;;26356:656:0:o;27032:145::-;27099:23;;-1:-1:-1;;;;;27099:23:0;:54;27132:20;27150:1;27132:13;:6;27143:1;27132:10;:13::i;:::-;:17;;:20::i;:::-;27099:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27893:883;28009:7;28005:44;;28035:14;:12;:14::i;:::-;-1:-1:-1;;;;;28070:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;28094:22:0;;;;;;:11;:22;;;;;;;;28093:23;28070:46;28066:637;;;28137:48;28159:6;28167:9;28178:6;28137:21;:48::i;:::-;28066:637;;;-1:-1:-1;;;;;28212:19:0;;;;;;:11;:19;;;;;;;;28211:20;:46;;;;-1:-1:-1;;;;;;28235:22:0;;;;;;:11;:22;;;;;;;;28211:46;28207:496;;;28278:46;28298:6;28306:9;28317:6;28278:19;:46::i;28207:496::-;-1:-1:-1;;;;;28351:19:0;;;;;;:11;:19;;;;;;;;28350:20;:47;;;;-1:-1:-1;;;;;;28375:22:0;;;;;;:11;:22;;;;;;;;28374:23;28350:47;28346:357;;;28418:44;28436:6;28444:9;28455:6;28418:17;:44::i;28346:357::-;-1:-1:-1;;;;;28488:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;28511:22:0;;;;;;:11;:22;;;;;;;;28488:45;28484:219;;;28554:48;28576:6;28584:9;28595:6;28554:21;:48::i;28484:219::-;28643:44;28661:6;28669:9;28680:6;28643:17;:44::i;:::-;28723:7;28719:45;;28749:15;:13;:15::i;:::-;27893:883;;;;:::o;33404:601::-;33505:7;;33545;;33454;;;;;33573:305;33597:9;:16;33593:20;;33573:305;;;33667:7;33643;:21;33651:9;33661:1;33651:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33651:12:0;33643:21;;;;;;;;;;;;;:31;;:66;;;33702:7;33678;:21;33686:9;33696:1;33686:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33686:12:0;33678:21;;;;;;;;;;;;;:31;33643:66;33639:97;;;33719:7;;33728;;33711:25;;;;;;;;;33639:97;33765:34;33777:7;:21;33785:9;33795:1;33785:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33785:12:0;33777:21;;;;;;;;;;;;;33765:7;;:11;:34::i;:::-;33755:44;;33828:34;33840:7;:21;33848:9;33858:1;33848:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33848:12:0;33840:21;;;;;;;;;;;;;33828:7;;:11;:34::i;:::-;33818:44;-1:-1:-1;33615:3:0;;33573:305;;;-1:-1:-1;33918:7:0;;33906;;:20;;:11;:20::i;:::-;33896:7;:30;33892:61;;;33936:7;;33945;;33928:25;;;;;;;;33892:61;33976:7;;-1:-1:-1;33985:7:0;-1:-1:-1;33404:601:0;;;:::o;2395:205::-;2481:7;2520:12;2513:5;2505:28;;;;-1:-1:-1;;;2505:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2548:9;2564:1;2560;:5;;;;;;;2395:205;-1:-1:-1;;;;;2395:205:0:o;32443:396::-;32541:7;;;;32598:28;32622:3;32598:19;:7;32610:6;32598:11;:19::i;:28::-;32583:43;-1:-1:-1;32641:18:0;32662:34;32692:3;32662:25;:7;32674:12;32662:11;:25::i;:34::-;32641:55;-1:-1:-1;32711:23:0;32737:33;32641:55;32737:17;:7;32749:4;32737:11;:17::i;:::-;:21;;:33::i;:::-;32711:59;32810:4;;-1:-1:-1;32816:10:0;;-1:-1:-1;32443:396:0;;-1:-1:-1;;;;;32443:396:0:o;32851:354::-;32946:7;;;;33006:24;:7;33018:11;33006;:24::i;:::-;32988:42;-1:-1:-1;33045:12:0;33060:21;:4;33069:11;33060:8;:21::i;:::-;33045:36;-1:-1:-1;33096:23:0;33122:17;:7;33045:36;33122:11;:17::i;:::-;33162:7;;;;-1:-1:-1;33188:4:0;;-1:-1:-1;32851:354:0;;-1:-1:-1;;;;;32851:354:0:o;1961:274::-;2019:7;2047:6;2043:55;;-1:-1:-1;2081:1:0;2074:8;;2043:55;2124:5;;;2128:1;2124;:5;:1;2152:5;;;;;:10;2144:56;;;;-1:-1:-1;;;2144:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23110:282;23160:7;;:12;:34;;;;-1:-1:-1;23176:13:0;;:18;23160:34;23157:46;;;23196:7;;23157:46;23249:7;;;23231:15;:25;23295:13;;;23271:21;:37;-1:-1:-1;23337:11:0;;;;23363:17;23110:282;:::o;29966:599::-;30073:15;30090:23;30115:12;30129:23;30154:12;30168:18;30190:19;30201:7;30190:10;:19::i;:::-;-1:-1:-1;;;;;30242:15:0;;;;;;:7;:15;;;;;;30072:137;;-1:-1:-1;30072:137:0;;-1:-1:-1;30072:137:0;;-1:-1:-1;30072:137:0;-1:-1:-1;30072:137:0;-1:-1:-1;30072:137:0;-1:-1:-1;30242:28:0;;30262:7;30242:19;:28::i;:::-;-1:-1:-1;;;;;30224:15:0;;;;;;:7;:15;;;;;;;;:46;;;;30303:7;:15;;;;:28;;30323:7;30303:19;:28::i;:::-;-1:-1:-1;;;;;30285:15:0;;;;;;;:7;:15;;;;;;:46;;;;30367:18;;;;;;;:39;;30390:15;30367:22;:39::i;:::-;-1:-1:-1;;;;;30346:18:0;;;;;;:7;:18;;;;;:60;30422:26;30437:10;30422:14;:26::i;:::-;30466:23;30478:4;30484;30466:11;:23::i;:::-;30526:9;-1:-1:-1;;;;;30509:44:0;30518:6;-1:-1:-1;;;;;30509:44:0;;30537:15;30509:44;;;;;;;;;;;;;;;;;;29966:599;;;;;;;;;:::o;29332:622::-;29437:15;29454:23;29479:12;29493:23;29518:12;29532:18;29554:19;29565:7;29554:10;:19::i;:::-;-1:-1:-1;;;;;29606:15:0;;;;;;:7;:15;;;;;;29436:137;;-1:-1:-1;29436:137:0;;-1:-1:-1;29436:137:0;;-1:-1:-1;29436:137:0;-1:-1:-1;29436:137:0;-1:-1:-1;29436:137:0;-1:-1:-1;29606:28:0;;29436:137;29606:19;:28::i;:::-;-1:-1:-1;;;;;29588:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;29670:18;;;;;:7;:18;;;;;:39;;29693:15;29670:22;:39::i;:::-;-1:-1:-1;;;;;29649:18:0;;;;;;:7;:18;;;;;;;;:60;;;;29745:7;:18;;;;:39;;29768:15;29745:22;:39::i;28788:532::-;28891:15;28908:23;28933:12;28947:23;28972:12;28986:18;29008:19;29019:7;29008:10;:19::i;:::-;-1:-1:-1;;;;;29060:15:0;;;;;;:7;:15;;;;;;28890:137;;-1:-1:-1;28890:137:0;;-1:-1:-1;28890:137:0;;-1:-1:-1;28890:137:0;-1:-1:-1;28890:137:0;-1:-1:-1;28890:137:0;-1:-1:-1;29060:28:0;;28890:137;29060:19;:28::i;30577:682::-;30684:15;30701:23;30726:12;30740:23;30765:12;30779:18;30801:19;30812:7;30801:10;:19::i;:::-;-1:-1:-1;;;;;30853:15:0;;;;;;:7;:15;;;;;;30683:137;;-1:-1:-1;30683:137:0;;-1:-1:-1;30683:137:0;;-1:-1:-1;30683:137:0;-1:-1:-1;30683:137:0;-1:-1:-1;30683:137:0;-1:-1:-1;30853:28:0;;30873:7;30853:19;:28::i;:::-;-1:-1:-1;;;;;30835:15:0;;;;;;:7;:15;;;;;;;;:46;;;;30914:7;:15;;;;:28;;30934:7;30914:19;:28::i;23408:137::-;23466:15;;23456:7;:25;23512:21;;23496:13;:37;23408:137::o;31271:379::-;31338:19;31361:10;:8;:10::i;:::-;31338:33;-1:-1:-1;31386:18:0;31407:27;:10;31338:33;31407:14;:27::i;:::-;31490:4;31474:22;;;;:7;:22;;;;;;31386:48;;-1:-1:-1;31474:38:0;;31386:48;31474:26;:38::i;:::-;31465:4;31449:22;;;;:7;:22;;;;;;;;:63;;;;31530:11;:26;;;;;;31527:111;;;31616:4;31600:22;;;;:7;:22;;;;;;:38;;31627:10;31600:26;:38::i;:::-;31591:4;31575:22;;;;:7;:22;;;;;:63;31271:379;;;:::o;31662:159::-;31744:7;;:17;;31756:4;31744:11;:17::i;:::-;31734:7;:27;31789:10;;:20;;31804:4;31789:14;:20::i;:::-;31776:10;:33;-1:-1:-1;;31662:159:0:o

Swarm Source

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