ETH Price: $3,458.55 (-0.64%)
Gas: 11 Gwei

Token

Neutrino (USDN)
 

Overview

Max Total Supply

10,416,590.034730464415996612 USDN

Holders

53 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Neutrino token contract has migrated to 0x674c6ad92fd080e4004b2312b45f796a192d27a0.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
USDN

Compiler Version
v0.7.0+commit.9e61f92b

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 7 of 7: USDN.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.0;

import "./StandartToken.sol";
import "./Details.sol";

contract USDN is StandartToken, Detailable {}

File 1 of 7: Deprecatable.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.0;

import "./Ownable.sol";

abstract contract Deprecateble is Ownable {
  bool internal _deprecated;

  modifier onlyNotDeprecated() {
    require(!_deprecated, "Deprecateble: contract is deprecated");
    _;
  }

  function deprecate() public onlyOwner {
    _deprecated = true;
    emit Deprecate(msg.sender);
  }

  event Deprecate(address indexed account);
}

File 2 of 7: Details.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.0;

abstract contract Detailable {
  function name() public pure returns (string memory) {
    return "Neutrino";
  }

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

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

File 3 of 7: ERC20.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.0;

interface ERC20 {

  function totalSupply() external view returns (uint256);

  function balanceOf(address account) external view returns (uint256);

  function allowance(address owner, address spender) external view returns (uint256);

  function approve(address spender, uint256 amount) external returns (bool);

  function increaseAllowance(address spender, uint256 addedValue) external returns (bool);

  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool);

  function transfer(address recipient, 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);
}

File 4 of 7: Ownable.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.0;

