ETH Price: $2,509.57 (+0.73%)

Token

UNDRTD (UNDRTD)
 

Overview

Max Total Supply

273 UNDRTD

Holders

195

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 UNDRTD
0x7bdd718fe44d6b9fc09851195f5d3731adfa0b86
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
UNDRTD

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-24
*/

// SPDX-License-Identifier: MIT


//  https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol
pragma solidity ^0.8.0;

interface IERC165 {
   
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/IERC721.sol
pragma solidity ^0.8.0;

interface IERC721 is IERC165 {
  
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

  
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

 
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    
    function balanceOf(address owner) external view returns (uint256 balance);

 
    function ownerOf(uint256 tokenId) external view returns (address owner);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

   
    function approve(address to, uint256 tokenId) external;

 
    function getApproved(uint256 tokenId) external view returns (address operator);

    function setApprovalForAll(address operator, bool _approved) external;

   
    function isApprovedForAll(address owner, address operator) external view returns (bool);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
}



// File: @openzeppelin/contracts/utils/introspection/ERC165.sol
pragma solidity ^0.8.0;

abstract contract ERC165 is IERC165 {
 
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}


pragma solidity ^0.8.0;
// conerts to ASCII
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";


    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

  
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

   
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Address.sol

pragma solidity ^0.8.0;
//address functions
library Address {
  
    function isContract(address account) internal view returns (bool) {

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

 
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }


    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

  
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

  
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

   
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

   
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

   
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

  
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }


    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

  
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/extensions/IERC721Metadata.sol

pragma solidity ^0.8.0;


//ERC-721 Token Standard
 
interface IERC721Metadata is IERC721 {
   
    function name() external view returns (string memory);

   
    function symbol() external view returns (string memory);

  
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/IERC721Receiver.sol

pragma solidity ^0.8.0;



interface IERC721Receiver {

    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Context.sol
pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol
pragma solidity ^0.8.0;

contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;

    string private _name;

    string private _symbol;

    mapping(uint256 => address) private _owners;

    mapping(address => uint256) private _balances;

    mapping(uint256 => address) private _tokenApprovals;

    mapping(address => mapping(address => bool)) private _operatorApprovals;
//coolection constructor
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

   
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC721Metadata).interfaceId ||
            super.supportsInterface(interfaceId);
    }


    function balanceOf(address owner) public view virtual override returns (uint256) {
        require(owner != address(0), "ERC721: balance query for the zero address");
        return _balances[owner];
    }


    function ownerOf(uint256 tokenId) public view virtual override returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "ERC721: owner query for nonexistent token");
        return owner;
    }

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

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

  
    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");

        string memory baseURI = _baseURI();
        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : "";
    }

 
    function _baseURI() internal view virtual returns (string memory) {
        return "";
    }

    function approve(address to, uint256 tokenId) public virtual override {
        address owner = ERC721.ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");

        require(
            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),
            "ERC721: approve caller is not owner nor approved for all"
        );

        _approve(to, tokenId);
    }

   
    function getApproved(uint256 tokenId) public view virtual override returns (address) {
        require(_exists(tokenId), "ERC721: approved query for nonexistent token");

        return _tokenApprovals[tokenId];
    }

   
    function setApprovalForAll(address operator, bool approved) public virtual override {
        require(operator != _msgSender(), "ERC721: approve to caller");

        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }

  
    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[owner][operator];
    }

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");

        _transfer(from, to, tokenId);
    }

 
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        safeTransferFrom(from, to, tokenId, "");
    }

  
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }

   
    function _safeTransfer(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }


    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return _owners[tokenId] != address(0);
    }

  
    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = ERC721.ownerOf(tokenId);
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }

   
    function _safeMint(address to, uint256 tokenId) internal virtual {
        _safeMint(to, tokenId, "");
    }

  
    function _safeMint(
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _mint(to, tokenId);
        require(
            _checkOnERC721Received(address(0), to, tokenId, _data),
            "ERC721: transfer to non ERC721Receiver implementer"
        );
    }

 
    function _mint(address to, uint256 tokenId) internal virtual {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");

        _beforeTokenTransfer(address(0), to, tokenId);

        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(address(0), to, tokenId);
    }

   
    function _burn(uint256 tokenId) internal virtual {
        address owner = ERC721.ownerOf(tokenId);

        _beforeTokenTransfer(owner, address(0), tokenId);


        _approve(address(0), tokenId);

        _balances[owner] -= 1;
        delete _owners[tokenId];

        emit Transfer(owner, address(0), tokenId);
    }

   
    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {
        require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own");
        require(to != address(0), "ERC721: transfer to the zero address");

        _beforeTokenTransfer(from, to, tokenId);

    
        _approve(address(0), tokenId);

        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(from, to, tokenId);
    }

  
    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }

    
    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.isContract()) {
            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {
                return retval == IERC721Receiver.onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {}
}




// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol

pragma solidity ^0.8.0;
// owner only commands
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

 //owner constructor
    constructor() {
        _setOwner(_msgSender());
    }

  
    function owner() public view virtual returns (address) {
        return _owner;
    }

   
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }


    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}



/*  \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD//   
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD//
    \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD//   
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD//  
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// 
    \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD//   
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD//   
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ //UNDRTD\\ \\UNDRTD// 
    \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// \\UNDRTD// 


                                          f i r e b u g 5 0 9                     
*/
pragma solidity >=0.7.0 <0.9.0;

contract UNDRTD is ERC721, Ownable {
  using Strings for uint256;
 
  string public _collectionName= "UNDRTD";
  string public _collectionSymbol="UNDRTD";
  string baseURI="ipfs://CID/";
  string public baseExtension = ".json";
  uint256 public cost = 0.1 ether;
  uint256 public maxSupply = 333;

  //track mints
  uint256 public amountMinted;
  uint256 public burnCount;

 //claim list toggle
  bool public claimListActive=false;
  //mint/public toggle
  bool public paused = true;
  bool public revealed = false;
  string public passUri;

    //claim list mapping
    mapping(address => uint256) private _claimList;
    uint256 public claimCount;


  constructor() ERC721(_collectionName, _collectionSymbol)
   {
    setPassURI("ipfs://QmbPbQPRHrCg1StkobXp4sxR4o92CAqgqgYm3nF5MZ5fa9/UNDRTD.json");
    amountMinted=0;
    burnCount=0;
  }

  function _baseURI() internal view virtual override returns (string memory) {
    return baseURI;
  }

  // public minting fuction + WL check
  function mint(uint256 _mintAmount) public payable {

    uint256 mintSupply = totalSupply();
//manage public mint
  
      mintSupply=totalSupply();
    require(!paused, "Contract is paused");
    require(_mintAmount > 0, "mint amount cant be 0");
    require(mintSupply + _mintAmount <= maxSupply, "Mint amount is too high there may not be enough left to mint that many");

    if (msg.sender != owner()) {
      require(msg.value >= cost * _mintAmount);
    }
    for (uint256 i = 1; i <= _mintAmount; i++) {
      _safeMint(msg.sender, mintSupply + i);
    }
    amountMinted+=_mintAmount;
  
  }
  //claimable list mint funtion

function mintClaimList(uint256 numberOfTokens) external payable {
    uint256 currentSupply = totalSupply();

    require(claimListActive, "Claim list is not active");
    require(numberOfTokens <= _claimList[msg.sender], "Exceeded max available to purchase");
    require(currentSupply + numberOfTokens <= maxSupply, "Purchase would exceed max supply");
    // cost taken down to 0 for claims
    //require(cost * numberOfTokens <= msg.value, "Eth value sent is not correct");

    _claimList[msg.sender] -= numberOfTokens;
    for (uint256 i = 1; i <= (numberOfTokens); i++) {
        _safeMint(msg.sender, currentSupply + i);
    }
    if(_claimList[msg.sender]==0){
          claimCount-=1;
      }
    amountMinted+=numberOfTokens;
 }

//return total supply minted
 function totalSupply() public view returns (uint256) {
    return amountMinted;
  }
//gas efficient function to find token ids owned by address

   function walletOfOwner(address _owner)
    public
    view
    returns (uint256[] memory)
  {
    uint256 ownerTokenCount = balanceOf(_owner);
    uint256[] memory ownedTokenIds = new uint256[](ownerTokenCount);
    uint256 currentTokenId = 1;
    uint256 ownedTokenIndex = 0;

    while (ownedTokenIndex < ownerTokenCount && currentTokenId <= maxSupply) {
      address currentTokenOwner = ownerOf(currentTokenId);

      if (currentTokenOwner == _owner) {
        ownedTokenIds[ownedTokenIndex] = currentTokenId;

        ownedTokenIndex++;
      }

      currentTokenId++;
    }

    return ownedTokenIds;
  }
  function tokenURI(uint256 tokenId)
    public
    view
    virtual
    override
    returns (string memory)
  {
    require(_exists(tokenId),"ERC721Metadata: URI query for nonexistent token");
    
    if(revealed == false) {
        return passUri;
    }
    if(tokenId>amountMinted) {
        return passUri;
    }

    string memory currentBaseURI = _baseURI();
    return bytes(currentBaseURI).length > 0
        ? string(abi.encodePacked(currentBaseURI, tokenId.toString(), baseExtension))
        : "";
  }
  //actions for the owner to interact with contract
  function setReveal(bool _newBool) public onlyOwner() {
      revealed = _newBool;
  }
// update mint cost
  function setCost(uint256 _newCost) public onlyOwner() {
    cost = _newCost;
  }

//revealed bool  
  function setPassURI(string memory _passURI) public onlyOwner {
    passUri = _passURI;
  }
//base URI extension
  function setBaseURI(string memory _newBaseURI) public onlyOwner {
    baseURI = _newBaseURI;
  }
//set extension (.json)
  function setBaseExtension(string memory _newBaseExtension) public onlyOwner {
    baseExtension = _newBaseExtension;
  }
//contract paused state
  function pause(bool _state) public onlyOwner {
    paused = _state;
  }
  //white list fuctions

//claim functions
//set single claim address
function setClaimList(address addressInput, uint256 numAllowedToMint) external onlyOwner {
       
            _claimList[addressInput] = numAllowedToMint;
            claimCount+=1;
    }
//set claim list to true or false for active
    function setClaimListActive(bool _claimListActive) external onlyOwner {
        claimListActive = _claimListActive;
    }
//reset claimCount (claim list count)
    function claimCountReset(uint256 _newCount) public onlyOwner {
        claimCount=_newCount;
    }
//set a full claim address list 
function setFullClaimList(address[] calldata addresses, uint256 numAllowedToMint) external onlyOwner {
    for (uint256 i = 0; i < addresses.length; i++) {
        _claimList[addresses[i]] = numAllowedToMint;
    }
    claimCount+=addresses.length;
}
//burn
  function burn(uint _tokenId) external {
    require(_isApprovedOrOwner(_msgSender(), _tokenId));
    _burn(_tokenId);
    burnCount++;
  }

//witdraw to retrieve all funds to deployment account 
  function PrimaryWithdraw() public payable onlyOwner {
 
    (bool success, ) = payable(msg.sender).call{value: address(this).balance}("");
    require(success);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"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":"PrimaryWithdraw","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"_collectionName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_collectionSymbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","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":"baseExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCount","type":"uint256"}],"name":"claimCountReset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimListActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","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":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfTokens","type":"uint256"}],"name":"mintClaimList","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"passUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"string","name":"_newBaseExtension","type":"string"}],"name":"setBaseExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addressInput","type":"address"},{"internalType":"uint256","name":"numAllowedToMint","type":"uint256"}],"name":"setClaimList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_claimListActive","type":"bool"}],"name":"setClaimListActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"numAllowedToMint","type":"uint256"}],"name":"setFullClaimList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_passURI","type":"string"}],"name":"setPassURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_newBool","type":"bool"}],"name":"setReveal","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":"","type":"string"}],"stateMutability":"view","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":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"}]

