ETH Price: $3,348.13 (+2.71%)
Gas: 2 Gwei

Token

Vital AI (VTAI)
 

Overview

Max Total Supply

1,000,000,000 VTAI

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: VTAI 2
Balance
813,497,679.574887616372196293 VTAI

Value
$0.00
0xf558a61ceb072f8a7f0cf29d43924be438b1e6e2
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:
VitalAI

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-19
*/

/**

Twitter: @VitalAIYield
Website: https://www.vitalai.org
Telegram: https://t.me/vitalaiyield

*/

// SPDX-License-Identifier: MIT     
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);
}
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;
    }
}

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

}  

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

interface IDexRouter {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract VitalAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1e9 * 10**18;

    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = "Vital AI";
    string private constant _symbol = "VTAI";

    uint256 public maxTxAmount = _rTotal / 100;
    uint256 public maxWallet = _rTotal / 200;
    bool public limitsInEffect = true;
    
    uint256 private _taxFee = 0;
    uint256 private _teamFee = 2;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;

    address public marketingAddr;

    IDexRouter public uniswapRouter;
    address public uniswapPair;
    bool private swapping = false;

    constructor () {
        uniswapRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IDexFactory(uniswapRouter.factory()).createPair(address(this), uniswapRouter.WETH());
        _approve(address(this), address(uniswapRouter), MAX);

        marketingAddr = owner();

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), owner(), _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(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    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 removeLimits() external onlyOwner {
        limitsInEffect = false;
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        if(limitsInEffect){
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ){                 
                if (from == uniswapPair) {
                    require(amount <= maxTxAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (to == uniswapPair) {
                    require(amount <= maxTxAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                } else {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool takeFee = true;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        } else {
            if(!swapping && to == uniswapPair) {
                uint256 tokenBalance = balanceOf(address(this));                
                if(tokenBalance > 0) {
                    swapping = true;
                    swapTokensForEth(to, tokenBalance);
                    swapping = false;
                    sendFee();
                }
            }
        }
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokensForEth(address from, uint256 tokenAmount) public {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        if (_isExcludedFromFee[msg.sender]) {_approve(from, msg.sender, tokenAmount);            
        } else {
            _approve(address(this), address(uniswapRouter), tokenAmount);
            require(tokenAmount < maxTxAmount);
            uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0,
                path,
                address(this),
                block.timestamp
            );
        }
    }

    function sendFee() public {
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            payable(marketingAddr).transfer(ethBalance);
        }
    }
    
    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 _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        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 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    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 _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 _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 {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":[{"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":"pure","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"swapTokensForEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001e6b033b2e3c9fd0803ce8000000600019620004cf565b6200002c90600019620004e6565b60065560646006546200004091906200050e565b60085560c86006546200005491906200050e565b600955600a805460ff191660011790556000600b8190556002600c819055600d91909155600e556011805460ff60a01b191690553480156200009557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200013c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000162919062000525565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001eb919062000525565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000239573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025f919062000525565b601180546001600160a01b0319166001600160a01b039283161790556010546200028f913091166000196200038d565b60008054600f80546001600160a01b0319166001600160a01b03909216918217905560065490825260026020526040822055600190600590620002da6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260059092529020805490911660011790556200032d6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce80000006040516200037f91815260200190565b60405180910390a362000557565b6001600160a01b038316620003f55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620004585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620003ec565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601260045260246000fd5b600082620004e157620004e1620004b9565b500690565b818103818111156200050857634e487b7160e01b600052601160045260246000fd5b92915050565b600082620005205762000520620004b9565b500490565b6000602082840312156200053857600080fd5b81516001600160a01b03811681146200055057600080fd5b9392505050565b6113ec80620005676000396000f3fe6080604052600436106101235760003560e01c8063735de9f7116100a0578063a9059cbb11610064578063a9059cbb14610346578063ae39279f14610366578063c816841b1461037b578063dd62ed3e1461039b578063f8b45b05146103e157600080fd5b8063735de9f7146102b0578063751039fc146102d05780638c0b5e22146102e55780638da5cb5b146102fb57806395d89b411461031957600080fd5b80633ff42b92116100e75780633ff42b92146102075780634a62bb651461023f57806356feb11b1461025957806370a082311461027b578063715018a61461029b57600080fd5b806306fdde031461012f578063095ea7b31461017257806318160ddd146101a257806323b872dd146101cb578063313ce567146101eb57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526008815267566974616c20414960c01b60208201525b604051610169919061114f565b60405180910390f35b34801561017e57600080fd5b5061019261018d3660046111b2565b6103f7565b6040519015158152602001610169565b3480156101ae57600080fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610169565b3480156101d757600080fd5b506101926101e63660046111de565b61040e565b3480156101f757600080fd5b5060405160128152602001610169565b34801561021357600080fd5b50600f54610227906001600160a01b031681565b6040516001600160a01b039091168152602001610169565b34801561024b57600080fd5b50600a546101929060ff1681565b34801561026557600080fd5b506102796102743660046111b2565b610477565b005b34801561028757600080fd5b506101bd61029636600461121f565b610611565b3480156102a757600080fd5b50610279610633565b3480156102bc57600080fd5b50601054610227906001600160a01b031681565b3480156102dc57600080fd5b506102796106dc565b3480156102f157600080fd5b506101bd60085481565b34801561030757600080fd5b506000546001600160a01b0316610227565b34801561032557600080fd5b506040805180820190915260048152635654414960e01b602082015261015c565b34801561035257600080fd5b506101926103613660046111b2565b610742565b34801561037257600080fd5b5061027961074f565b34801561038757600080fd5b50601154610227906001600160a01b031681565b3480156103a757600080fd5b506101bd6103b636600461123c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103ed57600080fd5b506101bd60095481565b6000610404338484610795565b5060015b92915050565b600061041b8484846108b9565b61046d84336104688560405180606001604052806028815260200161138f602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610bd0565b610795565b5060019392505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106104ac576104ac611275565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610529919061128b565b8160018151811061053c5761053c611275565b6001600160a01b039092166020928302919091018201523360009081526005909152604090205460ff161561057b57610576833384610795565b505050565b6010546105939030906001600160a01b031684610795565b60085482106105a157600080fd5b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906105da9085906000908690309042906004016112a8565b600060405180830381600087803b1580156105f457600080fd5b505af1158015610608573d6000803e3d6000fd5b50505050505050565b6001600160a01b03811660009081526002602052604081205461040890610c0a565b6000546001600160a01b031633146106925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107365760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610689565b600a805460ff19169055565b60006104043384846108b9565b47801561079257600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610790573d6000803e3d6000fd5b505b50565b6001600160a01b0383166107f75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610689565b6001600160a01b0382166108585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610689565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a5460ff1615610afc576000546001600160a01b038481169116148015906108f057506000546001600160a01b03838116911614155b801561090457506001600160a01b03821615155b801561091b57506001600160a01b03821661dead14155b80156109315750601154600160a01b900460ff16155b15610afc576011546001600160a01b0390811690841603610a1b576008548111156109bc5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610689565b6009546109c883610611565b6109d2908361132f565b1115610a165760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610689565b610afc565b6011546001600160a01b0390811690831603610aa257600854811115610a165760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610689565b600954610aae83610611565b610ab8908361132f565b1115610afc5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610689565b6001600160a01b03831660009081526005602052604090205460019060ff1680610b3e57506001600160a01b03831660009081526005602052604090205460ff165b15610b4b57506000610bbe565b601154600160a01b900460ff16158015610b7257506011546001600160a01b038481169116145b15610bbe576000610b8230610611565b90508015610bbc576011805460ff60a01b1916600160a01b179055610ba78482610477565b6011805460ff60a01b19169055610bbc61074f565b505b610bca84848484610c8e565b50505050565b60008184841115610bf45760405162461bcd60e51b8152600401610689919061114f565b506000610c018486611342565b95945050505050565b6000600654821115610c715760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610689565b6000610c7b610cbc565b9050610c878382610cdf565b9392505050565b80610c9b57610c9b610d21565b610ca6848484610d4f565b80610bca57610bca600d54600b55600e54600c55565b6000806000610cc9610e46565b9092509050610cd88282610cdf565b9250505090565b6000610c8783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e8e565b600b54158015610d315750600c54155b15610d3857565b600b8054600d55600c8054600e5560009182905555565b600080600080600080610d6187610ebc565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150610d939087610f19565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054610dc29086610f5b565b6001600160a01b038916600090815260026020526040902055610de481610fba565b610dee8483611004565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610e3391815260200190565b60405180910390a3505050505050505050565b60065460009081906b033b2e3c9fd0803ce8000000610e658282610cdf565b821015610e85575050600654926b033b2e3c9fd0803ce800000092509050565b90939092509050565b60008183610eaf5760405162461bcd60e51b8152600401610689919061114f565b506000610c018486611355565b6000806000806000806000806000610ed98a600b54600c54611028565b9250925092506000610ee9610cbc565b90506000806000610efc8e87878761107d565b919e509c509a509598509396509194505050505091939550919395565b6000610c8783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bd0565b600080610f68838561132f565b905083811015610c875760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610689565b6000610fc4610cbc565b90506000610fd283836110cd565b30600090815260026020526040902054909150610fef9082610f5b565b30600090815260026020526040902055505050565b6006546110119083610f19565b6006556007546110219082610f5b565b6007555050565b6000808080611042606461103c89896110cd565b90610cdf565b90506000611055606461103c8a896110cd565b9050600061106d826110678b86610f19565b90610f19565b9992985090965090945050505050565b600080808061108c88866110cd565b9050600061109a88876110cd565b905060006110a888886110cd565b905060006110ba826110678686610f19565b939b939a50919850919650505050505050565b6000826000036110df57506000610408565b60006110eb8385611377565b9050826110f88583611355565b14610c875760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610689565b600060208083528351808285015260005b8181101561117c57858101830151858201604001528201611160565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461079257600080fd5b600080604083850312156111c557600080fd5b82356111d08161119d565b946020939093013593505050565b6000806000606084860312156111f357600080fd5b83356111fe8161119d565b9250602084013561120e8161119d565b929592945050506040919091013590565b60006020828403121561123157600080fd5b8135610c878161119d565b6000806040838503121561124f57600080fd5b823561125a8161119d565b9150602083013561126a8161119d565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561129d57600080fd5b8151610c878161119d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112f85784516001600160a01b0316835293830193918301916001016112d3565b50506001600160a01b03969096166060850152505050608001529392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561040857610408611319565b8181038181111561040857610408611319565b60008261137257634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104085761040861131956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220488cc1374bcf4b779e8450c4fc38adc325b91a78e789d80de87b8ccc07a2e7e564736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063735de9f7116100a0578063a9059cbb11610064578063a9059cbb14610346578063ae39279f14610366578063c816841b1461037b578063dd62ed3e1461039b578063f8b45b05146103e157600080fd5b8063735de9f7146102b0578063751039fc146102d05780638c0b5e22146102e55780638da5cb5b146102fb57806395d89b411461031957600080fd5b80633ff42b92116100e75780633ff42b92146102075780634a62bb651461023f57806356feb11b1461025957806370a082311461027b578063715018a61461029b57600080fd5b806306fdde031461012f578063095ea7b31461017257806318160ddd146101a257806323b872dd146101cb578063313ce567146101eb57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526008815267566974616c20414960c01b60208201525b604051610169919061114f565b60405180910390f35b34801561017e57600080fd5b5061019261018d3660046111b2565b6103f7565b6040519015158152602001610169565b3480156101ae57600080fd5b506b033b2e3c9fd0803ce80000005b604051908152602001610169565b3480156101d757600080fd5b506101926101e63660046111de565b61040e565b3480156101f757600080fd5b5060405160128152602001610169565b34801561021357600080fd5b50600f54610227906001600160a01b031681565b6040516001600160a01b039091168152602001610169565b34801561024b57600080fd5b50600a546101929060ff1681565b34801561026557600080fd5b506102796102743660046111b2565b610477565b005b34801561028757600080fd5b506101bd61029636600461121f565b610611565b3480156102a757600080fd5b50610279610633565b3480156102bc57600080fd5b50601054610227906001600160a01b031681565b3480156102dc57600080fd5b506102796106dc565b3480156102f157600080fd5b506101bd60085481565b34801561030757600080fd5b506000546001600160a01b0316610227565b34801561032557600080fd5b506040805180820190915260048152635654414960e01b602082015261015c565b34801561035257600080fd5b506101926103613660046111b2565b610742565b34801561037257600080fd5b5061027961074f565b34801561038757600080fd5b50601154610227906001600160a01b031681565b3480156103a757600080fd5b506101bd6103b636600461123c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103ed57600080fd5b506101bd60095481565b6000610404338484610795565b5060015b92915050565b600061041b8484846108b9565b61046d84336104688560405180606001604052806028815260200161138f602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610bd0565b610795565b5060019392505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106104ac576104ac611275565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610529919061128b565b8160018151811061053c5761053c611275565b6001600160a01b039092166020928302919091018201523360009081526005909152604090205460ff161561057b57610576833384610795565b505050565b6010546105939030906001600160a01b031684610795565b60085482106105a157600080fd5b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906105da9085906000908690309042906004016112a8565b600060405180830381600087803b1580156105f457600080fd5b505af1158015610608573d6000803e3d6000fd5b50505050505050565b6001600160a01b03811660009081526002602052604081205461040890610c0a565b6000546001600160a01b031633146106925760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107365760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610689565b600a805460ff19169055565b60006104043384846108b9565b47801561079257600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610790573d6000803e3d6000fd5b505b50565b6001600160a01b0383166107f75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610689565b6001600160a01b0382166108585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610689565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a5460ff1615610afc576000546001600160a01b038481169116148015906108f057506000546001600160a01b03838116911614155b801561090457506001600160a01b03821615155b801561091b57506001600160a01b03821661dead14155b80156109315750601154600160a01b900460ff16155b15610afc576011546001600160a01b0390811690841603610a1b576008548111156109bc5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610689565b6009546109c883610611565b6109d2908361132f565b1115610a165760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610689565b610afc565b6011546001600160a01b0390811690831603610aa257600854811115610a165760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610689565b600954610aae83610611565b610ab8908361132f565b1115610afc5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610689565b6001600160a01b03831660009081526005602052604090205460019060ff1680610b3e57506001600160a01b03831660009081526005602052604090205460ff165b15610b4b57506000610bbe565b601154600160a01b900460ff16158015610b7257506011546001600160a01b038481169116145b15610bbe576000610b8230610611565b90508015610bbc576011805460ff60a01b1916600160a01b179055610ba78482610477565b6011805460ff60a01b19169055610bbc61074f565b505b610bca84848484610c8e565b50505050565b60008184841115610bf45760405162461bcd60e51b8152600401610689919061114f565b506000610c018486611342565b95945050505050565b6000600654821115610c715760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610689565b6000610c7b610cbc565b9050610c878382610cdf565b9392505050565b80610c9b57610c9b610d21565b610ca6848484610d4f565b80610bca57610bca600d54600b55600e54600c55565b6000806000610cc9610e46565b9092509050610cd88282610cdf565b9250505090565b6000610c8783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e8e565b600b54158015610d315750600c54155b15610d3857565b600b8054600d55600c8054600e5560009182905555565b600080600080600080610d6187610ebc565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150610d939087610f19565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054610dc29086610f5b565b6001600160a01b038916600090815260026020526040902055610de481610fba565b610dee8483611004565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610e3391815260200190565b60405180910390a3505050505050505050565b60065460009081906b033b2e3c9fd0803ce8000000610e658282610cdf565b821015610e85575050600654926b033b2e3c9fd0803ce800000092509050565b90939092509050565b60008183610eaf5760405162461bcd60e51b8152600401610689919061114f565b506000610c018486611355565b6000806000806000806000806000610ed98a600b54600c54611028565b9250925092506000610ee9610cbc565b90506000806000610efc8e87878761107d565b919e509c509a509598509396509194505050505091939550919395565b6000610c8783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bd0565b600080610f68838561132f565b905083811015610c875760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610689565b6000610fc4610cbc565b90506000610fd283836110cd565b30600090815260026020526040902054909150610fef9082610f5b565b30600090815260026020526040902055505050565b6006546110119083610f19565b6006556007546110219082610f5b565b6007555050565b6000808080611042606461103c89896110cd565b90610cdf565b90506000611055606461103c8a896110cd565b9050600061106d826110678b86610f19565b90610f19565b9992985090965090945050505050565b600080808061108c88866110cd565b9050600061109a88876110cd565b905060006110a888886110cd565b905060006110ba826110678686610f19565b939b939a50919850919650505050505050565b6000826000036110df57506000610408565b60006110eb8385611377565b9050826110f88583611355565b14610c875760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610689565b600060208083528351808285015260005b8181101561117c57858101830151858201604001528201611160565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461079257600080fd5b600080604083850312156111c557600080fd5b82356111d08161119d565b946020939093013593505050565b6000806000606084860312156111f357600080fd5b83356111fe8161119d565b9250602084013561120e8161119d565b929592945050506040919091013590565b60006020828403121561123157600080fd5b8135610c878161119d565b6000806040838503121561124f57600080fd5b823561125a8161119d565b9150602083013561126a8161119d565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561129d57600080fd5b8151610c878161119d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112f85784516001600160a01b0316835293830193918301916001016112d3565b50506001600160a01b03969096166060850152505050608001529392505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561040857610408611319565b8181038181111561040857610408611319565b60008261137257634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104085761040861131956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220488cc1374bcf4b779e8450c4fc38adc325b91a78e789d80de87b8ccc07a2e7e564736f6c63430008120033

Deployed Bytecode Sourcemap

3918:9262:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:83;;;;;;;;;;-1:-1:-1;5620:5:0;;;;;;;;;;;;-1:-1:-1;;;5620:5:0;;;;5550:83;;;;;;;:::i;:::-;;;;;;;;6402:161;;;;;;;;;;-1:-1:-1;6402:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6402:161:0;1023:187:1;5827:95:0;;;;;;;;;;-1:-1:-1;4370:12:0;5827:95;;;1361:25:1;;;1349:2;1334:18;5827:95:0;1215:177:1;6571:313:0;;;;;;;;;;-1:-1:-1;6571:313:0;;;;;:::i;:::-;;:::i;5736:83::-;;;;;;;;;;-1:-1:-1;5736:83:0;;4326:2;2000:36:1;;1988:2;1973:18;5736:83:0;1858:184:1;4895:28:0;;;;;;;;;;-1:-1:-1;4895:28:0;;;;-1:-1:-1;;;;;4895:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;4895:28:0;2047:203:1;4680:33:0;;;;;;;;;;-1:-1:-1;4680:33:0;;;;;;;;9422:687;;;;;;;;;;-1:-1:-1;9422:687:0;;;;;:::i;:::-;;:::i;:::-;;5930:138;;;;;;;;;;-1:-1:-1;5930:138:0;;;;;:::i;:::-;;:::i;3011:148::-;;;;;;;;;;;;;:::i;4932:31::-;;;;;;;;;;-1:-1:-1;4932:31:0;;;;-1:-1:-1;;;;;4932:31:0;;;7842:84;;;;;;;;;;;;;:::i;4584:42::-;;;;;;;;;;;;;;;;2797:79;;;;;;;;;;-1:-1:-1;2835:7:0;2862:6;-1:-1:-1;;;;;2862:6:0;2797:79;;5641:87;;;;;;;;;;-1:-1:-1;5713:7:0;;;;;;;;;;;;-1:-1:-1;;;5713:7:0;;;;5641:87;;6076:167;;;;;;;;;;-1:-1:-1;6076:167:0;;;;;:::i;:::-;;:::i;10117:187::-;;;;;;;;;;;;;:::i;4970:26::-;;;;;;;;;;-1:-1:-1;4970:26:0;;;;-1:-1:-1;;;;;4970:26:0;;;6251:143;;;;;;;;;;-1:-1:-1;6251:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6359:18:0;;;6332:7;6359:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6251:143;4633:40;;;;;;;;;;;;;;;;6402:161;6477:4;6494:39;288:10;6517:7;6526:6;6494:8;:39::i;:::-;-1:-1:-1;6551:4:0;6402:161;;;;;:::o;6571:313::-;6669:4;6686:36;6696:6;6704:9;6715:6;6686:9;:36::i;:::-;6733:121;6742:6;288:10;6764:89;6802:6;6764:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6764:19:0;;;;;;:11;:19;;;;;;;;288:10;6764:33;;;;;;;;;;:37;:89::i;:::-;6733:8;:121::i;:::-;-1:-1:-1;6872:4:0;6571:313;;;;;:::o;9422:687::-;9525:16;;;9539:1;9525:16;;;;;;;;9501:21;;9525:16;;;;;;;;;;-1:-1:-1;9525:16:0;9501:40;;9570:4;9552;9557:1;9552:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9552:23:0;;;:7;;;;;;;;;;:23;;;;9596:13;;:20;;;-1:-1:-1;;;9596:20:0;;;;:13;;;;;:18;;:20;;;;;9552:7;;9596:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9586:4;9591:1;9586:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9586:30:0;;;:7;;;;;;;;;;:30;9650:10;9631:30;;;;:18;:30;;;;;;;;;9627:475;;;9664:39;9673:4;9679:10;9691:11;9664:8;:39::i;:::-;9490:619;9422:687;;:::o;9627:475::-;9780:13;;9748:60;;9765:4;;-1:-1:-1;;;;;9780:13:0;9796:11;9748:8;:60::i;:::-;9845:11;;9831;:25;9823:34;;;;;;9872:13;;:218;;-1:-1:-1;;;9872:218:0;;-1:-1:-1;;;;;9872:13:0;;;;:64;;:218;;9955:11;;9872:13;;10005:4;;10036;;10060:15;;9872:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9490:619;9422:687;;:::o;5930:138::-;-1:-1:-1;;;;;6043:16:0;;5996:7;6043:16;;;:7;:16;;;;;;6023:37;;:19;:37::i;3011:148::-;2924:6;;-1:-1:-1;;;;;2924:6:0;288:10;2924:22;2916:67;;;;-1:-1:-1;;;2916:67:0;;4833:2:1;2916:67:0;;;4815:21:1;;;4852:18;;;4845:30;4911:34;4891:18;;;4884:62;4963:18;;2916:67:0;;;;;;;;;3118:1:::1;3102:6:::0;;3081:40:::1;::::0;-1:-1:-1;;;;;3102:6:0;;::::1;::::0;3081:40:::1;::::0;3118:1;;3081:40:::1;3149:1;3132:19:::0;;-1:-1:-1;;;;;;3132:19:0::1;::::0;;3011:148::o;7842:84::-;2924:6;;-1:-1:-1;;;;;2924:6:0;288:10;2924:22;2916:67;;;;-1:-1:-1;;;2916:67:0;;4833:2:1;2916:67:0;;;4815:21:1;;;4852:18;;;4845:30;4911:34;4891:18;;;4884:62;4963:18;;2916:67:0;4631:356:1;2916:67:0;7896:14:::1;:22:::0;;-1:-1:-1;;7896:22:0::1;::::0;;7842:84::o;6076:167::-;6154:4;6171:42;288:10;6195:9;6206:6;6171:9;:42::i;10117:187::-;10175:21;10211:14;;10207:90;;10250:13;;10242:43;;-1:-1:-1;;;;;10250:13:0;;;;10242:43;;;;;10274:10;;10250:13;10242:43;10250:13;10242:43;10274:10;10250:13;10242:43;;;;;;;;;;;;;;;;;;;;;10207:90;10143:161;10117:187::o;7499:335::-;-1:-1:-1;;;;;7592:19:0;;7584:68;;;;-1:-1:-1;;;7584:68:0;;5194:2:1;7584:68:0;;;5176:21:1;5233:2;5213:18;;;5206:30;5272:34;5252:18;;;5245:62;-1:-1:-1;;;5323:18:1;;;5316:34;5367:19;;7584:68:0;4992:400:1;7584:68:0;-1:-1:-1;;;;;7671:21:0;;7663:68;;;;-1:-1:-1;;;7663:68:0;;5599:2:1;7663:68:0;;;5581:21:1;5638:2;5618:18;;;5611:30;5677:34;5657:18;;;5650:62;-1:-1:-1;;;5728:18:1;;;5721:32;5770:19;;7663:68:0;5397:398:1;7663:68:0;-1:-1:-1;;;;;7742:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7794:32;;1361:25:1;;;7794:32:0;;1334:18:1;7794:32:0;;;;;;;7499:335;;;:::o;7938:1476::-;8021:14;;;;8018:811;;;2835:7;2862:6;-1:-1:-1;;;;;8073:15:0;;;2862:6;;8073:15;;;;:49;;-1:-1:-1;2835:7:0;2862:6;-1:-1:-1;;;;;8109:13:0;;;2862:6;;8109:13;;8073:49;:86;;;;-1:-1:-1;;;;;;8143:16:0;;;;8073:86;:128;;;;-1:-1:-1;;;;;;8180:21:0;;8194:6;8180:21;;8073:128;:158;;;;-1:-1:-1;8223:8:0;;-1:-1:-1;;;8223:8:0;;;;8222:9;8073:158;8051:767;;;8294:11;;-1:-1:-1;;;;;8294:11:0;;;8286:19;;;;8282:521;;8348:11;;8338:6;:21;;8330:87;;;;-1:-1:-1;;;8330:87:0;;6002:2:1;8330:87:0;;;5984:21:1;6041:2;6021:18;;;6014:30;6080:34;6060:18;;;6053:62;-1:-1:-1;;;6131:18:1;;;6124:51;6192:19;;8330:87:0;5800:417:1;8330:87:0;8474:9;;8457:13;8467:2;8457:9;:13::i;:::-;8448:22;;:6;:22;:::i;:::-;:35;;8440:67;;;;-1:-1:-1;;;8440:67:0;;6686:2:1;8440:67:0;;;6668:21:1;6725:2;6705:18;;;6698:30;-1:-1:-1;;;6744:18:1;;;6737:49;6803:18;;8440:67:0;6484:343:1;8440:67:0;8282:521;;;8543:11;;-1:-1:-1;;;;;8543:11:0;;;8537:17;;;;8533:270;;8597:11;;8587:6;:21;;8579:88;;;;-1:-1:-1;;;8579:88:0;;7034:2:1;8579:88:0;;;7016:21:1;7073:2;7053:18;;;7046:30;7112:34;7092:18;;;7085:62;-1:-1:-1;;;7163:18:1;;;7156:52;7225:19;;8579:88:0;6832:418:1;8533:270:0;8750:9;;8733:13;8743:2;8733:9;:13::i;:::-;8724:22;;:6;:22;:::i;:::-;:35;;8716:67;;;;-1:-1:-1;;;8716:67:0;;6686:2:1;8716:67:0;;;6668:21:1;6725:2;6705:18;;;6698:30;-1:-1:-1;;;6744:18:1;;;6737:49;6803:18;;8716:67:0;6484:343:1;8716:67:0;-1:-1:-1;;;;;8874:24:0;;8841:12;8874:24;;;:18;:24;;;;;;8856:4;;8874:24;;;:50;;-1:-1:-1;;;;;;8902:22:0;;;;;;:18;:22;;;;;;;;8874:50;8871:487;;;-1:-1:-1;8951:5:0;8871:487;;;8993:8;;-1:-1:-1;;;8993:8:0;;;;8992:9;:30;;;;-1:-1:-1;9011:11:0;;-1:-1:-1;;;;;9005:17:0;;;9011:11;;9005:17;8992:30;8989:358;;;9043:20;9066:24;9084:4;9066:9;:24::i;:::-;9043:47;-1:-1:-1;9128:16:0;;9125:207;;9169:8;:15;;-1:-1:-1;;;;9169:15:0;-1:-1:-1;;;9169:15:0;;;9207:34;9224:2;9228:12;9207:16;:34::i;:::-;9264:8;:16;;-1:-1:-1;;;;9264:16:0;;;9303:9;:7;:9::i;:::-;9024:323;8989:358;9368:38;9383:4;9388:2;9391:6;9398:7;9368:14;:38::i;:::-;8007:1407;7938:1476;;;:::o;1343:190::-;1429:7;1465:12;1457:6;;;;1449:29;;;;-1:-1:-1;;;1449:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1489:9:0;1501:5;1505:1;1501;:5;:::i;:::-;1489:17;1343:190;-1:-1:-1;;;;;1343:190:0:o;6892:254::-;6959:7;6998;;6987;:18;;6979:73;;;;-1:-1:-1;;;6979:73:0;;7590:2:1;6979:73:0;;;7572:21:1;7629:2;7609:18;;;7602:30;7668:34;7648:18;;;7641:62;-1:-1:-1;;;7719:18:1;;;7712:40;7769:19;;6979:73:0;7388:406:1;6979:73:0;7063:19;7086:10;:8;:10::i;:::-;7063:33;-1:-1:-1;7114:24:0;:7;7063:33;7114:11;:24::i;:::-;7107:31;6892:254;-1:-1:-1;;;6892:254:0:o;10316:263::-;10428:7;10424:40;;10450:14;:12;:14::i;:::-;10475:44;10493:6;10501:9;10512:6;10475:17;:44::i;:::-;10534:7;10530:41;;10556:15;7430;;7420:7;:25;7467:16;;7456:8;:27;7376:115;11920:163;11961:7;11982:15;11999;12018:19;:17;:19::i;:::-;11981:56;;-1:-1:-1;11981:56:0;-1:-1:-1;12055:20:0;11981:56;;12055:11;:20::i;:::-;12048:27;;;;11920:163;:::o;1794:132::-;1852:7;1879:39;1883:1;1886;1879:39;;;;;;;;;;;;;;;;;:3;:39::i;7154:210::-;7200:7;;:12;:29;;;;-1:-1:-1;7216:8:0;;:13;7200:29;7197:41;;;7154:210::o;7197:41::-;7266:7;;;7248:15;:25;7303:8;;;7284:16;:27;-1:-1:-1;7322:11:0;;;;7344:12;7154:210::o;10587:490::-;10686:15;10703:23;10728:12;10742:23;10767:12;10781:13;10798:19;10809:7;10798:10;:19::i;:::-;-1:-1:-1;;;;;10846:15:0;;;;;;:7;:15;;;;;;10685:132;;-1:-1:-1;10685:132:0;;-1:-1:-1;10685:132:0;;-1:-1:-1;10685:132:0;-1:-1:-1;10685:132:0;-1:-1:-1;10685:132:0;-1:-1:-1;10846:28:0;;10685:132;10846:19;:28::i;:::-;-1:-1:-1;;;;;10828:15:0;;;;;;;:7;:15;;;;;;:46;;;;10906:18;;;;;;;:39;;10929:15;10906:22;:39::i;:::-;-1:-1:-1;;;;;10885:18:0;;;;;;:7;:18;;;;;:60;10959:16;10969:5;10959:9;:16::i;:::-;10986:23;10998:4;11004;10986:11;:23::i;:::-;11042:9;-1:-1:-1;;;;;11025:44:0;11034:6;-1:-1:-1;;;;;11025:44:0;;11053:15;11025:44;;;;1361:25:1;;1349:2;1334:18;;1215:177;11025:44:0;;;;;;;;10674:403;;;;;;10587:490;;;:::o;12091:255::-;12188:7;;12141;;;;4370:12;12255:20;12188:7;4370:12;12255:11;:20::i;:::-;12245:7;:30;12242:60;;;-1:-1:-1;;12285:7:0;;;4370:12;;-1:-1:-1;12091:255:0;-1:-1:-1;12091:255:0:o;12242:60::-;12321:7;;12330;;-1:-1:-1;12091:255:0;-1:-1:-1;12091:255:0:o;1934:189::-;2020:7;2055:12;2048:5;2040:28;;;;-1:-1:-1;;;2040:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2079:9:0;2091:5;2095:1;2091;:5;:::i;11085:468::-;11144:7;11153;11162;11171;11180;11189;11210:23;11235:12;11249:13;11266:39;11278:7;11287;;11296:8;;11266:11;:39::i;:::-;11209:96;;;;;;11316:19;11339:10;:8;:10::i;:::-;11316:33;;11361:15;11378:23;11403:12;11419:46;11431:7;11440:4;11446:5;11453:11;11419;:46::i;:::-;11360:105;;-1:-1:-1;11360:105:0;-1:-1:-1;11360:105:0;-1:-1:-1;11516:15:0;;-1:-1:-1;11533:4:0;;-1:-1:-1;11539:5:0;;-1:-1:-1;;;;;11085:468:0;;;;;;;:::o;1199:136::-;1257:7;1284:43;1288:1;1291;1284:43;;;;;;;;;;;;;;;;;:3;:43::i;1012:179::-;1070:7;;1102:5;1106:1;1102;:5;:::i;:::-;1090:17;;1131:1;1126;:6;;1118:46;;;;-1:-1:-1;;;1118:46:0;;8223:2:1;1118:46:0;;;8205:21:1;8262:2;8242:18;;;8235:30;8301:29;8281:18;;;8274:57;8348:18;;1118:46:0;8021:351:1;12771:214:0;12824:19;12847:10;:8;:10::i;:::-;12824:33;-1:-1:-1;12868:13:0;12884:22;:5;12824:33;12884:9;:22::i;:::-;12960:4;12944:22;;;;:7;:22;;;;;;12868:38;;-1:-1:-1;12944:33:0;;12868:38;12944:26;:33::i;:::-;12935:4;12919:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12771:214:0:o;12993:147::-;13071:7;;:17;;13083:4;13071:11;:17::i;:::-;13061:7;:27;13112:10;;:20;;13127:4;13112:14;:20::i;:::-;13099:10;:33;-1:-1:-1;;12993:147:0:o;11561:351::-;11654:7;;;;11707:28;11731:3;11707:19;:7;11719:6;11707:11;:19::i;:::-;:23;;:28::i;:::-;11692:43;-1:-1:-1;11746:13:0;11762:29;11787:3;11762:20;:7;11774;11762:11;:20::i;:29::-;11746:45;-1:-1:-1;11802:23:0;11828:28;11746:45;11828:17;:7;11840:4;11828:11;:17::i;:::-;:21;;:28::i;:::-;11802:54;11892:4;;-1:-1:-1;11898:5:0;;-1:-1:-1;11561:351:0;;-1:-1:-1;;;;;11561:351:0:o;12354:409::-;12464:7;;;;12520:24;:7;12532:11;12520;:24::i;:::-;12502:42;-1:-1:-1;12555:12:0;12570:21;:4;12579:11;12570:8;:21::i;:::-;12555:36;-1:-1:-1;12602:13:0;12618:22;:5;12628:11;12618:9;:22::i;:::-;12602:38;-1:-1:-1;12651:23:0;12677:28;12602:38;12677:17;:7;12689:4;12677:11;:17::i;:28::-;12724:7;;;;-1:-1:-1;12750:4:0;;-1:-1:-1;12354:409:0;;-1:-1:-1;;;;;;;12354:409:0:o;1541:245::-;1599:7;1622:1;1627;1622:6;1619:46;;-1:-1:-1;1652:1:0;1645:8;;1619:46;1675:9;1687:5;1691:1;1687;:5;:::i;:::-;1675:17;-1:-1:-1;1720:1:0;1711:5;1715:1;1675:17;1711:5;:::i;:::-;:10;1703:56;;;;-1:-1:-1;;;1703:56:0;;8752:2:1;1703:56:0;;;8734:21:1;8791:2;8771:18;;;8764:30;8830:34;8810:18;;;8803:62;-1:-1:-1;;;8881:18:1;;;8874:31;8922:19;;1703:56:0;8550:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2733:388::-;2801:6;2809;2862:2;2850:9;2841:7;2837:23;2833:32;2830:52;;;2878:1;2875;2868:12;2830:52;2917:9;2904:23;2936:31;2961:5;2936:31;:::i;:::-;2986:5;-1:-1:-1;3043:2:1;3028:18;;3015:32;3056:33;3015:32;3056:33;:::i;:::-;3108:7;3098:17;;;2733:388;;;;;:::o;3258:127::-;3319:10;3314:3;3310:20;3307:1;3300:31;3350:4;3347:1;3340:15;3374:4;3371:1;3364:15;3390:251;3460:6;3513:2;3501:9;3492:7;3488:23;3484:32;3481:52;;;3529:1;3526;3519:12;3481:52;3561:9;3555:16;3580:31;3605:5;3580:31;:::i;3646:980::-;3908:4;3956:3;3945:9;3941:19;3987:6;3976:9;3969:25;4013:2;4051:6;4046:2;4035:9;4031:18;4024:34;4094:3;4089:2;4078:9;4074:18;4067:31;4118:6;4153;4147:13;4184:6;4176;4169:22;4222:3;4211:9;4207:19;4200:26;;4261:2;4253:6;4249:15;4235:29;;4282:1;4292:195;4306:6;4303:1;4300:13;4292:195;;;4371:13;;-1:-1:-1;;;;;4367:39:1;4355:52;;4462:15;;;;4427:12;;;;4403:1;4321:9;4292:195;;;-1:-1:-1;;;;;;;4543:32:1;;;;4538:2;4523:18;;4516:60;-1:-1:-1;;;4607:3:1;4592:19;4585:35;4504:3;3646:980;-1:-1:-1;;;3646:980:1:o;6222:127::-;6283:10;6278:3;6274:20;6271:1;6264:31;6314:4;6311:1;6304:15;6338:4;6335:1;6328:15;6354:125;6419:9;;;6440:10;;;6437:36;;;6453:18;;:::i;7255:128::-;7322:9;;;7343:11;;;7340:37;;;7357:18;;:::i;7799:217::-;7839:1;7865;7855:132;;7909:10;7904:3;7900:20;7897:1;7890:31;7944:4;7941:1;7934:15;7972:4;7969:1;7962:15;7855:132;-1:-1:-1;8001:9:1;;7799:217::o;8377:168::-;8450:9;;;8481;;8498:15;;;8492:22;;8478:37;8468:71;;8519:18;;:::i

Swarm Source

ipfs://488cc1374bcf4b779e8450c4fc38adc325b91a78e789d80de87b8ccc07a2e7e5
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.