abstract contract Ownable {
  address private _owner;
  address private _admin;

  constructor () {
    _owner = msg.sender;
    _admin = msg.sender;
  }

  modifier onlyOwner() {
    require(_owner == msg.sender || _admin == msg.sender, "Ownable: caller is not the owner or admin");
    _;
  }

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

File 5 of 7: Staking.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.0;

interface Staking {
  function deposit(address account, uint256 amount) external returns (bool);

  function stake(uint256 reward) external returns (bool);

  function withdraw(address account) external returns (bool);

  event Reward(uint256 id, uint amount);
}

File 6 of 7: StandartToken.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.7.0;

import "./Staking.sol";
import "./ERC20.sol";
import "./Ownable.sol";
import "./Deprecatable.sol";

abstract contract StandartToken is Staking, ERC20, Ownable, Deprecateble {
  struct Snapshots {
    uint256[] ids;
    uint256[] values;
  }

  uint256 internal _totalSupply;
  uint256 internal _currentDeposits;
  uint256 internal _currentSnapshotId;
  mapping(address => uint256) internal _balances;
  mapping(address => mapping(address => uint256)) internal _allowances;
  mapping(uint256 => uint256) internal _rewards;
  mapping(uint256 => uint256) internal _totalSupplies;
  mapping(address => uint256) internal _lastRewardSnapshot;
  mapping(address => Snapshots) internal _accountBalanceSnapshots;

  function deposit(address account, uint256 amount) external onlyOwner onlyNotDeprecated override virtual returns (bool)  {
    require(amount > 0, "amount should be > 0");
    require(account != address(0), "deposit to the zero address");

    uint256 lastSnapshotId;
    Snapshots storage snapshots = _accountBalanceSnapshots[account];
    uint256 snapshotLength = snapshots.ids.length;
    if (snapshotLength != 0) {
      lastSnapshotId = snapshots.ids[snapshotLength - 1];
    }

    uint256 temp = _balances[account] + amount;
    require(temp >= amount, "addition overflow for new balance");
    _balances[account] = temp;

    if (lastSnapshotId == _currentSnapshotId + 2) {
      temp = snapshots.values[snapshotLength - 1] + amount;
      require(temp >= amount, "addition overflow for amount");
      snapshots.values[snapshotLength - 1] = temp;
    } else {
      snapshots.ids.push(_currentSnapshotId + 2);
      snapshots.values.push(temp);
    }
    _currentDeposits += amount;

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

  function stake(uint256 reward) external onlyOwner onlyNotDeprecated override virtual returns (bool) {
    require(reward > 0, "reward should be > 0");

    uint256 oldTotalSupply = _totalSupply;
    uint256 oldIndex = _currentSnapshotId;
    uint256 oldDeposits = _currentDeposits;

    require(oldIndex + 1 >= oldIndex, "addition overflow for currentIndex");
    _currentSnapshotId = oldIndex + 1;
    _rewards[oldIndex + 1] = reward;
    _totalSupplies[oldIndex + 1] = oldTotalSupply;

    if (oldTotalSupply == 0) {
      require(oldTotalSupply + oldDeposits >= oldTotalSupply, "addition overflow for totalSupply");
      _totalSupply = oldTotalSupply + oldDeposits;
    } else {
      require(oldTotalSupply + oldDeposits + reward >= oldTotalSupply, "addition overflow for totalSupply");
      _totalSupply = oldTotalSupply + oldDeposits + reward;
    }

    _currentDeposits = 0;
    emit Reward(oldIndex, reward);
    return true;
  }

  function withdraw(address account) external onlyOwner onlyNotDeprecated override virtual returns (bool) {
    uint256 balanceTotal = balanceOf(account);

    require(balanceTotal > 0, "balance should be > 0");
    uint256 temp = _totalSupply;
    if (balanceTotal > temp) {
      _totalSupply = 0;
      uint256 oldDeposits = _currentDeposits;
      require(balanceTotal - temp <= oldDeposits, "balanceTotal - oldTotalSupply > oldDeposits");
      _currentDeposits = oldDeposits - (balanceTotal - temp);
    } else {
      _totalSupply = temp - balanceTotal;
    }

    Snapshots storage snapshots = _accountBalanceSnapshots[account];
    uint256 lastIndex = snapshots.ids.length;
    uint256 oldIndex = _currentSnapshotId;
    uint256 length = snapshots.ids.length;
    while (lastIndex > 0 && snapshots.ids[lastIndex - 1] > oldIndex) {
      lastIndex--;
    }

    temp = lastIndex + 3;
    for (; lastIndex < temp; lastIndex++) {
      if (lastIndex >= length) {
        snapshots.ids.push(lastIndex);
        snapshots.values.push(0);
      } else {
        snapshots.ids[lastIndex] = lastIndex;
        snapshots.values[lastIndex] = 0;
      }
    }
    _lastRewardSnapshot[account] = oldIndex;
    _balances[account] = 0;

    emit Transfer(account, address(0), balanceTotal);
    return true;
  }

  // ERC20
  function totalSupply() external view override virtual returns (uint256) {
    return _totalSupply + _currentDeposits;
  }

  function balanceOf(address account) public view override virtual returns (uint256) {
    uint256 currentSnapshotId = _lastRewardSnapshot[account] + 1;
    uint256 lastSnapshotId = _currentSnapshotId;
    Snapshots storage balancesSnapshots = _accountBalanceSnapshots[account];

    uint256 balance = _balances[account];
    uint256 balancesLength = balancesSnapshots.ids.length;

    uint256 balanceIndex;
    uint256 low;
    uint256 high = balancesLength;

    if (balancesLength != 0) {
      while (low < high) {
        uint256 mid = (low / 2) + (high / 2) + ((low % 2 + high % 2) / 2);
        if (balancesSnapshots.ids[mid] > currentSnapshotId) {
          high = mid;
        } else {
          low = mid + 1;
        }
      }

      if (low > 0 && balancesSnapshots.ids[low - 1] == currentSnapshotId) {
        balanceIndex = low - 1;
      } else {
        balanceIndex = low;
      }
    }

    uint256 total;
    for (; currentSnapshotId <= lastSnapshotId; currentSnapshotId++) {
      while (balanceIndex < balancesLength && (balancesLength == 0 ? 0 : balancesSnapshots.ids[balanceIndex]) < currentSnapshotId) {
        balanceIndex++;
      }

      if (balanceIndex == balancesLength) {
        low = balance + total;
      } else {
        if (balancesSnapshots.ids[balanceIndex] > currentSnapshotId) {
          low = total;
          continue;
        } else {
          low = (balanceIndex == balancesLength ? balance : balancesSnapshots.values[balanceIndex]) + total;
          if (low == 0) {
            continue;
          }
        }
      }

      high = _totalSupplies[currentSnapshotId];
      if (high == 0) {
        continue;
      }

      low *= _rewards[currentSnapshotId];
      low /= high;
      require(low + total >= total, "addition overflow for total");
      total += low;
    }

    require(balance + total >= balance, "addition overflow for balanceOf");
    return balance + total;
  }

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

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

  function approve(address spender, uint256 amount) external override virtual returns (bool) {
    _approve(msg.sender, spender, amount);
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(temp + addedValue >= temp, "addition overflow");
    _approve(msg.sender, spender, temp + addedValue);
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(subtractedValue <= temp, "ERC20: decreased allowance below zero");
    _approve(msg.sender, spender, temp - subtractedValue);
    return true;
  }

  function transfer(address recipient, uint256 amount) external override virtual returns (bool) {
    _transfer(msg.sender, recipient, amount);
    return true;
  }

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

    uint256 temp = _allowances[sender][msg.sender];
    require(amount <= temp, "ERC20: transfer amount exceeds allowance");
    _approve(sender, msg.sender, temp - amount);
    return true;
  }

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

    uint256 balance = balanceOf(sender);
    Snapshots storage snapshots = _accountBalanceSnapshots[sender];
    uint256 temp = snapshots.ids.length;
    uint256 length = snapshots.ids.length;
    uint256 oldSnapshotId = _currentSnapshotId;
    while (temp > 0 && snapshots.ids[temp - 1] >= oldSnapshotId) {
      snapshots.values[temp - 1] = balance - amount;
      temp--;
    }

    temp = 0;
    if (length != 0) {
      temp = snapshots.ids[length - 1];
    }
    if (temp == oldSnapshotId + 2) {
      snapshots.values[length - 1] = balance - amount;
    } else {
      snapshots.ids.push(oldSnapshotId + 2);
      snapshots.values.push(balance - amount);
    }
    _lastRewardSnapshot[sender] = oldSnapshotId;
    require(amount <= balance, "ERC20: transfer amount exceeds balance");
    _balances[sender] = balance - amount;

    balance = balanceOf(recipient);
    snapshots = _accountBalanceSnapshots[recipient];
    temp = snapshots.ids.length;
    length = snapshots.ids.length;
    while (temp > 0 && snapshots.ids[temp - 1] >= oldSnapshotId) {
      snapshots.values[temp - 1] = balance - amount;
      temp--;
    }

    _lastRewardSnapshot[recipient] = oldSnapshotId;
    oldSnapshotId = temp + 3;
    for (; temp < oldSnapshotId; temp++) {
      if (temp >= length) {
        snapshots.ids.push(temp);
        snapshots.values.push(balance + amount);
      } else {
        snapshots.ids[temp] = temp;
        snapshots.values[temp] = balance + amount;
      }
    }
    require(balance + amount >= amount, "addition overflow for balance");
    _balances[recipient] = balance + amount;

    emit Transfer(sender, recipient, amount);
  }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deprecate","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060008054336001600160a01b03199182168117835560018054909216179055611a2590819061004090396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806351cff8d911610097578063a694fc3a11610066578063a694fc3a14610312578063a9059cbb1461032f578063dd62ed3e1461035b578063f2fde38b1461038957610100565b806351cff8d91461029257806370a08231146102b857806395d89b41146102de578063a457c2d7146102e657610100565b806323b872dd116100d357806323b872dd146101e6578063313ce5671461021c578063395093511461023a57806347e7ef241461026657610100565b806306fdde0314610105578063095ea7b3146101825780630fcc0c28146101c257806318160ddd146101cc575b600080fd5b61010d6103af565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103d1565b604080519115158252519081900360200190f35b6101ca6103e7565b005b6101d4610485565b60408051918252519081900360200190f35b6101ae600480360360608110156101fc57600080fd5b506001600160a01b0381358116916020810135909116906040013561048f565b610224610517565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561025057600080fd5b506001600160a01b03813516906020013561051c565b6101ae6004803603604081101561027c57600080fd5b506001600160a01b0381351690602001356105a2565b6101ae600480360360208110156102a857600080fd5b50356001600160a01b03166108d9565b6101d4600480360360208110156102ce57600080fd5b50356001600160a01b0316610b95565b61010d610e3d565b6101ae600480360360408110156102fc57600080fd5b506001600160a01b038135169060200135610e5b565b6101ae6004803603602081101561032857600080fd5b5035610ecb565b6101ae6004803603604081101561034557600080fd5b506001600160a01b038135169060200135611119565b6101d46004803603604081101561037157600080fd5b506001600160a01b0381358116916020013516611126565b6101ca6004803603602081101561039f57600080fd5b50356001600160a01b0316611151565b6040805180820190915260088152674e65757472696e6f60c01b602082015290565b60006103de338484611216565b50600192915050565b6000546001600160a01b031633148061040a57506001546001600160a01b031633145b6104455760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b17905560405133907fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a2565b6003546002540190565b600061049c84848461134b565b6001600160a01b0384166000908152600660209081526040808320338452909152902054808311156104ff5760405162461bcd60e51b81526004018080602001828103825260288152602001806118a76028913960400191505060405180910390fd5b61050c8533858403611216565b506001949350505050565b601290565b3360009081526006602090815260408083206001600160a01b038616845290915281205482810181111561058b576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6105983385858401611216565b5060019392505050565b600080546001600160a01b03163314806105c657506001546001600160a01b031633145b6106015760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b600154600160a01b900460ff161561064a5760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b60008211610696576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b0383166106f1576040805162461bcd60e51b815260206004820152601b60248201527f6465706f73697420746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600a60205260408120805480156107315781600001600182038154811061072357fe5b906000526020600020015492505b6001600160a01b03861660009081526005602052604090205485018581101561078b5760405162461bcd60e51b81526004018080602001828103825260218152602001806118cf6021913960400191505060405180910390fd5b6001600160a01b038716600090815260056020526040902081905560045460020184141561084d57858360010160018403815481106107c657fe5b906000526020600020015401905085811015610829576040805162461bcd60e51b815260206004820152601c60248201527f6164646974696f6e206f766572666c6f7720666f7220616d6f756e7400000000604482015290519081900360640190fd5b8083600101600184038154811061083c57fe5b600091825260209091200155610883565b60045483546001818101865560008681526020808220600290950194909301939093558086018054918201815583529120018190555b60038054870190556040805187815290516001600160a01b038916916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019695505050505050565b600080546001600160a01b03163314806108fd57506001546001600160a01b031633145b6109385760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b600154600160a01b900460ff16156109815760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b600061098c83610b95565b9050600081116109db576040805162461bcd60e51b8152602060048201526015602482015274062616c616e63652073686f756c64206265203e203605c1b604482015290519081900360640190fd5b60025480821115610a3c576000600255600354818303811015610a2f5760405162461bcd60e51b815260040180806020018281038252602b81526020018061195a602b913960400191505060405180910390fd5b8183039003600355610a43565b8181036002555b6001600160a01b0384166000908152600a602052604090208054600454815b600083118015610a8d575081846000016001850381548110610a8057fe5b9060005260206000200154115b15610a9e5760001990920191610a62565b8260030194505b84831015610b2a57808310610ae357835460018181018655600086815260208082209093018690558187018054928301815581529182200155610b1f565b82846000018481548110610af357fe5b90600052602060002001819055506000846001018481548110610b1257fe5b6000918252602090912001555b600190920191610aa5565b6001600160a01b03881660008181526009602090815260408083208690556005825280832083905580518a815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3506001979650505050505050565b6001600160a01b038116600090815260096020908152604080832054600454600a84528285206005909452918420548354600190920193918580828015610c74575b80821015610c355760006002808306600285060181610bf257fe5b0460028304600285040101905088876000018281548110610c0f57fe5b90600052602060002001541115610c2857809150610c2f565b8060010192505b50610bd7565b600082118015610c60575087866000016001840381548110610c5357fe5b9060005260206000200154145b15610c7057600182039250610c74565b8192505b60005b878911610dd5575b8484108015610cb45750888515610caf57876000018581548110610c9f57fe5b9060005260206000200154610cb2565b60005b105b15610cc457600190930192610c7f565b84841415610cd6578086019250610d35565b88876000018581548110610ce657fe5b90600052602060002001541115610cff57809250610dca565b80858514610d2657876001018581548110610d1657fe5b9060005260206000200154610d28565b865b01925082610d3557610dca565b600089815260086020526040902054915081610d5057610dca565b6000898152600760205260409020549290920291818381610d6d57fe5b049250808184011015610dc7576040805162461bcd60e51b815260206004820152601b60248201527f6164646974696f6e206f766572666c6f7720666f7220746f74616c0000000000604482015290519081900360640190fd5b82015b600190980197610c77565b858187011015610e2c576040805162461bcd60e51b815260206004820152601f60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e63654f6600604482015290519081900360640190fd5b949094019998505050505050505050565b6040805180820190915260048152632aa9a22760e11b602082015290565b3360009081526006602090815260408083206001600160a01b038616845290915281205480831115610ebe5760405162461bcd60e51b81526004018080602001828103825260258152602001806119a76025913960400191505060405180910390fd5b6105983385858403611216565b600080546001600160a01b0316331480610eef57506001546001600160a01b031633145b610f2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b600154600160a01b900460ff1615610f735760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b60008211610fbf576040805162461bcd60e51b815260206004820152601460248201527307265776172642073686f756c64206265203e20360641b604482015290519081900360640190fd5b6002546004546003546001820182111561100a5760405162461bcd60e51b81526004018080602001828103825260228152602001806119856022913960400191505060405180910390fd5b60018201600481905560009081526007602090815260408083208890556008909152902083905582611082578281840110156110775760405162461bcd60e51b81526004018080602001828103825260218152602001806119156021913960400191505060405180910390fd5b8281016002556110ce565b82858285010110156110c55760405162461bcd60e51b81526004018080602001828103825260218152602001806119156021913960400191505060405180910390fd5b82810185016002555b6000600355604080518381526020810187905281517f45cad8c10023de80f4c0672ff6c283b671e11aa93c92b9380cdf060d2790da52929181900390910190a1506001949350505050565b60006103de33848461134b565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b031633148061117457506001546001600160a01b031633145b6111af5760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b6001600160a01b0381166111f45760405162461bcd60e51b81526004018080602001828103825260268152602001806118106026913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff161561125f5760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b6001600160a01b0383166112a45760405162461bcd60e51b81526004018080602001828103825260248152602001806119366024913960400191505060405180910390fd5b6001600160a01b0382166112e95760405162461bcd60e51b81526004018080602001828103825260228152602001806118366022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600154600160a01b900460ff16156113945760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b600081116113e0576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b0383166114255760405162461bcd60e51b81526004018080602001828103825260258152602001806118f06025913960400191505060405180910390fd5b6001600160a01b03821661146a5760405162461bcd60e51b81526004018080602001828103825260238152602001806117ed6023913960400191505060405180910390fd5b600061147584610b95565b6001600160a01b0385166000908152600a602052604090208054600454929350909181905b6000831180156114c65750808460000160018503815481106114b857fe5b906000526020600020015410155b156114f8578585038460010160018503815481106114e057fe5b6000918252602090912001556000199092019161149a565b6000925081156115225783600001600183038154811061151457fe5b906000526020600020015492505b806002018314156115535785850384600101600184038154811061154257fe5b600091825260209091200155611587565b8354600181810186556000868152602080822060028601940193909355818701805492830181558152919091208787039101555b6001600160a01b0388166000908152600960205260409020819055848611156115e15760405162461bcd60e51b81526004018080602001828103825260268152602001806118586026913960400191505060405180910390fd5b6001600160a01b0388166000908152600560205260409020868603905561160787610b95565b6001600160a01b0388166000908152600a602052604090208054919650945092508291505b60008311801561165857508084600001600185038154811061164a57fe5b906000526020600020015410155b1561168a5785850384600101600185038154811061167257fe5b6000918252602090912001556000199092019161162c565b6001600160a01b038716600090815260096020526040902055600382015b80831015611733578183106116eb578354600181810186556000868152602080822090930186905581870180549283018155815291909120868801910155611728565b828460000184815481106116fb57fe5b906000526020600020018190555085850184600101848154811061171b57fe5b6000918252602090912001555b6001909201916116a8565b85868601101561178a576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808816600081815260056020908152604091829020898b01905581518a8152915192938c16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572206f722061646d696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63656164646974696f6e206f766572666c6f7720666f72206e65772062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c537570706c7945524332303a20617070726f76652066726f6d20746865207a65726f206164647265737362616c616e6365546f74616c202d206f6c64546f74616c537570706c79203e206f6c644465706f736974736164646974696f6e206f766572666c6f7720666f722063757272656e74496e64657845524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f446570726563617465626c653a20636f6e74726163742069732064657072656361746564a264697066735822122045df2b5bc2675e03a28d3063d1a6b6ae8c6de48581ac23ec022619f60a7e5f7f64736f6c63430007000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806351cff8d911610097578063a694fc3a11610066578063a694fc3a14610312578063a9059cbb1461032f578063dd62ed3e1461035b578063f2fde38b1461038957610100565b806351cff8d91461029257806370a08231146102b857806395d89b41146102de578063a457c2d7146102e657610100565b806323b872dd116100d357806323b872dd146101e6578063313ce5671461021c578063395093511461023a57806347e7ef241461026657610100565b806306fdde0314610105578063095ea7b3146101825780630fcc0c28146101c257806318160ddd146101cc575b600080fd5b61010d6103af565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103d1565b604080519115158252519081900360200190f35b6101ca6103e7565b005b6101d4610485565b60408051918252519081900360200190f35b6101ae600480360360608110156101fc57600080fd5b506001600160a01b0381358116916020810135909116906040013561048f565b610224610517565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561025057600080fd5b506001600160a01b03813516906020013561051c565b6101ae6004803603604081101561027c57600080fd5b506001600160a01b0381351690602001356105a2565b6101ae600480360360208110156102a857600080fd5b50356001600160a01b03166108d9565b6101d4600480360360208110156102ce57600080fd5b50356001600160a01b0316610b95565b61010d610e3d565b6101ae600480360360408110156102fc57600080fd5b506001600160a01b038135169060200135610e5b565b6101ae6004803603602081101561032857600080fd5b5035610ecb565b6101ae6004803603604081101561034557600080fd5b506001600160a01b038135169060200135611119565b6101d46004803603604081101561037157600080fd5b506001600160a01b0381358116916020013516611126565b6101ca6004803603602081101561039f57600080fd5b50356001600160a01b0316611151565b6040805180820190915260088152674e65757472696e6f60c01b602082015290565b60006103de338484611216565b50600192915050565b6000546001600160a01b031633148061040a57506001546001600160a01b031633145b6104455760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b17905560405133907fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a2565b6003546002540190565b600061049c84848461134b565b6001600160a01b0384166000908152600660209081526040808320338452909152902054808311156104ff5760405162461bcd60e51b81526004018080602001828103825260288152602001806118a76028913960400191505060405180910390fd5b61050c8533858403611216565b506001949350505050565b601290565b3360009081526006602090815260408083206001600160a01b038616845290915281205482810181111561058b576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6105983385858401611216565b5060019392505050565b600080546001600160a01b03163314806105c657506001546001600160a01b031633145b6106015760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b600154600160a01b900460ff161561064a5760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b60008211610696576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b0383166106f1576040805162461bcd60e51b815260206004820152601b60248201527f6465706f73697420746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600a60205260408120805480156107315781600001600182038154811061072357fe5b906000526020600020015492505b6001600160a01b03861660009081526005602052604090205485018581101561078b5760405162461bcd60e51b81526004018080602001828103825260218152602001806118cf6021913960400191505060405180910390fd5b6001600160a01b038716600090815260056020526040902081905560045460020184141561084d57858360010160018403815481106107c657fe5b906000526020600020015401905085811015610829576040805162461bcd60e51b815260206004820152601c60248201527f6164646974696f6e206f766572666c6f7720666f7220616d6f756e7400000000604482015290519081900360640190fd5b8083600101600184038154811061083c57fe5b600091825260209091200155610883565b60045483546001818101865560008681526020808220600290950194909301939093558086018054918201815583529120018190555b60038054870190556040805187815290516001600160a01b038916916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019695505050505050565b600080546001600160a01b03163314806108fd57506001546001600160a01b031633145b6109385760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b600154600160a01b900460ff16156109815760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b600061098c83610b95565b9050600081116109db576040805162461bcd60e51b8152602060048201526015602482015274062616c616e63652073686f756c64206265203e203605c1b604482015290519081900360640190fd5b60025480821115610a3c576000600255600354818303811015610a2f5760405162461bcd60e51b815260040180806020018281038252602b81526020018061195a602b913960400191505060405180910390fd5b8183039003600355610a43565b8181036002555b6001600160a01b0384166000908152600a602052604090208054600454815b600083118015610a8d575081846000016001850381548110610a8057fe5b9060005260206000200154115b15610a9e5760001990920191610a62565b8260030194505b84831015610b2a57808310610ae357835460018181018655600086815260208082209093018690558187018054928301815581529182200155610b1f565b82846000018481548110610af357fe5b90600052602060002001819055506000846001018481548110610b1257fe5b6000918252602090912001555b600190920191610aa5565b6001600160a01b03881660008181526009602090815260408083208690556005825280832083905580518a815290519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3506001979650505050505050565b6001600160a01b038116600090815260096020908152604080832054600454600a84528285206005909452918420548354600190920193918580828015610c74575b80821015610c355760006002808306600285060181610bf257fe5b0460028304600285040101905088876000018281548110610c0f57fe5b90600052602060002001541115610c2857809150610c2f565b8060010192505b50610bd7565b600082118015610c60575087866000016001840381548110610c5357fe5b9060005260206000200154145b15610c7057600182039250610c74565b8192505b60005b878911610dd5575b8484108015610cb45750888515610caf57876000018581548110610c9f57fe5b9060005260206000200154610cb2565b60005b105b15610cc457600190930192610c7f565b84841415610cd6578086019250610d35565b88876000018581548110610ce657fe5b90600052602060002001541115610cff57809250610dca565b80858514610d2657876001018581548110610d1657fe5b9060005260206000200154610d28565b865b01925082610d3557610dca565b600089815260086020526040902054915081610d5057610dca565b6000898152600760205260409020549290920291818381610d6d57fe5b049250808184011015610dc7576040805162461bcd60e51b815260206004820152601b60248201527f6164646974696f6e206f766572666c6f7720666f7220746f74616c0000000000604482015290519081900360640190fd5b82015b600190980197610c77565b858187011015610e2c576040805162461bcd60e51b815260206004820152601f60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e63654f6600604482015290519081900360640190fd5b949094019998505050505050505050565b6040805180820190915260048152632aa9a22760e11b602082015290565b3360009081526006602090815260408083206001600160a01b038616845290915281205480831115610ebe5760405162461bcd60e51b81526004018080602001828103825260258152602001806119a76025913960400191505060405180910390fd5b6105983385858403611216565b600080546001600160a01b0316331480610eef57506001546001600160a01b031633145b610f2a5760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b600154600160a01b900460ff1615610f735760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b60008211610fbf576040805162461bcd60e51b815260206004820152601460248201527307265776172642073686f756c64206265203e20360641b604482015290519081900360640190fd5b6002546004546003546001820182111561100a5760405162461bcd60e51b81526004018080602001828103825260228152602001806119856022913960400191505060405180910390fd5b60018201600481905560009081526007602090815260408083208890556008909152902083905582611082578281840110156110775760405162461bcd60e51b81526004018080602001828103825260218152602001806119156021913960400191505060405180910390fd5b8281016002556110ce565b82858285010110156110c55760405162461bcd60e51b81526004018080602001828103825260218152602001806119156021913960400191505060405180910390fd5b82810185016002555b6000600355604080518381526020810187905281517f45cad8c10023de80f4c0672ff6c283b671e11aa93c92b9380cdf060d2790da52929181900390910190a1506001949350505050565b60006103de33848461134b565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b031633148061117457506001546001600160a01b031633145b6111af5760405162461bcd60e51b815260040180806020018281038252602981526020018061187e6029913960400191505060405180910390fd5b6001600160a01b0381166111f45760405162461bcd60e51b81526004018080602001828103825260268152602001806118106026913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff161561125f5760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b6001600160a01b0383166112a45760405162461bcd60e51b81526004018080602001828103825260248152602001806119366024913960400191505060405180910390fd5b6001600160a01b0382166112e95760405162461bcd60e51b81526004018080602001828103825260228152602001806118366022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600154600160a01b900460ff16156113945760405162461bcd60e51b81526004018080602001828103825260248152602001806119cc6024913960400191505060405180910390fd5b600081116113e0576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b0383166114255760405162461bcd60e51b81526004018080602001828103825260258152602001806118f06025913960400191505060405180910390fd5b6001600160a01b03821661146a5760405162461bcd60e51b81526004018080602001828103825260238152602001806117ed6023913960400191505060405180910390fd5b600061147584610b95565b6001600160a01b0385166000908152600a602052604090208054600454929350909181905b6000831180156114c65750808460000160018503815481106114b857fe5b906000526020600020015410155b156114f8578585038460010160018503815481106114e057fe5b6000918252602090912001556000199092019161149a565b6000925081156115225783600001600183038154811061151457fe5b906000526020600020015492505b806002018314156115535785850384600101600184038154811061154257fe5b600091825260209091200155611587565b8354600181810186556000868152602080822060028601940193909355818701805492830181558152919091208787039101555b6001600160a01b0388166000908152600960205260409020819055848611156115e15760405162461bcd60e51b81526004018080602001828103825260268152602001806118586026913960400191505060405180910390fd5b6001600160a01b0388166000908152600560205260409020868603905561160787610b95565b6001600160a01b0388166000908152600a602052604090208054919650945092508291505b60008311801561165857508084600001600185038154811061164a57fe5b906000526020600020015410155b1561168a5785850384600101600185038154811061167257fe5b6000918252602090912001556000199092019161162c565b6001600160a01b038716600090815260096020526040902055600382015b80831015611733578183106116eb578354600181810186556000868152602080822090930186905581870180549283018155815291909120868801910155611728565b828460000184815481106116fb57fe5b906000526020600020018190555085850184600101848154811061171b57fe5b6000918252602090912001555b6001909201916116a8565b85868601101561178a576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808816600081815260056020908152604091829020898b01905581518a8152915192938c16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572206f722061646d696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63656164646974696f6e206f766572666c6f7720666f72206e65772062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c537570706c7945524332303a20617070726f76652066726f6d20746865207a65726f206164647265737362616c616e6365546f74616c202d206f6c64546f74616c537570706c79203e206f6c644465706f736974736164646974696f6e206f766572666c6f7720666f722063757272656e74496e64657845524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f446570726563617465626c653a20636f6e74726163742069732064657072656361746564a264697066735822122045df2b5bc2675e03a28d3063d1a6b6ae8c6de48581ac23ec022619f60a7e5f7f64736f6c63430007000033

Deployed Bytecode Sourcemap

119:45:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;97:80:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6649:156:5;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6649:156:5;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;277:99:0;;;:::i;:::-;;4098:121:5;;;:::i;:::-;;;;;;;;;;;;;;;;7601:353;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7601:353:5;;;;;;;;;;;;;;;;;:::i;263:68:1:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6809:295:5;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6809:295:5;;;;;;;;:::i;771:1060::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;771:1060:5;;;;;;;;:::i;2779:1304::-;;;;;;;;;;;;;;;;-1:-1:-1;2779:1304:5;-1:-1:-1;;;;;2779:1304:5;;:::i;4223:1929::-;;;;;;;;;;;;;;;;-1:-1:-1;4223:1929:5;-1:-1:-1;;;;;4223:1929:5;;:::i;181:78:1:-;;;:::i;7108:323:5:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7108:323:5;;;;;;;;:::i;1835:940::-;;;;;;;;;;;;;;;;-1:-1:-1;1835:940:5;;:::i;7435:162::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7435:162:5;;;;;;;;:::i;6156:145::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6156:145:5;;;;;;;;;;:::i;362:177:3:-;;;;;;;;;;;;;;;;-1:-1:-1;362:177:3;-1:-1:-1;;;;;362:177:3;;:::i;97:80:1:-;155:17;;;;;;;;;;;;-1:-1:-1;;;155:17:1;;;;97:80;:::o;6649:156:5:-;6734:4;6746:37;6755:10;6767:7;6776:6;6746:8;:37::i;:::-;-1:-1:-1;6796:4:5;6649:156;;;;:::o;277:99:0:-;256:6:3;;-1:-1:-1;;;;;256:6:3;266:10;256:20;;:44;;-1:-1:-1;280:6:3;;-1:-1:-1;;;;;280:6:3;290:10;280:20;256:44;248:98;;;;-1:-1:-1;;;248:98:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;335:4:0::1;321:18:::0;;-1:-1:-1;;;;321:18:0::1;-1:-1:-1::0;;;321:18:0::1;::::0;;350:21:::1;::::0;360:10:::1;::::0;350:21:::1;::::0;321:18;;350:21:::1;277:99::o:0;4098:121:5:-;4198:16;;4183:12;;:31;4098:121;:::o;7601:353::-;7709:4;7721:36;7731:6;7739:9;7750:6;7721:9;:36::i;:::-;-1:-1:-1;;;;;7779:19:5;;7764:12;7779:19;;;:11;:19;;;;;;;;7799:10;7779:31;;;;;;;;7824:14;;;;7816:67;;;;-1:-1:-1;;;7816:67:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7889:43;7898:6;7906:10;7925:6;7918:4;:13;7889:8;:43::i;:::-;-1:-1:-1;7945:4:5;;7601:353;-1:-1:-1;;;;7601:353:5:o;263:68:1:-;324:2;263:68;:::o;6809:295:5:-;6947:10;6908:4;6935:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6935:32:5;;;;;;;;;;6981:17;;;:25;-1:-1:-1;6981:25:5;6973:55;;;;;-1:-1:-1;;;6973:55:5;;;;;;;;;;;;-1:-1:-1;;;6973:55:5;;;;;;;;;;;;;;;7034:48;7043:10;7055:7;7071:10;7064:4;:17;7034:8;:48::i;:::-;-1:-1:-1;7095:4:5;;6809:295;-1:-1:-1;;;6809:295:5:o;771:1060::-;884:4;256:6:3;;-1:-1:-1;;;;;256:6:3;266:10;256:20;;:44;;-1:-1:-1;280:6:3;;-1:-1:-1;;;;;280:6:3;290:10;280:20;256:44;248:98;;;;-1:-1:-1;;;248:98:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;209:11:0::1;::::0;-1:-1:-1;;;209:11:0;::::1;;;208:12;200:61;;;;-1:-1:-1::0;;;200:61:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;914:1:5::2;905:6;:10;897:43;;;::::0;;-1:-1:-1;;;897:43:5;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;897:43:5;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;954:21:5;::::2;946:61;;;::::0;;-1:-1:-1;;;946:61:5;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;1072:33:5;::::2;1014:22;1072:33:::0;;;:24:::2;:33;::::0;;;;1136:20;;1166:19;;1162:90:::2;;1212:9;:13;;1243:1;1226:14;:18;1212:33;;;;;;;;;;;;;;;;1195:50;;1162:90;-1:-1:-1::0;;;;;1273:18:5;::::2;1258:12;1273:18:::0;;;:9:::2;:18;::::0;;;;;:27;::::2;1314:14:::0;;::::2;;1306:60;;;;-1:-1:-1::0;;;1306:60:5::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;1372:18:5;::::2;;::::0;;;:9:::2;:18;::::0;;;;:25;;;1426:18:::2;::::0;1447:1:::2;1426:22;1408:40:::0;::::2;1404:325;;;1504:6;1465:9;:16;;1499:1;1482:14;:18;1465:36;;;;;;;;;;;;;;;;:45;1458:52;;1534:6;1526:4;:14;;1518:55;;;::::0;;-1:-1:-1;;;1518:55:5;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;1620:4;1581:9;:16;;1615:1;1598:14;:18;1581:36;;;;;;;;;::::0;;;::::2;::::0;;;::::2;:43:::0;1404:325:::2;;;1664:18;::::0;1645:42;;::::2;::::0;;::::2;::::0;;:13:::2;:42:::0;;;::::2;::::0;;;1685:1:::2;1664:22:::0;;::::2;1645:42:::0;;;::::2;::::0;;;;1695:16;;::::2;:27:::0;;;;::::2;::::0;;;;;;::::2;::::0;;;1404:325:::2;1734:16;:26:::0;;;::::2;::::0;;1772:37:::2;::::0;;;;;;;-1:-1:-1;;;;;1772:37:5;::::2;::::0;1734:16:::2;::::0;1772:37:::2;::::0;;;;::::2;::::0;;::::2;-1:-1:-1::0;1822:4:5::2;::::0;771:1060;-1:-1:-1;;;;;;771:1060:5:o;2779:1304::-;2877:4;256:6:3;;-1:-1:-1;;;;;256:6:3;266:10;256:20;;:44;;-1:-1:-1;280:6:3;;-1:-1:-1;;;;;280:6:3;290:10;280:20;256:44;248:98;;;;-1:-1:-1;;;248:98:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;209:11:0::1;::::0;-1:-1:-1;;;209:11:0;::::1;;;208:12;200:61;;;;-1:-1:-1::0;;;200:61:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2889:20:5::2;2912:18;2922:7;2912:9;:18::i;:::-;2889:41;;2960:1;2945:12;:16;2937:50;;;::::0;;-1:-1:-1;;;2937:50:5;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2937:50:5;;;;;;;;;;;;;::::2;;3008:12;::::0;3030:19;;::::2;3026:317;;;3074:1;3059:12;:16:::0;3105::::2;::::0;3137:19;;::::2;:34:::0;-1:-1:-1;3137:34:5::2;3129:90;;;;-1:-1:-1::0;;;3129:90:5::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3261:19:::0;;::::2;3246:35:::0;::::2;3227:16;:54:::0;3026:317:::2;;;3317:19:::0;;::::2;3302:12;:34:::0;3026:317:::2;-1:-1:-1::0;;;;;3379:33:5;::::2;3349:27;3379:33:::0;;;:24:::2;:33;::::0;;;;3438:20;;3483:18:::2;::::0;3438:20;3550:91:::2;3569:1;3557:9;:13;:56;;;;;3605:8;3574:9;:13;;3600:1;3588:9;:13;3574:28;;;;;;;;;;;;;;;;:39;3557:56;3550:91;;;-1:-1:-1::0;;3623:11:5;;;;3550:91:::2;;;3654:9;3666:1;3654:13;3647:20;;3673:261;3692:4;3680:9;:16;3673:261;;;3736:6;3723:9;:19;3719:209;;3754:29:::0;;::::2;::::0;;::::2;::::0;;:13:::2;:29:::0;;;::::2;::::0;;;;;::::2;::::0;;;3793:16;;::::2;:24:::0;;;;::::2;::::0;;;;;;;::::2;::::0;3719:209:::2;;;3869:9;3842;:13;;3856:9;3842:24;;;;;;;;;;;;;;;:36;;;;3918:1;3888:9;:16;;3905:9;3888:27;;;;;;;;;::::0;;;::::2;::::0;;;::::2;:31:::0;3719:209:::2;3698:11;::::0;;::::2;::::0;3673:261:::2;;;-1:-1:-1::0;;;;;3939:28:5;::::2;;::::0;;;:19:::2;:28;::::0;;;;;;;:39;;;3984:9:::2;:18:::0;;;;;:22;;;4018:43;;;;;;;3939:28;;;4018:43:::2;::::0;;;;;;;;;::::2;-1:-1:-1::0;4074:4:5::2;::::0;2779:1304;-1:-1:-1;;;;;;;2779:1304:5:o;4223:1929::-;-1:-1:-1;;;;;4340:28:5;;4297:7;4340:28;;;:19;:28;;;;;;;;;4403:18;;4465:24;:33;;;;;4523:9;:18;;;;;;;4572:28;;4371:1;4340:32;;;;4465:33;4297:7;;4572:28;4690:19;;4686:438;;4719:239;4732:4;4726:3;:10;4719:239;;;4748:11;4811:1;;4799:4;:8;4795:1;4789:3;:7;:18;4788:24;;;;;;4782:1;4775:4;:8;4769:1;4763:3;:7;4762:22;:51;4748:65;;4856:17;4827;:21;;4849:3;4827:26;;;;;;;;;;;;;;;;:46;4823:127;;;4894:3;4887:10;;4823:127;;;4932:3;4938:1;4932:7;4926:13;;4823:127;4719:239;;;;4976:1;4970:3;:7;:62;;;;;5015:17;4981;:21;;5009:1;5003:3;:7;4981:30;;;;;;;;;;;;;;;;:51;4970:62;4966:152;;;5065:1;5059:3;:7;5044:22;;4966:152;;;5106:3;5091:18;;4966:152;5130:13;5149:894;5177:14;5156:17;:35;5149:894;;5222:158;5244:14;5229:12;:29;:116;;;;-1:-1:-1;5328:17:5;5263:19;;:61;;5289:17;:21;;5311:12;5289:35;;;;;;;;;;;;;;;;5263:61;;;5285:1;5263:61;5262:83;5229:116;5222:158;;;5357:14;;;;;5222:158;;;5408:14;5392:12;:30;5388:401;;;5450:5;5440:7;:15;5434:21;;5388:401;;;5522:17;5484;:21;;5506:12;5484:35;;;;;;;;;;;;;;;;:55;5480:301;;;5559:5;5553:11;;5576:8;;5480:301;5705:5;5636:14;5620:12;:30;:81;;5663:17;:24;;5688:12;5663:38;;;;;;;;;;;;;;;;5620:81;;;5653:7;5620:81;5619:91;;-1:-1:-1;5726:8:5;5722:49;;5750:8;;5722:49;5804:33;;;;:14;:33;;;;;;;-1:-1:-1;5849:9:5;5845:42;;5870:8;;5845:42;5902:27;;;;:8;:27;;;;;;5895:34;;;;;5944:4;5895:34;5944:4;5937:11;;;;;;;5979:5;5970;5964:3;:11;:20;;5956:60;;;;;-1:-1:-1;;;5956:60:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;6024:12;;5149:894;5193:19;;;;;5149:894;;;6076:7;6067:5;6057:7;:15;:26;;6049:70;;;;;-1:-1:-1;;;6049:70:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;6132:15;;;;;4223:1929;-1:-1:-1;;;;;;;;;4223:1929:5:o;181:78:1:-;241:13;;;;;;;;;;;;-1:-1:-1;;;241:13:1;;;;181:78;:::o;7108:323:5:-;7251:10;7212:4;7239:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7239:32:5;;;;;;;;;;7285:23;;;;7277:73;;;;-1:-1:-1;;;7277:73:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7356:53;7365:10;7377:7;7393:15;7386:4;:22;7356:8;:53::i;1835:940::-;1929:4;256:6:3;;-1:-1:-1;;;;;256:6:3;266:10;256:20;;:44;;-1:-1:-1;280:6:3;;-1:-1:-1;;;;;280:6:3;290:10;280:20;256:44;248:98;;;;-1:-1:-1;;;248:98:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;209:11:0::1;::::0;-1:-1:-1;;;209:11:0;::::1;;;208:12;200:61;;;;-1:-1:-1::0;;;200:61:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1958:1:5::2;1949:6;:10;1941:43;;;::::0;;-1:-1:-1;;;1941:43:5;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;1941:43:5;;;;;;;;;;;;;::::2;;2016:12;::::0;2053:18:::2;::::0;2099:16:::2;::::0;2141:1:::2;2130:12:::0;::::2;:24:::0;-1:-1:-1;2130:24:5::2;2122:71;;;;-1:-1:-1::0;;;2122:71:5::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2231:1;2220:12:::0;::::2;2199:18;:33:::0;;;2238:22:::2;::::0;;;:8:::2;:22;::::0;;;;;;;:31;;;2275:14:::2;:28:::0;;;;;:45;;;2331:19;2327:365:::2;;2400:14;2385:11;2368:14;:28;:46;;2360:92;;;;-1:-1:-1::0;;;2360:92:5::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2475:28:::0;;::::2;2460:12;:43:::0;2327:365:::2;;;2573:14;2563:6;2549:11;2532:14;:28;:37;:55;;2524:101;;;;-1:-1:-1::0;;;2524:101:5::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2648:28:::0;;::::2;:37:::0;::::2;2633:12;:52:::0;2327:365:::2;2717:1;2698:16;:20:::0;2729:24:::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;;;;;;;;;::::2;-1:-1:-1::0;2766:4:5::2;::::0;1835:940;-1:-1:-1;;;;1835:940:5:o;7435:162::-;7523:4;7535:40;7545:10;7557:9;7568:6;7535:9;:40::i;6156:145::-;-1:-1:-1;;;;;6269:18:5;;;6247:7;6269:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6156:145::o;362:177:3:-;256:6;;-1:-1:-1;;;;;256:6:3;266:10;256:20;;:44;;-1:-1:-1;280:6:3;;-1:-1:-1;;;;;280:6:3;290:10;280:20;256:44;248:98;;;;-1:-1:-1;;;248:98:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;446:22:3;::::1;438:73;;;;-1:-1:-1::0;;;438:73:3::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:6;:17:::0;;-1:-1:-1;;;;;;517:17:3::1;-1:-1:-1::0;;;;;517:17:3;;;::::1;::::0;;;::::1;::::0;;362:177::o;6305:340:5:-;209:11:0;;-1:-1:-1;;;209:11:0;;;;208:12;200:61;;;;-1:-1:-1;;;200:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6420:19:5;::::1;6412:68;;;;-1:-1:-1::0;;;6412:68:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6494:21:5;::::1;6486:68;;;;-1:-1:-1::0;;;6486:68:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6561:18:5;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27;;::::1;::::0;;;;;;;;;;:36;;;6608:32;;;;;;;::::1;::::0;;;;;;;;::::1;6305:340:::0;;;:::o;7958:1963::-;209:11:0;;-1:-1:-1;;;209:11:0;;;;208:12;200:61;;;;-1:-1:-1;;;200:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8086:1:5::1;8077:6;:10;8069:43;;;::::0;;-1:-1:-1;;;8069:43:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;8069:43:5;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;8126:20:5;::::1;8118:70;;;;-1:-1:-1::0;;;8118:70:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;8202:23:5;::::1;8194:71;;;;-1:-1:-1::0;;;8194:71:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8272:15;8290:17;8300:6;8290:9;:17::i;:::-;-1:-1:-1::0;;;;;8343:32:5;::::1;8313:27;8343:32:::0;;;:24:::1;:32;::::0;;;;8396:20;;8489:18:::1;::::0;8272:35;;-1:-1:-1;8343:32:5;;8396:20;;8513:135:::1;8527:1;8520:4;:8;:52;;;;;8559:13;8532:9;:13;;8553:1;8546:4;:8;8532:23;;;;;;;;;;;;;;;;:40;;8520:52;8513:135;;;8621:6;8611:7;:16;8582:9;:16;;8606:1;8599:4;:8;8582:26;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:45:::0;-1:-1:-1;;8635:6:5;;;;8513:135:::1;;;8661:1;::::0;-1:-1:-1;8672:11:5;;8668:64:::1;;8700:9;:13;;8723:1;8714:6;:10;8700:25;;;;;;;;;;;;;;;;8693:32;;8668:64;8749:13;8765:1;8749:17;8741:4;:25;8737:198;;;8817:6;8807:7;:16;8776:9;:16;;8802:1;8793:6;:10;8776:28;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:47:::0;8737:198:::1;;;8844:37:::0;;::::1;::::0;;::::1;::::0;;:13:::1;:37:::0;;;::::1;::::0;;;8879:1:::1;8863:17:::0;::::1;8844:37:::0;::::1;::::0;;;;8889:16;;::::1;:39:::0;;;;::::1;::::0;;;;;;;;8911:16;;::::1;8889:39:::0;::::1;::::0;8737:198:::1;-1:-1:-1::0;;;;;8940:27:5;::::1;;::::0;;;:19:::1;:27;::::0;;;;:43;;;8997:17;;::::1;;8989:68;;;;-1:-1:-1::0;;;8989:68:5::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9063:17:5;::::1;;::::0;;;:9:::1;:17;::::0;;;;9083:16;;::::1;9063:36:::0;;9116:20:::1;9126:9:::0;9116::::1;:20::i;:::-;-1:-1:-1::0;;;;;9154:35:5;::::1;;::::0;;;:24:::1;:35;::::0;;;;9202:20;;9106:30;;-1:-1:-1;9154:35:5;-1:-1:-1;9202:20:5;-1:-1:-1;9202:20:5;;-1:-1:-1;9263:135:5::1;9277:1;9270:4;:8;:52;;;;;9309:13;9282:9;:13;;9303:1;9296:4;:8;9282:23;;;;;;;;;;;;;;;;:40;;9270:52;9263:135;;;9371:6;9361:7;:16;9332:9;:16;;9356:1;9349:4;:8;9332:26;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:45:::0;-1:-1:-1;;9385:6:5;;;;9263:135:::1;;;-1:-1:-1::0;;;;;9404:30:5;::::1;;::::0;;;:19:::1;:30;::::0;;;;:46;9479:1:::1;9472:8:::0;::::1;9486:265;9500:13;9493:4;:20;9486:265;;;9543:6;9535:4;:14;9531:214;;9561:24:::0;;::::1;::::0;;::::1;::::0;;:13:::1;:24:::0;;;::::1;::::0;;;;;::::1;::::0;;;9595:16;;::::1;:39:::0;;;;::::1;::::0;;;;;;;;9617:16;;::::1;9595:39:::0;::::1;::::0;9531:214:::1;;;9681:4;9659:9;:13;;9673:4;9659:19;;;;;;;;;;;;;;;:26;;;;9730:6;9720:7;:16;9695:9;:16;;9712:4;9695:22;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:41:::0;9531:214:::1;9515:6;::::0;;::::1;::::0;9486:265:::1;;;9784:6;9774;9764:7;:16;:26;;9756:68;;;::::0;;-1:-1:-1;;;9756:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;9830:20:5;;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;;9853:16;;::::1;9830:39:::0;;9881:35;;;;;;;9830:20;;9881:35;::::1;::::0;::::1;::::0;;;;;;;;::::1;267:1:0;;;;;7958:1963:5::0;;;:::o

Swarm Source

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