Contract 0xE8FA3d84bd18eDEEE42665772bF22779F1AE3f7d

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7d0e4ab0952372727885c445cf1c72827cf7732ab949a1edca7b8b989d8c82f4Transfer From58662292022-12-04 20:37:582 days 12 hrs ago0x2c5f4cfd1a26f7920c271c0991a58279e0dfdd7c IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.294676207533 4,863.687053883
0x33a0a422b6bb3a37cfc92704d0a2e6bc11997839b26ab495706150e194ba4619Transfer From57499612022-11-27 4:42:1010 days 4 hrs ago0x9a10e4d590733b4903f3948bd3a32d63f41fe632 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.294942809674 4,869.051748646
0x788e51e3973f4dcf3e97c15c81c604e1a8665cf20c9a1551ffb17154cbbe89ddSet Approval For...57353772022-11-26 5:38:5711 days 3 hrs ago0x805ee0896b1079ddba0668a97a724165166a0e03 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.227991033619 4,869.730309275
0x2768b9c829eb8f6515b1cfa52cb7e6a625b5974dae9f6b09be73f8342f6d09e2Transfer From56736132022-11-22 4:15:4715 days 4 hrs ago0x6b48b286f2752427790b90f8f7c8f2086ecb7797 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295215361958 4,872.585900582
0xba0a41225cebef6049cc571bf77e50ab1c9aefcd8dff50145e6af111a9f93337Set Approval For...56678302022-11-21 19:09:3015 days 13 hrs ago0x927ecd3e8995b545dca211ddf4676101e6bc87a1 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.228137225556 4,872.852867617
0x9928f79cbf2ba14fc6e4fad78326add62dc71dff75094cf29486b1ca7c7f5ce2Transfer From56187142022-11-18 13:49:4718 days 19 hrs ago0xc8cb32cca30b4ca0092dff9817adc0543736db27 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295310806534 4,875.126810307
0xf62f4d8a3196a5bdc27382ec01b8b46ac5acf185e05809a5eddd4aacf315d020Transfer From55877022022-11-16 13:00:1820 days 19 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295397711246 4,876.561473324
0xa89b2d791b7cd17997096255fa1d00c082d1e125ce431d729e3c72f5684530c1Transfer From55876972022-11-16 12:59:4920 days 19 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295453757081 4,877.486703774
0xf49b6254160e63e64d14c8d0b22fb1b2a2649aa30fffd6eb1fd5449cd9a6301fTransfer From55876902022-11-16 12:59:0920 days 19 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295339226314 4,876.562031514
0xe963b9778b88d2e357d21d5945c874a05947230115fd06238da56646fa0cf41bTransfer From55876672022-11-16 12:56:5820 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.29539781041 4,876.56311037
0x73eacd1d91f387474075340bfadc0d321feedff385931456a8cd87a5e3877f6eTransfer From55876622022-11-16 12:56:3020 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295397824158 4,876.56333733
0x7246fb5618c812aaeb9844aae4569376d991201b81731e1a6df11f0ef10d4aadTransfer From55876582022-11-16 12:56:0720 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295339316759 4,876.56352491
0xca2843d49f16099e52a05e8c3a1e1dc69773c6b2f3125d228d1e31538dc76b89Transfer From55876512022-11-16 12:55:2720 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295339336296 4,876.563847512
0xc16f7da53fbcec94b460c5a6f5582dd451f48be6d763f8364ec03f96c2d7a263Transfer From55876452022-11-16 12:54:5320 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295339352991 4,876.564123162
0xbc02a5b0bf258b317c6622ac8419301741d1ba494561df98dbb6ab5ecf1d29bcTransfer From55876272022-11-16 12:53:1120 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295397922695 4,876.564964014
0xf3a1e2d1043a8bb9061ff8b793f5871b396409fb0291dd407281b4f4252745c6Transfer From55876172022-11-16 12:52:1420 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295397950622 4,876.565425048
0x63e4f8c12427f5f4414feef2db4b9b8a8a894cb7a1c15a02ad19efdce189273fTransfer From55876122022-11-16 12:51:4620 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295397965027 4,876.565662856
0x55c0f27211a5b35bc7d2d63d1de16403ba9e5af51a460bee6a4c3b9c178e1676Transfer From55876082022-11-16 12:51:2320 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295397976458 4,876.565851571
0x1a9309ac129c6b6532a4e2e4611043a00e50789b4ad9108295b02e4204f5f78dTransfer From55876032022-11-16 12:50:5420 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295397990402 4,876.566081764
0x8c6f2514fc02a422ad877b6209a007b64f7d0b1c8aa988c661bfd0b7d5ddb45cTransfer From55875992022-11-16 12:50:3220 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295339483039 4,876.566270494
0x48e93c515f998675431d37216010692d70ddafd21a9fa8e6d4d905cdff83661aTransfer From55875832022-11-16 12:49:0120 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295398046671 4,876.567010673
0x0dee9514815bad69115a2ad5e8c4ecc4ff8ee51f38a86ef1d8a79068082b9852Transfer From55875772022-11-16 12:48:2720 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295398063217 4,876.567283829
0x1a33b3aade877a63ca9fabe4732becb98e9ba66c149b923c7ab10a7345fd686dTransfer From55875712022-11-16 12:47:5320 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295398080338 4,876.567566468
0x0c8da16bd0ffccfd9a315099e50c7436a97153752a6d09bfa2924b42e218bc6bTransfer From55875642022-11-16 12:47:1420 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295398099797 4,876.567887706
0x5a067e6445e47a426da6946b246897faa5adf05ae3b0f96fd1eb3125c83dfdc8Transfer From55875582022-11-16 12:46:4020 days 20 hrs ago0x76930e9e37004cd6fb071f7a4d8e295879acc3b0 IN  0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0 CRO0.295398116757 4,876.568167687
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf0064a21a57de8e95370d8d6498a8b5389b269d383b92db36f197736f120951e47646512022-09-23 9:54:5974 days 23 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b046,500 CRO
0x1fb4fac7a35571e56277d785143aaec9b5798990c6997110d6f9fd90b6698c6447465202022-09-22 5:17:3176 days 3 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b048,500 CRO
0x624dfe26abc59587e8a5f06a5607e1922bd2f758c9118db6518d466b887e6e9847053982022-09-19 12:28:2778 days 20 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b07,000 CRO
0x59fb4aa6cd8fbe7f732d1aefd2a408dea66a06c6967b037522b24b85b9420d4546545312022-09-16 4:21:5782 days 4 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b01,000 CRO
0x529c01432af280f9eac7ca7b5287c74f76b8aa76fd3f5de84a161af59d2ac2cb46529902022-09-16 1:56:3082 days 7 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b014,000 CRO
0xd16d93b4355410e13739eb4e33c43b187c6afc75c679830edb3b5306bb5613b046339422022-09-14 19:54:2483 days 13 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b027,500 CRO
0xdfe862fb10ec1d38b08aa1ac02baae19ccccbb710a56a01bde3a33ac4c26504446095642022-09-13 5:27:1685 days 3 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b013,000 CRO
0x31449c7840b4896cec2053b71de300f0370e4408aa177679934b7e832664915346046162022-09-12 21:40:2385 days 11 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b012,600 CRO
0x7b307c3d193a92906648f96da0604217b9a60cddfeea91dd46a1459c1410697f45898602022-09-11 22:27:1286 days 10 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b026,000 CRO
0xa6564d99c0751c9ede7aa0004a07d79f20dda7ed4fbd3dd14bb4e9ebc97186ca45852122022-09-11 15:08:0886 days 17 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b017,000 CRO
0x990d46a1109951848a705d87d8dd442c76077232978eb36eb0f94133c44258a245600652022-09-09 23:33:4688 days 9 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b07,200 CRO
0xe66be6b0372098defc287990649f812b55bfc0cdd4a74cf7b33ad5914362450045134182022-09-06 22:09:4491 days 10 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b032,000 CRO
0x14efe3b9134c4dde60e5322bffee3dcc6c3f94f983b2ab57e89ba0619b3d218544870722022-09-05 4:42:4793 days 4 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b08,000 CRO
0x0b5d0834e20f3a32f8eaedf2528473a57d97fefe487de845fb19da323d51096643960382022-08-30 5:25:4499 days 3 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b05,600 CRO
0x75f152512102a81587a2a99d1fbe108a1e3f2716ea2ec723f80bbf5aca2b807343500392022-08-27 5:12:09102 days 3 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b06,400 CRO
0x4e0075b9c8a2577af4c7c14a7d464eb81f60e20295cf74bf92f306081afac37443059722022-08-24 7:53:10105 days 1 hr ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b015,200 CRO
0x47cbb07771d11100cd04a30e7a29945129f6db3b73194faa0810b2ea982d2c7f42910602022-08-23 8:24:27106 days 33 mins ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b06,400 CRO
0x9f14eed83b0a3a8e924b62b94efd308cefe3f11167ff1af79cec1876bba9b2f141529682022-08-14 7:03:27115 days 1 hr ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b011,200 CRO
0x2c32afab98ecdd5d944ff5f7d7f02525b16ac746f98ee6bfd35ebddfe7f042d441311442022-08-12 20:41:53116 days 12 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b07,200 CRO
0x343663eaa42e9704a7ebc6652965689f5ed5ec0b921f7e04b23dff27405a9f2841009762022-08-10 21:10:15118 days 11 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b020,800 CRO
0x75cb702043726fe96cc91af05e4ac38ffaaf2954c1ae4515b47c7ba3ce23938440465432022-08-07 7:19:49122 days 1 hr ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b013,600 CRO
0x703b4819c2f9a8e9d7bd7bb472e587bfa8217bf8b123e83a9e7b7fbb6c854e4839256142022-07-30 8:28:59130 days 28 mins ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b04,800 CRO
0x09a90495adcaf16e0a5cbb6c8cc05827c14f5fd1ab0921ebb0b58d9fec6469f438943202022-07-28 7:03:25132 days 1 hr ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b04,800 CRO
0x3db021bd5710c0f0ef764d7415e18048c49780d4cca028b8320a3ab1d6ab97da38452932022-07-25 1:46:53135 days 7 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b016,000 CRO
0x339b7605ed8197ae17d29f9513ab78c432bf99598fe0dc3b375565e47d2a9aaf38126402022-07-22 22:10:14137 days 10 hrs ago 0xe8fa3d84bd18edeee42665772bf22779f1ae3f7d0x76930e9e37004cd6fb071f7a4d8e295879acc3b08,000 CRO
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ScionSphynxCouncil

