Token Hanzo

 

Overview ERC-20

Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
100,000,000,000,000 HANZO

Holders:
6,128 addresses

Transfers:
-

Contract:
0x37eb60f78e06c4bb2a5f836b0fc6bccbbaa995b30x37eB60F78e06c4BB2A5F836B0Fc6BCcBbaA995b3

Decimals:
9

Social Profiles:
Not Available, Update ?

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Hanzo

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/*
%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Hanzo - $HANZO %%%%
%%%%%%%%%%%%%%%%%%%%%%%%
*/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

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

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;
    }
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Hanzo is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Hanzo";
    string private constant _symbol = "HANZO";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _totalTaxFeeOnBuy = 10;
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _marketingFee = 3;
    uint256 private _developmentFee = 4;
    uint256 private _liquidityFee = 3;
    uint256 private _burnFee = 0;

    //Total Fee
    uint private totalFee = _redisFeeOnSell.add(_marketingFee).add(_developmentFee).add(_liquidityFee).add(_burnFee);
    uint256 private _totalTaxFeeOnSell = _marketingFee.add(_developmentFee).add(_liquidityFee).add(_burnFee);
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _totalTaxFeeOnSell;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    
    address payable public _marketingAddress;
    address payable public _developmentAddress;
    address payable constant public _burnAddress = payable(0x000000000000000000000000000000000000dEaD);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = _tTotal; //Relaunching so limits not necessary
    uint256 public _maxWalletSize = _tTotal;  //Relaunching so limits not necessary
    uint256 public _swapTokensAtAmount = 10 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address payable marketingAddress, address payable developmentAddress) {
        
        _marketingAddress = marketingAddress;
        _developmentAddress = developmentAddress;

        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_burnAddress] = true;
        
        preTrader[owner()] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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 from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                
                uint256 toBurnTokens = contractTokenBalance.mul(_burnFee).div(totalFee);
                if(toBurnTokens > 0) {
                    burnTokens(toBurnTokens);
                }

                uint256 marketingTokens = contractTokenBalance.mul(_marketingFee.add(_developmentFee)).div(totalFee);
                if(marketingTokens > 0) {
                    swapTokensForEth(marketingTokens);
                }
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }

                uint256 liquidityTokens = contractTokenBalance.mul(_liquidityFee).div(totalFee);
                swapAndLiquify(liquidityTokens);
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _totalTaxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _totalTaxFeeOnSell;
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function burnTokens(uint256 amount) internal {
        _tokenTransfer(address(this), _burnAddress, amount, false);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    
    function swapAndLiquify(uint256 tokens) private {
        
        // split the contract balance into halves
        uint256 half = tokens.div(2);
        uint256 otherHalf = tokens.sub(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // swap tokens for ETH
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = address(this).balance.sub(initialBalance);

        // add liquidity to uniswap
        addLiquidity(otherHalf, newBalance);
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        uint256 marketingShare = amount.mul(_marketingFee).div(_marketingFee.add(_developmentFee));
        uint256 developmentShare = amount.sub(marketingShare);

        _developmentAddress.transfer(developmentShare);
        _marketingAddress.transfer(marketingShare);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == owner());
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == owner());
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _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 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}

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

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

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

        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;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 redisFeeOnBuy, uint256 totalTaxFeeOnBuy, uint256 redisFeeOnSell, uint256 marketingFee, uint256 developmentFee, uint256 liquidityFee, uint256 burnFee) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _totalTaxFeeOnBuy = totalTaxFeeOnBuy;

        _redisFeeOnSell = redisFeeOnSell;

        _marketingFee = marketingFee;
        _developmentFee = developmentFee;
        _liquidityFee = liquidityFee;
        _burnFee = burnFee;

        totalFee = _redisFeeOnSell.add(_marketingFee).add(_developmentFee).add(_liquidityFee).add(_burnFee);
        _totalTaxFeeOnSell = _marketingFee.add(_developmentFee).add(_liquidityFee).add(_burnFee);
        
    }

    function setTaxAddresses(address payable marketingAddress, address payable developmentAddress) public onlyOwner {
        _marketingAddress = marketingAddress;
        _developmentAddress = developmentAddress;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set MAx transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"marketingAddress","type":"address"},{"internalType":"address payable","name":"developmentAddress","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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_burnAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","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":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"totalTaxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"developmentFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingAddress","type":"address"},{"internalType":"address payable","name":"developmentAddress","type":"address"}],"name":"setTaxAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"},{"stateMutability":"payable","type":"receive"}]

60806040526200001c69152d02c7e14af680000060001962000575565b6200002a906000196200055b565b6005556000600755600a60085560006009556003600a556004600b556003600c556000600d5562000097600d5462000083600c5462000083600b5462000083600a546009546200047460201b62000dfd1790919060201c565b6200047460201b62000dfd1790919060201c565b600e55620000c6600d5462000083600c5462000083600b54600a546200047460201b62000dfd1790919060201c565b600f819055600954601081905560118290556012556013556019805461ffff60a81b1916600160b01b17905569152d02c7e14af6800000601a819055601b556402540be400601c553480156200011b57600080fd5b506040516200293e3803806200293e8339810160408190526200013e9162000501565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601680546001600160a01b038085166001600160a01b031992831617909255601780549284169290911691909117905560055460026000620001be3390565b6001600160a01b03168152602080820192909252604090810160002092909255601880546001600160a01b03191673a5e0829caced8ffdd4de3c43696c57f7d7a678ff908117909155825163c45a015560e01b815292519092839263c45a015592600480840193829003018186803b1580156200023a57600080fd5b505afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002759190620004e1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002be57600080fd5b505afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f99190620004e1565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200034257600080fd5b505af115801562000357573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037d9190620004e1565b601980546001600160a01b0319166001600160a01b039283161790556000805482168152600460209081526040808320805460ff19908116600190811790925530855282852080548216831790556017548616855282852080548216831790556016548616855282852080548216831790557f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd80548216831790558454909516845260158352818420805490951617909355915169152d02c7e14af6800000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050620005c7565b60008062000483838562000540565b905083811015620004da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b9392505050565b600060208284031215620004f457600080fd5b8151620004da81620005ae565b600080604083850312156200051557600080fd5b82516200052281620005ae565b60208401519092506200053581620005ae565b809150509250929050565b6000821982111562000556576200055662000598565b500190565b60008282101562000570576200057062000598565b500390565b6000826200059357634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114620005c457600080fd5b50565b61236780620005d76000396000f3fe6080604052600436106102075760003560e01c806374010ece11610118578063bd3900c0116100a0578063c492f0461161006f578063c492f04614610603578063caac793414610623578063dd62ed3e14610643578063ea1644d514610689578063f2fde38b146106a957600080fd5b8063bd3900c014610578578063bdd795ef1461058e578063bfd79284146105be578063c3c8cd80146105ee57600080fd5b80638f9a55c0116100e75780638f9a55c0146104d457806395d89b41146104ea57806398a5c31514610518578063a9059cbb14610538578063aeb5b9b51461055857600080fd5b806374010ece146104605780637d1db4a5146104805780638da5cb5b146104965780638f70ccf7146104b457600080fd5b8063313ce5671161019b5780636b9990531161016a5780636b999053146103d65780636d8aa8f8146103f65780636fc3eaec1461041657806370a082311461042b578063715018a61461044b57600080fd5b8063313ce5671461035a5780633d6a9afe1461037657806349bd5a5e1461039657806351cdd831146103b657600080fd5b806318160ddd116101d757806318160ddd146102dd57806323b872dd146103045780632f9c4569146103245780632fd689e31461034457600080fd5b8062b8cf2a1461021357806306fdde0314610235578063095ea7b3146102755780631694505e146102a557600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e366004611fb2565b6106c9565b005b34801561024157600080fd5b5060408051808201909152600581526448616e7a6f60d81b60208201525b60405161026c919061212c565b60405180910390f35b34801561028157600080fd5b50610295610290366004611f02565b610768565b604051901515815260200161026c565b3480156102b157600080fd5b506018546102c5906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b3480156102e957600080fd5b5069152d02c7e14af68000005b60405190815260200161026c565b34801561031057600080fd5b5061029561031f366004611e8c565b61077f565b34801561033057600080fd5b5061023361033f366004611ecd565b6107e8565b34801561035057600080fd5b506102f6601c5481565b34801561036657600080fd5b506040516009815260200161026c565b34801561038257600080fd5b506017546102c5906001600160a01b031681565b3480156103a257600080fd5b506019546102c5906001600160a01b031681565b3480156103c257600080fd5b506102336103d1366004611e53565b6108ac565b3480156103e257600080fd5b506102336103f1366004611e19565b610904565b34801561040257600080fd5b5061023361041136600461207e565b61094f565b34801561042257600080fd5b50610233610997565b34801561043757600080fd5b506102f6610446366004611e19565b6109f7565b34801561045757600080fd5b50610233610a19565b34801561046c57600080fd5b5061023361047b366004612099565b610a8d565b34801561048c57600080fd5b506102f6601a5481565b3480156104a257600080fd5b506000546001600160a01b03166102c5565b3480156104c057600080fd5b506102336104cf36600461207e565b610abc565b3480156104e057600080fd5b506102f6601b5481565b3480156104f657600080fd5b5060408051808201909152600581526448414e5a4f60d81b602082015261025f565b34801561052457600080fd5b50610233610533366004612099565b610b04565b34801561054457600080fd5b50610295610553366004611f02565b610b33565b34801561056457600080fd5b506102336105733660046120e0565b610b40565b34801561058457600080fd5b506102c561dead81565b34801561059a57600080fd5b506102956105a9366004611e19565b60156020526000908152604090205460ff1681565b3480156105ca57600080fd5b506102956105d9366004611e19565b60146020526000908152604090205460ff1681565b3480156105fa57600080fd5b50610233610bda565b34801561060f57600080fd5b5061023361061e366004611f2e565b610c43565b34801561062f57600080fd5b506016546102c5906001600160a01b031681565b34801561064f57600080fd5b506102f661065e366004611e53565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561069557600080fd5b506102336106a4366004612099565b610ce4565b3480156106b557600080fd5b506102336106c4366004611e19565b610d13565b6000546001600160a01b031633146106fc5760405162461bcd60e51b81526004016106f390612181565b60405180910390fd5b60005b815181101561076457600160146000848481518110610720576107206122c8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061075c81612297565b9150506106ff565b5050565b6000610775338484610e63565b5060015b92915050565b600061078c848484610f87565b6107de84336107d98560405180606001604052806028815260200161230a602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906115a8565b610e63565b5060019392505050565b6000546001600160a01b031633146108125760405162461bcd60e51b81526004016106f390612181565b6001600160a01b03821660009081526015602052604090205460ff16151581151514156108815760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e00000000000000000060448201526064016106f3565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108d65760405162461bcd60e51b81526004016106f390612181565b601680546001600160a01b039384166001600160a01b03199182161790915560178054929093169116179055565b6000546001600160a01b0316331461092e5760405162461bcd60e51b81526004016106f390612181565b6001600160a01b03166000908152601460205260409020805460ff19169055565b6000546001600160a01b031633146109795760405162461bcd60e51b81526004016106f390612181565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6017546001600160a01b0316336001600160a01b031614806109cc57506016546001600160a01b0316336001600160a01b0316145b806109e157506000546001600160a01b031633145b6109ea57600080fd5b476109f4816115e2565b50565b6001600160a01b03811660009081526002602052604081205461077990611690565b6000546001600160a01b03163314610a435760405162461bcd60e51b81526004016106f390612181565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610ab75760405162461bcd60e51b81526004016106f390612181565b601a55565b6000546001600160a01b03163314610ae65760405162461bcd60e51b81526004016106f390612181565b60198054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610b2e5760405162461bcd60e51b81526004016106f390612181565b601c55565b6000610775338484610f87565b6000546001600160a01b03163314610b6a5760405162461bcd60e51b81526004016106f390612181565b600787905560088690556009859055600a849055600b839055600c829055600d819055610ba581610b9f848187818b8b610dfd565b90610dfd565b600e81905550610bce600d54610b9f600c54610b9f600b54600a54610dfd90919063ffffffff16565b600f5550505050505050565b6017546001600160a01b0316336001600160a01b03161480610c0f57506016546001600160a01b0316336001600160a01b0316145b80610c2457506000546001600160a01b031633145b610c2d57600080fd5b6000610c38306109f7565b90506109f48161170d565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b81526004016106f390612181565b60005b82811015610cde578160046000868685818110610c8f57610c8f6122c8565b9050602002016020810190610ca49190611e19565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610cd681612297565b915050610c70565b50505050565b6000546001600160a01b03163314610d0e5760405162461bcd60e51b81526004016106f390612181565b601b55565b6000546001600160a01b03163314610d3d5760405162461bcd60e51b81526004016106f390612181565b6001600160a01b038116610da25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106f3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610e0a8385612227565b905083811015610e5c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106f3565b9392505050565b6001600160a01b038316610ec55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106f3565b6001600160a01b038216610f265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106f3565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610feb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106f3565b6001600160a01b03821661104d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106f3565b600081116110af5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106f3565b6000546001600160a01b038481169116148015906110db57506000546001600160a01b03838116911614155b801561110057506001600160a01b03831660009081526015602052604090205460ff16155b801561112557506001600160a01b03821660009081526015602052604090205460ff16155b156114a157601954600160a01b900460ff166111c9576001600160a01b03831660009081526015602052604090205460ff166111c95760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106f3565b601a5481111561121b5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106f3565b6001600160a01b03831660009081526014602052604090205460ff1615801561125d57506001600160a01b03821660009081526014602052604090205460ff16155b6112b55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106f3565b6019546001600160a01b0383811691161461133a57601b54816112d7846109f7565b6112e19190612227565b1061133a5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106f3565b6000611345306109f7565b601c54601a5491925082101590821061135e57601a5491505b8080156113755750601954600160a81b900460ff16155b801561138f57506019546001600160a01b03868116911614155b80156113a45750601954600160b01b900460ff165b80156113c957506001600160a01b03851660009081526004602052604090205460ff16155b80156113ee57506001600160a01b03841660009081526004602052604090205460ff16155b1561149e576000611416600e54611410600d548661189690919063ffffffff16565b90611915565b905080156114275761142781611957565b6000611450600e54611410611449600b54600a54610dfd90919063ffffffff16565b8790611896565b90508015611461576114618161170d565b47801561147157611471816115e2565b600061148e600e54611410600c548961189690919063ffffffff16565b905061149981611966565b505050505b50505b6001600160a01b03831660009081526004602052604090205460019060ff16806114e357506001600160a01b03831660009081526004602052604090205460ff165b8061151557506019546001600160a01b0385811691161480159061151557506019546001600160a01b03848116911614155b156115225750600061159c565b6019546001600160a01b03858116911614801561154d57506018546001600160a01b03848116911614155b1561155f576007546010556008546011555b6019546001600160a01b03848116911614801561158a57506018546001600160a01b03858116911614155b1561159c57600954601055600f546011555b610cde848484846119ac565b600081848411156115cc5760405162461bcd60e51b81526004016106f3919061212c565b5060006115d98486612280565b95945050505050565b600061160c6115fe600b54600a54610dfd90919063ffffffff16565b600a54611410908590611896565b9050600061161a83836119da565b6017546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611655573d6000803e3d6000fd5b506016546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015610cde573d6000803e3d6000fd5b60006005548211156116f75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106f3565b6000611701611a1c565b9050610e5c8382611915565b6019805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611755576117556122c8565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156117a957600080fd5b505afa1580156117bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e19190611e36565b816001815181106117f4576117f46122c8565b6001600160a01b03928316602091820292909201015260185461181a9130911684610e63565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906118539085906000908690309042906004016121b6565b600060405180830381600087803b15801561186d57600080fd5b505af1158015611881573d6000803e3d6000fd5b50506019805460ff60a81b1916905550505050565b6000826118a557506000610779565b60006118b18385612261565b9050826118be858361223f565b14610e5c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106f3565b6000610e5c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a3f565b6109f43061dead8360006119ac565b6000611973826002611915565b9050600061198183836119da565b90504761198d8361170d565b600061199947836119da565b90506119a58382611a6d565b5050505050565b806119b9576119b9611b26565b6119c4848484611b54565b80610cde57610cde601254601055601354601155565b6000610e5c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115a8565b6000806000611a29611c4b565b9092509050611a388282611915565b9250505090565b60008183611a605760405162461bcd60e51b81526004016106f3919061212c565b5060006115d9848661223f565b601854611a859030906001600160a01b031684610e63565b60185460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b158015611aed57600080fd5b505af1158015611b01573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119a591906120b2565b601054158015611b365750601154155b15611b3d57565b601080546012556011805460135560009182905555565b600080600080600080611b6687611c8f565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611b9890876119da565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611bc79086610dfd565b6001600160a01b038916600090815260026020526040902055611be981611cec565b611bf38483611d36565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c3891815260200190565b60405180910390a3505050505050505050565b600554600090819069152d02c7e14af6800000611c688282611915565b821015611c865750506005549269152d02c7e14af680000092509050565b90939092509050565b6000806000806000806000806000611cac8a601054601154611d5a565b9250925092506000611cbc611a1c565b90506000806000611ccf8e878787611da9565b919e509c509a509598509396509194505050505091939550919395565b6000611cf6611a1c565b90506000611d048383611896565b30600090815260026020526040902054909150611d219082610dfd565b30600090815260026020526040902055505050565b600554611d4390836119da565b600555600654611d539082610dfd565b6006555050565b6000808080611d6e60646114108989611896565b90506000611d8160646114108a89611896565b90506000611d9982611d938b866119da565b906119da565b9992985090965090945050505050565b6000808080611db88886611896565b90506000611dc68887611896565b90506000611dd48888611896565b90506000611de682611d9386866119da565b939b939a50919850919650505050505050565b8035611e04816122f4565b919050565b80358015158114611e0457600080fd5b600060208284031215611e2b57600080fd5b8135610e5c816122f4565b600060208284031215611e4857600080fd5b8151610e5c816122f4565b60008060408385031215611e6657600080fd5b8235611e71816122f4565b91506020830135611e81816122f4565b809150509250929050565b600080600060608486031215611ea157600080fd5b8335611eac816122f4565b92506020840135611ebc816122f4565b929592945050506040919091013590565b60008060408385031215611ee057600080fd5b8235611eeb816122f4565b9150611ef960208401611e09565b90509250929050565b60008060408385031215611f1557600080fd5b8235611f20816122f4565b946020939093013593505050565b600080600060408486031215611f4357600080fd5b833567ffffffffffffffff80821115611f5b57600080fd5b818601915086601f830112611f6f57600080fd5b813581811115611f7e57600080fd5b8760208260051b8501011115611f9357600080fd5b602092830195509350611fa99186019050611e09565b90509250925092565b60006020808385031215611fc557600080fd5b823567ffffffffffffffff80821115611fdd57600080fd5b818501915085601f830112611ff157600080fd5b813581811115612003576120036122de565b8060051b604051601f19603f83011681018181108582111715612028576120286122de565b604052828152858101935084860182860187018a101561204757600080fd5b600095505b838610156120715761205d81611df9565b85526001959095019493860193860161204c565b5098975050505050505050565b60006020828403121561209057600080fd5b610e5c82611e09565b6000602082840312156120ab57600080fd5b5035919050565b6000806000606084860312156120c757600080fd5b8351925060208401519150604084015190509250925092565b600080600080600080600060e0888a0312156120fb57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600060208083528351808285015260005b818110156121595785810183015185820160400152820161213d565b8181111561216b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122065784516001600160a01b0316835293830193918301916001016121e1565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561223a5761223a6122b2565b500190565b60008261225c57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561227b5761227b6122b2565b500290565b600082821015612292576122926122b2565b500390565b60006000198214156122ab576122ab6122b2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109f457600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd05c9d43dbe2f4625397dc98ab2d4836fe605275697ef2dc90ca74f39de4c9864736f6c63430008070033000000000000000000000000c7d1427422725c217e50fff0fadb09a5e5c0447100000000000000000000000050c518c53c32fb30ffc135fcec0fcff11b36e48a

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

000000000000000000000000c7d1427422725c217e50fff0fadb09a5e5c0447100000000000000000000000050c518c53c32fb30ffc135fcec0fcff11b36e48a

-----Decoded View---------------
Arg [0] : marketingAddress (address): 0xc7d1427422725c217e50fff0fadb09a5e5c04471
Arg [1] : developmentAddress (address): 0x50c518c53c32fb30ffc135fcec0fcff11b36e48a

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c7d1427422725c217e50fff0fadb09a5e5c04471
Arg [1] : 00000000000000000000000050c518c53c32fb30ffc135fcec0fcff11b36e48a


Deployed ByteCode Sourcemap

4154:17633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16083:169;;;;;;;;;;-1:-1:-1;16083:169:0;;;;;:::i;:::-;;:::i;:::-;;7380:83;;;;;;;;;;-1:-1:-1;7450:5:0;;;;;;;;;;;;-1:-1:-1;;;7450:5:0;;;;7380:83;;;;;;;:::i;:::-;;;;;;;;8305:193;;;;;;;;;;-1:-1:-1;8305:193:0;;;;;:::i;:::-;;:::i;:::-;;;7047:14:1;;7040:22;7022:41;;7010:2;6995:18;8305:193:0;6882:187:1;5890:41:0;;;;;;;;;;-1:-1:-1;5890:41:0;;;;-1:-1:-1;;;;;5890:41:0;;;;;;-1:-1:-1;;;;;6002:32:1;;;5984:51;;5972:2;5957:18;5890:41:0;5838:203:1;7657:95:0;;;;;;;;;;-1:-1:-1;4650:23:0;7657:95;;;13970:25:1;;;13958:2;13943:18;7657:95:0;13824:177:1;8506:446:0;;;;;;;;;;-1:-1:-1;8506:446:0;;;;;:::i;:::-;;:::i;21588:196::-;;;;;;;;;;-1:-1:-1;21588:196:0;;;;;:::i;:::-;;:::i;6255:47::-;;;;;;;;;;;;;;;;7566:83;;;;;;;;;;-1:-1:-1;7566:83:0;;4374:1;15133:36:1;;15121:2;15106:18;7566:83:0;14991:184:1;5730:42:0;;;;;;;;;;-1:-1:-1;5730:42:0;;;;-1:-1:-1;;;;;5730:42:0;;;5938:28;;;;;;;;;;-1:-1:-1;5938:28:0;;;;-1:-1:-1;;;;;5938:28:0;;;20497:218;;;;;;;;;;-1:-1:-1;20497:218:0;;;;;:::i;:::-;;:::i;16260:92::-;;;;;;;;;;-1:-1:-1;16260:92:0;;;;;:::i;:::-;;:::i;21204:101::-;;;;;;;;;;-1:-1:-1;21204:101:0;;;;;:::i;:::-;;:::i;15813:262::-;;;;;;;;;;;;;:::i;7760:138::-;;;;;;;;;;-1:-1:-1;7760:138:0;;;;;:::i;:::-;;:::i;1643:148::-;;;;;;;;;;;;;:::i;21344:108::-;;;;;;;;;;-1:-1:-1;21344:108:0;;;;;:::i;:::-;;:::i;6088:37::-;;;;;;;;;;;;;;;;1429:79;;;;;;;;;;-1:-1:-1;1467:7:0;1494:6;-1:-1:-1;;;;;1494:6:0;1429:79;;15433:101;;;;;;;;;;-1:-1:-1;15433:101:0;;;;;:::i;:::-;;:::i;6170:39::-;;;;;;;;;;;;;;;;7471:87;;;;;;;;;;-1:-1:-1;7543:7:0;;;;;;;;;;;;-1:-1:-1;;;7543:7:0;;;;7471:87;;21009:139;;;;;;;;;;-1:-1:-1;21009:139:0;;;;;:::i;:::-;;:::i;7906:199::-;;;;;;;;;;-1:-1:-1;7906:199:0;;;;;:::i;:::-;;:::i;19784:705::-;;;;;;;;;;-1:-1:-1;19784:705:0;;;;;:::i;:::-;;:::i;5779:98::-;;;;;;;;;;;;5834:42;5779:98;;5628:42;;;;;;;;;;-1:-1:-1;5628:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5585:36;;;;;;;;;;-1:-1:-1;5585:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15542:263;;;;;;;;;;;;;:::i;20723:234::-;;;;;;;;;;-1:-1:-1;20723:234:0;;;;;:::i;:::-;;:::i;5683:40::-;;;;;;;;;;-1:-1:-1;5683:40:0;;;;-1:-1:-1;;;;;5683:40:0;;;8113:184;;;;;;;;;;-1:-1:-1;8113:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8262:18:0;;;8230:7;8262:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8113:184;21464:115;;;;;;;;;;-1:-1:-1;21464:115:0;;;;;:::i;:::-;;:::i;1799:244::-;;;;;;;;;;-1:-1:-1;1799:244:0;;;;;:::i;:::-;;:::i;16083:169::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;;;;;;;;;16159:9:::1;16154:91;16178:5;:12;16174:1;:16;16154:91;;;16229:4;16212;:14;16217:5;16223:1;16217:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16212:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16212:14:0;:21;;-1:-1:-1;;16212:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16192:3;::::1;::::0;::::1;:::i;:::-;;;;16154:91;;;;16083:169:::0;:::o;8305:193::-;8407:4;8429:39;268:10;8452:7;8461:6;8429:8;:39::i;:::-;-1:-1:-1;8486:4:0;8305:193;;;;;:::o;8506:446::-;8638:4;8655:36;8665:6;8673:9;8684:6;8655:9;:36::i;:::-;8702:220;8725:6;268:10;8773:138;8829:6;8773:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8773:19:0;;;;;;:11;:19;;;;;;;;268:10;8773:33;;;;;;;;;;:37;:138::i;:::-;8702:8;:220::i;:::-;-1:-1:-1;8940:4:0;8506:446;;;;;:::o;21588:196::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21680:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;:29;;::::0;::::1;;;;21672:65;;;::::0;-1:-1:-1;;;21672:65:0;;11286:2:1;21672:65:0::1;::::0;::::1;11268:21:1::0;11325:2;11305:18;;;11298:30;11364:25;11344:18;;;11337:53;11407:18;;21672:65:0::1;11084:347:1::0;21672:65:0::1;-1:-1:-1::0;;;;;21748:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;-1:-1:-1;;21748:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21588:196::o;20497:218::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;20620:17:::1;:36:::0;;-1:-1:-1;;;;;20620:36:0;;::::1;-1:-1:-1::0;;;;;;20620:36:0;;::::1;;::::0;;;20667:19:::1;:40:::0;;;;;::::1;::::0;::::1;;::::0;;20497:218::o;16260:92::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16324:12:0::1;16339:5;16324:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16324:20:0::1;::::0;;16260:92::o;21204:101::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;21271:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21271:26:0::1;-1:-1:-1::0;;;;21271:26:0;;::::1;::::0;;;::::1;::::0;;21204:101::o;15813:262::-;15879:19;;-1:-1:-1;;;;;15879:19:0;268:10;-1:-1:-1;;;;;15863:35:0;;:72;;;-1:-1:-1;15918:17:0;;-1:-1:-1;;;;;15918:17:0;268:10;-1:-1:-1;;;;;15902:33:0;;15863:72;:99;;;-1:-1:-1;1467:7:0;1494:6;-1:-1:-1;;;;;1494:6:0;268:10;15939:23;15863:99;15855:108;;;;;;16003:21;16035:32;16003:21;16035:12;:32::i;:::-;15844:231;15813:262::o;7760:138::-;-1:-1:-1;;;;;7873:16:0;;7826:7;7873:16;;;:7;:16;;;;;;7853:37;;:19;:37::i;1643:148::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;1750:1:::1;1734:6:::0;;1713:40:::1;::::0;-1:-1:-1;;;;;1734:6:0;;::::1;::::0;1713:40:::1;::::0;1750:1;;1713:40:::1;1781:1;1764:19:::0;;-1:-1:-1;;;;;;1764:19:0::1;::::0;;1643:148::o;21344:108::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;21418:12:::1;:26:::0;21344:108::o;15433:101::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;15500:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;15500:26:0::1;-1:-1:-1::0;;;;15500:26:0;;::::1;::::0;;;::::1;::::0;;15433:101::o;21009:139::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;21100:19:::1;:40:::0;21009:139::o;7906:199::-;8011:4;8033:42;268:10;8057:9;8068:6;8033:9;:42::i;19784:705::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;19986:14:::1;:30:::0;;;20027:17:::1;:36:::0;;;20076:15:::1;:32:::0;;;20121:13:::1;:28:::0;;;20160:15:::1;:32:::0;;;20203:13:::1;:28:::0;;;20242:8:::1;:18:::0;;;20284:88:::1;20253:7:::0;20284:74:::1;20219:12:::0;20284:74;20178:14;20284:74;20094:14;20137:12;20284:19:::1;:34::i;:::-;:38:::0;::::1;:55::i;:88::-;20273:8;:99;;;;20404:67;20462:8;;20404:53;20443:13;;20404:34;20422:15;;20404:13;;:17;;:34;;;;:::i;:67::-;20383:18;:88:::0;-1:-1:-1;;;;;;;19784:705:0:o;15542:263::-;15608:19;;-1:-1:-1;;;;;15608:19:0;268:10;-1:-1:-1;;;;;15592:35:0;;:72;;;-1:-1:-1;15647:17:0;;-1:-1:-1;;;;;15647:17:0;268:10;-1:-1:-1;;;;;15631:33:0;;15592:72;:99;;;-1:-1:-1;1467:7:0;1494:6;-1:-1:-1;;;;;1494:6:0;268:10;15668:23;15592:99;15584:108;;;;;;15703:23;15729:24;15747:4;15729:9;:24::i;:::-;15703:50;;15764:33;15781:15;15764:16;:33::i;20723:234::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;20840:9:::1;20836:114;20855:19:::0;;::::1;20836:114;;;20930:8;20896:18;:31;20915:8;;20924:1;20915:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20896:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20896:31:0;:42;;-1:-1:-1;;20896:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20876:3;::::1;::::0;::::1;:::i;:::-;;;;20836:114;;;;20723:234:::0;;;:::o;21464:115::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;21541:14:::1;:30:::0;21464:115::o;1799:244::-;1556:6;;-1:-1:-1;;;;;1556:6:0;268:10;1556:22;1548:67;;;;-1:-1:-1;;;1548:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1888:22:0;::::1;1880:73;;;::::0;-1:-1:-1;;;1880:73:0;;9716:2:1;1880:73:0::1;::::0;::::1;9698:21:1::0;9755:2;9735:18;;;9728:30;9794:34;9774:18;;;9767:62;-1:-1:-1;;;9845:18:1;;;9838:36;9891:19;;1880:73:0::1;9514:402:1::0;1880:73:0::1;1990:6;::::0;;1969:38:::1;::::0;-1:-1:-1;;;;;1969:38:0;;::::1;::::0;1990:6;::::1;::::0;1969:38:::1;::::0;::::1;2018:6;:17:::0;;-1:-1:-1;;;;;;2018:17:0::1;-1:-1:-1::0;;;;;2018:17:0;;;::::1;::::0;;;::::1;::::0;;1799:244::o;2074:179::-;2132:7;;2164:5;2168:1;2164;:5;:::i;:::-;2152:17;;2193:1;2188;:6;;2180:46;;;;-1:-1:-1;;;2180:46:0;;10930:2:1;2180:46:0;;;10912:21:1;10969:2;10949:18;;;10942:30;11008:29;10988:18;;;10981:57;11055:18;;2180:46:0;10728:351:1;2180:46:0;2244:1;2074:179;-1:-1:-1;;;2074:179:0:o;9655:369::-;-1:-1:-1;;;;;9782:19:0;;9774:68;;;;-1:-1:-1;;;9774:68:0;;13621:2:1;9774:68:0;;;13603:21:1;13660:2;13640:18;;;13633:30;13699:34;13679:18;;;13672:62;-1:-1:-1;;;13750:18:1;;;13743:34;13794:19;;9774:68:0;13419:400:1;9774:68:0;-1:-1:-1;;;;;9861:21:0;;9853:68;;;;-1:-1:-1;;;9853:68:0;;10123:2:1;9853:68:0;;;10105:21:1;10162:2;10142:18;;;10135:30;10201:34;10181:18;;;10174:62;-1:-1:-1;;;10252:18:1;;;10245:32;10294:19;;9853:68:0;9921:398:1;9853:68:0;-1:-1:-1;;;;;9932:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9984:32;;13970:25:1;;;9984:32:0;;13943:18:1;9984:32:0;;;;;;;9655:369;;;:::o;10032:3019::-;-1:-1:-1;;;;;10154:18:0;;10146:68;;;;-1:-1:-1;;;10146:68:0;;12811:2:1;10146:68:0;;;12793:21:1;12850:2;12830:18;;;12823:30;12889:34;12869:18;;;12862:62;-1:-1:-1;;;12940:18:1;;;12933:35;12985:19;;10146:68:0;12609:401:1;10146:68:0;-1:-1:-1;;;;;10233:16:0;;10225:64;;;;-1:-1:-1;;;10225:64:0;;8112:2:1;10225:64:0;;;8094:21:1;8151:2;8131:18;;;8124:30;8190:34;8170:18;;;8163:62;-1:-1:-1;;;8241:18:1;;;8234:33;8284:19;;10225:64:0;7910:399:1;10225:64:0;10317:1;10308:6;:10;10300:64;;;;-1:-1:-1;;;10300:64:0;;12401:2:1;10300:64:0;;;12383:21:1;12440:2;12420:18;;;12413:30;12479:34;12459:18;;;12452:62;-1:-1:-1;;;12530:18:1;;;12523:39;12579:19;;10300:64:0;12199:405:1;10300:64:0;1467:7;1494:6;-1:-1:-1;;;;;10381:15:0;;;1494:6;;10381:15;;;;:32;;-1:-1:-1;1467:7:0;1494:6;-1:-1:-1;;;;;10400:13:0;;;1494:6;;10400:13;;10381:32;:52;;;;-1:-1:-1;;;;;;10418:15:0;;;;;;:9;:15;;;;;;;;10417:16;10381:52;:70;;;;-1:-1:-1;;;;;;10438:13:0;;;;;;:9;:13;;;;;;;;10437:14;10381:70;10377:1902;;;10520:11;;-1:-1:-1;;;10520:11:0;;;;10515:144;;-1:-1:-1;;;;;10560:15:0;;;;;;:9;:15;;;;;;;;10552:91;;;;-1:-1:-1;;;10552:91:0;;8516:2:1;10552:91:0;;;8498:21:1;8555:2;8535:18;;;8528:30;8594:34;8574:18;;;8567:62;8665:33;8645:18;;;8638:61;8716:19;;10552:91:0;8314:427:1;10552:91:0;10707:12;;10697:6;:22;;10689:63;;;;-1:-1:-1;;;10689:63:0;;9359:2:1;10689:63:0;;;9341:21:1;9398:2;9378:18;;;9371:30;9437;9417:18;;;9410:58;9485:18;;10689:63:0;9157:352:1;10689:63:0;-1:-1:-1;;;;;10776:10:0;;;;;;:4;:10;;;;;;;;10775:11;:24;;;;-1:-1:-1;;;;;;10791:8:0;;;;;;:4;:8;;;;;;;;10790:9;10775:24;10767:72;;;;-1:-1:-1;;;10767:72:0;;10526:2:1;10767:72:0;;;10508:21:1;10565:2;10545:18;;;10538:30;10604:34;10584:18;;;10577:62;-1:-1:-1;;;10655:18:1;;;10648:33;10698:19;;10767:72:0;10324:399:1;10767:72:0;10877:13;;-1:-1:-1;;;;;10871:19:0;;;10877:13;;10871:19;10868:146;;10944:14;;10935:6;10919:13;10929:2;10919:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10911:87;;;;-1:-1:-1;;;10911:87:0;;13217:2:1;10911:87:0;;;13199:21:1;13256:2;13236:18;;;13229:30;13295:34;13275:18;;;13268:62;-1:-1:-1;;;13346:18:1;;;13339:33;13389:19;;10911:87:0;13015:399:1;10911:87:0;11042:28;11073:24;11091:4;11073:9;:24::i;:::-;11151:19;;11214:12;;11042:55;;-1:-1:-1;11127:43:0;;;;11190:36;;11187:124;;11283:12;;11260:35;;11187:124;11343:7;:18;;;;-1:-1:-1;11355:6:0;;-1:-1:-1;;;11355:6:0;;;;11354:7;11343:18;:43;;;;-1:-1:-1;11373:13:0;;-1:-1:-1;;;;;11365:21:0;;;11373:13;;11365:21;;11343:43;:58;;;;-1:-1:-1;11390:11:0;;-1:-1:-1;;;11390:11:0;;;;11343:58;:87;;;;-1:-1:-1;;;;;;11406:24:0;;;;;;:18;:24;;;;;;;;11405:25;11343:87;:114;;;;-1:-1:-1;;;;;;11435:22:0;;;;;;:18;:22;;;;;;;;11434:23;11343:114;11339:929;;;11496:20;11519:48;11558:8;;11519:34;11544:8;;11519:20;:24;;:34;;;;:::i;:::-;:38;;:48::i;:::-;11496:71;-1:-1:-1;11589:16:0;;11586:88;;11630:24;11641:12;11630:10;:24::i;:::-;11694:23;11720:74;11785:8;;11720:60;11745:34;11763:15;;11745:13;;:17;;:34;;;;:::i;:::-;11720:20;;:24;:60::i;:74::-;11694:100;-1:-1:-1;11816:19:0;;11813:100;;11860:33;11877:15;11860:16;:33::i;:::-;11960:21;12004:22;;12000:103;;12051:32;12064:18;12051:12;:32::i;:::-;12123:23;12149:53;12193:8;;12149:39;12174:13;;12149:20;:24;;:39;;;;:::i;:53::-;12123:79;;12221:31;12236:15;12221:14;:31::i;:::-;11459:809;;;;11339:929;10453:1826;;10377:1902;-1:-1:-1;;;;;12363:24:0;;12299:12;12363:24;;;:18;:24;;;;;;12314:4;;12363:24;;;:50;;-1:-1:-1;;;;;;12391:22:0;;;;;;:18;:22;;;;;;;;12363:50;12362:102;;;-1:-1:-1;12427:13:0;;-1:-1:-1;;;;;12419:21:0;;;12427:13;;12419:21;;;;:44;;-1:-1:-1;12450:13:0;;-1:-1:-1;;;;;12444:19:0;;;12450:13;;12444:19;;12419:44;12358:632;;;-1:-1:-1;12491:5:0;12358:632;;;12586:13;;-1:-1:-1;;;;;12578:21:0;;;12586:13;;12578:21;:55;;;;-1:-1:-1;12617:15:0;;-1:-1:-1;;;;;12603:30:0;;;12617:15;;12603:30;;12578:55;12575:167;;;12666:14;;12654:9;:26;12709:17;;12699:7;:27;12575:167;12805:13;;-1:-1:-1;;;;;12799:19:0;;;12805:13;;12799:19;:55;;;;-1:-1:-1;12838:15:0;;-1:-1:-1;;;;;12822:32:0;;;12838:15;;12822:32;;12799:55;12795:170;;;12887:15;;12875:9;:27;12931:18;;12921:7;:28;12795:170;13002:41;13017:4;13023:2;13027:6;13035:7;13002:14;:41::i;2405:224::-;2525:7;2561:12;2553:6;;;;2545:29;;;;-1:-1:-1;;;2545:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2585:9:0;2597:5;2601:1;2597;:5;:::i;:::-;2585:17;2405:224;-1:-1:-1;;;;;2405:224:0:o;15094:331::-;15151:22;15176:65;15206:34;15224:15;;15206:13;;:17;;:34;;;;:::i;:::-;15187:13;;15176:25;;:6;;:10;:25::i;:65::-;15151:90;-1:-1:-1;15252:24:0;15279:26;:6;15151:90;15279:10;:26::i;:::-;15318:19;;:46;;15252:53;;-1:-1:-1;;;;;;15318:19:0;;:46;;;;;15252:53;;15318:19;:46;:19;:46;15252:53;15318:19;:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15375:17:0;;:42;;-1:-1:-1;;;;;15375:17:0;;;;:42;;;;;15402:14;;15375:17;:42;:17;:42;15402:14;15375:17;:42;;;;;;;;;;;;;;;;;;;8960:323;9055:7;9113;;9102;:18;;9080:110;;;;-1:-1:-1;;;9080:110:0;;8948:2:1;9080:110:0;;;8930:21:1;8987:2;8967:18;;;8960:30;9026:34;9006:18;;;8999:62;-1:-1:-1;;;9077:18:1;;;9070:40;9127:19;;9080:110:0;8746:406:1;9080:110:0;9201:19;9223:10;:8;:10::i;:::-;9201:32;-1:-1:-1;9251:24:0;:7;9201:32;9251:11;:24::i;13189:483::-;6396:6;:13;;-1:-1:-1;;;;6396:13:0;-1:-1:-1;;;6396:13:0;;;13291:16:::1;::::0;;13305:1:::1;13291:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13291:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13291:16:0::1;13267:40;;13336:4;13318;13323:1;13318:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13318:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13362:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13362:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13318:7;;13362:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13352:4;13357:1;13352:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13352:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13427:15:::1;::::0;13395:62:::1;::::0;13412:4:::1;::::0;13427:15:::1;13445:11:::0;13395:8:::1;:62::i;:::-;13468:15;::::0;:196:::1;::::0;-1:-1:-1;;;13468:196:0;;-1:-1:-1;;;;;13468:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13549:11;;13468:15:::1;::::0;13591:4;;13618::::1;::::0;13638:15:::1;::::0;13468:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6432:6:0;:14;;-1:-1:-1;;;;6432:14:0;;;-1:-1:-1;;;;13189:483:0:o;2637:246::-;2695:7;2719:6;2715:47;;-1:-1:-1;2749:1:0;2742:8;;2715:47;2772:9;2784:5;2788:1;2784;:5;:::i;:::-;2772:17;-1:-1:-1;2817:1:0;2808:5;2812:1;2772:17;2808:5;:::i;:::-;:10;2800:56;;;;-1:-1:-1;;;2800:56:0;;11638:2:1;2800:56:0;;;11620:21:1;11677:2;11657:18;;;11650:30;11716:34;11696:18;;;11689:62;-1:-1:-1;;;11767:18:1;;;11760:31;11808:19;;2800:56:0;11436:397:1;2891:132:0;2949:7;2976:39;2980:1;2983;2976:39;;;;;;;;;;;;;;;;;:3;:39::i;13059:122::-;13115:58;13138:4;5834:42;13159:6;13167:5;13115:14;:58::i;13684:872::-;13804:12;13819:13;:6;13830:1;13819:10;:13::i;:::-;13804:28;-1:-1:-1;13843:17:0;13863:16;:6;13804:28;13863:10;:16::i;:::-;13843:36;-1:-1:-1;14182:21:0;14248:22;14265:4;14248:16;:22::i;:::-;14401:18;14422:41;:21;14448:14;14422:25;:41::i;:::-;14401:62;;14513:35;14526:9;14537:10;14513:12;:35::i;:::-;13732:824;;;;13684:872;:::o;16360:282::-;16516:7;16511:28;;16525:14;:12;:14::i;:::-;16550:44;16568:6;16576:9;16587:6;16550:17;:44::i;:::-;16610:7;16605:29;;16619:15;9586:17;;9574:9;:29;9624:15;;9614:7;:25;9530:117;2261:136;2319:7;2346:43;2350:1;2353;2346:43;;;;;;;;;;;;;;;;;:3;:43::i;19335:166::-;19377:7;19398:15;19415;19434:19;:17;:19::i;:::-;19397:56;;-1:-1:-1;19397:56:0;-1:-1:-1;19473:20:0;19397:56;;19473:11;:20::i;:::-;19466:27;;;;19335:166;:::o;3031:223::-;3151:7;3186:12;3179:5;3171:28;;;;-1:-1:-1;;;3171:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3210:9:0;3222:5;3226:1;3222;:5;:::i;14568:518::-;14750:15;;14718:62;;14735:4;;-1:-1:-1;;;;;14750:15:0;14768:11;14718:8;:62::i;:::-;14823:15;;:255;;-1:-1:-1;;;14823:255:0;;14895:4;14823:255;;;6611:34:1;6661:18;;;6654:34;;;14823:15:0;6704:18:1;;;6697:34;;;6747:18;;;6740:34;;;6790:19;;;6783:44;15052:15:0;6843:19:1;;;6836:35;-1:-1:-1;;;;;14823:15:0;;;;:31;;14862:9;;6545:19:1;;14823:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9291:231::-;9338:9;;:14;:30;;;;-1:-1:-1;9356:7:0;;:12;9338:30;9334:43;;;9291:231::o;9334:43::-;9413:9;;;9393:17;:29;9451:7;;;9433:15;:25;-1:-1:-1;9479:13:0;;;;9503:11;9291:231::o;16650:610::-;16797:15;16827:23;16865:12;16892:23;16930:12;16957:13;16984:19;16995:7;16984:10;:19::i;:::-;-1:-1:-1;;;;;17032:15:0;;;;;;:7;:15;;;;;;16782:221;;-1:-1:-1;16782:221:0;;-1:-1:-1;16782:221:0;;-1:-1:-1;16782:221:0;-1:-1:-1;16782:221:0;-1:-1:-1;16782:221:0;-1:-1:-1;17032:28:0;;16782:221;17032:19;:28::i;:::-;-1:-1:-1;;;;;17014:15:0;;;;;;;:7;:15;;;;;;:46;;;;17092:18;;;;;;;:39;;17115:15;17092:22;:39::i;:::-;-1:-1:-1;;;;;17071:18:0;;;;;;:7;:18;;;;;:60;17142:16;17152:5;17142:9;:16::i;:::-;17169:23;17181:4;17187;17169:11;:23::i;:::-;17225:9;-1:-1:-1;;;;;17208:44:0;17217:6;-1:-1:-1;;;;;17208:44:0;;17236:15;17208:44;;;;13970:25:1;;13958:2;13943:18;;13824:177;17208:44:0;;;;;;;;16771:489;;;;;;16650:610;;;:::o;19509:263::-;19607:7;;19560;;;;4650:23;19675:20;19607:7;4650:23;19675:11;:20::i;:::-;19665:7;:30;19661:61;;;-1:-1:-1;;19705:7:0;;;4650:23;;-1:-1:-1;19509:263:0;-1:-1:-1;19509:263:0:o;19661:61::-;19747:7;;19756;;-1:-1:-1;19509:263:0;-1:-1:-1;19509:263:0:o;17679:625::-;17779:7;17801;17823;17845;17867;17889;17925:23;17950:12;17964:13;17994:40;18006:7;18015:9;;18026:7;;17994:11;:40::i;:::-;17924:110;;;;;;18045:19;18067:10;:8;:10::i;:::-;18045:32;;18089:15;18106:23;18131:12;18160:46;18172:7;18181:4;18187:5;18194:11;18160;:46::i;:::-;18088:118;;-1:-1:-1;18088:118:0;-1:-1:-1;18088:118:0;-1:-1:-1;18267:15:0;;-1:-1:-1;18284:4:0;;-1:-1:-1;18290:5:0;;-1:-1:-1;;;;;17679:625:0;;;;;;;:::o;17268:211::-;17321:19;17343:10;:8;:10::i;:::-;17321:32;-1:-1:-1;17364:13:0;17380:22;:5;17321:32;17380:9;:22::i;:::-;17454:4;17438:22;;;;:7;:22;;;;;;17364:38;;-1:-1:-1;17438:33:0;;17364:38;17438:26;:33::i;:::-;17429:4;17413:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;17268:211:0:o;17487:147::-;17565:7;;:17;;17577:4;17565:11;:17::i;:::-;17555:7;:27;17606:10;;:20;;17621:4;17606:14;:20::i;:::-;17593:10;:33;-1:-1:-1;;17487:147:0:o;18312:471::-;18481:7;;;;18575:30;18601:3;18575:21;:7;18587:8;18575:11;:21::i;:30::-;18560:45;-1:-1:-1;18616:13:0;18632:28;18656:3;18632:19;:7;18644:6;18632:11;:19::i;:28::-;18616:44;-1:-1:-1;18671:23:0;18697:28;18616:44;18697:17;:7;18709:4;18697:11;:17::i;:::-;:21;;:28::i;:::-;18671:54;18763:4;;-1:-1:-1;18769:5:0;;-1:-1:-1;18312:471:0;;-1:-1:-1;;;;;18312:471:0:o;18791:536::-;18985:7;;;;19082:24;:7;19094:11;19082;:24::i;:::-;19064:42;-1:-1:-1;19117:12:0;19132:21;:4;19141:11;19132:8;:21::i;:::-;19117:36;-1:-1:-1;19164:13:0;19180:22;:5;19190:11;19180:9;:22::i;:::-;19164:38;-1:-1:-1;19213:23:0;19239:28;19164:38;19239:17;:7;19251:4;19239:11;:17::i;:28::-;19288:7;;;;-1:-1:-1;19314:4:0;;-1:-1:-1;18791:536:0;;-1:-1:-1;;;;;;;18791:536:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:60;;303:1;300;293:12;318:247;377:6;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;485:9;472:23;504:31;529:5;504:31;:::i;570:251::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;760:31;785:5;760:31;:::i;826:404::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;-1:-1:-1;1152:2:1;1137:18;;1124:32;1165:33;1124:32;1165:33;:::i;:::-;1217:7;1207:17;;;826:404;;;;;:::o;1628:456::-;1705:6;1713;1721;1774:2;1762:9;1753:7;1749:23;1745:32;1742:52;;;1790:1;1787;1780:12;1742:52;1829:9;1816:23;1848:31;1873:5;1848:31;:::i;:::-;1898:5;-1:-1:-1;1955:2:1;1940:18;;1927:32;1968:33;1927:32;1968:33;:::i;:::-;1628:456;;2020:7;;-1:-1:-1;;;2074:2:1;2059:18;;;;2046:32;;1628:456::o;2089:315::-;2154:6;2162;2215:2;2203:9;2194:7;2190:23;2186:32;2183:52;;;2231:1;2228;2221:12;2183:52;2270:9;2257:23;2289:31;2314:5;2289:31;:::i;:::-;2339:5;-1:-1:-1;2363:35:1;2394:2;2379:18;;2363:35;:::i;:::-;2353:45;;2089:315;;;;;:::o;2409:::-;2477:6;2485;2538:2;2526:9;2517:7;2513:23;2509:32;2506:52;;;2554:1;2551;2544:12;2506:52;2593:9;2580:23;2612:31;2637:5;2612:31;:::i;:::-;2662:5;2714:2;2699:18;;;;2686:32;;-1:-1:-1;;;2409:315:1:o;2729:689::-;2821:6;2829;2837;2890:2;2878:9;2869:7;2865:23;2861:32;2858:52;;;2906:1;2903;2896:12;2858:52;2946:9;2933:23;2975:18;3016:2;3008:6;3005:14;3002:34;;;3032:1;3029;3022:12;3002:34;3070:6;3059:9;3055:22;3045:32;;3115:7;3108:4;3104:2;3100:13;3096:27;3086:55;;3137:1;3134;3127:12;3086:55;3177:2;3164:16;3203:2;3195:6;3192:14;3189:34;;;3219:1;3216;3209:12;3189:34;3274:7;3267:4;3257:6;3254:1;3250:14;3246:2;3242:23;3238:34;3235:47;3232:67;;;3295:1;3292;3285:12;3232:67;3326:4;3318:13;;;;-1:-1:-1;3350:6:1;-1:-1:-1;3375:37:1;;3391:20;;;-1:-1:-1;3375:37:1;:::i;:::-;3365:47;;2729:689;;;;;:::o;3423:1132::-;3507:6;3538:2;3581;3569:9;3560:7;3556:23;3552:32;3549:52;;;3597:1;3594;3587:12;3549:52;3637:9;3624:23;3666:18;3707:2;3699:6;3696:14;3693:34;;;3723:1;3720;3713:12;3693:34;3761:6;3750:9;3746:22;3736:32;;3806:7;3799:4;3795:2;3791:13;3787:27;3777:55;;3828:1;3825;3818:12;3777:55;3864:2;3851:16;3886:2;3882;3879:10;3876:36;;;3892:18;;:::i;:::-;3938:2;3935:1;3931:10;3970:2;3964:9;4033:2;4029:7;4024:2;4020;4016:11;4012:25;4004:6;4000:38;4088:6;4076:10;4073:22;4068:2;4056:10;4053:18;4050:46;4047:72;;;4099:18;;:::i;:::-;4135:2;4128:22;4185:18;;;4219:15;;;;-1:-1:-1;4254:11:1;;;4284;;;4280:20;;4277:33;-1:-1:-1;4274:53:1;;;4323:1;4320;4313:12;4274:53;4345:1;4336:10;;4355:169;4369:2;4366:1;4363:9;4355:169;;;4426:23;4445:3;4426:23;:::i;:::-;4414:36;;4387:1;4380:9;;;;;4470:12;;;;4502;;4355:169;;;-1:-1:-1;4543:6:1;3423:1132;-1:-1:-1;;;;;;;;3423:1132:1:o;4560:180::-;4616:6;4669:2;4657:9;4648:7;4644:23;4640:32;4637:52;;;4685:1;4682;4675:12;4637:52;4708:26;4724:9;4708:26;:::i;4745:180::-;4804:6;4857:2;4845:9;4836:7;4832:23;4828:32;4825:52;;;4873:1;4870;4863:12;4825:52;-1:-1:-1;4896:23:1;;4745:180;-1:-1:-1;4745:180:1:o;4930:306::-;5018:6;5026;5034;5087:2;5075:9;5066:7;5062:23;5058:32;5055:52;;;5103:1;5100;5093:12;5055:52;5132:9;5126:16;5116:26;;5182:2;5171:9;5167:18;5161:25;5151:35;;5226:2;5215:9;5211:18;5205:25;5195:35;;4930:306;;;;;:::o;5241:592::-;5354:6;5362;5370;5378;5386;5394;5402;5455:3;5443:9;5434:7;5430:23;5426:33;5423:53;;;5472:1;5469;5462:12;5423:53;-1:-1:-1;;5495:23:1;;;5565:2;5550:18;;5537:32;;-1:-1:-1;5616:2:1;5601:18;;5588:32;;5667:2;5652:18;;5639:32;;-1:-1:-1;5718:3:1;5703:19;;5690:33;;-1:-1:-1;5770:3:1;5755:19;;5742:33;;-1:-1:-1;5822:3:1;5807:19;5794:33;;-1:-1:-1;5241:592:1;-1:-1:-1;5241:592:1:o;7308:597::-;7420:4;7449:2;7478;7467:9;7460:21;7510:6;7504:13;7553:6;7548:2;7537:9;7533:18;7526:34;7578:1;7588:140;7602:6;7599:1;7596:13;7588:140;;;7697:14;;;7693:23;;7687:30;7663:17;;;7682:2;7659:26;7652:66;7617:10;;7588:140;;;7746:6;7743:1;7740:13;7737:91;;;7816:1;7811:2;7802:6;7791:9;7787:22;7783:31;7776:42;7737:91;-1:-1:-1;7889:2:1;7868:15;-1:-1:-1;;7864:29:1;7849:45;;;;7896:2;7845:54;;7308:597;-1:-1:-1;;;7308:597:1:o;11838:356::-;12040:2;12022:21;;;12059:18;;;12052:30;12118:34;12113:2;12098:18;;12091:62;12185:2;12170:18;;11838:356::o;14006:980::-;14268:4;14316:3;14305:9;14301:19;14347:6;14336:9;14329:25;14373:2;14411:6;14406:2;14395:9;14391:18;14384:34;14454:3;14449:2;14438:9;14434:18;14427:31;14478:6;14513;14507:13;14544:6;14536;14529:22;14582:3;14571:9;14567:19;14560:26;;14621:2;14613:6;14609:15;14595:29;;14642:1;14652:195;14666:6;14663:1;14660:13;14652:195;;;14731:13;;-1:-1:-1;;;;;14727:39:1;14715:52;;14822:15;;;;14787:12;;;;14763:1;14681:9;14652:195;;;-1:-1:-1;;;;;;;14903:32:1;;;;14898:2;14883:18;;14876:60;-1:-1:-1;;;14967:3:1;14952:19;14945:35;14864:3;14006:980;-1:-1:-1;;;14006:980:1:o;15180:128::-;15220:3;15251:1;15247:6;15244:1;15241:13;15238:39;;;15257:18;;:::i;:::-;-1:-1:-1;15293:9:1;;15180:128::o;15313:217::-;15353:1;15379;15369:132;;15423:10;15418:3;15414:20;15411:1;15404:31;15458:4;15455:1;15448:15;15486:4;15483:1;15476:15;15369:132;-1:-1:-1;15515:9:1;;15313:217::o;15535:168::-;15575:7;15641:1;15637;15633:6;15629:14;15626:1;15623:21;15618:1;15611:9;15604:17;15600:45;15597:71;;;15648:18;;:::i;:::-;-1:-1:-1;15688:9:1;;15535:168::o;15708:125::-;15748:4;15776:1;15773;15770:8;15767:34;;;15781:18;;:::i;:::-;-1:-1:-1;15818:9:1;;15708:125::o;15838:135::-;15877:3;-1:-1:-1;;15898:17:1;;15895:43;;;15918:18;;:::i;:::-;-1:-1:-1;15965:1:1;15954:13;;15838:135::o;15978:127::-;16039:10;16034:3;16030:20;16027:1;16020:31;16070:4;16067:1;16060:15;16094:4;16091:1;16084:15;16110:127;16171:10;16166:3;16162:20;16159:1;16152:31;16202:4;16199:1;16192:15;16226:4;16223:1;16216:15;16242:127;16303:10;16298:3;16294:20;16291:1;16284:31;16334:4;16331:1;16324:15;16358:4;16355:1;16348:15;16374:131;-1:-1:-1;;;;;16449:31:1;;16439:42;;16429:70;;16495:1;16492;16485:12

Swarm Source

ipfs://bd05c9d43dbe2f4625397dc98ab2d4836fe605275697ef2dc90ca74f39de4c98
Loading