ETH Price: $3,250.08 (-0.27%)
Gas: 2 Gwei

Token

FreeSpeech (FreeSpeech)
 

Overview

Max Total Supply

100,000,000,000 FreeSpeech

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
943,913,326.205638285 FreeSpeech

Value
$0.00
0xd7891b8e0086d8c012c837d466a8e1d7c87942db
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:
FreeSpeech

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-29
*/

// SPDX-License-Identifier: UNLICENSED 
/* 
    0 TAX 
    safu
*/

pragma solidity 0.8.17;

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

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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

}

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

}

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

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

contract FreeSpeech is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    string private constant _name = "FreeSpeech";
    string private constant _symbol = "FreeSpeech";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private _maxWalletSize = _tTotal.mul(2).div(100);
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _standardTax=4;

        emit Transfer(address(0), _msgSender(), _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 pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

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


        if (from != owner() && to != owner()) {
            _feeAddr1 = 0;
            _feeAddr2 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }

    function setstandard(uint256 newTax) external onlyOwner{
      _standardTax=newTax;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setstandard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b68056bc75e2d631000006000196200032a565b620000299060001962000357565b600755600e805462ffffff60a81b191690556200007760646200006368056bc75e2d631000006002620001f7602090811b620008ef17901c565b6200028e60201b620009781790919060201c565b600f55620000a4606462000063600268056bc75e2d63100000620001f760201b620008ef1790919060201c565b601055348015620000b457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b03191633908117909155600754600091825260026020526040822055600190600590620001366000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c549091168352912080549092161790556004600b556200019a3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d63100000604051620001e991815260200190565b60405180910390a3620003ee565b6000826000036200020b5750600062000288565b60006200021983856200036d565b90508262000228858362000387565b14620002855760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200028583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620002d860201b60201c565b60008183620002fc5760405162461bcd60e51b81526004016200027c91906200039e565b5060006200030b848662000387565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b6000826200033c576200033c62000314565b500690565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000288576200028862000341565b808202811582820484141762000288576200028862000341565b60008262000399576200039962000314565b500490565b600060208083528351808285015260005b81811015620003cd57858101830151858201604001528201620003af565b506000604082860101526040601f19601f8301168501019250505092915050565b61176d80620003fe6000396000f3fe6080604052600436106101025760003560e01c806370a082311161009557806395d89b411161006457806395d89b411461010e578063a9059cbb146102ab578063c3c8cd80146102cb578063c9567bf9146102e0578063dd62ed3e146102f557600080fd5b806370a0823114610239578063715018a614610259578063751039fc1461026e5780638da5cb5b1461028357600080fd5b806323b872dd116100d157806323b872dd146101c8578063313ce567146101e85780635932ead1146102045780636fc3eaec1461022457600080fd5b806306fdde031461010e578063095ea7b31461015057806312ba46c51461018057806318160ddd146101a257600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b50604080518082018252600a81526908ce4cacaa6e0cacac6d60b31b60208201529051610147919061140c565b60405180910390f35b34801561015c57600080fd5b5061017061016b36600461146f565b61033b565b6040519015158152602001610147565b34801561018c57600080fd5b506101a061019b36600461149b565b610352565b005b3480156101ae57600080fd5b5068056bc75e2d631000005b604051908152602001610147565b3480156101d457600080fd5b506101706101e33660046114b4565b61038a565b3480156101f457600080fd5b5060405160098152602001610147565b34801561021057600080fd5b506101a061021f366004611503565b6103f3565b34801561023057600080fd5b506101a061043b565b34801561024557600080fd5b506101ba610254366004611520565b610468565b34801561026557600080fd5b506101a061048a565b34801561027a57600080fd5b506101a06104fe565b34801561028f57600080fd5b506000546040516001600160a01b039091168152602001610147565b3480156102b757600080fd5b506101706102c636600461146f565b61053c565b3480156102d757600080fd5b506101a0610549565b3480156102ec57600080fd5b506101a061057f565b34801561030157600080fd5b506101ba61031036600461153d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103483384846109ba565b5060015b92915050565b6000546001600160a01b031633146103855760405162461bcd60e51b815260040161037c90611576565b60405180910390fd5b600b55565b6000610397848484610ade565b6103e984336103e485604051806060016040528060288152602001611710602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610dfb565b6109ba565b5060019392505050565b6000546001600160a01b0316331461041d5760405162461bcd60e51b815260040161037c90611576565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461045b57600080fd5b4761046581610e35565b50565b6001600160a01b03811660009081526002602052604081205461034c90610e6f565b6000546001600160a01b031633146104b45760405162461bcd60e51b815260040161037c90611576565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105285760405162461bcd60e51b815260040161037c90611576565b68056bc75e2d63100000600f819055601055565b6000610348338484610ade565b600c546001600160a01b0316336001600160a01b03161461056957600080fd5b600061057430610468565b905061046581610eec565b6000546001600160a01b031633146105a95760405162461bcd60e51b815260040161037c90611576565b600e54600160a01b900460ff16156106035760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161037c565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610640308268056bc75e2d631000006109ba565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a291906115ab565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071391906115ab565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610760573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078491906115ab565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d71947306107b481610468565b6000806107c96000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610831573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061085691906115c8565b5050600e805463ffff00ff60a01b198116630101000160a01b17909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156108c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb91906115f6565b5050565b6000826000036109015750600061034c565b600061090d8385611629565b90508261091a8583611640565b146109715760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161037c565b9392505050565b600061097183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611066565b6001600160a01b038316610a1c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161037c565b6001600160a01b038216610a7d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161037c565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161037c565b6001600160a01b038216610ba45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161037c565b60008111610c065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161037c565b6000546001600160a01b03848116911614801590610c3257506000546001600160a01b03838116911614155b15610de0576000600955600b54600a55600e546001600160a01b038481169116148015610c6d5750600d546001600160a01b03838116911614155b8015610c9257506001600160a01b03821660009081526005602052604090205460ff16155b8015610ca75750600e54600160b81b900460ff165b15610d6357600f54811115610cfe5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161037c565b60105481610d0b84610468565b610d159190611662565b1115610d635760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161037c565b6000610d6e30610468565b600e54909150600160a81b900460ff16158015610d995750600e546001600160a01b03858116911614155b8015610dae5750600e54600160b01b900460ff165b8015610dba5750600081115b15610dda57610dc881610eec565b478015610dd857610dd847610e35565b505b50610deb565b60006009819055600a555b610df6838383611094565b505050565b60008184841115610e1f5760405162461bcd60e51b815260040161037c919061140c565b506000610e2c8486611675565b95945050505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108eb573d6000803e3d6000fd5b6000600754821115610ed65760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161037c565b6000610ee061109f565b90506109718382610978565b600e805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f3457610f34611688565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb191906115ab565b81600181518110610fc457610fc4611688565b6001600160a01b039283166020918202929092010152600d54610fea91309116846109ba565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061102390859060009086903090429060040161169e565b600060405180830381600087803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b600081836110875760405162461bcd60e51b815260040161037c919061140c565b506000610e2c8486611640565b610df68383836110c2565b60008060006110ac6111b9565b90925090506110bb8282610978565b9250505090565b6000806000806000806110d4876111fb565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111069087611258565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611135908661129a565b6001600160a01b038916600090815260026020526040902055611157816112f9565b6111618483611343565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111a691815260200190565b60405180910390a3505050505050505050565b600754600090819068056bc75e2d631000006111d58282610978565b8210156111f25750506007549268056bc75e2d6310000092509050565b90939092509050565b60008060008060008060008060006112188a600954600a54611367565b925092509250600061122861109f565b9050600080600061123b8e8787876113bc565b919e509c509a509598509396509194505050505091939550919395565b600061097183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dfb565b6000806112a78385611662565b9050838110156109715760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161037c565b600061130361109f565b9050600061131183836108ef565b3060009081526002602052604090205490915061132e908261129a565b30600090815260026020526040902055505050565b6007546113509083611258565b600755600854611360908261129a565b6008555050565b6000808080611381606461137b89896108ef565b90610978565b90506000611394606461137b8a896108ef565b905060006113ac826113a68b86611258565b90611258565b9992985090965090945050505050565b60008080806113cb88866108ef565b905060006113d988876108ef565b905060006113e788886108ef565b905060006113f9826113a68686611258565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156114395785810183015185820160400152820161141d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461046557600080fd5b6000806040838503121561148257600080fd5b823561148d8161145a565b946020939093013593505050565b6000602082840312156114ad57600080fd5b5035919050565b6000806000606084860312156114c957600080fd5b83356114d48161145a565b925060208401356114e48161145a565b929592945050506040919091013590565b801515811461046557600080fd5b60006020828403121561151557600080fd5b8135610971816114f5565b60006020828403121561153257600080fd5b81356109718161145a565b6000806040838503121561155057600080fd5b823561155b8161145a565b9150602083013561156b8161145a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115bd57600080fd5b81516109718161145a565b6000806000606084860312156115dd57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561160857600080fd5b8151610971816114f5565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761034c5761034c611613565b60008261165d57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561034c5761034c611613565b8181038181111561034c5761034c611613565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116ee5784516001600160a01b0316835293830193918301916001016116c9565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220994179941637fe5a75c1f2b7a9f438cdeb1ab56d670b9356337b1aa3a3c6e61f64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370a082311161009557806395d89b411161006457806395d89b411461010e578063a9059cbb146102ab578063c3c8cd80146102cb578063c9567bf9146102e0578063dd62ed3e146102f557600080fd5b806370a0823114610239578063715018a614610259578063751039fc1461026e5780638da5cb5b1461028357600080fd5b806323b872dd116100d157806323b872dd146101c8578063313ce567146101e85780635932ead1146102045780636fc3eaec1461022457600080fd5b806306fdde031461010e578063095ea7b31461015057806312ba46c51461018057806318160ddd146101a257600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b50604080518082018252600a81526908ce4cacaa6e0cacac6d60b31b60208201529051610147919061140c565b60405180910390f35b34801561015c57600080fd5b5061017061016b36600461146f565b61033b565b6040519015158152602001610147565b34801561018c57600080fd5b506101a061019b36600461149b565b610352565b005b3480156101ae57600080fd5b5068056bc75e2d631000005b604051908152602001610147565b3480156101d457600080fd5b506101706101e33660046114b4565b61038a565b3480156101f457600080fd5b5060405160098152602001610147565b34801561021057600080fd5b506101a061021f366004611503565b6103f3565b34801561023057600080fd5b506101a061043b565b34801561024557600080fd5b506101ba610254366004611520565b610468565b34801561026557600080fd5b506101a061048a565b34801561027a57600080fd5b506101a06104fe565b34801561028f57600080fd5b506000546040516001600160a01b039091168152602001610147565b3480156102b757600080fd5b506101706102c636600461146f565b61053c565b3480156102d757600080fd5b506101a0610549565b3480156102ec57600080fd5b506101a061057f565b34801561030157600080fd5b506101ba61031036600461153d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103483384846109ba565b5060015b92915050565b6000546001600160a01b031633146103855760405162461bcd60e51b815260040161037c90611576565b60405180910390fd5b600b55565b6000610397848484610ade565b6103e984336103e485604051806060016040528060288152602001611710602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610dfb565b6109ba565b5060019392505050565b6000546001600160a01b0316331461041d5760405162461bcd60e51b815260040161037c90611576565b600e8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461045b57600080fd5b4761046581610e35565b50565b6001600160a01b03811660009081526002602052604081205461034c90610e6f565b6000546001600160a01b031633146104b45760405162461bcd60e51b815260040161037c90611576565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105285760405162461bcd60e51b815260040161037c90611576565b68056bc75e2d63100000600f819055601055565b6000610348338484610ade565b600c546001600160a01b0316336001600160a01b03161461056957600080fd5b600061057430610468565b905061046581610eec565b6000546001600160a01b031633146105a95760405162461bcd60e51b815260040161037c90611576565b600e54600160a01b900460ff16156106035760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161037c565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610640308268056bc75e2d631000006109ba565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a291906115ab565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071391906115ab565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610760573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078491906115ab565b600e80546001600160a01b0319166001600160a01b03928316179055600d541663f305d71947306107b481610468565b6000806107c96000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610831573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061085691906115c8565b5050600e805463ffff00ff60a01b198116630101000160a01b17909155600d5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156108c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108eb91906115f6565b5050565b6000826000036109015750600061034c565b600061090d8385611629565b90508261091a8583611640565b146109715760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161037c565b9392505050565b600061097183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611066565b6001600160a01b038316610a1c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161037c565b6001600160a01b038216610a7d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161037c565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b425760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161037c565b6001600160a01b038216610ba45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161037c565b60008111610c065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161037c565b6000546001600160a01b03848116911614801590610c3257506000546001600160a01b03838116911614155b15610de0576000600955600b54600a55600e546001600160a01b038481169116148015610c6d5750600d546001600160a01b03838116911614155b8015610c9257506001600160a01b03821660009081526005602052604090205460ff16155b8015610ca75750600e54600160b81b900460ff165b15610d6357600f54811115610cfe5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161037c565b60105481610d0b84610468565b610d159190611662565b1115610d635760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161037c565b6000610d6e30610468565b600e54909150600160a81b900460ff16158015610d995750600e546001600160a01b03858116911614155b8015610dae5750600e54600160b01b900460ff165b8015610dba5750600081115b15610dda57610dc881610eec565b478015610dd857610dd847610e35565b505b50610deb565b60006009819055600a555b610df6838383611094565b505050565b60008184841115610e1f5760405162461bcd60e51b815260040161037c919061140c565b506000610e2c8486611675565b95945050505050565b600c546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108eb573d6000803e3d6000fd5b6000600754821115610ed65760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161037c565b6000610ee061109f565b90506109718382610978565b600e805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f3457610f34611688565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb191906115ab565b81600181518110610fc457610fc4611688565b6001600160a01b039283166020918202929092010152600d54610fea91309116846109ba565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061102390859060009086903090429060040161169e565b600060405180830381600087803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b5050600e805460ff60a81b1916905550505050565b600081836110875760405162461bcd60e51b815260040161037c919061140c565b506000610e2c8486611640565b610df68383836110c2565b60008060006110ac6111b9565b90925090506110bb8282610978565b9250505090565b6000806000806000806110d4876111fb565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111069087611258565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611135908661129a565b6001600160a01b038916600090815260026020526040902055611157816112f9565b6111618483611343565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111a691815260200190565b60405180910390a3505050505050505050565b600754600090819068056bc75e2d631000006111d58282610978565b8210156111f25750506007549268056bc75e2d6310000092509050565b90939092509050565b60008060008060008060008060006112188a600954600a54611367565b925092509250600061122861109f565b9050600080600061123b8e8787876113bc565b919e509c509a509598509396509194505050505091939550919395565b600061097183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dfb565b6000806112a78385611662565b9050838110156109715760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161037c565b600061130361109f565b9050600061131183836108ef565b3060009081526002602052604090205490915061132e908261129a565b30600090815260026020526040902055505050565b6007546113509083611258565b600755600854611360908261129a565b6008555050565b6000808080611381606461137b89896108ef565b90610978565b90506000611394606461137b8a896108ef565b905060006113ac826113a68b86611258565b90611258565b9992985090965090945050505050565b60008080806113cb88866108ef565b905060006113d988876108ef565b905060006113e788886108ef565b905060006113f9826113a68686611258565b939b939a50919850919650505050505050565b600060208083528351808285015260005b818110156114395785810183015185820160400152820161141d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461046557600080fd5b6000806040838503121561148257600080fd5b823561148d8161145a565b946020939093013593505050565b6000602082840312156114ad57600080fd5b5035919050565b6000806000606084860312156114c957600080fd5b83356114d48161145a565b925060208401356114e48161145a565b929592945050506040919091013590565b801515811461046557600080fd5b60006020828403121561151557600080fd5b8135610971816114f5565b60006020828403121561153257600080fd5b81356109718161145a565b6000806040838503121561155057600080fd5b823561155b8161145a565b9150602083013561156b8161145a565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115bd57600080fd5b81516109718161145a565b6000806000606084860312156115dd57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561160857600080fd5b8151610971816114f5565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761034c5761034c611613565b60008261165d57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561034c5761034c611613565b8181038181111561034c5761034c611613565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116ee5784516001600160a01b0316835293830193918301916001016116c9565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220994179941637fe5a75c1f2b7a9f438cdeb1ab56d670b9356337b1aa3a3c6e61f64736f6c63430008110033

Deployed Bytecode Sourcemap

3549:9872:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5280:83;;;;;;;;;;-1:-1:-1;5350:5:0;;;;;;;;;;;-1:-1:-1;;;5350:5:0;;;;5280:83;;;;5350:5;5280:83;:::i;:::-;;;;;;;;6132:161;;;;;;;;;;-1:-1:-1;6132:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6132:161:0;1023:187:1;9163:91:0;;;;;;;;;;-1:-1:-1;9163:91:0;;;;;:::i;:::-;;:::i;:::-;;5557:95;;;;;;;;;;-1:-1:-1;4007:20:0;5557:95;;;1546:25:1;;;1534:2;1519:18;5557:95:0;1400:177:1;6301:313:0;;;;;;;;;;-1:-1:-1;6301:313:0;;;;;:::i;:::-;;:::i;5466:83::-;;;;;;;;;;-1:-1:-1;5466:83:0;;4410:1;2185:36:1;;2173:2;2158:18;5466:83:0;2043:184:1;6622:103:0;;;;;;;;;;-1:-1:-1;6622:103:0;;;;;:::i;:::-;;:::i;11536:193::-;;;;;;;;;;;;;:::i;5660:138::-;;;;;;;;;;-1:-1:-1;5660:138:0;;;;;:::i;:::-;;:::i;2630:148::-;;;;;;;;;;;;;:::i;9262:118::-;;;;;;;;;;;;;:::i;2416:79::-;;;;;;;;;;-1:-1:-1;2454:7:0;2481:6;2416:79;;-1:-1:-1;;;;;2481:6:0;;;2999:51:1;;2987:2;2972:18;2416:79:0;2853:203:1;5806:167:0;;;;;;;;;;-1:-1:-1;5806:167:0;;;;;:::i;:::-;;:::i;11334:194::-;;;;;;;;;;;;;:::i;9492:773::-;;;;;;;;;;;;;:::i;5981:143::-;;;;;;;;;;-1:-1:-1;5981:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6089:18:0;;;6062:7;6089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5981:143;6132:161;6207:4;6224:39;214:10;6247:7;6256:6;6224:8;:39::i;:::-;-1:-1:-1;6281:4:0;6132:161;;;;;:::o;9163:91::-;2543:6;;-1:-1:-1;;;;;2543:6:0;214:10;2543:22;2535:67;;;;-1:-1:-1;;;2535:67:0;;;;;;;:::i;:::-;;;;;;;;;9227:12:::1;:19:::0;9163:91::o;6301:313::-;6399:4;6416:36;6426:6;6434:9;6445:6;6416:9;:36::i;:::-;6463:121;6472:6;214:10;6494:89;6532:6;6494:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6494:19:0;;;;;;:11;:19;;;;;;;;214:10;6494:33;;;;;;;;;;:37;:89::i;:::-;6463:8;:121::i;:::-;-1:-1:-1;6602:4:0;6301:313;;;;;:::o;6622:103::-;2543:6;;-1:-1:-1;;;;;2543:6:0;214:10;2543:22;2535:67;;;;-1:-1:-1;;;2535:67:0;;;;;;;:::i;:::-;6694:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6694:23:0::1;-1:-1:-1::0;;;;6694:23:0;;::::1;::::0;;;::::1;::::0;;6622:103::o;11536:193::-;11602:14;;-1:-1:-1;;;;;11602:14:0;214:10;-1:-1:-1;;;;;11586:30:0;;11578:39;;;;;;11657:21;11689:32;11657:21;11689:12;:32::i;:::-;11567:162;11536:193::o;5660:138::-;-1:-1:-1;;;;;5773:16:0;;5726:7;5773:16;;;:7;:16;;;;;;5753:37;;:19;:37::i;2630:148::-;2543:6;;-1:-1:-1;;;;;2543:6:0;214:10;2543:22;2535:67;;;;-1:-1:-1;;;2535:67:0;;;;;;;:::i;:::-;2737:1:::1;2721:6:::0;;2700:40:::1;::::0;-1:-1:-1;;;;;2721:6:0;;::::1;::::0;2700:40:::1;::::0;2737:1;;2700:40:::1;2768:1;2751:19:::0;;-1:-1:-1;;;;;;2751:19:0::1;::::0;;2630:148::o;9262:118::-;2543:6;;-1:-1:-1;;;;;2543:6:0;214:10;2543:22;2535:67;;;;-1:-1:-1;;;2535:67:0;;;;;;;:::i;:::-;4007:20:::1;9315:12;:22:::0;;;9348:14:::1;:24:::0;9262:118::o;5806:167::-;5884:4;5901:42;214:10;5925:9;5936:6;5901:9;:42::i;11334:194::-;11400:14;;-1:-1:-1;;;;;11400:14:0;214:10;-1:-1:-1;;;;;11384:30:0;;11376:39;;;;;;11426:23;11452:24;11470:4;11452:9;:24::i;:::-;11426:50;;11487:33;11504:15;11487:16;:33::i;9492:773::-;2543:6;;-1:-1:-1;;;;;2543:6:0;214:10;2543:22;2535:67;;;;-1:-1:-1;;;2535:67:0;;;;;;;:::i;:::-;9556:11:::1;::::0;-1:-1:-1;;;9556:11:0;::::1;;;9555:12;9547:47;;;::::0;-1:-1:-1;;;9547:47:0;;4017:2:1;9547:47:0::1;::::0;::::1;3999:21:1::0;4056:2;4036:18;;;4029:30;4095:25;4075:18;;;4068:53;4138:18;;9547:47:0::1;3815:347:1::0;9547:47:0::1;9716:15;:34:::0;;-1:-1:-1;;;;;;9716:34:0::1;9662:42;9716:34:::0;;::::1;::::0;;;9761:58:::1;9778:4;9662:42:::0;4007:20:::1;9761:8;:58::i;:::-;9864:16;-1:-1:-1::0;;;;;9864:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9846:56:0::1;;9911:4;9918:16;-1:-1:-1::0;;;;;9918:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9846:96;::::0;-1:-1:-1;;;;;;9846:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4653:15:1;;;9846:96:0::1;::::0;::::1;4635:34:1::0;4705:15;;4685:18;;;4678:43;4570:18;;9846:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9830:13;:112:::0;;-1:-1:-1;;;;;;9830:112:0::1;-1:-1:-1::0;;;;;9830:112:0;;::::1;;::::0;;9953:15:::1;::::0;::::1;:31;9992:21;10023:4;10029:24;10023:4:::0;10029:9:::1;:24::i;:::-;10054:1;10056::::0;10058:7:::1;2454::::0;2481:6;-1:-1:-1;;;;;2481:6:0;;2416:79;10058:7:::1;9953:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9953:129:0;;;-1:-1:-1;;;;;5091:15:1;;;9953:129:0::1;::::0;::::1;5073:34:1::0;5123:18;;;5116:34;;;;5166:18;;;5159:34;;;;5209:18;;;5202:34;5273:15;;;5252:19;;;5245:44;10066:15:0::1;5305:19:1::0;;;5298:35;5007:19;;9953:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10093:11:0::1;:18:::0;;-1:-1:-1;;;;10157:18:0;;-1:-1:-1;;;10157:18:0;;;;10224:15:::1;::::0;10186:71:::1;::::0;-1:-1:-1;;;10186:71:0;;-1:-1:-1;;;;;10224:15:0;;::::1;10186:71;::::0;::::1;5829:51:1::0;-1:-1:-1;;5896:18:1;;;5889:34;10193:13:0;;;-1:-1:-1;10186:29:0::1;::::0;5802:18:1;;10186:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9536:729;9492:773::o:0;1469:246::-;1527:7;1551:1;1556;1551:6;1547:47;;-1:-1:-1;1581:1:0;1574:8;;1547:47;1604:9;1616:5;1620:1;1616;:5;:::i;:::-;1604:17;-1:-1:-1;1649:1:0;1640:5;1644:1;1604:17;1640:5;:::i;:::-;:10;1632:56;;;;-1:-1:-1;;;1632:56:0;;6913:2:1;1632:56:0;;;6895:21:1;6952:2;6932:18;;;6925:30;6991:34;6971:18;;;6964:62;-1:-1:-1;;;7042:18:1;;;7035:31;7083:19;;1632:56:0;6711:397:1;1632:56:0;1706:1;1469:246;-1:-1:-1;;;1469:246:0:o;1723:132::-;1781:7;1808:39;1812:1;1815;1808:39;;;;;;;;;;;;;;;;;:3;:39::i;6995:335::-;-1:-1:-1;;;;;7088:19:0;;7080:68;;;;-1:-1:-1;;;7080:68:0;;7315:2:1;7080:68:0;;;7297:21:1;7354:2;7334:18;;;7327:30;7393:34;7373:18;;;7366:62;-1:-1:-1;;;7444:18:1;;;7437:34;7488:19;;7080:68:0;7113:400:1;7080:68:0;-1:-1:-1;;;;;7167:21:0;;7159:68;;;;-1:-1:-1;;;7159:68:0;;7720:2:1;7159:68:0;;;7702:21:1;7759:2;7739:18;;;7732:30;7798:34;7778:18;;;7771:62;-1:-1:-1;;;7849:18:1;;;7842:32;7891:19;;7159:68:0;7518:398:1;7159:68:0;-1:-1:-1;;;;;7238:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7290:32;;1546:25:1;;;7290:32:0;;1519:18:1;7290:32:0;;;;;;;6995:335;;;:::o;7338:1326::-;-1:-1:-1;;;;;7426:18:0;;7418:68;;;;-1:-1:-1;;;7418:68:0;;8123:2:1;7418:68:0;;;8105:21:1;8162:2;8142:18;;;8135:30;8201:34;8181:18;;;8174:62;-1:-1:-1;;;8252:18:1;;;8245:35;8297:19;;7418:68:0;7921:401:1;7418:68:0;-1:-1:-1;;;;;7505:16:0;;7497:64;;;;-1:-1:-1;;;7497:64:0;;8529:2:1;7497:64:0;;;8511:21:1;8568:2;8548:18;;;8541:30;8607:34;8587:18;;;8580:62;-1:-1:-1;;;8658:18:1;;;8651:33;8701:19;;7497:64:0;8327:399:1;7497:64:0;7589:1;7580:6;:10;7572:64;;;;-1:-1:-1;;;7572:64:0;;8933:2:1;7572:64:0;;;8915:21:1;8972:2;8952:18;;;8945:30;9011:34;8991:18;;;8984:62;-1:-1:-1;;;9062:18:1;;;9055:39;9111:19;;7572:64:0;8731:405:1;7572:64:0;2454:7;2481:6;-1:-1:-1;;;;;7655:15:0;;;2481:6;;7655:15;;;;:32;;-1:-1:-1;2454:7:0;2481:6;-1:-1:-1;;;;;7674:13:0;;;2481:6;;7674:13;;7655:32;7651:963;;;7716:1;7704:9;:13;7744:12;;7732:9;:24;7783:13;;-1:-1:-1;;;;;7775:21:0;;;7783:13;;7775:21;:55;;;;-1:-1:-1;7814:15:0;;-1:-1:-1;;;;;7800:30:0;;;7814:15;;7800:30;;7775:55;:83;;;;-1:-1:-1;;;;;;7836:22:0;;;;;;:18;:22;;;;;;;;7834:24;7775:83;:102;;;;-1:-1:-1;7862:15:0;;-1:-1:-1;;;7862:15:0;;;;7775:102;7771:332;;;7945:12;;7935:6;:22;;7927:60;;;;-1:-1:-1;;;7927:60:0;;9343:2:1;7927:60:0;;;9325:21:1;9382:2;9362:18;;;9355:30;9421:27;9401:18;;;9394:55;9466:18;;7927:60:0;9141:349:1;7927:60:0;8040:14;;8030:6;8014:13;8024:2;8014:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8006:79;;;;-1:-1:-1;;;8006:79:0;;9827:2:1;8006:79:0;;;9809:21:1;9866:2;9846:18;;;9839:30;9905:28;9885:18;;;9878:56;9951:18;;8006:79:0;9625:350:1;8006:79:0;8121:28;8152:24;8170:4;8152:9;:24::i;:::-;8196:6;;8121:55;;-1:-1:-1;;;;8196:6:0;;;;8195:7;:32;;;;-1:-1:-1;8214:13:0;;-1:-1:-1;;;;;8206:21:0;;;8214:13;;8206:21;;8195:32;:47;;;;-1:-1:-1;8231:11:0;;-1:-1:-1;;;8231:11:0;;;;8195:47;:73;;;;;8267:1;8246:20;:22;8195:73;8191:344;;;8289:38;8306:20;8289:16;:38::i;:::-;8375:21;8418:22;;8415:105;;8465:35;8478:21;8465:12;:35::i;:::-;8270:265;8191:344;7689:857;7651:963;;;8575:1;8563:9;:13;;;8589:9;:13;7651:963;8626:30;8641:4;8646:2;8649:6;8626:14;:30::i;:::-;7338:1326;;;:::o;1271:190::-;1357:7;1393:12;1385:6;;;;1377:29;;;;-1:-1:-1;;;1377:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1417:9:0;1429:5;1433:1;1429;:5;:::i;:::-;1417:17;1271:190;-1:-1:-1;;;;;1271:190:0:o;9388:96::-;9445:14;;:31;;-1:-1:-1;;;;;9445:14:0;;;;:31;;;;;9469:6;;9445:14;:31;:14;:31;9469:6;9445:14;:31;;;;;;;;;;;;;;;;;;;6733:254;6800:7;6839;;6828;:18;;6820:73;;;;-1:-1:-1;;;6820:73:0;;10315:2:1;6820:73:0;;;10297:21:1;10354:2;10334:18;;;10327:30;10393:34;10373:18;;;10366:62;-1:-1:-1;;;10444:18:1;;;10437:40;10494:19;;6820:73:0;10113:406:1;6820:73:0;6904:19;6927:10;:8;:10::i;:::-;6904:33;-1:-1:-1;6955:24:0;:7;6904:33;6955:11;:24::i;8672:483::-;4858:6;:13;;-1:-1:-1;;;;4858:13:0;-1:-1:-1;;;4858:13:0;;;8774:16:::1;::::0;;8788:1:::1;8774:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8774:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8774:16:0::1;8750:40;;8819:4;8801;8806:1;8801:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8801:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8845:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8845:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8801:7;;8845:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8835:4;8840:1;8835:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8835:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8910:15:::1;::::0;8878:62:::1;::::0;8895:4:::1;::::0;8910:15:::1;8928:11:::0;8878:8:::1;:62::i;:::-;8951:15;::::0;:196:::1;::::0;-1:-1:-1;;;8951:196:0;;-1:-1:-1;;;;;8951:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9032:11;;8951:15:::1;::::0;9074:4;;9101::::1;::::0;9121:15:::1;::::0;8951:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4894:6:0;:14;;-1:-1:-1;;;;4894:14:0;;;-1:-1:-1;;;;8672:483:0:o;1863:189::-;1949:7;1984:12;1977:5;1969:28;;;;-1:-1:-1;;;1969:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2008:9:0;2020:5;2024:1;2020;:5;:::i;10273:146::-;10367:44;10385:6;10393:9;10404:6;10367:17;:44::i;12991:163::-;13032:7;13053:15;13070;13089:19;:17;:19::i;:::-;13052:56;;-1:-1:-1;13052:56:0;-1:-1:-1;13126:20:0;13052:56;;13126:11;:20::i;:::-;13119:27;;;;12991:163;:::o;10427:487::-;10526:15;10543:23;10568:12;10582:23;10607:12;10621:13;10638:19;10649:7;10638:10;:19::i;:::-;-1:-1:-1;;;;;10686:15:0;;;;;;:7;:15;;;;;;10525:132;;-1:-1:-1;10525:132:0;;-1:-1:-1;10525:132:0;;-1:-1:-1;10525:132:0;-1:-1:-1;10525:132:0;-1:-1:-1;10525:132:0;-1:-1:-1;10686:28:0;;10525:132;10686:19;:28::i;:::-;-1:-1:-1;;;;;10668:15:0;;;;;;;:7;:15;;;;;;:46;;;;10746:18;;;;;;;:39;;10769:15;10746:22;:39::i;:::-;-1:-1:-1;;;;;10725:18:0;;;;;;:7;:18;;;;;:60;10796:16;10806:5;10796:9;:16::i;:::-;10823:23;10835:4;10841;10823:11;:23::i;:::-;10879:9;-1:-1:-1;;;;;10862:44:0;10871:6;-1:-1:-1;;;;;10862:44:0;;10890:15;10862:44;;;;1546:25:1;;1534:2;1519:18;;1400:177;10862:44:0;;;;;;;;10514:400;;;;;;10427:487;;;:::o;13162:256::-;13259:7;;13212;;;;4007:20;13327;13259:7;4007:20;13327:11;:20::i;:::-;13317:7;:30;13313:61;;;-1:-1:-1;;13357:7:0;;;4007:20;;-1:-1:-1;13162:256:0;-1:-1:-1;13162:256:0:o;13313:61::-;13393:7;;13402;;-1:-1:-1;13162:256:0;-1:-1:-1;13162:256:0:o;11739:471::-;11798:7;11807;11816;11825;11834;11843;11864:23;11889:12;11903:13;11920:42;11932:7;11941:9;;11952;;11920:11;:42::i;:::-;11863:99;;;;;;11973:19;11996:10;:8;:10::i;:::-;11973:33;;12018:15;12035:23;12060:12;12076:46;12088:7;12097:4;12103:5;12110:11;12076;:46::i;:::-;12017:105;;-1:-1:-1;12017:105:0;-1:-1:-1;12017:105:0;-1:-1:-1;12173:15:0;;-1:-1:-1;12190:4:0;;-1:-1:-1;12196:5:0;;-1:-1:-1;;;;;11739:471:0;;;;;;;:::o;1127:136::-;1185:7;1212:43;1216:1;1219;1212:43;;;;;;;;;;;;;;;;;:3;:43::i;940:179::-;998:7;;1030:5;1034:1;1030;:5;:::i;:::-;1018:17;;1059:1;1054;:6;;1046:46;;;;-1:-1:-1;;;1046:46:0;;11975:2:1;1046:46:0;;;11957:21:1;12014:2;11994:18;;;11987:30;12053:29;12033:18;;;12026:57;12100:18;;1046:46:0;11773:351:1;10922:212:0;10975:19;10998:10;:8;:10::i;:::-;10975:33;-1:-1:-1;11019:13:0;11035:22;:5;10975:33;11035:9;:22::i;:::-;11109:4;11093:22;;;;:7;:22;;;;;;11019:38;;-1:-1:-1;11093:33:0;;11019:38;11093:26;:33::i;:::-;11084:4;11068:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;10922:212:0:o;11142:147::-;11220:7;;:17;;11232:4;11220:11;:17::i;:::-;11210:7;:27;11261:10;;:20;;11276:4;11261:14;:20::i;:::-;11248:10;:33;-1:-1:-1;;11142:147:0:o;12218:351::-;12311:7;;;;12364:28;12388:3;12364:19;:7;12376:6;12364:11;:19::i;:::-;:23;;:28::i;:::-;12349:43;-1:-1:-1;12403:13:0;12419:29;12444:3;12419:20;:7;12431;12419:11;:20::i;:29::-;12403:45;-1:-1:-1;12459:23:0;12485:28;12403:45;12485:17;:7;12497:4;12485:11;:17::i;:::-;:21;;:28::i;:::-;12459:54;12549:4;;-1:-1:-1;12555:5:0;;-1:-1:-1;12218:351:0;;-1:-1:-1;;;;;12218:351:0:o;12577:409::-;12687:7;;;;12743:24;:7;12755:11;12743;:24::i;:::-;12725:42;-1:-1:-1;12778:12:0;12793:21;:4;12802:11;12793:8;:21::i;:::-;12778:36;-1:-1:-1;12825:13:0;12841:22;:5;12851:11;12841:9;:22::i;:::-;12825:38;-1:-1:-1;12874:23:0;12900:28;12825:38;12900:17;:7;12912:4;12900:11;:17::i;:28::-;12947:7;;;;-1:-1:-1;12973:4:0;;-1:-1:-1;12577:409:0;;-1:-1:-1;;;;;;;12577:409:0: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;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;1215:180::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;-1:-1:-1;1366:23:1;;1215:180;-1:-1:-1;1215:180:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2232:118::-;2318:5;2311:13;2304:21;2297:5;2294:32;2284:60;;2340:1;2337;2330:12;2355:241;2411:6;2464:2;2452:9;2443:7;2439:23;2435:32;2432:52;;;2480:1;2477;2470:12;2432:52;2519:9;2506:23;2538:28;2560:5;2538:28;:::i;2601:247::-;2660:6;2713:2;2701:9;2692:7;2688:23;2684:32;2681:52;;;2729:1;2726;2719:12;2681:52;2768:9;2755:23;2787:31;2812:5;2787:31;:::i;3061:388::-;3129:6;3137;3190:2;3178:9;3169:7;3165:23;3161:32;3158:52;;;3206:1;3203;3196:12;3158:52;3245:9;3232:23;3264:31;3289:5;3264:31;:::i;:::-;3314:5;-1:-1:-1;3371:2:1;3356:18;;3343:32;3384:33;3343:32;3384:33;:::i;:::-;3436:7;3426:17;;;3061:388;;;;;:::o;3454:356::-;3656:2;3638:21;;;3675:18;;;3668:30;3734:34;3729:2;3714:18;;3707:62;3801:2;3786:18;;3454:356::o;4167:251::-;4237:6;4290:2;4278:9;4269:7;4265:23;4261:32;4258:52;;;4306:1;4303;4296:12;4258:52;4338:9;4332:16;4357:31;4382:5;4357:31;:::i;5344:306::-;5432:6;5440;5448;5501:2;5489:9;5480:7;5476:23;5472:32;5469:52;;;5517:1;5514;5507:12;5469:52;5546:9;5540:16;5530:26;;5596:2;5585:9;5581:18;5575:25;5565:35;;5640:2;5629:9;5625:18;5619:25;5609:35;;5344:306;;;;;:::o;5934:245::-;6001:6;6054:2;6042:9;6033:7;6029:23;6025:32;6022:52;;;6070:1;6067;6060:12;6022:52;6102:9;6096:16;6121:28;6143:5;6121:28;:::i;6184:127::-;6245:10;6240:3;6236:20;6233:1;6226:31;6276:4;6273:1;6266:15;6300:4;6297:1;6290:15;6316:168;6389:9;;;6420;;6437:15;;;6431:22;;6417:37;6407:71;;6458:18;;:::i;6489:217::-;6529:1;6555;6545:132;;6599:10;6594:3;6590:20;6587:1;6580:31;6634:4;6631:1;6624:15;6662:4;6659:1;6652:15;6545:132;-1:-1:-1;6691:9:1;;6489:217::o;9495:125::-;9560:9;;;9581:10;;;9578:36;;;9594:18;;:::i;9980:128::-;10047:9;;;10068:11;;;10065:37;;;10082:18;;:::i;10656:127::-;10717:10;10712:3;10708:20;10705:1;10698:31;10748:4;10745:1;10738:15;10772:4;10769:1;10762:15;10788:980;11050:4;11098:3;11087:9;11083:19;11129:6;11118:9;11111:25;11155:2;11193:6;11188:2;11177:9;11173:18;11166:34;11236:3;11231:2;11220:9;11216:18;11209:31;11260:6;11295;11289:13;11326:6;11318;11311:22;11364:3;11353:9;11349:19;11342:26;;11403:2;11395:6;11391:15;11377:29;;11424:1;11434:195;11448:6;11445:1;11442:13;11434:195;;;11513:13;;-1:-1:-1;;;;;11509:39:1;11497:52;;11604:15;;;;11569:12;;;;11545:1;11463:9;11434:195;;;-1:-1:-1;;;;;;;11685:32:1;;;;11680:2;11665:18;;11658:60;-1:-1:-1;;;11749:3:1;11734:19;11727:35;11646:3;10788:980;-1:-1:-1;;;10788:980:1:o

Swarm Source

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