60c0604052600660808190526515539114951160d21b60a09081526200002991600791906200035e565b506040805180820190915260068082526515539114951160d21b602090920191825262000059916008916200035e565b5060408051808201909152600b8082526a697066733a2f2f4349442f60a81b60209092019182526200008e916009916200035e565b5060408051808201909152600580825264173539b7b760d91b6020909201918252620000bd91600a916200035e565b5067016345785d8a0000600b5561014d600c55600f805462ffffff1916610100179055348015620000ed57600080fd5b5060078054620000fd9062000404565b80601f01602080910402602001604051908101604052809291908181526020018280546200012b9062000404565b80156200017c5780601f1062000150576101008083540402835291602001916200017c565b820191906000526020600020905b8154815290600101906020018083116200015e57829003601f168201915b505050505060088054620001909062000404565b80601f0160208091040260200160405190810160405280929190818152602001828054620001be9062000404565b80156200020f5780601f10620001e3576101008083540402835291602001916200020f565b820191906000526020600020905b815481529060010190602001808311620001f157829003601f168201915b50508451620002299350600092506020860191506200035e565b5080516200023f9060019060208401906200035e565b5050506200025c620002566200029060201b60201c565b62000294565b6200028060405180608001604052806041815260200162002b7260419139620002e6565b6000600d819055600e5562000441565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6006546001600160a01b03163314620003455760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b80516200035a9060109060208401906200035e565b5050565b8280546200036c9062000404565b90600052602060002090601f016020900481019282620003905760008555620003db565b82601f10620003ab57805160ff1916838001178555620003db565b82800160010185558215620003db579182015b82811115620003db578251825591602001919060010190620003be565b50620003e9929150620003ed565b5090565b5b80821115620003e95760008155600101620003ee565b600181811c908216806200041957607f821691505b602082108114156200043b57634e487b7160e01b600052602260045260246000fd5b50919050565b61272180620004516000396000f3fe6080604052600436106102675760003560e01c80635c975abb11610144578063a0712d68116100b6578063d58995991161007a578063d5899599146106de578063d5abeb01146106f3578063da3ef23f14610709578063e985e9c514610729578063f2fde38b14610772578063fab1f9b11461079257600080fd5b8063a0712d6814610656578063a22cb46514610669578063b88d4fde14610689578063c6682862146106a9578063c87b56dd146106be57600080fd5b806375297c201161010857806375297c20146105cf5780637af284d5146105d75780638da4d3c9146105ed5780638da5cb5b1461060357806395d89b41146106215780639b2c36df1461063657600080fd5b80635c975abb1461053b578063618c15491461055a5780636352211e1461057a57806370a082311461059a578063715018a6146105ba57600080fd5b8063349cd113116101dd57806344a0d68a116101a157806344a0d68a146104855780634cec1842146104a557806351830227146104c5578063524773ce146104e557806355f804b3146104fb578063593910401461051b57600080fd5b8063349cd113146103e3578063367c718f146103f857806342842e0e1461041857806342966c6814610438578063438b63001461045857600080fd5b806313faede61161022f57806313faede61461033d57806318160ddd146103615780631bd558cf1461037657806323b872dd146103905780632a3f300c146103b05780632dca3366146103d057600080fd5b806301ffc9a71461026c57806302329a29146102a157806306fdde03146102c3578063081812fc146102e5578063095ea7b31461031d575b600080fd5b34801561027857600080fd5b5061028c61028736600461228d565b6107a7565b60405190151581526020015b60405180910390f35b3480156102ad57600080fd5b506102c16102bc366004612272565b6107f9565b005b3480156102cf57600080fd5b506102d8610846565b604051610298919061249a565b3480156102f157600080fd5b50610305610300366004612310565b6108d8565b6040516001600160a01b039091168152602001610298565b34801561032957600080fd5b506102c16103383660046121cd565b61096d565b34801561034957600080fd5b50610353600b5481565b604051908152602001610298565b34801561036d57600080fd5b50600d54610353565b34801561038257600080fd5b50600f5461028c9060ff1681565b34801561039c57600080fd5b506102c16103ab3660046120eb565b610a83565b3480156103bc57600080fd5b506102c16103cb366004612272565b610ab5565b6102c16103de366004612310565b610afb565b3480156103ef57600080fd5b506102d8610cbd565b34801561040457600080fd5b506102c1610413366004612272565b610d4b565b34801561042457600080fd5b506102c16104333660046120eb565b610d88565b34801561044457600080fd5b506102c1610453366004612310565b610da3565b34801561046457600080fd5b5061047861047336600461209d565b610dd6565b6040516102989190612456565b34801561049157600080fd5b506102c16104a0366004612310565b610eb7565b3480156104b157600080fd5b506102c16104c03660046122c7565b610ee6565b3480156104d157600080fd5b50600f5461028c9062010000900460ff1681565b3480156104f157600080fd5b50610353600e5481565b34801561050757600080fd5b506102c16105163660046122c7565b610f27565b34801561052757600080fd5b506102c16105363660046121cd565b610f64565b34801561054757600080fd5b50600f5461028c90610100900460ff1681565b34801561056657600080fd5b506102c1610575366004612310565b610fbc565b34801561058657600080fd5b50610305610595366004612310565b610feb565b3480156105a657600080fd5b506103536105b536600461209d565b611062565b3480156105c657600080fd5b506102c16110e9565b6102c161111f565b3480156105e357600080fd5b50610353600d5481565b3480156105f957600080fd5b5061035360125481565b34801561060f57600080fd5b506006546001600160a01b0316610305565b34801561062d57600080fd5b506102d86111a1565b34801561064257600080fd5b506102c16106513660046121f7565b6111b0565b6102c1610664366004612310565b61125d565b34801561067557600080fd5b506102c16106843660046121a3565b611404565b34801561069557600080fd5b506102c16106a4366004612127565b6114c9565b3480156106b557600080fd5b506102d8611501565b3480156106ca57600080fd5b506102d86106d9366004612310565b61150e565b3480156106ea57600080fd5b506102d86116a5565b3480156106ff57600080fd5b50610353600c5481565b34801561071557600080fd5b506102c16107243660046122c7565b6116b2565b34801561073557600080fd5b5061028c6107443660046120b8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561077e57600080fd5b506102c161078d36600461209d565b6116ef565b34801561079e57600080fd5b506102d8611787565b60006001600160e01b031982166380ac58cd60e01b14806107d857506001600160e01b03198216635b5e139f60e01b145b806107f357506301ffc9a760e01b6001600160e01b03198316145b92915050565b6006546001600160a01b0316331461082c5760405162461bcd60e51b8152600401610823906124ff565b60405180910390fd5b600f80549115156101000261ff0019909216919091179055565b60606000805461085590612613565b80601f016020809104026020016040519081016040528092919081815260200182805461088190612613565b80156108ce5780601f106108a3576101008083540402835291602001916108ce565b820191906000526020600020905b8154815290600101906020018083116108b157829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166109515760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610823565b506000908152600460205260409020546001600160a01b031690565b600061097882610feb565b9050806001600160a01b0316836001600160a01b031614156109e65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610823565b336001600160a01b0382161480610a025750610a028133610744565b610a745760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610823565b610a7e8383611794565b505050565b610a8e335b82611802565b610aaa5760405162461bcd60e51b815260040161082390612534565b610a7e8383836118f9565b6006546001600160a01b03163314610adf5760405162461bcd60e51b8152600401610823906124ff565b600f8054911515620100000262ff000019909216919091179055565b6000610b06600d5490565b600f5490915060ff16610b5b5760405162461bcd60e51b815260206004820152601860248201527f436c61696d206c697374206973206e6f742061637469766500000000000000006044820152606401610823565b33600090815260116020526040902054821115610bc55760405162461bcd60e51b815260206004820152602260248201527f4578636565646564206d617820617661696c61626c6520746f20707572636861604482015261736560f01b6064820152608401610823565b600c54610bd28383612585565b1115610c205760405162461bcd60e51b815260206004820181905260248201527f507572636861736520776f756c6420657863656564206d617820737570706c796044820152606401610823565b3360009081526011602052604081208054849290610c3f9084906125d0565b90915550600190505b828111610c7457610c6233610c5d8385612585565b611a99565b80610c6c8161264e565b915050610c48565b5033600090815260116020526040902054610ca257600160126000828254610c9c91906125d0565b90915550505b81600d6000828254610cb49190612585565b90915550505050565b60078054610cca90612613565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf690612613565b8015610d435780601f10610d1857610100808354040283529160200191610d43565b820191906000526020600020905b815481529060010190602001808311610d2657829003601f168201915b505050505081565b6006546001600160a01b03163314610d755760405162461bcd60e51b8152600401610823906124ff565b600f805460ff1916911515919091179055565b610a7e838383604051806020016040528060008152506114c9565b610dac33610a88565b610db557600080fd5b610dbe81611ab3565b600e8054906000610dce8361264e565b919050555050565b60606000610de383611062565b905060008167ffffffffffffffff811115610e0057610e006126bf565b604051908082528060200260200182016040528015610e29578160200160208202803683370190505b509050600160005b8381108015610e425750600c548211155b15610ead576000610e5283610feb565b9050866001600160a01b0316816001600160a01b03161415610e9a5782848381518110610e8157610e816126a9565b602090810291909101015281610e968161264e565b9250505b82610ea48161264e565b93505050610e31565b5090949350505050565b6006546001600160a01b03163314610ee15760405162461bcd60e51b8152600401610823906124ff565b600b55565b6006546001600160a01b03163314610f105760405162461bcd60e51b8152600401610823906124ff565b8051610f23906010906020840190611f62565b5050565b6006546001600160a01b03163314610f515760405162461bcd60e51b8152600401610823906124ff565b8051610f23906009906020840190611f62565b6006546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610823906124ff565b6001600160a01b03821660009081526011602052604081208290556012805460019290610cb4908490612585565b6006546001600160a01b03163314610fe65760405162461bcd60e51b8152600401610823906124ff565b601255565b6000818152600260205260408120546001600160a01b0316806107f35760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610823565b60006001600160a01b0382166110cd5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610823565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b031633146111135760405162461bcd60e51b8152600401610823906124ff565b61111d6000611b4e565b565b6006546001600160a01b031633146111495760405162461bcd60e51b8152600401610823906124ff565b604051600090339047908381818185875af1925050503d806000811461118b576040519150601f19603f3d011682016040523d82523d6000602084013e611190565b606091505b505090508061119e57600080fd5b50565b60606001805461085590612613565b6006546001600160a01b031633146111da5760405162461bcd60e51b8152600401610823906124ff565b60005b8281101561123d5781601160008686858181106111fc576111fc6126a9565b9050602002016020810190611211919061209d565b6001600160a01b03168152602081019190915260400160002055806112358161264e565b9150506111dd565b5082829050601260008282546112539190612585565b9091555050505050565b6000611268600d5490565b9050611273600d5490565b600f54909150610100900460ff16156112c35760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b6044820152606401610823565b6000821161130b5760405162461bcd60e51b815260206004820152601560248201527406d696e7420616d6f756e742063616e74206265203605c1b6044820152606401610823565b600c546113188383612585565b111561139b5760405162461bcd60e51b815260206004820152604660248201527f4d696e7420616d6f756e7420697320746f6f2068696768207468657265206d6160448201527f79206e6f7420626520656e6f756768206c65667420746f206d696e742074686160648201526574206d616e7960d01b608482015260a401610823565b6006546001600160a01b031633146113c75781600b546113bb91906125b1565b3410156113c757600080fd5b60015b8281116113f1576113df33610c5d8385612585565b806113e98161264e565b9150506113ca565b5081600d6000828254610cb49190612585565b6001600160a01b03821633141561145d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610823565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6114d33383611802565b6114ef5760405162461bcd60e51b815260040161082390612534565b6114fb84848484611ba0565b50505050565b600a8054610cca90612613565b6000818152600260205260409020546060906001600160a01b031661158d5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610823565b600f5462010000900460ff1661162f57601080546115aa90612613565b80601f01602080910402602001604051908101604052809291908181526020018280546115d690612613565b80156116235780601f106115f857610100808354040283529160200191611623565b820191906000526020600020905b81548152906001019060200180831161160657829003601f168201915b50505050509050919050565b600d5482111561164657601080546115aa90612613565b6000611650611bd3565b90506000815111611670576040518060200160405280600081525061169e565b8061167a84611be2565b600a60405160200161168e93929190612355565b6040516020818303038152906040525b9392505050565b60108054610cca90612613565b6006546001600160a01b031633146116dc5760405162461bcd60e51b8152600401610823906124ff565b8051610f2390600a906020840190611f62565b6006546001600160a01b031633146117195760405162461bcd60e51b8152600401610823906124ff565b6001600160a01b03811661177e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610823565b61119e81611b4e565b60088054610cca90612613565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906117c982610feb565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b031661187b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610823565b600061188683610feb565b9050806001600160a01b0316846001600160a01b031614806118c15750836001600160a01b03166118b6846108d8565b6001600160a01b0316145b806118f157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661190c82610feb565b6001600160a01b0316146119745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610823565b6001600160a01b0382166119d65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610823565b6119e1600082611794565b6001600160a01b0383166000908152600360205260408120805460019290611a0a9084906125d0565b90915550506001600160a01b0382166000908152600360205260408120805460019290611a38908490612585565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610f23828260405180602001604052806000815250611ce0565b6000611abe82610feb565b9050611acb600083611794565b6001600160a01b0381166000908152600360205260408120805460019290611af49084906125d0565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611bab8484846118f9565b611bb784848484611d13565b6114fb5760405162461bcd60e51b8152600401610823906124ad565b60606009805461085590612613565b606081611c065750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611c305780611c1a8161264e565b9150611c299050600a8361259d565b9150611c0a565b60008167ffffffffffffffff811115611c4b57611c4b6126bf565b6040519080825280601f01601f191660200182016040528015611c75576020820181803683370190505b5090505b84156118f157611c8a6001836125d0565b9150611c97600a86612669565b611ca2906030612585565b60f81b818381518110611cb757611cb76126a9565b60200101906001600160f81b031916908160001a905350611cd9600a8661259d565b9450611c79565b611cea8383611e20565b611cf76000848484611d13565b610a7e5760405162461bcd60e51b8152600401610823906124ad565b60006001600160a01b0384163b15611e1557604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611d57903390899088908890600401612419565b602060405180830381600087803b158015611d7157600080fd5b505af1925050508015611da1575060408051601f3d908101601f19168201909252611d9e918101906122aa565b60015b611dfb573d808015611dcf576040519150601f19603f3d011682016040523d82523d6000602084013e611dd4565b606091505b508051611df35760405162461bcd60e51b8152600401610823906124ad565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506118f1565b506001949350505050565b6001600160a01b038216611e765760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610823565b6000818152600260205260409020546001600160a01b031615611edb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610823565b6001600160a01b0382166000908152600360205260408120805460019290611f04908490612585565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611f6e90612613565b90600052602060002090601f016020900481019282611f905760008555611fd6565b82601f10611fa957805160ff1916838001178555611fd6565b82800160010185558215611fd6579182015b82811115611fd6578251825591602001919060010190611fbb565b50611fe2929150611fe6565b5090565b5b80821115611fe25760008155600101611fe7565b600067ffffffffffffffff80841115612016576120166126bf565b604051601f8501601f19908116603f0116810190828211818310171561203e5761203e6126bf565b8160405280935085815286868601111561205757600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b038116811461208857600080fd5b919050565b8035801515811461208857600080fd5b6000602082840312156120af57600080fd5b61169e82612071565b600080604083850312156120cb57600080fd5b6120d483612071565b91506120e260208401612071565b90509250929050565b60008060006060848603121561210057600080fd5b61210984612071565b925061211760208501612071565b9150604084013590509250925092565b6000806000806080858703121561213d57600080fd5b61214685612071565b935061215460208601612071565b925060408501359150606085013567ffffffffffffffff81111561217757600080fd5b8501601f8101871361218857600080fd5b61219787823560208401611ffb565b91505092959194509250565b600080604083850312156121b657600080fd5b6121bf83612071565b91506120e26020840161208d565b600080604083850312156121e057600080fd5b6121e983612071565b946020939093013593505050565b60008060006040848603121561220c57600080fd5b833567ffffffffffffffff8082111561222457600080fd5b818601915086601f83011261223857600080fd5b81358181111561224757600080fd5b8760208260051b850101111561225c57600080fd5b6020928301989097509590910135949350505050565b60006020828403121561228457600080fd5b61169e8261208d565b60006020828403121561229f57600080fd5b813561169e816126d5565b6000602082840312156122bc57600080fd5b815161169e816126d5565b6000602082840312156122d957600080fd5b813567ffffffffffffffff8111156122f057600080fd5b8201601f8101841361230157600080fd5b6118f184823560208401611ffb565b60006020828403121561232257600080fd5b5035919050565b600081518084526123418160208601602086016125e7565b601f01601f19169290920160200192915050565b6000845160206123688285838a016125e7565b85519184019161237b8184848a016125e7565b8554920191600090600181811c908083168061239857607f831692505b8583108114156123b657634e487b7160e01b85526022600452602485fd5b8080156123ca57600181146123db57612408565b60ff19851688528388019550612408565b60008b81526020902060005b858110156124005781548a8201529084019088016123e7565b505083880195505b50939b9a5050505050505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061244c90830184612329565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561248e57835183529284019291840191600101612472565b50909695505050505050565b60208152600061169e6020830184612329565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156125985761259861267d565b500190565b6000826125ac576125ac612693565b500490565b60008160001904831182151516156125cb576125cb61267d565b500290565b6000828210156125e2576125e261267d565b500390565b60005b838110156126025781810151838201526020016125ea565b838111156114fb5750506000910152565b600181811c9082168061262757607f821691505b6020821081141561264857634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156126625761266261267d565b5060010190565b60008261267857612678612693565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461119e57600080fdfea26469706673582212201743dd0a3a9e6e581ae42d3bbabd6015dfe7c7a0d66b9caaf16f9053005b29d864736f6c63430008070033697066733a2f2f516d625062515052487243673153746b6f62587034737852346f3932434171677167596d336e46354d5a356661392f554e445254442e6a736f6e

