ETH Price: $3,330.60 (-1.31%)
Gas: 9 Gwei

Token

TensorHash AI (THASH)
 

Overview

Max Total Supply

1,000,000,000 THASH

Holders

170

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
666,721.459339292 THASH

Value
$0.00
0x51db2776df24190d615745edbf499113aec6e351
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:
TensorHashAI

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-13
*/

//SPDX-License-Identifier: MIT

/*
    Website: https://www.tensorhashai.cloud/
    Telegram: https://t.me/tensorhashai
    Twitter/X: https://twitter.com/TensorHashAI
    Whitepaper: https://ai-dag.b-cdn.net/TensorHash%20AI%20Whitepaper.pdf
    Telegram Bot: https://t.me/tensorhashai_bot

    Gain a share in mining leading BlockDAG protocols No hardware, GPU or maintenance requirements Enhanced Efficiency with advanced AI-driven algorithms Sustainable eco-friendly practices.
    First project to partner up with BlockDAG protocol based blockchains like SEDRA and NHASH to mine and generate revenue for the holders.
    Learn more about them:
    $SEDRA - https://sedracoin.com/
    $NHASH - https://nhash.net/
 */
pragma solidity 0.8.24;

abstract contract Ownable {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    modifier onlyOwner() {
        require(msg.sender == _owner, "Only owner can call this");
        _;
    }

    constructor(address creatorOwner) {
        _owner = creatorOwner;
    }

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

    function transferOwnership(address payable newowner) external onlyOwner {
        _owner = newowner;
        emit OwnershipTransferred(newowner);
    }

    function renounceOwnership() external onlyOwner {
        _owner = address(0);
        emit OwnershipTransferred(address(0));
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address holder,
        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 TensorHashAI is IERC20, Ownable {
    string private constant _symbol = "THASH";
    string private constant _name = "TensorHash AI";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 1e9 * (10 ** _decimals);

    address payable public _marketingWallet;

    uint8 private _sellTaxrate = 25;
    uint8 private _buyTaxrate = 40;

    uint256 public _maxWalletVal = _totalSupply;
    uint256 public _swapMin = _totalSupply / 1000;
    uint256 public _swapMax = _totalSupply / 200;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _nofee;

    address private constant _swapRouterAddress =
        address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private immutable WETH;

    IUniswapV2Router02 private _primarySwapRouter =
        IUniswapV2Router02(_swapRouterAddress);
    address private _uniswapPair;
    bool private _tradingOpen;

    bool private _inSwap = false;
    modifier lockTaxSwap() {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    constructor() Ownable(msg.sender) {
        WETH = _primarySwapRouter.WETH();

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);

        _nofee[_owner] = true;
        _nofee[address(this)] = true;
        _nofee[_swapRouterAddress] = true;
        _maxWalletVal = _totalSupply / 50;
        _marketingWallet = payable(msg.sender);
        _uniswapPair = IUniswapV2Factory(_primarySwapRouter.factory())
            .createPair(address(this), WETH);
    }

    receive() external payable {}

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

    function totalSupply() external pure override returns (uint256) {
        return _totalSupply;
    }

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

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

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(
        address toWallet,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, toWallet, amount);
    }

    function transferFrom(
        address fromWallet,
        address toWallet,
        uint256 amount
    ) external override returns (bool) {
        _allowances[fromWallet][msg.sender] -= amount;
        return _transferFrom(fromWallet, toWallet, amount);
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if (_allowances[address(this)][_swapRouterAddress] < _tokenAmount) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }

    function enableTrading() external onlyOwner {
        _tradingOpen = true;
    }

    function _transferFrom(
        address sender,
        address toWallet,
        uint256 amount
    ) internal returns (bool) {
        if (!_nofee[sender] && !_nofee[toWallet]) {
            require(_tradingOpen, "Trading not yet open");
            if (!_inSwap && toWallet == _uniswapPair) {
                _swapTaxAndLiquify();
            }
            require(_checkLimits(toWallet, amount), "TX over limits");
        }

        uint256 _taxAmount = _calculateTax(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        _balances[toWallet] += _transferAmount;
        _balances[address(this)] += _taxAmount;
        emit Transfer(sender, toWallet, _transferAmount);
        emit Transfer(sender, address(this), _taxAmount);
        return true;
    }

    function _checkLimits(
        address toWallet,
        uint256 transferAmount
    ) internal view returns (bool) {
        if (
            toWallet != _uniswapPair &&
            (_balances[toWallet] + transferAmount > _maxWalletVal)
        ) {
            return false;
        }
        return true;
    }

    function _calculateTax(
        address fromWallet,
        address recipient,
        uint256 amount
    ) internal view returns (uint256) {
        uint256 taxAmount;

        if (_nofee[fromWallet] || _nofee[recipient]) {
            taxAmount = 0;
        } else if (fromWallet == _uniswapPair) {
            taxAmount = (amount * _buyTaxrate) / 100;
        } else if (recipient == _uniswapPair) {
            taxAmount = (amount * _sellTaxrate) / 100;
        }

        return taxAmount;
    }

    function setExemptions(address wlt, bool noFees) external onlyOwner {
        _nofee[wlt] = noFees;
    }

    function buyFee() external view returns (uint8) {
        return _buyTaxrate;
    }

    function sellFee() external view returns (uint8) {
        return _sellTaxrate;
    }

    function setFees(uint8 buyFees, uint8 sellFees) external onlyOwner {
        require(buyFees <= 30 && sellFees <= 30, "Roundtrip too high");
        _buyTaxrate = buyFees;
        _sellTaxrate = sellFees;
    }

    function updateMarketingWallet(address marketingWlt) external onlyOwner {
        _marketingWallet = payable(marketingWlt);
    }

    function setMaxWallet(uint newMaxWalletValue) external onlyOwner {
        _maxWalletVal = newMaxWalletValue;
    }

    function setTaxSwaps(uint32 minVal, uint32 maxVal) external onlyOwner {
        _swapMin = minVal;
        _swapMax = maxVal;
        require(_swapMax >= _swapMin, "Min-Max error");
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokenAvailable = balanceOf(address(this));
        if (_taxTokenAvailable >= _swapMin) {
            if (_taxTokenAvailable >= _swapMax) {
                _taxTokenAvailable = _swapMax;
            }
            _swapTaxTokensForEth(_taxTokenAvailable);
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            _marketingWallet,
            block.timestamp
        );
    }

    function airdropWallets(
        address[] calldata wallets,
        uint256[] calldata amounts
    ) external onlyOwner {
        require(wallets.length == amounts.length);
        uint total = 0;
        for (uint256 i = 0; i < wallets.length; i++) {
            _balances[wallets[i]] += amounts[i];
            total += amounts[i];
            emit Transfer(msg.sender, wallets[i], amounts[i]);
        }
        _balances[msg.sender] -= total;
    }
}

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

    function WETH() external pure returns (address);

    function factory() external pure returns (address);
}

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

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":false,"internalType":"address","name":"_owner","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":"_marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletVal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wlt","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"}],"name":"setExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFees","type":"uint8"},{"internalType":"uint8","name":"sellFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletValue","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minVal","type":"uint32"},{"internalType":"uint32","name":"maxVal","type":"uint32"}],"name":"setTaxSwaps","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":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fromWallet","type":"address"},{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newowner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWlt","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526001805461ffff60a01b191661281960a01b179055620000276009600a6200049e565b6200003790633b9aca00620004b5565b6002556103e86200004b6009600a6200049e565b6200005b90633b9aca00620004b5565b620000679190620004cf565b60035560c86200007a6009600a6200049e565b6200008a90633b9aca00620004b5565b620000969190620004cf565b600455600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556009805460ff60a81b19169055348015620000d8575f80fd5b505f80546001600160a01b03191633179055600854604080516315ab88c960e31b815290516001600160a01b03929092169163ad5c4648916004808201926020929091908290030181865afa15801562000134573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015a9190620004ef565b6001600160a01b0316608052620001746009600a6200049e565b6200018490633b9aca00620004b5565b335f81815260056020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35f80546001600160a01b03168152600760205260408082208054600160ff1991821681179092553084529183208054831682179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527ffd21a1ac9a14dff647460ce8ad2ccecb794a59a4cfbb8678b1f9900a6a99551f805490911690911790556032620002536009600a6200049e565b6200026390633b9aca00620004b5565b6200026f9190620004cf565b600255600180546001600160a01b031916331790556008546040805163c45a015560e01b815290516001600160a01b03929092169163c45a0155916004808201926020929091908290030181865afa158015620002ce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f49190620004ef565b6080516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303815f875af115801562000343573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003699190620004ef565b600980546001600160a01b0319166001600160a01b039290921691909117905562000517565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003e357815f1904821115620003c757620003c76200038f565b80851615620003d557918102915b93841c9390800290620003a8565b509250929050565b5f82620003fb5750600162000498565b816200040957505f62000498565b81600181146200042257600281146200042d576200044d565b600191505062000498565b60ff8411156200044157620004416200038f565b50506001821b62000498565b5060208310610133831016604e8410600b841016171562000472575081810a62000498565b6200047e8383620003a3565b805f19048211156200049457620004946200038f565b0290505b92915050565b5f620004ae60ff841683620003eb565b9392505050565b80820281158282048414176200049857620004986200038f565b5f82620004ea57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000500575f80fd5b81516001600160a01b0381168114620004ae575f80fd5b6080516114d4620005305f395f610ea301526114d45ff3fe608060405260043610610164575f3560e01c8063715018a6116100cd578063aacebbe311610087578063e710794711610062578063e71079471461045c578063ef5916311461047b578063f2fde38b1461049a578063f3287a1f146104b9575f80fd5b8063aacebbe3146103e4578063bff4be3014610403578063dd62ed3e14610418575f80fd5b8063715018a6146103215780638a8c523c146103355780638da5cb5b1461034957806395d89b4114610379578063962dfc75146103a6578063a9059cbb146103c5575f80fd5b80633c930c011161011e5780633c930c0114610265578063470624021461027a5780634fcd2446146102985780635d0044ca146102b95780636d7272a3146102d857806370a08231146102ed575f80fd5b806306fdde031461016f578063095ea7b3146101b657806318160ddd146101e557806323b872dd146102075780632b14ca5614610226578063313ce56714610252575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600d81526c54656e736f724861736820414960981b60208201525b6040516101ad9190610ff3565b60405180910390f35b3480156101c1575f80fd5b506101d56101d0366004611053565b6104d8565b60405190151581526020016101ad565b3480156101f0575f80fd5b506101f9610544565b6040519081526020016101ad565b348015610212575f80fd5b506101d561022136600461107d565b610564565b348015610231575f80fd5b50600154600160a01b900460ff165b60405160ff90911681526020016101ad565b34801561025d575f80fd5b506009610240565b348015610270575f80fd5b506101f960035481565b348015610285575f80fd5b50600154600160a81b900460ff16610240565b3480156102a3575f80fd5b506102b76102b23660046110d0565b6105b1565b005b3480156102c4575f80fd5b506102b76102d3366004611101565b610670565b3480156102e3575f80fd5b506101f960025481565b3480156102f8575f80fd5b506101f9610307366004611118565b6001600160a01b03165f9081526005602052604090205490565b34801561032c575f80fd5b506102b761069e565b348015610340575f80fd5b506102b761070b565b348015610354575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101ad565b348015610384575f80fd5b506040805180820190915260058152640a89082a6960db1b60208201526101a0565b3480156103b1575f80fd5b50600154610361906001600160a01b031681565b3480156103d0575f80fd5b506101d56103df366004611053565b610749565b3480156103ef575f80fd5b506102b76103fe366004611118565b61075c565b34801561040e575f80fd5b506101f960045481565b348015610423575f80fd5b506101f9610432366004611133565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b348015610467575f80fd5b506102b76104763660046111b2565b6107a7565b348015610486575f80fd5b506102b7610495366004611219565b610937565b3480156104a5575f80fd5b506102b76104b4366004611118565b61098a565b3480156104c4575f80fd5b506102b76104d336600461125c565b610a06565b335f8181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105329086815260200190565b60405180910390a35060015b92915050565b5f6105516009600a611378565b61055f90633b9aca00611386565b905090565b6001600160a01b0383165f90815260066020908152604080832033845290915281208054839190839061059890849061139d565b909155506105a99050848484610a86565b949350505050565b5f546001600160a01b031633146105e35760405162461bcd60e51b81526004016105da906113b0565b60405180910390fd5b601e8260ff16111580156105fb5750601e8160ff1611155b61063c5760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016105da565b6001805461ffff60a01b1916600160a81b60ff9485160260ff60a01b191617600160a01b9290931691909102919091179055565b5f546001600160a01b031633146106995760405162461bcd60e51b81526004016105da906113b0565b600255565b5f546001600160a01b031633146106c75760405162461bcd60e51b81526004016105da906113b0565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107345760405162461bcd60e51b81526004016105da906113b0565b6009805460ff60a01b1916600160a01b179055565b5f610755338484610a86565b9392505050565b5f546001600160a01b031633146107855760405162461bcd60e51b81526004016105da906113b0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146107d05760405162461bcd60e51b81526004016105da906113b0565b8281146107db575f80fd5b5f805b8481101561090c578383828181106107f8576107f86113e7565b9050602002013560055f888885818110610814576108146113e7565b90506020020160208101906108299190611118565b6001600160a01b03166001600160a01b031681526020019081526020015f205f82825461085691906113fb565b90915550849050838281811061086e5761086e6113e7565b905060200201358261088091906113fb565b9150858582818110610894576108946113e7565b90506020020160208101906108a99190611118565b6001600160a01b0316337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8686858181106108e6576108e66113e7565b905060200201356040516108fc91815260200190565b60405180910390a36001016107de565b50335f908152600560205260408120805483929061092b90849061139d565b90915550505050505050565b5f546001600160a01b031633146109605760405162461bcd60e51b81526004016105da906113b0565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109b35760405162461bcd60e51b81526004016105da906113b0565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f546001600160a01b03163314610a2f5760405162461bcd60e51b81526004016105da906113b0565b63ffffffff808316600381905590821660048190551015610a825760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b60448201526064016105da565b5050565b6001600160a01b0383165f9081526007602052604081205460ff16158015610ac657506001600160a01b0383165f9081526007602052604090205460ff16155b15610b9657600954600160a01b900460ff16610b1b5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b60448201526064016105da565b600954600160a81b900460ff16158015610b4257506009546001600160a01b038481169116145b15610b4f57610b4f610cca565b610b598383610d1e565b610b965760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b60448201526064016105da565b5f610ba2858585610d76565b90505f610baf828561139d565b6001600160a01b0387165f90815260056020526040812080549293508692909190610bdb90849061139d565b90915550506001600160a01b0385165f9081526005602052604081208054839290610c079084906113fb565b9091555050305f9081526005602052604081208054849290610c2a9084906113fb565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c7691815260200190565b60405180910390a360405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600195945050505050565b6009805460ff60a81b1916600160a81b179055305f9081526005602052604081205490506003548110610d0e576004548110610d0557506004545b610d0e81610e45565b506009805460ff60a81b19169055565b6009545f906001600160a01b03848116911614801590610d6157506002546001600160a01b0384165f90815260056020526040902054610d5f9084906113fb565b115b15610d6d57505f61053e565b50600192915050565b6001600160a01b0383165f90815260076020526040812054819060ff1680610db557506001600160a01b0384165f9081526007602052604090205460ff165b15610dc157505f6105a9565b6009546001600160a01b0390811690861603610e0257600154606490610df190600160a81b900460ff1685611386565b610dfb919061140e565b90506105a9565b6009546001600160a01b03908116908516036105a957600154606490610e3290600160a01b900460ff1685611386565b610e3c919061140e565b95945050505050565b610e4e81610f51565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e8157610e816113e7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610ed557610ed56113e7565b6001600160a01b03928316602091820292909201015260085460015460405163791ac94760e01b81529183169263791ac94792610f209287925f92889290911690429060040161142d565b5f604051808303815f87803b158015610f37575f80fd5b505af1158015610f49573d5f803e3d5ffd5b505050505050565b305f908152600660209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115610ff057305f818152600660209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b5f602080835283518060208501525f5b8181101561101f57858101830151858201604001528201611003565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ff0575f80fd5b5f8060408385031215611064575f80fd5b823561106f8161103f565b946020939093013593505050565b5f805f6060848603121561108f575f80fd5b833561109a8161103f565b925060208401356110aa8161103f565b929592945050506040919091013590565b803560ff811681146110cb575f80fd5b919050565b5f80604083850312156110e1575f80fd5b6110ea836110bb565b91506110f8602084016110bb565b90509250929050565b5f60208284031215611111575f80fd5b5035919050565b5f60208284031215611128575f80fd5b81356107558161103f565b5f8060408385031215611144575f80fd5b823561114f8161103f565b9150602083013561115f8161103f565b809150509250929050565b5f8083601f84011261117a575f80fd5b50813567ffffffffffffffff811115611191575f80fd5b6020830191508360208260051b85010111156111ab575f80fd5b9250929050565b5f805f80604085870312156111c5575f80fd5b843567ffffffffffffffff808211156111dc575f80fd5b6111e88883890161116a565b90965094506020870135915080821115611200575f80fd5b5061120d8782880161116a565b95989497509550505050565b5f806040838503121561122a575f80fd5b82356112358161103f565b91506020830135801515811461115f575f80fd5b803563ffffffff811681146110cb575f80fd5b5f806040838503121561126d575f80fd5b61127683611249565b91506110f860208401611249565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156112d257815f19048211156112b8576112b8611284565b808516156112c557918102915b93841c939080029061129d565b509250929050565b5f826112e85750600161053e565b816112f457505f61053e565b816001811461130a576002811461131457611330565b600191505061053e565b60ff84111561132557611325611284565b50506001821b61053e565b5060208310610133831016604e8410600b8410161715611353575081810a61053e565b61135d8383611298565b805f190482111561137057611370611284565b029392505050565b5f61075560ff8416836112da565b808202811582820484141761053e5761053e611284565b8181038181111561053e5761053e611284565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561053e5761053e611284565b5f8261142857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561147d5784516001600160a01b031683529383019391830191600101611458565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dffe507aa711fafb27127d90af59b5c59a87d525a30d639fb3c5930aa367552b64736f6c63430008180033

Deployed Bytecode

0x608060405260043610610164575f3560e01c8063715018a6116100cd578063aacebbe311610087578063e710794711610062578063e71079471461045c578063ef5916311461047b578063f2fde38b1461049a578063f3287a1f146104b9575f80fd5b8063aacebbe3146103e4578063bff4be3014610403578063dd62ed3e14610418575f80fd5b8063715018a6146103215780638a8c523c146103355780638da5cb5b1461034957806395d89b4114610379578063962dfc75146103a6578063a9059cbb146103c5575f80fd5b80633c930c011161011e5780633c930c0114610265578063470624021461027a5780634fcd2446146102985780635d0044ca146102b95780636d7272a3146102d857806370a08231146102ed575f80fd5b806306fdde031461016f578063095ea7b3146101b657806318160ddd146101e557806323b872dd146102075780632b14ca5614610226578063313ce56714610252575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600d81526c54656e736f724861736820414960981b60208201525b6040516101ad9190610ff3565b60405180910390f35b3480156101c1575f80fd5b506101d56101d0366004611053565b6104d8565b60405190151581526020016101ad565b3480156101f0575f80fd5b506101f9610544565b6040519081526020016101ad565b348015610212575f80fd5b506101d561022136600461107d565b610564565b348015610231575f80fd5b50600154600160a01b900460ff165b60405160ff90911681526020016101ad565b34801561025d575f80fd5b506009610240565b348015610270575f80fd5b506101f960035481565b348015610285575f80fd5b50600154600160a81b900460ff16610240565b3480156102a3575f80fd5b506102b76102b23660046110d0565b6105b1565b005b3480156102c4575f80fd5b506102b76102d3366004611101565b610670565b3480156102e3575f80fd5b506101f960025481565b3480156102f8575f80fd5b506101f9610307366004611118565b6001600160a01b03165f9081526005602052604090205490565b34801561032c575f80fd5b506102b761069e565b348015610340575f80fd5b506102b761070b565b348015610354575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101ad565b348015610384575f80fd5b506040805180820190915260058152640a89082a6960db1b60208201526101a0565b3480156103b1575f80fd5b50600154610361906001600160a01b031681565b3480156103d0575f80fd5b506101d56103df366004611053565b610749565b3480156103ef575f80fd5b506102b76103fe366004611118565b61075c565b34801561040e575f80fd5b506101f960045481565b348015610423575f80fd5b506101f9610432366004611133565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b348015610467575f80fd5b506102b76104763660046111b2565b6107a7565b348015610486575f80fd5b506102b7610495366004611219565b610937565b3480156104a5575f80fd5b506102b76104b4366004611118565b61098a565b3480156104c4575f80fd5b506102b76104d336600461125c565b610a06565b335f8181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105329086815260200190565b60405180910390a35060015b92915050565b5f6105516009600a611378565b61055f90633b9aca00611386565b905090565b6001600160a01b0383165f90815260066020908152604080832033845290915281208054839190839061059890849061139d565b909155506105a99050848484610a86565b949350505050565b5f546001600160a01b031633146105e35760405162461bcd60e51b81526004016105da906113b0565b60405180910390fd5b601e8260ff16111580156105fb5750601e8160ff1611155b61063c5760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016105da565b6001805461ffff60a01b1916600160a81b60ff9485160260ff60a01b191617600160a01b9290931691909102919091179055565b5f546001600160a01b031633146106995760405162461bcd60e51b81526004016105da906113b0565b600255565b5f546001600160a01b031633146106c75760405162461bcd60e51b81526004016105da906113b0565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107345760405162461bcd60e51b81526004016105da906113b0565b6009805460ff60a01b1916600160a01b179055565b5f610755338484610a86565b9392505050565b5f546001600160a01b031633146107855760405162461bcd60e51b81526004016105da906113b0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146107d05760405162461bcd60e51b81526004016105da906113b0565b8281146107db575f80fd5b5f805b8481101561090c578383828181106107f8576107f86113e7565b9050602002013560055f888885818110610814576108146113e7565b90506020020160208101906108299190611118565b6001600160a01b03166001600160a01b031681526020019081526020015f205f82825461085691906113fb565b90915550849050838281811061086e5761086e6113e7565b905060200201358261088091906113fb565b9150858582818110610894576108946113e7565b90506020020160208101906108a99190611118565b6001600160a01b0316337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8686858181106108e6576108e66113e7565b905060200201356040516108fc91815260200190565b60405180910390a36001016107de565b50335f908152600560205260408120805483929061092b90849061139d565b90915550505050505050565b5f546001600160a01b031633146109605760405162461bcd60e51b81526004016105da906113b0565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109b35760405162461bcd60e51b81526004016105da906113b0565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f546001600160a01b03163314610a2f5760405162461bcd60e51b81526004016105da906113b0565b63ffffffff808316600381905590821660048190551015610a825760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b60448201526064016105da565b5050565b6001600160a01b0383165f9081526007602052604081205460ff16158015610ac657506001600160a01b0383165f9081526007602052604090205460ff16155b15610b9657600954600160a01b900460ff16610b1b5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b60448201526064016105da565b600954600160a81b900460ff16158015610b4257506009546001600160a01b038481169116145b15610b4f57610b4f610cca565b610b598383610d1e565b610b965760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b60448201526064016105da565b5f610ba2858585610d76565b90505f610baf828561139d565b6001600160a01b0387165f90815260056020526040812080549293508692909190610bdb90849061139d565b90915550506001600160a01b0385165f9081526005602052604081208054839290610c079084906113fb565b9091555050305f9081526005602052604081208054849290610c2a9084906113fb565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c7691815260200190565b60405180910390a360405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600195945050505050565b6009805460ff60a81b1916600160a81b179055305f9081526005602052604081205490506003548110610d0e576004548110610d0557506004545b610d0e81610e45565b506009805460ff60a81b19169055565b6009545f906001600160a01b03848116911614801590610d6157506002546001600160a01b0384165f90815260056020526040902054610d5f9084906113fb565b115b15610d6d57505f61053e565b50600192915050565b6001600160a01b0383165f90815260076020526040812054819060ff1680610db557506001600160a01b0384165f9081526007602052604090205460ff165b15610dc157505f6105a9565b6009546001600160a01b0390811690861603610e0257600154606490610df190600160a81b900460ff1685611386565b610dfb919061140e565b90506105a9565b6009546001600160a01b03908116908516036105a957600154606490610e3290600160a01b900460ff1685611386565b610e3c919061140e565b95945050505050565b610e4e81610f51565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e8157610e816113e7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610ed557610ed56113e7565b6001600160a01b03928316602091820292909201015260085460015460405163791ac94760e01b81529183169263791ac94792610f209287925f92889290911690429060040161142d565b5f604051808303815f87803b158015610f37575f80fd5b505af1158015610f49573d5f803e3d5ffd5b505050505050565b305f908152600660209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115610ff057305f818152600660209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b5f602080835283518060208501525f5b8181101561101f57858101830151858201604001528201611003565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ff0575f80fd5b5f8060408385031215611064575f80fd5b823561106f8161103f565b946020939093013593505050565b5f805f6060848603121561108f575f80fd5b833561109a8161103f565b925060208401356110aa8161103f565b929592945050506040919091013590565b803560ff811681146110cb575f80fd5b919050565b5f80604083850312156110e1575f80fd5b6110ea836110bb565b91506110f8602084016110bb565b90509250929050565b5f60208284031215611111575f80fd5b5035919050565b5f60208284031215611128575f80fd5b81356107558161103f565b5f8060408385031215611144575f80fd5b823561114f8161103f565b9150602083013561115f8161103f565b809150509250929050565b5f8083601f84011261117a575f80fd5b50813567ffffffffffffffff811115611191575f80fd5b6020830191508360208260051b85010111156111ab575f80fd5b9250929050565b5f805f80604085870312156111c5575f80fd5b843567ffffffffffffffff808211156111dc575f80fd5b6111e88883890161116a565b90965094506020870135915080821115611200575f80fd5b5061120d8782880161116a565b95989497509550505050565b5f806040838503121561122a575f80fd5b82356112358161103f565b91506020830135801515811461115f575f80fd5b803563ffffffff811681146110cb575f80fd5b5f806040838503121561126d575f80fd5b61127683611249565b91506110f860208401611249565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156112d257815f19048211156112b8576112b8611284565b808516156112c557918102915b93841c939080029061129d565b509250929050565b5f826112e85750600161053e565b816112f457505f61053e565b816001811461130a576002811461131457611330565b600191505061053e565b60ff84111561132557611325611284565b50506001821b61053e565b5060208310610133831016604e8410600b8410161715611353575081810a61053e565b61135d8383611298565b805f190482111561137057611370611284565b029392505050565b5f61075560ff8416836112da565b808202811582820484141761053e5761053e611284565b8181038181111561053e5761053e611284565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561053e5761053e611284565b5f8261142857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561147d5784516001600160a01b031683529383019391830191600101611458565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dffe507aa711fafb27127d90af59b5c59a87d525a30d639fb3c5930aa367552b64736f6c63430008180033

Deployed Bytecode Sourcemap

2456:7572:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4426:94;;;;;;;;;;-1:-1:-1;4507:5:0;;;;;;;;;;;;-1:-1:-1;;;4507:5:0;;;;4426:94;;;;;;;:::i;:::-;;;;;;;;4941:241;;;;;;;;;;-1:-1:-1;4941:241:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4941:241:0;1023:187:1;4316:102:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;4316:102:0;1215:177:1;5377:268:0;;;;;;;;;;-1:-1:-1;5377:268:0;;;;;:::i;:::-;;:::i;7987:87::-;;;;;;;;;;-1:-1:-1;8054:12:0;;-1:-1:-1;;;8054:12:0;;;;7987:87;;;2030:4:1;2018:17;;;2000:36;;1988:2;1973:18;7987:87:0;1858:184:1;4214:94:0;;;;;;;;;;-1:-1:-1;2641:1:0;4214:94;;2896:45;;;;;;;;;;;;;;;;7894:85;;;;;;;;;;-1:-1:-1;7960:11:0;;-1:-1:-1;;;7960:11:0;;;;7894:85;;8082:214;;;;;;;;;;-1:-1:-1;8082:214:0;;;;;:::i;:::-;;:::i;:::-;;8443:117;;;;;;;;;;-1:-1:-1;8443:117:0;;;;;:::i;:::-;;:::i;2846:43::-;;;;;;;;;;;;;;;;4634:119;;;;;;;;;;-1:-1:-1;4634:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;4727:18:0;4700:7;4727:18;;;:9;:18;;;;;;;4634:119;1322:134;;;;;;;;;;;;;:::i;5976:82::-;;;;;;;;;;;;;:::i;1073:79::-;;;;;;;;;;-1:-1:-1;1111:7:0;1138:6;-1:-1:-1;;;;;1138:6:0;1073:79;;;-1:-1:-1;;;;;3066:32:1;;;3048:51;;3036:2;3021:18;1073:79:0;2902:203:1;4528:98:0;;;;;;;;;;-1:-1:-1;4611:7:0;;;;;;;;;;;;-1:-1:-1;;;4611:7:0;;;;4528:98;;2721:39;;;;;;;;;;-1:-1:-1;2721:39:0;;;;-1:-1:-1;;;;;2721:39:0;;;5190:179;;;;;;;;;;-1:-1:-1;5190:179:0;;;;;:::i;:::-;;:::i;8304:131::-;;;;;;;;;;-1:-1:-1;8304:131:0;;;;;:::i;:::-;;:::i;2948:44::-;;;;;;;;;;;;;;;;4761:172;;;;;;;;;;-1:-1:-1;4761:172:0;;;;;:::i;:::-;-1:-1:-1;;;;;4897:19:0;;;4870:7;4897:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;4761:172;9560:465;;;;;;;;;;-1:-1:-1;9560:465:0;;;;;:::i;:::-;;:::i;7779:107::-;;;;;;;;;;-1:-1:-1;7779:107:0;;;;;:::i;:::-;;:::i;1160:154::-;;;;;;;;;;-1:-1:-1;1160:154:0;;;;;:::i;:::-;;:::i;8568:191::-;;;;;;;;;;-1:-1:-1;8568:191:0;;;;;:::i;:::-;;:::i;4941:241::-;5070:10;5041:4;5058:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5058:32:0;;;;;;;;;;:41;;;5115:37;5041:4;;5058:32;;5115:37;;;;5093:6;1361:25:1;;1349:2;1334:18;;1215:177;5115:37:0;;;;;;;;-1:-1:-1;5170:4:0;4941:241;;;;;:::o;4316:102::-;4371:7;2696:15;2641:1;2696:2;:15;:::i;:::-;2689:23;;:3;:23;:::i;:::-;4391:19;;4316:102;:::o;5377:268::-;-1:-1:-1;;;;;5531:23:0;;5514:4;5531:23;;;:11;:23;;;;;;;;5555:10;5531:35;;;;;;;:45;;5570:6;;5531:35;5514:4;;5531:45;;5570:6;;5531:45;:::i;:::-;;;;-1:-1:-1;5594:43:0;;-1:-1:-1;5608:10:0;5620:8;5630:6;5594:13;:43::i;:::-;5587:50;5377:268;-1:-1:-1;;;;5377:268:0:o;8082:214::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;;;;;;;;;8179:2:::1;8168:7;:13;;;;:31;;;;;8197:2;8185:8;:14;;;;8168:31;8160:62;;;::::0;-1:-1:-1;;;8160:62:0;;8357:2:1;8160:62:0::1;::::0;::::1;8339:21:1::0;8396:2;8376:18;;;8369:30;-1:-1:-1;;;8415:18:1;;;8408:48;8473:18;;8160:62:0::1;8155:342:1::0;8160:62:0::1;8233:11;:21:::0;;-1:-1:-1;;;;8265:23:0;-1:-1:-1;;;8233:21:0::1;::::0;;::::1;;-1:-1:-1::0;;;;8265:23:0;;-1:-1:-1;;;8265:23:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8082:214::o;8443:117::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;8519:13:::1;:33:::0;8443:117::o;1322:134::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;1398:1:::1;1381:19:::0;;-1:-1:-1;;;;;;1381:19:0::1;::::0;;1416:32:::1;::::0;3048:51:1;;;1416:32:0::1;::::0;3036:2:1;3021:18;1416:32:0::1;;;;;;;1322:134::o:0;5976:82::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;6031:12:::1;:19:::0;;-1:-1:-1;;;;6031:19:0::1;-1:-1:-1::0;;;6031:19:0::1;::::0;;5976:82::o;5190:179::-;5294:4;5318:43;5332:10;5344:8;5354:6;5318:13;:43::i;:::-;5311:50;5190:179;-1:-1:-1;;;5190:179:0:o;8304:131::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;8387:16:::1;:40:::0;;-1:-1:-1;;;;;;8387:40:0::1;-1:-1:-1::0;;;;;8387:40:0;;;::::1;::::0;;;::::1;::::0;;8304:131::o;9560:465::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;9703:32;;::::1;9695:41;;;::::0;::::1;;9747:10;9777:9:::0;9772:205:::1;9792:18:::0;;::::1;9772:205;;;9857:7;;9865:1;9857:10;;;;;;;:::i;:::-;;;;;;;9832:9;:21;9842:7;;9850:1;9842:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9832:21:0::1;-1:-1:-1::0;;;;;9832:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;9891:7:0;;-1:-1:-1;9891:7:0;9899:1;9891:10;;::::1;;;;;:::i;:::-;;;;;;;9882:19;;;;;:::i;:::-;;;9942:7;;9950:1;9942:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9921:44:0::1;9930:10;9921:44;9954:7:::0;;9962:1;9954:10;;::::1;;;;;:::i;:::-;;;;;;;9921:44;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;9921:44:0::1;;;;;;;;9812:3;;9772:205;;;-1:-1:-1::0;9997:10:0::1;9987:21;::::0;;;:9:::1;:21;::::0;;;;:30;;10012:5;;9987:21;:30:::1;::::0;10012:5;;9987:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;9560:465:0:o;7779:107::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7858:11:0;;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:20;;-1:-1:-1;;7858:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7779:107::o;1160:154::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;1243:6:::1;:17:::0;;-1:-1:-1;;;;;;1243:17:0::1;-1:-1:-1::0;;;;;1243:17:0;::::1;::::0;;::::1;::::0;;;1276:30:::1;::::0;3048:51:1;;;1276:30:0::1;::::0;3036:2:1;3021:18;1276:30:0::1;;;;;;;1160:154:::0;:::o;8568:191::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;8649:17:::1;::::0;;::::1;:8;:17:::0;;;8677;;::::1;:8;:17:::0;;;8713:20:::1;;8705:46;;;::::0;-1:-1:-1;;;8705:46:0;;9182:2:1;8705:46:0::1;::::0;::::1;9164:21:1::0;9221:2;9201:18;;;9194:30;-1:-1:-1;;;9240:18:1;;;9233:43;9293:18;;8705:46:0::1;8980:337:1::0;8705:46:0::1;8568:191:::0;;:::o;6066:851::-;-1:-1:-1;;;;;6213:14:0;;6191:4;6213:14;;;:6;:14;;;;;;;;6212:15;:36;;;;-1:-1:-1;;;;;;6232:16:0;;;;;;:6;:16;;;;;;;;6231:17;6212:36;6208:297;;;6273:12;;-1:-1:-1;;;6273:12:0;;;;6265:45;;;;-1:-1:-1;;;6265:45:0;;9524:2:1;6265:45:0;;;9506:21:1;9563:2;9543:18;;;9536:30;-1:-1:-1;;;9582:18:1;;;9575:50;9642:18;;6265:45:0;9322:344:1;6265:45:0;6330:7;;-1:-1:-1;;;6330:7:0;;;;6329:8;:36;;;;-1:-1:-1;6353:12:0;;-1:-1:-1;;;;;6341:24:0;;;6353:12;;6341:24;6329:36;6325:97;;;6386:20;:18;:20::i;:::-;6444:30;6457:8;6467:6;6444:12;:30::i;:::-;6436:57;;;;-1:-1:-1;;;6436:57:0;;9873:2:1;6436:57:0;;;9855:21:1;9912:2;9892:18;;;9885:30;-1:-1:-1;;;9931:18:1;;;9924:44;9985:18;;6436:57:0;9671:338:1;6436:57:0;6517:18;6538:39;6552:6;6560:8;6570:6;6538:13;:39::i;:::-;6517:60;-1:-1:-1;6588:23:0;6614:19;6517:60;6614:6;:19;:::i;:::-;-1:-1:-1;;;;;6644:17:0;;;;;;:9;:17;;;;;:27;;6588:45;;-1:-1:-1;6665:6:0;;6644:17;;;:27;;6665:6;;6644:27;:::i;:::-;;;;-1:-1:-1;;;;;;;6682:19:0;;;;;;:9;:19;;;;;:38;;6705:15;;6682:19;:38;;6705:15;;6682:38;:::i;:::-;;;;-1:-1:-1;;6749:4:0;6731:24;;;;:9;:24;;;;;:38;;6759:10;;6731:24;:38;;6759:10;;6731:38;:::i;:::-;;;;;;;;6802:8;-1:-1:-1;;;;;6785:43:0;6794:6;-1:-1:-1;;;;;6785:43:0;;6812:15;6785:43;;;;1361:25:1;;1349:2;1334:18;;1215:177;6785:43:0;;;;;;;;6844;;1361:25:1;;;6869:4:0;;-1:-1:-1;;;;;6844:43:0;;;;;1349:2:1;1334:18;6844:43:0;;;;;;;-1:-1:-1;6905:4:0;;6066:851;-1:-1:-1;;;;;6066:851:0:o;8767:349::-;3567:7;:14;;-1:-1:-1;;;;3567:14:0;-1:-1:-1;;;3567:14:0;;;8875:4:::1;-1:-1:-1::0;4727:18:0;;;:9;:18;;;;;;8828:53:::1;;8918:8;;8896:18;:30;8892:217;;8969:8;;8947:18;:30;8943:100;;-1:-1:-1::0;9019:8:0::1;::::0;8943:100:::1;9057:40;9078:18;9057:20;:40::i;:::-;-1:-1:-1::0;3604:7:0;:15;;-1:-1:-1;;;;3604:15:0;;;8767:349::o;6925:322::-;7084:12;;7037:4;;-1:-1:-1;;;;;7072:24:0;;;7084:12;;7072:24;;;;:95;;-1:-1:-1;7153:13:0;;-1:-1:-1;;;;;7114:19:0;;;;;;:9;:19;;;;;;:36;;7136:14;;7114:36;:::i;:::-;:52;7072:95;7054:164;;;-1:-1:-1;7201:5:0;7194:12;;7054:164;-1:-1:-1;7235:4:0;6925:322;;;;:::o;7255:516::-;-1:-1:-1;;;;;7444:18:0;;7390:7;7444:18;;;:6;:18;;;;;;7390:7;;7444:18;;;:39;;-1:-1:-1;;;;;;7466:17:0;;;;;;:6;:17;;;;;;;;7444:39;7440:295;;;-1:-1:-1;7512:1:0;7440:295;;;7549:12;;-1:-1:-1;;;;;7549:12:0;;;7535:26;;;;7531:204;;7600:11;;7615:3;;7591:20;;-1:-1:-1;;;7600:11:0;;;;7591:6;:20;:::i;:::-;7590:28;;;;:::i;:::-;7578:40;;7531:204;;;7653:12;;-1:-1:-1;;;;;7653:12:0;;;7640:25;;;;7636:99;;7704:12;;7720:3;;7695:21;;-1:-1:-1;;;7704:12:0;;;;7695:6;:21;:::i;:::-;7694:29;;;;:::i;:::-;7682:41;7754:9;-1:-1:-1;;;;;7255:516:0:o;9124:428::-;9194:27;9209:11;9194:14;:27::i;:::-;9256:16;;;9270:1;9256:16;;;;;;;;9232:21;;9256:16;;;;;;;;;;-1:-1:-1;9256:16:0;9232:40;;9301:4;9283;9288:1;9283:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;9283:23:0;;;-1:-1:-1;;;;;9283:23:0;;;;;9327:4;9317;9322:1;9317:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9317:14:0;;;:7;;;;;;;;;:14;9342:18;;;9487:16;9342:202;;-1:-1:-1;;;9342:202:0;;:18;;;;:69;;:202;;9426:11;;9342:18;;9468:4;;9487:16;;;;9518:15;;9342:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9183:369;9124:428;:::o;5653:315::-;5743:4;5723:26;;;;:11;:26;;;;;;;;3238:42;5723:46;;;;;;;;:61;-1:-1:-1;5719:242:0;;;5821:4;5801:26;;;;:11;:26;;;;;;;;3238:42;5801:46;;;;;;;;;;-1:-1:-1;;5801:66:0;;;;5887:62;;1361:25:1;;;3238:42:0;;5821:4;5887:62;;1334:18:1;5887:62:0;;;;;;;5719:242;5653:315;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;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;2047:156::-;2113:20;;2173:4;2162:16;;2152:27;;2142:55;;2193:1;2190;2183:12;2142:55;2047:156;;;:::o;2208:252::-;2272:6;2280;2333:2;2321:9;2312:7;2308:23;2304:32;2301:52;;;2349:1;2346;2339:12;2301:52;2372:27;2389:9;2372:27;:::i;:::-;2362:37;;2418:36;2450:2;2439:9;2435:18;2418:36;:::i;:::-;2408:46;;2208:252;;;;;:::o;2465:180::-;2524:6;2577:2;2565:9;2556:7;2552:23;2548:32;2545:52;;;2593:1;2590;2583:12;2545:52;-1:-1:-1;2616:23:1;;2465:180;-1:-1:-1;2465:180:1:o;2650:247::-;2709:6;2762:2;2750:9;2741:7;2737:23;2733:32;2730:52;;;2778:1;2775;2768:12;2730:52;2817:9;2804:23;2836:31;2861:5;2836:31;:::i;3334:388::-;3402:6;3410;3463:2;3451:9;3442:7;3438:23;3434:32;3431:52;;;3479:1;3476;3469:12;3431:52;3518:9;3505:23;3537:31;3562:5;3537:31;:::i;:::-;3587:5;-1:-1:-1;3644:2:1;3629:18;;3616:32;3657:33;3616:32;3657:33;:::i;:::-;3709:7;3699:17;;;3334:388;;;;;:::o;3727:367::-;3790:8;3800:6;3854:3;3847:4;3839:6;3835:17;3831:27;3821:55;;3872:1;3869;3862:12;3821:55;-1:-1:-1;3895:20:1;;3938:18;3927:30;;3924:50;;;3970:1;3967;3960:12;3924:50;4007:4;3999:6;3995:17;3983:29;;4067:3;4060:4;4050:6;4047:1;4043:14;4035:6;4031:27;4027:38;4024:47;4021:67;;;4084:1;4081;4074:12;4021:67;3727:367;;;;;:::o;4099:773::-;4221:6;4229;4237;4245;4298:2;4286:9;4277:7;4273:23;4269:32;4266:52;;;4314:1;4311;4304:12;4266:52;4354:9;4341:23;4383:18;4424:2;4416:6;4413:14;4410:34;;;4440:1;4437;4430:12;4410:34;4479:70;4541:7;4532:6;4521:9;4517:22;4479:70;:::i;:::-;4568:8;;-1:-1:-1;4453:96:1;-1:-1:-1;4656:2:1;4641:18;;4628:32;;-1:-1:-1;4672:16:1;;;4669:36;;;4701:1;4698;4691:12;4669:36;;4740:72;4804:7;4793:8;4782:9;4778:24;4740:72;:::i;:::-;4099:773;;;;-1:-1:-1;4831:8:1;-1:-1:-1;;;;4099:773:1:o;4877:416::-;4942:6;4950;5003:2;4991:9;4982:7;4978:23;4974:32;4971:52;;;5019:1;5016;5009:12;4971:52;5058:9;5045:23;5077:31;5102:5;5077:31;:::i;:::-;5127:5;-1:-1:-1;5184:2:1;5169:18;;5156:32;5226:15;;5219:23;5207:36;;5197:64;;5257:1;5254;5247:12;5558:163;5625:20;;5685:10;5674:22;;5664:33;;5654:61;;5711:1;5708;5701:12;5726:256;5792:6;5800;5853:2;5841:9;5832:7;5828:23;5824:32;5821:52;;;5869:1;5866;5859:12;5821:52;5892:28;5910:9;5892:28;:::i;:::-;5882:38;;5939:37;5972:2;5961:9;5957:18;5939:37;:::i;5987:127::-;6048:10;6043:3;6039:20;6036:1;6029:31;6079:4;6076:1;6069:15;6103:4;6100:1;6093:15;6119:416;6208:1;6245:5;6208:1;6259:270;6280:7;6270:8;6267:21;6259:270;;;6339:4;6335:1;6331:6;6327:17;6321:4;6318:27;6315:53;;;6348:18;;:::i;:::-;6398:7;6388:8;6384:22;6381:55;;;6418:16;;;;6381:55;6497:22;;;;6457:15;;;;6259:270;;;6263:3;6119:416;;;;;:::o;6540:806::-;6589:5;6619:8;6609:80;;-1:-1:-1;6660:1:1;6674:5;;6609:80;6708:4;6698:76;;-1:-1:-1;6745:1:1;6759:5;;6698:76;6790:4;6808:1;6803:59;;;;6876:1;6871:130;;;;6783:218;;6803:59;6833:1;6824:10;;6847:5;;;6871:130;6908:3;6898:8;6895:17;6892:43;;;6915:18;;:::i;:::-;-1:-1:-1;;6971:1:1;6957:16;;6986:5;;6783:218;;7085:2;7075:8;7072:16;7066:3;7060:4;7057:13;7053:36;7047:2;7037:8;7034:16;7029:2;7023:4;7020:12;7016:35;7013:77;7010:159;;;-1:-1:-1;7122:19:1;;;7154:5;;7010:159;7201:34;7226:8;7220:4;7201:34;:::i;:::-;7271:6;7267:1;7263:6;7259:19;7250:7;7247:32;7244:58;;;7282:18;;:::i;:::-;7320:20;;6540:806;-1:-1:-1;;;6540:806:1:o;7351:140::-;7409:5;7438:47;7479:4;7469:8;7465:19;7459:4;7438:47;:::i;7496:168::-;7569:9;;;7600;;7617:15;;;7611:22;;7597:37;7587:71;;7638:18;;:::i;7669:128::-;7736:9;;;7757:11;;;7754:37;;;7771:18;;:::i;7802:348::-;8004:2;7986:21;;;8043:2;8023:18;;;8016:30;8082:26;8077:2;8062:18;;8055:54;8141:2;8126:18;;7802:348::o;8502:127::-;8563:10;8558:3;8554:20;8551:1;8544:31;8594:4;8591:1;8584:15;8618:4;8615:1;8608:15;8634:125;8699:9;;;8720:10;;;8717:36;;;8733:18;;:::i;10014:217::-;10054:1;10080;10070:132;;10124:10;10119:3;10115:20;10112:1;10105:31;10159:4;10156:1;10149:15;10187:4;10184:1;10177:15;10070:132;-1:-1:-1;10216:9:1;;10014:217::o;10368:988::-;10638:4;10686:3;10675:9;10671:19;10717:6;10706:9;10699:25;10743:2;10781:6;10776:2;10765:9;10761:18;10754:34;10824:3;10819:2;10808:9;10804:18;10797:31;10848:6;10883;10877:13;10914:6;10906;10899:22;10952:3;10941:9;10937:19;10930:26;;10991:2;10983:6;10979:15;10965:29;;11012:1;11022:195;11036:6;11033:1;11030:13;11022:195;;;11101:13;;-1:-1:-1;;;;;11097:39:1;11085:52;;11192:15;;;;11157:12;;;;11133:1;11051:9;11022:195;;;-1:-1:-1;;;;;;;11273:32:1;;;;11268:2;11253:18;;11246:60;-1:-1:-1;;;11337:3:1;11322:19;11315:35;11234:3;10368:988;-1:-1:-1;;;10368:988:1:o

Swarm Source

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