ETH Price: $2,403.40 (-2.66%)
 

Overview

Max Total Supply

50 MR

Holders

26

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
2 MR
0x91a5334135e54dc4f2855a0f146f2ecd3c3730bd
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:
NFT

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-16
*/

// SPDX-License-Identifier: MIT



// @openzeppelin/contracts/utils/introspection/IERC165.sol
pragma solidity ^0.8.0;

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

// @openzeppelin/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;
}


// @openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol
pragma solidity ^0.8.0;

interface IERC721Enumerable is IERC721 {

    function totalSupply() external view returns (uint256);

    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);

    function tokenByIndex(uint256 index) external view returns (uint256);
}


// @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;
    }
}

// @openzeppelin/contracts/utils/Strings.sol
pragma solidity ^0.8.0;

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);
    }
}

// @openzeppelin/contracts/utils/Address.sol
pragma solidity ^0.8.0;

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);
            }
        }
    }
}

// @openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol
pragma solidity ^0.8.0;

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);
}

// @openzeppelin/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);
}

// @openzeppelin/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;
    }
}


// @openzeppelin/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;

    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);

        // Clear approvals
        _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 {}
}

// @openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol
pragma solidity ^0.8.0;

abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {
   
    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;
    mapping(uint256 => uint256) private _ownedTokensIndex;
    uint256[] private _allTokens;
    mapping(uint256 => uint256) private _allTokensIndex;

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

    function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {
        require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds");
        return _ownedTokens[owner][index];
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _allTokens.length;
    }

    function tokenByIndex(uint256 index) public view virtual override returns (uint256) {
        require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds");
        return _allTokens[index];
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual override {
        super._beforeTokenTransfer(from, to, tokenId);

        if (from == address(0)) {
            _addTokenToAllTokensEnumeration(tokenId);
        } else if (from != to) {
            _removeTokenFromOwnerEnumeration(from, tokenId);
        }
        if (to == address(0)) {
            _removeTokenFromAllTokensEnumeration(tokenId);
        } else if (to != from) {
            _addTokenToOwnerEnumeration(to, tokenId);
        }
    }

    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
        uint256 length = ERC721.balanceOf(to);
        _ownedTokens[to][length] = tokenId;
        _ownedTokensIndex[tokenId] = length;
    }

    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {
        _allTokensIndex[tokenId] = _allTokens.length;
        _allTokens.push(tokenId);
    }

    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {
       
        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;
        uint256 tokenIndex = _ownedTokensIndex[tokenId];

        if (tokenIndex != lastTokenIndex) {
            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];

            _ownedTokens[from][tokenIndex] = lastTokenId;
            _ownedTokensIndex[lastTokenId] = tokenIndex; 
        }

       
        delete _ownedTokensIndex[tokenId];
        delete _ownedTokens[from][lastTokenIndex];
    }

    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
       
        uint256 lastTokenIndex = _allTokens.length - 1;
        uint256 tokenIndex = _allTokensIndex[tokenId];

        uint256 lastTokenId = _allTokens[lastTokenIndex];

        _allTokens[tokenIndex] = lastTokenId; 
        _allTokensIndex[lastTokenId] = tokenIndex; 

       
        delete _allTokensIndex[tokenId];
        _allTokens.pop();
    }
}


// @openzeppelin/contracts/access/Ownable.sol
pragma solidity ^0.8.0;

abstract contract Ownable is Context {
    address private _owner;

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

    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);
    }
}

pragma solidity >=0.7.0 <0.9.0;