Compiler Version
v0.7.0+commit.9e61f92b

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2022-07-19
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.7.0;

/**
 * @dev The contract has an owner address, and provides basic authorization control whitch
 * simplifies the implementation of user permissions. This contract is based on the source code at:
 * https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/ownership/Ownable.sol
 */
contract Ownable
{
    
    mapping (address => bool) public isAuth;
    address tokenLinkAddress;
    
  /**
   * @dev Error constants.
   */
  string public constant NOT_CURRENT_OWNER = "018001";
  string public constant CANNOT_TRANSFER_TO_ZERO_ADDRESS = "018002";

  /**
   * @dev Current owner address.
   */
  address public owner;

  /**
   * @dev An event which is triggered when the owner is changed.
   * @param previousOwner The address of the previous owner.
   * @param newOwner The address of the new owner.
   */
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  /**
   * @dev The constructor sets the original `owner` of the contract to the sender account.
   */
  constructor()
  {
    owner = msg.sender;
    isAuth[owner] = true;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner()
  {
    require(msg.sender == owner, NOT_CURRENT_OWNER);
    _;
  }

  modifier onlyAuthorized()
  {
    require(isAuth[msg.sender] || msg.sender == owner, "Unauth");
    _;
  }
  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(
    address _newOwner
  )
    public
    onlyOwner
  {
    require(_newOwner != address(0), CANNOT_TRANSFER_TO_ZERO_ADDRESS);
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }

}

// File: contracts/tokens/erc721-metadata.sol


/**
 * @dev Optional metadata extension for ERC-721 non-fungible token standard.
 * See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md.
 */
interface ERC721Metadata
{

  /**
   * @dev Returns a descriptive name for a collection of NFTs in this contract.
   * @return _name Representing name.
   */
  function name()
    external
    view
    returns (string memory _name);

  /**
   * @dev Returns a abbreviated name for a collection of NFTs in this contract.
   * @return _symbol Representing symbol.
   */
  function symbol()
    external
    view
    returns (string memory _symbol);

  /**
   * @dev Returns a distinct Uniform Resource Identifier (URI) for a given asset. It Throws if
   * `_tokenId` is not a valid NFT. URIs are defined in RFC3986. The URI may point to a JSON file
   * that conforms to the "ERC721 Metadata JSON Schema".
   * @return URI of _tokenId.
   */
  function tokenURI(uint256 _tokenId)
    external
    view
    returns (string memory);

}

// File: contracts/utils/address-utils.sol



/**
 * @notice Based on:
 * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Address.sol
 * Requires EIP-1052.
 * @dev Utility library of inline functions on addresses.
 */
library AddressUtils
{

  /**
   * @dev Returns whether the target address is a contract.
   * @param _addr Address to check.
   * @return addressCheck True if _addr is a contract, false if not.
   */
  function isContract(
    address _addr
  )
    internal
    view
    returns (bool addressCheck)
  {
    // This method relies in extcodesize, which returns 0 for contracts in
    // construction, since the code is only stored at the end of the
    // constructor execution.

    // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
    // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
    // for accounts without code, i.e. `keccak256('')`
    bytes32 codehash;
    bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
    assembly { codehash := extcodehash(_addr) } // solhint-disable-line
    addressCheck = (codehash != 0x0 && codehash != accountHash);
  }

}

// File: contracts/utils/erc165.sol



/**
 * @dev A standard for detecting smart contract interfaces. 
 * See: https://eips.ethereum.org/EIPS/eip-165.
 */
interface ERC165
{

  /**
   * @dev Checks if the smart contract includes a specific interface.
   * This function uses less than 30,000 gas.
   * @param _interfaceID The interface identifier, as specified in ERC-165.
   * @return True if _interfaceID is supported, false otherwise.
   */
  function supportsInterface(
    bytes4 _interfaceID
  )
    external
    view
    returns (bool);
    
}

// File: contracts/utils/supports-interface.sol




/**
 * @dev Implementation of standard for detect smart contract interfaces.
 */
contract SupportsInterface is
  ERC165
{

  /**
   * @dev Mapping of supported intefraces. You must not set element 0xffffffff to true.
   */
  mapping(bytes4 => bool) internal supportedInterfaces;

  /**
   * @dev Contract constructor.
   */
  constructor()
  {
    supportedInterfaces[0x01ffc9a7] = true; // ERC165
  }

  /**
   * @dev Function to check which interfaces are suported by this contract.
   * @param _interfaceID Id of the interface.
   * @return True if _interfaceID is supported, false otherwise.
   */
  function supportsInterface(
    bytes4 _interfaceID
  )
    external
    override
    view
    returns (bool)
  {
    return supportedInterfaces[_interfaceID];
  }

}

// File: contracts/tokens/erc721-token-receiver.sol



/**
 * @dev ERC-721 interface for accepting safe transfers.
 * See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md.
 */
interface ERC721TokenReceiver
{

  /**
   * @notice The contract address is always the message sender. A wallet/broker/auction application
   * MUST implement the wallet interface if it will accept safe transfers.
   * @dev Handle the receipt of a NFT. The ERC721 smart contract calls this function on the
   * recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return
   * of other than the magic value MUST result in the transaction being reverted.
   * Returns `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` unless throwing.
   * @param _operator The address which called `safeTransferFrom` function.
   * @param _from The address which previously owned the token.
   * @param _tokenId The NFT identifier which is being transferred.
   * @param _data Additional data with no specified format.
   * @return Returns `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`.
   */
  function onERC721Received(
    address _operator,
    address _from,
    uint256 _tokenId,
    bytes calldata _data
  )
    external
    returns(bytes4);

}

// File: contracts/tokens/erc721.sol


/**
 * @dev ERC-721 non-fungible token standard.
 * See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md.
 */
interface ERC721
{

  /**
   * @dev Emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are
   * created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any
   * number of NFTs may be created and assigned without emitting Transfer. At the time of any
   * transfer, the approved address for that NFT (if any) is reset to none.
   */
  event Transfer(
    address indexed _from,
    address indexed _to,
    uint256 indexed _tokenId
  );

  /**
   * @dev This emits when the approved address for an NFT is changed or reaffirmed. The zero
   * address indicates there is no approved address. When a Transfer event emits, this also
   * indicates that the approved address for that NFT (if any) is reset to none.
   */
  event Approval(
    address indexed _owner,
    address indexed _approved,
    uint256 indexed _tokenId
  );

  /**
   * @dev This emits when an operator is enabled or disabled for an owner. The operator can manage
   * all NFTs of the owner.
   */
  event ApprovalForAll(
    address indexed _owner,
    address indexed _operator,
    bool _approved
  );

  /**
   * @notice Throws unless `msg.sender` is the current owner, an authorized operator, or the
   * approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is
   * the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this
   * function checks if `_to` is a smart contract (code size > 0). If so, it calls
   * `onERC721Received` on `_to` and throws if the return value is not
   * `bytes4(keccak256("onERC721Received(address,uint256,bytes)"))`.
   * @dev Transfers the ownership of an NFT from one address to another address. This function can
   * be changed to payable.
   * @param _from The current owner of the NFT.
   * @param _to The new owner.
   * @param _tokenId The NFT to transfer.
   * @param _data Additional data with no specified format, sent in call to `_to`.
   */
  function safeTransferFrom(
    address _from,
    address _to,
    uint256 _tokenId,
    bytes calldata _data
  )
    external;

  /**
   * @notice This works identically to the other function with an extra data parameter, except this
   * function just sets data to ""
   * @dev Transfers the ownership of an NFT from one address to another address. This function can
   * be changed to payable.
   * @param _from The current owner of the NFT.
   * @param _to The new owner.
   * @param _tokenId The NFT to transfer.
   */
  function safeTransferFrom(
    address _from,
    address _to,
    uint256 _tokenId
  )
    external;

  /**
   * @notice The caller is responsible to confirm that `_to` is capable of receiving NFTs or else
   * they may be permanently lost.
   * @dev Throws unless `msg.sender` is the current owner, an authorized operator, or the approved
   * address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero
   * address. Throws if `_tokenId` is not a valid NFT.  This function can be changed to payable.
   * @param _from The current owner of the NFT.
   * @param _to The new owner.
   * @param _tokenId The NFT to transfer.
   */
  function transferFrom(
    address _from,
    address _to,
    uint256 _tokenId
  )
    external;

  /**
   * @notice The zero address indicates there is no approved address. Throws unless `msg.sender` is
   * the current NFT owner, or an authorized operator of the current owner.
   * @param _approved The new approved NFT controller.
   * @dev Set or reaffirm the approved address for an NFT. This function can be changed to payable.
   * @param _tokenId The NFT to approve.
   */
  function approve(
    address _approved,
    uint256 _tokenId
  )
    external;

  /**
   * @notice The contract MUST allow multiple operators per owner.
   * @dev Enables or disables approval for a third party ("operator") to manage all of
   * `msg.sender`'s assets. It also emits the ApprovalForAll event.
   * @param _operator Address to add to the set of authorized operators.
   * @param _approved True if the operators is approved, false to revoke approval.
   */
  function setApprovalForAll(
    address _operator,
    bool _approved
  )
    external;

  /**
   * @dev Returns the number of NFTs owned by `_owner`. NFTs assigned to the zero address are
   * considered invalid, and this function throws for queries about the zero address.
   * @notice Count all NFTs assigned to an owner.
   * @param _owner Address for whom to query the balance.
   * @return Balance of _owner.
   */
  function balanceOf(
    address _owner
  )
    external
    view
    returns (uint256);

  /**
   * @notice Find the owner of an NFT.
   * @dev Returns the address of the owner of the NFT. NFTs assigned to the zero address are
   * considered invalid, and queries about them do throw.
   * @param _tokenId The identifier for an NFT.
   * @return Address of _tokenId owner.
   */
  function ownerOf(
    uint256 _tokenId
  )
    external
    view
    returns (address);

  /**
   * @notice Throws if `_tokenId` is not a valid NFT.
   * @dev Get the approved address for a single NFT.
   * @param _tokenId The NFT to find the approved address for.
   * @return Address that _tokenId is approved for.
   */
  function getApproved(
    uint256 _tokenId
  )
    external
    view
    returns (address);

  /**
   * @notice Query if an address is an authorized operator for another address.
   * @dev Returns true if `_operator` is an approved operator for `_owner`, false otherwise.
   * @param _owner The address that owns the NFTs.
   * @param _operator The address that acts on behalf of the owner.
   * @return True if approved for all, false otherwise.
   */
  function isApprovedForAll(
    address _owner,
    address _operator
  )
    external
    view
    returns (bool);

}

// File: contracts/tokens/nf-token.sol







/**
 * @dev Implementation of ERC-721 non-fungible token standard.
 */
contract NFToken is
  ERC721,
  SupportsInterface
{
  using AddressUtils for address;

  /**
   * @dev List of revert message codes. Implementing dApp should handle showing the correct message.
   * Based on 0xcert framework error codes.
   */
  string constant ZERO_ADDRESS = "003001";
  string constant NOT_VALID_NFT = "003002";
  string constant NOT_OWNER_OR_OPERATOR = "003003";
  string constant NOT_OWNER_APPROVED_OR_OPERATOR = "003004";
  string constant NOT_ABLE_TO_RECEIVE_NFT = "003005";
  string constant NFT_ALREADY_EXISTS = "003006";
  string constant NOT_OWNER = "003007";
  string constant IS_OWNER = "003008";

  /**
   * @dev Magic value of a smart contract that can receive NFT.
   * Equal to: bytes4(keccak256("onERC721Received(address,address,uint256,bytes)")).
   */
  bytes4 internal constant MAGIC_ON_ERC721_RECEIVED = 0x150b7a02;

  /**
   * @dev A mapping from NFT ID to the address that owns it.
   */
  mapping (uint256 => address) internal idToOwner;

  /**
   * @dev Mapping from NFT ID to approved address.
   */
  mapping (uint256 => address) internal idToApproval;

   /**
   * @dev Mapping from owner address to count of their tokens.
   */
  mapping (address => uint256) private ownerToNFTokenCount;

  /**
   * @dev Mapping from owner address to mapping of operator addresses.
   */
  mapping (address => mapping (address => bool)) internal ownerToOperators;

  /**
   * @dev Guarantees that the msg.sender is an owner or operator of the given NFT.
   * @param _tokenId ID of the NFT to validate.
   */
  modifier canOperate(
    uint256 _tokenId
  )
  {
    address tokenOwner = idToOwner[_tokenId];
    require(
      tokenOwner == msg.sender || ownerToOperators[tokenOwner][msg.sender],
      NOT_OWNER_OR_OPERATOR
    );
    _;
  }

  /**
   * @dev Guarantees that the msg.sender is allowed to transfer NFT.
   * @param _tokenId ID of the NFT to transfer.
   */
  modifier canTransfer(
    uint256 _tokenId
  )
  {
    address tokenOwner = idToOwner[_tokenId];
    require(
      tokenOwner == msg.sender
      || idToApproval[_tokenId] == msg.sender
      || ownerToOperators[tokenOwner][msg.sender],
      NOT_OWNER_APPROVED_OR_OPERATOR
    );
    _;
  }

  /**
   * @dev Guarantees that _tokenId is a valid Token.
   * @param _tokenId ID of the NFT to validate.
   */
  modifier validNFToken(
    uint256 _tokenId
  )
  {
    require(idToOwner[_tokenId] != address(0), NOT_VALID_NFT);
    _;
  }

  /**
   * @dev Contract constructor.
   */
  constructor()
  {
    supportedInterfaces[0x80ac58cd] = true; // ERC721
  }

  /**
   * @notice Throws unless `msg.sender` is the current owner, an authorized operator, or the
   * approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is
   * the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this
   * function checks if `_to` is a smart contract (code size > 0). If so, it calls
   * `onERC721Received` on `_to` and throws if the return value is not
   * `bytes4(keccak256("onERC721Received(address,uint256,bytes)"))`.
   * @dev Transfers the ownership of an NFT from one address to another address. This function can
   * be changed to payable.
   * @param _from The current owner of the NFT.
   * @param _to The new owner.
   * @param _tokenId The NFT to transfer.
   * @param _data Additional data with no specified format, sent in call to `_to`.
   */
  function safeTransferFrom(
    address _from,
    address _to,
    uint256 _tokenId,
    bytes calldata _data
  )
    external
    override
  {
    _safeTransferFrom(_from, _to, _tokenId, _data);
  }

  /**
   * @notice This works identically to the other function with an extra data parameter, except this
   * function just sets data to "".
   * @dev Transfers the ownership of an NFT from one address to another address. This function can
   * be changed to payable.
   * @param _from The current owner of the NFT.
   * @param _to The new owner.
   * @param _tokenId The NFT to transfer.
   */
  function safeTransferFrom(
    address _from,
    address _to,
    uint256 _tokenId
  )
    external
    override
  {
    _safeTransferFrom(_from, _to, _tokenId, "");
  }

  /**
   * @notice The caller is responsible to confirm that `_to` is capable of receiving NFTs or else
   * they may be permanently lost.
   * @dev Throws unless `msg.sender` is the current owner, an authorized operator, or the approved
   * address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero
   * address. Throws if `_tokenId` is not a valid NFT. This function can be changed to payable.
   * @param _from The current owner of the NFT.
   * @param _to The new owner.
   * @param _tokenId The NFT to transfer.
   */
  function transferFrom(
    address _from,
    address _to,
    uint256 _tokenId
  )
    external
    override
    canTransfer(_tokenId)
    validNFToken(_tokenId)
  {
    address tokenOwner = idToOwner[_tokenId];
    require(tokenOwner == _from, NOT_OWNER);
    require(_to != address(0), ZERO_ADDRESS);

    _transfer(_to, _tokenId);
  }

  /**
   * @notice The zero address indicates there is no approved address. Throws unless `msg.sender` is
   * the current NFT owner, or an authorized operator of the current owner.
   * @dev Set or reaffirm the approved address for an NFT. This function can be changed to payable.
   * @param _approved Address to be approved for the given NFT ID.
   * @param _tokenId ID of the token to be approved.
   */
  function approve(
    address _approved,
    uint256 _tokenId
  )
    external
    override
    canOperate(_tokenId)
    validNFToken(_tokenId)
  {
    address tokenOwner = idToOwner[_tokenId];
    require(_approved != tokenOwner, IS_OWNER);

    idToApproval[_tokenId] = _approved;
    emit Approval(tokenOwner, _approved, _tokenId);
  }

  /**
   * @notice This works even if sender doesn't own any tokens at the time.
   * @dev Enables or disables approval for a third party ("operator") to manage all of
   * `msg.sender`'s assets. It also emits the ApprovalForAll event.
   * @param _operator Address to add to the set of authorized operators.
   * @param _approved True if the operators is approved, false to revoke approval.
   */
  function setApprovalForAll(
    address _operator,
    bool _approved
  )
    external
    override
  {
    ownerToOperators[msg.sender][_operator] = _approved;
    emit ApprovalForAll(msg.sender, _operator, _approved);
  }

  /**
   * @dev Returns the number of NFTs owned by `_owner`. NFTs assigned to the zero address are
   * considered invalid, and this function throws for queries about the zero address.
   * @param _owner Address for whom to query the balance.
   * @return Balance of _owner.
   */
  function balanceOf(
    address _owner
  )
    external
    override
    view
    returns (uint256)
  {
    require(_owner != address(0), ZERO_ADDRESS);
    return _getOwnerNFTCount(_owner);
  }

  /**
   * @dev Returns the address of the owner of the NFT. NFTs assigned to the zero address are
   * considered invalid, and queries about them do throw.
   * @param _tokenId The identifier for an NFT.
   * @return _owner Address of _tokenId owner.
   */
  function ownerOf(
    uint256 _tokenId
  )
    external
    override
    view
    returns (address _owner)
  {
    _owner = idToOwner[_tokenId];
    require(_owner != address(0), NOT_VALID_NFT);
  }

  /**
   * @notice Throws if `_tokenId` is not a valid NFT.
   * @dev Get the approved address for a single NFT.
   * @param _tokenId ID of the NFT to query the approval of.
   * @return Address that _tokenId is approved for.
   */
  function getApproved(
    uint256 _tokenId
  )
    external
    override
    view
    validNFToken(_tokenId)
    returns (address)
  {
    return idToApproval[_tokenId];
  }

  /**
   * @dev Checks if `_operator` is an approved operator for `_owner`.
   * @param _owner The address that owns the NFTs.
   * @param _operator The address that acts on behalf of the owner.
   * @return True if approved for all, false otherwise.
   */
  function isApprovedForAll(
    address _owner,
    address _operator
  )
    external
    override
    view
    returns (bool)
  {
    return ownerToOperators[_owner][_operator];
  }

  /**
   * @notice Does NO checks.
   * @dev Actually performs the transfer.
   * @param _to Address of a new owner.
   * @param _tokenId The NFT that is being transferred.
   */
  function _transfer(
    address _to,
    uint256 _tokenId
  )
    internal
  {
    address from = idToOwner[_tokenId];
    _clearApproval(_tokenId);

    _removeNFToken(from, _tokenId);
    _addNFToken(_to, _tokenId);

    emit Transfer(from, _to, _tokenId);
  }

  /**
   * @notice This is an internal function which should be called from user-implemented external
   * mint function. Its purpose is to show and properly initialize data structures when using this
   * implementation.
   * @dev Mints a new NFT.
   * @param _to The address that will own the minted NFT.
   * @param _tokenId of the NFT to be minted by the msg.sender.
   */
  function _mint(
    address _to,
    uint256 _tokenId
  )
    internal
    virtual
  {
    require(_to != address(0), ZERO_ADDRESS);
    require(idToOwner[_tokenId] == address(0), NFT_ALREADY_EXISTS);

    _addNFToken(_to, _tokenId);

    emit Transfer(address(0), _to, _tokenId);
  }

  /**
   * @notice This is an internal function which should be called from user-implemented external burn
   * function. Its purpose is to show and properly initialize data structures when using this
   * implementation. Also, note that this burn implementation allows the minter to re-mint a burned
   * NFT.
   * @dev Burns a NFT.
   * @param _tokenId ID of the NFT to be burned.
   */
  function _burn(
    uint256 _tokenId
  )
    internal
    virtual
    validNFToken(_tokenId)
  {
    address tokenOwner = idToOwner[_tokenId];
    _clearApproval(_tokenId);
    _removeNFToken(tokenOwner, _tokenId);
    emit Transfer(tokenOwner, address(0), _tokenId);
  }

  /**
   * @notice Use and override this function with caution. Wrong usage can have serious consequences.
   * @dev Removes a NFT from owner.
   * @param _from Address from which we want to remove the NFT.
   * @param _tokenId Which NFT we want to remove.
   */
  function _removeNFToken(
    address _from,
    uint256 _tokenId
  )
    internal
    virtual
  {
    require(idToOwner[_tokenId] == _from, NOT_OWNER);
    ownerToNFTokenCount[_from] -= 1;
    delete idToOwner[_tokenId];
  }

  /**
   * @notice Use and override this function with caution. Wrong usage can have serious consequences.
   * @dev Assigns a new NFT to owner.
   * @param _to Address to which we want to add the NFT.
   * @param _tokenId Which NFT we want to add.
   */
  function _addNFToken(
    address _to,
    uint256 _tokenId
  )
    internal
    virtual
  {
    require(idToOwner[_tokenId] == address(0), NFT_ALREADY_EXISTS);

    idToOwner[_tokenId] = _to;
    ownerToNFTokenCount[_to] += 1;
  }

  /**
   * @dev Helper function that gets NFT count of owner. This is needed for overriding in enumerable
   * extension to remove double storage (gas optimization) of owner NFT count.
   * @param _owner Address for whom to query the count.
   * @return Number of _owner NFTs.
   */
  function _getOwnerNFTCount(
    address _owner
  )
    internal
    virtual
    view
    returns (uint256)
  {
    return ownerToNFTokenCount[_owner];
  }

  /**
   * @dev Actually perform the safeTransferFrom.
   * @param _from The current owner of the NFT.
   * @param _to The new owner.
   * @param _tokenId The NFT to transfer.
   * @param _data Additional data with no specified format, sent in call to `_to`.
   */
  function _safeTransferFrom(
    address _from,
    address _to,
    uint256 _tokenId,
    bytes memory _data
  )
    private
    canTransfer(_tokenId)
    validNFToken(_tokenId)
  {
    address tokenOwner = idToOwner[_tokenId];
    require(tokenOwner == _from, NOT_OWNER);
    require(_to != address(0), ZERO_ADDRESS);

    _transfer(_to, _tokenId);

    if (_to.isContract())
    {
      bytes4 retval = ERC721TokenReceiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data);
      require(retval == MAGIC_ON_ERC721_RECEIVED, NOT_ABLE_TO_RECEIVE_NFT);
    }
  }

  /**
   * @dev Clears the current approval of a given NFT ID.
   * @param _tokenId ID of the NFT to be transferred.
   */
  function _clearApproval(
    uint256 _tokenId
  )
    private
  {
    delete idToApproval[_tokenId];
  }

}

