Token Nevermind Token

 

Overview ERC-20

Price
$0.00 @ 0.000000 FTM
Fully Diluted Market Cap
Total Supply:
2,080,000,001 NVM

Holders:
14 addresses
Contract:
0xe8c41bf05d896bcc7288c474c00eab413d72867d0xe8C41Bf05D896bCC7288C474c00eab413d72867D

Decimals:
9

Social Profiles:
Not Available, Update ?

Balance
10,000 NVM

Value
$0.00
0xf656d5e980e14da5d436b6a37a51d58d1376a519
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenMintable

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
homestead EvmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 6 of 6: TokenMintable.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;
import { Token } from "Token.sol";
import { Ownable } from "Ownable.sol";

contract TokenMintable is Token, Ownable {
    
event MintingFinished();

  bool private _mintingFinished = false;

  modifier onlyBeforeMintingFinished() {
    
    require(!_mintingFinished);
    _;
  }

  /**
   * @return true if the minting is finished.
   */
  function mintingFinished() public view returns(bool) {
    
    return _mintingFinished;
  }

  /**
   * @dev Function to mint tokens
   * @param to The address that will receive the minted tokens.
   * @param amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(
    address to,
    uint256 amount
  )
    public
    onlyMinter
    onlyBeforeMintingFinished
    returns (bool)
  {
    
    _mint(to, amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting()
    public
    onlyMinter
    onlyBeforeMintingFinished
    returns (bool)
  {
    
    _mintingFinished = true;
    emit MintingFinished();
    return true;
  }

}

File 1 of 6: ERC20.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.8.0 <0.9.0;
interface ERC20 {
    
    function totalSupply() external view returns (uint256);
    
    function balanceOf(address _owner) external view returns (uint256 balance);

    function transfer(address _to, uint256 _value)  external returns (bool success);

    function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);

    function approve(address _spender  , uint256 _value) external returns (bool success);

    function allowance(address _owner, address _spender) external view returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

File 2 of 6: Ownable.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.8.0 <0.9.0;

import "Roles.sol";

contract Ownable {
    
  using Roles for Roles.Role;

  event MinterAdded(address indexed account);
  event MinterRemoved(address indexed account);

  Roles.Role private minters;

  constructor() {
    
    minters.add(msg.sender);
  }

  modifier onlyMinter() {
    
    require(isMinter(msg.sender));
    _;
  }

  function isMinter(address account) public view returns (bool) {
    
    return minters.has(account);
  }

  function addMinter(address account) public onlyMinter {
    
    minters.add(account);
    emit MinterAdded(account);
  }

  function renounceMinter() public {
    
    minters.remove(msg.sender);
  }

  function _removeMinter(address account) internal {
    
    minters.remove(account);
    emit MinterRemoved(account);
  }
}

File 3 of 6: Roles.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.8.0 <0.9.0;

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    
  struct Role {
    
    mapping (address => bool) bearer;
  }

  /**
   * @dev give an account access to this role
   */
  function add(Role storage role, address account) internal {
    
    require(account != address(0));
    role.bearer[account] = true;
  }

  /**
   * @dev remove an account's access to this role
   */
  function remove(Role storage role, address account) internal {
    
    require(account != address(0));
    role.bearer[account] = false;
  }

  /**
   * @dev check if an account has this role
   * @return bool
   */
  function has(Role storage role, address account)
    internal
    view
    returns (bool)
  {
    
    require(account != address(0));
    return role.bearer[account];
  }
}

File 4 of 6: SafeMath.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.8.0 <0.9.0;