Deployed Bytecode

0x6080604052600436106102675760003560e01c80635c975abb11610144578063a0712d68116100b6578063d58995991161007a578063d5899599146106de578063d5abeb01146106f3578063da3ef23f14610709578063e985e9c514610729578063f2fde38b14610772578063fab1f9b11461079257600080fd5b8063a0712d6814610656578063a22cb46514610669578063b88d4fde14610689578063c6682862146106a9578063c87b56dd146106be57600080fd5b806375297c201161010857806375297c20146105cf5780637af284d5146105d75780638da4d3c9146105ed5780638da5cb5b1461060357806395d89b41146106215780639b2c36df1461063657600080fd5b80635c975abb1461053b578063618c15491461055a5780636352211e1461057a57806370a082311461059a578063715018a6146105ba57600080fd5b8063349cd113116101dd57806344a0d68a116101a157806344a0d68a146104855780634cec1842146104a557806351830227146104c5578063524773ce146104e557806355f804b3146104fb578063593910401461051b57600080fd5b8063349cd113146103e3578063367c718f146103f857806342842e0e1461041857806342966c6814610438578063438b63001461045857600080fd5b806313faede61161022f57806313faede61461033d57806318160ddd146103615780631bd558cf1461037657806323b872dd146103905780632a3f300c146103b05780632dca3366146103d057600080fd5b806301ffc9a71461026c57806302329a29146102a157806306fdde03146102c3578063081812fc146102e5578063095ea7b31461031d575b600080fd5b34801561027857600080fd5b5061028c61028736600461228d565b6107a7565b60405190151581526020015b60405180910390f35b3480156102ad57600080fd5b506102c16102bc366004612272565b6107f9565b005b3480156102cf57600080fd5b506102d8610846565b604051610298919061249a565b3480156102f157600080fd5b50610305610300366004612310565b6108d8565b6040516001600160a01b039091168152602001610298565b34801561032957600080fd5b506102c16103383660046121cd565b61096d565b34801561034957600080fd5b50610353600b5481565b604051908152602001610298565b34801561036d57600080fd5b50600d54610353565b34801561038257600080fd5b50600f5461028c9060ff1681565b34801561039c57600080fd5b506102c16103ab3660046120eb565b610a83565b3480156103bc57600080fd5b506102c16103cb366004612272565b610ab5565b6102c16103de366004612310565b610afb565b3480156103ef57600080fd5b506102d8610cbd565b34801561040457600080fd5b506102c1610413366004612272565b610d4b565b34801561042457600080fd5b506102c16104333660046120eb565b610d88565b34801561044457600080fd5b506102c1610453366004612310565b610da3565b34801561046457600080fd5b5061047861047336600461209d565b610dd6565b6040516102989190612456565b34801561049157600080fd5b506102c16104a0366004612310565b610eb7565b3480156104b157600080fd5b506102c16104c03660046122c7565b610ee6565b3480156104d157600080fd5b50600f5461028c9062010000900460ff1681565b3480156104f157600080fd5b50610353600e5481565b34801561050757600080fd5b506102c16105163660046122c7565b610f27565b34801561052757600080fd5b506102c16105363660046121cd565b610f64565b34801561054757600080fd5b50600f5461028c90610100900460ff1681565b34801561056657600080fd5b506102c1610575366004612310565b610fbc565b34801561058657600080fd5b50610305610595366004612310565b610feb565b3480156105a657600080fd5b506103536105b536600461209d565b611062565b3480156105c657600080fd5b506102c16110e9565b6102c161111f565b3480156105e357600080fd5b50610353600d5481565b3480156105f957600080fd5b5061035360125481565b34801561060f57600080fd5b506006546001600160a01b0316610305565b34801561062d57600080fd5b506102d86111a1565b34801561064257600080fd5b506102c16106513660046121f7565b6111b0565b6102c1610664366004612310565b61125d565b34801561067557600080fd5b506102c16106843660046121a3565b611404565b34801561069557600080fd5b506102c16106a4366004612127565b6114c9565b3480156106b557600080fd5b506102d8611501565b3480156106ca57600080fd5b506102d86106d9366004612310565b61150e565b3480156106ea57600080fd5b506102d86116a5565b3480156106ff57600080fd5b50610353600c5481565b34801561071557600080fd5b506102c16107243660046122c7565b6116b2565b34801561073557600080fd5b5061028c6107443660046120b8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561077e57600080fd5b506102c161078d36600461209d565b6116ef565b34801561079e57600080fd5b506102d8611787565b60006001600160e01b031982166380ac58cd60e01b14806107d857506001600160e01b03198216635b5e139f60e01b145b806107f357506301ffc9a760e01b6001600160e01b03198316145b92915050565b6006546001600160a01b0316331461082c5760405162461bcd60e51b8152600401610823906124ff565b60405180910390fd5b600f80549115156101000261ff0019909216919091179055565b60606000805461085590612613565b80601f016020809104026020016040519081016040528092919081815260200182805461088190612613565b80156108ce5780601f106108a3576101008083540402835291602001916108ce565b820191906000526020600020905b8154815290600101906020018083116108b157829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166109515760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610823565b506000908152600460205260409020546001600160a01b031690565b600061097882610feb565b9050806001600160a01b0316836001600160a01b031614156109e65760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610823565b336001600160a01b0382161480610a025750610a028133610744565b610a745760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610823565b610a7e8383611794565b505050565b610a8e335b82611802565b610aaa5760405162461bcd60e51b815260040161082390612534565b610a7e8383836118f9565b6006546001600160a01b03163314610adf5760405162461bcd60e51b8152600401610823906124ff565b600f8054911515620100000262ff000019909216919091179055565b6000610b06600d5490565b600f5490915060ff16610b5b5760405162461bcd60e51b815260206004820152601860248201527f436c61696d206c697374206973206e6f742061637469766500000000000000006044820152606401610823565b33600090815260116020526040902054821115610bc55760405162461bcd60e51b815260206004820152602260248201527f4578636565646564206d617820617661696c61626c6520746f20707572636861604482015261736560f01b6064820152608401610823565b600c54610bd28383612585565b1115610c205760405162461bcd60e51b815260206004820181905260248201527f507572636861736520776f756c6420657863656564206d617820737570706c796044820152606401610823565b3360009081526011602052604081208054849290610c3f9084906125d0565b90915550600190505b828111610c7457610c6233610c5d8385612585565b611a99565b80610c6c8161264e565b915050610c48565b5033600090815260116020526040902054610ca257600160126000828254610c9c91906125d0565b90915550505b81600d6000828254610cb49190612585565b90915550505050565b60078054610cca90612613565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf690612613565b8015610d435780601f10610d1857610100808354040283529160200191610d43565b820191906000526020600020905b815481529060010190602001808311610d2657829003601f168201915b505050505081565b6006546001600160a01b03163314610d755760405162461bcd60e51b8152600401610823906124ff565b600f805460ff1916911515919091179055565b610a7e838383604051806020016040528060008152506114c9565b610dac33610a88565b610db557600080fd5b610dbe81611ab3565b600e8054906000610dce8361264e565b919050555050565b60606000610de383611062565b905060008167ffffffffffffffff811115610e0057610e006126bf565b604051908082528060200260200182016040528015610e29578160200160208202803683370190505b509050600160005b8381108015610e425750600c548211155b15610ead576000610e5283610feb565b9050866001600160a01b0316816001600160a01b03161415610e9a5782848381518110610e8157610e816126a9565b602090810291909101015281610e968161264e565b9250505b82610ea48161264e565b93505050610e31565b5090949350505050565b6006546001600160a01b03163314610ee15760405162461bcd60e51b8152600401610823906124ff565b600b55565b6006546001600160a01b03163314610f105760405162461bcd60e51b8152600401610823906124ff565b8051610f23906010906020840190611f62565b5050565b6006546001600160a01b03163314610f515760405162461bcd60e51b8152600401610823906124ff565b8051610f23906009906020840190611f62565b6006546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610823906124ff565b6001600160a01b03821660009081526011602052604081208290556012805460019290610cb4908490612585565b6006546001600160a01b03163314610fe65760405162461bcd60e51b8152600401610823906124ff565b601255565b6000818152600260205260408120546001600160a01b0316806107f35760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610823565b60006001600160a01b0382166110cd5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610823565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b031633146111135760405162461bcd60e51b8152600401610823906124ff565b61111d6000611b4e565b565b6006546001600160a01b031633146111495760405162461bcd60e51b8152600401610823906124ff565b604051600090339047908381818185875af1925050503d806000811461118b576040519150601f19603f3d011682016040523d82523d6000602084013e611190565b606091505b505090508061119e57600080fd5b50565b60606001805461085590612613565b6006546001600160a01b031633146111da5760405162461bcd60e51b8152600401610823906124ff565b60005b8281101561123d5781601160008686858181106111fc576111fc6126a9565b9050602002016020810190611211919061209d565b6001600160a01b03168152602081019190915260400160002055806112358161264e565b9150506111dd565b5082829050601260008282546112539190612585565b9091555050505050565b6000611268600d5490565b9050611273600d5490565b600f54909150610100900460ff16156112c35760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b6044820152606401610823565b6000821161130b5760405162461bcd60e51b815260206004820152601560248201527406d696e7420616d6f756e742063616e74206265203605c1b6044820152606401610823565b600c546113188383612585565b111561139b5760405162461bcd60e51b815260206004820152604660248201527f4d696e7420616d6f756e7420697320746f6f2068696768207468657265206d6160448201527f79206e6f7420626520656e6f756768206c65667420746f206d696e742074686160648201526574206d616e7960d01b608482015260a401610823565b6006546001600160a01b031633146113c75781600b546113bb91906125b1565b3410156113c757600080fd5b60015b8281116113f1576113df33610c5d8385612585565b806113e98161264e565b9150506113ca565b5081600d6000828254610cb49190612585565b6001600160a01b03821633141561145d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610823565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6114d33383611802565b6114ef5760405162461bcd60e51b815260040161082390612534565b6114fb84848484611ba0565b50505050565b600a8054610cca90612613565b6000818152600260205260409020546060906001600160a01b031661158d5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610823565b600f5462010000900460ff1661162f57601080546115aa90612613565b80601f01602080910402602001604051908101604052809291908181526020018280546115d690612613565b80156116235780601f106115f857610100808354040283529160200191611623565b820191906000526020600020905b81548152906001019060200180831161160657829003601f168201915b50505050509050919050565b600d5482111561164657601080546115aa90612613565b6000611650611bd3565b90506000815111611670576040518060200160405280600081525061169e565b8061167a84611be2565b600a60405160200161168e93929190612355565b6040516020818303038152906040525b9392505050565b60108054610cca90612613565b6006546001600160a01b031633146116dc5760405162461bcd60e51b8152600401610823906124ff565b8051610f2390600a906020840190611f62565b6006546001600160a01b031633146117195760405162461bcd60e51b8152600401610823906124ff565b6001600160a01b03811661177e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610823565b61119e81611b4e565b60088054610cca90612613565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906117c982610feb565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b031661187b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610823565b600061188683610feb565b9050806001600160a01b0316846001600160a01b031614806118c15750836001600160a01b03166118b6846108d8565b6001600160a01b0316145b806118f157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661190c82610feb565b6001600160a01b0316146119745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610823565b6001600160a01b0382166119d65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610823565b6119e1600082611794565b6001600160a01b0383166000908152600360205260408120805460019290611a0a9084906125d0565b90915550506001600160a01b0382166000908152600360205260408120805460019290611a38908490612585565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610f23828260405180602001604052806000815250611ce0565b6000611abe82610feb565b9050611acb600083611794565b6001600160a01b0381166000908152600360205260408120805460019290611af49084906125d0565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611bab8484846118f9565b611bb784848484611d13565b6114fb5760405162461bcd60e51b8152600401610823906124ad565b60606009805461085590612613565b606081611c065750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611c305780611c1a8161264e565b9150611c299050600a8361259d565b9150611c0a565b60008167ffffffffffffffff811115611c4b57611c4b6126bf565b6040519080825280601f01601f191660200182016040528015611c75576020820181803683370190505b5090505b84156118f157611c8a6001836125d0565b9150611c97600a86612669565b611ca2906030612585565b60f81b818381518110611cb757611cb76126a9565b60200101906001600160f81b031916908160001a905350611cd9600a8661259d565b9450611c79565b611cea8383611e20565b611cf76000848484611d13565b610a7e5760405162461bcd60e51b8152600401610823906124ad565b60006001600160a01b0384163b15611e1557604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611d57903390899088908890600401612419565b602060405180830381600087803b158015611d7157600080fd5b505af1925050508015611da1575060408051601f3d908101601f19168201909252611d9e918101906122aa565b60015b611dfb573d808015611dcf576040519150601f19603f3d011682016040523d82523d6000602084013e611dd4565b606091505b508051611df35760405162461bcd60e51b8152600401610823906124ad565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506118f1565b506001949350505050565b6001600160a01b038216611e765760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610823565b6000818152600260205260409020546001600160a01b031615611edb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610823565b6001600160a01b0382166000908152600360205260408120805460019290611f04908490612585565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611f6e90612613565b90600052602060002090601f016020900481019282611f905760008555611fd6565b82601f10611fa957805160ff1916838001178555611fd6565b82800160010185558215611fd6579182015b82811115611fd6578251825591602001919060010190611fbb565b50611fe2929150611fe6565b5090565b5b80821115611fe25760008155600101611fe7565b600067ffffffffffffffff80841115612016576120166126bf565b604051601f8501601f19908116603f0116810190828211818310171561203e5761203e6126bf565b8160405280935085815286868601111561205757600080fd5b858560208301376000602087830101525050509392505050565b80356001600160a01b038116811461208857600080fd5b919050565b8035801515811461208857600080fd5b6000602082840312156120af57600080fd5b61169e82612071565b600080604083850312156120cb57600080fd5b6120d483612071565b91506120e260208401612071565b90509250929050565b60008060006060848603121561210057600080fd5b61210984612071565b925061211760208501612071565b9150604084013590509250925092565b6000806000806080858703121561213d57600080fd5b61214685612071565b935061215460208601612071565b925060408501359150606085013567ffffffffffffffff81111561217757600080fd5b8501601f8101871361218857600080fd5b61219787823560208401611ffb565b91505092959194509250565b600080604083850312156121b657600080fd5b6121bf83612071565b91506120e26020840161208d565b600080604083850312156121e057600080fd5b6121e983612071565b946020939093013593505050565b60008060006040848603121561220c57600080fd5b833567ffffffffffffffff8082111561222457600080fd5b818601915086601f83011261223857600080fd5b81358181111561224757600080fd5b8760208260051b850101111561225c57600080fd5b6020928301989097509590910135949350505050565b60006020828403121561228457600080fd5b61169e8261208d565b60006020828403121561229f57600080fd5b813561169e816126d5565b6000602082840312156122bc57600080fd5b815161169e816126d5565b6000602082840312156122d957600080fd5b813567ffffffffffffffff8111156122f057600080fd5b8201601f8101841361230157600080fd5b6118f184823560208401611ffb565b60006020828403121561232257600080fd5b5035919050565b600081518084526123418160208601602086016125e7565b601f01601f19169290920160200192915050565b6000845160206123688285838a016125e7565b85519184019161237b8184848a016125e7565b8554920191600090600181811c908083168061239857607f831692505b8583108114156123b657634e487b7160e01b85526022600452602485fd5b8080156123ca57600181146123db57612408565b60ff19851688528388019550612408565b60008b81526020902060005b858110156124005781548a8201529084019088016123e7565b505083880195505b50939b9a5050505050505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061244c90830184612329565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561248e57835183529284019291840191600101612472565b50909695505050505050565b60208152600061169e6020830184612329565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156125985761259861267d565b500190565b6000826125ac576125ac612693565b500490565b60008160001904831182151516156125cb576125cb61267d565b500290565b6000828210156125e2576125e261267d565b500390565b60005b838110156126025781810151838201526020016125ea565b838111156114fb5750506000910152565b600181811c9082168061262757607f821691505b6020821081141561264857634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156126625761266261267d565b5060010190565b60008261267857612678612693565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461119e57600080fdfea26469706673582212201743dd0a3a9e6e581ae42d3bbabd6015dfe7c7a0d66b9caaf16f9053005b29d864736f6c63430008070033