// File: contracts/tokens/nf-token-metadata.sol





/**
 * @dev Optional metadata implementation for ERC-721 non-fungible token standard.
 */
contract NFTokenMetadata is
  NFToken,
  ERC721Metadata
{

  /**
   * @dev A descriptive name for a collection of NFTs.
   */
  string internal nftName;

  /**
   * @dev An abbreviated name for NFTokens.
   */
  string internal nftSymbol;

  /**
   * @dev Mapping from NFT ID to metadata uri.
   */
  mapping (uint256 => string) internal idToUri;

  /**
   * @notice When implementing this contract don't forget to set nftName and nftSymbol.
   * @dev Contract constructor.
   */
  constructor()
  {
    supportedInterfaces[0x5b5e139f] = true; // ERC721Metadata
  }

  /**
   * @dev Returns a descriptive name for a collection of NFTokens.
   * @return _name Representing name.
   */
  function name()
    external
    override
    view
    returns (string memory _name)
  {
    _name = nftName;
  }

  /**
   * @dev Returns an abbreviated name for NFTokens.
   * @return _symbol Representing symbol.
   */
  function symbol()
    external
    override
    view
    returns (string memory _symbol)
  {
    _symbol = nftSymbol;
  }

  /**
   * @dev A distinct URI (RFC 3986) for a given NFT.
   * @param _tokenId Id for which we want uri.
   * @return URI of _tokenId.
   */
  function tokenURI(
    uint256 _tokenId
  )
    external
    virtual
    override
    view
    validNFToken(_tokenId)
    returns (string memory)
  {
    return idToUri[_tokenId];
  }

  /**
   * @notice This is an internal function which should be called from user-implemented external
   * burn function. Its purpose is to show and properly initialize data structures when using this
   * implementation. Also, note that this burn implementation allows the minter to re-mint a burned
   * NFT.
   * @dev Burns a NFT.
   * @param _tokenId ID of the NFT to be burned.
   */
  function _burn(
    uint256 _tokenId
  )
    internal
    override
    virtual
  {
    super._burn(_tokenId);

    delete idToUri[_tokenId];
  }

  /**
   * @notice This is an internal function which should be called from user-implemented external
   * function. Its purpose is to show and properly initialize data structures when using this
   * implementation.
   * @dev Set a distinct URI (RFC 3986) for a given NFT ID.
   * @param _tokenId Id for which we want URI.
   * @param _uri String representing RFC 3986 URI.
   */
  function _setTokenUri(
    uint256 _tokenId,
    string memory _uri
  )
    internal
    validNFToken(_tokenId)
  {
    idToUri[_tokenId] = _uri;
  }

}