library SafeMath {
    
    function mul(uint256 a, uint256 b) internal pure returns (uint256){
    
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256){
    
        assert(b > 0);
        uint256 c = a / b;
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256){
    
        assert(b <= a);
        return a - b;
    }
 
    function add(uint256 a, uint256 b) internal pure returns (uint256){
    
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

File 5 of 6: Token.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.8.0 <0.9.0;
import { SafeMath } from "SafeMath.sol";
import { ERC20 } from "ERC20.sol";

contract Token is ERC20 {
    
  string private _name = 'Nevermind Token';
  string private _symbol = 'NVM';
  uint8 private _decimals = 9;
  uint256 private _totalSupply = 1 * 10**9;
  uint256 constant private MAX_UINT256 = 2**256 - 1;
  uint256 private maxMintBlock = 0;

  using SafeMath for uint256;

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

  mapping (address => uint256) private balances;

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

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

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

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

  function balanceOf(address _owner) public override view returns (uint256 balance) { 
    return balances[_owner];
  }

  function transfer(address _to, uint256 _value) public override returns (bool success) {
    
    assert(0 < _value);
    require(balances[msg.sender] >= _value);
    require(_to != address(0));
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

  function transferFrom(address _from, address _to, uint256 _value) public override returns (bool success) {
    
    uint256 _allowance = allowed[_from][msg.sender];
    assert (balances[_from] >= _value);
    assert (_allowance >= _value);
    assert (_value > 0);
    require(_to != address(0));
    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    emit Transfer(_from, _to, _value);
    return true;
  }

  function approve(address _spender, uint256 _value) public override returns (bool success) {
    
    require(_spender != address(0));
    require((_value == 0) || (allowed[msg.sender][_spender] == 0));
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  function allowance(address _owner, address _spender) public override view returns (uint256 remaining) {
    
    return allowed[_owner][_spender];
  }

  function _mint(address _to, uint256 _amount) internal {
    
      require(_to != address(0));
      _totalSupply = _totalSupply.add(_amount);
      balances[_to] = balances[_to].add(_amount);
      emit Transfer(address(0), _to, _amount);
  }

  function _burn(address account, uint256 amount) internal {
    
    require(account != address(0));
    require(amount <= balances[account]);

    _totalSupply = _totalSupply.sub(amount);
    balances[account] = balances[account].sub(amount);
    emit Transfer(account, address(0), amount);
  }

  function _burnFrom(address account, uint256 amount) internal {
    require(amount <= allowed[account][msg.sender]);
    allowed[account][msg.sender] = allowed[account][msg.sender].sub(amount);
    _burn(account, amount);
  }

  receive() external payable {
      require(msg.value > 0);
      _mint(msg.sender, msg.value);
  }

}

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":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"MintingFinished","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":"account","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finishMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600f81526020017f4e657665726d696e6420546f6b656e00000000000000000000000000000000008152506000908051906020019062000051929190620001b5565b506040518060400160405280600381526020017f4e564d0000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620001b5565b506009600260006101000a81548160ff021916908360ff160217905550633b9aca0060035560006004556000600860006101000a81548160ff021916908315150217905550348015620000f157600080fd5b50620001163360076200011c6401000000000262001043179091906401000000009004565b620002ca565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200015757600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b828054620001c39062000265565b90600052602060002090601f016020900481019282620001e7576000855562000233565b82601f106200020257805160ff191683800117855562000233565b8280016001018555821562000233579182015b828111156200023257825182559160200191906001019062000215565b5b50905062000242919062000246565b5090565b5b808211156200026157600081600090555060010162000247565b5090565b600060028204905060018216806200027e57607f821691505b602082108114156200029557620002946200029b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6116c280620002da6000396000f3fe608060405260043610610109576000357c01000000000000000000000000000000000000000000000000000000009004806370a08231116100a75780639865027511610076578063986502751461034b578063a9059cbb14610362578063aa271e1a1461039f578063dd62ed3e146103dc57610127565b806370a082311461028f5780637d64bcb4146102cc57806395d89b41146102f7578063983b2d561461032257610127565b806318160ddd116100e357806318160ddd146101bf57806323b872dd146101ea578063313ce5671461022757806340c10f191461025257610127565b806305d2035b1461012c57806306fdde0314610157578063095ea7b31461018257610127565b36610127576000341161011b57600080fd5b6101253334610419565b005b600080fd5b34801561013857600080fd5b5061014161056d565b60405161014e91906113e8565b60405180910390f35b34801561016357600080fd5b5061016c610584565b6040516101799190611403565b60405180910390f35b34801561018e57600080fd5b506101a960048036038101906101a49190611342565b610616565b6040516101b691906113e8565b60405180910390f35b3480156101cb57600080fd5b506101d46107d5565b6040516101e19190611425565b60405180910390f35b3480156101f657600080fd5b50610211600480360381019061020c91906112ef565b6107df565b60405161021e91906113e8565b60405180910390f35b34801561023357600080fd5b5061023c610b3b565b6040516102499190611440565b60405180910390f35b34801561025e57600080fd5b5061027960048036038101906102749190611342565b610b52565b60405161028691906113e8565b60405180910390f35b34801561029b57600080fd5b506102b660048036038101906102b19190611282565b610b94565b6040516102c39190611425565b60405180910390f35b3480156102d857600080fd5b506102e1610bdd565b6040516102ee91906113e8565b60405180910390f35b34801561030357600080fd5b5061030c610c59565b6040516103199190611403565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190611282565b610ceb565b005b34801561035757600080fd5b50610360610d57565b005b34801561036e57600080fd5b5061038960048036038101906103849190611342565b610d6d565b60405161039691906113e8565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190611282565b610f9f565b6040516103d391906113e8565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe91906112af565b610fbc565b6040516104109190611425565b60405180910390f35b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561045357600080fd5b610468816003546110db90919063ffffffff16565b6003819055506104c081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110db90919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105619190611425565b60405180910390a35050565b6000600860009054906101000a900460ff16905090565b60606000805461059390611589565b80601f01602080910402602001604051908101604052809291908181526020018280546105bf90611589565b801561060c5780601f106105e15761010080835404028352916020019161060c565b820191906000526020600020905b8154815290600101906020018083116105ef57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561065157600080fd5b60008214806106dc57506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6106e557600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107c39190611425565b60405180910390a36001905092915050565b6000600354905090565b600080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156108b1576108b06115bb565b5b828110156108c2576108c16115bb565b5b600083116108d3576108d26115bb565b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561090d57600080fd5b61095f83600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461110790919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109f483600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110db90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a4a838261110790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610b279190611425565b60405180910390a360019150509392505050565b6000600260009054906101000a900460ff16905090565b6000610b5d33610f9f565b610b6657600080fd5b600860009054906101000a900460ff1615610b8057600080fd5b610b8a8383610419565b6001905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610be833610f9f565b610bf157600080fd5b600860009054906101000a900460ff1615610c0b57600080fd5b6001600860006101000a81548160ff0219169083151502179055507fb828d9b5c78095deeeeff2eca2e5d4fe046ce3feb4c99702624a3fd384ad2dbc60405160405180910390a16001905090565b606060018054610c6890611589565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9490611589565b8015610ce15780601f10610cb657610100808354040283529160200191610ce1565b820191906000526020600020905b815481529060010190602001808311610cc457829003601f168201915b5050505050905090565b610cf433610f9f565b610cfd57600080fd5b610d1181600761104390919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b610d6b33600761112e90919063ffffffff16565b565b600081600010610d8057610d7f6115bb565b5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610dcc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e0657600080fd5b610e5882600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461110790919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610eed82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110db90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f8d9190611425565b60405180910390a36001905092915050565b6000610fb58260076111c690919063ffffffff16565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561107d57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082846110ea9190611477565b9050838110156110fd576110fc6115bb565b5b8091505092915050565b60008282111561111a576111196115bb565b5b818361112691906114cd565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561116857600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561120157600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000813590506112678161165e565b92915050565b60008135905061127c81611675565b92915050565b60006020828403121561129857611297611648565b5b60006112a684828501611258565b91505092915050565b600080604083850312156112c6576112c5611648565b5b60006112d485828601611258565b92505060206112e585828601611258565b9150509250929050565b60008060006060848603121561130857611307611648565b5b600061131686828701611258565b935050602061132786828701611258565b92505060406113388682870161126d565b9150509250925092565b6000806040838503121561135957611358611648565b5b600061136785828601611258565b92505060206113788582860161126d565b9150509250929050565b61138b81611513565b82525050565b600061139c8261145b565b6113a68185611466565b93506113b6818560208601611556565b6113bf8161164d565b840191505092915050565b6113d38161153f565b82525050565b6113e281611549565b82525050565b60006020820190506113fd6000830184611382565b92915050565b6000602082019050818103600083015261141d8184611391565b905092915050565b600060208201905061143a60008301846113ca565b92915050565b600060208201905061145560008301846113d9565b92915050565b600081519050919050565b600082825260208201905092915050565b60006114828261153f565b915061148d8361153f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114c2576114c16115ea565b5b828201905092915050565b60006114d88261153f565b91506114e38361153f565b9250828210156114f6576114f56115ea565b5b828203905092915050565b600061150c8261151f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611574578082015181840152602081019050611559565b83811115611583576000848401525b50505050565b600060028204905060018216806115a157607f821691505b602082108114156115b5576115b4611619565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b61166781611501565b811461167257600080fd5b50565b61167e8161153f565b811461168957600080fd5b5056fea264697066735822122004b6840f06c45deb848bc20d966f3cf995c3cc023d0fd3e233c2a23f0632151964736f6c63430008070033

Deployed ByteCode Sourcemap

143:1132:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3328:1:4;3316:9;:13;3308:22;;;;;;3339:28;3345:10;3357:9;3339:5;:28::i;:::-;143:1132:5;;;;;424:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;595:77:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1988:322;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;850:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1459:523;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;765:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;761:193:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;953:119:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1074:196:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;678:81:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;550:125:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;681:78;;;;;;;;;;;;;:::i;:::-;;1078:375:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;436:108:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2316:153:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2475:249;2567:1;2552:17;;:3;:17;;;;2544:26;;;;;;2594:25;2611:7;2594:12;;:16;;:25;;;;:::i;:::-;2579:12;:40;;;;2644:26;2662:7;2644:8;:13;2653:3;2644:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;2628:8;:13;2637:3;2628:13;;;;;;;;;;;;;;;:42;;;;2705:3;2684:34;;2701:1;2684:34;;;2710:7;2684:34;;;;;;:::i;:::-;;;;;;;;2475:249;;:::o;424:95:5:-;471:4;497:16;;;;;;;;;;;490:23;;424:95;:::o;595:77:4:-;632:13;661:5;654:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;595:77;:::o;1988:322::-;2064:12;2119:1;2099:22;;:8;:22;;;;2091:31;;;;;;2148:1;2138:6;:11;2137:53;;;;2188:1;2155:7;:19;2163:10;2155:19;;;;;;;;;;;;;;;:29;2175:8;2155:29;;;;;;;;;;;;;;;;:34;2137:53;2129:62;;;;;;2230:6;2198:7;:19;2206:10;2198:19;;;;;;;;;;;;;;;:29;2218:8;2198:29;;;;;;;;;;;;;;;:38;;;;2269:8;2248:38;;2257:10;2248:38;;;2279:6;2248:38;;;;;;:::i;:::-;;;;;;;;2300:4;2293:11;;1988:322;;;;:::o;850:97::-;903:7;929:12;;922:19;;850:97;:::o;1459:523::-;1550:12;1577:18;1598:7;:14;1606:5;1598:14;;;;;;;;;;;;;;;:26;1613:10;1598:26;;;;;;;;;;;;;;;;1577:47;;1658:6;1639:8;:15;1648:5;1639:15;;;;;;;;;;;;;;;;:25;;1631:34;;;;:::i;:::-;;1694:6;1680:10;:20;;1672:29;;;;:::i;:::-;;1725:1;1716:6;:10;1708:19;;;;:::i;:::-;;1757:1;1742:17;;:3;:17;;;;1734:26;;;;;;1785:27;1805:6;1785:8;:15;1794:5;1785:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;1767:8;:15;1776:5;1767:15;;;;;;;;;;;;;;;:45;;;;1835:25;1853:6;1835:8;:13;1844:3;1835:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1819:8;:13;1828:3;1819:13;;;;;;;;;;;;;;;:41;;;;1896:22;1911:6;1896:10;:14;;:22;;;;:::i;:::-;1867:7;:14;1875:5;1867:14;;;;;;;;;;;;;;;:26;1882:10;1867:26;;;;;;;;;;;;;;;:51;;;;1946:3;1930:28;;1939:5;1930:28;;;1951:6;1930:28;;;;;;:::i;:::-;;;;;;;;1972:4;1965:11;;;1459:523;;;;;:::o;765:79::-;806:5;829:9;;;;;;;;;;;822:16;;765:79;:::o;761:193:5:-;891:4;395:20:1;404:10;395:8;:20::i;:::-;387:29;;;;;;326:16:5::1;;;;;;;;;;;325:17;317:26;;;::::0;::::1;;913:17:::2;919:2;923:6;913:5;:17::i;:::-;944:4;937:11;;761:193:::0;;;;:::o;953:119:4:-;1018:15;1050:8;:16;1059:6;1050:16;;;;;;;;;;;;;;;;1043:23;;953:119;;;:::o;1074:196:5:-;1172:4;395:20:1;404:10;395:8;:20::i;:::-;387:29;;;;;;326:16:5::1;;;;;;;;;;;325:17;317:26;;;::::0;::::1;;1213:4:::2;1194:16;;:23;;;;;;;;;;;;;;;;;;1229:17;;;;;;;;;;1260:4;1253:11;;1074:196:::0;:::o;678:81:4:-;717:13;746:7;739:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;678:81;:::o;550:125:1:-;395:20;404:10;395:8;:20::i;:::-;387:29;;;;;;617:20:::1;629:7;617;:11;;:20;;;;:::i;:::-;661:7;649:20;;;;;;;;;;;;550:125:::0;:::o;681:78::-;727:26;742:10;727:7;:14;;:26;;;;:::i;:::-;681:78::o;1078:375:4:-;1150:12;1188:6;1184:1;:10;1177:18;;;;:::i;:::-;;1234:6;1210:8;:20;1219:10;1210:20;;;;;;;;;;;;;;;;:30;;1202:39;;;;;;1271:1;1256:17;;:3;:17;;;;1248:26;;;;;;1304:32;1329:6;1304:8;:20;1313:10;1304:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;1281:8;:20;1290:10;1281:20;;;;;;;;;;;;;;;:55;;;;1359:25;1377:6;1359:8;:13;1368:3;1359:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;1343:8;:13;1352:3;1343:13;;;;;;;;;;;;;;;:41;;;;1417:3;1396:33;;1405:10;1396:33;;;1422:6;1396:33;;;;;;:::i;:::-;;;;;;;;1443:4;1436:11;;1078:375;;;;:::o;436:108:1:-;492:4;518:20;530:7;518;:11;;:20;;;;:::i;:::-;511:27;;436:108;;;:::o;2316:153:4:-;2399:17;2438:7;:15;2446:6;2438:15;;;;;;;;;;;;;;;:25;2454:8;2438:25;;;;;;;;;;;;;;;;2431:32;;2316:153;;;;:::o;317:141:2:-;415:1;396:21;;:7;:21;;;;388:30;;;;;;448:4;425;:11;;:20;437:7;425:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;317:141;;:::o;577:152:3:-;635:7;660:9;676:1;672;:5;;;;:::i;:::-;660:17;;700:1;695;:6;;688:14;;;;:::i;:::-;;720:1;713:8;;;577:152;;;;:::o;440:128::-;498:7;535:1;530;:6;;523:14;;;;:::i;:::-;;559:1;555;:5;;;;:::i;:::-;548:12;;440:128;;;;:::o;529:145:2:-;630:1;611:21;;:7;:21;;;;603:30;;;;;;663:5;640:4;:11;;:20;652:7;640:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;529:145;;:::o;758:179::-;845:4;894:1;875:21;;:7;:21;;;;867:30;;;;;;911:4;:11;;:20;923:7;911:20;;;;;;;;;;;;;;;;;;;;;;;;;904:27;;758:179;;;;:::o;7:139:6:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:109::-;2298:21;2313:5;2298:21;:::i;:::-;2293:3;2286:34;2217:109;;:::o;2332:364::-;2420:3;2448:39;2481:5;2448:39;:::i;:::-;2503:71;2567:6;2562:3;2503:71;:::i;:::-;2496:78;;2583:52;2628:6;2623:3;2616:4;2609:5;2605:16;2583:52;:::i;:::-;2660:29;2682:6;2660:29;:::i;:::-;2655:3;2651:39;2644:46;;2424:272;2332:364;;;;:::o;2702:118::-;2789:24;2807:5;2789:24;:::i;:::-;2784:3;2777:37;2702:118;;:::o;2826:112::-;2909:22;2925:5;2909:22;:::i;:::-;2904:3;2897:35;2826:112;;:::o;2944:210::-;3031:4;3069:2;3058:9;3054:18;3046:26;;3082:65;3144:1;3133:9;3129:17;3120:6;3082:65;:::i;:::-;2944:210;;;;:::o;3160:313::-;3273:4;3311:2;3300:9;3296:18;3288:26;;3360:9;3354:4;3350:20;3346:1;3335:9;3331:17;3324:47;3388:78;3461:4;3452:6;3388:78;:::i;:::-;3380:86;;3160:313;;;;:::o;3479:222::-;3572:4;3610:2;3599:9;3595:18;3587:26;;3623:71;3691:1;3680:9;3676:17;3667:6;3623:71;:::i;:::-;3479:222;;;;:::o;3707:214::-;3796:4;3834:2;3823:9;3819:18;3811:26;;3847:67;3911:1;3900:9;3896:17;3887:6;3847:67;:::i;:::-;3707:214;;;;:::o;4008:99::-;4060:6;4094:5;4088:12;4078:22;;4008:99;;;:::o;4113:169::-;4197:11;4231:6;4226:3;4219:19;4271:4;4266:3;4262:14;4247:29;;4113:169;;;;:::o;4288:305::-;4328:3;4347:20;4365:1;4347:20;:::i;:::-;4342:25;;4381:20;4399:1;4381:20;:::i;:::-;4376:25;;4535:1;4467:66;4463:74;4460:1;4457:81;4454:107;;;4541:18;;:::i;:::-;4454:107;4585:1;4582;4578:9;4571:16;;4288:305;;;;:::o;4599:191::-;4639:4;4659:20;4677:1;4659:20;:::i;:::-;4654:25;;4693:20;4711:1;4693:20;:::i;:::-;4688:25;;4732:1;4729;4726:8;4723:34;;;4737:18;;:::i;:::-;4723:34;4782:1;4779;4775:9;4767:17;;4599:191;;;;:::o;4796:96::-;4833:7;4862:24;4880:5;4862:24;:::i;:::-;4851:35;;4796:96;;;:::o;4898:90::-;4932:7;4975:5;4968:13;4961:21;4950:32;;4898:90;;;:::o;4994:126::-;5031:7;5071:42;5064:5;5060:54;5049:65;;4994:126;;;:::o;5126:77::-;5163:7;5192:5;5181:16;;5126:77;;;:::o;5209:86::-;5244:7;5284:4;5277:5;5273:16;5262:27;;5209:86;;;:::o;5301:307::-;5369:1;5379:113;5393:6;5390:1;5387:13;5379:113;;;5478:1;5473:3;5469:11;5463:18;5459:1;5454:3;5450:11;5443:39;5415:2;5412:1;5408:10;5403:15;;5379:113;;;5510:6;5507:1;5504:13;5501:101;;;5590:1;5581:6;5576:3;5572:16;5565:27;5501:101;5350:258;5301:307;;;:::o;5614:320::-;5658:6;5695:1;5689:4;5685:12;5675:22;;5742:1;5736:4;5732:12;5763:18;5753:81;;5819:4;5811:6;5807:17;5797:27;;5753:81;5881:2;5873:6;5870:14;5850:18;5847:38;5844:84;;;5900:18;;:::i;:::-;5844:84;5665:269;5614:320;;;:::o;5940:180::-;5988:77;5985:1;5978:88;6085:4;6082:1;6075:15;6109:4;6106:1;6099:15;6126:180;6174:77;6171:1;6164:88;6271:4;6268:1;6261:15;6295:4;6292:1;6285:15;6312:180;6360:77;6357:1;6350:88;6457:4;6454:1;6447:15;6481:4;6478:1;6471:15;6621:117;6730:1;6727;6720:12;6744:102;6785:6;6836:2;6832:7;6827:2;6820:5;6816:14;6812:28;6802:38;;6744:102;;;:::o;6852:122::-;6925:24;6943:5;6925:24;:::i;:::-;6918:5;6915:35;6905:63;;6964:1;6961;6954:12;6905:63;6852:122;:::o;6980:::-;7053:24;7071:5;7053:24;:::i;:::-;7046:5;7043:35;7033:63;;7092:1;7089;7082:12;7033:63;6980:122;:::o

Swarm Source

ipfs://04b6840f06c45deb848bc20d966f3cf995c3cc023d0fd3e233c2a23f06321519
Loading