ETH Price: $2,514.62 (-1.62%)

Token

peaceשלוםسلام (PEACE)
 

Overview

Max Total Supply

2,000,000,000 PEACE

Holders

179

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
118,540,455.12070891319517602 PEACE

Value
$0.00
0xfeb8085ed44682288af5c0606581f4ea2aca26f5
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:
Peace

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 1 : Peace.sol
/**
 *Submitted for verification at Etherscan.io on 2023-08-28
 */

// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

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

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

interface IERC20 {
  /**
   * @dev Returns the amount of tokens in existence.
   */
  function totalSupply() external view returns (uint256);

  /**
   * @dev Returns the amount of tokens owned by `account`.
   */
  function balanceOf(address account) external view returns (uint256);

  /**
   * @dev Moves `amount` tokens from the caller's account to `recipient`.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transfer(address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Returns the remaining number of tokens that `spender` will be
   * allowed to spend on behalf of `owner` through {transferFrom}. This is
   * zero by default.
   *
   * This value changes when {approve} or {transferFrom} are called.
   */
  function allowance(
    address owner,
    address spender
  ) external view returns (uint256);

  /**
   * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * IMPORTANT: Beware that changing an allowance with this method brings the risk
   * that someone may use both the old and the new allowance by unfortunate
   * transaction ordering. One possible solution to mitigate this race
   * condition is to first reduce the spender's allowance to 0 and set the
   * desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   * Emits an {Approval} event.
   */
  function approve(address spender, uint256 amount) external returns (bool);

  /**
   * @dev Moves `amount` tokens from `sender` to `recipient` using the
   * allowance mechanism. `amount` is then deducted from the caller's
   * allowance.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transferFrom(
    address sender,
    address recipient,
    uint256 amount
  ) external returns (bool);

  /**
   * @dev Emitted when `value` tokens are moved from one account (`from`) to
   * another (`to`).
   *
   * Note that `value` may be zero.
   */
  event Transfer(address indexed from, address indexed to, uint256 value);

  /**
   * @dev Emitted when the allowance of a `spender` for an `owner` is set by
   * a call to {approve}. `value` is the new allowance.
   */
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
  /**
   * @dev Returns the name of the token.
   */
  function name() external view returns (string memory);

  /**
   * @dev Returns the symbol of the token.
   */
  function symbol() external view returns (string memory);

  /**
   * @dev Returns the decimals places of the token.
   */
  function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
  mapping(address => uint256) private _balances;

  mapping(address => mapping(address => uint256)) private _allowances;

  uint256 private _totalSupply;

  string private _name;
  string private _symbol;

  constructor(string memory name_, string memory symbol_) {
    _name = name_;
    _symbol = symbol_;
  }

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

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

  function decimals() public view virtual override returns (uint8) {
    return 18;
  }

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

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

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

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

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

  function transferFrom(
    address sender,
    address recipient,
    uint256 amount
  ) public virtual override returns (bool) {
    _transfer(sender, recipient, amount);

    uint256 currentAllowance = _allowances[sender][_msgSender()];
    require(
      currentAllowance >= amount,
      "ERC20: transfer amount exceeds allowance"
    );
    unchecked {
      _approve(sender, _msgSender(), currentAllowance - amount);
    }

    return true;
  }

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

  function decreaseAllowance(
    address spender,
    uint256 subtractedValue
  ) public virtual returns (bool) {
    uint256 currentAllowance = _allowances[_msgSender()][spender];
    require(
      currentAllowance >= subtractedValue,
      "ERC20: decreased allowance below zero"
    );
    unchecked {
      _approve(_msgSender(), spender, currentAllowance - subtractedValue);
    }

    return true;
  }

  function _transfer(
    address sender,
    address recipient,
    uint256 amount
  ) internal virtual {
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");

    uint256 senderBalance = _balances[sender];
    require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
    unchecked {
      _balances[sender] = senderBalance - amount;
    }
    _balances[recipient] += amount;

    emit Transfer(sender, recipient, amount);
  }

  function _createInitialSupply(
    address account,
    uint256 amount
  ) internal virtual {
    require(account != address(0), "ERC20: mint to the zero address");

    _totalSupply += amount;
    _balances[account] += amount;
    emit Transfer(address(0), account, amount);
  }

  function _burn(address account, uint256 amount) internal virtual {
    require(account != address(0), "ERC20: burn from the zero address");
    uint256 accountBalance = _balances[account];
    require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    unchecked {
      _balances[account] = accountBalance - amount;
      // Overflow not possible: amount <= accountBalance <= totalSupply.
      _totalSupply -= amount;
    }

    emit Transfer(account, address(0), amount);
  }

  function _approve(
    address owner,
    address spender,
    uint256 amount
  ) internal virtual {
    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);
  }
}

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() external virtual onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);
  }

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

interface IDexRouter {
  function factory() external pure returns (address);

  function WETH() external pure returns (address);

  function swapExactTokensForETHSupportingFeeOnTransferTokens(
    uint amountIn,
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
  ) external;

  function swapExactETHForTokensSupportingFeeOnTransferTokens(
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
  ) external payable;
}

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

