ETH Price: $2,361.98 (+0.39%)

Token

PunkXCoin (PUNKX)
 

Overview

Max Total Supply

1,000,000,000 PUNKX

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 PUNKX

Value
$0.00
0xb7aa6e20a17ff0c275d5f1f10596486fbabb0582
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:
PUNKX

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-28
*/

/*

tg: https://t.me/punkxcoin

web: https://www.punkxcoin.vip

*/
 
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    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 getOwner() external view returns (address);
    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);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract PUNKX is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    string constant _name = "PunkXCoin";
    string constant _symbol = "PUNKX";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 40) / 1000;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    
    IDEXRouter public router;
    address public pair;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 100000;
    bool inSwap;

    uint256 liquidityFee = 0; 
    uint256 marketingFee = 0;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;
    address public marketingFeeReceiver;

    modifier swapping() { inSwap = true; _; inSwap = false; }
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        marketingFeeReceiver = address(0xca7C76e0AdB3e88e3a076B1bD94F16C669E1E6f3);
        address _owner = owner;
        isFeeExempt[_owner] = true;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isFeeExempt[address(this)] = true;
        approveMax(pair, msg.sender, _totalSupply);
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    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 approveMax(address owner, address spender, uint256 amount) internal returns (bool) {
        _allowances[owner][spender] = amount;
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack(sender, recipient)){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function shouldSwapBack(address sender, address recipient) internal view returns (bool) {
        return sender != pair
        && !inSwap
        && swapEnabled
        && !isFeeExempt[sender]
        && !isFeeExempt[recipient]
        && _balances[address(this)] >= swapThreshold;
    }

    function removeLimits() external onlyOwner {
        _maxWalletAmount = type(uint256).max;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                0xca7C76e0AdB3e88e3a076B1bD94F16C669E1E6f3,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }
}

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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"spender","type":"address"}],"name":"approveMax","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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a620004df565b6200005890633b9aca00620004f7565b6003556103e860035460286200006f9190620004f7565b6200007b919062000519565b600455600a805460ff60a01b1916600160a01b179055600354620186a090620000a6906001620004f7565b620000b2919062000519565b600b556000600d819055600e819055620000cd90806200053c565b600f556064601055348015620000e257600080fd5b5060008054336001600160a01b031991821617909155600154600980546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200014f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000175919062000557565b6001600160a01b031663c9c65396600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd919062000557565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200024a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000270919062000557565b600a80546001600160a01b039283166001600160a01b031991821617825530600081815260066020818152604080842060095489168552825280842060001990556011805490961673ca7c76e0adb3e88e3a076b1bd94f16c669e1e6f31786558354881680855260078352818520805460ff19908116600190811790925533808852848820805483168417905589548c16885284882080548316841790559787528387208054821683179055985460038054918c1688529585528387208888528552838720556002548a1686526008845282862080548a168217905581865282862080548a168217905595855281852080548916871790559554909716835286832080549096169093179094559254828452600582528484208190558451908152935191938493927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35062000582565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000421578160001904821115620004055762000405620003ca565b808516156200041357918102915b93841c9390800290620003e5565b509250929050565b6000826200043a57506001620004d9565b816200044957506000620004d9565b81600181146200046257600281146200046d576200048d565b6001915050620004d9565b60ff841115620004815762000481620003ca565b50506001821b620004d9565b5060208310610133831016604e8410600b8410161715620004b2575081810a620004d9565b620004be8383620003e0565b8060001904821115620004d557620004d5620003ca565b0290505b92915050565b6000620004f060ff84168362000429565b9392505050565b6000816000190483118215151615620005145762000514620003ca565b500290565b6000826200053757634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005525762000552620003ca565b500190565b6000602082840312156200056a57600080fd5b81516001600160a01b0381168114620004f057600080fd5b61135a80620005926000396000f3fe60806040526004361061012e5760003560e01c80636ddd1713116100ab57806395d89b411161006f57806395d89b4114610359578063a8aa1b3114610387578063a9059cbb146103a7578063dd62ed3e146103c7578063e96fada21461040d578063f887ea401461042d57600080fd5b80636ddd1713146102a657806370a08231146102c7578063715018a6146102fd578063751039fc14610312578063893d20e81461032757600080fd5b80632f54bf6e116100f25780632f54bf6e14610203578063313ce5671461023257806352f7c9881461024e578063571ac8b0146102705780636c0a24eb1461029057600080fd5b80630445b6671461013a57806306fdde0314610163578063095ea7b31461019e57806318160ddd146101ce57806323b872dd146101e357600080fd5b3661013557005b600080fd5b34801561014657600080fd5b50610150600b5481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b50604080518082019091526009815268283ab735ac21b7b4b760b91b60208201525b60405161015a919061105a565b3480156101aa57600080fd5b506101be6101b93660046110c7565b61044d565b604051901515815260200161015a565b3480156101da57600080fd5b50600354610150565b3480156101ef57600080fd5b506101be6101fe3660046110f3565b6104ba565b34801561020f57600080fd5b506101be61021e366004611134565b6000546001600160a01b0391821691161490565b34801561023e57600080fd5b506040516009815260200161015a565b34801561025a57600080fd5b5061026e610269366004611151565b61057c565b005b34801561027c57600080fd5b506101be61028b366004611134565b6105ca565b34801561029c57600080fd5b5061015060045481565b3480156102b257600080fd5b50600a546101be90600160a01b900460ff1681565b3480156102d357600080fd5b506101506102e2366004611134565b6001600160a01b031660009081526005602052604090205490565b34801561030957600080fd5b5061026e6105d8565b34801561031e57600080fd5b5061026e610647565b34801561033357600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561036557600080fd5b506040805180820190915260058152640a0aa9c96b60db1b6020820152610191565b34801561039357600080fd5b50600a54610341906001600160a01b031681565b3480156103b357600080fd5b506101be6103c23660046110c7565b610679565b3480156103d357600080fd5b506101506103e2366004611173565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561041957600080fd5b50601154610341906001600160a01b031681565b34801561043957600080fd5b50600954610341906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104a89086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610567576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610542918490610686565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105728484846106c0565b90505b9392505050565b6000546001600160a01b031633146105af5760405162461bcd60e51b81526004016105a6906111ac565b60405180910390fd5b600d829055600e8190556105c381836111e2565b600f555050565b60006104b48260001961044d565b6000546001600160a01b031633146106025760405162461bcd60e51b81526004016105a6906111ac565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106715760405162461bcd60e51b81526004016105a6906111ac565b600019600455565b60006105753384846106c0565b600081848411156106aa5760405162461bcd60e51b81526004016105a6919061105a565b5060006106b784866111fa565b95945050505050565b600c5460009060ff16156106e0576106d98484846108ec565b9050610575565b600a546001600160a01b0384811691161480159061070c57506002546001600160a01b03848116911614155b156107b7576001600160a01b03831660009081526008602052604090205460ff168061075d57506004546001600160a01b03841660009081526005602052604090205461075a9084906111e2565b11155b6107b75760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105a6565b6107c184846109d2565b156107ce576107ce610a78565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610820918490610686565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1615610855578261085f565b61085f8584610e24565b6001600160a01b0385166000908152600560205260409020549091506108859082610eca565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108d99085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461093d918490610686565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461096c9083610eca565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109c09086815260200190565b60405180910390a35060019392505050565b600a546000906001600160a01b038481169116148015906109f65750600c5460ff16155b8015610a0b5750600a54600160a01b900460ff165b8015610a3057506001600160a01b03831660009081526007602052604090205460ff16155b8015610a5557506001600160a01b03821660009081526007602052604090205460ff16155b8015610575575050600b5430600090815260056020526040902054101592915050565b600c805460ff19166001179055600b54600f54600d54600091610aab91600291610aa59182908790610f29565b90610fa8565b90506000610ab98383610fea565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610af357610af3611211565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b709190611227565b81600181518110610b8357610b83611211565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b81524792919091169063791ac94790610bcd908690600090879030904290600401611244565b600060405180830381600087803b158015610be757600080fd5b505af1158015610bfb573d6000803e3d6000fd5b505050506000610c148247610fea90919063ffffffff16565b90506000610c3a610c316002600d54610fa890919063ffffffff16565b600f5490610fea565b90506000610c5c6002610aa584610aa5600d5488610f2990919063ffffffff16565b90506000610c7983610aa5600e5487610f2990919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610cd0576040519150601f19603f3d011682016040523d82523d6000602084013e610cd5565b606091505b5050905080610d265760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016105a6565b8815610e0e5760095460405163f305d71960e01b8152306004820152602481018b9052600060448201819052606482015273ca7c76e0adb3e88e3a076b1bd94f16c669e1e6f360848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015610dac573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd191906112b5565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050600c805460ff191690555050505050505050565b600080610e42601054610aa5600f5486610f2990919063ffffffff16565b30600090815260056020526040902054909150610e5f9082610eca565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eb09085815260200190565b60405180910390a3610ec28382610fea565b949350505050565b600080610ed783856111e2565b9050838110156105755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a6565b600082610f38575060006104b4565b6000610f4483856112e3565b905082610f518583611302565b146105755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a6565b600061057583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061102c565b600061057583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610686565b6000818361104d5760405162461bcd60e51b81526004016105a6919061105a565b5060006106b78486611302565b600060208083528351808285015260005b818110156110875785810183015185820160400152820161106b565b81811115611099576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146110c457600080fd5b50565b600080604083850312156110da57600080fd5b82356110e5816110af565b946020939093013593505050565b60008060006060848603121561110857600080fd5b8335611113816110af565b92506020840135611123816110af565b929592945050506040919091013590565b60006020828403121561114657600080fd5b8135610575816110af565b6000806040838503121561116457600080fd5b50508035926020909101359150565b6000806040838503121561118657600080fd5b8235611191816110af565b915060208301356111a1816110af565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156111f5576111f56111cc565b500190565b60008282101561120c5761120c6111cc565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561123957600080fd5b8151610575816110af565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112945784516001600160a01b03168352938301939183019160010161126f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156112ca57600080fd5b8351925060208401519150604084015190509250925092565b60008160001904831182151516156112fd576112fd6111cc565b500290565b60008261131f57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212203378f738f4e75da5f58c3dd6687b3b556d5e0a1dcbdb68a48118c2f52657b77264736f6c634300080b0033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80636ddd1713116100ab57806395d89b411161006f57806395d89b4114610359578063a8aa1b3114610387578063a9059cbb146103a7578063dd62ed3e146103c7578063e96fada21461040d578063f887ea401461042d57600080fd5b80636ddd1713146102a657806370a08231146102c7578063715018a6146102fd578063751039fc14610312578063893d20e81461032757600080fd5b80632f54bf6e116100f25780632f54bf6e14610203578063313ce5671461023257806352f7c9881461024e578063571ac8b0146102705780636c0a24eb1461029057600080fd5b80630445b6671461013a57806306fdde0314610163578063095ea7b31461019e57806318160ddd146101ce57806323b872dd146101e357600080fd5b3661013557005b600080fd5b34801561014657600080fd5b50610150600b5481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b50604080518082019091526009815268283ab735ac21b7b4b760b91b60208201525b60405161015a919061105a565b3480156101aa57600080fd5b506101be6101b93660046110c7565b61044d565b604051901515815260200161015a565b3480156101da57600080fd5b50600354610150565b3480156101ef57600080fd5b506101be6101fe3660046110f3565b6104ba565b34801561020f57600080fd5b506101be61021e366004611134565b6000546001600160a01b0391821691161490565b34801561023e57600080fd5b506040516009815260200161015a565b34801561025a57600080fd5b5061026e610269366004611151565b61057c565b005b34801561027c57600080fd5b506101be61028b366004611134565b6105ca565b34801561029c57600080fd5b5061015060045481565b3480156102b257600080fd5b50600a546101be90600160a01b900460ff1681565b3480156102d357600080fd5b506101506102e2366004611134565b6001600160a01b031660009081526005602052604090205490565b34801561030957600080fd5b5061026e6105d8565b34801561031e57600080fd5b5061026e610647565b34801561033357600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561036557600080fd5b506040805180820190915260058152640a0aa9c96b60db1b6020820152610191565b34801561039357600080fd5b50600a54610341906001600160a01b031681565b3480156103b357600080fd5b506101be6103c23660046110c7565b610679565b3480156103d357600080fd5b506101506103e2366004611173565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561041957600080fd5b50601154610341906001600160a01b031681565b34801561043957600080fd5b50600954610341906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104a89086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610567576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610542918490610686565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105728484846106c0565b90505b9392505050565b6000546001600160a01b031633146105af5760405162461bcd60e51b81526004016105a6906111ac565b60405180910390fd5b600d829055600e8190556105c381836111e2565b600f555050565b60006104b48260001961044d565b6000546001600160a01b031633146106025760405162461bcd60e51b81526004016105a6906111ac565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106715760405162461bcd60e51b81526004016105a6906111ac565b600019600455565b60006105753384846106c0565b600081848411156106aa5760405162461bcd60e51b81526004016105a6919061105a565b5060006106b784866111fa565b95945050505050565b600c5460009060ff16156106e0576106d98484846108ec565b9050610575565b600a546001600160a01b0384811691161480159061070c57506002546001600160a01b03848116911614155b156107b7576001600160a01b03831660009081526008602052604090205460ff168061075d57506004546001600160a01b03841660009081526005602052604090205461075a9084906111e2565b11155b6107b75760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105a6565b6107c184846109d2565b156107ce576107ce610a78565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610820918490610686565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1615610855578261085f565b61085f8584610e24565b6001600160a01b0385166000908152600560205260409020549091506108859082610eca565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108d99085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461093d918490610686565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461096c9083610eca565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109c09086815260200190565b60405180910390a35060019392505050565b600a546000906001600160a01b038481169116148015906109f65750600c5460ff16155b8015610a0b5750600a54600160a01b900460ff165b8015610a3057506001600160a01b03831660009081526007602052604090205460ff16155b8015610a5557506001600160a01b03821660009081526007602052604090205460ff16155b8015610575575050600b5430600090815260056020526040902054101592915050565b600c805460ff19166001179055600b54600f54600d54600091610aab91600291610aa59182908790610f29565b90610fa8565b90506000610ab98383610fea565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610af357610af3611211565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b709190611227565b81600181518110610b8357610b83611211565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b81524792919091169063791ac94790610bcd908690600090879030904290600401611244565b600060405180830381600087803b158015610be757600080fd5b505af1158015610bfb573d6000803e3d6000fd5b505050506000610c148247610fea90919063ffffffff16565b90506000610c3a610c316002600d54610fa890919063ffffffff16565b600f5490610fea565b90506000610c5c6002610aa584610aa5600d5488610f2990919063ffffffff16565b90506000610c7983610aa5600e5487610f2990919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610cd0576040519150601f19603f3d011682016040523d82523d6000602084013e610cd5565b606091505b5050905080610d265760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016105a6565b8815610e0e5760095460405163f305d71960e01b8152306004820152602481018b9052600060448201819052606482015273ca7c76e0adb3e88e3a076b1bd94f16c669e1e6f360848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015610dac573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd191906112b5565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050600c805460ff191690555050505050505050565b600080610e42601054610aa5600f5486610f2990919063ffffffff16565b30600090815260056020526040902054909150610e5f9082610eca565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eb09085815260200190565b60405180910390a3610ec28382610fea565b949350505050565b600080610ed783856111e2565b9050838110156105755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a6565b600082610f38575060006104b4565b6000610f4483856112e3565b905082610f518583611302565b146105755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a6565b600061057583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061102c565b600061057583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610686565b6000818361104d5760405162461bcd60e51b81526004016105a6919061105a565b5060006106b78486611302565b600060208083528351808285015260005b818110156110875785810183015185820160400152820161106b565b81811115611099576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146110c457600080fd5b50565b600080604083850312156110da57600080fd5b82356110e5816110af565b946020939093013593505050565b60008060006060848603121561110857600080fd5b8335611113816110af565b92506020840135611123816110af565b929592945050506040919091013590565b60006020828403121561114657600080fd5b8135610575816110af565b6000806040838503121561116457600080fd5b50508035926020909101359150565b6000806040838503121561118657600080fd5b8235611191816110af565b915060208301356111a1816110af565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156111f5576111f56111cc565b500190565b60008282101561120c5761120c6111cc565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561123957600080fd5b8151610575816110af565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112945784516001600160a01b03168352938301939183019160010161126f565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156112ca57600080fd5b8351925060208401519150604084015190509250925092565b60008160001904831182151516156112fd576112fd6111cc565b500290565b60008261131f57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212203378f738f4e75da5f58c3dd6687b3b556d5e0a1dcbdb68a48118c2f52657b77264736f6c634300080b0033