Deployed Bytecode Sourcemap

19914:5806:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9307:305;;;;;;;;;;-1:-1:-1;9307:305:0;;;;;:::i;:::-;;:::i;:::-;;;8501:14:1;;8494:22;8476:41;;8464:2;8449:18;9307:305:0;;;;;;;;24381:73;;;;;;;;;;-1:-1:-1;24381:73:0;;;;;:::i;:::-;;:::i;:::-;;10092:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11190:221::-;;;;;;;;;;-1:-1:-1;11190:221:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;7162:32:1;;;7144:51;;7132:2;7117:18;11190:221:0;6998:203:1;10766:411:0;;;;;;;;;;-1:-1:-1;10766:411:0;;;;;:::i;:::-;;:::i;20151:31::-;;;;;;;;;;;;;;;;;;;17573:25:1;;;17561:2;17546:18;20151:31:0;17427:177:1;22385:85:0;;;;;;;;;;-1:-1:-1;22452:12:0;;22385:85;;20326:33;;;;;;;;;;-1:-1:-1;20326:33:0;;;;;;;;11903:296;;;;;;;;;;-1:-1:-1;11903:296:0;;;;;:::i;:::-;;:::i;23766:87::-;;;;;;;;;;-1:-1:-1;23766:87:0;;;;;:::i;:::-;;:::i;21594:756::-;;;;;;:::i;:::-;;:::i;19987:39::-;;;;;;;;;;;;;:::i;24774:123::-;;;;;;;;;;-1:-1:-1;24774:123:0;;;;;:::i;:::-;;:::i;12210:185::-;;;;;;;;;;-1:-1:-1;12210:185:0;;;;;:::i;:::-;;:::i;25345:142::-;;;;;;;;;;-1:-1:-1;25345:142:0;;;;;:::i;:::-;;:::i;22538:635::-;;;;;;;;;;-1:-1:-1;22538:635:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;23878:82::-;;;;;;;;;;-1:-1:-1;23878:82:0;;;;;:::i;:::-;;:::i;23985:92::-;;;;;;;;;;-1:-1:-1;23985:92:0;;;;;:::i;:::-;;:::i;20418:28::-;;;;;;;;;;-1:-1:-1;20418:28:0;;;;;;;;;;;20273:24;;;;;;;;;;;;;;;;24103:98;;;;;;;;;;-1:-1:-1;24103:98:0;;;;;:::i;:::-;;:::i;24530:192::-;;;;;;;;;;-1:-1:-1;24530:192:0;;;;;:::i;:::-;;:::i;20388:25::-;;;;;;;;;;-1:-1:-1;20388:25:0;;;;;;;;;;;24942:100;;;;;;;;;;-1:-1:-1;24942:100:0;;;;;:::i;:::-;;:::i;9840:239::-;;;;;;;;;;-1:-1:-1;9840:239:0;;;;;:::i;:::-;;:::i;9622:208::-;;;;;;;;;;-1:-1:-1;9622:208:0;;;;;:::i;:::-;;:::i;17085:94::-;;;;;;;;;;;;;:::i;25549:168::-;;;:::i;20241:27::-;;;;;;;;;;;;;;;;20560:25;;;;;;;;;;;;;;;;16855:87;;;;;;;;;;-1:-1:-1;16928:6:0;;-1:-1:-1;;;;;16928:6:0;16855:87;;10203:104;;;;;;;;;;;;;:::i;25078:255::-;;;;;;;;;;-1:-1:-1;25078:255:0;;;;;:::i;:::-;;:::i;20940:617::-;;;;;;:::i;:::-;;:::i;11424:295::-;;;;;;;;;;-1:-1:-1;11424:295:0;;;;;:::i;:::-;;:::i;12407:328::-;;;;;;;;;;-1:-1:-1;12407:328:0;;;;;:::i;:::-;;:::i;20109:37::-;;;;;;;;;;;;;:::i;23177:532::-;;;;;;;;;;-1:-1:-1;23177:532:0;;;;;:::i;:::-;;:::i;20451:21::-;;;;;;;;;;;;;:::i;20187:30::-;;;;;;;;;;;;;;;;24230:122;;;;;;;;;;-1:-1:-1;24230:122:0;;;;;:::i;:::-;;:::i;11731:164::-;;;;;;;;;;-1:-1:-1;11731:164:0;;;;;:::i;:::-;-1:-1:-1;;;;;11852:25:0;;;11828:4;11852:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;11731:164;17190:192;;;;;;;;;;-1:-1:-1;17190:192:0;;;;;:::i;:::-;;:::i;20031:40::-;;;;;;;;;;;;;:::i;9307:305::-;9409:4;-1:-1:-1;;;;;;9446:40:0;;-1:-1:-1;;;9446:40:0;;:105;;-1:-1:-1;;;;;;;9503:48:0;;-1:-1:-1;;;9503:48:0;9446:105;:158;;;-1:-1:-1;;;;;;;;;;1901:40:0;;;9568:36;9426:178;9307:305;-1:-1:-1;;9307:305:0:o;24381:73::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;;;;;;;;;24433:6:::1;:15:::0;;;::::1;;;;-1:-1:-1::0;;24433:15:0;;::::1;::::0;;;::::1;::::0;;24381:73::o;10092:100::-;10146:13;10179:5;10172:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10092:100;:::o;11190:221::-;11266:7;13162:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13162:16:0;11286:73;;;;-1:-1:-1;;;11286:73:0;;14109:2:1;11286:73:0;;;14091:21:1;14148:2;14128:18;;;14121:30;14187:34;14167:18;;;14160:62;-1:-1:-1;;;14238:18:1;;;14231:42;14290:19;;11286:73:0;13907:408:1;11286:73:0;-1:-1:-1;11379:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;11379:24:0;;11190:221::o;10766:411::-;10847:13;10863:23;10878:7;10863:14;:23::i;:::-;10847:39;;10911:5;-1:-1:-1;;;;;10905:11:0;:2;-1:-1:-1;;;;;10905:11:0;;;10897:57;;;;-1:-1:-1;;;10897:57:0;;15709:2:1;10897:57:0;;;15691:21:1;15748:2;15728:18;;;15721:30;15787:34;15767:18;;;15760:62;-1:-1:-1;;;15838:18:1;;;15831:31;15879:19;;10897:57:0;15507:397:1;10897:57:0;8446:10;-1:-1:-1;;;;;10989:21:0;;;;:62;;-1:-1:-1;11014:37:0;11031:5;8446:10;11731:164;:::i;11014:37::-;10967:168;;;;-1:-1:-1;;;10967:168:0;;11662:2:1;10967:168:0;;;11644:21:1;11701:2;11681:18;;;11674:30;11740:34;11720:18;;;11713:62;11811:26;11791:18;;;11784:54;11855:19;;10967:168:0;11460:420:1;10967:168:0;11148:21;11157:2;11161:7;11148:8;:21::i;:::-;10836:341;10766:411;;:::o;11903:296::-;12055:41;8446:10;12074:12;12088:7;12055:18;:41::i;:::-;12047:103;;;;-1:-1:-1;;;12047:103:0;;;;;;;:::i;:::-;12163:28;12173:4;12179:2;12183:7;12163:9;:28::i;23766:87::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;23828:8:::1;:19:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;23828:19:0;;::::1;::::0;;;::::1;::::0;;23766:87::o;21594:756::-;21665:21;21689:13;22452:12;;;22385:85;21689:13;21719:15;;21665:37;;-1:-1:-1;21719:15:0;;21711:52;;;;-1:-1:-1;;;21711:52:0;;8954:2:1;21711:52:0;;;8936:21:1;8993:2;8973:18;;;8966:30;9032:26;9012:18;;;9005:54;9076:18;;21711:52:0;8752:348:1;21711:52:0;21807:10;21796:22;;;;:10;:22;;;;;;21778:40;;;21770:87;;;;-1:-1:-1;;;21770:87:0;;16461:2:1;21770:87:0;;;16443:21:1;16500:2;16480:18;;;16473:30;16539:34;16519:18;;;16512:62;-1:-1:-1;;;16590:18:1;;;16583:32;16632:19;;21770:87:0;16259:398:1;21770:87:0;21906:9;;21872:30;21888:14;21872:13;:30;:::i;:::-;:43;;21864:88;;;;-1:-1:-1;;;21864:88:0;;13387:2:1;21864:88:0;;;13369:21:1;;;13406:18;;;13399:30;13465:34;13445:18;;;13438:62;13517:18;;21864:88:0;13185:356:1;21864:88:0;22097:10;22086:22;;;;:10;:22;;;;;:40;;22112:14;;22086:22;:40;;22112:14;;22086:40;:::i;:::-;;;;-1:-1:-1;22150:1:0;;-1:-1:-1;22133:107:0;22159:14;22153:1;:21;22133:107;;22192:40;22202:10;22214:17;22230:1;22214:13;:17;:::i;:::-;22192:9;:40::i;:::-;22176:3;;;;:::i;:::-;;;;22133:107;;;-1:-1:-1;22260:10:0;22249:22;;;;:10;:22;;;;;;22246:65;;22300:1;22288:10;;:13;;;;;;;:::i;:::-;;;;-1:-1:-1;;22246:65:0;22331:14;22317:12;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;21594:756:0:o;19987:39::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24774:123::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;24855:15:::1;:34:::0;;-1:-1:-1;;24855:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24774:123::o;12210:185::-;12348:39;12365:4;12371:2;12375:7;12348:39;;;;;;;;;;;;:16;:39::i;25345:142::-;25398:42;8446:10;25417:12;8366:98;25398:42;25390:51;;;;;;25448:15;25454:8;25448:5;:15::i;:::-;25470:9;:11;;;:9;:11;;;:::i;:::-;;;;;;25345:142;:::o;22538:635::-;22613:16;22641:23;22667:17;22677:6;22667:9;:17::i;:::-;22641:43;;22691:30;22738:15;22724:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22724:30:0;-1:-1:-1;22691:63:0;-1:-1:-1;22786:1:0;22761:22;22830:309;22855:15;22837;:33;:64;;;;;22892:9;;22874:14;:27;;22837:64;22830:309;;;22912:25;22940:23;22948:14;22940:7;:23::i;:::-;22912:51;;22999:6;-1:-1:-1;;;;;22978:27:0;:17;-1:-1:-1;;;;;22978:27:0;;22974:131;;;23051:14;23018:13;23032:15;23018:30;;;;;;;;:::i;:::-;;;;;;;;;;:47;23078:17;;;;:::i;:::-;;;;22974:131;23115:16;;;;:::i;:::-;;;;22903:236;22830:309;;;-1:-1:-1;23154:13:0;;22538:635;-1:-1:-1;;;;22538:635:0:o;23878:82::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;23939:4:::1;:15:::0;23878:82::o;23985:92::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;24053:18;;::::1;::::0;:7:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;:::-;;23985:92:::0;:::o;24103:98::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;24174:21;;::::1;::::0;:7:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;24530:192::-:0;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24643:24:0;::::1;;::::0;;;:10:::1;:24;::::0;;;;:43;;;24701:10:::1;:13:::0;;24713:1:::1;::::0;24643:24;24701:13:::1;::::0;24713:1;;24701:13:::1;:::i;24942:100::-:0;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;25014:10:::1;:20:::0;24942:100::o;9840:239::-;9912:7;9948:16;;;:7;:16;;;;;;-1:-1:-1;;;;;9948:16:0;9983:19;9975:73;;;;-1:-1:-1;;;9975:73:0;;12498:2:1;9975:73:0;;;12480:21:1;12537:2;12517:18;;;12510:30;12576:34;12556:18;;;12549:62;-1:-1:-1;;;12627:18:1;;;12620:39;12676:19;;9975:73:0;12296:405:1;9622:208:0;9694:7;-1:-1:-1;;;;;9722:19:0;;9714:74;;;;-1:-1:-1;;;9714:74:0;;12087:2:1;9714:74:0;;;12069:21:1;12126:2;12106:18;;;12099:30;12165:34;12145:18;;;12138:62;-1:-1:-1;;;12216:18:1;;;12209:40;12266:19;;9714:74:0;11885:406:1;9714:74:0;-1:-1:-1;;;;;;9806:16:0;;;;;:9;:16;;;;;;;9622:208::o;17085:94::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;17150:21:::1;17168:1;17150:9;:21::i;:::-;17085:94::o:0;25549:168::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;25630:58:::1;::::0;25612:12:::1;::::0;25638:10:::1;::::0;25662:21:::1;::::0;25612:12;25630:58;25612:12;25630:58;25662:21;25638:10;25630:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25611:77;;;25703:7;25695:16;;;::::0;::::1;;25601:116;25549:168::o:0;10203:104::-;10259:13;10292:7;10285:14;;;;;:::i;25078:255::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;25191:9:::1;25186:109;25206:20:::0;;::::1;25186:109;;;25271:16;25244:10;:24;25255:9;;25265:1;25255:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;25244:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;25244:24:0;:43;25228:3;::::1;::::0;::::1;:::i;:::-;;;;25186:109;;;;25313:9;;:16;;25301:10;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;25078:255:0:o;20940:617::-;20999:18;21020:13;22452:12;;;22385:85;21020:13;20999:34;;21079:13;22452:12;;;22385:85;21079:13;21108:6;;21068:24;;-1:-1:-1;21108:6:0;;;;;21107:7;21099:38;;;;-1:-1:-1;;;21099:38:0;;17282:2:1;21099:38:0;;;17264:21:1;17321:2;17301:18;;;17294:30;-1:-1:-1;;;17340:18:1;;;17333:48;17398:18;;21099:38:0;17080:342:1;21099:38:0;21166:1;21152:11;:15;21144:49;;;;-1:-1:-1;;;21144:49:0;;16111:2:1;21144:49:0;;;16093:21:1;16150:2;16130:18;;;16123:30;-1:-1:-1;;;16169:18:1;;;16162:51;16230:18;;21144:49:0;15909:345:1;21144:49:0;21236:9;;21208:24;21221:11;21208:10;:24;:::i;:::-;:37;;21200:120;;;;-1:-1:-1;;;21200:120:0;;12908:2:1;21200:120:0;;;12890:21:1;12947:2;12927:18;;;12920:30;12986:34;12966:18;;;12959:62;13057:34;13037:18;;;13030:62;-1:-1:-1;;;13108:19:1;;;13101:37;13155:19;;21200:120:0;12706:474:1;21200:120:0;16928:6;;-1:-1:-1;;;;;16928:6:0;21333:10;:21;21329:84;;21393:11;21386:4;;:18;;;;:::i;:::-;21373:9;:31;;21365:40;;;;;;21436:1;21419:97;21444:11;21439:1;:16;21419:97;;21471:37;21481:10;21493:14;21506:1;21493:10;:14;:::i;21471:37::-;21457:3;;;;:::i;:::-;;;;21419:97;;;;21536:11;21522:12;;:25;;;;;;;:::i;11424:295::-;-1:-1:-1;;;;;11527:24:0;;8446:10;11527:24;;11519:62;;;;-1:-1:-1;;;11519:62:0;;10895:2:1;11519:62:0;;;10877:21:1;10934:2;10914:18;;;10907:30;10973:27;10953:18;;;10946:55;11018:18;;11519:62:0;10693:349:1;11519:62:0;8446:10;11594:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;11594:42:0;;;;;;;;;;;;:53;;-1:-1:-1;;11594:53:0;;;;;;;;;;11663:48;;8476:41:1;;;11594:42:0;;8446:10;11663:48;;8449:18:1;11663:48:0;;;;;;;11424:295;;:::o;12407:328::-;12582:41;8446:10;12615:7;12582:18;:41::i;:::-;12574:103;;;;-1:-1:-1;;;12574:103:0;;;;;;;:::i;:::-;12688:39;12702:4;12708:2;12712:7;12721:5;12688:13;:39::i;:::-;12407:328;;;;:::o;20109:37::-;;;;;;;:::i;23177:532::-;13138:4;13162:16;;;:7;:16;;;;;;23275:13;;-1:-1:-1;;;;;13162:16:0;23300:75;;;;-1:-1:-1;;;23300:75:0;;15293:2:1;23300:75:0;;;15275:21:1;15332:2;15312:18;;;15305:30;15371:34;15351:18;;;15344:62;-1:-1:-1;;;15422:18:1;;;15415:45;15477:19;;23300:75:0;15091:411:1;23300:75:0;23391:8;;;;;;;23388:55;;23428:7;23421:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23177:532;;;:::o;23388:55::-;23460:12;;23452:7;:20;23449:58;;;23492:7;23485:14;;;;;:::i;23449:58::-;23515:28;23546:10;:8;:10::i;:::-;23515:41;;23601:1;23576:14;23570:28;:32;:133;;;;;;;;;;;;;;;;;23638:14;23654:18;:7;:16;:18::i;:::-;23674:13;23621:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23570:133;23563:140;23177:532;-1:-1:-1;;;23177:532:0:o;20451:21::-;;;;;;;:::i;24230:122::-;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;24313:33;;::::1;::::0;:13:::1;::::0;:33:::1;::::0;::::1;::::0;::::1;:::i;17190:192::-:0;16928:6;;-1:-1:-1;;;;;16928:6:0;8446:10;16995:23;16987:68;;;;-1:-1:-1;;;16987:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17279:22:0;::::1;17271:73;;;::::0;-1:-1:-1;;;17271:73:0;;9726:2:1;17271:73:0::1;::::0;::::1;9708:21:1::0;9765:2;9745:18;;;9738:30;9804:34;9784:18;;;9777:62;-1:-1:-1;;;9855:18:1;;;9848:36;9901:19;;17271:73:0::1;9524:402:1::0;17271:73:0::1;17355:19;17365:8;17355:9;:19::i;20031:40::-:0;;;;;;;:::i;15313:174::-;15388:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15388:29:0;-1:-1:-1;;;;;15388:29:0;;;;;;;;:24;;15442:23;15388:24;15442:14;:23::i;:::-;-1:-1:-1;;;;;15433:46:0;;;;;;;;;;;15313:174;;:::o;13212:348::-;13305:4;13162:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13162:16:0;13322:73;;;;-1:-1:-1;;;13322:73:0;;11249:2:1;13322:73:0;;;11231:21:1;11288:2;11268:18;;;11261:30;11327:34;11307:18;;;11300:62;-1:-1:-1;;;11378:18:1;;;11371:42;11430:19;;13322:73:0;11047:408:1;13322:73:0;13406:13;13422:23;13437:7;13422:14;:23::i;:::-;13406:39;;13475:5;-1:-1:-1;;;;;13464:16:0;:7;-1:-1:-1;;;;;13464:16:0;;:51;;;;13508:7;-1:-1:-1;;;;;13484:31:0;:20;13496:7;13484:11;:20::i;:::-;-1:-1:-1;;;;;13484:31:0;;13464:51;:87;;;-1:-1:-1;;;;;;11852:25:0;;;11828:4;11852:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;13519:32;13456:96;13212:348;-1:-1:-1;;;;13212:348:0:o;14769:532::-;14928:4;-1:-1:-1;;;;;14901:31:0;:23;14916:7;14901:14;:23::i;:::-;-1:-1:-1;;;;;14901:31:0;;14893:85;;;;-1:-1:-1;;;14893:85:0;;14883:2:1;14893:85:0;;;14865:21:1;14922:2;14902:18;;;14895:30;14961:34;14941:18;;;14934:62;-1:-1:-1;;;15012:18:1;;;15005:39;15061:19;;14893:85:0;14681:405:1;14893:85:0;-1:-1:-1;;;;;14997:16:0;;14989:65;;;;-1:-1:-1;;;14989:65:0;;10490:2:1;14989:65:0;;;10472:21:1;10529:2;10509:18;;;10502:30;10568:34;10548:18;;;10541:62;-1:-1:-1;;;10619:18:1;;;10612:34;10663:19;;14989:65:0;10288:400:1;14989:65:0;15125:29;15142:1;15146:7;15125:8;:29::i;:::-;-1:-1:-1;;;;;15167:15:0;;;;;;:9;:15;;;;;:20;;15186:1;;15167:15;:20;;15186:1;;15167:20;:::i;:::-;;;;-1:-1:-1;;;;;;;15198:13:0;;;;;;:9;:13;;;;;:18;;15215:1;;15198:13;:18;;15215:1;;15198:18;:::i;:::-;;;;-1:-1:-1;;15227:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;15227:21:0;-1:-1:-1;;;;;15227:21:0;;;;;;;;;15266:27;;15227:16;;15266:27;;;;;;;14769:532;;;:::o;13573:110::-;13649:26;13659:2;13663:7;13649:26;;;;;;;;;;;;:9;:26::i;14422:334::-;14482:13;14498:23;14513:7;14498:14;:23::i;:::-;14482:39;;14597:29;14614:1;14618:7;14597:8;:29::i;:::-;-1:-1:-1;;;;;14639:16:0;;;;;;:9;:16;;;;;:21;;14659:1;;14639:16;:21;;14659:1;;14639:21;:::i;:::-;;;;-1:-1:-1;;14678:16:0;;;;:7;:16;;;;;;14671:23;;-1:-1:-1;;;;;;14671:23:0;;;14712:36;14686:7;;14678:16;-1:-1:-1;;;;;14712:36:0;;;;;14678:16;;14712:36;14471:285;14422:334;:::o;17390:173::-;17465:6;;;-1:-1:-1;;;;;17482:17:0;;;-1:-1:-1;;;;;;17482:17:0;;;;;;;17515:40;;17465:6;;;17482:17;17465:6;;17515:40;;17446:16;;17515:40;17435:128;17390:173;:::o;12748:315::-;12905:28;12915:4;12921:2;12925:7;12905:9;:28::i;:::-;12952:48;12975:4;12981:2;12985:7;12994:5;12952:22;:48::i;:::-;12944:111;;;;-1:-1:-1;;;12944:111:0;;;;;;;:::i;20792:102::-;20852:13;20881:7;20874:14;;;;;:::i;2096:723::-;2152:13;2373:10;2369:53;;-1:-1:-1;;2400:10:0;;;;;;;;;;;;-1:-1:-1;;;2400:10:0;;;;;2096:723::o;2369:53::-;2447:5;2432:12;2488:78;2495:9;;2488:78;;2521:8;;;;:::i;:::-;;-1:-1:-1;2544:10:0;;-1:-1:-1;2552:2:0;2544:10;;:::i;:::-;;;2488:78;;;2576:19;2608:6;2598:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2598:17:0;;2576:39;;2626:154;2633:10;;2626:154;;2660:11;2670:1;2660:11;;:::i;:::-;;-1:-1:-1;2729:10:0;2737:2;2729:5;:10;:::i;:::-;2716:24;;:2;:24;:::i;:::-;2703:39;;2686:6;2693;2686:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;2686:56:0;;;;;;;;-1:-1:-1;2757:11:0;2766:2;2757:11;;:::i;:::-;;;2626:154;;13695:321;13825:18;13831:2;13835:7;13825:5;:18::i;:::-;13876:54;13907:1;13911:2;13915:7;13924:5;13876:22;:54::i;:::-;13854:154;;;;-1:-1:-1;;;13854:154:0;;;;;;;:::i;15501:799::-;15656:4;-1:-1:-1;;;;;15677:13:0;;3950:20;3998:8;15673:620;;15713:72;;-1:-1:-1;;;15713:72:0;;-1:-1:-1;;;;;15713:36:0;;;;;:72;;8446:10;;15764:4;;15770:7;;15779:5;;15713:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15713:72:0;;;;;;;;-1:-1:-1;;15713:72:0;;;;;;;;;;;;:::i;:::-;;;15709:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15955:13:0;;15951:272;;15998:60;;-1:-1:-1;;;15998:60:0;;;;;;;:::i;15951:272::-;16173:6;16167:13;16158:6;16154:2;16150:15;16143:38;15709:529;-1:-1:-1;;;;;;15836:51:0;-1:-1:-1;;;15836:51:0;;-1:-1:-1;15829:58:0;;15673:620;-1:-1:-1;16277:4:0;15501:799;;;;;;:::o;14027:382::-;-1:-1:-1;;;;;14107:16:0;;14099:61;;;;-1:-1:-1;;;14099:61:0;;13748:2:1;14099:61:0;;;13730:21:1;;;13767:18;;;13760:30;13826:34;13806:18;;;13799:62;13878:18;;14099:61:0;13546:356:1;14099:61:0;13138:4;13162:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13162:16:0;:30;14171:58;;;;-1:-1:-1;;;14171:58:0;;10133:2:1;14171:58:0;;;10115:21:1;10172:2;10152:18;;;10145:30;10211;10191:18;;;10184:58;10259:18;;14171:58:0;9931:352:1;14171:58:0;-1:-1:-1;;;;;14300:13:0;;;;;;:9;:13;;;;;:18;;14317:1;;14300:13;:18;;14317:1;;14300:18;:::i;:::-;;;;-1:-1:-1;;14329:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;14329:21:0;-1:-1:-1;;;;;14329:21:0;;;;;;;;14368:33;;14329:16;;;14368:33;;14329:16;;14368:33;14027:382;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:631:1;78:5;108:18;149:2;141:6;138:14;135:40;;;155:18;;:::i;:::-;230:2;224:9;198:2;284:15;;-1:-1:-1;;280:24:1;;;306:2;276:33;272:42;260:55;;;330:18;;;350:22;;;327:46;324:72;;;376:18;;:::i;:::-;416:10;412:2;405:22;445:6;436:15;;475:6;467;460:22;515:3;506:6;501:3;497:16;494:25;491:45;;;532:1;529;522:12;491:45;582:6;577:3;570:4;562:6;558:17;545:44;637:1;630:4;621:6;613;609:19;605:30;598:41;;;;14:631;;;;;:::o;650:173::-;718:20;;-1:-1:-1;;;;;767:31:1;;757:42;;747:70;;813:1;810;803:12;747:70;650:173;;;:::o;828:160::-;893:20;;949:13;;942:21;932:32;;922:60;;978:1;975;968:12;993:186;1052:6;1105:2;1093:9;1084:7;1080:23;1076:32;1073:52;;;1121:1;1118;1111:12;1073:52;1144:29;1163:9;1144:29;:::i;1184:260::-;1252:6;1260;1313:2;1301:9;1292:7;1288:23;1284:32;1281:52;;;1329:1;1326;1319:12;1281:52;1352:29;1371:9;1352:29;:::i;:::-;1342:39;;1400:38;1434:2;1423:9;1419:18;1400:38;:::i;:::-;1390:48;;1184:260;;;;;:::o;1449:328::-;1526:6;1534;1542;1595:2;1583:9;1574:7;1570:23;1566:32;1563:52;;;1611:1;1608;1601:12;1563:52;1634:29;1653:9;1634:29;:::i;:::-;1624:39;;1682:38;1716:2;1705:9;1701:18;1682:38;:::i;:::-;1672:48;;1767:2;1756:9;1752:18;1739:32;1729:42;;1449:328;;;;;:::o;1782:666::-;1877:6;1885;1893;1901;1954:3;1942:9;1933:7;1929:23;1925:33;1922:53;;;1971:1;1968;1961:12;1922:53;1994:29;2013:9;1994:29;:::i;:::-;1984:39;;2042:38;2076:2;2065:9;2061:18;2042:38;:::i;:::-;2032:48;;2127:2;2116:9;2112:18;2099:32;2089:42;;2182:2;2171:9;2167:18;2154:32;2209:18;2201:6;2198:30;2195:50;;;2241:1;2238;2231:12;2195:50;2264:22;;2317:4;2309:13;;2305:27;-1:-1:-1;2295:55:1;;2346:1;2343;2336:12;2295:55;2369:73;2434:7;2429:2;2416:16;2411:2;2407;2403:11;2369:73;:::i;:::-;2359:83;;;1782:666;;;;;;;:::o;2453:254::-;2518:6;2526;2579:2;2567:9;2558:7;2554:23;2550:32;2547:52;;;2595:1;2592;2585:12;2547:52;2618:29;2637:9;2618:29;:::i;:::-;2608:39;;2666:35;2697:2;2686:9;2682:18;2666:35;:::i;2712:254::-;2780:6;2788;2841:2;2829:9;2820:7;2816:23;2812:32;2809:52;;;2857:1;2854;2847:12;2809:52;2880:29;2899:9;2880:29;:::i;:::-;2870:39;2956:2;2941:18;;;;2928:32;;-1:-1:-1;;;2712:254:1:o;2971:689::-;3066:6;3074;3082;3135:2;3123:9;3114:7;3110:23;3106:32;3103:52;;;3151:1;3148;3141:12;3103:52;3191:9;3178:23;3220:18;3261:2;3253:6;3250:14;3247:34;;;3277:1;3274;3267:12;3247:34;3315:6;3304:9;3300:22;3290:32;;3360:7;3353:4;3349:2;3345:13;3341:27;3331:55;;3382:1;3379;3372:12;3331:55;3422:2;3409:16;3448:2;3440:6;3437:14;3434:34;;;3464:1;3461;3454:12;3434:34;3519:7;3512:4;3502:6;3499:1;3495:14;3491:2;3487:23;3483:34;3480:47;3477:67;;;3540:1;3537;3530:12;3477:67;3571:4;3563:13;;;;3595:6;;-1:-1:-1;3633:20:1;;;;3620:34;;2971:689;-1:-1:-1;;;;2971:689:1:o;3665:180::-;3721:6;3774:2;3762:9;3753:7;3749:23;3745:32;3742:52;;;3790:1;3787;3780:12;3742:52;3813:26;3829:9;3813:26;:::i;3850:245::-;3908:6;3961:2;3949:9;3940:7;3936:23;3932:32;3929:52;;;3977:1;3974;3967:12;3929:52;4016:9;4003:23;4035:30;4059:5;4035:30;:::i;4100:249::-;4169:6;4222:2;4210:9;4201:7;4197:23;4193:32;4190:52;;;4238:1;4235;4228:12;4190:52;4270:9;4264:16;4289:30;4313:5;4289:30;:::i;4354:450::-;4423:6;4476:2;4464:9;4455:7;4451:23;4447:32;4444:52;;;4492:1;4489;4482:12;4444:52;4532:9;4519:23;4565:18;4557:6;4554:30;4551:50;;;4597:1;4594;4587:12;4551:50;4620:22;;4673:4;4665:13;;4661:27;-1:-1:-1;4651:55:1;;4702:1;4699;4692:12;4651:55;4725:73;4790:7;4785:2;4772:16;4767:2;4763;4759:11;4725:73;:::i;4809:180::-;4868:6;4921:2;4909:9;4900:7;4896:23;4892:32;4889:52;;;4937:1;4934;4927:12;4889:52;-1:-1:-1;4960:23:1;;4809:180;-1:-1:-1;4809:180:1:o;4994:257::-;5035:3;5073:5;5067:12;5100:6;5095:3;5088:19;5116:63;5172:6;5165:4;5160:3;5156:14;5149:4;5142:5;5138:16;5116:63;:::i;:::-;5233:2;5212:15;-1:-1:-1;;5208:29:1;5199:39;;;;5240:4;5195:50;;4994:257;-1:-1:-1;;4994:257:1:o;5256:1527::-;5480:3;5518:6;5512:13;5544:4;5557:51;5601:6;5596:3;5591:2;5583:6;5579:15;5557:51;:::i;:::-;5671:13;;5630:16;;;;5693:55;5671:13;5630:16;5715:15;;;5693:55;:::i;:::-;5837:13;;5770:20;;;5810:1;;5897;5919:18;;;;5972;;;;5999:93;;6077:4;6067:8;6063:19;6051:31;;5999:93;6140:2;6130:8;6127:16;6107:18;6104:40;6101:167;;;-1:-1:-1;;;6167:33:1;;6223:4;6220:1;6213:15;6253:4;6174:3;6241:17;6101:167;6284:18;6311:110;;;;6435:1;6430:328;;;;6277:481;;6311:110;-1:-1:-1;;6346:24:1;;6332:39;;6391:20;;;;-1:-1:-1;6311:110:1;;6430:328;17682:1;17675:14;;;17719:4;17706:18;;6525:1;6539:169;6553:8;6550:1;6547:15;6539:169;;;6635:14;;6620:13;;;6613:37;6678:16;;;;6570:10;;6539:169;;;6543:3;;6739:8;6732:5;6728:20;6721:27;;6277:481;-1:-1:-1;6774:3:1;;5256:1527;-1:-1:-1;;;;;;;;;;;5256:1527:1:o;7206:488::-;-1:-1:-1;;;;;7475:15:1;;;7457:34;;7527:15;;7522:2;7507:18;;7500:43;7574:2;7559:18;;7552:34;;;7622:3;7617:2;7602:18;;7595:31;;;7400:4;;7643:45;;7668:19;;7660:6;7643:45;:::i;:::-;7635:53;7206:488;-1:-1:-1;;;;;;7206:488:1:o;7699:632::-;7870:2;7922:21;;;7992:13;;7895:18;;;8014:22;;;7841:4;;7870:2;8093:15;;;;8067:2;8052:18;;;7841:4;8136:169;8150:6;8147:1;8144:13;8136:169;;;8211:13;;8199:26;;8280:15;;;;8245:12;;;;8172:1;8165:9;8136:169;;;-1:-1:-1;8322:3:1;;7699:632;-1:-1:-1;;;;;;7699:632:1:o;8528:219::-;8677:2;8666:9;8659:21;8640:4;8697:44;8737:2;8726:9;8722:18;8714:6;8697:44;:::i;9105:414::-;9307:2;9289:21;;;9346:2;9326:18;;;9319:30;9385:34;9380:2;9365:18;;9358:62;-1:-1:-1;;;9451:2:1;9436:18;;9429:48;9509:3;9494:19;;9105:414::o;14320:356::-;14522:2;14504:21;;;14541:18;;;14534:30;14600:34;14595:2;14580:18;;14573:62;14667:2;14652:18;;14320:356::o;16662:413::-;16864:2;16846:21;;;16903:2;16883:18;;;16876:30;16942:34;16937:2;16922:18;;16915:62;-1:-1:-1;;;17008:2:1;16993:18;;16986:47;17065:3;17050:19;;16662:413::o;17735:128::-;17775:3;17806:1;17802:6;17799:1;17796:13;17793:39;;;17812:18;;:::i;:::-;-1:-1:-1;17848:9:1;;17735:128::o;17868:120::-;17908:1;17934;17924:35;;17939:18;;:::i;:::-;-1:-1:-1;17973:9:1;;17868:120::o;17993:168::-;18033:7;18099:1;18095;18091:6;18087:14;18084:1;18081:21;18076:1;18069:9;18062:17;18058:45;18055:71;;;18106:18;;:::i;:::-;-1:-1:-1;18146:9:1;;17993:168::o;18166:125::-;18206:4;18234:1;18231;18228:8;18225:34;;;18239:18;;:::i;:::-;-1:-1:-1;18276:9:1;;18166:125::o;18296:258::-;18368:1;18378:113;18392:6;18389:1;18386:13;18378:113;;;18468:11;;;18462:18;18449:11;;;18442:39;18414:2;18407:10;18378:113;;;18509:6;18506:1;18503:13;18500:48;;;-1:-1:-1;;18544:1:1;18526:16;;18519:27;18296:258::o;18559:380::-;18638:1;18634:12;;;;18681;;;18702:61;;18756:4;18748:6;18744:17;18734:27;;18702:61;18809:2;18801:6;18798:14;18778:18;18775:38;18772:161;;;18855:10;18850:3;18846:20;18843:1;18836:31;18890:4;18887:1;18880:15;18918:4;18915:1;18908:15;18772:161;;18559:380;;;:::o;18944:135::-;18983:3;-1:-1:-1;;19004:17:1;;19001:43;;;19024:18;;:::i;:::-;-1:-1:-1;19071:1:1;19060:13;;18944:135::o;19084:112::-;19116:1;19142;19132:35;;19147:18;;:::i;:::-;-1:-1:-1;19181:9:1;;19084:112::o;19201:127::-;19262:10;19257:3;19253:20;19250:1;19243:31;19293:4;19290:1;19283:15;19317:4;19314:1;19307:15;19333:127;19394:10;19389:3;19385:20;19382:1;19375:31;19425:4;19422:1;19415:15;19449:4;19446:1;19439:15;19465:127;19526:10;19521:3;19517:20;19514:1;19507:31;19557:4;19554:1;19547:15;19581:4;19578:1;19571:15;19597:127;19658:10;19653:3;19649:20;19646:1;19639:31;19689:4;19686:1;19679:15;19713:4;19710:1;19703:15;19729:131;-1:-1:-1;;;;;;19803:32:1;;19793:43;;19783:71;;19850:1;19847;19840:12

Swarm Source

ipfs://1743dd0a3a9e6e581ae42d3bbabd6015dfe7c7a0d66b9caaf16f9053005b29d8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.