contract Peace is ERC20, Ownable {
  uint256 public maxBuyAmount;
  uint256 public maxSellAmount;
  uint256 public maxWalletAmount;

  IDexRouter public dexRouter;
  address public lpPair;

  bool private swapping;
  uint256 public swapTokensAtAmount;

  address taxAddress;

  bool public limitsInEffect = true;
  bool public tradingActive = false;
  bool private antiBot = false;

  uint256 private transferCount = 0;
  // Anti-sandwithc-bot mappings and variables
  mapping(address => uint256) private _holderLastBuyBlock; // to hold last Buy temporarily
  mapping(address => uint256) private _transferCountMap;
  bool public transferDelayEnabled = true;

  uint256 private buyFee;
  uint256 private sellFee;

  /******************/

  // exlcude from fees and max transaction amount
  mapping(address => bool) private _isExcludedFromFees;
  mapping(address => bool) public _isExcludedMaxTransactionAmount;

  // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
  // could be subject to a maximum transfer amount
  mapping(address => bool) public automatedMarketMakerPairs;

  event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
  event EnabledTrading();
  event ExcludeFromFees(address indexed account, bool isExcluded);

  constructor() ERC20(unicode"peaceשלוםسلام", "PEACE") {
    address newOwner = msg.sender; // can leave alone if owner is deployer.

    IDexRouter _dexRouter = IDexRouter(
      0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
    );
    dexRouter = _dexRouter;

    // create pair
    lpPair = IDexFactory(_dexRouter.factory()).createPair(
      address(this),
      _dexRouter.WETH()
    );
    _excludeFromMaxTransaction(address(lpPair), true);
    _excludeFromMaxTransaction(address(dexRouter), true);
    _setAutomatedMarketMakerPair(address(lpPair), true);

    uint256 totalSupply = 2 * 1e9 * 1e18;

    maxBuyAmount = (totalSupply * 1) / 100;
    maxSellAmount = (totalSupply * 1) / 100;
    maxWalletAmount = (totalSupply * 1) / 100;
    swapTokensAtAmount = (totalSupply * 5) / 1000;

    buyFee = 30;
    sellFee = 70;

    _excludeFromMaxTransaction(newOwner, true);
    _excludeFromMaxTransaction(address(this), true);
    _excludeFromMaxTransaction(address(0xdead), true);

    excludeFromFees(newOwner, true);
    excludeFromFees(address(this), true);
    excludeFromFees(address(0xdead), true);

    taxAddress = address(0xc3BEFF6657ff89B046D072c8f72dE0a0A6Bff0E5);

    _createInitialSupply(newOwner, totalSupply);
    transferOwnership(newOwner);
  }

  receive() external payable {}

  // remove limits after token is stable
  function removeLimits() external onlyOwner {
    limitsInEffect = false;
    buyFee = 5;
    sellFee = 5;
  }

  function _excludeFromMaxTransaction(address updAds, bool isExcluded) private {
    _isExcludedMaxTransactionAmount[updAds] = isExcluded;
  }

  function excludeFromMaxTransaction(
    address updAds,
    bool isEx
  ) external onlyOwner {
    if (!isEx) {
      require(updAds != lpPair, "Cannot remove uniswap pair from max txn");
    }
    _isExcludedMaxTransactionAmount[updAds] = isEx;
  }

  function setAutomatedMarketMakerPair(
    address pair,
    bool value
  ) external onlyOwner {
    require(
      pair != lpPair,
      "The pair cannot be removed from automatedMarketMakerPairs"
    );

    _setAutomatedMarketMakerPair(pair, value);
    emit SetAutomatedMarketMakerPair(pair, value);
  }

  function _setAutomatedMarketMakerPair(address pair, bool value) private {
    automatedMarketMakerPairs[pair] = value;

    _excludeFromMaxTransaction(pair, value);

    emit SetAutomatedMarketMakerPair(pair, value);
  }

  function excludeFromFees(address account, bool excluded) public onlyOwner {
    _isExcludedFromFees[account] = excluded;
    emit ExcludeFromFees(account, excluded);
  }

  function updateAntiBot(bool flag) public onlyOwner {
    antiBot = flag;
  }

  function enableTrading() external onlyOwner {
    require(!tradingActive, "Cannot reenable trading");
    tradingActive = true;
    emit EnabledTrading();
  }

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

    if (!tradingActive) {
      require(
        _isExcludedFromFees[from] || _isExcludedFromFees[to],
        "Trading is not active."
      );
    }

    // anti sandwich bot
    if (antiBot) {
      if (
        !automatedMarketMakerPairs[to] &&
        to != address(this) &&
        to != address(dexRouter) &&
        _holderLastBuyBlock[to] != block.number
      ) {
        _holderLastBuyBlock[to] = block.number;
        _transferCountMap[to] = transferCount;
      }
      if (_holderLastBuyBlock[from] == block.number) {
        require(
          _transferCountMap[from] + 1 == transferCount,
          "_transfer:: Anti sandwich bot enabled. Please try again later."
        );
      }
    }

    if (limitsInEffect) {
      if (
        from != owner() &&
        to != owner() &&
        to != address(0) &&
        to != address(0xdead) &&
        !_isExcludedFromFees[from] &&
        !_isExcludedFromFees[to]
      ) {
        //when buy
        if (
          automatedMarketMakerPairs[from] &&
          !_isExcludedMaxTransactionAmount[to]
        ) {
          require(
            amount <= maxBuyAmount,
            "Buy transfer amount exceeds the max buy."
          );
          require(
            amount + balanceOf(to) <= maxWalletAmount,
            "Cannot Exceed max wallet"
          );
        }
        //when sell
        else if (
          automatedMarketMakerPairs[to] &&
          !_isExcludedMaxTransactionAmount[from]
        ) {
          if (amount > maxSellAmount) {
            amount = maxSellAmount;
          }
        } else if (!_isExcludedMaxTransactionAmount[to]) {
          require(
            amount + balanceOf(to) <= maxWalletAmount,
            "Cannot Exceed max tokens per wallet"
          );
        }
      }
    }

    uint256 contractTokenBalance = balanceOf(address(this));
    bool canSwap = contractTokenBalance >= swapTokensAtAmount;
    if (
      canSwap &&
      !swapping &&
      !automatedMarketMakerPairs[from] &&
      !_isExcludedFromFees[from] &&
      !_isExcludedFromFees[to]
    ) {
      swapping = true;
      swapBack();
      swapping = false;
    }

    // only take fees on buys/sells, do not take on wallet transfers
    if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
      uint256 fees = 0;
      // on sell
      if (automatedMarketMakerPairs[to] && sellFee > 0) {
        fees = (amount * sellFee) / 100;
      }
      // on buy
      else if (automatedMarketMakerPairs[from] && buyFee > 0) {
        fees = (amount * buyFee) / 100;
      }
      if (fees > 0) {
        super._transfer(from, address(this), fees);
      }
      amount -= fees;
    }

    super._transfer(from, to, amount);
    transferCount += 1;
  }

  function swapTokensForEth(uint256 tokenAmount) private {
    // generate the uniswap pair path of token -> weth
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = dexRouter.WETH();

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

    // make the swap
    dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
      tokenAmount,
      0, // accept any amount of ETH
      path,
      taxAddress,
      block.timestamp
    );
  }

  function swapBack() private {
    uint256 contractBalance = balanceOf(address(this));
    if (contractBalance == 0) {
      return;
    }

    if (contractBalance > swapTokensAtAmount * 2) {
      contractBalance = swapTokensAtAmount * 2;
    }

    bool success;
    swapTokensForEth(contractBalance);

    uint256 ethBalance = address(this).balance;

    if (ethBalance > 0) {
      (success, ) = address(taxAddress).call{value: ethBalance}("");
    }
  }
}