contract NFT is ERC721Enumerable, Ownable {
  using Strings for uint256;

  string baseURI;
  string public baseExtension = ".json";
  uint256 public cost = 0 ether;
  uint256 public maxSupply = 1000;
  uint256 public maxMintAmount = 10;
  bool public paused = true;
  bool public revealed = true;
  bool public dynamicCost = true;
  string public notRevealedUri;

  constructor(
    string memory _name,
    string memory _symbol,
    string memory _initBaseURI,
    string memory _initNotRevealedUri
  ) ERC721(_name, _symbol) {
    setBaseURI(_initBaseURI);
    setNotRevealedURI(_initNotRevealedUri);
  }

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

  function updateCost(uint256 _supply) internal view returns (uint256 _cost){
        if (_supply<50){
          return 0.00 ether;
      }  if (_supply<100){
          return 0.025 ether;
      } if (_supply<150){
          return 0.05 ether;
      } if (_supply<200){
          return 0.075 ether;
      } if (_supply<250){
          return 0.1 ether;
      } if (_supply<300){
          return 0.125 ether;
      } if (_supply<350){
          return 0.15 ether;
      } if (_supply<400){
          return 0.175 ether;
      } if (_supply<450){
          return 0.2 ether;
      } if (_supply<500){
          return 0.225 ether;
      } if (_supply<550){
          return 0.25 ether;
      } if (_supply<600){
          return 0.275 ether;
      } if (_supply<650){
          return 0.3 ether;
      } if (_supply<700){
          return 0.325 ether;
      } if (_supply<750){
          return 0.35 ether;
      } if (_supply<800){
          return 0.375 ether;
      } if (_supply<850){
          return 0.4 ether;
      } if (_supply<900){
          return 0.425 ether;
      } if (_supply<950){
          return 0.45 ether;
      }  if (_supply< maxSupply){
          return 0.475 ether;
      }



  }

  function mint(uint256 _mintAmount) public payable {
    uint256 supply = totalSupply();
    require(!paused);
    require(_mintAmount > 0);
    require(_mintAmount <= maxMintAmount);
    require(supply + _mintAmount <= maxSupply);
    

    if (msg.sender != owner()) {

    if (dynamicCost) {
      require(msg.value >= updateCost(supply) * _mintAmount, 'not enough funds');
    }
    else {  require(msg.value >= cost * _mintAmount);

    }
            
    
    }

    for (uint256 i = 1; i <= _mintAmount; i++) {
      _safeMint(msg.sender, supply + i);
    }
  }

  function walletOfOwner(address _owner)
    public
    view
    returns (uint256[] memory)
  {
    uint256 ownerTokenCount = balanceOf(_owner);
    uint256[] memory tokenIds = new uint256[](ownerTokenCount);
    for (uint256 i; i < ownerTokenCount; i++) {
      tokenIds[i] = tokenOfOwnerByIndex(_owner, i);
    }
    return tokenIds;
  }

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

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

  function reveal() public onlyOwner {
      revealed = true;
  }
  
  function setCost(uint256 _newCost) public onlyOwner {
    cost = _newCost;
  }

  function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyOwner {
    maxMintAmount = _newmaxMintAmount;
  }
  
  function setNotRevealedURI(string memory _notRevealedURI) public onlyOwner {
    notRevealedUri = _notRevealedURI;
  }

  function setBaseURI(string memory _newBaseURI) public onlyOwner {
    baseURI = _newBaseURI;
  }

  function setBaseExtension(string memory _newBaseExtension) public onlyOwner {
    baseExtension = _newBaseExtension;
  }

  function pause(bool _state) public onlyOwner {
    paused = _state;
  }
 
function withdraw() public payable onlyOwner {
    (bool success, ) = payable(msg.sender).call{value: address(this).balance}("");
    require(success);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_initBaseURI","type":"string"},{"internalType":"string","name":"_initNotRevealedUri","type":"string"}],"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":[{"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":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dynamicCost","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"maxMintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notRevealedUri","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":[{"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":"reveal","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":"uint256","name":"_newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_notRevealedURI","type":"string"}],"name":"setNotRevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxMintAmount","type":"uint256"}],"name":"setmaxMintAmount","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":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]

60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600c908051906020019062000051929190620003b6565b506000600d556103e8600e55600a600f556001601060006101000a81548160ff0219169083151502179055506001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff021916908315150217905550348015620000c057600080fd5b5060405162004dcd38038062004dcd8339818101604052810190620000e69190620004d8565b8383816000908051906020019062000100929190620003b6565b50806001908051906020019062000119929190620003b6565b5050506200013c620001306200016860201b60201c565b6200017060201b60201c565b6200014d826200023660201b60201c565b6200015e81620002e160201b60201c565b505050506200074e565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002466200016860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200026c6200038c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002bc90620005ea565b60405180910390fd5b80600b9080519060200190620002dd929190620003b6565b5050565b620002f16200016860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003176200038c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200036790620005ea565b60405180910390fd5b806011908051906020019062000388929190620003b6565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620003c490620006ba565b90600052602060002090601f016020900481019282620003e8576000855562000434565b82601f106200040357805160ff191683800117855562000434565b8280016001018555821562000434579182015b828111156200043357825182559160200191906001019062000416565b5b50905062000443919062000447565b5090565b5b808211156200046257600081600090555060010162000448565b5090565b60006200047d620004778462000640565b6200060c565b9050828152602081018484840111156200049657600080fd5b620004a384828562000684565b509392505050565b600082601f830112620004bd57600080fd5b8151620004cf84826020860162000466565b91505092915050565b60008060008060808587031215620004ef57600080fd5b600085015167ffffffffffffffff8111156200050a57600080fd5b6200051887828801620004ab565b945050602085015167ffffffffffffffff8111156200053657600080fd5b6200054487828801620004ab565b935050604085015167ffffffffffffffff8111156200056257600080fd5b6200057087828801620004ab565b925050606085015167ffffffffffffffff8111156200058e57600080fd5b6200059c87828801620004ab565b91505092959194509250565b6000620005b760208362000673565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600060208201905081810360008301526200060581620005a8565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156200063657620006356200071f565b5b8060405250919050565b600067ffffffffffffffff8211156200065e576200065d6200071f565b5b601f19601f8301169050602081019050919050565b600082825260208201905092915050565b60005b83811015620006a457808201518184015260208101905062000687565b83811115620006b4576000848401525b50505050565b60006002820490506001821680620006d357607f821691505b60208210811415620006ea57620006e9620006f0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61466f806200075e6000396000f3fe60806040526004361061021a5760003560e01c80635c975abb11610123578063a475b5dd116100ab578063d5abeb011161006f578063d5abeb01146107a5578063da3ef23f146107d0578063e985e9c5146107f9578063f2c4ce1e14610836578063f2fde38b1461085f5761021a565b8063a475b5dd146106d2578063b88d4fde146106e9578063be745f7714610712578063c66828621461073d578063c87b56dd146107685761021a565b80637f00c7a6116100f25780637f00c7a61461060e5780638da5cb5b1461063757806395d89b4114610662578063a0712d681461068d578063a22cb465146106a95761021a565b80635c975abb146105525780636352211e1461057d57806370a08231146105ba578063715018a6146105f75761021a565b806323b872dd116101a6578063438b630011610175578063438b63001461045b57806344a0d68a146104985780634f6ccce7146104c157806351830227146104fe57806355f804b3146105295761021a565b806323b872dd146103c25780632f745c59146103eb5780633ccfd60b1461042857806342842e0e146104325761021a565b8063081c8c44116101ed578063081c8c44146102ed578063095ea7b31461031857806313faede61461034157806318160ddd1461036c578063239c70ae146103975761021a565b806301ffc9a71461021f57806302329a291461025c57806306fdde0314610285578063081812fc146102b0575b600080fd5b34801561022b57600080fd5b5061024660048036038101906102419190613467565b610888565b6040516102539190613eb4565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e919061343e565b610902565b005b34801561029157600080fd5b5061029a61099b565b6040516102a79190613ecf565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d291906134fa565b610a2d565b6040516102e49190613e2b565b60405180910390f35b3480156102f957600080fd5b50610302610ab2565b60405161030f9190613ecf565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190613402565b610b40565b005b34801561034d57600080fd5b50610356610c58565b6040516103639190614151565b60405180910390f35b34801561037857600080fd5b50610381610c5e565b60405161038e9190614151565b60405180910390f35b3480156103a357600080fd5b506103ac610c6b565b6040516103b99190614151565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e491906132fc565b610c71565b005b3480156103f757600080fd5b50610412600480360381019061040d9190613402565b610cd1565b60405161041f9190614151565b60405180910390f35b610430610d76565b005b34801561043e57600080fd5b50610459600480360381019061045491906132fc565b610e6b565b005b34801561046757600080fd5b50610482600480360381019061047d9190613297565b610e8b565b60405161048f9190613e92565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba91906134fa565b610f85565b005b3480156104cd57600080fd5b506104e860048036038101906104e391906134fa565b61100b565b6040516104f59190614151565b60405180910390f35b34801561050a57600080fd5b506105136110a2565b6040516105209190613eb4565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b91906134b9565b6110b5565b005b34801561055e57600080fd5b5061056761114b565b6040516105749190613eb4565b60405180910390f35b34801561058957600080fd5b506105a4600480360381019061059f91906134fa565b61115e565b6040516105b19190613e2b565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190613297565b611210565b6040516105ee9190614151565b60405180910390f35b34801561060357600080fd5b5061060c6112c8565b005b34801561061a57600080fd5b50610635600480360381019061063091906134fa565b611350565b005b34801561064357600080fd5b5061064c6113d6565b6040516106599190613e2b565b60405180910390f35b34801561066e57600080fd5b50610677611400565b6040516106849190613ecf565b60405180910390f35b6106a760048036038101906106a291906134fa565b611492565b005b3480156106b557600080fd5b506106d060048036038101906106cb91906133c6565b6115ef565b005b3480156106de57600080fd5b506106e7611770565b005b3480156106f557600080fd5b50610710600480360381019061070b919061334b565b611809565b005b34801561071e57600080fd5b5061072761186b565b6040516107349190613eb4565b60405180910390f35b34801561074957600080fd5b5061075261187e565b60405161075f9190613ecf565b60405180910390f35b34801561077457600080fd5b5061078f600480360381019061078a91906134fa565b61190c565b60405161079c9190613ecf565b60405180910390f35b3480156107b157600080fd5b506107ba611a65565b6040516107c79190614151565b60405180910390f35b3480156107dc57600080fd5b506107f760048036038101906107f291906134b9565b611a6b565b005b34801561080557600080fd5b50610820600480360381019061081b91906132c0565b611b01565b60405161082d9190613eb4565b60405180910390f35b34801561084257600080fd5b5061085d600480360381019061085891906134b9565b611b95565b005b34801561086b57600080fd5b5061088660048036038101906108819190613297565b611c2b565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108fb57506108fa82611d23565b5b9050919050565b61090a611e05565b73ffffffffffffffffffffffffffffffffffffffff166109286113d6565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097590614071565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b6060600080546109aa90614464565b80601f01602080910402602001604051908101604052809291908181526020018280546109d690614464565b8015610a235780601f106109f857610100808354040283529160200191610a23565b820191906000526020600020905b815481529060010190602001808311610a0657829003601f168201915b5050505050905090565b6000610a3882611e0d565b610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e90614051565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60118054610abf90614464565b80601f0160208091040260200160405190810160405280929190818152602001828054610aeb90614464565b8015610b385780601f10610b0d57610100808354040283529160200191610b38565b820191906000526020600020905b815481529060010190602001808311610b1b57829003601f168201915b505050505081565b6000610b4b8261115e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb3906140d1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610bdb611e05565b73ffffffffffffffffffffffffffffffffffffffff161480610c0a5750610c0981610c04611e05565b611b01565b5b610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090613fd1565b60405180910390fd5b610c538383611e79565b505050565b600d5481565b6000600880549050905090565b600f5481565b610c82610c7c611e05565b82611f32565b610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb8906140f1565b60405180910390fd5b610ccc838383612010565b505050565b6000610cdc83611210565b8210610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490613ef1565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d7e611e05565b73ffffffffffffffffffffffffffffffffffffffff16610d9c6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614610df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de990614071565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610e1890613e16565b60006040518083038185875af1925050503d8060008114610e55576040519150601f19603f3d011682016040523d82523d6000602084013e610e5a565b606091505b5050905080610e6857600080fd5b50565b610e8683838360405180602001604052806000815250611809565b505050565b60606000610e9883611210565b905060008167ffffffffffffffff811115610edc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610f0a5781602001602082028036833780820191505090505b50905060005b82811015610f7a57610f228582610cd1565b828281518110610f5b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250508080610f7290614496565b915050610f10565b508092505050919050565b610f8d611e05565b73ffffffffffffffffffffffffffffffffffffffff16610fab6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890614071565b60405180910390fd5b80600d8190555050565b6000611015610c5e565b8210611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d90614131565b60405180910390fd5b60088281548110611090577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050919050565b601060019054906101000a900460ff1681565b6110bd611e05565b73ffffffffffffffffffffffffffffffffffffffff166110db6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890614071565b60405180910390fd5b80600b90805190602001906111479291906130bb565b5050565b601060009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fe90614011565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127890613ff1565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112d0611e05565b73ffffffffffffffffffffffffffffffffffffffff166112ee6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b90614071565b60405180910390fd5b61134e600061226c565b565b611358611e05565b73ffffffffffffffffffffffffffffffffffffffff166113766113d6565b73ffffffffffffffffffffffffffffffffffffffff16146113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390614071565b60405180910390fd5b80600f8190555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461140f90614464565b80601f016020809104026020016040519081016040528092919081815260200182805461143b90614464565b80156114885780601f1061145d57610100808354040283529160200191611488565b820191906000526020600020905b81548152906001019060200180831161146b57829003601f168201915b5050505050905090565b600061149c610c5e565b9050601060009054906101000a900460ff16156114b857600080fd5b600082116114c557600080fd5b600f548211156114d457600080fd5b600e5482826114e39190614299565b11156114ee57600080fd5b6114f66113d6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115b457601060029054906101000a900460ff1615611598578161154782612332565b6115519190614320565b341015611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90614111565b60405180910390fd5b6115b3565b81600d546115a69190614320565b3410156115b257600080fd5b5b5b6000600190505b8281116115ea576115d73382846115d29190614299565b612534565b80806115e290614496565b9150506115bb565b505050565b6115f7611e05565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c90613f91565b60405180910390fd5b8060056000611672611e05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661171f611e05565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117649190613eb4565b60405180910390a35050565b611778611e05565b73ffffffffffffffffffffffffffffffffffffffff166117966113d6565b73ffffffffffffffffffffffffffffffffffffffff16146117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e390614071565b60405180910390fd5b6001601060016101000a81548160ff021916908315150217905550565b61181a611814611e05565b83611f32565b611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906140f1565b60405180910390fd5b61186584848484612552565b50505050565b601060029054906101000a900460ff1681565b600c805461188b90614464565b80601f01602080910402602001604051908101604052809291908181526020018280546118b790614464565b80156119045780601f106118d957610100808354040283529160200191611904565b820191906000526020600020905b8154815290600101906020018083116118e757829003601f168201915b505050505081565b606061191782611e0d565b611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d906140b1565b60405180910390fd5b60001515601060019054906101000a900460ff1615151415611a04576011805461197f90614464565b80601f01602080910402602001604051908101604052809291908181526020018280546119ab90614464565b80156119f85780601f106119cd576101008083540402835291602001916119f8565b820191906000526020600020905b8154815290600101906020018083116119db57829003601f168201915b50505050509050611a60565b6000611a0e6125ae565b90506000815111611a2e5760405180602001604052806000815250611a5c565b80611a3884612640565b600c604051602001611a4c93929190613de5565b6040516020818303038152906040525b9150505b919050565b600e5481565b611a73611e05565b73ffffffffffffffffffffffffffffffffffffffff16611a916113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90614071565b60405180910390fd5b80600c9080519060200190611afd9291906130bb565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611b9d611e05565b73ffffffffffffffffffffffffffffffffffffffff16611bbb6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0890614071565b60405180910390fd5b8060119080519060200190611c279291906130bb565b5050565b611c33611e05565b73ffffffffffffffffffffffffffffffffffffffff16611c516113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90614071565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e90613f31565b60405180910390fd5b611d208161226c565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dee57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611dfe5750611dfd826127ed565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611eec8361115e565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611f3d82611e0d565b611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390613fb1565b60405180910390fd5b6000611f878361115e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ff657508373ffffffffffffffffffffffffffffffffffffffff16611fde84610a2d565b73ffffffffffffffffffffffffffffffffffffffff16145b8061200757506120068185611b01565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166120308261115e565b73ffffffffffffffffffffffffffffffffffffffff1614612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207d90614091565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ed90613f71565b60405180910390fd5b612101838383612857565b61210c600082611e79565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461215c919061437a565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b39190614299565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006032821015612346576000905061252f565b606482101561235e576658d15e17628000905061252f565b60968210156123765766b1a2bc2ec50000905061252f565b60c882101561238f5767010a741a46278000905061252f565b60fa8210156123a85767016345785d8a0000905061252f565b61012c8210156123c2576701bc16d674ec8000905061252f565b61015e8210156123dc57670214e8348c4f0000905061252f565b6101908210156123f65767026db992a3b18000905061252f565b6101c2821015612410576702c68af0bb140000905061252f565b6101f482101561242a5767031f5c4ed2768000905061252f565b610226821015612444576703782dace9d90000905061252f565b61025882101561245e576703d0ff0b013b8000905061252f565b61028a82101561247857670429d069189e0000905061252f565b6102bc82101561249257670482a1c730008000905061252f565b6102ee8210156124ac576704db732547630000905061252f565b6103208210156124c65767053444835ec58000905061252f565b6103528210156124e05767058d15e176280000905061252f565b6103848210156124fa576705e5e73f8d8a8000905061252f565b6103b68210156125145767063eb89da4ed0000905061252f565b600e5482101561252e5767069789fbbc4f8000905061252f565b5b919050565b61254e82826040518060200160405280600081525061296b565b5050565b61255d848484612010565b612569848484846129c6565b6125a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259f90613f11565b60405180910390fd5b50505050565b6060600b80546125bd90614464565b80601f01602080910402602001604051908101604052809291908181526020018280546125e990614464565b80156126365780601f1061260b57610100808354040283529160200191612636565b820191906000526020600020905b81548152906001019060200180831161261957829003601f168201915b5050505050905090565b60606000821415612688576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506127e8565b600082905060005b600082146126ba5780806126a390614496565b915050600a826126b391906142ef565b9150612690565b60008167ffffffffffffffff8111156126fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561272e5781602001600182028036833780820191505090505b5090505b600085146127e157600182612747919061437a565b9150600a8561275691906144df565b60306127629190614299565b60f81b81838151811061279e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856127da91906142ef565b9450612732565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612862838383612b5d565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128a5576128a081612b62565b6128e4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146128e3576128e28382612bab565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129275761292281612d18565b612966565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612965576129648282612e5b565b5b5b505050565b6129758383612eda565b61298260008484846129c6565b6129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b890613f11565b60405180910390fd5b505050565b60006129e78473ffffffffffffffffffffffffffffffffffffffff166130a8565b15612b50578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612a10611e05565b8786866040518563ffffffff1660e01b8152600401612a329493929190613e46565b602060405180830381600087803b158015612a4c57600080fd5b505af1925050508015612a7d57506040513d601f19601f82011682018060405250810190612a7a9190613490565b60015b612b00573d8060008114612aad576040519150601f19603f3d011682016040523d82523d6000602084013e612ab2565b606091505b50600081511415612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef90613f11565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612b55565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612bb884611210565b612bc2919061437a565b9050600060076000848152602001908152602001600020549050818114612ca7576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050612d2c919061437a565b9050600060096000848152602001908152602001600020549050600060088381548110612d82577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015490508060088381548110612dca577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612e3f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000612e6683611210565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4190614031565b60405180910390fd5b612f5381611e0d565b15612f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8a90613f51565b60405180910390fd5b612f9f60008383612857565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fef9190614299565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b8280546130c790614464565b90600052602060002090601f0160209004810192826130e95760008555613130565b82601f1061310257805160ff1916838001178555613130565b82800160010185558215613130579182015b8281111561312f578251825591602001919060010190613114565b5b50905061313d9190613141565b5090565b5b8082111561315a576000816000905550600101613142565b5090565b600061317161316c8461419d565b61416c565b90508281526020810184848401111561318957600080fd5b613194848285614422565b509392505050565b60006131af6131aa846141cd565b61416c565b9050828152602081018484840111156131c757600080fd5b6131d2848285614422565b509392505050565b6000813590506131e9816145dd565b92915050565b6000813590506131fe816145f4565b92915050565b6000813590506132138161460b565b92915050565b6000815190506132288161460b565b92915050565b600082601f83011261323f57600080fd5b813561324f84826020860161315e565b91505092915050565b600082601f83011261326957600080fd5b813561327984826020860161319c565b91505092915050565b60008135905061329181614622565b92915050565b6000602082840312156132a957600080fd5b60006132b7848285016131da565b91505092915050565b600080604083850312156132d357600080fd5b60006132e1858286016131da565b92505060206132f2858286016131da565b9150509250929050565b60008060006060848603121561331157600080fd5b600061331f868287016131da565b9350506020613330868287016131da565b925050604061334186828701613282565b9150509250925092565b6000806000806080858703121561336157600080fd5b600061336f878288016131da565b9450506020613380878288016131da565b935050604061339187828801613282565b925050606085013567ffffffffffffffff8111156133ae57600080fd5b6133ba8782880161322e565b91505092959194509250565b600080604083850312156133d957600080fd5b60006133e7858286016131da565b92505060206133f8858286016131ef565b9150509250929050565b6000806040838503121561341557600080fd5b6000613423858286016131da565b925050602061343485828601613282565b9150509250929050565b60006020828403121561345057600080fd5b600061345e848285016131ef565b91505092915050565b60006020828403121561347957600080fd5b600061348784828501613204565b91505092915050565b6000602082840312156134a257600080fd5b60006134b084828501613219565b91505092915050565b6000602082840312156134cb57600080fd5b600082013567ffffffffffffffff8111156134e557600080fd5b6134f184828501613258565b91505092915050565b60006020828403121561350c57600080fd5b600061351a84828501613282565b91505092915050565b600061352f8383613dc7565b60208301905092915050565b613544816143ae565b82525050565b600061355582614222565b61355f8185614250565b935061356a836141fd565b8060005b8381101561359b5781516135828882613523565b975061358d83614243565b92505060018101905061356e565b5085935050505092915050565b6135b1816143c0565b82525050565b60006135c28261422d565b6135cc8185614261565b93506135dc818560208601614431565b6135e5816145cc565b840191505092915050565b60006135fb82614238565b613605818561427d565b9350613615818560208601614431565b61361e816145cc565b840191505092915050565b600061363482614238565b61363e818561428e565b935061364e818560208601614431565b80840191505092915050565b6000815461366781614464565b613671818661428e565b9450600182166000811461368c576001811461369d576136d0565b60ff198316865281860193506136d0565b6136a68561420d565b60005b838110156136c8578154818901526001820191506020810190506136a9565b838801955050505b50505092915050565b60006136e6602b8361427d565b91507f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008301527f74206f6620626f756e64730000000000000000000000000000000000000000006020830152604082019050919050565b600061374c60328361427d565b91507f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008301527f63656976657220696d706c656d656e74657200000000000000000000000000006020830152604082019050919050565b60006137b260268361427d565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613818601c8361427d565b91507f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006000830152602082019050919050565b600061385860248361427d565b91507f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138be60198361427d565b91507f4552433732313a20617070726f766520746f2063616c6c6572000000000000006000830152602082019050919050565b60006138fe602c8361427d565b91507f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b600061396460388361427d565b91507f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008301527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006020830152604082019050919050565b60006139ca602a8361427d565b91507f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008301527f726f2061646472657373000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a3060298361427d565b91507f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008301527f656e7420746f6b656e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a9660208361427d565b91507f4552433732313a206d696e7420746f20746865207a65726f20616464726573736000830152602082019050919050565b6000613ad6602c8361427d565b91507f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b6000613b3c60208361427d565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613b7c60298361427d565b91507f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008301527f73206e6f74206f776e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000613be2602f8361427d565b91507f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008301527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006020830152604082019050919050565b6000613c4860218361427d565b91507f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613cae600083614272565b9150600082019050919050565b6000613cc860318361427d565b91507f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008301527f776e6572206e6f7220617070726f7665640000000000000000000000000000006020830152604082019050919050565b6000613d2e60108361427d565b91507f6e6f7420656e6f7567682066756e6473000000000000000000000000000000006000830152602082019050919050565b6000613d6e602c8361427d565b91507f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008301527f7574206f6620626f756e647300000000000000000000000000000000000000006020830152604082019050919050565b613dd081614418565b82525050565b613ddf81614418565b82525050565b6000613df18286613629565b9150613dfd8285613629565b9150613e09828461365a565b9150819050949350505050565b6000613e2182613ca1565b9150819050919050565b6000602082019050613e40600083018461353b565b92915050565b6000608082019050613e5b600083018761353b565b613e68602083018661353b565b613e756040830185613dd6565b8181036060830152613e8781846135b7565b905095945050505050565b60006020820190508181036000830152613eac818461354a565b905092915050565b6000602082019050613ec960008301846135a8565b92915050565b60006020820190508181036000830152613ee981846135f0565b905092915050565b60006020820190508181036000830152613f0a816136d9565b9050919050565b60006020820190508181036000830152613f2a8161373f565b9050919050565b60006020820190508181036000830152613f4a816137a5565b9050919050565b60006020820190508181036000830152613f6a8161380b565b9050919050565b60006020820190508181036000830152613f8a8161384b565b9050919050565b60006020820190508181036000830152613faa816138b1565b9050919050565b60006020820190508181036000830152613fca816138f1565b9050919050565b60006020820190508181036000830152613fea81613957565b9050919050565b6000602082019050818103600083015261400a816139bd565b9050919050565b6000602082019050818103600083015261402a81613a23565b9050919050565b6000602082019050818103600083015261404a81613a89565b9050919050565b6000602082019050818103600083015261406a81613ac9565b9050919050565b6000602082019050818103600083015261408a81613b2f565b9050919050565b600060208201905081810360008301526140aa81613b6f565b9050919050565b600060208201905081810360008301526140ca81613bd5565b9050919050565b600060208201905081810360008301526140ea81613c3b565b9050919050565b6000602082019050818103600083015261410a81613cbb565b9050919050565b6000602082019050818103600083015261412a81613d21565b9050919050565b6000602082019050818103600083015261414a81613d61565b9050919050565b60006020820190506141666000830184613dd6565b92915050565b6000604051905081810181811067ffffffffffffffff821117156141935761419261459d565b5b8060405250919050565b600067ffffffffffffffff8211156141b8576141b761459d565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156141e8576141e761459d565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006142a482614418565b91506142af83614418565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142e4576142e3614510565b5b828201905092915050565b60006142fa82614418565b915061430583614418565b9250826143155761431461453f565b5b828204905092915050565b600061432b82614418565b915061433683614418565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561436f5761436e614510565b5b828202905092915050565b600061438582614418565b915061439083614418565b9250828210156143a3576143a2614510565b5b828203905092915050565b60006143b9826143f8565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561444f578082015181840152602081019050614434565b8381111561445e576000848401525b50505050565b6000600282049050600182168061447c57607f821691505b602082108114156144905761448f61456e565b5b50919050565b60006144a182614418565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156144d4576144d3614510565b5b600182019050919050565b60006144ea82614418565b91506144f583614418565b9250826145055761450461453f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6145e6816143ae565b81146145f157600080fd5b50565b6145fd816143c0565b811461460857600080fd5b50565b614614816143cc565b811461461f57600080fd5b50565b61462b81614418565b811461463657600080fd5b5056fea2646970667358221220150016a91ffbec84264437b9dcb48d55f7b5b82e2d7a2e728231eac499f47e2964736f6c63430008000033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000094d6f6f6e526f636b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024d520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d53694a74706a654331697569465444337874447a625a674a7a6a664b56616e44535a477266454638444d624c2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061021a5760003560e01c80635c975abb11610123578063a475b5dd116100ab578063d5abeb011161006f578063d5abeb01146107a5578063da3ef23f146107d0578063e985e9c5146107f9578063f2c4ce1e14610836578063f2fde38b1461085f5761021a565b8063a475b5dd146106d2578063b88d4fde146106e9578063be745f7714610712578063c66828621461073d578063c87b56dd146107685761021a565b80637f00c7a6116100f25780637f00c7a61461060e5780638da5cb5b1461063757806395d89b4114610662578063a0712d681461068d578063a22cb465146106a95761021a565b80635c975abb146105525780636352211e1461057d57806370a08231146105ba578063715018a6146105f75761021a565b806323b872dd116101a6578063438b630011610175578063438b63001461045b57806344a0d68a146104985780634f6ccce7146104c157806351830227146104fe57806355f804b3146105295761021a565b806323b872dd146103c25780632f745c59146103eb5780633ccfd60b1461042857806342842e0e146104325761021a565b8063081c8c44116101ed578063081c8c44146102ed578063095ea7b31461031857806313faede61461034157806318160ddd1461036c578063239c70ae146103975761021a565b806301ffc9a71461021f57806302329a291461025c57806306fdde0314610285578063081812fc146102b0575b600080fd5b34801561022b57600080fd5b5061024660048036038101906102419190613467565b610888565b6040516102539190613eb4565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e919061343e565b610902565b005b34801561029157600080fd5b5061029a61099b565b6040516102a79190613ecf565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d291906134fa565b610a2d565b6040516102e49190613e2b565b60405180910390f35b3480156102f957600080fd5b50610302610ab2565b60405161030f9190613ecf565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190613402565b610b40565b005b34801561034d57600080fd5b50610356610c58565b6040516103639190614151565b60405180910390f35b34801561037857600080fd5b50610381610c5e565b60405161038e9190614151565b60405180910390f35b3480156103a357600080fd5b506103ac610c6b565b6040516103b99190614151565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e491906132fc565b610c71565b005b3480156103f757600080fd5b50610412600480360381019061040d9190613402565b610cd1565b60405161041f9190614151565b60405180910390f35b610430610d76565b005b34801561043e57600080fd5b50610459600480360381019061045491906132fc565b610e6b565b005b34801561046757600080fd5b50610482600480360381019061047d9190613297565b610e8b565b60405161048f9190613e92565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba91906134fa565b610f85565b005b3480156104cd57600080fd5b506104e860048036038101906104e391906134fa565b61100b565b6040516104f59190614151565b60405180910390f35b34801561050a57600080fd5b506105136110a2565b6040516105209190613eb4565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b91906134b9565b6110b5565b005b34801561055e57600080fd5b5061056761114b565b6040516105749190613eb4565b60405180910390f35b34801561058957600080fd5b506105a4600480360381019061059f91906134fa565b61115e565b6040516105b19190613e2b565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190613297565b611210565b6040516105ee9190614151565b60405180910390f35b34801561060357600080fd5b5061060c6112c8565b005b34801561061a57600080fd5b50610635600480360381019061063091906134fa565b611350565b005b34801561064357600080fd5b5061064c6113d6565b6040516106599190613e2b565b60405180910390f35b34801561066e57600080fd5b50610677611400565b6040516106849190613ecf565b60405180910390f35b6106a760048036038101906106a291906134fa565b611492565b005b3480156106b557600080fd5b506106d060048036038101906106cb91906133c6565b6115ef565b005b3480156106de57600080fd5b506106e7611770565b005b3480156106f557600080fd5b50610710600480360381019061070b919061334b565b611809565b005b34801561071e57600080fd5b5061072761186b565b6040516107349190613eb4565b60405180910390f35b34801561074957600080fd5b5061075261187e565b60405161075f9190613ecf565b60405180910390f35b34801561077457600080fd5b5061078f600480360381019061078a91906134fa565b61190c565b60405161079c9190613ecf565b60405180910390f35b3480156107b157600080fd5b506107ba611a65565b6040516107c79190614151565b60405180910390f35b3480156107dc57600080fd5b506107f760048036038101906107f291906134b9565b611a6b565b005b34801561080557600080fd5b50610820600480360381019061081b91906132c0565b611b01565b60405161082d9190613eb4565b60405180910390f35b34801561084257600080fd5b5061085d600480360381019061085891906134b9565b611b95565b005b34801561086b57600080fd5b5061088660048036038101906108819190613297565b611c2b565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108fb57506108fa82611d23565b5b9050919050565b61090a611e05565b73ffffffffffffffffffffffffffffffffffffffff166109286113d6565b73ffffffffffffffffffffffffffffffffffffffff161461097e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097590614071565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b6060600080546109aa90614464565b80601f01602080910402602001604051908101604052809291908181526020018280546109d690614464565b8015610a235780601f106109f857610100808354040283529160200191610a23565b820191906000526020600020905b815481529060010190602001808311610a0657829003601f168201915b5050505050905090565b6000610a3882611e0d565b610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e90614051565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60118054610abf90614464565b80601f0160208091040260200160405190810160405280929190818152602001828054610aeb90614464565b8015610b385780601f10610b0d57610100808354040283529160200191610b38565b820191906000526020600020905b815481529060010190602001808311610b1b57829003601f168201915b505050505081565b6000610b4b8261115e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb3906140d1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610bdb611e05565b73ffffffffffffffffffffffffffffffffffffffff161480610c0a5750610c0981610c04611e05565b611b01565b5b610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090613fd1565b60405180910390fd5b610c538383611e79565b505050565b600d5481565b6000600880549050905090565b600f5481565b610c82610c7c611e05565b82611f32565b610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb8906140f1565b60405180910390fd5b610ccc838383612010565b505050565b6000610cdc83611210565b8210610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1490613ef1565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d7e611e05565b73ffffffffffffffffffffffffffffffffffffffff16610d9c6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614610df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de990614071565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610e1890613e16565b60006040518083038185875af1925050503d8060008114610e55576040519150601f19603f3d011682016040523d82523d6000602084013e610e5a565b606091505b5050905080610e6857600080fd5b50565b610e8683838360405180602001604052806000815250611809565b505050565b60606000610e9883611210565b905060008167ffffffffffffffff811115610edc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015610f0a5781602001602082028036833780820191505090505b50905060005b82811015610f7a57610f228582610cd1565b828281518110610f5b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250508080610f7290614496565b915050610f10565b508092505050919050565b610f8d611e05565b73ffffffffffffffffffffffffffffffffffffffff16610fab6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890614071565b60405180910390fd5b80600d8190555050565b6000611015610c5e565b8210611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d90614131565b60405180910390fd5b60088281548110611090577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050919050565b601060019054906101000a900460ff1681565b6110bd611e05565b73ffffffffffffffffffffffffffffffffffffffff166110db6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890614071565b60405180910390fd5b80600b90805190602001906111479291906130bb565b5050565b601060009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fe90614011565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127890613ff1565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112d0611e05565b73ffffffffffffffffffffffffffffffffffffffff166112ee6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b90614071565b60405180910390fd5b61134e600061226c565b565b611358611e05565b73ffffffffffffffffffffffffffffffffffffffff166113766113d6565b73ffffffffffffffffffffffffffffffffffffffff16146113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390614071565b60405180910390fd5b80600f8190555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461140f90614464565b80601f016020809104026020016040519081016040528092919081815260200182805461143b90614464565b80156114885780601f1061145d57610100808354040283529160200191611488565b820191906000526020600020905b81548152906001019060200180831161146b57829003601f168201915b5050505050905090565b600061149c610c5e565b9050601060009054906101000a900460ff16156114b857600080fd5b600082116114c557600080fd5b600f548211156114d457600080fd5b600e5482826114e39190614299565b11156114ee57600080fd5b6114f66113d6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115b457601060029054906101000a900460ff1615611598578161154782612332565b6115519190614320565b341015611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a90614111565b60405180910390fd5b6115b3565b81600d546115a69190614320565b3410156115b257600080fd5b5b5b6000600190505b8281116115ea576115d73382846115d29190614299565b612534565b80806115e290614496565b9150506115bb565b505050565b6115f7611e05565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c90613f91565b60405180910390fd5b8060056000611672611e05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661171f611e05565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117649190613eb4565b60405180910390a35050565b611778611e05565b73ffffffffffffffffffffffffffffffffffffffff166117966113d6565b73ffffffffffffffffffffffffffffffffffffffff16146117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e390614071565b60405180910390fd5b6001601060016101000a81548160ff021916908315150217905550565b61181a611814611e05565b83611f32565b611859576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611850906140f1565b60405180910390fd5b61186584848484612552565b50505050565b601060029054906101000a900460ff1681565b600c805461188b90614464565b80601f01602080910402602001604051908101604052809291908181526020018280546118b790614464565b80156119045780601f106118d957610100808354040283529160200191611904565b820191906000526020600020905b8154815290600101906020018083116118e757829003601f168201915b505050505081565b606061191782611e0d565b611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d906140b1565b60405180910390fd5b60001515601060019054906101000a900460ff1615151415611a04576011805461197f90614464565b80601f01602080910402602001604051908101604052809291908181526020018280546119ab90614464565b80156119f85780601f106119cd576101008083540402835291602001916119f8565b820191906000526020600020905b8154815290600101906020018083116119db57829003601f168201915b50505050509050611a60565b6000611a0e6125ae565b90506000815111611a2e5760405180602001604052806000815250611a5c565b80611a3884612640565b600c604051602001611a4c93929190613de5565b6040516020818303038152906040525b9150505b919050565b600e5481565b611a73611e05565b73ffffffffffffffffffffffffffffffffffffffff16611a916113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90614071565b60405180910390fd5b80600c9080519060200190611afd9291906130bb565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611b9d611e05565b73ffffffffffffffffffffffffffffffffffffffff16611bbb6113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0890614071565b60405180910390fd5b8060119080519060200190611c279291906130bb565b5050565b611c33611e05565b73ffffffffffffffffffffffffffffffffffffffff16611c516113d6565b73ffffffffffffffffffffffffffffffffffffffff1614611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90614071565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e90613f31565b60405180910390fd5b611d208161226c565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dee57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611dfe5750611dfd826127ed565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611eec8361115e565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611f3d82611e0d565b611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390613fb1565b60405180910390fd5b6000611f878361115e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ff657508373ffffffffffffffffffffffffffffffffffffffff16611fde84610a2d565b73ffffffffffffffffffffffffffffffffffffffff16145b8061200757506120068185611b01565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166120308261115e565b73ffffffffffffffffffffffffffffffffffffffff1614612086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207d90614091565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ed90613f71565b60405180910390fd5b612101838383612857565b61210c600082611e79565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461215c919061437a565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b39190614299565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006032821015612346576000905061252f565b606482101561235e576658d15e17628000905061252f565b60968210156123765766b1a2bc2ec50000905061252f565b60c882101561238f5767010a741a46278000905061252f565b60fa8210156123a85767016345785d8a0000905061252f565b61012c8210156123c2576701bc16d674ec8000905061252f565b61015e8210156123dc57670214e8348c4f0000905061252f565b6101908210156123f65767026db992a3b18000905061252f565b6101c2821015612410576702c68af0bb140000905061252f565b6101f482101561242a5767031f5c4ed2768000905061252f565b610226821015612444576703782dace9d90000905061252f565b61025882101561245e576703d0ff0b013b8000905061252f565b61028a82101561247857670429d069189e0000905061252f565b6102bc82101561249257670482a1c730008000905061252f565b6102ee8210156124ac576704db732547630000905061252f565b6103208210156124c65767053444835ec58000905061252f565b6103528210156124e05767058d15e176280000905061252f565b6103848210156124fa576705e5e73f8d8a8000905061252f565b6103b68210156125145767063eb89da4ed0000905061252f565b600e5482101561252e5767069789fbbc4f8000905061252f565b5b919050565b61254e82826040518060200160405280600081525061296b565b5050565b61255d848484612010565b612569848484846129c6565b6125a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259f90613f11565b60405180910390fd5b50505050565b6060600b80546125bd90614464565b80601f01602080910402602001604051908101604052809291908181526020018280546125e990614464565b80156126365780601f1061260b57610100808354040283529160200191612636565b820191906000526020600020905b81548152906001019060200180831161261957829003601f168201915b5050505050905090565b60606000821415612688576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506127e8565b600082905060005b600082146126ba5780806126a390614496565b915050600a826126b391906142ef565b9150612690565b60008167ffffffffffffffff8111156126fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561272e5781602001600182028036833780820191505090505b5090505b600085146127e157600182612747919061437a565b9150600a8561275691906144df565b60306127629190614299565b60f81b81838151811061279e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856127da91906142ef565b9450612732565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612862838383612b5d565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128a5576128a081612b62565b6128e4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146128e3576128e28382612bab565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156129275761292281612d18565b612966565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612965576129648282612e5b565b5b5b505050565b6129758383612eda565b61298260008484846129c6565b6129c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b890613f11565b60405180910390fd5b505050565b60006129e78473ffffffffffffffffffffffffffffffffffffffff166130a8565b15612b50578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612a10611e05565b8786866040518563ffffffff1660e01b8152600401612a329493929190613e46565b602060405180830381600087803b158015612a4c57600080fd5b505af1925050508015612a7d57506040513d601f19601f82011682018060405250810190612a7a9190613490565b60015b612b00573d8060008114612aad576040519150601f19603f3d011682016040523d82523d6000602084013e612ab2565b606091505b50600081511415612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef90613f11565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612b55565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612bb884611210565b612bc2919061437a565b9050600060076000848152602001908152602001600020549050818114612ca7576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050612d2c919061437a565b9050600060096000848152602001908152602001600020549050600060088381548110612d82577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015490508060088381548110612dca577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612e3f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000612e6683611210565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f4190614031565b60405180910390fd5b612f5381611e0d565b15612f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8a90613f51565b60405180910390fd5b612f9f60008383612857565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fef9190614299565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b8280546130c790614464565b90600052602060002090601f0160209004810192826130e95760008555613130565b82601f1061310257805160ff1916838001178555613130565b82800160010185558215613130579182015b8281111561312f578251825591602001919060010190613114565b5b50905061313d9190613141565b5090565b5b8082111561315a576000816000905550600101613142565b5090565b600061317161316c8461419d565b61416c565b90508281526020810184848401111561318957600080fd5b613194848285614422565b509392505050565b60006131af6131aa846141cd565b61416c565b9050828152602081018484840111156131c757600080fd5b6131d2848285614422565b509392505050565b6000813590506131e9816145dd565b92915050565b6000813590506131fe816145f4565b92915050565b6000813590506132138161460b565b92915050565b6000815190506132288161460b565b92915050565b600082601f83011261323f57600080fd5b813561324f84826020860161315e565b91505092915050565b600082601f83011261326957600080fd5b813561327984826020860161319c565b91505092915050565b60008135905061329181614622565b92915050565b6000602082840312156132a957600080fd5b60006132b7848285016131da565b91505092915050565b600080604083850312156132d357600080fd5b60006132e1858286016131da565b92505060206132f2858286016131da565b9150509250929050565b60008060006060848603121561331157600080fd5b600061331f868287016131da565b9350506020613330868287016131da565b925050604061334186828701613282565b9150509250925092565b6000806000806080858703121561336157600080fd5b600061336f878288016131da565b9450506020613380878288016131da565b935050604061339187828801613282565b925050606085013567ffffffffffffffff8111156133ae57600080fd5b6133ba8782880161322e565b91505092959194509250565b600080604083850312156133d957600080fd5b60006133e7858286016131da565b92505060206133f8858286016131ef565b9150509250929050565b6000806040838503121561341557600080fd5b6000613423858286016131da565b925050602061343485828601613282565b9150509250929050565b60006020828403121561345057600080fd5b600061345e848285016131ef565b91505092915050565b60006020828403121561347957600080fd5b600061348784828501613204565b91505092915050565b6000602082840312156134a257600080fd5b60006134b084828501613219565b91505092915050565b6000602082840312156134cb57600080fd5b600082013567ffffffffffffffff8111156134e557600080fd5b6134f184828501613258565b91505092915050565b60006020828403121561350c57600080fd5b600061351a84828501613282565b91505092915050565b600061352f8383613dc7565b60208301905092915050565b613544816143ae565b82525050565b600061355582614222565b61355f8185614250565b935061356a836141fd565b8060005b8381101561359b5781516135828882613523565b975061358d83614243565b92505060018101905061356e565b5085935050505092915050565b6135b1816143c0565b82525050565b60006135c28261422d565b6135cc8185614261565b93506135dc818560208601614431565b6135e5816145cc565b840191505092915050565b60006135fb82614238565b613605818561427d565b9350613615818560208601614431565b61361e816145cc565b840191505092915050565b600061363482614238565b61363e818561428e565b935061364e818560208601614431565b80840191505092915050565b6000815461366781614464565b613671818661428e565b9450600182166000811461368c576001811461369d576136d0565b60ff198316865281860193506136d0565b6136a68561420d565b60005b838110156136c8578154818901526001820191506020810190506136a9565b838801955050505b50505092915050565b60006136e6602b8361427d565b91507f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008301527f74206f6620626f756e64730000000000000000000000000000000000000000006020830152604082019050919050565b600061374c60328361427d565b91507f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008301527f63656976657220696d706c656d656e74657200000000000000000000000000006020830152604082019050919050565b60006137b260268361427d565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613818601c8361427d565b91507f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006000830152602082019050919050565b600061385860248361427d565b91507f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138be60198361427d565b91507f4552433732313a20617070726f766520746f2063616c6c6572000000000000006000830152602082019050919050565b60006138fe602c8361427d565b91507f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b600061396460388361427d565b91507f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008301527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006020830152604082019050919050565b60006139ca602a8361427d565b91507f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008301527f726f2061646472657373000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a3060298361427d565b91507f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008301527f656e7420746f6b656e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a9660208361427d565b91507f4552433732313a206d696e7420746f20746865207a65726f20616464726573736000830152602082019050919050565b6000613ad6602c8361427d565b91507f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b6000613b3c60208361427d565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613b7c60298361427d565b91507f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008301527f73206e6f74206f776e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000613be2602f8361427d565b91507f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008301527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006020830152604082019050919050565b6000613c4860218361427d565b91507f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613cae600083614272565b9150600082019050919050565b6000613cc860318361427d565b91507f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008301527f776e6572206e6f7220617070726f7665640000000000000000000000000000006020830152604082019050919050565b6000613d2e60108361427d565b91507f6e6f7420656e6f7567682066756e6473000000000000000000000000000000006000830152602082019050919050565b6000613d6e602c8361427d565b91507f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008301527f7574206f6620626f756e647300000000000000000000000000000000000000006020830152604082019050919050565b613dd081614418565b82525050565b613ddf81614418565b82525050565b6000613df18286613629565b9150613dfd8285613629565b9150613e09828461365a565b9150819050949350505050565b6000613e2182613ca1565b9150819050919050565b6000602082019050613e40600083018461353b565b92915050565b6000608082019050613e5b600083018761353b565b613e68602083018661353b565b613e756040830185613dd6565b8181036060830152613e8781846135b7565b905095945050505050565b60006020820190508181036000830152613eac818461354a565b905092915050565b6000602082019050613ec960008301846135a8565b92915050565b60006020820190508181036000830152613ee981846135f0565b905092915050565b60006020820190508181036000830152613f0a816136d9565b9050919050565b60006020820190508181036000830152613f2a8161373f565b9050919050565b60006020820190508181036000830152613f4a816137a5565b9050919050565b60006020820190508181036000830152613f6a8161380b565b9050919050565b60006020820190508181036000830152613f8a8161384b565b9050919050565b60006020820190508181036000830152613faa816138b1565b9050919050565b60006020820190508181036000830152613fca816138f1565b9050919050565b60006020820190508181036000830152613fea81613957565b9050919050565b6000602082019050818103600083015261400a816139bd565b9050919050565b6000602082019050818103600083015261402a81613a23565b9050919050565b6000602082019050818103600083015261404a81613a89565b9050919050565b6000602082019050818103600083015261406a81613ac9565b9050919050565b6000602082019050818103600083015261408a81613b2f565b9050919050565b600060208201905081810360008301526140aa81613b6f565b9050919050565b600060208201905081810360008301526140ca81613bd5565b9050919050565b600060208201905081810360008301526140ea81613c3b565b9050919050565b6000602082019050818103600083015261410a81613cbb565b9050919050565b6000602082019050818103600083015261412a81613d21565b9050919050565b6000602082019050818103600083015261414a81613d61565b9050919050565b60006020820190506141666000830184613dd6565b92915050565b6000604051905081810181811067ffffffffffffffff821117156141935761419261459d565b5b8060405250919050565b600067ffffffffffffffff8211156141b8576141b761459d565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff8211156141e8576141e761459d565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006142a482614418565b91506142af83614418565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142e4576142e3614510565b5b828201905092915050565b60006142fa82614418565b915061430583614418565b9250826143155761431461453f565b5b828204905092915050565b600061432b82614418565b915061433683614418565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561436f5761436e614510565b5b828202905092915050565b600061438582614418565b915061439083614418565b9250828210156143a3576143a2614510565b5b828203905092915050565b60006143b9826143f8565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561444f578082015181840152602081019050614434565b8381111561445e576000848401525b50505050565b6000600282049050600182168061447c57607f821691505b602082108114156144905761448f61456e565b5b50919050565b60006144a182614418565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156144d4576144d3614510565b5b600182019050919050565b60006144ea82614418565b91506144f583614418565b9250826145055761450461453f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6145e6816143ae565b81146145f157600080fd5b50565b6145fd816143c0565b811461460857600080fd5b50565b614614816143cc565b811461461f57600080fd5b50565b61462b81614418565b811461463657600080fd5b5056fea2646970667358221220150016a91ffbec84264437b9dcb48d55f7b5b82e2d7a2e728231eac499f47e2964736f6c63430008000033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000094d6f6f6e526f636b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024d520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d53694a74706a654331697569465444337874447a625a674a7a6a664b56616e44535a477266454638444d624c2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): MoonRocks
Arg [1] : _symbol (string): MR
Arg [2] : _initBaseURI (string): ipfs://QmSiJtpjeC1iuiFTD3xtDzbZgJzjfKVanDSZGrfEF8DMbL/
Arg [3] : _initNotRevealedUri (string):

-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [5] : 4d6f6f6e526f636b730000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [7] : 4d52000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000036
Arg [9] : 697066733a2f2f516d53694a74706a654331697569465444337874447a625a67
Arg [10] : 4a7a6a664b56616e44535a477266454638444d624c2f00000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

20556:4331:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16612:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24648:73;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9919:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11002:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20901:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10583:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20696:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17108:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20766:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11706:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16844:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24726:158;;;:::i;:::-;;12002:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23150:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24080:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17229:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20834:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24416:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20804:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9672:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9456:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20034:94;;;;;;;;;;;;;:::i;:::-;;24166:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19809:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10027:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22554:590;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11231:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24007:65;;;;;;;;;;;;;:::i;:::-;;12195:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20866:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20654:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23504:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20730:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24520:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11534:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24290:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20141:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16612:224;16714:4;16753:35;16738:50;;;:11;:50;;;;:90;;;;16792:36;16816:11;16792:23;:36::i;:::-;16738:90;16731:97;;16612:224;;;:::o;24648:73::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24709:6:::1;24700;;:15;;;;;;;;;;;;;;;;;;24648:73:::0;:::o;9919:100::-;9973:13;10006:5;9999:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9919:100;:::o;11002:221::-;11078:7;11106:16;11114:7;11106;:16::i;:::-;11098:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11191:15;:24;11207:7;11191:24;;;;;;;;;;;;;;;;;;;;;11184:31;;11002:221;;;:::o;20901:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10583:411::-;10664:13;10680:23;10695:7;10680:14;:23::i;:::-;10664:39;;10728:5;10722:11;;:2;:11;;;;10714:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10822:5;10806:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;10831:37;10848:5;10855:12;:10;:12::i;:::-;10831:16;:37::i;:::-;10806:62;10784:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;10965:21;10974:2;10978:7;10965:8;:21::i;:::-;10583:411;;;:::o;20696:29::-;;;;:::o;17108:113::-;17169:7;17196:10;:17;;;;17189:24;;17108:113;:::o;20766:33::-;;;;:::o;11706:288::-;11850:41;11869:12;:10;:12::i;:::-;11883:7;11850:18;:41::i;:::-;11842:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;11958:28;11968:4;11974:2;11978:7;11958:9;:28::i;:::-;11706:288;;;:::o;16844:256::-;16941:7;16977:23;16994:5;16977:16;:23::i;:::-;16969:5;:31;16961:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17066:12;:19;17079:5;17066:19;;;;;;;;;;;;;;;:26;17086:5;17066:26;;;;;;;;;;;;17059:33;;16844:256;;;;:::o;24726:158::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24779:12:::1;24805:10;24797:24;;24829:21;24797:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24778:77;;;24870:7;24862:16;;;::::0;::::1;;20017:1;24726:158::o:0;12002:185::-;12140:39;12157:4;12163:2;12167:7;12140:39;;;;;;;;;;;;:16;:39::i;:::-;12002:185;;;:::o;23150:348::-;23225:16;23253:23;23279:17;23289:6;23279:9;:17::i;:::-;23253:43;;23303:25;23345:15;23331:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23303:58;;23373:9;23368:103;23388:15;23384:1;:19;23368:103;;;23433:30;23453:6;23461:1;23433:19;:30::i;:::-;23419:8;23428:1;23419:11;;;;;;;;;;;;;;;;;;;;;:44;;;;;23405:3;;;;;:::i;:::-;;;;23368:103;;;;23484:8;23477:15;;;;23150:348;;;:::o;24080:80::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24146:8:::1;24139:4;:15;;;;24080:80:::0;:::o;17229:233::-;17304:7;17340:30;:28;:30::i;:::-;17332:5;:38;17324:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;17437:10;17448:5;17437:17;;;;;;;;;;;;;;;;;;;;;;;;17430:24;;17229:233;;;:::o;20834:27::-;;;;;;;;;;;;;:::o;24416:98::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24497:11:::1;24487:7;:21;;;;;;;;;;;;:::i;:::-;;24416:98:::0;:::o;20804:25::-;;;;;;;;;;;;;:::o;9672:239::-;9744:7;9764:13;9780:7;:16;9788:7;9780:16;;;;;;;;;;;;;;;;;;;;;9764:32;;9832:1;9815:19;;:5;:19;;;;9807:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9898:5;9891:12;;;9672:239;;;:::o;9456:208::-;9528:7;9573:1;9556:19;;:5;:19;;;;9548:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9640:9;:16;9650:5;9640:16;;;;;;;;;;;;;;;;9633:23;;9456:208;;;:::o;20034:94::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20099:21:::1;20117:1;20099:9;:21::i;:::-;20034:94::o:0;24166:116::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24259:17:::1;24243:13;:33;;;;24166:116:::0;:::o;19809:87::-;19855:7;19882:6;;;;;;;;;;;19875:13;;19809:87;:::o;10027:104::-;10083:13;10116:7;10109:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10027:104;:::o;22554:590::-;22611:14;22628:13;:11;:13::i;:::-;22611:30;;22657:6;;;;;;;;;;;22656:7;22648:16;;;;;;22693:1;22679:11;:15;22671:24;;;;;;22725:13;;22710:11;:28;;22702:37;;;;;;22778:9;;22763:11;22754:6;:20;;;;:::i;:::-;:33;;22746:42;;;;;;22821:7;:5;:7::i;:::-;22807:21;;:10;:21;;;22803:235;;22843:11;;;;;;;;;;;22839:172;;;22907:11;22886:18;22897:6;22886:10;:18::i;:::-;:32;;;;:::i;:::-;22873:9;:45;;22865:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;22839:172;;;22989:11;22982:4;;:18;;;;:::i;:::-;22969:9;:31;;22961:40;;;;;;22839:172;22803:235;23051:9;23063:1;23051:13;;23046:93;23071:11;23066:1;:16;23046:93;;23098:33;23108:10;23129:1;23120:6;:10;;;;:::i;:::-;23098:9;:33::i;:::-;23084:3;;;;;:::i;:::-;;;;23046:93;;;;22554:590;;:::o;11231:295::-;11346:12;:10;:12::i;:::-;11334:24;;:8;:24;;;;11326:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;11446:8;11401:18;:32;11420:12;:10;:12::i;:::-;11401:32;;;;;;;;;;;;;;;:42;11434:8;11401:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;11499:8;11470:48;;11485:12;:10;:12::i;:::-;11470:48;;;11509:8;11470:48;;;;;;:::i;:::-;;;;;;;;11231:295;;:::o;24007:65::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24062:4:::1;24051:8;;:15;;;;;;;;;;;;;;;;;;24007:65::o:0;12195:328::-;12370:41;12389:12;:10;:12::i;:::-;12403:7;12370:18;:41::i;:::-;12362:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;12476:39;12490:4;12496:2;12500:7;12509:5;12476:13;:39::i;:::-;12195:328;;;;:::o;20866:30::-;;;;;;;;;;;;;:::o;20654:37::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23504:497::-;23602:13;23643:16;23651:7;23643;:16::i;:::-;23627:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;23752:5;23740:17;;:8;;;;;;;;;;;:17;;;23737:62;;;23777:14;23770:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23737:62;23807:28;23838:10;:8;:10::i;:::-;23807:41;;23893:1;23868:14;23862:28;:32;:133;;;;;;;;;;;;;;;;;23930:14;23946:18;:7;:16;:18::i;:::-;23966:13;23913:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23862:133;23855:140;;;23504:497;;;;:::o;20730:31::-;;;;:::o;24520:122::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24619:17:::1;24603:13;:33;;;;;;;;;;;;:::i;:::-;;24520:122:::0;:::o;11534:164::-;11631:4;11655:18;:25;11674:5;11655:25;;;;;;;;;;;;;;;:35;11681:8;11655:35;;;;;;;;;;;;;;;;;;;;;;;;;11648:42;;11534:164;;;;:::o;24290:120::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24389:15:::1;24372:14;:32;;;;;;;;;;;;:::i;:::-;;24290:120:::0;:::o;20141:192::-;19957:12;:10;:12::i;:::-;19946:23;;:7;:5;:7::i;:::-;:23;;;19938:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20250:1:::1;20230:22;;:8;:22;;;;20222:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20306:19;20316:8;20306:9;:19::i;:::-;20141:192:::0;:::o;9143:305::-;9245:4;9297:25;9282:40;;;:11;:40;;;;:105;;;;9354:33;9339:48;;;:11;:48;;;;9282:105;:158;;;;9404:36;9428:11;9404:23;:36::i;:::-;9282:158;9262:178;;9143:305;;;:::o;8292:98::-;8345:7;8372:10;8365:17;;8292:98;:::o;12854:127::-;12919:4;12971:1;12943:30;;:7;:16;12951:7;12943:16;;;;;;;;;;;;;;;;;;;;;:30;;;;12936:37;;12854:127;;;:::o;15084:174::-;15186:2;15159:15;:24;15175:7;15159:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15242:7;15238:2;15204:46;;15213:23;15228:7;15213:14;:23::i;:::-;15204:46;;;;;;;;;;;;15084:174;;:::o;12989:348::-;13082:4;13107:16;13115:7;13107;:16::i;:::-;13099:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13183:13;13199:23;13214:7;13199:14;:23::i;:::-;13183:39;;13252:5;13241:16;;:7;:16;;;:51;;;;13285:7;13261:31;;:20;13273:7;13261:11;:20::i;:::-;:31;;;13241:51;:87;;;;13296:32;13313:5;13320:7;13296:16;:32::i;:::-;13241:87;13233:96;;;12989:348;;;;:::o;14550:526::-;14709:4;14682:31;;:23;14697:7;14682:14;:23::i;:::-;:31;;;14674:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14792:1;14778:16;;:2;:16;;;;14770:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14848:39;14869:4;14875:2;14879:7;14848:20;:39::i;:::-;14900:29;14917:1;14921:7;14900:8;:29::i;:::-;14961:1;14942:9;:15;14952:4;14942:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;14990:1;14973:9;:13;14983:2;14973:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;15021:2;15002:7;:16;15010:7;15002:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15060:7;15056:2;15041:27;;15050:4;15041:27;;;;;;;;;;;;14550:526;;;:::o;20341:173::-;20397:16;20416:6;;;;;;;;;;;20397:25;;20442:8;20433:6;;:17;;;;;;;;;;;;;;;;;;20497:8;20466:40;;20487:8;20466:40;;;;;;;;;;;;20341:173;;:::o;21299:1249::-;21359:13;21396:2;21388:7;:10;21384:55;;;21419:10;21412:17;;;;21384:55;21453:3;21445:7;:11;21441:57;;;21477:11;21470:18;;;;21441:57;21511:3;21503:7;:11;21499:56;;;21535:10;21528:17;;;;21499:56;21568:3;21560:7;:11;21556:57;;;21592:11;21585:18;;;;21556:57;21626:3;21618:7;:11;21614:55;;;21650:9;21643:16;;;;21614:55;21682:3;21674:7;:11;21670:57;;;21706:11;21699:18;;;;21670:57;21740:3;21732:7;:11;21728:56;;;21764:10;21757:17;;;;21728:56;21797:3;21789:7;:11;21785:57;;;21821:11;21814:18;;;;21785:57;21855:3;21847:7;:11;21843:55;;;21879:9;21872:16;;;;21843:55;21911:3;21903:7;:11;21899:57;;;21935:11;21928:18;;;;21899:57;21969:3;21961:7;:11;21957:56;;;21993:10;21986:17;;;;21957:56;22026:3;22018:7;:11;22014:57;;;22050:11;22043:18;;;;22014:57;22084:3;22076:7;:11;22072:55;;;22108:9;22101:16;;;;22072:55;22140:3;22132:7;:11;22128:57;;;22164:11;22157:18;;;;22128:57;22198:3;22190:7;:11;22186:56;;;22222:10;22215:17;;;;22186:56;22255:3;22247:7;:11;22243:57;;;22279:11;22272:18;;;;22243:57;22313:3;22305:7;:11;22301:55;;;22337:9;22330:16;;;;22301:55;22369:3;22361:7;:11;22357:57;;;22393:11;22386:18;;;;22357:57;22427:3;22419:7;:11;22415:56;;;22451:10;22444:17;;;;22415:56;22486:9;;22477:7;:18;22473:64;;;22516:11;22509:18;;;;22473:64;21299:1249;;;;:::o;13345:110::-;13421:26;13431:2;13435:7;13421:26;;;;;;;;;;;;:9;:26::i;:::-;13345:110;;:::o;12531:315::-;12688:28;12698:4;12704:2;12708:7;12688:9;:28::i;:::-;12735:48;12758:4;12764:2;12768:7;12777:5;12735:22;:48::i;:::-;12727:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;12531:315;;;;:::o;21191:102::-;21251:13;21280:7;21273:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21191:102;:::o;2366:723::-;2422:13;2652:1;2643:5;:10;2639:53;;;2670:10;;;;;;;;;;;;;;;;;;;;;2639:53;2702:12;2717:5;2702:20;;2733:14;2758:78;2773:1;2765:4;:9;2758:78;;2791:8;;;;;:::i;:::-;;;;2822:2;2814:10;;;;;:::i;:::-;;;2758:78;;;2846:19;2878:6;2868:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2846:39;;2896:154;2912:1;2903:5;:10;2896:154;;2940:1;2930:11;;;;;:::i;:::-;;;3007:2;2999:5;:10;;;;:::i;:::-;2986:2;:24;;;;:::i;:::-;2973:39;;2956:6;2963;2956:14;;;;;;;;;;;;;;;;;;;:56;;;;;;;;;;;3036:2;3027:11;;;;;:::i;:::-;;;2896:154;;;3074:6;3060:21;;;;;2366:723;;;;:::o;2039:157::-;2124:4;2163:25;2148:40;;;:11;:40;;;;2141:47;;2039:157;;;:::o;17470:589::-;17614:45;17641:4;17647:2;17651:7;17614:26;:45::i;:::-;17692:1;17676:18;;:4;:18;;;17672:187;;;17711:40;17743:7;17711:31;:40::i;:::-;17672:187;;;17781:2;17773:10;;:4;:10;;;17769:90;;17800:47;17833:4;17839:7;17800:32;:47::i;:::-;17769:90;17672:187;17887:1;17873:16;;:2;:16;;;17869:183;;;17906:45;17943:7;17906:36;:45::i;:::-;17869:183;;;17979:4;17973:10;;:2;:10;;;17969:83;;18000:40;18028:2;18032:7;18000:27;:40::i;:::-;17969:83;17869:183;17470:589;;;:::o;13463:321::-;13593:18;13599:2;13603:7;13593:5;:18::i;:::-;13644:54;13675:1;13679:2;13683:7;13692:5;13644:22;:54::i;:::-;13622:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;13463:321;;;:::o;15266:799::-;15421:4;15442:15;:2;:13;;;:15::i;:::-;15438:620;;;15494:2;15478:36;;;15515:12;:10;:12::i;:::-;15529:4;15535:7;15544:5;15478:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15474:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15737:1;15720:6;:13;:18;15716:272;;;15763:60;;;;;;;;;;:::i;:::-;;;;;;;;15716:272;15938:6;15932:13;15923:6;15919:2;15915:15;15908:38;15474:529;15611:41;;;15601:51;;;:6;:51;;;;15594:58;;;;;15438:620;16042:4;16035:11;;15266:799;;;;;;;:::o;16073:126::-;;;;:::o;18296:164::-;18400:10;:17;;;;18373:15;:24;18389:7;18373:24;;;;;;;;;;;:44;;;;18428:10;18444:7;18428:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18296:164;:::o;18468:574::-;18569:22;18619:1;18594:22;18611:4;18594:16;:22::i;:::-;:26;;;;:::i;:::-;18569:51;;18631:18;18652:17;:26;18670:7;18652:26;;;;;;;;;;;;18631:47;;18709:14;18695:10;:28;18691:237;;18740:19;18762:12;:18;18775:4;18762:18;;;;;;;;;;;;;;;:34;18781:14;18762:34;;;;;;;;;;;;18740:56;;18846:11;18813:12;:18;18826:4;18813:18;;;;;;;;;;;;;;;:30;18832:10;18813:30;;;;;;;;;;;:44;;;;18905:10;18872:17;:30;18890:11;18872:30;;;;;;;;;;;:43;;;;18691:237;;18956:17;:26;18974:7;18956:26;;;;;;;;;;;18949:33;;;19000:12;:18;19013:4;19000:18;;;;;;;;;;;;;;;:34;19019:14;19000:34;;;;;;;;;;;18993:41;;;18468:574;;;;:::o;19050:445::-;19141:22;19186:1;19166:10;:17;;;;:21;;;;:::i;:::-;19141:46;;19198:18;19219:15;:24;19235:7;19219:24;;;;;;;;;;;;19198:45;;19256:19;19278:10;19289:14;19278:26;;;;;;;;;;;;;;;;;;;;;;;;19256:48;;19342:11;19317:10;19328;19317:22;;;;;;;;;;;;;;;;;;;;;;;:36;;;;19396:10;19365:15;:28;19381:11;19365:28;;;;;;;;;;;:41;;;;19436:15;:24;19452:7;19436:24;;;;;;;;;;;19429:31;;;19471:10;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19050:445;;;;:::o;18067:221::-;18152:14;18169:20;18186:2;18169:16;:20::i;:::-;18152:37;;18227:7;18200:12;:16;18213:2;18200:16;;;;;;;;;;;;;;;:24;18217:6;18200:24;;;;;;;;;;;:34;;;;18274:6;18245:17;:26;18263:7;18245:26;;;;;;;;;;;:35;;;;18067:221;;;:::o;13792:382::-;13886:1;13872:16;;:2;:16;;;;13864:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13945:16;13953:7;13945;:16::i;:::-;13944:17;13936:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14007:45;14036:1;14040:2;14044:7;14007:20;:45::i;:::-;14082:1;14065:9;:13;14075:2;14065:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;14113:2;14094:7;:16;14102:7;14094:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14158:7;14154:2;14133:33;;14150:1;14133:33;;;;;;;;;;;;13792:382;;:::o;4008:204::-;4068:4;4093:12;4160:7;4148:20;4140:28;;4203:1;4196:4;:8;4189:15;;;4008:204;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:342:1:-;;109:64;124:48;165:6;124:48;:::i;:::-;109:64;:::i;:::-;100:73;;196:6;189:5;182:21;234:4;227:5;223:16;272:3;263:6;258:3;254:16;251:25;248:2;;;289:1;286;279:12;248:2;302:41;336:6;331:3;326;302:41;:::i;:::-;90:259;;;;;;:::o;355:344::-;;458:65;473:49;515:6;473:49;:::i;:::-;458:65;:::i;:::-;449:74;;546:6;539:5;532:21;584:4;577:5;573:16;622:3;613:6;608:3;604:16;601:25;598:2;;;639:1;636;629:12;598:2;652:41;686:6;681:3;676;652:41;:::i;:::-;439:260;;;;;;:::o;705:139::-;;789:6;776:20;767:29;;805:33;832:5;805:33;:::i;:::-;757:87;;;;:::o;850:133::-;;931:6;918:20;909:29;;947:30;971:5;947:30;:::i;:::-;899:84;;;;:::o;989:137::-;;1072:6;1059:20;1050:29;;1088:32;1114:5;1088:32;:::i;:::-;1040:86;;;;:::o;1132:141::-;;1219:6;1213:13;1204:22;;1235:32;1261:5;1235:32;:::i;:::-;1194:79;;;;:::o;1292:271::-;;1396:3;1389:4;1381:6;1377:17;1373:27;1363:2;;1414:1;1411;1404:12;1363:2;1454:6;1441:20;1479:78;1553:3;1545:6;1538:4;1530:6;1526:17;1479:78;:::i;:::-;1470:87;;1353:210;;;;;:::o;1583:273::-;;1688:3;1681:4;1673:6;1669:17;1665:27;1655:2;;1706:1;1703;1696:12;1655:2;1746:6;1733:20;1771:79;1846:3;1838:6;1831:4;1823:6;1819:17;1771:79;:::i;:::-;1762:88;;1645:211;;;;;:::o;1862:139::-;;1946:6;1933:20;1924:29;;1962:33;1989:5;1962:33;:::i;:::-;1914:87;;;;:::o;2007:262::-;;2115:2;2103:9;2094:7;2090:23;2086:32;2083:2;;;2131:1;2128;2121:12;2083:2;2174:1;2199:53;2244:7;2235:6;2224:9;2220:22;2199:53;:::i;:::-;2189:63;;2145:117;2073:196;;;;:::o;2275:407::-;;;2400:2;2388:9;2379:7;2375:23;2371:32;2368:2;;;2416:1;2413;2406:12;2368:2;2459:1;2484:53;2529:7;2520:6;2509:9;2505:22;2484:53;:::i;:::-;2474:63;;2430:117;2586:2;2612:53;2657:7;2648:6;2637:9;2633:22;2612:53;:::i;:::-;2602:63;;2557:118;2358:324;;;;;:::o;2688:552::-;;;;2830:2;2818:9;2809:7;2805:23;2801:32;2798:2;;;2846:1;2843;2836:12;2798:2;2889:1;2914:53;2959:7;2950:6;2939:9;2935:22;2914:53;:::i;:::-;2904:63;;2860:117;3016:2;3042:53;3087:7;3078:6;3067:9;3063:22;3042:53;:::i;:::-;3032:63;;2987:118;3144:2;3170:53;3215:7;3206:6;3195:9;3191:22;3170:53;:::i;:::-;3160:63;;3115:118;2788:452;;;;;:::o;3246:809::-;;;;;3414:3;3402:9;3393:7;3389:23;3385:33;3382:2;;;3431:1;3428;3421:12;3382:2;3474:1;3499:53;3544:7;3535:6;3524:9;3520:22;3499:53;:::i;:::-;3489:63;;3445:117;3601:2;3627:53;3672:7;3663:6;3652:9;3648:22;3627:53;:::i;:::-;3617:63;;3572:118;3729:2;3755:53;3800:7;3791:6;3780:9;3776:22;3755:53;:::i;:::-;3745:63;;3700:118;3885:2;3874:9;3870:18;3857:32;3916:18;3908:6;3905:30;3902:2;;;3948:1;3945;3938:12;3902:2;3976:62;4030:7;4021:6;4010:9;4006:22;3976:62;:::i;:::-;3966:72;;3828:220;3372:683;;;;;;;:::o;4061:401::-;;;4183:2;4171:9;4162:7;4158:23;4154:32;4151:2;;;4199:1;4196;4189:12;4151:2;4242:1;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4213:117;4369:2;4395:50;4437:7;4428:6;4417:9;4413:22;4395:50;:::i;:::-;4385:60;;4340:115;4141:321;;;;;:::o;4468:407::-;;;4593:2;4581:9;4572:7;4568:23;4564:32;4561:2;;;4609:1;4606;4599:12;4561:2;4652:1;4677:53;4722:7;4713:6;4702:9;4698:22;4677:53;:::i;:::-;4667:63;;4623:117;4779:2;4805:53;4850:7;4841:6;4830:9;4826:22;4805:53;:::i;:::-;4795:63;;4750:118;4551:324;;;;;:::o;4881:256::-;;4986:2;4974:9;4965:7;4961:23;4957:32;4954:2;;;5002:1;4999;4992:12;4954:2;5045:1;5070:50;5112:7;5103:6;5092:9;5088:22;5070:50;:::i;:::-;5060:60;;5016:114;4944:193;;;;:::o;5143:260::-;;5250:2;5238:9;5229:7;5225:23;5221:32;5218:2;;;5266:1;5263;5256:12;5218:2;5309:1;5334:52;5378:7;5369:6;5358:9;5354:22;5334:52;:::i;:::-;5324:62;;5280:116;5208:195;;;;:::o;5409:282::-;;5527:2;5515:9;5506:7;5502:23;5498:32;5495:2;;;5543:1;5540;5533:12;5495:2;5586:1;5611:63;5666:7;5657:6;5646:9;5642:22;5611:63;:::i;:::-;5601:73;;5557:127;5485:206;;;;:::o;5697:375::-;;5815:2;5803:9;5794:7;5790:23;5786:32;5783:2;;;5831:1;5828;5821:12;5783:2;5902:1;5891:9;5887:17;5874:31;5932:18;5924:6;5921:30;5918:2;;;5964:1;5961;5954:12;5918:2;5992:63;6047:7;6038:6;6027:9;6023:22;5992:63;:::i;:::-;5982:73;;5845:220;5773:299;;;;:::o;6078:262::-;;6186:2;6174:9;6165:7;6161:23;6157:32;6154:2;;;6202:1;6199;6192:12;6154:2;6245:1;6270:53;6315:7;6306:6;6295:9;6291:22;6270:53;:::i;:::-;6260:63;;6216:117;6144:196;;;;:::o;6346:179::-;;6436:46;6478:3;6470:6;6436:46;:::i;:::-;6514:4;6509:3;6505:14;6491:28;;6426:99;;;;:::o;6531:118::-;6618:24;6636:5;6618:24;:::i;:::-;6613:3;6606:37;6596:53;;:::o;6685:732::-;;6833:54;6881:5;6833:54;:::i;:::-;6903:86;6982:6;6977:3;6903:86;:::i;:::-;6896:93;;7013:56;7063:5;7013:56;:::i;:::-;7092:7;7123:1;7108:284;7133:6;7130:1;7127:13;7108:284;;;7209:6;7203:13;7236:63;7295:3;7280:13;7236:63;:::i;:::-;7229:70;;7322:60;7375:6;7322:60;:::i;:::-;7312:70;;7168:224;7155:1;7152;7148:9;7143:14;;7108:284;;;7112:14;7408:3;7401:10;;6809:608;;;;;;;:::o;7423:109::-;7504:21;7519:5;7504:21;:::i;:::-;7499:3;7492:34;7482:50;;:::o;7538:360::-;;7652:38;7684:5;7652:38;:::i;:::-;7706:70;7769:6;7764:3;7706:70;:::i;:::-;7699:77;;7785:52;7830:6;7825:3;7818:4;7811:5;7807:16;7785:52;:::i;:::-;7862:29;7884:6;7862:29;:::i;:::-;7857:3;7853:39;7846:46;;7628:270;;;;;:::o;7904:364::-;;8020:39;8053:5;8020:39;:::i;:::-;8075:71;8139:6;8134:3;8075:71;:::i;:::-;8068:78;;8155:52;8200:6;8195:3;8188:4;8181:5;8177:16;8155:52;:::i;:::-;8232:29;8254:6;8232:29;:::i;:::-;8227:3;8223:39;8216:46;;7996:272;;;;;:::o;8274:377::-;;8408:39;8441:5;8408:39;:::i;:::-;8463:89;8545:6;8540:3;8463:89;:::i;:::-;8456:96;;8561:52;8606:6;8601:3;8594:4;8587:5;8583:16;8561:52;:::i;:::-;8638:6;8633:3;8629:16;8622:23;;8384:267;;;;;:::o;8681:845::-;;8821:5;8815:12;8850:36;8876:9;8850:36;:::i;:::-;8902:89;8984:6;8979:3;8902:89;:::i;:::-;8895:96;;9022:1;9011:9;9007:17;9038:1;9033:137;;;;9184:1;9179:341;;;;9000:520;;9033:137;9117:4;9113:9;9102;9098:25;9093:3;9086:38;9153:6;9148:3;9144:16;9137:23;;9033:137;;9179:341;9246:38;9278:5;9246:38;:::i;:::-;9306:1;9320:154;9334:6;9331:1;9328:13;9320:154;;;9408:7;9402:14;9398:1;9393:3;9389:11;9382:35;9458:1;9449:7;9445:15;9434:26;;9356:4;9353:1;9349:12;9344:17;;9320:154;;;9503:6;9498:3;9494:16;9487:23;;9186:334;;9000:520;;8788:738;;;;;;:::o;9532:375::-;;9695:67;9759:2;9754:3;9695:67;:::i;:::-;9688:74;;9792:34;9788:1;9783:3;9779:11;9772:55;9858:13;9853:2;9848:3;9844:12;9837:35;9898:2;9893:3;9889:12;9882:19;;9678:229;;;:::o;9913:382::-;;10076:67;10140:2;10135:3;10076:67;:::i;:::-;10069:74;;10173:34;10169:1;10164:3;10160:11;10153:55;10239:20;10234:2;10229:3;10225:12;10218:42;10286:2;10281:3;10277:12;10270:19;;10059:236;;;:::o;10301:370::-;;10464:67;10528:2;10523:3;10464:67;:::i;:::-;10457:74;;10561:34;10557:1;10552:3;10548:11;10541:55;10627:8;10622:2;10617:3;10613:12;10606:30;10662:2;10657:3;10653:12;10646:19;;10447:224;;;:::o;10677:326::-;;10840:67;10904:2;10899:3;10840:67;:::i;:::-;10833:74;;10937:30;10933:1;10928:3;10924:11;10917:51;10994:2;10989:3;10985:12;10978:19;;10823:180;;;:::o;11009:368::-;;11172:67;11236:2;11231:3;11172:67;:::i;:::-;11165:74;;11269:34;11265:1;11260:3;11256:11;11249:55;11335:6;11330:2;11325:3;11321:12;11314:28;11368:2;11363:3;11359:12;11352:19;;11155:222;;;:::o;11383:323::-;;11546:67;11610:2;11605:3;11546:67;:::i;:::-;11539:74;;11643:27;11639:1;11634:3;11630:11;11623:48;11697:2;11692:3;11688:12;11681:19;;11529:177;;;:::o;11712:376::-;;11875:67;11939:2;11934:3;11875:67;:::i;:::-;11868:74;;11972:34;11968:1;11963:3;11959:11;11952:55;12038:14;12033:2;12028:3;12024:12;12017:36;12079:2;12074:3;12070:12;12063:19;;11858:230;;;:::o;12094:388::-;;12257:67;12321:2;12316:3;12257:67;:::i;:::-;12250:74;;12354:34;12350:1;12345:3;12341:11;12334:55;12420:26;12415:2;12410:3;12406:12;12399:48;12473:2;12468:3;12464:12;12457:19;;12240:242;;;:::o;12488:374::-;;12651:67;12715:2;12710:3;12651:67;:::i;:::-;12644:74;;12748:34;12744:1;12739:3;12735:11;12728:55;12814:12;12809:2;12804:3;12800:12;12793:34;12853:2;12848:3;12844:12;12837:19;;12634:228;;;:::o;12868:373::-;;13031:67;13095:2;13090:3;13031:67;:::i;:::-;13024:74;;13128:34;13124:1;13119:3;13115:11;13108:55;13194:11;13189:2;13184:3;13180:12;13173:33;13232:2;13227:3;13223:12;13216:19;;13014:227;;;:::o;13247:330::-;;13410:67;13474:2;13469:3;13410:67;:::i;:::-;13403:74;;13507:34;13503:1;13498:3;13494:11;13487:55;13568:2;13563:3;13559:12;13552:19;;13393:184;;;:::o;13583:376::-;;13746:67;13810:2;13805:3;13746:67;:::i;:::-;13739:74;;13843:34;13839:1;13834:3;13830:11;13823:55;13909:14;13904:2;13899:3;13895:12;13888:36;13950:2;13945:3;13941:12;13934:19;;13729:230;;;:::o;13965:330::-;;14128:67;14192:2;14187:3;14128:67;:::i;:::-;14121:74;;14225:34;14221:1;14216:3;14212:11;14205:55;14286:2;14281:3;14277:12;14270:19;;14111:184;;;:::o;14301:373::-;;14464:67;14528:2;14523:3;14464:67;:::i;:::-;14457:74;;14561:34;14557:1;14552:3;14548:11;14541:55;14627:11;14622:2;14617:3;14613:12;14606:33;14665:2;14660:3;14656:12;14649:19;;14447:227;;;:::o;14680:379::-;;14843:67;14907:2;14902:3;14843:67;:::i;:::-;14836:74;;14940:34;14936:1;14931:3;14927:11;14920:55;15006:17;15001:2;14996:3;14992:12;14985:39;15050:2;15045:3;15041:12;15034:19;;14826:233;;;:::o;15065:365::-;;15228:67;15292:2;15287:3;15228:67;:::i;:::-;15221:74;;15325:34;15321:1;15316:3;15312:11;15305:55;15391:3;15386:2;15381:3;15377:12;15370:25;15421:2;15416:3;15412:12;15405:19;;15211:219;;;:::o;15436:297::-;;15616:83;15697:1;15692:3;15616:83;:::i;:::-;15609:90;;15725:1;15720:3;15716:11;15709:18;;15599:134;;;:::o;15739:381::-;;15902:67;15966:2;15961:3;15902:67;:::i;:::-;15895:74;;15999:34;15995:1;15990:3;15986:11;15979:55;16065:19;16060:2;16055:3;16051:12;16044:41;16111:2;16106:3;16102:12;16095:19;;15885:235;;;:::o;16126:314::-;;16289:67;16353:2;16348:3;16289:67;:::i;:::-;16282:74;;16386:18;16382:1;16377:3;16373:11;16366:39;16431:2;16426:3;16422:12;16415:19;;16272:168;;;:::o;16446:376::-;;16609:67;16673:2;16668:3;16609:67;:::i;:::-;16602:74;;16706:34;16702:1;16697:3;16693:11;16686:55;16772:14;16767:2;16762:3;16758:12;16751:36;16813:2;16808:3;16804:12;16797:19;;16592:230;;;:::o;16828:108::-;16905:24;16923:5;16905:24;:::i;:::-;16900:3;16893:37;16883:53;;:::o;16942:118::-;17029:24;17047:5;17029:24;:::i;:::-;17024:3;17017:37;17007:53;;:::o;17066:589::-;;17313:95;17404:3;17395:6;17313:95;:::i;:::-;17306:102;;17425:95;17516:3;17507:6;17425:95;:::i;:::-;17418:102;;17537:92;17625:3;17616:6;17537:92;:::i;:::-;17530:99;;17646:3;17639:10;;17295:360;;;;;;:::o;17661:379::-;;17867:147;18010:3;17867:147;:::i;:::-;17860:154;;18031:3;18024:10;;17849:191;;;:::o;18046:222::-;;18177:2;18166:9;18162:18;18154:26;;18190:71;18258:1;18247:9;18243:17;18234:6;18190:71;:::i;:::-;18144:124;;;;:::o;18274:640::-;;18507:3;18496:9;18492:19;18484:27;;18521:71;18589:1;18578:9;18574:17;18565:6;18521:71;:::i;:::-;18602:72;18670:2;18659:9;18655:18;18646:6;18602:72;:::i;:::-;18684;18752:2;18741:9;18737:18;18728:6;18684:72;:::i;:::-;18803:9;18797:4;18793:20;18788:2;18777:9;18773:18;18766:48;18831:76;18902:4;18893:6;18831:76;:::i;:::-;18823:84;;18474:440;;;;;;;:::o;18920:373::-;;19101:2;19090:9;19086:18;19078:26;;19150:9;19144:4;19140:20;19136:1;19125:9;19121:17;19114:47;19178:108;19281:4;19272:6;19178:108;:::i;:::-;19170:116;;19068:225;;;;:::o;19299:210::-;;19424:2;19413:9;19409:18;19401:26;;19437:65;19499:1;19488:9;19484:17;19475:6;19437:65;:::i;:::-;19391:118;;;;:::o;19515:313::-;;19666:2;19655:9;19651:18;19643:26;;19715:9;19709:4;19705:20;19701:1;19690:9;19686:17;19679:47;19743:78;19816:4;19807:6;19743:78;:::i;:::-;19735:86;;19633:195;;;;:::o;19834:419::-;;20038:2;20027:9;20023:18;20015:26;;20087:9;20081:4;20077:20;20073:1;20062:9;20058:17;20051:47;20115:131;20241:4;20115:131;:::i;:::-;20107:139;;20005:248;;;:::o;20259:419::-;;20463:2;20452:9;20448:18;20440:26;;20512:9;20506:4;20502:20;20498:1;20487:9;20483:17;20476:47;20540:131;20666:4;20540:131;:::i;:::-;20532:139;;20430:248;;;:::o;20684:419::-;;20888:2;20877:9;20873:18;20865:26;;20937:9;20931:4;20927:20;20923:1;20912:9;20908:17;20901:47;20965:131;21091:4;20965:131;:::i;:::-;20957:139;;20855:248;;;:::o;21109:419::-;;21313:2;21302:9;21298:18;21290:26;;21362:9;21356:4;21352:20;21348:1;21337:9;21333:17;21326:47;21390:131;21516:4;21390:131;:::i;:::-;21382:139;;21280:248;;;:::o;21534:419::-;;21738:2;21727:9;21723:18;21715:26;;21787:9;21781:4;21777:20;21773:1;21762:9;21758:17;21751:47;21815:131;21941:4;21815:131;:::i;:::-;21807:139;;21705:248;;;:::o;21959:419::-;;22163:2;22152:9;22148:18;22140:26;;22212:9;22206:4;22202:20;22198:1;22187:9;22183:17;22176:47;22240:131;22366:4;22240:131;:::i;:::-;22232:139;;22130:248;;;:::o;22384:419::-;;22588:2;22577:9;22573:18;22565:26;;22637:9;22631:4;22627:20;22623:1;22612:9;22608:17;22601:47;22665:131;22791:4;22665:131;:::i;:::-;22657:139;;22555:248;;;:::o;22809:419::-;;23013:2;23002:9;22998:18;22990:26;;23062:9;23056:4;23052:20;23048:1;23037:9;23033:17;23026:47;23090:131;23216:4;23090:131;:::i;:::-;23082:139;;22980:248;;;:::o;23234:419::-;;23438:2;23427:9;23423:18;23415:26;;23487:9;23481:4;23477:20;23473:1;23462:9;23458:17;23451:47;23515:131;23641:4;23515:131;:::i;:::-;23507:139;;23405:248;;;:::o;23659:419::-;;23863:2;23852:9;23848:18;23840:26;;23912:9;23906:4;23902:20;23898:1;23887:9;23883:17;23876:47;23940:131;24066:4;23940:131;:::i;:::-;23932:139;;23830:248;;;:::o;24084:419::-;;24288:2;24277:9;24273:18;24265:26;;24337:9;24331:4;24327:20;24323:1;24312:9;24308:17;24301:47;24365:131;24491:4;24365:131;:::i;:::-;24357:139;;24255:248;;;:::o;24509:419::-;;24713:2;24702:9;24698:18;24690:26;;24762:9;24756:4;24752:20;24748:1;24737:9;24733:17;24726:47;24790:131;24916:4;24790:131;:::i;:::-;24782:139;;24680:248;;;:::o;24934:419::-;;25138:2;25127:9;25123:18;25115:26;;25187:9;25181:4;25177:20;25173:1;25162:9;25158:17;25151:47;25215:131;25341:4;25215:131;:::i;:::-;25207:139;;25105:248;;;:::o;25359:419::-;;25563:2;25552:9;25548:18;25540:26;;25612:9;25606:4;25602:20;25598:1;25587:9;25583:17;25576:47;25640:131;25766:4;25640:131;:::i;:::-;25632:139;;25530:248;;;:::o;25784:419::-;;25988:2;25977:9;25973:18;25965:26;;26037:9;26031:4;26027:20;26023:1;26012:9;26008:17;26001:47;26065:131;26191:4;26065:131;:::i;:::-;26057:139;;25955:248;;;:::o;26209:419::-;;26413:2;26402:9;26398:18;26390:26;;26462:9;26456:4;26452:20;26448:1;26437:9;26433:17;26426:47;26490:131;26616:4;26490:131;:::i;:::-;26482:139;;26380:248;;;:::o;26634:419::-;;26838:2;26827:9;26823:18;26815:26;;26887:9;26881:4;26877:20;26873:1;26862:9;26858:17;26851:47;26915:131;27041:4;26915:131;:::i;:::-;26907:139;;26805:248;;;:::o;27059:419::-;;27263:2;27252:9;27248:18;27240:26;;27312:9;27306:4;27302:20;27298:1;27287:9;27283:17;27276:47;27340:131;27466:4;27340:131;:::i;:::-;27332:139;;27230:248;;;:::o;27484:419::-;;27688:2;27677:9;27673:18;27665:26;;27737:9;27731:4;27727:20;27723:1;27712:9;27708:17;27701:47;27765:131;27891:4;27765:131;:::i;:::-;27757:139;;27655:248;;;:::o;27909:222::-;;28040:2;28029:9;28025:18;28017:26;;28053:71;28121:1;28110:9;28106:17;28097:6;28053:71;:::i;:::-;28007:124;;;;:::o;28137:283::-;;28203:2;28197:9;28187:19;;28245:4;28237:6;28233:17;28352:6;28340:10;28337:22;28316:18;28304:10;28301:34;28298:62;28295:2;;;28363:18;;:::i;:::-;28295:2;28403:10;28399:2;28392:22;28177:243;;;;:::o;28426:331::-;;28577:18;28569:6;28566:30;28563:2;;;28599:18;;:::i;:::-;28563:2;28684:4;28680:9;28673:4;28665:6;28661:17;28657:33;28649:41;;28745:4;28739;28735:15;28727:23;;28492:265;;;:::o;28763:332::-;;28915:18;28907:6;28904:30;28901:2;;;28937:18;;:::i;:::-;28901:2;29022:4;29018:9;29011:4;29003:6;28999:17;28995:33;28987:41;;29083:4;29077;29073:15;29065:23;;28830:265;;;:::o;29101:132::-;;29191:3;29183:11;;29221:4;29216:3;29212:14;29204:22;;29173:60;;;:::o;29239:141::-;;29311:3;29303:11;;29334:3;29331:1;29324:14;29368:4;29365:1;29355:18;29347:26;;29293:87;;;:::o;29386:114::-;;29487:5;29481:12;29471:22;;29460:40;;;:::o;29506:98::-;;29591:5;29585:12;29575:22;;29564:40;;;:::o;29610:99::-;;29696:5;29690:12;29680:22;;29669:40;;;:::o;29715:113::-;;29817:4;29812:3;29808:14;29800:22;;29790:38;;;:::o;29834:184::-;;29967:6;29962:3;29955:19;30007:4;30002:3;29998:14;29983:29;;29945:73;;;;:::o;30024:168::-;;30141:6;30136:3;30129:19;30181:4;30176:3;30172:14;30157:29;;30119:73;;;;:::o;30198:147::-;;30336:3;30321:18;;30311:34;;;;:::o;30351:169::-;;30469:6;30464:3;30457:19;30509:4;30504:3;30500:14;30485:29;;30447:73;;;;:::o;30526:148::-;;30665:3;30650:18;;30640:34;;;;:::o;30680:305::-;;30739:20;30757:1;30739:20;:::i;:::-;30734:25;;30773:20;30791:1;30773:20;:::i;:::-;30768:25;;30927:1;30859:66;30855:74;30852:1;30849:81;30846:2;;;30933:18;;:::i;:::-;30846:2;30977:1;30974;30970:9;30963:16;;30724:261;;;;:::o;30991:185::-;;31048:20;31066:1;31048:20;:::i;:::-;31043:25;;31082:20;31100:1;31082:20;:::i;:::-;31077:25;;31121:1;31111:2;;31126:18;;:::i;:::-;31111:2;31168:1;31165;31161:9;31156:14;;31033:143;;;;:::o;31182:348::-;;31245:20;31263:1;31245:20;:::i;:::-;31240:25;;31279:20;31297:1;31279:20;:::i;:::-;31274:25;;31467:1;31399:66;31395:74;31392:1;31389:81;31384:1;31377:9;31370:17;31366:105;31363:2;;;31474:18;;:::i;:::-;31363:2;31522:1;31519;31515:9;31504:20;;31230:300;;;;:::o;31536:191::-;;31596:20;31614:1;31596:20;:::i;:::-;31591:25;;31630:20;31648:1;31630:20;:::i;:::-;31625:25;;31669:1;31666;31663:8;31660:2;;;31674:18;;:::i;:::-;31660:2;31719:1;31716;31712:9;31704:17;;31581:146;;;;:::o;31733:96::-;;31799:24;31817:5;31799:24;:::i;:::-;31788:35;;31778:51;;;:::o;31835:90::-;;31912:5;31905:13;31898:21;31887:32;;31877:48;;;:::o;31931:149::-;;32007:66;32000:5;31996:78;31985:89;;31975:105;;;:::o;32086:126::-;;32163:42;32156:5;32152:54;32141:65;;32131:81;;;:::o;32218:77::-;;32284:5;32273:16;;32263:32;;;:::o;32301:154::-;32385:6;32380:3;32375;32362:30;32447:1;32438:6;32433:3;32429:16;32422:27;32352:103;;;:::o;32461:307::-;32529:1;32539:113;32553:6;32550:1;32547:13;32539:113;;;32638:1;32633:3;32629:11;32623:18;32619:1;32614:3;32610:11;32603:39;32575:2;32572:1;32568:10;32563:15;;32539:113;;;32670:6;32667:1;32664:13;32661:2;;;32750:1;32741:6;32736:3;32732:16;32725:27;32661:2;32510:258;;;;:::o;32774:320::-;;32855:1;32849:4;32845:12;32835:22;;32902:1;32896:4;32892:12;32923:18;32913:2;;32979:4;32971:6;32967:17;32957:27;;32913:2;33041;33033:6;33030:14;33010:18;33007:38;33004:2;;;33060:18;;:::i;:::-;33004:2;32825:269;;;;:::o;33100:233::-;;33162:24;33180:5;33162:24;:::i;:::-;33153:33;;33208:66;33201:5;33198:77;33195:2;;;33278:18;;:::i;:::-;33195:2;33325:1;33318:5;33314:13;33307:20;;33143:190;;;:::o;33339:176::-;;33388:20;33406:1;33388:20;:::i;:::-;33383:25;;33422:20;33440:1;33422:20;:::i;:::-;33417:25;;33461:1;33451:2;;33466:18;;:::i;:::-;33451:2;33507:1;33504;33500:9;33495:14;;33373:142;;;;:::o;33521:180::-;33569:77;33566:1;33559:88;33666:4;33663:1;33656:15;33690:4;33687:1;33680:15;33707:180;33755:77;33752:1;33745:88;33852:4;33849:1;33842:15;33876:4;33873:1;33866:15;33893:180;33941:77;33938:1;33931:88;34038:4;34035:1;34028:15;34062:4;34059:1;34052:15;34079:180;34127:77;34124:1;34117:88;34224:4;34221:1;34214:15;34248:4;34245:1;34238:15;34265:102;;34357:2;34353:7;34348:2;34341:5;34337:14;34333:28;34323:38;;34313:54;;;:::o;34373:122::-;34446:24;34464:5;34446:24;:::i;:::-;34439:5;34436:35;34426:2;;34485:1;34482;34475:12;34426:2;34416:79;:::o;34501:116::-;34571:21;34586:5;34571:21;:::i;:::-;34564:5;34561:32;34551:2;;34607:1;34604;34597:12;34551:2;34541:76;:::o;34623:120::-;34695:23;34712:5;34695:23;:::i;:::-;34688:5;34685:34;34675:2;;34733:1;34730;34723:12;34675:2;34665:78;:::o;34749:122::-;34822:24;34840:5;34822:24;:::i;:::-;34815:5;34812:35;34802:2;;34861:1;34858;34851:12;34802:2;34792:79;:::o

Swarm Source

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