library Strings {
    /**
     * @dev Converts a uint256 to its ASCII string representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        uint256 index = digits - 1;
        temp = value;
        while (temp != 0) {
            buffer[index--] = bytes1(uint8(48 + temp % 10));
            temp /= 10;
        }
        return string(buffer);
    }
}
 
contract ScionSphynxCouncil is NFTokenMetadata, Ownable {
 
  using Strings for uint256;  

  uint256 constant _startTokenId = 4166;
  uint256 _lastTokenId = 0;
  uint256 price = 800000000000000000000;
  bool freeMint;
  bool public mintEnabled;
  bool public whiteListEnabled;
  mapping(address => bool) is_auth;
  mapping(address => bool) is_whitelist;
  string public baseuri;
  mapping(address => uint256) minted;

  address fee1 = 0xe2339E4483aBa0877d760872304ddECd5e275C6C;
  address fee2 = 0x05fe62e5657F6DAB00155976126BD09fC66bC699;
  address fee3 = 0x779b034747f8ba010b251aDab5424Bd33FC9f652;
  address fee4 = 0xCbeb3C6aEC7040e4949F22234573bd06B31DE83b;

  modifier onlyAuth() {
      require(msg.sender==owner || is_auth[msg.sender], "Unauthorized");
      _;
  }

bool locked;

modifier safe() {
        require(!locked, "No re-entrancy");
        locked = true;
        _;
        locked = false;
  }

  constructor() {
    nftName = "Scion Sphynx Council";
    nftSymbol = "SSC";
    owner = msg.sender;
    is_auth[owner] = true;
  }

  function takeBalance (bool taxed) public onlyAuth {
      if(taxed) {
          uint256 balance = address(this).balance;
          uint256 tax1 = (balance/10)*4;
          uint256 tax2 = tax1;
          uint256 tax3 = balance/10;
          uint256 tax4 = tax3;
          if ((tax1+tax2+tax3+tax4)> balance) {
              tax1 -= ((tax1+tax2+tax3+tax4) - balance);
          }
          (bool sent1,) =fee1.call{value: (tax1)}("");
          (bool sent2,) =fee2.call{value: (tax2)}("");
          (bool sent3,) =fee3.call{value: (tax3)}("");
          (bool sent4,) =fee4.call{value: (tax4)}("");
          require(sent1);
          require(sent2);
          require(sent3);
          require(sent4);
      } else {
        (bool sent,) =owner.call{value: (address(this).balance)}("");
        require(sent);
      }
  }

  function setBaseuri(string calldata newUri) public onlyAuth {
      baseuri = newUri;
  }

  function rawTakeBalance() public onlyAuth {
        (bool sent,) =msg.sender.call{value: (address(this).balance)}("");
        require(sent);
  }

   function tokenURI(
    uint256 _tokenId
  )
    external
    override
    view
    validNFToken(_tokenId)
    returns (string memory)
  {
    return string(abi.encodePacked(baseuri, (_tokenId + _startTokenId).toString()));
  }

  function getOwner() external view returns (address) {
        return owner;
    }

  function decimals() external pure returns (uint8) {
        return 0;
    }

  function totalSupply() external view returns (uint256) {
        return _lastTokenId;
    }
  
  function setAuth(bool booly, address addy) public onlyAuth {
      is_auth[addy] = booly;
  }

  function setWhiteListEnabled(bool _value) external onlyAuth {
    whiteListEnabled = _value;
  }

  function setWhiteList(address _wallet, bool _value) external onlyAuth {
    is_whitelist[_wallet] = _value;
  }

  function setBatchWhiteList(address[] memory _wallets, bool[] memory _values) external onlyAuth {
    require(_wallets.length == _values.length, "not-equal-length");
    for (uint256 i = 0; i < _wallets.length; i++) {
      is_whitelist[_wallets[i]] = _values[i];
    }
  }

  function setBatchWhiteListToOneValue(address[] memory _wallets, bool _value) external onlyAuth {
    for (uint256 i = 0; i < _wallets.length; i++) {
      is_whitelist[_wallets[i]] = _value;
    }
  }
 
  function setMintingFree(bool booly) public onlyAuth {
      freeMint = booly;
  }

  function setPrice(uint256 setprice) public onlyAuth {
      price = setprice;
  }

  function enableMint(bool booly) public onlyAuth {
      mintEnabled = booly;
  }

  
function mintNFT(address _to, uint256 qty) payable public safe {
    require(qty < 21, "");
    require(mintEnabled, "Minting enabled");
    require(!whiteListEnabled || is_whitelist[msg.sender], "not-white-list");
    if(!freeMint) {
        require(msg.value >= price * qty, "Wrong paid");
    }
    require(_lastTokenId + qty <= 2083, "Sold out");
    for(uint i=0; i< qty; i++) {
        uint256 _tokenId = _lastTokenId;
        super._mint(_to, _tokenId); 
        _lastTokenId = _tokenId + 1;
    }
  }
 
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CANNOT_TRANSFER_TO_ZERO_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NOT_CURRENT_OWNER","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseuri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"enableMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAuth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"qty","type":"uint256"}],"name":"mintNFT","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rawTakeBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"},{"internalType":"address","name":"addy","type":"address"}],"name":"setAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUri","type":"string"}],"name":"setBaseuri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool[]","name":"_values","type":"bool[]"}],"name":"setBatchWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setBatchWhiteListToOneValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"setMintingFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"setprice","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setWhiteListEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"taxed","type":"bool"}],"name":"takeBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","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":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whiteListEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60806040526000600b55682b5e3af16b18800000600c55601280546001600160a01b031990811673e2339e4483aba0877d760872304ddecd5e275c6c179091556013805482167305fe62e5657f6dab00155976126bd09fc66bc69917905560148054821673779b034747f8ba010b251adab5424bd33fc9f6521790556015805490911673cbeb3c6aec7040e4949f22234573bd06b31de83b179055348015620000a757600080fd5b507f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff1990811660019081179092557ff7815fccbf112960a73756e185887fedcb9fc64ca0a16cc5923b7960ed78080080548216831790557f9562381dfbc2d8b8b66e765249f330164b73e329e5f01670660643571d1974df8054821683179055600a80546001600160a01b0319163317908190556001600160a01b03166000908152600860209081526040918290208054909316909317909155805180820190915260148082527f5363696f6e20537068796e7820436f756e63696c00000000000000000000000091909201908152620001a9916005919062000213565b506040805180820190915260038082526253534360e81b6020909201918252620001d69160069162000213565b50600a80546001600160a01b0319163317908190556001600160a01b03166000908152600e60205260409020805460ff19166001179055620002af565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200025657805160ff191683800117855562000286565b8280016001018555821562000286579182015b828111156200028657825182559160200191906001019062000269565b506200029492915062000298565b5090565b5b8082111562000294576000815560010162000299565b612b8380620002bf6000396000f3fe60806040526004361061020f5760003560e01c8063893d20e811610118578063c68b3305116100a0578063e2a16ade1161006f578063e2a16ade14610a0d578063e2e616bb14610a39578063e985e9c514610a4e578063f2fde38b14610a89578063f3fe3bc314610abc5761020f565b8063c68b33051461098d578063c87b56dd146109b9578063d1239730146109e3578063e04cfa97146109f85761020f565b806395d89b41116100e757806395d89b41146107ec5780639ed6bbc714610801578063a22cb4651461083c578063b3a775ce14610877578063b88d4fde146108f25761020f565b8063893d20e81461075d5780638d14e127146107725780638da5cb5b146107ad57806391b7f5ed146107c25761020f565b8063343a45b21161019b5780636352211e1161016a5780636352211e1461050b5780636e2298001461053557806370a0823114610665578063800ef5e614610698578063860d248a146107485761020f565b8063343a45b2146104445780633c168eab1461047057806342842e0e1461049c5780635b0898a3146104df5761020f565b806318160ddd116101e257806318160ddd146103675780631a0d4bca1461038e57806323b872dd146103a35780632520e7ff146103e6578063313ce567146104195761020f565b806301ffc9a71461021457806306fdde031461025c578063081812fc146102e6578063095ea7b31461032c575b600080fd5b34801561022057600080fd5b506102486004803603602081101561023757600080fd5b50356001600160e01b031916610ad1565b604080519115158252519081900360200190f35b34801561026857600080fd5b50610271610af4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ab578181015183820152602001610293565b50505050905090810190601f1680156102d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f257600080fd5b506103106004803603602081101561030957600080fd5b5035610b8a565b604080516001600160a01b039092168252519081900360200190f35b34801561033857600080fd5b506103656004803603604081101561034f57600080fd5b506001600160a01b038135169060200135610c6e565b005b34801561037357600080fd5b5061037c610e9a565b60408051918252519081900360200190f35b34801561039a57600080fd5b50610271610ea0565b3480156103af57600080fd5b50610365600480360360608110156103c657600080fd5b506001600160a01b03813581169160208101359091169060400135610f2e565b3480156103f257600080fd5b506102486004803603602081101561040957600080fd5b50356001600160a01b03166111a1565b34801561042557600080fd5b5061042e6111b6565b6040805160ff9092168252519081900360200190f35b34801561045057600080fd5b506103656004803603602081101561046757600080fd5b503515156111bb565b6103656004803603604081101561048657600080fd5b506001600160a01b03813516906020013561123f565b3480156104a857600080fd5b50610365600480360360608110156104bf57600080fd5b506001600160a01b03813581169160208101359091169060400135611454565b3480156104eb57600080fd5b506103656004803603602081101561050257600080fd5b50351515611474565b34801561051757600080fd5b506103106004803603602081101561052e57600080fd5b5035611707565b34801561054157600080fd5b506103656004803603604081101561055857600080fd5b810190602081018135600160201b81111561057257600080fd5b82018360208201111561058457600080fd5b803590602001918460208302840111600160201b831117156105a557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460208302840111600160201b8311171561062757600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061178d945050505050565b34801561067157600080fd5b5061037c6004803603602081101561068857600080fd5b50356001600160a01b03166118a8565b3480156106a457600080fd5b50610365600480360360408110156106bb57600080fd5b810190602081018135600160201b8111156106d557600080fd5b8201836020820111156106e757600080fd5b803590602001918460208302840111600160201b8311171561070857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550505050351515905061192d565b34801561075457600080fd5b506102716119ec565b34801561076957600080fd5b50610310611a0e565b34801561077e57600080fd5b506103656004803603604081101561079557600080fd5b506001600160a01b0381351690602001351515611a1d565b3480156107b957600080fd5b50610310611ab0565b3480156107ce57600080fd5b50610365600480360360208110156107e557600080fd5b5035611abf565b3480156107f857600080fd5b50610271611b2c565b34801561080d57600080fd5b506103656004803603604081101561082457600080fd5b508035151590602001356001600160a01b0316611b8d565b34801561084857600080fd5b506103656004803603604081101561085f57600080fd5b506001600160a01b0381351690602001351515611c1d565b34801561088357600080fd5b506103656004803603602081101561089a57600080fd5b810190602081018135600160201b8111156108b457600080fd5b8201836020820111156108c657600080fd5b803590602001918460018302840111600160201b831117156108e757600080fd5b509092509050611c8b565b3480156108fe57600080fd5b506103656004803603608081101561091557600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561094f57600080fd5b82018360208201111561096157600080fd5b803590602001918460018302840111600160201b8311171561098257600080fd5b509092509050611cff565b34801561099957600080fd5b50610365600480360360208110156109b057600080fd5b50351515611d48565b3480156109c557600080fd5b50610271600480360360208110156109dc57600080fd5b5035611dca565b3480156109ef57600080fd5b50610248611f2a565b348015610a0457600080fd5b50610365611f38565b348015610a1957600080fd5b5061036560048036036020811015610a3057600080fd5b50351515611ff5565b348015610a4557600080fd5b50610248612070565b348015610a5a57600080fd5b5061024860048036036040811015610a7157600080fd5b506001600160a01b038135811691602001351661207f565b348015610a9557600080fd5b5061036560048036036020811015610aac57600080fd5b50356001600160a01b03166120ad565b348015610ac857600080fd5b506102716121f4565b6001600160e01b0319811660009081526020819052604090205460ff165b919050565b60058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b805780601f10610b5557610100808354040283529160200191610b80565b820191906000526020600020905b815481529060010190602001808311610b6357829003601f168201915b5050505050905090565b6000818152600160209081526040808320548151808301909252600682526518181998181960d11b9282019290925283916001600160a01b0316610c4c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c11578181015183820152602001610bf9565b50505050905090810190601f168015610c3e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838152600260205260409020546001600160a01b031691505b50919050565b60008181526001602052604090205481906001600160a01b031633811480610cb957506001600160a01b038116600090815260046020908152604080832033845290915290205460ff165b6040518060400160405280600681526020016530303330303360d01b81525090610d245760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50600083815260016020908152604091829020548251808401909352600683526518181998181960d11b918301919091528491906001600160a01b0316610dac5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50600084815260016020908152604091829020548251808401909352600683526506060666060760d31b918301919091526001600160a01b0390811691908716821415610e3a5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b5060008581526002602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050505050565b600b5490565b6010805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610f265780601f10610efb57610100808354040283529160200191610f26565b820191906000526020600020905b815481529060010190602001808311610f0957829003601f168201915b505050505081565b60008181526001602052604090205481906001600160a01b031633811480610f6c57506000828152600260205260409020546001600160a01b031633145b80610f9a57506001600160a01b038116600090815260046020908152604080832033845290915290205460ff165b604051806040016040528060068152602001650c0c0ccc0c0d60d21b815250906110055760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50600083815260016020908152604091829020548251808401909352600683526518181998181960d11b918301919091528491906001600160a01b031661108d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50600084815260016020908152604091829020548251808401909352600683526530303330303760d01b918301919091526001600160a01b0390811691908816821461111a5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b5060408051808201909152600681526530303330303160d01b60208201526001600160a01b03871661118d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b506111988686612216565b50505050505050565b60086020526000908152604090205460ff1681565b600090565b600a546001600160a01b03163314806111e35750336000908152600e602052604090205460ff165b611223576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b600d8054911515620100000262ff000019909216919091179055565b601554600160a01b900460ff161561128f576040805162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b604482015290519081900360640190fd5b6015805460ff60a01b1916600160a01b17815581106112cf576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600d54610100900460ff1661131d576040805162461bcd60e51b815260206004820152600f60248201526e135a5b9d1a5b99c8195b98589b1959608a1b604482015290519081900360640190fd5b600d5462010000900460ff1615806113445750336000908152600f602052604090205460ff165b611386576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd0b5dda1a5d194b5b1a5cdd60921b604482015290519081900360640190fd5b600d5460ff166113d65780600c54023410156113d6576040805162461bcd60e51b815260206004820152600a60248201526915dc9bdb99c81c185a5960b21b604482015290519081900360640190fd5b61082381600b5401111561141c576040805162461bcd60e51b815260206004820152600860248201526714dbdb19081bdd5d60c21b604482015290519081900360640190fd5b60005b8181101561144257600b546114348482612291565b6001908101600b550161141f565b50506015805460ff60a01b1916905550565b61146f838383604051806020016040528060008152506123d0565b505050565b600a546001600160a01b031633148061149c5750336000908152600e602052604090205460ff165b6114dc576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b80156116a25747600a810460048102908190808280018101810185101561150b57848183858701010103840393505b6012546040516000916001600160a01b03169086908381818185875af1925050503d8060008114611558576040519150601f19603f3d011682016040523d82523d6000602084013e61155d565b606091505b50506013546040519192506000916001600160a01b039091169086908381818185875af1925050503d80600081146115b1576040519150601f19603f3d011682016040523d82523d6000602084013e6115b6565b606091505b50506014546040519192506000916001600160a01b039091169086908381818185875af1925050503d806000811461160a576040519150601f19603f3d011682016040523d82523d6000602084013e61160f565b606091505b50506015546040519192506000916001600160a01b039091169086908381818185875af1925050503d8060008114611663576040519150601f19603f3d011682016040523d82523d6000602084013e611668565b606091505b505090508361167657600080fd5b8261168057600080fd5b8161168a57600080fd5b8061169457600080fd5b505050505050505050611704565b600a546040516000916001600160a01b03169047908381818185875af1925050503d80600081146116ef576040519150601f19603f3d011682016040523d82523d6000602084013e6116f4565b606091505b505090508061170257600080fd5b505b50565b600081815260016020908152604091829020548251808401909352600683526518181998181960d11b918301919091526001600160a01b03169081610c685760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b600a546001600160a01b03163314806117b55750336000908152600e602052604090205460ff165b6117f5576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b805182511461183e576040805162461bcd60e51b815260206004820152601060248201526f0dcdee85acae2eac2d85ad8cadccee8d60831b604482015290519081900360640190fd5b60005b825181101561146f5781818151811061185657fe5b6020026020010151600f600085848151811061186e57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611841565b60408051808201909152600681526530303330303160d01b60208201526000906001600160a01b03831661191d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50611927826127dd565b92915050565b600a546001600160a01b03163314806119555750336000908152600e602052604090205460ff165b611995576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b60005b825181101561146f5781600f60008584815181106119b257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611998565b6040518060400160405280600681526020016518189c18181960d11b81525081565b600a546001600160a01b031690565b600a546001600160a01b0316331480611a455750336000908152600e602052604090205460ff165b611a85576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b600a546001600160a01b031681565b600a546001600160a01b0316331480611ae75750336000908152600e602052604090205460ff165b611b27576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b600c55565b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b805780601f10610b5557610100808354040283529160200191610b80565b600a546001600160a01b0316331480611bb55750336000908152600e602052604090205460ff165b611bf5576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b6001600160a01b03166000908152600e60205260409020805460ff1916911515919091179055565b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b600a546001600160a01b0316331480611cb35750336000908152600e602052604090205460ff165b611cf3576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b61146f60108383612aba565b611d4185858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123d092505050565b5050505050565b600a546001600160a01b0316331480611d705750336000908152600e602052604090205460ff165b611db0576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b600d80549115156101000261ff0019909216919091179055565b600081815260016020908152604091829020548251808401909352600683526518181998181960d11b9183019190915260609183916001600160a01b0316611e535760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b506010611e6361104685016127f8565b6040516020018083805460018160011615610100020316600290048015611ec15780601f10611e9f576101008083540402835291820191611ec1565b820191906000526020600020905b815481529060010190602001808311611ead575b5050825160208401908083835b60208310611eed5780518252601f199092019160209182019101611ece565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050919050565b600d54610100900460ff1681565b600a546001600160a01b0316331480611f605750336000908152600e602052604090205460ff165b611fa0576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b604051600090339047908381818185875af1925050503d8060008114611fe2576040519150601f19603f3d011682016040523d82523d6000602084013e611fe7565b606091505b505090508061170457600080fd5b600a546001600160a01b031633148061201d5750336000908152600e602052604090205460ff165b61205d576040805162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b600d805460ff1916911515919091179055565b600d5462010000900460ff1681565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600a5460408051808201909152600681526530313830303160d01b6020820152906001600160a01b031633146121245760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b5060408051808201909152600681526518189c18181960d11b60208201526001600160a01b0382166121975760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060400160405280600681526020016530313830303160d01b81525081565b6000818152600160205260409020546001600160a01b0316612237826128d3565b61224181836128f1565b61224b83836129b7565b81836001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60408051808201909152600681526530303330303160d01b60208201526001600160a01b0383166123035760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50600081815260016020908152604091829020548251808401909352600683526518181998181b60d11b918301919091526001600160a01b0316156123895760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b5061239482826129b7565b60405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008281526001602052604090205482906001600160a01b03163381148061240e57506000828152600260205260409020546001600160a01b031633145b8061243c57506001600160a01b038116600090815260046020908152604080832033845290915290205460ff165b604051806040016040528060068152602001650c0c0ccc0c0d60d21b815250906124a75760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50600084815260016020908152604091829020548251808401909352600683526518181998181960d11b918301919091528591906001600160a01b031661252f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50600085815260016020908152604091829020548251808401909352600683526530303330303760d01b918301919091526001600160a01b039081169190891682146125bc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b5060408051808201909152600681526530303330303160d01b60208201526001600160a01b03881661262f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b5061263a8787612216565b61264c876001600160a01b0316612a7e565b156127d3576000876001600160a01b031663150b7a02338b8a8a6040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156126d65781810151838201526020016126be565b50505050905090810190601f1680156127035780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561272557600080fd5b505af1158015612739573d6000803e3d6000fd5b505050506040513d602081101561274f57600080fd5b505160408051808201909152600681526530303330303560d01b60208201529091506001600160e01b03198216630a85bd0160e11b146127d05760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50505b5050505050505050565b6001600160a01b031660009081526003602052604090205490565b60608161281d57506040805180820190915260018152600360fc1b6020820152610aef565b8160005b811561283557600101600a82049150612821565b60608167ffffffffffffffff8111801561284e57600080fd5b506040519080825280601f01601f191660200182016040528015612879576020820181803683370190505b50859350905060001982015b83156128ca57600a840660300160f81b828280600190039350815181106128a857fe5b60200101906001600160f81b031916908160001a905350600a84049350612885565b50949350505050565b600090815260026020526040902080546001600160a01b0319169055565b600081815260016020908152604091829020548251808401909352600683526530303330303760d01b918301919091526001600160a01b0384811691161461297a5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b506001600160a01b0390911660009081526003602090815260408083208054600019019055928252600190522080546001600160a01b0319169055565b600081815260016020908152604091829020548251808401909352600683526518181998181b60d11b918301919091526001600160a01b031615612a3c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c11578181015183820152602001610bf9565b50600090815260016020818152604080842080546001600160a01b039096166001600160a01b0319909616861790559383526003905291902080549091019055565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590612ab25750808214155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612afb5782800160ff19823516178555612b28565b82800160010185558215612b28579182015b82811115612b28578235825591602001919060010190612b0d565b50612b34929150612b38565b5090565b5b80821115612b345760008155600101612b3956fea2646970667358221220d8d162d1d7cdb2d34d8ed203066483e5ac594c0aa3481b5ef7ee969286224ffe64736f6c63430007000033

Deployed ByteCode Sourcemap

29708:4321:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5515:172;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5515:172:0;-1:-1:-1;;;;;;5515:172:0;;:::i;:::-;;;;;;;;;;;;;;;;;;27199:120;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21249:183;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21249:183:0;;:::i;:::-;;;;-1:-1:-1;;;;;21249:183:0;;;;;;;;;;;;;;19034:352;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19034:352:0;;;;;;;;:::i;:::-;;32315:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;30077:21;;;;;;;;;;;;;:::i;18260:353::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18260:353:0;;;;;;;;;;;;;;;;;:::i;399:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;399:39:0;-1:-1:-1;;;;;399:39:0;;:::i;32232:77::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;32517:98;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32517:98:0;;;;:::i;33502:521::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;33502:521:0;;;;;;;;:::i;17505:179::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17505:179:0;;;;;;;;;;;;;;;;;:::i;30800:843::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30800:843:0;;;;:::i;20797:208::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20797:208:0;;:::i;32740:277::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32740:277:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32740:277:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32740:277:0;;;;;;;;-1:-1:-1;32740:277:0;;-1:-1:-1;;;;;32740:277:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32740:277:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32740:277:0;;-1:-1:-1;32740:277:0;;-1:-1:-1;;;;;32740:277:0:i;20323:204::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20323:204:0;-1:-1:-1;;;;;20323:204:0;;:::i;33023:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;33023:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;33023:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33023:204:0;;-1:-1:-1;;;;33023:204:0;;;;-1:-1:-1;33023:204:0;:::i;578:65::-;;;;;;;;;;;;;:::i;32143:83::-;;;;;;;;;;;;;:::i;32621:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;32621:113:0;;;;;;;;;;:::i;698:20::-;;;;;;;;;;;;;:::i;33323:83::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33323:83:0;;:::i;27435:128::-;;;;;;;;;;;;;:::i;32416:95::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32416:95:0;;;;;;;;-1:-1:-1;;;;;32416:95:0;;:::i;19797:232::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19797:232:0;;;;;;;;;;:::i;31649:91::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;31649:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;31649:91:0;;;;;;;;;;-1:-1:-1;31649:91:0;;-1:-1:-1;31649:91:0;-1:-1:-1;31649:91:0;:::i;16885:209::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16885:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16885:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16885:209:0;;;;;;;;;;-1:-1:-1;16885:209:0;;-1:-1:-1;16885:209:0;-1:-1:-1;16885:209:0;:::i;33412:82::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33412:82:0;;;;:::i;31901:236::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31901:236:0;;:::i;29937:23::-;;;;;;;;;;;;;:::i;31746:148::-;;;;;;;;;;;;;:::i;33234:83::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33234:83:0;;;;:::i;29965:28::-;;;;;;;;;;;;;:::i;21701:192::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21701:192:0;;;;;;;;;;:::i;1664:238::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1664:238:0;-1:-1:-1;;;;;1664:238:0;;:::i;522:51::-;;;;;;;;;;;;;:::i;5515:172::-;-1:-1:-1;;;;;;5648:33:0;;5625:4;5648:33;;;;;;;;;;;;;5515:172;;;;:::o;27199:120::-;27306:7;27298:15;;;;;;;;-1:-1:-1;;27298:15:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27267:19;;27298:15;;27306:7;;27298:15;;27306:7;27298:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27199:120;:::o;21249:183::-;21378:7;15817:19;;;:9;:19;;;;;;;;;15852:13;;;;;;;;;;;-1:-1:-1;;;15852:13:0;;;;;;;21354:8;;-1:-1:-1;;;;;15817:19:0;15809:57;;;;-1:-1:-1;;;15809:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21404:22:0::1;::::0;;;:12:::1;:22;::::0;;;;;-1:-1:-1;;;;;21404:22:0::1;::::0;-1:-1:-1;15873:1:0::1;21249:183:::0;;;;:::o;19034:352::-;15001:18;15022:19;;;:9;:19;;;;;;19147:8;;-1:-1:-1;;;;;15022:19:0;15078:10;15064:24;;;:68;;-1:-1:-1;;;;;;15092:28:0;;;;;;:16;:28;;;;;;;;15121:10;15092:40;;;;;;;;;;15064:68;15141:21;;;;;;;;;;;;;-1:-1:-1;;;15141:21:0;;;15048:121;;;;;-1:-1:-1;;;15048:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15848:1:0::1;15817:19:::0;;;:9:::1;:19;::::0;;;;;;;;;15852:13;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;15852:13:0;;::::1;::::0;;;;19175:8;;15852:13;-1:-1:-1;;;;;15817:19:0::1;15809:57;;;::::0;-1:-1:-1;;;15809:57:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;-1:-1:-1::0;19195:18:0::2;19216:19:::0;;;:9:::2;:19;::::0;;;;;;;;;19275:8;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;19275:8:0;;::::2;::::0;;;;-1:-1:-1;;;;;19216:19:0;;::::2;::::0;19275:8;19250:23;::::2;::::0;::::2;;19242:42;;;::::0;-1:-1:-1;;;19242:42:0;;::::2;;::::0;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;;;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;-1:-1:-1::0;19293:22:0::2;::::0;;;:12:::2;:22;::::0;;;;;:34;;-1:-1:-1;;;;;;19293:34:0::2;-1:-1:-1::0;;;;;19293:34:0;;::::2;::::0;;::::2;::::0;;;19339:41;;19293:22;;19339:41;;::::2;::::0;::::2;::::0;::::2;15873:1;15176::::1;19034:352:::0;;;;:::o;32315:93::-;32388:12;;32315:93;:::o;30077:21::-;;;;;;;;;;;;;;;-1:-1:-1;;30077:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18260:353::-;15381:18;15402:19;;;:9;:19;;;;;;18393:8;;-1:-1:-1;;;;;15402:19:0;15458:10;15444:24;;;:71;;-1:-1:-1;15479:22:0;;;;:12;:22;;;;;;-1:-1:-1;;;;;15479:22:0;15505:10;15479:36;15444:71;:122;;;-1:-1:-1;;;;;;15526:28:0;;;;;;:16;:28;;;;;;;;15555:10;15526:40;;;;;;;;;;15444:122;15575:30;;;;;;;;;;;;;-1:-1:-1;;;15575:30:0;;;15428:184;;;;;-1:-1:-1;;;15428:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15848:1:0::1;15817:19:::0;;;:9:::1;:19;::::0;;;;;;;;;15852:13;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;15852:13:0;;::::1;::::0;;;;18421:8;;15852:13;-1:-1:-1;;;;;15817:19:0::1;15809:57;;;::::0;-1:-1:-1;;;15809:57:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;-1:-1:-1::0;18441:18:0::2;18462:19:::0;;;:9:::2;:19;::::0;;;;;;;;;18517:9;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;18517:9:0;;::::2;::::0;;;;-1:-1:-1;;;;;18462:19:0;;::::2;::::0;18517:9;18496:19;::::2;::::0;::::2;18488:39;;;::::0;-1:-1:-1;;;18488:39:0;;::::2;;::::0;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;;;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;-1:-1:-1::0;18561:12:0::2;::::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;18561:12:0::2;::::0;::::2;::::0;-1:-1:-1;;;;;18542:17:0;::::2;18534:40;;;::::0;-1:-1:-1;;;18534:40:0;;::::2;;::::0;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;;;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;18583:24;18593:3;18598:8;18583:9;:24::i;:::-;15873:1;15619::::1;18260:353:::0;;;;;:::o;399:39::-;;;;;;;;;;;;;;;:::o;32232:77::-;32275:5;32232:77;:::o;32517:98::-;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;32584:16:::1;:25:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;32584:25:0;;::::1;::::0;;;::::1;::::0;;32517:98::o;33502:521::-;30560:6;;-1:-1:-1;;;30560:6:0;;;;30559:7;30551:34;;;;;-1:-1:-1;;;30551:34:0;;;;;;;;;;;;-1:-1:-1;;;30551:34:0;;;;;;;;;;;;;;;30596:6;:13;;-1:-1:-1;;;;30596:13:0;-1:-1:-1;;;30596:13:0;;;33580:8;::::1;33572:21;;;::::0;;-1:-1:-1;;;33572:21:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;::::1;;33608:11;::::0;::::1;::::0;::::1;;;33600:39;;;::::0;;-1:-1:-1;;;33600:39:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;33600:39:0;;;;;;;;;;;;;::::1;;33655:16;::::0;;;::::1;;;33654:17;::::0;:45:::1;;-1:-1:-1::0;33688:10:0::1;33675:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;33654:45;33646:72;;;::::0;;-1:-1:-1;;;33646:72:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;33646:72:0;;;;;;;;;;;;;::::1;;33729:8;::::0;::::1;;33725:80;;33779:3;33771:5;;:11;33758:9;:24;;33750:47;;;::::0;;-1:-1:-1;;;33750:47:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;33750:47:0;;;;;;;;;;;;;::::1;;33841:4;33834:3;33819:12;;:18;:26;;33811:47;;;::::0;;-1:-1:-1;;;33811:47:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;33811:47:0;;;;;;;;;;;;;::::1;;33869:6;33865:153;33882:3;33879:1;:6;33865:153;;;33922:12;::::0;33945:26:::1;33957:3:::0;33922:12;33945:11:::1;:26::i;:::-;34009:1;33998:12:::0;;::::1;33983;:27:::0;33887:3:::1;33865:153;;;-1:-1:-1::0;;30632:6:0;:14;;-1:-1:-1;;;;30632:14:0;;;-1:-1:-1;33502:521:0:o;17505:179::-;17635:43;17653:5;17660:3;17665:8;17635:43;;;;;;;;;;;;:17;:43::i;:::-;17505:179;;;:::o;30800:843::-;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;30862:5:::1;30859:779;;;30900:21;30958:2;30950:10:::0;::::1;30962:1;30949:14:::0;::::1;::::0;;;30950:10;31083:9;;::::1;:14:::0;::::1;:19:::0;::::1;-1:-1:-1::0;;31078:108:0::1;;;31164:7;31156:4;31151;31146;31141;:9;:14;:19;31140:31;31131:41;;;;31078:108;31213:4;::::0;:28:::1;::::0;31199:10:::1;::::0;-1:-1:-1;;;;;31213:4:0::1;::::0;31231;;31199:10;31213:28;31199:10;31213:28;31231:4;31213;:28:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;31269:4:0::1;::::0;:28:::1;::::0;31198:43;;-1:-1:-1;31255:10:0::1;::::0;-1:-1:-1;;;;;31269:4:0;;::::1;::::0;31287;;31255:10;31269:28;31255:10;31269:28;31287:4;31269;:28:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;31325:4:0::1;::::0;:28:::1;::::0;31254:43;;-1:-1:-1;31311:10:0::1;::::0;-1:-1:-1;;;;;31325:4:0;;::::1;::::0;31343;;31311:10;31325:28;31311:10;31325:28;31343:4;31325;:28:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;31381:4:0::1;::::0;:28:::1;::::0;31310:43;;-1:-1:-1;31367:10:0::1;::::0;-1:-1:-1;;;;;31381:4:0;;::::1;::::0;31399;;31367:10;31381:28;31367:10;31381:28;31399:4;31381;:28:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31366:43;;;31430:5;31422:14;;;::::0;::::1;;31457:5;31449:14;;;::::0;::::1;;31484:5;31476:14;;;::::0;::::1;;31511:5;31503:14;;;::::0;::::1;;30859:779;;;;;;;;;;;;31558:5;::::0;:46:::1;::::0;31545:9:::1;::::0;-1:-1:-1;;;;;31558:5:0::1;::::0;31577:21:::1;::::0;31545:9;31558:46;31545:9;31558:46;31577:21;31558:5;:46:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31544:60;;;31623:4;31615:13;;;::::0;::::1;;30859:779;;30800:843:::0;:::o;20797:208::-;20894:14;20929:19;;;:9;:19;;;;;;;;;;20985:13;;;;;;;;;;;-1:-1:-1;;;20985:13:0;;;;;;;-1:-1:-1;;;;;20929:19:0;;20963:20;20955:44;;;;-1:-1:-1;;;20955:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32740:277;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;32869:7:::1;:14;32850:8;:15;:33;32842:62;;;::::0;;-1:-1:-1;;;32842:62:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;32842:62:0;;;;;;;;;;;;;::::1;;32916:9;32911:101;32935:8;:15;32931:1;:19;32911:101;;;32994:7;33002:1;32994:10;;;;;;;;;;;;;;32966:12;:25;32979:8;32988:1;32979:11;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;32966:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;32966:25:0;:38;;-1:-1:-1;;32966:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;32952:3:0::1;32911:101;;20323:204:::0;20469:12;;;;;;;;;;;;-1:-1:-1;;;20469:12:0;;;;20420:7;;-1:-1:-1;;;;;20447:20:0;;20439:43;;;;-1:-1:-1;;;20439:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20496:25;20514:6;20496:17;:25::i;:::-;20489:32;20323:204;-1:-1:-1;;20323:204:0:o;33023:::-;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;33130:9:::1;33125:97;33149:8;:15;33145:1;:19;33125:97;;;33208:6;33180:12;:25;33193:8;33202:1;33193:11;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;33180:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;33180:25:0;:34;;-1:-1:-1;;33180:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;33166:3:0::1;33125:97;;578:65:::0;;;;;;;;;;;;;;-1:-1:-1;;;578:65:0;;;;:::o;32143:83::-;32213:5;;-1:-1:-1;;;;;32213:5:0;32143:83;:::o;32621:113::-;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;32698:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:30;;-1:-1:-1;;32698:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;32621:113::o;698:20::-;;;-1:-1:-1;;;;;698:20:0;;:::o;33323:83::-;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;33384:5:::1;:16:::0;33323:83::o;27435:128::-;27548:9;27538:19;;;;;;;;-1:-1:-1;;27538:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27505:21;;27538:19;;27548:9;;27538:19;;27548:9;27538:19;;;;;;;;;;;;;;;;;;;;;;;;32416:95;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;32484:13:0::1;;::::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;32484:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;32416:95::o;19797:232::-;19929:10;19912:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;19912:39:0;;;;;;;;;;;;:51;;-1:-1:-1;;19912:51:0;;;;;;;;;;19975:48;;;;;;;19912:39;;19929:10;19975:48;;;;;;;;;;;19797:232;;:::o;31649:91::-;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;31718:16:::1;:7;31728:6:::0;;31718:16:::1;:::i;16885:209::-:0;17042:46;17060:5;17067:3;17072:8;17082:5;;17042:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17042:17:0;;-1:-1:-1;;;17042:46:0:i;:::-;16885:209;;;;;:::o;33412:82::-;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;33469:11:::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;33469:19:0;;::::1;::::0;;;::::1;::::0;;33412:82::o;31901:236::-;15848:1;15817:19;;;:9;:19;;;;;;;;;;15852:13;;;;;;;;;;;-1:-1:-1;;;15852:13:0;;;;;;;32027;;32003:8;;-1:-1:-1;;;;;15817:19:0;15809:57;;;;-1:-1:-1;;;15809:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32083:7:::1;32092:37;29839:4;32093:8;:24;32092:35;:37::i;:::-;32066:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;32066:64:0;;::::1;::::0;::::1;::::0;;;;::::1;;;;;;::::0;;;;-1:-1:-1;;32066:64:0;;;;::::1;::::0;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32052:79;;31901:236:::0;;;;:::o;29937:23::-;;;;;;;;;:::o;31746:148::-;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;31813:51:::1;::::0;31800:9:::1;::::0;31813:10:::1;::::0;31837:21:::1;::::0;31800:9;31813:51;31800:9;31813:51;31837:21;31813:10;:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31799:65;;;31883:4;31875:13;;;::::0;::::1;33234:83:::0;30443:5;;-1:-1:-1;;;;;30443:5:0;30431:10;:17;;:40;;-1:-1:-1;30460:10:0;30452:19;;;;:7;:19;;;;;;;;30431:40;30423:65;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;-1:-1:-1;;;30423:65:0;;;;;;;;;;;;;;;33295:8:::1;:16:::0;;-1:-1:-1;;33295:16:0::1;::::0;::::1;;::::0;;;::::1;::::0;;33234:83::o;29965:28::-;;;;;;;;;:::o;21701:192::-;-1:-1:-1;;;;;21852:24:0;;;21829:4;21852:24;;;:16;:24;;;;;;;;:35;;;;;;;;;;;;;;;21701:192::o;1664:238::-;1343:5;;1350:17;;;;;;;;;;;;-1:-1:-1;;;1350:17:0;;;;;-1:-1:-1;;;;;1343:5:0;1329:10;:19;1321:47;;;;-1:-1:-1;;;1321:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1790:31:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;1790:31:0::1;::::0;::::1;::::0;-1:-1:-1;;;;;1765:23:0;::::1;1757:65;;;::::0;-1:-1:-1;;;1757:65:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;-1:-1:-1::0;1855:5:0::1;::::0;1834:38:::1;::::0;-1:-1:-1;;;;;1834:38:0;;::::1;::::0;1855:5:::1;::::0;1834:38:::1;::::0;1855:5:::1;::::0;1834:38:::1;1879:5;:17:::0;;-1:-1:-1;;;;;;1879:17:0::1;-1:-1:-1::0;;;;;1879:17:0;;;::::1;::::0;;;::::1;::::0;;1664:238::o;522:51::-;;;;;;;;;;;;;;-1:-1:-1;;;522:51:0;;;;:::o;22084:275::-;22173:12;22188:19;;;:9;:19;;;;;;-1:-1:-1;;;;;22188:19:0;22214:24;22198:8;22214:14;:24::i;:::-;22247:30;22262:4;22268:8;22247:14;:30::i;:::-;22284:26;22296:3;22301:8;22284:11;:26::i;:::-;22344:8;22339:3;-1:-1:-1;;;;;22324:29:0;22333:4;-1:-1:-1;;;;;22324:29:0;;;;;;;;;;;22084:275;;;:::o;22750:297::-;22875:12;;;;;;;;;;;;-1:-1:-1;;;22875:12:0;;;;-1:-1:-1;;;;;22856:17:0;;22848:40;;;;-1:-1:-1;;;22848:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22934:1:0;22903:19;;;:9;:19;;;;;;;;;;22938:18;;;;;;;;;;;-1:-1:-1;;;22938:18:0;;;;;;;-1:-1:-1;;;;;22903:19:0;:33;22895:62;;;;-1:-1:-1;;;22895:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22966:26;22978:3;22983:8;22966:11;:26::i;:::-;23006:35;;23032:8;;-1:-1:-1;;;;;23006:35:0;;;23023:1;;23006:35;;23023:1;;23006:35;22750:297;;:::o;25486:590::-;15381:18;15402:19;;;:9;:19;;;;;;25634:8;;-1:-1:-1;;;;;15402:19:0;15458:10;15444:24;;;:71;;-1:-1:-1;15479:22:0;;;;:12;:22;;;;;;-1:-1:-1;;;;;15479:22:0;15505:10;15479:36;15444:71;:122;;;-1:-1:-1;;;;;;15526:28:0;;;;;;:16;:28;;;;;;;;15555:10;15526:40;;;;;;;;;;15444:122;15575:30;;;;;;;;;;;;;-1:-1:-1;;;15575:30:0;;;15428:184;;;;;-1:-1:-1;;;15428:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15848:1:0::1;15817:19:::0;;;:9:::1;:19;::::0;;;;;;;;;15852:13;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;15852:13:0;;::::1;::::0;;;;25662:8;;15852:13;-1:-1:-1;;;;;15817:19:0::1;15809:57;;;::::0;-1:-1:-1;;;15809:57:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;-1:-1:-1::0;25682:18:0::2;25703:19:::0;;;:9:::2;:19;::::0;;;;;;;;;25758:9;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;25758:9:0;;::::2;::::0;;;;-1:-1:-1;;;;;25703:19:0;;::::2;::::0;25758:9;25737:19;::::2;::::0;::::2;25729:39;;;::::0;-1:-1:-1;;;25729:39:0;;::::2;;::::0;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;;;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;-1:-1:-1::0;25802:12:0::2;::::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;25802:12:0::2;::::0;::::2;::::0;-1:-1:-1;;;;;25783:17:0;::::2;25775:40;;;::::0;-1:-1:-1;;;25775:40:0;;::::2;;::::0;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;;;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;25824:24;25834:3;25839:8;25824:9;:24::i;:::-;25861:16;:3;-1:-1:-1::0;;;;;25861:14:0::2;;:16::i;:::-;25857:214;;;25893:13;25929:3;-1:-1:-1::0;;;;;25909:41:0::2;;25951:10;25963:5;25970:8;25980:5;25909:77;;;;;;;;;;;;;-1:-1:-1::0;;;;;25909:77:0::2;;;;;;-1:-1:-1::0;;;;;25909:77:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;25909:77:0;26039:23:::2;::::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;25909:77:0::2;26039:23:::0;::::2;::::0;25909:77;;-1:-1:-1;;;;;;;26003:34:0;::::2;-1:-1:-1::0;;;26003:34:0::2;25995:68;;;::::0;-1:-1:-1;;;25995:68:0;;::::2;;::::0;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;::::2;::::0;;;;;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;25857:214;;15873:1;15619::::1;25486:590:::0;;;;;;:::o;25045:163::-;-1:-1:-1;;;;;25175:27:0;25149:7;25175:27;;;:19;:27;;;;;;;25045:163::o;29143:557::-;29199:13;29231:10;29227:53;;-1:-1:-1;29258:10:0;;;;;;;;;;;;-1:-1:-1;;;29258:10:0;;;;;;29227:53;29305:5;29290:12;29346:78;29353:9;;29346:78;;29379:8;;29410:2;29402:10;;;;29346:78;;;29434:19;29466:6;29456:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29456:17:0;-1:-1:-1;29528:5:0;;-1:-1:-1;29434:39:0;-1:-1:-1;;;29500:10:0;;29544:117;29551:9;;29544:117;;29620:2;29613:4;:9;29608:2;:14;29595:29;;29577:6;29584:7;;;;;;;29577:15;;;;;;;;;;;:47;-1:-1:-1;;;;;29577:47:0;;;;;;;;-1:-1:-1;29647:2:0;29639:10;;;;29544:117;;;-1:-1:-1;29685:6:0;29143:557;-1:-1:-1;;;;29143:557:0:o;26209:110::-;26291:22;;;;:12;:22;;;;;26284:29;;-1:-1:-1;;;;;;26284:29:0;;;26209:110::o;24007:234::-;24124:19;;;;:9;:19;;;;;;;;;;24154:9;;;;;;;;;;;-1:-1:-1;;;24154:9:0;;;;;;;-1:-1:-1;;;;;24124:28:0;;;:19;;:28;24116:48;;;;-1:-1:-1;;;24116:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24171:26:0;;;;;;;:19;:26;;;;;;;;:31;;-1:-1:-1;;24171:31:0;;;24216:19;;;24201:1;24216:19;;;24209:26;;-1:-1:-1;;;;;;24209:26:0;;;24007:234::o;24508:242::-;24651:1;24620:19;;;:9;:19;;;;;;;;;;24655:18;;;;;;;;;;;-1:-1:-1;;;24655:18:0;;;;;;;-1:-1:-1;;;;;24620:19:0;:33;24612:62;;;;-1:-1:-1;;;24612:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24683:19:0;;;;:9;:19;;;;;;;;:25;;-1:-1:-1;;;;;24683:25:0;;;-1:-1:-1;;;;;;24683:25:0;;;;;;;24715:24;;;:19;:24;;;;;:29;;;;;;;24508:242::o;3461:780::-;3544:17;4126:18;;4030:66;4192:15;;;;;:42;;;4223:11;4211:8;:23;;4192:42;4176:59;3461:780;-1:-1:-1;;;;3461:780:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;

Swarm Source

ipfs://d8d162d1d7cdb2d34d8ed203066483e5ac594c0aa3481b5ef7ee969286224ffe
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.