Settings
{
  "metadata": {
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "viaIR": true
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"flag","type":"bool"}],"name":"updateAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604090808252346200073d57620000188162000742565b6015815260207f7065616365d7a9d79cd795d79dd8b3d984d8a7d9850000000000000000000000818301528251620000508162000742565b600580825264504541434560d81b838301528351909390926001600160401b038085116200063f5760038054956001948588811c9816801562000732575b858910146200071c578190601f98898111620006c8575b508590898311600114620006615760009262000655575b505060001982841b1c191690851b1781555b84519182116200063f5760049485548581811c9116801562000634575b858210146200061f5790818885949311620005c9575b5084908884116001146200055e5760009362000552575b505082851b92600019911b1c19161783555b60018060a01b03199233848754161786558651947f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09333600086818aa3600c805462ffffff60a01b1916600160a01b1790556000600d556010805460ff199081168317909155600980548816737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915563c45a015560e01b895285898681845afa988915620004fd576000996200052a575b508585918c51928380926315ab88c960e31b82525afa908115620004fd576000918791839162000508575b508c516364e329cb60e11b815230888201526001600160a01b039182166024820152909a9092839160449183918e165af18015620004fd578991600091620004c9575b50168088600a541617600a556000526014855289600020828282541617905587600954166000528960002082828254161790558188600a541680600052601587528b6000208284825416179055601487528b60002082848254161790557fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60008d51a36a108b2a2c2802909400000080600655806007556008556a084595161401484a000000600b55601e601155604660125533600052896000208282825416179055306000528960002082828254161790558461dead92836000528b600020818482541617905562000339338b8d541614620007de565b33600052601382528b60002081848254161790558b51928184527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79384843392a26200038b8c8c3391541614620007de565b30600052601383528c60002082828254161790558c5182815284843092a2620003ba8c8c3391541614620007de565b8460005260138352818d600020918254161790558b51908152a273c3beff6657ff89b046d072c8f72de0a0a6bff0e585600c541617600c5533156200048a57505062000408600254620007a3565b600255336000526000815285600020620004238154620007a3565b905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8751926b06765c793fa10079d000000084523393a383549283169462000470338714620007de565b51943391600087a316331790556119fe90816200082b8239f35b60649288519262461bcd60e51b845283015260248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b620004ee9150873d8911620004f5575b620004e581836200075e565b81019062000782565b3862000241565b503d620004d9565b8b513d6000823e3d90fd5b620005239150823d8411620004f557620004e581836200075e565b38620001fe565b85919950620005498791823d8411620004f557620004e581836200075e565b999150620001d3565b01519150388062000118565b9190869450601f1984169288600052866000209360005b88828210620005b2575050851162000597575b50505050811b0183556200012a565b01519060f884600019921b161c191690553880808062000588565b8385015187558a9890960195938401930162000575565b909192508660005284600020888086018b1c82019287871062000615575b9188918796959493018c1c01915b8281106200060557505062000101565b60008155869550889101620005f5565b92508192620005e7565b602287634e487b7160e01b6000525260246000fd5b90607f1690620000eb565b634e487b7160e01b600052604160045260246000fd5b015190503880620000bc565b90879350601f1983169185600052876000209260005b89828210620006b1575050841162000698575b505050811b018155620000ce565b015160001983861b60f8161c191690553880806200068a565b8385015186558b9790950194938401930162000677565b9091508360005285600020898085018c1c82019288861062000712575b91899186959493018d1c01915b82811062000702575050620000a5565b60008155859450899101620006f2565b92508192620006e5565b634e487b7160e01b600052602260045260246000fd5b97607f16976200008e565b600080fd5b604081019081106001600160401b038211176200063f57604052565b601f909101601f19168101906001600160401b038211908210176200063f57604052565b908160209103126200073d57516001600160a01b03811681036200073d5790565b676765c793fa10079d601c1b198111620007c8576b06765c793fa10079d00000000190565b634e487b7160e01b600052601160045260246000fd5b15620007e657565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fdfe60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816306fdde0314610c1e575080630758d92414610bf5578063095ea7b314610bcb57806310d5de5314610b8d57806318160ddd14610b6e57806323b872dd14610ab1578063313ce56714610a955780633950935114610a45578063452ed4f114610a1c5780634a62bb65146109f55780634aa2205d146109a357806366d602ae1461098457806370a082311461094d578063715018a6146108eb578063751039fc146108aa5780637571336a146107de57806388e765ff146107bf5780638a8c523c1461070f5780638da5cb5b146106e657806395d89b41146105e25780639a7a23d6146104c2578063a457c2d71461041b578063a9059cbb146103ea578063aa4bde28146103cb578063b62496f51461038d578063bbc0c74214610366578063c0246668146102da578063c876d0b9146102b6578063dd62ed3e1461026d578063e2f456051461024a5763f2fde38b03610011573461024657602036600319011261024657610198610d6b565b6005546001600160a01b038082169491926101b4338714610f07565b169283156101f55750829051937f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08686a36001600160a01b03191617600555f35b6020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8280fd5b505034610269578160031936011261026957602090600b549051908152f35b5080fd5b5050346102695780600319360112610269578060209261028b610d6b565b610293610d86565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b50503461026957816003193601126102695760209060ff6010541690519015158152f35b5050346102695780600319360112610269576102f4610d6b565b7f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7602061031f610d9c565b60055490936001600160a01b039161033a9083163314610f07565b16928386526013825261035b818688209060ff801983541691151516179055565b84519015158152a251f35b50503461026957816003193601126102695760209060ff600c5460a81c1690519015158152f35b5050346102695760203660031901126102695760209160ff9082906001600160a01b036103b8610d6b565b1681526015855220541690519015158152f35b5050346102695781600319360112610269576020906008549051908152f35b50503461026957806003193601126102695760209061041461040a610d6b565b602435903361102d565b5160018152f35b5082346104bf57826003193601126104bf57610435610d6b565b918360243592338152600160205281812060018060a01b038616825260205220549082821061046e576020856104148585038733610e05565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b5090346102465780600319360112610246576104dc610d6b565b916104e5610d9c565b9060018060a01b036104fc81600554163314610f07565b80600a541694169384146105795750828452601560205261052b818386209060ff801983541691151516179055565b6014602052610548818386209060ff801983541691151516179055565b15159051917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab8282828787a38484a3f35b608490602084519162461bcd60e51b8352820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152fd5b50919034610269578160031936011261026957805191809380549160019083821c928285169485156106dc575b60209586861081146106c9578589529081156106a5575060011461064d575b610649878761063f828c0383610dab565b5191829182610d14565b0390f35b81529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061069257505050826106499461063f9282010194388061062e565b8054868501880152928601928101610674565b60ff19168887015250505050151560051b830101925061063f82610649388061062e565b634e487b7160e01b845260228352602484fd5b93607f169361060f565b50503461026957816003193601126102695760055490516001600160a01b039091168152602090f35b503461024657826003193601126102465761073560018060a01b03600554163314610f07565b600c549060ff8260a81c1661077c575060ff60a81b1916600160a81b17600c55517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb78282a1f35b606490602084519162461bcd60e51b8352820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152fd5b5050346102695781600319360112610269576020906006549051908152f35b509190346102695780600319360112610269576107f9610d6b565b92610802610d9c565b60055490916001600160a01b039161081d9083163314610f07565b821561084a575b5061084792939416845260146020528284209060ff801983541691151516179055565b51f35b81600a54168287160361082457608490602085519162461bcd60e51b8352820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152fd5b5050346102695781600319360112610269576108d160018060a01b03600554163314610f07565b600c805460ff60a01b191690556005601181905560125551f35b5050346102695781600319360112610269576005546001600160a01b038116918390610918338514610f07565b51927f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08285a36001600160a01b031916600555f35b5050346102695760203660031901126102695760209181906001600160a01b03610975610d6b565b16815280845220549051908152f35b5050346102695781600319360112610269576020906007549051908152f35b50346102465760203660031901126102465735801515809103610246576109d560018060a01b03600554163314610f07565b600c805460ff60b01b191660b09290921b60ff60b01b1691909117905551f35b50503461026957816003193601126102695760209060ff600c5460a01c1690519015158152f35b505034610269578160031936011261026957600a5490516001600160a01b039091168152602090f35b505034610269578060031936011261026957610414602092610a8e610a68610d6b565b338352600186528483206001600160a01b03821684528652918490205460243590610de3565b9033610e05565b5050346102695781600319360112610269576020905160128152f35b5082346104bf5760603660031901126104bf57610acc610d6b565b9183610ad6610d86565b92610ae560443580958761102d565b6001600160a01b0385168152600160209081528282203383529052205490828210610b1a576020856104148585033388610e05565b608490602086519162461bcd60e51b8352820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152fd5b5050346102695781600319360112610269576020906002549051908152f35b5050346102695760203660031901126102695760209160ff9082906001600160a01b03610bb8610d6b565b1681526014855220541690519015158152f35b505034610269578060031936011261026957602090610414610beb610d6b565b6024359033610e05565b50503461026957816003193601126102695760095490516001600160a01b039091168152602090f35b9291905034610d105783600319360112610d1057600354600181811c9186908281168015610d06575b6020958686108214610cf35750848852908115610cd15750600114610c78575b610649868661063f828b0383610dab565b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410610cbe57505050826106499461063f928201019438610c67565b8054868501880152928601928101610ca1565b60ff191687860152505050151560051b830101925061063f8261064938610c67565b634e487b7160e01b845260229052602483fd5b93607f1693610c47565b8380fd5b919091602080825283519081818401526000945b828610610d55575050806040939411610d48575b601f01601f1916010190565b6000838284010152610d3c565b8581018201518487016040015294810194610d28565b600435906001600160a01b0382168203610d8157565b600080fd5b602435906001600160a01b0382168203610d8157565b602435908115158203610d8157565b90601f8019910116810190811067ffffffffffffffff821117610dcd57604052565b634e487b7160e01b600052604160045260246000fd5b81198111610def570190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03908116918215610eb65716918215610e665760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b15610f0e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b15610f5957565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b15610fb357565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b806000190460021181151516610def5760011b90565b8060001904821181151516610def570290565b6001600160a01b0380821693919290611047851515610f52565b8082169081151561105781610fac565b841561161d57600c549160ff8381809560a81c16156115a7575b60b01c16611490575b82600c5460a01c16611244575b505060009530875260209087825260409182892054600b54111580611235575b80611221575b8061120d575b806111f9575b6111cf575b8189526013815283838a20541615806111bf575b61110f575b50505050506110e592611662565b600d549060011982116110fb5750600101600d55565b634e487b7160e01b81526011600452602490fd5b6015908997959697968a5252828289205416806111b4575b15611181575050509050606461113f6012548361101a565b04905b81611171575b81811061115d5703906110e5388080806110d7565b634e487b7160e01b85526011600452602485fd5b61117c823086611662565b611148565b875286205416806111a9575b1561114257905060646111a26011548361101a565b0490611142565b50601154151561118d565b506012541515611127565b5084895283838a205416156110d2565b600a805460ff60a01b19908116600160a01b179091556111ed61173d565b600a5416600a556110be565b508489526013815283838a205416156110b9565b508189526013815283838a205416156110b3565b508189526015815283838a205416156110ad565b5083600a5460a01c16156110a7565b6005541690818814159182611485575b508161147d575b5080611471575b80611459575b80611441575b61127a575b3880611087565b6000868152602090601582526040908382822054168061142d575b1561135d576006548711611308578181866112b69352808552205487610de3565b600854106112c5575050611273565b60649250519062461bcd60e51b82526004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152fd5b815162461bcd60e51b815260048101849052602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608490fd5b8481526015835283828220541680611419575b1561139157505050600754808511611389575b50611273565b935038611383565b84815260148352838282205416156113ac575b505050611273565b81816113bc928552205487610de3565b600854106113ca57806113a4565b60849250519062461bcd60e51b82526004820152602360248201527f43616e6e6f7420457863656564206d617820746f6b656e73207065722077616c6044820152621b195d60ea1b6064820152fd5b508881526014835283828220541615611370565b508481526014835283828220541615611295565b5081600052601360205280604060002054161561126e565b50856000526013602052806040600020541615611268565b5061dead821415611262565b90503861125b565b841415915038611254565b600084815260209060158252604090858282205416158061159d575b8061158f575b8061157e575b611565575b8a8152600e83528181205443146114d7575b50505061107a565b600f8352818120549060011982116110fb57506001600d549101036114fc57806114cf565b60849250519062461bcd60e51b82526004820152603e60248201527f5f7472616e736665723a3a20416e74692073616e647769636820626f7420656e60448201527f61626c65642e20506c656173652074727920616761696e206c617465722e00006064820152fd5b600e83524382822055600d54600f8452828220556114bd565b50600e8352818120544314156114b8565b5083600954168714156114b2565b50308714156114ac565b90508860005260136020528360406000205416801561160b575b156115cd578390611071565b60405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606490fd5b508460005283604060002054166115c1565b60405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b6001600160a01b0390811691611679831515610f52565b1691611686831515610fac565b6000828152806020526040812054918083106116e957604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206116de828254610de3565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b6000308152602090808252604091828220549283156119c257600b5461176281611004565b85116119b0575b50805167ffffffffffffffff9490606081018681118282101761199c5783526002815283810191833684378151156119885730835260095484516315ab88c960e31b81526001600160a01b03949092909185168784600481845afa93841561197e578994611942575b5084519360019485101561192e576117f291878492168988015230610e05565b84600954169285600c541691843b1561192a57875163791ac94760e01b81526004810191909152602481018a905260a06044820152945160a4860181905289948694909360c48601939092875b8c82821061190f5750505050508380928692606483015242608483015203925af18015611905576118de575b50478061187b575b505050505050565b848092918192600c5416908551915af1503d156118d5573d9384116118c15751926118af601f8201601f1916830185610dab565b83523d92013e5b388080808080611873565b634e487b7160e01b83526041600452602483fd5b505050506118b6565b8581959295116118f1578252923861186b565b634e487b7160e01b82526041600452602482fd5b83513d87823e3d90fd5b84518c1687528e99508a98509586019590930192820161183f565b8980fd5b634e487b7160e01b8a52603260045260248afd5b9093508781813d8311611977575b61195a8183610dab565b81010312611973575185811681036119735792386117d2565b8880fd5b503d611950565b87513d8b823e3d90fd5b634e487b7160e01b86526032600452602486fd5b634e487b7160e01b86526041600452602486fd5b6119bb919450611004565b9238611769565b5050505056fea2646970667358221220b8808be450e94ba9ebd3fc34d33bf46ed65fe6f099dfe10bc9f576142861e98564736f6c634300080f0033