Deployed Bytecode Sourcemap

4160:7681:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4921:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4921:56:0;;;;;;;;6516:80;;;;;;;;;;-1:-1:-1;6588:5:0;;;;;;;;;;;;-1:-1:-1;;;6588:5:0;;;;6516:80;;;;;;;:::i;6938:216::-;;;;;;;;;;-1:-1:-1;6938:216:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;6938:216:0;1254:187:1;6246:88:0;;;;;;;;;;-1:-1:-1;6319:12:0;;6246:88;;7633:370;;;;;;;;;;-1:-1:-1;7633:370:0;;;;;:::i;:::-;;:::i;2398:103::-;;;;;;;;;;-1:-1:-1;2398:103:0;;;;;:::i;:::-;2453:4;2488:5;-1:-1:-1;;;;;2477:16:0;;;2488:5;;2477:16;;2398:103;6340:80;;;;;;;;;;-1:-1:-1;6340:80:0;;4478:1;2301:36:1;;2289:2;2274:18;6340:80:0;2159:184:1;10821:220:0;;;;;;;;;;-1:-1:-1;10821:220:0;;;;;:::i;:::-;;:::i;:::-;;7339:122;;;;;;;;;;-1:-1:-1;7339:122:0;;;;;:::i;:::-;;:::i;4549:60::-;;;;;;;;;;;;;;;;4884:30;;;;;;;;;;-1:-1:-1;4884:30:0;;;;-1:-1:-1;;;4884:30:0;;;;;;6686:105;;;;;;;;;;-1:-1:-1;6686:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6770:18:0;6752:7;6770:18;;;:9;:18;;;;;;;6686:105;2507:131;;;;;;;;;;;;;:::i;9135:98::-;;;;;;;;;;;;;:::i;6602:78::-;;;;;;;;;;-1:-1:-1;6654:7:0;6672:5;-1:-1:-1;;;;;6672:5:0;6602:78;;;-1:-1:-1;;;;;2765:32:1;;;2747:51;;2735:2;2720:18;6602:78:0;2601:203:1;6426:84:0;;;;;;;;;;-1:-1:-1;6500:7:0;;;;;;;;;;;;-1:-1:-1;;;6500:7:0;;;;6426:84;;4858:19;;;;;;;;;;-1:-1:-1;4858:19:0;;;;-1:-1:-1;;;;;4858:19:0;;;7469:156;;;;;;;;;;-1:-1:-1;7469:156:0;;;;;:::i;:::-;;:::i;6797:133::-;;;;;;;;;;-1:-1:-1;6797:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6899:19:0;;;6881:7;6899:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6797:133;5155:35;;;;;;;;;;-1:-1:-1;5155:35:0;;;;-1:-1:-1;;;;;5155:35:0;;;4827:24;;;;;;;;;;-1:-1:-1;4827:24:0;;;;-1:-1:-1;;;;;4827:24:0;;;6938:216;7042:10;7013:4;7030:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7030:32:0;;;;;;;;;;:41;;;7087:37;7013:4;;7030:32;;7087:37;;;;7065:6;160:25:1;;148:2;133:18;;14:177;7087:37:0;;;;;;;;-1:-1:-1;7142:4:0;6938:216;;;;;:::o;7633:370::-;-1:-1:-1;;;;;7753:19:0;;7733:4;7753:19;;;:11;:19;;;;;;;;7773:10;7753:31;;;;;;;;-1:-1:-1;;7753:52:0;7750:186;;7855:69;;;;;;;;;;;-1:-1:-1;;;7855:69:0;;;;;;;;-1:-1:-1;;;;;7855:19:0;;-1:-1:-1;7855:19:0;;;:11;:19;;;;;7875:10;7855:31;;;;;;;;;;:69;;7891:6;;7855:35;:69::i;:::-;-1:-1:-1;;;;;7821:19:0;;;;;;:11;:19;;;;;;;;7841:10;7821:31;;;;;;;:103;7750:186;7955:40;7969:6;7977:9;7988:6;7955:13;:40::i;:::-;7948:47;;7633:370;;;;;;:::o;10821:220::-;2453:4;2488:5;-1:-1:-1;;;;;2488:5:0;2359:10;2477:16;2343:38;;;;-1:-1:-1;;;2343:38:0;;;;;;;:::i;:::-;;;;;;;;;10914:12:::1;:28:::0;;;10955:12:::1;:28:::0;;;11006:27:::1;10970:13:::0;10929;11006:27:::1;:::i;:::-;10995:8;:38:::0;-1:-1:-1;;10821:220:0:o;7339:122::-;7394:4;7418:35;7426:7;-1:-1:-1;;7418:7:0;:35::i;2507:131::-;2453:4;2488:5;-1:-1:-1;;;;;2488:5:0;2359:10;2477:16;2343:38;;;;-1:-1:-1;;;2343:38:0;;;;;;;:::i;:::-;2580:1:::1;2564:18:::0;;-1:-1:-1;;;;;;2564:18:0::1;::::0;;2598:32:::1;::::0;2747:51:1;;;2598:32:0::1;::::0;2735:2:1;2720:18;2598:32:0::1;;;;;;;2507:131::o:0;9135:98::-;2453:4;2488:5;-1:-1:-1;;;;;2488:5:0;2359:10;2477:16;2343:38;;;;-1:-1:-1;;;2343:38:0;;;;;;;:::i;:::-;-1:-1:-1;;9189:16:0::1;:36:::0;9135:98::o;7469:156::-;7549:4;7573:44;7587:10;7599:9;7610:6;7573:13;:44::i;487:190::-;573:7;609:12;601:6;;;;593:29;;;;-1:-1:-1;;;593:29:0;;;;;;;;:::i;:::-;-1:-1:-1;633:9:0;645:5;649:1;645;:5;:::i;:::-;633:17;487:190;-1:-1:-1;;;;;487:190:0:o;8011:809::-;8123:6;;8103:4;;8123:6;;8120:63;;;8139:41;8154:6;8162:9;8173:6;8139:14;:41::i;:::-;8132:48;;;;8120:63;8220:4;;-1:-1:-1;;;;;8207:17:0;;;8220:4;;8207:17;;;;:38;;-1:-1:-1;8241:4:0;;-1:-1:-1;;;;;8228:17:0;;;8241:4;;8228:17;;8207:38;8203:200;;;-1:-1:-1;;;;;8270:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;8333:16:0;;-1:-1:-1;;;;;8300:20:0;;;;;;:9;:20;;;;;;:29;;8323:6;;8300:29;:::i;:::-;:49;;8270:79;8262:129;;;;-1:-1:-1;;;8262:129:0;;4359:2:1;8262:129:0;;;4341:21:1;4398:2;4378:18;;;4371:30;4437:34;4417:18;;;4410:62;-1:-1:-1;;;4488:18:1;;;4481:35;4533:19;;8262:129:0;4157:401:1;8262:129:0;8426:33;8441:6;8449:9;8426:14;:33::i;:::-;8423:52;;;8462:10;:8;:10::i;:::-;8508:53;;;;;;;;;;;-1:-1:-1;;;8508:53:0;;;;;;;;-1:-1:-1;;;;;8508:17:0;;-1:-1:-1;8508:17:0;;;:9;:17;;;;;;;;:53;;8530:6;;8508:21;:53::i;:::-;-1:-1:-1;;;;;8488:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11474:11;:19;;;;;;;;11473:20;8599:56;;8649:6;8599:56;;;8623:23;8631:6;8639;8623:7;:23::i;:::-;-1:-1:-1;;;;;8689:20:0;;;;;;:9;:20;;;;;;8574:81;;-1:-1:-1;8689:40:0;;8574:81;8689:24;:40::i;:::-;-1:-1:-1;;;;;8666:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8747:43;;;;;;;;;;8775:14;160:25:1;;148:2;133:18;;14:177;8747:43:0;;;;;;;;-1:-1:-1;8808:4:0;;8011:809;-1:-1:-1;;;;8011:809:0:o;11049:330::-;11179:53;;;;;;;;;;;-1:-1:-1;;;11179:53:0;;;;;;;;-1:-1:-1;;;;;11179:17:0;;11142:4;11179:17;;;:9;:17;;;;;;;:53;;11201:6;;11179:21;:53::i;:::-;-1:-1:-1;;;;;11159:17:0;;;;;;;:9;:17;;;;;;:73;;;;11266:20;;;;;;;:32;;11291:6;11266:24;:32::i;:::-;-1:-1:-1;;;;;11243:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11314:35;;;;;;;;;;11342:6;160:25:1;;148:2;133:18;;14:177;11314:35:0;;;;;;;;-1:-1:-1;11367:4:0;11049:330;;;;;:::o;8832:295::-;8948:4;;8914;;-1:-1:-1;;;;;8938:14:0;;;8948:4;;8938:14;;;;:34;;-1:-1:-1;8966:6:0;;;;8965:7;8938:34;:58;;;;-1:-1:-1;8985:11:0;;-1:-1:-1;;;8985:11:0;;;;8938:58;:91;;;;-1:-1:-1;;;;;;9010:19:0;;;;;;:11;:19;;;;;;;;9009:20;8938:91;:127;;;;-1:-1:-1;;;;;;9043:22:0;;;;;;:11;:22;;;;;;;;9042:23;8938:127;:181;;;;-1:-1:-1;;9106:13:0;;9096:4;9078:24;;;;:9;:24;;;;;;:41;;;8832:295;-1:-1:-1;;8832:295:0:o;9241:1572::-;5221:6;:13;;-1:-1:-1;;5221:13:0;5230:4;5221:13;;;9321::::1;::::0;9414:8:::1;::::0;9396:12:::1;::::0;5221:6;;9371:59:::1;::::0;9428:1:::1;::::0;9371:52:::1;::::0;;;9321:13;;9371:24:::1;:38::i;:::-;:42:::0;::::1;:52::i;:59::-;9345:85:::0;-1:-1:-1;9441:20:0::1;9464:41;:20:::0;9345:85;9464:24:::1;:41::i;:::-;9542:16;::::0;;9556:1:::1;9542:16:::0;;;;;::::1;::::0;;9441:64;;-1:-1:-1;9518:21:0::1;::::0;9542:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9542:16:0::1;9518:40;;9587:4;9569;9574:1;9569:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9569:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9613:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9613:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9569:7;;9613:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9603:4;9608:1;9603:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9603:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9697:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;9697:188:0;;9663:21:::1;::::0;9697:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;9769:12;;9639:21:::1;::::0;9812:4;;9839::::1;::::0;9859:15:::1;::::0;9697:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9896:17;9916:40;9942:13;9916:21;:25;;:40;;;;:::i;:::-;9896:60;;9967:19;9989:33;10002:19;10019:1;10002:12;;:16;;:19;;;;:::i;:::-;9989:8;::::0;;:12:::1;:33::i;:::-;9967:55;;10033:26;10062:51;10111:1;10062:44;10094:11;10062:27;10076:12;;10062:9;:13;;:27;;;;:::i;:51::-;10033:80;;10124:26;10153:44;10185:11;10153:27;10167:12;;10153:9;:13;;:27;;;;:::i;:44::-;10271:20;::::0;10263:77:::1;::::0;10124:73;;-1:-1:-1;10213:21:0::1;::::0;-1:-1:-1;;;;;10271:20:0;;::::1;::::0;10330:5:::1;::::0;10124:73;;10213:21;10263:77;10213:21;10263:77;10124:73;10271:20;10330:5;10263:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10212:128;;;10359:16;10351:59;;;::::0;-1:-1:-1;;;10351:59:0;;6480:2:1;10351:59:0::1;::::0;::::1;6462:21:1::0;6519:2;6499:18;;;6492:30;6558:32;6538:18;;;6531:60;6608:18;;10351:59:0::1;6278:354:1::0;10351:59:0::1;10426:19:::0;;10423:383:::1;;10461:6;::::0;:265:::1;::::0;-1:-1:-1;;;10461:265:0;;10537:4:::1;10461:265;::::0;::::1;6978:34:1::0;7028:18;;;7021:34;;;10461:6:0::1;7071:18:1::0;;;7064:34;;;7114:18;;;7107:34;10635:42:0::1;7157:19:1::0;;;7150:44;10696:15:0::1;7210:19:1::0;;;7203:35;-1:-1:-1;;;;;10461:6:0;;::::1;::::0;:22:::1;::::0;10491:18;;6912:19:1;;10461:265:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10746:48:0::1;::::0;;7734:25:1;;;7790:2;7775:18;;7768:34;;;10746:48:0::1;::::0;-1:-1:-1;7707:18:1;10746:48:0::1;;;;;;;10423:383;-1:-1:-1::0;;5239:6:0;:14;;-1:-1:-1;;5239:14:0;;;-1:-1:-1;;;;;;;;9241:1572:0:o;11509:329::-;11576:7;11596:17;11616:40;11641:14;;11616:20;11627:8;;11616:6;:10;;:20;;;;:::i;:40::-;11712:4;11694:24;;;;:9;:24;;;;;;11596:60;;-1:-1:-1;11694:39:0;;11596:60;11694:28;:39::i;:::-;11685:4;11667:24;;;;:9;:24;;;;;;;:66;;;;11749:42;;-1:-1:-1;;;;;11749:42:0;;;;;;;11781:9;160:25:1;;148:2;133:18;;14:177;11749:42:0;;;;;;;;11809:21;:6;11820:9;11809:10;:21::i;:::-;11802:28;11509:329;-1:-1:-1;;;;11509:329:0:o;160:179::-;218:7;;250:5;254:1;250;:5;:::i;:::-;238:17;;279:1;274;:6;;266:46;;;;-1:-1:-1;;;266:46:0;;8015:2:1;266:46:0;;;7997:21:1;8054:2;8034:18;;;8027:30;8093:29;8073:18;;;8066:57;8140:18;;266:46:0;7813:351:1;683:246:0;741:7;765:6;761:47;;-1:-1:-1;795:1:0;788:8;;761:47;818:9;830:5;834:1;830;:5;:::i;:::-;818:17;-1:-1:-1;863:1:0;854:5;858:1;818:17;854:5;:::i;:::-;:10;846:56;;;;-1:-1:-1;;;846:56:0;;8766:2:1;846:56:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:31;8936:19;;846:56:0;8564:397:1;935:132:0;993:7;1020:39;1024:1;1027;1020:39;;;;;;;;;;;;;;;;;:3;:39::i;345:136::-;403:7;430:43;434:1;437;430:43;;;;;;;;;;;;;;;;;:3;:43::i;1073:189::-;1159:7;1194:12;1187:5;1179:28;;;;-1:-1:-1;;;1179:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1218:9:0;1230:5;1234:1;1230;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;853:70;798:131;:::o;934:315::-;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;1907:247::-;1966:6;2019:2;2007:9;1998:7;1994:23;1990:32;1987:52;;;2035:1;2032;2025:12;1987:52;2074:9;2061:23;2093:31;2118:5;2093:31;:::i;2348:248::-;2416:6;2424;2477:2;2465:9;2456:7;2452:23;2448:32;2445:52;;;2493:1;2490;2483:12;2445:52;-1:-1:-1;;2516:23:1;;;2586:2;2571:18;;;2558:32;;-1:-1:-1;2348:248:1:o;2809:388::-;2877:6;2885;2938:2;2926:9;2917:7;2913:23;2909:32;2906:52;;;2954:1;2951;2944:12;2906:52;2993:9;2980:23;3012:31;3037:5;3012:31;:::i;:::-;3062:5;-1:-1:-1;3119:2:1;3104:18;;3091:32;3132:33;3091:32;3132:33;:::i;:::-;3184:7;3174:17;;;2809:388;;;;;:::o;3428:329::-;3630:2;3612:21;;;3669:1;3649:18;;;3642:29;-1:-1:-1;;;3702:2:1;3687:18;;3680:36;3748:2;3733:18;;3428:329::o;3762:127::-;3823:10;3818:3;3814:20;3811:1;3804:31;3854:4;3851:1;3844:15;3878:4;3875:1;3868:15;3894:128;3934:3;3965:1;3961:6;3958:1;3955:13;3952:39;;;3971:18;;:::i;:::-;-1:-1:-1;4007:9:1;;3894:128::o;4027:125::-;4067:4;4095:1;4092;4089:8;4086:34;;;4100:18;;:::i;:::-;-1:-1:-1;4137:9:1;;4027:125::o;4695:127::-;4756:10;4751:3;4747:20;4744:1;4737:31;4787:4;4784:1;4777:15;4811:4;4808:1;4801:15;4827:251;4897:6;4950:2;4938:9;4929:7;4925:23;4921:32;4918:52;;;4966:1;4963;4956:12;4918:52;4998:9;4992:16;5017:31;5042:5;5017:31;:::i;5083:980::-;5345:4;5393:3;5382:9;5378:19;5424:6;5413:9;5406:25;5450:2;5488:6;5483:2;5472:9;5468:18;5461:34;5531:3;5526:2;5515:9;5511:18;5504:31;5555:6;5590;5584:13;5621:6;5613;5606:22;5659:3;5648:9;5644:19;5637:26;;5698:2;5690:6;5686:15;5672:29;;5719:1;5729:195;5743:6;5740:1;5737:13;5729:195;;;5808:13;;-1:-1:-1;;;;;5804:39:1;5792:52;;5899:15;;;;5864:12;;;;5840:1;5758:9;5729:195;;;-1:-1:-1;;;;;;;5980:32:1;;;;5975:2;5960:18;;5953:60;-1:-1:-1;;;6044:3:1;6029:19;6022:35;5941:3;5083:980;-1:-1:-1;;;5083:980:1:o;7249:306::-;7337:6;7345;7353;7406:2;7394:9;7385:7;7381:23;7377:32;7374:52;;;7422:1;7419;7412:12;7374:52;7451:9;7445:16;7435:26;;7501:2;7490:9;7486:18;7480:25;7470:35;;7545:2;7534:9;7530:18;7524:25;7514:35;;7249:306;;;;;:::o;8169:168::-;8209:7;8275:1;8271;8267:6;8263:14;8260:1;8257:21;8252:1;8245:9;8238:17;8234:45;8231:71;;;8282:18;;:::i;:::-;-1:-1:-1;8322:9:1;;8169:168::o;8342:217::-;8382:1;8408;8398:132;;8452:10;8447:3;8443:20;8440:1;8433:31;8487:4;8484:1;8477:15;8515:4;8512:1;8505:15;8398:132;-1:-1:-1;8544:9:1;;8342:217::o

Swarm Source

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