ETH Price: $3,101.85 (+1.36%)
Gas: 8 Gwei

Token

HarryPotterObamaSimpson888Inu (TETHER)
 

Overview

Max Total Supply

1,000,000,000 TETHER

Holders

64

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.92168914 TETHER

Value
$0.00
0x2ab7cca2d109238ca85813477885665e053bf7c5
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:
TETHER

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-11
*/

/**
Website: https://hpohs888inu.live
Telegram: https://t.me/hpos888Inu_erc
Twitter: https://twitter.com/hpos888Inu_erc
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.21;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IUniswapFactory {
    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 set(address) external;
    function setSetter(address) external;
}

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

interface IUniswapRouter {
    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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract TETHER is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name = "HarryPotterObamaSimpson888Inu";
    string private _symbol = "TETHER";
        
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 10 ** 9 * 10 ** 9;

    uint256 public maxTxAmout = 25 * 10 ** 6 * 10 ** 9;
    uint256 public maxWalletAmout = 25 * 10 ** 6 * 10 ** 9;
    uint256 public swapThreshAmount = 10 ** 4 * 10 ** 9; 

    uint256 public dividendLp = 0;
    uint256 public dividendMkt = 10;
    uint256 public dividendDev = 0;
    uint256 public dividendTotal = 10;

    uint256 public lpSellFees = 0;
    uint256 public mktSellFee = 23;
    uint256 public devSellFee = 0;
    uint256 public sellFee = 23;

    uint256 public lpBuyFees = 0;
    uint256 public mktBuyFees = 23;
    uint256 public devBuyFees = 0;
    uint256 public buyFee = 23;

    address payable private taxWallet;
    address payable private devWallet;

    IUniswapRouter public dexRouter;
    address public dexPair;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public hasNoLimit;
    mapping (address => bool) public hasNoMaxWallet;
    mapping (address => bool) public hasNoMaxTx;
    mapping (address => bool) public isPairAddy;
    
    bool swapping;
    bool public swapFeeEnabled = true;
    bool public maxTxEffectIn = false;
    bool public maxWalletEffectIn = true;

    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }
    
    constructor () {
        _balances[_msgSender()] = _totalSupply;
        IUniswapRouter _uniswapV2Router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        dexPair = IUniswapFactory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        dexRouter = _uniswapV2Router;
        _allowances[address(this)][address(dexRouter)] = _totalSupply;
        taxWallet = payable(0xAae5B7843EAB449fDa646ED185759dCC2983cB53);
        devWallet = payable(0xAae5B7843EAB449fDa646ED185759dCC2983cB53);
        buyFee = lpBuyFees.add(mktBuyFees).add(devBuyFees);
        sellFee = lpSellFees.add(mktSellFee).add(devSellFee);
        dividendTotal = dividendLp.add(dividendMkt).add(dividendDev);
        
        hasNoLimit[owner()] = true;
        hasNoLimit[taxWallet] = true;
        hasNoMaxWallet[owner()] = true;
        hasNoMaxWallet[address(dexPair)] = true;
        hasNoMaxWallet[address(this)] = true;
        hasNoMaxTx[owner()] = true;
        hasNoMaxTx[taxWallet] = true;
        hasNoMaxTx[address(this)] = true;
        isPairAddy[address(dexPair)] = true;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
        
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
                
    function _transferBasic(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swapTaxxed
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }
    
    function getFinalTokens(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 fee = 0;
        if(isPairAddy[sender]) {fee = amount.mul(buyFee).div(100);}
        else if(isPairAddy[recipient]) {fee = amount.mul(sellFee).div(100);}
        if(fee > 0) {
            _balances[address(this)] = _balances[address(this)].add(fee);
            emit Transfer(sender, address(this), fee);
        }
        return amount.sub(fee);
    }
    
    receive() external payable {}
    
    function sendEthFee(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    function removeLimits() external onlyOwner {
        maxTxAmout = _totalSupply;
        maxWalletEffectIn = false;
        mktBuyFees = 3;
        mktSellFee = 3;
        buyFee = 3;
        sellFee = 3;
    }
    
    function swapTaxxed(uint256 tAmount) private lockSwap {
        uint256 lpFeetokens = tAmount.mul(dividendLp).div(dividendTotal).div(2);
        uint256 tokensToSwap = tAmount.sub(lpFeetokens);

        swapTokensForETH(tokensToSwap);
        uint256 ethCA = address(this).balance;

        uint256 totalETHFee = dividendTotal.sub(dividendLp.div(2));
        
        uint256 amountETHLiquidity = ethCA.mul(dividendLp).div(totalETHFee).div(2);
        uint256 amountETHDevelopment = ethCA.mul(dividendDev).div(totalETHFee);
        uint256 amountETHMarketing = ethCA.sub(amountETHLiquidity).sub(amountETHDevelopment);

        if(amountETHMarketing > 0)
            sendEthFee(taxWallet, amountETHMarketing);

        if(amountETHDevelopment > 0)
            sendEthFee(devWallet, amountETHDevelopment);
    }
    
    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(swapping)
        { 
            return _transferBasic(sender, recipient, amount); 
        }
        else
        {
            if(!hasNoMaxTx[sender] && !hasNoMaxTx[recipient]) {
                require(amount <= maxTxAmout, "Transfer amount exceeds the maxTxAmout.");
            }            

            uint256 swapAmount = balanceOf(address(this));
            bool minimumSwap = swapAmount >= swapThreshAmount;
            
            if (minimumSwap && !swapping && isPairAddy[recipient] && swapFeeEnabled && !hasNoLimit[sender] && amount > swapThreshAmount) 
            {
                if(maxTxEffectIn)
                    swapAmount = swapThreshAmount;
                swapTaxxed(swapAmount);    
            }

            uint256 finalAmount;                                         
            if (hasNoLimit[sender] || hasNoLimit[recipient]) {
                finalAmount = amount;
            } else {
                finalAmount = getFinalTokens(sender, recipient, amount);
            }
            if(maxWalletEffectIn && !hasNoMaxWallet[recipient])
                require(balanceOf(recipient).add(finalAmount) <= maxWalletAmout);

            uint256 amountToReduce = (!maxWalletEffectIn && hasNoLimit[sender]) ? amount.sub(finalAmount) : amount;
            _balances[sender] = _balances[sender].sub(amountToReduce, "Insufficient Balance");
            _balances[recipient] = _balances[recipient].add(finalAmount);
            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendLp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendMkt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasNoLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasNoMaxTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasNoMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPairAddy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxEffectIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEffectIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mktBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mktSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052601d60809081527f4861727279506f747465724f62616d6153696d70736f6e383838496e7500000060a0526002906200003e908262000641565b506040805180820190915260068152652a22aa2422a960d11b60208201526003906200006b908262000641565b5060048054600960ff199091168117909155670de0b6b3a76400006005556658d15e1762800060068190556007556509184e72a0006008555f90819055600a808055600b829055600c55600d8190556017600e819055600f829055601081905560118290556012819055601391909155601455601f805463ffffff0019166301000100179055348015620000fd575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600554335f9081526019602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa158015620001a2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001c8919062000709565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000214573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023a919062000709565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000285573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ab919062000709565b601880546001600160a01b039283166001600160a01b0319918216179091556017805492841692821683179055600554305f908152601a60209081526040808320958352949052929092209190915560158054821673aae5b7843eab449fda646ed185759dcc2983cb539081179091556016805490921617905560135460125460115462000347929162000340919062000533565b9062000533565b601455600f54600e54600d5462000365929162000340919062000533565b601055600b54600a5460095462000383929162000340919062000533565b600c556001601b5f6200039d5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790556015549091168152601b909252812080549092166001908117909255601c90620003fb5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790556018549091168152601c90925280822080548416600190811790915530835290822080549093168117909255601d90620004695f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560155482168152601d845282812080548616600190811790915530825283822080548716821790556018549092168152601e90935291208054909216179055620004dd3390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200052491815260200190565b60405180910390a35062000751565b5f8062000541838562000731565b905083811015620005985760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005ca57607f821691505b602082108103620005e957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200063c575f81815260208120601f850160051c81016020861015620006175750805b601f850160051c820191505b81811015620006385782815560010162000623565b5050505b505050565b81516001600160401b038111156200065d576200065d620005a1565b62000675816200066e8454620005b5565b84620005ef565b602080601f831160018114620006ab575f8415620006935750858301515b5f19600386901b1c1916600185901b17855562000638565b5f85815260208120601f198616915b82811015620006db57888601518255948401946001909101908401620006ba565b5085821015620006f957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200071a575f80fd5b81516001600160a01b038116811462000598575f80fd5b808201808211156200059b57634e487b7160e01b5f52601160045260245ffd5b6117ff806200075f5f395ff3fe608060405260043610610215575f3560e01c80636dd91a2d1161011e578063a9059cbb116100a8578063dd62ed3e1161006d578063dd62ed3e146105cc578063f242ab4114610610578063f2fde38b1461062f578063f77dceed1461064e578063f7e003bd14610663575f80fd5b8063a9059cbb1461054f578063aa3c66971461056e578063b3d706fe14610583578063b45e83f8146105a2578063cd627a66146105b7575f80fd5b80638c00e841116100ee5780638c00e841146104c75780638da5cb5b146104f557806395d89b4114610511578063a07c994b14610525578063a8d9ef681461053a575f80fd5b80636dd91a2d1461045457806370a0823114610469578063715018a61461049d578063751039fc146104b3575f80fd5b8063313ce5671161019f57806350faa1181161016f57806350faa118146103be57806356c9e482146103ec57806358bee4021461040c57806359eedafd146104215780635eed1f371461043f575f80fd5b8063313ce5671461034557806336ef22881461036657806343fad93f1461039457806347062402146103a9575f80fd5b806318160ddd116101e557806318160ddd146102d357806321a40155146102e757806323b872dd146102fc5780632b14ca561461031b5780632fac967814610330575f80fd5b806306fdde03146102205780630758d9241461024a578063095ea7b31461028157806314c20513146102b0575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b50610234610691565b604051610241919061150a565b60405180910390f35b348015610255575f80fd5b50601754610269906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b34801561028c575f80fd5b506102a061029b36600461156c565b610721565b6040519015158152602001610241565b3480156102bb575f80fd5b506102c560115481565b604051908152602001610241565b3480156102de575f80fd5b506005546102c5565b3480156102f2575f80fd5b506102c560095481565b348015610307575f80fd5b506102a0610316366004611596565b610737565b348015610326575f80fd5b506102c560105481565b34801561033b575f80fd5b506102c5600c5481565b348015610350575f80fd5b5060045460405160ff9091168152602001610241565b348015610371575f80fd5b506102a06103803660046115d4565b601d6020525f908152604090205460ff1681565b34801561039f575f80fd5b506102c5600d5481565b3480156103b4575f80fd5b506102c560145481565b3480156103c9575f80fd5b506102a06103d83660046115d4565b601b6020525f908152604090205460ff1681565b3480156103f7575f80fd5b50601f546102a0906301000000900460ff1681565b348015610417575f80fd5b506102c560075481565b34801561042c575f80fd5b50601f546102a090610100900460ff1681565b34801561044a575f80fd5b506102c560125481565b34801561045f575f80fd5b506102c560135481565b348015610474575f80fd5b506102c56104833660046115d4565b6001600160a01b03165f9081526019602052604090205490565b3480156104a8575f80fd5b506104b16107a0565b005b3480156104be575f80fd5b506104b161081a565b3480156104d2575f80fd5b506102a06104e13660046115d4565b601c6020525f908152604090205460ff1681565b348015610500575f80fd5b505f546001600160a01b0316610269565b34801561051c575f80fd5b5061023461086c565b348015610530575f80fd5b506102c5600b5481565b348015610545575f80fd5b506102c5600e5481565b34801561055a575f80fd5b506102a061056936600461156c565b61087b565b348015610579575f80fd5b506102c560085481565b34801561058e575f80fd5b50601f546102a09062010000900460ff1681565b3480156105ad575f80fd5b506102c5600f5481565b3480156105c2575f80fd5b506102c560065481565b3480156105d7575f80fd5b506102c56105e63660046115ef565b6001600160a01b039182165f908152601a6020908152604080832093909416825291909152205490565b34801561061b575f80fd5b50601854610269906001600160a01b031681565b34801561063a575f80fd5b506104b16106493660046115d4565b610887565b348015610659575f80fd5b506102c5600a5481565b34801561066e575f80fd5b506102a061067d3660046115d4565b601e6020525f908152604090205460ff1681565b6060600280546106a090611626565b80601f01602080910402602001604051908101604052809291908181526020018280546106cc90611626565b80156107175780601f106106ee57610100808354040283529160200191610717565b820191905f5260205f20905b8154815290600101906020018083116106fa57829003601f168201915b5050505050905090565b5f61072d33848461096e565b5060015b92915050565b5f610743848484610a91565b506107958433610790856040518060600160405280602881526020016117a2602891396001600160a01b038a165f908152601a602090815260408083203384529091529020549190610ed3565b61096e565b5060015b9392505050565b5f546001600160a01b031633146107d25760405162461bcd60e51b81526004016107c99061165e565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108435760405162461bcd60e51b81526004016107c99061165e565b600554600655601f805463ff0000001916905560036012819055600e8190556014819055601055565b6060600380546106a090611626565b5f610795338484610a91565b5f546001600160a01b031633146108b05760405162461bcd60e51b81526004016107c99061165e565b6001600160a01b0381166109155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c9565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109d05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c9565b6001600160a01b038216610a315760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c9565b6001600160a01b038381165f818152601a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610af65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c9565b6001600160a01b038316610b585760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c9565b601f5460ff1615610b7557610b6e848484610f0b565b9050610799565b6001600160a01b0384165f908152601d602052604090205460ff16158015610bb557506001600160a01b0383165f908152601d602052604090205460ff16155b15610c1c57600654821115610c1c5760405162461bcd60e51b815260206004820152602760248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152663c20b6b7baba1760c91b60648201526084016107c9565b305f9081526019602052604090205460085481108015908190610c425750601f5460ff16155b8015610c6557506001600160a01b0385165f908152601e602052604090205460ff165b8015610c785750601f54610100900460ff165b8015610c9c57506001600160a01b0386165f908152601b602052604090205460ff16155b8015610ca9575060085484115b15610cce57601f5462010000900460ff1615610cc55760085491505b610cce82610fee565b6001600160a01b0386165f908152601b602052604081205460ff1680610d0b57506001600160a01b0386165f908152601b602052604090205460ff165b15610d17575083610d25565b610d228787876110f6565b90505b601f546301000000900460ff168015610d5657506001600160a01b0386165f908152601c602052604090205460ff16155b15610d9057600754610d8682610d80896001600160a01b03165f9081526019602052604090205490565b906111f8565b1115610d90575f80fd5b601f545f906301000000900460ff16158015610dc357506001600160a01b0388165f908152601b602052604090205460ff165b610dcd5785610dd7565b610dd78683611256565b9050610e3d8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060195f8c6001600160a01b03166001600160a01b031681526020019081526020015f2054610ed39092919063ffffffff16565b6001600160a01b03808a165f908152601960205260408082209390935590891681522054610e6b90836111f8565b6001600160a01b038089165f8181526019602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ebe9086815260200190565b60405180910390a36001945050505050610799565b5f8184841115610ef65760405162461bcd60e51b81526004016107c9919061150a565b505f610f0284866116a7565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152601990915291822054610f5b918490610ed3565b6001600160a01b038086165f908152601960205260408082209390935590851681522054610f8990836111f8565b6001600160a01b038085165f8181526019602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fdc9086815260200190565b60405180910390a35060019392505050565b601f805460ff19166001179055600c546009545f9161101d916002916110179182908790611297565b90611315565b90505f61102a8383611256565b905061103581611356565b60095447905f906110549061104b906002611315565b600c5490611256565b90505f6110756002611017846110176009548861129790919063ffffffff16565b90505f61109183611017600b548761129790919063ffffffff16565b90505f6110a8826110a28786611256565b90611256565b905080156110c6576015546110c6906001600160a01b0316826114a6565b81156110e2576016546110e2906001600160a01b0316836114a6565b5050601f805460ff19169055505050505050565b6001600160a01b0383165f908152601e6020526040812054819060ff16156111395761113260646110176014548661129790919063ffffffff16565b9050611176565b6001600160a01b0384165f908152601e602052604090205460ff16156111765761117360646110176010548661129790919063ffffffff16565b90505b80156111ee57305f9081526019602052604090205461119590826111f8565b305f81815260196020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e59085815260200190565b60405180910390a35b610f028382611256565b5f8061120483856116ba565b9050838110156107995760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c9565b5f61079983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ed3565b5f825f036112a657505f610731565b5f6112b183856116cd565b9050826112be85836116e4565b146107995760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c9565b5f61079983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114de565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061138957611389611703565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114049190611717565b8160018151811061141757611417611703565b6001600160a01b03928316602091820292909201015260175461143d913091168461096e565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906114759085905f90869030904290600401611732565b5f604051808303815f87803b15801561148c575f80fd5b505af115801561149e573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156114d9573d5f803e3d5ffd5b505050565b5f81836114fe5760405162461bcd60e51b81526004016107c9919061150a565b505f610f0284866116e4565b5f6020808352835180828501525f5b8181101561153557858101830151858201604001528201611519565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611569575f80fd5b50565b5f806040838503121561157d575f80fd5b823561158881611555565b946020939093013593505050565b5f805f606084860312156115a8575f80fd5b83356115b381611555565b925060208401356115c381611555565b929592945050506040919091013590565b5f602082840312156115e4575f80fd5b813561079981611555565b5f8060408385031215611600575f80fd5b823561160b81611555565b9150602083013561161b81611555565b809150509250929050565b600181811c9082168061163a57607f821691505b60208210810361165857634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561073157610731611693565b8082018082111561073157610731611693565b808202811582820484141761073157610731611693565b5f826116fe57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611727575f80fd5b815161079981611555565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117805784516001600160a01b03168352938301939183019160010161175b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202deb62c5954b7b86229603ee22fcc1d8164f170c60973927db9541f3c81b4fdd64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610215575f3560e01c80636dd91a2d1161011e578063a9059cbb116100a8578063dd62ed3e1161006d578063dd62ed3e146105cc578063f242ab4114610610578063f2fde38b1461062f578063f77dceed1461064e578063f7e003bd14610663575f80fd5b8063a9059cbb1461054f578063aa3c66971461056e578063b3d706fe14610583578063b45e83f8146105a2578063cd627a66146105b7575f80fd5b80638c00e841116100ee5780638c00e841146104c75780638da5cb5b146104f557806395d89b4114610511578063a07c994b14610525578063a8d9ef681461053a575f80fd5b80636dd91a2d1461045457806370a0823114610469578063715018a61461049d578063751039fc146104b3575f80fd5b8063313ce5671161019f57806350faa1181161016f57806350faa118146103be57806356c9e482146103ec57806358bee4021461040c57806359eedafd146104215780635eed1f371461043f575f80fd5b8063313ce5671461034557806336ef22881461036657806343fad93f1461039457806347062402146103a9575f80fd5b806318160ddd116101e557806318160ddd146102d357806321a40155146102e757806323b872dd146102fc5780632b14ca561461031b5780632fac967814610330575f80fd5b806306fdde03146102205780630758d9241461024a578063095ea7b31461028157806314c20513146102b0575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b50610234610691565b604051610241919061150a565b60405180910390f35b348015610255575f80fd5b50601754610269906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b34801561028c575f80fd5b506102a061029b36600461156c565b610721565b6040519015158152602001610241565b3480156102bb575f80fd5b506102c560115481565b604051908152602001610241565b3480156102de575f80fd5b506005546102c5565b3480156102f2575f80fd5b506102c560095481565b348015610307575f80fd5b506102a0610316366004611596565b610737565b348015610326575f80fd5b506102c560105481565b34801561033b575f80fd5b506102c5600c5481565b348015610350575f80fd5b5060045460405160ff9091168152602001610241565b348015610371575f80fd5b506102a06103803660046115d4565b601d6020525f908152604090205460ff1681565b34801561039f575f80fd5b506102c5600d5481565b3480156103b4575f80fd5b506102c560145481565b3480156103c9575f80fd5b506102a06103d83660046115d4565b601b6020525f908152604090205460ff1681565b3480156103f7575f80fd5b50601f546102a0906301000000900460ff1681565b348015610417575f80fd5b506102c560075481565b34801561042c575f80fd5b50601f546102a090610100900460ff1681565b34801561044a575f80fd5b506102c560125481565b34801561045f575f80fd5b506102c560135481565b348015610474575f80fd5b506102c56104833660046115d4565b6001600160a01b03165f9081526019602052604090205490565b3480156104a8575f80fd5b506104b16107a0565b005b3480156104be575f80fd5b506104b161081a565b3480156104d2575f80fd5b506102a06104e13660046115d4565b601c6020525f908152604090205460ff1681565b348015610500575f80fd5b505f546001600160a01b0316610269565b34801561051c575f80fd5b5061023461086c565b348015610530575f80fd5b506102c5600b5481565b348015610545575f80fd5b506102c5600e5481565b34801561055a575f80fd5b506102a061056936600461156c565b61087b565b348015610579575f80fd5b506102c560085481565b34801561058e575f80fd5b50601f546102a09062010000900460ff1681565b3480156105ad575f80fd5b506102c5600f5481565b3480156105c2575f80fd5b506102c560065481565b3480156105d7575f80fd5b506102c56105e63660046115ef565b6001600160a01b039182165f908152601a6020908152604080832093909416825291909152205490565b34801561061b575f80fd5b50601854610269906001600160a01b031681565b34801561063a575f80fd5b506104b16106493660046115d4565b610887565b348015610659575f80fd5b506102c5600a5481565b34801561066e575f80fd5b506102a061067d3660046115d4565b601e6020525f908152604090205460ff1681565b6060600280546106a090611626565b80601f01602080910402602001604051908101604052809291908181526020018280546106cc90611626565b80156107175780601f106106ee57610100808354040283529160200191610717565b820191905f5260205f20905b8154815290600101906020018083116106fa57829003601f168201915b5050505050905090565b5f61072d33848461096e565b5060015b92915050565b5f610743848484610a91565b506107958433610790856040518060600160405280602881526020016117a2602891396001600160a01b038a165f908152601a602090815260408083203384529091529020549190610ed3565b61096e565b5060015b9392505050565b5f546001600160a01b031633146107d25760405162461bcd60e51b81526004016107c99061165e565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108435760405162461bcd60e51b81526004016107c99061165e565b600554600655601f805463ff0000001916905560036012819055600e8190556014819055601055565b6060600380546106a090611626565b5f610795338484610a91565b5f546001600160a01b031633146108b05760405162461bcd60e51b81526004016107c99061165e565b6001600160a01b0381166109155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c9565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109d05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c9565b6001600160a01b038216610a315760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c9565b6001600160a01b038381165f818152601a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610af65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c9565b6001600160a01b038316610b585760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c9565b601f5460ff1615610b7557610b6e848484610f0b565b9050610799565b6001600160a01b0384165f908152601d602052604090205460ff16158015610bb557506001600160a01b0383165f908152601d602052604090205460ff16155b15610c1c57600654821115610c1c5760405162461bcd60e51b815260206004820152602760248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152663c20b6b7baba1760c91b60648201526084016107c9565b305f9081526019602052604090205460085481108015908190610c425750601f5460ff16155b8015610c6557506001600160a01b0385165f908152601e602052604090205460ff165b8015610c785750601f54610100900460ff165b8015610c9c57506001600160a01b0386165f908152601b602052604090205460ff16155b8015610ca9575060085484115b15610cce57601f5462010000900460ff1615610cc55760085491505b610cce82610fee565b6001600160a01b0386165f908152601b602052604081205460ff1680610d0b57506001600160a01b0386165f908152601b602052604090205460ff165b15610d17575083610d25565b610d228787876110f6565b90505b601f546301000000900460ff168015610d5657506001600160a01b0386165f908152601c602052604090205460ff16155b15610d9057600754610d8682610d80896001600160a01b03165f9081526019602052604090205490565b906111f8565b1115610d90575f80fd5b601f545f906301000000900460ff16158015610dc357506001600160a01b0388165f908152601b602052604090205460ff165b610dcd5785610dd7565b610dd78683611256565b9050610e3d8160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060195f8c6001600160a01b03166001600160a01b031681526020019081526020015f2054610ed39092919063ffffffff16565b6001600160a01b03808a165f908152601960205260408082209390935590891681522054610e6b90836111f8565b6001600160a01b038089165f8181526019602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ebe9086815260200190565b60405180910390a36001945050505050610799565b5f8184841115610ef65760405162461bcd60e51b81526004016107c9919061150a565b505f610f0284866116a7565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152601990915291822054610f5b918490610ed3565b6001600160a01b038086165f908152601960205260408082209390935590851681522054610f8990836111f8565b6001600160a01b038085165f8181526019602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fdc9086815260200190565b60405180910390a35060019392505050565b601f805460ff19166001179055600c546009545f9161101d916002916110179182908790611297565b90611315565b90505f61102a8383611256565b905061103581611356565b60095447905f906110549061104b906002611315565b600c5490611256565b90505f6110756002611017846110176009548861129790919063ffffffff16565b90505f61109183611017600b548761129790919063ffffffff16565b90505f6110a8826110a28786611256565b90611256565b905080156110c6576015546110c6906001600160a01b0316826114a6565b81156110e2576016546110e2906001600160a01b0316836114a6565b5050601f805460ff19169055505050505050565b6001600160a01b0383165f908152601e6020526040812054819060ff16156111395761113260646110176014548661129790919063ffffffff16565b9050611176565b6001600160a01b0384165f908152601e602052604090205460ff16156111765761117360646110176010548661129790919063ffffffff16565b90505b80156111ee57305f9081526019602052604090205461119590826111f8565b305f81815260196020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111e59085815260200190565b60405180910390a35b610f028382611256565b5f8061120483856116ba565b9050838110156107995760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c9565b5f61079983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ed3565b5f825f036112a657505f610731565b5f6112b183856116cd565b9050826112be85836116e4565b146107995760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c9565b5f61079983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114de565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061138957611389611703565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114049190611717565b8160018151811061141757611417611703565b6001600160a01b03928316602091820292909201015260175461143d913091168461096e565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac947906114759085905f90869030904290600401611732565b5f604051808303815f87803b15801561148c575f80fd5b505af115801561149e573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156114d9573d5f803e3d5ffd5b505050565b5f81836114fe5760405162461bcd60e51b81526004016107c9919061150a565b505f610f0284866116e4565b5f6020808352835180828501525f5b8181101561153557858101830151858201604001528201611519565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611569575f80fd5b50565b5f806040838503121561157d575f80fd5b823561158881611555565b946020939093013593505050565b5f805f606084860312156115a8575f80fd5b83356115b381611555565b925060208401356115c381611555565b929592945050506040919091013590565b5f602082840312156115e4575f80fd5b813561079981611555565b5f8060408385031215611600575f80fd5b823561160b81611555565b9150602083013561161b81611555565b809150509250929050565b600181811c9082168061163a57607f821691505b60208210810361165857634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561073157610731611693565b8082018082111561073157610731611693565b808202811582820484141761073157610731611693565b5f826116fe57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611727575f80fd5b815161079981611555565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117805784516001600160a01b03168352938301939183019160010161175b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202deb62c5954b7b86229603ee22fcc1d8164f170c60973927db9541f3c81b4fdd64736f6c63430008150033

Deployed Bytecode Sourcemap

5004:9034:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7866:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5998:31;;;;;;;;;;-1:-1:-1;5998:31:0;;;;-1:-1:-1;;;;;5998:31:0;;;;;;-1:-1:-1;;;;;753:32:1;;;735:51;;723:2;708:18;5998:31:0;567:225:1;8251:161:0;;;;;;;;;;-1:-1:-1;8251:161:0;;;;;:::i;:::-;;:::i;:::-;;;1418:14:1;;1411:22;1393:41;;1381:2;1366:18;8251:161:0;1253:187:1;5773:28:0;;;;;;;;;;;;;;;;;;;1591:25:1;;;1579:2;1564:18;5773:28:0;1445:177:1;8143:100:0;;;;;;;;;;-1:-1:-1;8223:12:0;;8143:100;;5475:29;;;;;;;;;;;;;;;;8932:313;;;;;;;;;;-1:-1:-1;8932:313:0;;;;;:::i;:::-;;:::i;5737:27::-;;;;;;;;;;;;;;;;5586:33;;;;;;;;;;;;;;;;8052:83;;;;;;;;;;-1:-1:-1;8118:9:0;;8052:83;;8118:9;;;;2230:36:1;;2218:2;2203:18;8052:83:0;2088:184:1;6292:43:0;;;;;;;;;;-1:-1:-1;6292:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5628:29;;;;;;;;;;;;;;;;5881:26;;;;;;;;;;;;;;;;6188:43;;;;;;;;;;-1:-1:-1;6188:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6498:36;;;;;;;;;;-1:-1:-1;6498:36:0;;;;;;;;;;;5353:54;;;;;;;;;;;;;;;;6418:33;;;;;;;;;;-1:-1:-1;6418:33:0;;;;;;;;;;;5808:30;;;;;;;;;;;;;;;;5845:29;;;;;;;;;;;;;;;;9428:119;;;;;;;;;;-1:-1:-1;9428:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;9521:18:0;9494:7;9521:18;;;:9;:18;;;;;;;9428:119;4597:148;;;;;;;;;;;;;:::i;:::-;;11120:216;;;;;;;;;;;;;:::i;6238:47::-;;;;;;;;;;-1:-1:-1;6238:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4372:79;;;;;;;;;;-1:-1:-1;4410:7:0;4437:6;-1:-1:-1;;;;;4437:6:0;4372:79;;7957:87;;;;;;;;;;;;;:::i;5549:30::-;;;;;;;;;;;;;;;;5664;;;;;;;;;;;;;;;;9253:167;;;;;;;;;;-1:-1:-1;9253:167:0;;;;;:::i;:::-;;:::i;5414:51::-;;;;;;;;;;;;;;;;6458:33;;;;;;;;;;-1:-1:-1;6458:33:0;;;;;;;;;;;5701:29;;;;;;;;;;;;;;;;5296:50;;;;;;;;;;;;;;;;8777:143;;;;;;;;;;-1:-1:-1;8777:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8885:18:0;;;8858:7;8885:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8777:143;6036:22;;;;;;;;;;-1:-1:-1;6036:22:0;;;;-1:-1:-1;;;;;6036:22:0;;;4753:244;;;;;;;;;;-1:-1:-1;4753:244:0;;;;;:::i;:::-;;:::i;5511:31::-;;;;;;;;;;;;;;;;6342:43;;;;;;;;;;-1:-1:-1;6342:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7866:83;7903:13;7936:5;7929:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7866:83;:::o;8251:161::-;8326:4;8343:39;328:10;8366:7;8375:6;8343:8;:39::i;:::-;-1:-1:-1;8400:4:0;8251:161;;;;;:::o;8932:313::-;9030:4;9047:36;9057:6;9065:9;9076:6;9047:9;:36::i;:::-;-1:-1:-1;9094:121:0;9103:6;328:10;9125:89;9163:6;9125:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9125:19:0;;;;;;:11;:19;;;;;;;;328:10;9125:33;;;;;;;;;;:37;:89::i;:::-;9094:8;:121::i;:::-;-1:-1:-1;9233:4:0;8932:313;;;;;;:::o;4597:148::-;4506:6;;-1:-1:-1;;;;;4506:6:0;328:10;4506:22;4498:67;;;;-1:-1:-1;;;4498:67:0;;;;;;;:::i;:::-;;;;;;;;;4704:1:::1;4688:6:::0;;4667:40:::1;::::0;-1:-1:-1;;;;;4688:6:0;;::::1;::::0;4667:40:::1;::::0;4704:1;;4667:40:::1;4735:1;4718:19:::0;;-1:-1:-1;;;;;;4718:19:0::1;::::0;;4597:148::o;11120:216::-;4506:6;;-1:-1:-1;;;;;4506:6:0;328:10;4506:22;4498:67;;;;-1:-1:-1;;;4498:67:0;;;;;;;:::i;:::-;11187:12:::1;::::0;11174:10:::1;:25:::0;11210:17:::1;:25:::0;;-1:-1:-1;;11210:25:0::1;::::0;;:17:::1;11246:10;:14:::0;;;11271:10:::1;:14:::0;;;11296:6:::1;:10:::0;;;11317:7:::1;:11:::0;11120:216::o;7957:87::-;7996:13;8029:7;8022:14;;;;;:::i;9253:167::-;9331:4;9348:42;328:10;9372:9;9383:6;9348:9;:42::i;4753:244::-;4506:6;;-1:-1:-1;;;;;4506:6:0;328:10;4506:22;4498:67;;;;-1:-1:-1;;;4498:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4842:22:0;::::1;4834:73;;;::::0;-1:-1:-1;;;4834:73:0;;4078:2:1;4834:73:0::1;::::0;::::1;4060:21:1::0;4117:2;4097:18;;;4090:30;4156:34;4136:18;;;4129:62;-1:-1:-1;;;4207:18:1;;;4200:36;4253:19;;4834:73:0::1;3876:402:1::0;4834:73:0::1;4944:6;::::0;;4923:38:::1;::::0;-1:-1:-1;;;;;4923:38:0;;::::1;::::0;4944:6;::::1;::::0;4923:38:::1;::::0;::::1;4972:6;:17:::0;;-1:-1:-1;;;;;;4972:17:0::1;-1:-1:-1::0;;;;;4972:17:0;;;::::1;::::0;;;::::1;::::0;;4753:244::o;8424:337::-;-1:-1:-1;;;;;8517:19:0;;8509:68;;;;-1:-1:-1;;;8509:68:0;;4485:2:1;8509:68:0;;;4467:21:1;4524:2;4504:18;;;4497:30;4563:34;4543:18;;;4536:62;-1:-1:-1;;;4614:18:1;;;4607:34;4658:19;;8509:68:0;4283:400:1;8509:68:0;-1:-1:-1;;;;;8596:21:0;;8588:68;;;;-1:-1:-1;;;8588:68:0;;4890:2:1;8588:68:0;;;4872:21:1;4929:2;4909:18;;;4902:30;4968:34;4948:18;;;4941:62;-1:-1:-1;;;5019:18:1;;;5012:32;5061:19;;8588:68:0;4688:398:1;8588:68:0;-1:-1:-1;;;;;8669:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8721:32;;1591:25:1;;;8721:32:0;;1564:18:1;8721:32:0;;;;;;;8424:337;;;:::o;12187:1848::-;12274:4;-1:-1:-1;;;;;12299:20:0;;12291:70;;;;-1:-1:-1;;;12291:70:0;;5293:2:1;12291:70:0;;;5275:21:1;5332:2;5312:18;;;5305:30;5371:34;5351:18;;;5344:62;-1:-1:-1;;;5422:18:1;;;5415:35;5467:19;;12291:70:0;5091:401:1;12291:70:0;-1:-1:-1;;;;;12380:23:0;;12372:71;;;;-1:-1:-1;;;12372:71:0;;5699:2:1;12372:71:0;;;5681:21:1;5738:2;5718:18;;;5711:30;5777:34;5757:18;;;5750:62;-1:-1:-1;;;5828:18:1;;;5821:33;5871:19;;12372:71:0;5497:399:1;12372:71:0;12457:8;;;;12454:1574;;;12499:41;12514:6;12522:9;12533:6;12499:14;:41::i;:::-;12492:48;;;;12454:1574;-1:-1:-1;;;;;12596:18:0;;;;;;:10;:18;;;;;;;;12595:19;:45;;;;-1:-1:-1;;;;;;12619:21:0;;;;;;:10;:21;;;;;;;;12618:22;12595:45;12592:157;;;12679:10;;12669:6;:20;;12661:72;;;;-1:-1:-1;;;12661:72:0;;6103:2:1;12661:72:0;;;6085:21:1;6142:2;6122:18;;;6115:30;6181:34;6161:18;;;6154:62;-1:-1:-1;;;6232:18:1;;;6225:37;6279:19;;12661:72:0;5901:403:1;12661:72:0;12816:4;12777:18;9521;;;:9;:18;;;;;;12870:16;;12856:30;;;;;;;12919:24;;-1:-1:-1;12935:8:0;;;;12934:9;12919:24;:49;;;;-1:-1:-1;;;;;;12947:21:0;;;;;;:10;:21;;;;;;;;12919:49;:67;;;;-1:-1:-1;12972:14:0;;;;;;;12919:67;:90;;;;-1:-1:-1;;;;;;12991:18:0;;;;;;:10;:18;;;;;;;;12990:19;12919:90;:119;;;;;13022:16;;13013:6;:25;12919:119;12915:287;;;13076:13;;;;;;;13073:68;;;13125:16;;13112:29;;13073:68;13160:22;13171:10;13160;:22::i;:::-;-1:-1:-1;;;;;13297:18:0;;13218:19;13297:18;;;:10;:18;;;;;;;;;:43;;-1:-1:-1;;;;;;13319:21:0;;;;;;:10;:21;;;;;;;;13297:43;13293:200;;;-1:-1:-1;13375:6:0;13293:200;;;13436:41;13451:6;13459:9;13470:6;13436:14;:41::i;:::-;13422:55;;13293:200;13510:17;;;;;;;:47;;;;-1:-1:-1;;;;;;13532:25:0;;;;;;:14;:25;;;;;;;;13531:26;13510:47;13507:133;;;13625:14;;13584:37;13609:11;13584:20;13594:9;-1:-1:-1;;;;;9521:18:0;9494:7;9521:18;;;:9;:18;;;;;;;9428:119;13584:20;:24;;:37::i;:::-;:55;;13576:64;;;;;;13684:17;;13657:22;;13684:17;;;;;13683:18;:40;;;;-1:-1:-1;;;;;;13705:18:0;;;;;;:10;:18;;;;;;;;13683:40;13682:77;;13753:6;13682:77;;;13727:23;:6;13738:11;13727:10;:23::i;:::-;13657:102;;13794:61;13816:14;13794:61;;;;;;;;;;;;;-1:-1:-1;;;13794:61:0;;;:9;:17;13804:6;-1:-1:-1;;;;;13794:17:0;-1:-1:-1;;;;;13794:17:0;;;;;;;;;;;;;:21;;:61;;;;;:::i;:::-;-1:-1:-1;;;;;13774:17:0;;;;;;;:9;:17;;;;;;:81;;;;13893:20;;;;;;;:37;;13918:11;13893:24;:37::i;:::-;-1:-1:-1;;;;;13870:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13950:40;;;;;;;;;;13978:11;1591:25:1;;1579:2;1564:18;;1445:177;13950:40:0;;;;;;;;14012:4;14005:11;;;;;;;;952:192;1038:7;1074:12;1066:6;;;;1058:29;;;;-1:-1:-1;;;1058:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1098:9:0;1110:5;1114:1;1110;:5;:::i;:::-;1098:17;952:192;-1:-1:-1;;;;;952:192:0:o;9571:330::-;9701:53;;;;;;;;;;;-1:-1:-1;;;9701:53:0;;;;;;;;-1:-1:-1;;;;;9701:17:0;;9664:4;9701:17;;;:9;:17;;;;;;;:53;;9723:6;;9701:21;:53::i;:::-;-1:-1:-1;;;;;9681:17:0;;;;;;;:9;:17;;;;;;:73;;;;9788:20;;;;;;;:32;;9813:6;9788:24;:32::i;:::-;-1:-1:-1;;;;;9765:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9836:35;;;;;;;;;;9864:6;1591:25:1;;1579:2;1564:18;;1445:177;9836:35:0;;;;;;;;-1:-1:-1;9889:4:0;9571:330;;;;;:::o;11348:827::-;6572:8;:15;;-1:-1:-1;;6572:15:0;6583:4;6572:15;;;11463:13:::1;::::0;11447:10:::1;::::0;6572:8;;11435:49:::1;::::0;11482:1:::1;::::0;11435:42:::1;::::0;;;:7;;:11:::1;:23::i;:::-;:27:::0;::::1;:42::i;:49::-;11413:71:::0;-1:-1:-1;11495:20:0::1;11518:24;:7:::0;11413:71;11518:11:::1;:24::i;:::-;11495:47;;11555:30;11572:12;11555:16;:30::i;:::-;11686:10;::::0;11612:21:::1;::::0;11596:13:::1;::::0;11668:36:::1;::::0;11686:17:::1;::::0;11701:1:::1;11686:14;:17::i;:::-;11668:13;::::0;;:17:::1;:36::i;:::-;11646:58;;11725:26;11754:45;11797:1;11754:38;11780:11;11754:21;11764:10;;11754:5;:9;;:21;;;;:::i;:45::-;11725:74;;11810:28;11841:39;11868:11;11841:22;11851:11;;11841:5;:9;;:22;;;;:::i;:39::-;11810:70:::0;-1:-1:-1;11891:26:0::1;11920:55;11810:70:::0;11920:29:::1;:5:::0;11930:18;11920:9:::1;:29::i;:::-;:33:::0;::::1;:55::i;:::-;11891:84:::0;-1:-1:-1;11991:22:0;;11988:81:::1;;12039:9;::::0;12028:41:::1;::::0;-1:-1:-1;;;;;12039:9:0::1;12050:18:::0;12028:10:::1;:41::i;:::-;12085:24:::0;;12082:85:::1;;12135:9;::::0;12124:43:::1;::::0;-1:-1:-1;;;;;12135:9:0::1;12146:20:::0;12124:10:::1;:43::i;:::-;-1:-1:-1::0;;6610:8:0;:16;;-1:-1:-1;;6610:16:0;;;-1:-1:-1;;;;;;11348:827:0:o;10458:481::-;-1:-1:-1;;;;;10600:18:0;;10551:7;10600:18;;;:10;:18;;;;;;10551:7;;10600:18;;10597:137;;;10627:27;10650:3;10627:18;10638:6;;10627;:10;;:18;;;;:::i;:27::-;10621:33;;10597:137;;;-1:-1:-1;;;;;10674:21:0;;;;;;:10;:21;;;;;;;;10671:63;;;10704:28;10728:3;10704:19;10715:7;;10704:6;:10;;:19;;;;:::i;:28::-;10698:34;;10671:63;10747:7;;10744:155;;10816:4;10798:24;;;;:9;:24;;;;;;:33;;10827:3;10798:28;:33::i;:::-;10789:4;10771:24;;;;:9;:24;;;;;;;:60;;;;10851:36;;-1:-1:-1;;;;;10851:36:0;;;;;;;10883:3;1591:25:1;;1579:2;1564:18;;1445:177;10851:36:0;;;;;;;;10744:155;10916:15;:6;10927:3;10916:10;:15::i;619:181::-;677:7;;709:5;713:1;709;:5;:::i;:::-;697:17;;738:1;733;:6;;725:46;;;;-1:-1:-1;;;725:46:0;;6906:2:1;725:46:0;;;6888:21:1;6945:2;6925:18;;;6918:30;6984:29;6964:18;;;6957:57;7031:18;;725:46:0;6704:351:1;808:136:0;866:7;893:43;897:1;900;893:43;;;;;;;;;;;;;;;;;:3;:43::i;1152:250::-;1210:7;1234:1;1239;1234:6;1230:47;;-1:-1:-1;1264:1:0;1257:8;;1230:47;1289:9;1301:5;1305:1;1301;:5;:::i;:::-;1289:17;-1:-1:-1;1334:1:0;1325:5;1329:1;1289:17;1325:5;:::i;:::-;:10;1317:56;;;;-1:-1:-1;;;1317:56:0;;7657:2:1;1317:56:0;;;7639:21:1;7696:2;7676:18;;;7669:30;7735:34;7715:18;;;7708:62;-1:-1:-1;;;7786:18:1;;;7779:31;7827:19;;1317:56:0;7455:397:1;1410:132:0;1468:7;1495:39;1499:1;1502;1495:39;;;;;;;;;;;;;;;;;:3;:39::i;9913:533::-;10003:16;;;10017:1;10003:16;;;;;;;;9979:21;;10003:16;;;;;;;;;;-1:-1:-1;10003:16:0;9979:40;;10048:4;10030;10035:1;10030:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10030:23:0;;;:7;;;;;;;;;;:23;;;;10074:9;;:16;;;-1:-1:-1;;;10074:16:0;;;;:9;;;;;:14;;:16;;;;;10030:7;;10074:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10064:4;10069:1;10064:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10064:26:0;;;:7;;;;;;;;;:26;10135:9;;10103:56;;10120:4;;10135:9;10147:11;10103:8;:56::i;:::-;10204:9;;:234;;-1:-1:-1;;;10204:234:0;;-1:-1:-1;;;;;10204:9:0;;;;:60;;:234;;10279:11;;10204:9;;10349:4;;10376;;10412:15;;10204:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9968:478;9913:533;:::o;10992:116::-;11074:26;;-1:-1:-1;;;;;11074:18:0;;;:26;;;;;11093:6;;11074:26;;;;11093:6;11074:18;:26;;;;;;;;;;;;;;;;;;;;;10992:116;;:::o;1550:189::-;1636:7;1671:12;1664:5;1656:28;;;;-1:-1:-1;;;1656:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1695:9:0;1707:5;1711:1;1707;:5;:::i;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;797:131::-;-1:-1:-1;;;;;872:31:1;;862:42;;852:70;;918:1;915;908:12;852:70;797:131;:::o;933:315::-;1001:6;1009;1062:2;1050:9;1041:7;1037:23;1033:32;1030:52;;;1078:1;1075;1068:12;1030:52;1117:9;1104:23;1136:31;1161:5;1136:31;:::i;:::-;1186:5;1238:2;1223:18;;;;1210:32;;-1:-1:-1;;;933:315:1:o;1627:456::-;1704:6;1712;1720;1773:2;1761:9;1752:7;1748:23;1744:32;1741:52;;;1789:1;1786;1779:12;1741:52;1828:9;1815:23;1847:31;1872:5;1847:31;:::i;:::-;1897:5;-1:-1:-1;1954:2:1;1939:18;;1926:32;1967:33;1926:32;1967:33;:::i;:::-;1627:456;;2019:7;;-1:-1:-1;;;2073:2:1;2058:18;;;;2045:32;;1627:456::o;2277:247::-;2336:6;2389:2;2377:9;2368:7;2364:23;2360:32;2357:52;;;2405:1;2402;2395:12;2357:52;2444:9;2431:23;2463:31;2488:5;2463:31;:::i;2737:388::-;2805:6;2813;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;2921:9;2908:23;2940:31;2965:5;2940:31;:::i;:::-;2990:5;-1:-1:-1;3047:2:1;3032:18;;3019:32;3060:33;3019:32;3060:33;:::i;:::-;3112:7;3102:17;;;2737:388;;;;;:::o;3130:380::-;3209:1;3205:12;;;;3252;;;3273:61;;3327:4;3319:6;3315:17;3305:27;;3273:61;3380:2;3372:6;3369:14;3349:18;3346:38;3343:161;;3426:10;3421:3;3417:20;3414:1;3407:31;3461:4;3458:1;3451:15;3489:4;3486:1;3479:15;3343:161;;3130:380;;;:::o;3515:356::-;3717:2;3699:21;;;3736:18;;;3729:30;3795:34;3790:2;3775:18;;3768:62;3862:2;3847:18;;3515:356::o;6309:127::-;6370:10;6365:3;6361:20;6358:1;6351:31;6401:4;6398:1;6391:15;6425:4;6422:1;6415:15;6441:128;6508:9;;;6529:11;;;6526:37;;;6543:18;;:::i;6574:125::-;6639:9;;;6660:10;;;6657:36;;;6673:18;;:::i;7060:168::-;7133:9;;;7164;;7181:15;;;7175:22;;7161:37;7151:71;;7202:18;;:::i;7233:217::-;7273:1;7299;7289:132;;7343:10;7338:3;7334:20;7331:1;7324:31;7378:4;7375:1;7368:15;7406:4;7403:1;7396:15;7289:132;-1:-1:-1;7435:9:1;;7233:217::o;7989:127::-;8050:10;8045:3;8041:20;8038:1;8031:31;8081:4;8078:1;8071:15;8105:4;8102:1;8095:15;8121:251;8191:6;8244:2;8232:9;8223:7;8219:23;8215:32;8212:52;;;8260:1;8257;8250:12;8212:52;8292:9;8286:16;8311:31;8336:5;8311:31;:::i;8377:980::-;8639:4;8687:3;8676:9;8672:19;8718:6;8707:9;8700:25;8744:2;8782:6;8777:2;8766:9;8762:18;8755:34;8825:3;8820:2;8809:9;8805:18;8798:31;8849:6;8884;8878:13;8915:6;8907;8900:22;8953:3;8942:9;8938:19;8931:26;;8992:2;8984:6;8980:15;8966:29;;9013:1;9023:195;9037:6;9034:1;9031:13;9023:195;;;9102:13;;-1:-1:-1;;;;;9098:39:1;9086:52;;9193:15;;;;9158:12;;;;9134:1;9052:9;9023:195;;;-1:-1:-1;;;;;;;9274:32:1;;;;9269:2;9254:18;;9247:60;-1:-1:-1;;;9338:3:1;9323:19;9316:35;9235:3;8377:980;-1:-1:-1;;;8377:980:1:o

Swarm Source

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