Deployed Bytecode

0x60806040818152600480361015610021575b505050361561001f57600080fd5b005b600092833560e01c90816306fdde0314610c1e575080630758d92414610bf5578063095ea7b314610bcb57806310d5de5314610b8d57806318160ddd14610b6e57806323b872dd14610ab1578063313ce56714610a955780633950935114610a45578063452ed4f114610a1c5780634a62bb65146109f55780634aa2205d146109a357806366d602ae1461098457806370a082311461094d578063715018a6146108eb578063751039fc146108aa5780637571336a146107de57806388e765ff146107bf5780638a8c523c1461070f5780638da5cb5b146106e657806395d89b41146105e25780639a7a23d6146104c2578063a457c2d71461041b578063a9059cbb146103ea578063aa4bde28146103cb578063b62496f51461038d578063bbc0c74214610366578063c0246668146102da578063c876d0b9146102b6578063dd62ed3e1461026d578063e2f456051461024a5763f2fde38b03610011573461024657602036600319011261024657610198610d6b565b6005546001600160a01b038082169491926101b4338714610f07565b169283156101f55750829051937f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08686a36001600160a01b03191617600555f35b6020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b8280fd5b505034610269578160031936011261026957602090600b549051908152f35b5080fd5b5050346102695780600319360112610269578060209261028b610d6b565b610293610d86565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b50503461026957816003193601126102695760209060ff6010541690519015158152f35b5050346102695780600319360112610269576102f4610d6b565b7f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7602061031f610d9c565b60055490936001600160a01b039161033a9083163314610f07565b16928386526013825261035b818688209060ff801983541691151516179055565b84519015158152a251f35b50503461026957816003193601126102695760209060ff600c5460a81c1690519015158152f35b5050346102695760203660031901126102695760209160ff9082906001600160a01b036103b8610d6b565b1681526015855220541690519015158152f35b5050346102695781600319360112610269576020906008549051908152f35b50503461026957806003193601126102695760209061041461040a610d6b565b602435903361102d565b5160018152f35b5082346104bf57826003193601126104bf57610435610d6b565b918360243592338152600160205281812060018060a01b038616825260205220549082821061046e576020856104148585038733610e05565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b80fd5b5090346102465780600319360112610246576104dc610d6b565b916104e5610d9c565b9060018060a01b036104fc81600554163314610f07565b80600a541694169384146105795750828452601560205261052b818386209060ff801983541691151516179055565b6014602052610548818386209060ff801983541691151516179055565b15159051917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab8282828787a38484a3f35b608490602084519162461bcd60e51b8352820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152fd5b50919034610269578160031936011261026957805191809380549160019083821c928285169485156106dc575b60209586861081146106c9578589529081156106a5575060011461064d575b610649878761063f828c0383610dab565b5191829182610d14565b0390f35b81529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b82841061069257505050826106499461063f9282010194388061062e565b8054868501880152928601928101610674565b60ff19168887015250505050151560051b830101925061063f82610649388061062e565b634e487b7160e01b845260228352602484fd5b93607f169361060f565b50503461026957816003193601126102695760055490516001600160a01b039091168152602090f35b503461024657826003193601126102465761073560018060a01b03600554163314610f07565b600c549060ff8260a81c1661077c575060ff60a81b1916600160a81b17600c55517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb78282a1f35b606490602084519162461bcd60e51b8352820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152fd5b5050346102695781600319360112610269576020906006549051908152f35b509190346102695780600319360112610269576107f9610d6b565b92610802610d9c565b60055490916001600160a01b039161081d9083163314610f07565b821561084a575b5061084792939416845260146020528284209060ff801983541691151516179055565b51f35b81600a54168287160361082457608490602085519162461bcd60e51b8352820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152fd5b5050346102695781600319360112610269576108d160018060a01b03600554163314610f07565b600c805460ff60a01b191690556005601181905560125551f35b5050346102695781600319360112610269576005546001600160a01b038116918390610918338514610f07565b51927f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08285a36001600160a01b031916600555f35b5050346102695760203660031901126102695760209181906001600160a01b03610975610d6b565b16815280845220549051908152f35b5050346102695781600319360112610269576020906007549051908152f35b50346102465760203660031901126102465735801515809103610246576109d560018060a01b03600554163314610f07565b600c805460ff60b01b191660b09290921b60ff60b01b1691909117905551f35b50503461026957816003193601126102695760209060ff600c5460a01c1690519015158152f35b505034610269578160031936011261026957600a5490516001600160a01b039091168152602090f35b505034610269578060031936011261026957610414602092610a8e610a68610d6b565b338352600186528483206001600160a01b03821684528652918490205460243590610de3565b9033610e05565b5050346102695781600319360112610269576020905160128152f35b5082346104bf5760603660031901126104bf57610acc610d6b565b9183610ad6610d86565b92610ae560443580958761102d565b6001600160a01b0385168152600160209081528282203383529052205490828210610b1a576020856104148585033388610e05565b608490602086519162461bcd60e51b8352820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152fd5b5050346102695781600319360112610269576020906002549051908152f35b5050346102695760203660031901126102695760209160ff9082906001600160a01b03610bb8610d6b565b1681526014855220541690519015158152f35b505034610269578060031936011261026957602090610414610beb610d6b565b6024359033610e05565b50503461026957816003193601126102695760095490516001600160a01b039091168152602090f35b9291905034610d105783600319360112610d1057600354600181811c9186908281168015610d06575b6020958686108214610cf35750848852908115610cd15750600114610c78575b610649868661063f828b0383610dab565b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410610cbe57505050826106499461063f928201019438610c67565b8054868501880152928601928101610ca1565b60ff191687860152505050151560051b830101925061063f8261064938610c67565b634e487b7160e01b845260229052602483fd5b93607f1693610c47565b8380fd5b919091602080825283519081818401526000945b828610610d55575050806040939411610d48575b601f01601f1916010190565b6000838284010152610d3c565b8581018201518487016040015294810194610d28565b600435906001600160a01b0382168203610d8157565b600080fd5b602435906001600160a01b0382168203610d8157565b602435908115158203610d8157565b90601f8019910116810190811067ffffffffffffffff821117610dcd57604052565b634e487b7160e01b600052604160045260246000fd5b81198111610def570190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03908116918215610eb65716918215610e665760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b15610f0e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b15610f5957565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b15610fb357565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b806000190460021181151516610def5760011b90565b8060001904821181151516610def570290565b6001600160a01b0380821693919290611047851515610f52565b8082169081151561105781610fac565b841561161d57600c549160ff8381809560a81c16156115a7575b60b01c16611490575b82600c5460a01c16611244575b505060009530875260209087825260409182892054600b54111580611235575b80611221575b8061120d575b806111f9575b6111cf575b8189526013815283838a20541615806111bf575b61110f575b50505050506110e592611662565b600d549060011982116110fb5750600101600d55565b634e487b7160e01b81526011600452602490fd5b6015908997959697968a5252828289205416806111b4575b15611181575050509050606461113f6012548361101a565b04905b81611171575b81811061115d5703906110e5388080806110d7565b634e487b7160e01b85526011600452602485fd5b61117c823086611662565b611148565b875286205416806111a9575b1561114257905060646111a26011548361101a565b0490611142565b50601154151561118d565b506012541515611127565b5084895283838a205416156110d2565b600a805460ff60a01b19908116600160a01b179091556111ed61173d565b600a5416600a556110be565b508489526013815283838a205416156110b9565b508189526013815283838a205416156110b3565b508189526015815283838a205416156110ad565b5083600a5460a01c16156110a7565b6005541690818814159182611485575b508161147d575b5080611471575b80611459575b80611441575b61127a575b3880611087565b6000868152602090601582526040908382822054168061142d575b1561135d576006548711611308578181866112b69352808552205487610de3565b600854106112c5575050611273565b60649250519062461bcd60e51b82526004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152fd5b815162461bcd60e51b815260048101849052602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608490fd5b8481526015835283828220541680611419575b1561139157505050600754808511611389575b50611273565b935038611383565b84815260148352838282205416156113ac575b505050611273565b81816113bc928552205487610de3565b600854106113ca57806113a4565b60849250519062461bcd60e51b82526004820152602360248201527f43616e6e6f7420457863656564206d617820746f6b656e73207065722077616c6044820152621b195d60ea1b6064820152fd5b508881526014835283828220541615611370565b508481526014835283828220541615611295565b5081600052601360205280604060002054161561126e565b50856000526013602052806040600020541615611268565b5061dead821415611262565b90503861125b565b841415915038611254565b600084815260209060158252604090858282205416158061159d575b8061158f575b8061157e575b611565575b8a8152600e83528181205443146114d7575b50505061107a565b600f8352818120549060011982116110fb57506001600d549101036114fc57806114cf565b60849250519062461bcd60e51b82526004820152603e60248201527f5f7472616e736665723a3a20416e74692073616e647769636820626f7420656e60448201527f61626c65642e20506c656173652074727920616761696e206c617465722e00006064820152fd5b600e83524382822055600d54600f8452828220556114bd565b50600e8352818120544314156114b8565b5083600954168714156114b2565b50308714156114ac565b90508860005260136020528360406000205416801561160b575b156115cd578390611071565b60405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606490fd5b508460005283604060002054166115c1565b60405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b6001600160a01b0390811691611679831515610f52565b1691611686831515610fac565b6000828152806020526040812054918083106116e957604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9587602096528286520382822055868152206116de828254610de3565b9055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b6000308152602090808252604091828220549283156119c257600b5461176281611004565b85116119b0575b50805167ffffffffffffffff9490606081018681118282101761199c5783526002815283810191833684378151156119885730835260095484516315ab88c960e31b81526001600160a01b03949092909185168784600481845afa93841561197e578994611942575b5084519360019485101561192e576117f291878492168988015230610e05565b84600954169285600c541691843b1561192a57875163791ac94760e01b81526004810191909152602481018a905260a06044820152945160a4860181905289948694909360c48601939092875b8c82821061190f5750505050508380928692606483015242608483015203925af18015611905576118de575b50478061187b575b505050505050565b848092918192600c5416908551915af1503d156118d5573d9384116118c15751926118af601f8201601f1916830185610dab565b83523d92013e5b388080808080611873565b634e487b7160e01b83526041600452602483fd5b505050506118b6565b8581959295116118f1578252923861186b565b634e487b7160e01b82526041600452602482fd5b83513d87823e3d90fd5b84518c1687528e99508a98509586019590930192820161183f565b8980fd5b634e487b7160e01b8a52603260045260248afd5b9093508781813d8311611977575b61195a8183610dab565b81010312611973575185811681036119735792386117d2565b8880fd5b503d611950565b87513d8b823e3d90fd5b634e487b7160e01b86526032600452602486fd5b634e487b7160e01b86526041600452602486fd5b6119bb919450611004565b9238611769565b5050505056fea2646970667358221220b8808be450e94ba9ebd3fc34d33bf46ed65fe6f099dfe10bc9f576142861e98564736f6c634300080f0033

Deployed Bytecode Sourcemap

8975:8082:0:-:0;;;;;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;:::i;:::-;7916:6;8975:8082;-1:-1:-1;;;;;8975:8082:0;;;;;;7908:67;231:10;7916:22;;7908:67;:::i;:::-;8975:8082;8216:22;;;8975:8082;;;;;;8292:38;;;;;-1:-1:-1;;;;;;8975:8082:0;;7916:6;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;9192:33;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9592:39;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12788:34;8975:8082;;;:::i;:::-;7916:6;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;7908:67;;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;8975:8082;;;;;12738:19;8975:8082;;12738:39;8975:8082;;;;;;;;;;;;;;;;;;;12738:39;8975:8082;;;;;;;12788:34;8975:8082;;;;;;;;;;;;;;;;;;;9290:33;8975:8082;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;:::i;:::-;;;;10031:57;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9075:30;8975:8082;;;;;;;;;;;;;;;;;;;;;;;4365:6;8975:8082;;:::i;:::-;;;231:10;;4365:6;:::i;:::-;8975:8082;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;231:10;;8975:8082;;;;;;;;;;;;;;;;;;;;;5624:35;;;;8975:8082;;;;5768:34;8975:8082;;;;231:10;5768:34;:::i;8975:8082::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;7908:67;8975:8082;7916:6;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;8975:8082;12247:6;8975:8082;;;;12239:14;;;8975:8082;;;;;;12512:25;8975:8082;;12512:39;8975:8082;;;;;;;;;;;;;;;;;;;12512:39;11810:31;8975:8082;;11810:52;8975:8082;;;;;;;;;;;;;;;;;;;11810:52;8975:8082;;;;12609:40;;;;;;;;12385;;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;-1:-1:-1;;;;8975:8082:0;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7866:6;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;7908:67;8975:8082;;;;;7916:6;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;12970:13;8975:8082;;;;;;;;;-1:-1:-1;;;;;8975:8082:0;-1:-1:-1;;;8975:8082:0;12970:13;8975:8082;;13048:16;;8975:8082;13048:16;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9012:27;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;7916:6;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;7908:67;;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;11974:5;;11970:94;;8975:8082;;12069:46;8975:8082;;;;;;12069:31;8975:8082;;;;;;;;;;;;;;;;;;;;12069:46;8975:8082;;11970:94;8975:8082;12007:6;8975:8082;;;;;11997:16;11970:94;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;7908:67;8975:8082;;;;;7916:6;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;11663:22;8975:8082;;-1:-1:-1;;;;8975:8082:0;;;7916:6;11691:10;8975:8082;;;11707:11;8975:8082;;;;;;;;;;;;;;;;;7916:6;8975:8082;-1:-1:-1;;;;;8975:8082:0;;;;;7908:67;231:10;7916:22;;7908:67;:::i;:::-;8975:8082;8058:40;;;;;-1:-1:-1;;;;;;8975:8082:0;7916:6;8975:8082;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9043:28;8975:8082;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;;;;;;;;7908:67;8975:8082;;;;;7916:6;8975:8082;;231:10;7916:22;7908:67;:::i;:::-;12888:14;8975:8082;;-1:-1:-1;;;;8975:8082:0;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;9253:33;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;9141:21;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;5346:47;8975:8082;;5346:47;8975:8082;;:::i;:::-;231:10;8975:8082;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;5346:47;:::i;:::-;231:10;;5346:47;:::i;8975:8082::-;;;;;;;;;;;;;;;;;3974:2;8975:8082;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;:::i;:::-;;;;;:::i;:::-;;4892:6;8975:8082;;4892:6;;;;:::i;:::-;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;231:10;8975:8082;;;;;;;4987:26;;;8975:8082;;;;5124:25;8975:8082;;;231:10;8975:8082;5124:25;:::i;8975:8082::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;4068:12;8975:8082;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;:::i;:::-;;;;9820:63;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4696:6;8975:8082;;:::i;:::-;;;231:10;;4696:6;:::i;8975:8082::-;;;;;;;;;;;;;;9110:27;8975:8082;;;-1:-1:-1;;;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;-1:-1:-1;8975:8082:0;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;8975:8082:0;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7166:338;-1:-1:-1;;;;;8975:8082:0;;;;7279:19;;8975:8082;;;7353:21;;;8975:8082;;;7467:32;8975:8082;;7296:1;8975:8082;;;;;7296:1;8975:8082;;7296:1;8975:8082;;;;;7296:1;8975:8082;;;;;;;7467:32;7166:338::o;8975:8082::-;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;16784:1;8975:8082;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;13073:3029::-;-1:-1:-1;;;;;8975:8082:0;;;;13073:3029;;;13174:68;13182:18;;;13174:68;:::i;:::-;8975:8082;;;13256:16;;;;13248:64;;;:::i;:::-;13326:10;;8975:8082;;13382:13;8975:8082;;;;;;;;;;13381:14;13377:146;;13073:3029;8975:8082;;;13554:523;;13073:3029;8975:8082;13382:13;8975:8082;;;;14083:1071;;13073:3029;13198:1;;;15209:4;;8975:8082;;;;;;;;;;;;;15260:18;8975:8082;-1:-1:-1;15236:42:0;15295:26;;;13073:3029;15295:68;;;13073:3029;15295:104;;;13073:3029;15295:138;;;13073:3029;15284:228;;13073:3029;8975:8082;;;15592:19;8975:8082;;;;;;;;15591:26;:54;;;13073:3029;15587:447;;13073:3029;16066:6;;;;;;;;:::i;:::-;16079:18;8975:8082;;-1:-1:-1;;8975:8082:0;;;;;;;16079:18;8975:8082;13073:3029::o;8975:8082::-;-1:-1:-1;;;8975:8082:0;;;;;;;;15587:447;15700:25;15655:16;;;;;;8975:8082;;;;;;;;;;15700:44;;;15587:447;15696:228;;;8975:8082;;;;;15784:3;15764:16;15773:7;8975:8082;15764:16;;:::i;:::-;8975:8082;15696:228;;15935:8;15931:75;;15696:228;8975:8082;;;;;;;16066:6;15587:447;;;;;;8975:8082;-1:-1:-1;;;8975:8082:0;;;;;;;;15931:75;15992:4;15209;;15992;;:::i;:::-;15931:75;;15696:228;8975:8082;;;;;;15828:45;;;15696:228;15824:100;15696:228;15824:100;8975:8082;;15912:3;15893:15;15902:6;8975:8082;15893:15;;:::i;:::-;8975:8082;15824:100;15696:228;;15828:45;8975:8082;15863:6;8975:8082;15863:10;;15828:45;;15700:44;8975:8082;15733:7;8975:8082;15733:11;;15700:44;;15591:54;8975:8082;;;;;;;;;;15621:24;15591:54;;15284:228;15448:15;8975:8082;;-1:-1:-1;;;;8975:8082:0;;;-1:-1:-1;;;8975:8082:0;;;;15448:15;;:::i;:::-;;8975:8082;;15448:15;8975:8082;15284:228;;15295:138;8975:8082;;;;15410:19;8975:8082;;;;;;;;15409:24;15295:138;;:104;8975:8082;;;;15374:19;8975:8082;;;;;;;;15373:26;15295:104;;:68;8975:8082;;;;15332:25;8975:8082;;;;;;;;15331:32;15295:68;;:26;8975:8082;;15313:8;8975:8082;;;;15312:9;15295:26;;14083:1071;7866:6;8975:8082;;14124:15;;;;;:40;;;;14083:1071;14124:68;;;;14083:1071;14124:101;;;;14083:1071;14124:139;;;14083:1071;14124:175;;;14083:1071;14111:1037;;14083:1071;;;;;14111:1037;13198:1;8975:8082;;;;;14352:25;8975:8082;;;;;;;;;;14352:81;;;14111:1037;14337:803;;;14487:12;8975:8082;14477:22;;8975:8082;;;;;14600:22;8975:8082;;;;;;;14600:22;;:::i;:::-;14626:15;8975:8082;-1:-1:-1;8975:8082:0;;14337:803;;14111:1037;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;14337:803;8975:8082;;;14352:25;8975:8082;;;;;;;;14753:81;;;14337:803;14738:402;;;8975:8082;;;14870:13;8975:8082;14861:22;;;14857:77;;14738:402;;14111:1037;;14857:77;14899:22;-1:-1:-1;14857:77:0;;;14738:402;8975:8082;;;14955:31;8975:8082;;;;;;;;14954:36;14950:190;;14738:402;;;;14111:1037;;14950:190;8975:8082;;15025:22;8975:8082;;;;;15025:22;;:::i;:::-;15051:15;8975:8082;-1:-1:-1;8975:8082:0;;14950:190;;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;14753:81;8975:8082;;;;14797:31;8975:8082;;;;;;;;14796:38;14753:81;;14352;8975:8082;;;;14398:31;8975:8082;;;;;;;;14397:36;14352:81;;14124:175;8975:8082;;13198:1;8975:8082;14276:19;8975:8082;;;;13198:1;8975:8082;;;14275:24;14124:175;;:139;8975:8082;;13198:1;8975:8082;14238:19;8975:8082;;;;13198:1;8975:8082;;;14237:26;14124:139;;:101;14204:21;14218:6;14204:21;;;14124:101;;:68;;;;;;:40;14151:13;;;;-1:-1:-1;14124:40:0;;;13554:523;13198:1;8975:8082;;;;;13589:25;8975:8082;;;;;;;;;;13588:30;:61;;;13554:523;13588:97;;;13554:523;13588:148;;;13554:523;13575:274;;13554:523;8975:8082;;;13860:19;8975:8082;;;;;;13889:12;13860:41;13856:215;;13554:523;;;;;;13856:215;13932:17;8975:8082;;;;;;;-1:-1:-1;;8975:8082:0;;;;;;13963:13;8975:8082;;;13932:44;8975:8082;;13856:215;;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13575:274;13755:19;8975:8082;;13781:12;8975:8082;;;;13827:13;8975:8082;13803:17;8975:8082;;;;;;13575:274;;13588:148;8975:8082;13697:19;8975:8082;;;;;;13724:12;13697:39;;13588:148;;:97;8975:8082;;13675:9;8975:8082;;13661:24;;;13588:97;;:61;13644:4;;13630:19;;;13588:61;;13377:146;8975:8082;;;13198:1;8975:8082;13422:19;8975:8082;;;;13198:1;8975:8082;;;13422:52;;;;13377:146;8975:8082;;;13377:146;;;;8975:8082;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;13422:52;8975:8082;;13198:1;8975:8082;;;13198:1;8975:8082;;;13422:52;;8975:8082;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;;;;5836:544;-1:-1:-1;;;;;8975:8082:0;;;;5945:70;5953:20;;;5945:70;:::i;:::-;8975:8082;6029:23;6021:71;6029:23;;;6021:71;:::i;:::-;5971:1;8975:8082;;;;;;;;;;6154:23;;;;8975:8082;;;;;6340:35;8975:8082;;;;;;;;;;;;;;;;;6298:30;8975:8082;;;6298:30;:::i;:::-;8975:8082;;;;;;;6340:35;5836:544::o;8975:8082::-;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;16598:457;4193:9;16676:4;8975:8082;;;;;;;;;;;;;16692:20;;;16688:47;;16763:18;8975:8082;16763:22;;;:::i;:::-;16745:40;;16741:101;;16598:457;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;;;;16784:1;8975:8082;;;;;;;;;;;;;;;16676:4;8975:8082;;16307:9;8975:8082;;;-1:-1:-1;;;16307:16:0;;-1:-1:-1;;;;;8975:8082:0;;;;;;;16307:16;8975:8082;16307:16;8975:8082;;16307:16;;;;;;;;;;;16598:457;8975:8082;;;;;;;;;;;16374:11;8975:8082;;;;;;;;;16676:4;16374:11;:::i;:::-;8975:8082;16307:9;8975:8082;;;;16550:10;8975:8082;;16414:175;;;;;;8975:8082;;-1:-1:-1;;;16414:175:0;;16307:16;16414:175;;8975:8082;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16568:15;8975:8082;;;;16414:175;;;;;;;;;;8975:8082;16927:21;;16959:14;16955:96;;8975:8082;16598:457;;;;;;:::o;16955:96::-;8975:8082;;;;;;16550:10;8975:8082;;;;;16997:47;;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;;;;;-1:-1:-1;;8975:8082:0;;;;;:::i;:::-;;;;;;;;16955:96;;;;;;;;8975:8082;-1:-1:-1;;;8975:8082:0;;;16307:16;8975:8082;;;;;;;;;;;16414:175;8975:8082;;;;;;;;;;16414:175;;;;8975:8082;-1:-1:-1;;;8975:8082:0;;;16307:16;8975:8082;;;;16414:175;8975:8082;;;;;;;;;;;;;;;;;;-1:-1:-1;8975:8082:0;;-1:-1:-1;8975:8082:0;;;;;;;;;;;;16414:175;8975:8082;;;;-1:-1:-1;;;8975:8082:0;;;16307:16;8975:8082;;;;16307:16;;;;;;;;;;;;;;;;;:::i;:::-;;;8975:8082;;;;;;;;;;;;16307:16;;;;8975:8082;;;;16307:16;;;;;;8975:8082;;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;;-1:-1:-1;;;8975:8082:0;;;;;;;;16741:101;16813:22;;;;;:::i;:::-;16741:101;;;;16688:47;16722:7;;;;:::o

Swarm Source

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