ETH Price: $3,005.97 (+4.34%)
Gas: 2 Gwei

Token

 

Overview

Max Total Supply

1,485

Holders

1,474

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
0x9be812c0e2a5804ad1ae7bec717623a87fd2fa00
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:
MetabillionaireAirdropERC1155

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 11 : MetabillionaireAirdropERC1155.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

/// @author Misterjuiice https://instagram.com/misterjuiice
/// @title METABILLIONAIRE MERCH PASS

import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract MetabillionaireAirdropERC1155 is Ownable, ERC1155 {
    uint256 public constant Platinum = 1;
    uint256 public constant Gold = 2;
    uint256 public constant Silver = 3;
    string public baseURI = "https://gateway.pinata.cloud/ipfs/QmcdbzLCAMdmVBh7n4ho762XAhRb49gBiV3XywPzGqkyJj/";

    constructor(
        address[] memory platinumAddress,
        address[] memory goldAddress
    ) ERC1155("{baseURI}{id}.json") {
        for(uint i = 0 ; i < platinumAddress.length ; i++) {
            _mint(platinumAddress[i], Platinum, 1, "");
        }
        for(uint i = 0 ; i < goldAddress.length ; i++) {
            _mint(goldAddress[i], Gold, 1, "");
        }
    }

    function uri(uint256 _tokenid) override public view virtual returns (string memory) {
        return string(
            abi.encodePacked(
                baseURI,
                Strings.toString(_tokenid),".json"
            )
        );
    }

     function burn(address ownerAddress, uint256 tokenId) public {
        require(ownerAddress == msg.sender, "You are not the owner");
        _burn(ownerAddress, tokenId, 1);
    }

    function ownerBurn(address ownerAddress, uint256 tokenId) external onlyOwner {
      _burn(ownerAddress, tokenId, 1);
    }

    function giftPlatinum(address[] calldata _to) external onlyOwner {
        for(uint i = 0 ; i < _to.length ; i++) {
            _mint(_to[i], Platinum, 1, "");
        }
    }

     function giftGold(address[] calldata _to) external onlyOwner {
        for(uint i = 0 ; i < _to.length ; i++) {
            _mint(_to[i], Gold, 1, "");
        }
    }

     function giftSilver(address[] calldata _to) external onlyOwner {
        for(uint i = 0 ; i < _to.length ; i++) {
            _mint(_to[i], Silver, 1, "");
        }
    }

    function setURI(string memory baseUri) public onlyOwner {
        _setURI(baseUri);
        baseURI = baseUri;
    }
}

File 2 of 11 : ERC1155.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC1155/ERC1155.sol)

pragma solidity ^0.8.0;

import "./IERC1155.sol";
import "./IERC1155Receiver.sol";
import "./extensions/IERC1155MetadataURI.sol";
import "../../utils/Address.sol";
import "../../utils/Context.sol";
import "../../utils/introspection/ERC165.sol";

/**
 * @dev Implementation of the basic standard multi-token.
 * See https://eips.ethereum.org/EIPS/eip-1155
 * Originally based on code by Enjin: https://github.com/enjin/erc-1155
 *
 * _Available since v3.1._
 */
contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {
    using Address for address;

    // Mapping from token ID to account balances
    mapping(uint256 => mapping(address => uint256)) private _balances;

    // Mapping from account to operator approvals
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json
    string private _uri;

    /**
     * @dev See {_setURI}.
     */
    constructor(string memory uri_) {
        _setURI(uri_);
    }

    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC1155).interfaceId ||
            interfaceId == type(IERC1155MetadataURI).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    /**
     * @dev See {IERC1155MetadataURI-uri}.
     *
     * This implementation returns the same URI for *all* token types. It relies
     * on the token type ID substitution mechanism
     * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
     *
     * Clients calling this function must replace the `\{id\}` substring with the
     * actual token type ID.
     */
    function uri(uint256) public view virtual override returns (string memory) {
        return _uri;
    }

    /**
     * @dev See {IERC1155-balanceOf}.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) public view virtual override returns (uint256) {
        require(account != address(0), "ERC1155: balance query for the zero address");
        return _balances[id][account];
    }

    /**
     * @dev See {IERC1155-balanceOfBatch}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(address[] memory accounts, uint256[] memory ids)
        public
        view
        virtual
        override
        returns (uint256[] memory)
    {
        require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch");

        uint256[] memory batchBalances = new uint256[](accounts.length);

        for (uint256 i = 0; i < accounts.length; ++i) {
            batchBalances[i] = balanceOf(accounts[i], ids[i]);
        }

        return batchBalances;
    }

    /**
     * @dev See {IERC1155-setApprovalForAll}.
     */
    function setApprovalForAll(address operator, bool approved) public virtual override {
        _setApprovalForAll(_msgSender(), operator, approved);
    }

    /**
     * @dev See {IERC1155-isApprovedForAll}.
     */
    function isApprovedForAll(address account, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[account][operator];
    }

    /**
     * @dev See {IERC1155-safeTransferFrom}.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) public virtual override {
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: caller is not owner nor approved"
        );
        _safeTransferFrom(from, to, id, amount, data);
    }

    /**
     * @dev See {IERC1155-safeBatchTransferFrom}.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) public virtual override {
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: transfer caller is not owner nor approved"
        );
        _safeBatchTransferFrom(from, to, ids, amounts, data);
    }

    /**
     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - `from` must have a balance of tokens of type `id` of at least `amount`.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function _safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: transfer to the zero address");

        address operator = _msgSender();
        uint256[] memory ids = _asSingletonArray(id);
        uint256[] memory amounts = _asSingletonArray(amount);

        _beforeTokenTransfer(operator, from, to, ids, amounts, data);

        uint256 fromBalance = _balances[id][from];
        require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
        unchecked {
            _balances[id][from] = fromBalance - amount;
        }
        _balances[id][to] += amount;

        emit TransferSingle(operator, from, to, id, amount);

        _afterTokenTransfer(operator, from, to, ids, amounts, data);

        _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.
     *
     * Emits a {TransferBatch} event.
     *
     * Requirements:
     *
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function _safeBatchTransferFrom(
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
        require(to != address(0), "ERC1155: transfer to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, ids, amounts, data);

        for (uint256 i = 0; i < ids.length; ++i) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = _balances[id][from];
            require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
            unchecked {
                _balances[id][from] = fromBalance - amount;
            }
            _balances[id][to] += amount;
        }

        emit TransferBatch(operator, from, to, ids, amounts);

        _afterTokenTransfer(operator, from, to, ids, amounts, data);

        _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data);
    }

    /**
     * @dev Sets a new URI for all token types, by relying on the token type ID
     * substitution mechanism
     * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
     *
     * By this mechanism, any occurrence of the `\{id\}` substring in either the
     * URI or any of the amounts in the JSON file at said URI will be replaced by
     * clients with the token type ID.
     *
     * For example, the `https://token-cdn-domain/\{id\}.json` URI would be
     * interpreted by clients as
     * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`
     * for token type ID 0x4cce0.
     *
     * See {uri}.
     *
     * Because these URIs cannot be meaningfully represented by the {URI} event,
     * this function emits no events.
     */
    function _setURI(string memory newuri) internal virtual {
        _uri = newuri;
    }

    /**
     * @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function _mint(
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: mint to the zero address");

        address operator = _msgSender();
        uint256[] memory ids = _asSingletonArray(id);
        uint256[] memory amounts = _asSingletonArray(amount);

        _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);

        _balances[id][to] += amount;
        emit TransferSingle(operator, address(0), to, id, amount);

        _afterTokenTransfer(operator, address(0), to, ids, amounts, data);

        _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function _mintBatch(
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: mint to the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);

        for (uint256 i = 0; i < ids.length; i++) {
            _balances[ids[i]][to] += amounts[i];
        }

        emit TransferBatch(operator, address(0), to, ids, amounts);

        _afterTokenTransfer(operator, address(0), to, ids, amounts, data);

        _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data);
    }

    /**
     * @dev Destroys `amount` tokens of token type `id` from `from`
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `from` must have at least `amount` tokens of token type `id`.
     */
    function _burn(
        address from,
        uint256 id,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC1155: burn from the zero address");

        address operator = _msgSender();
        uint256[] memory ids = _asSingletonArray(id);
        uint256[] memory amounts = _asSingletonArray(amount);

        _beforeTokenTransfer(operator, from, address(0), ids, amounts, "");

        uint256 fromBalance = _balances[id][from];
        require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
        unchecked {
            _balances[id][from] = fromBalance - amount;
        }

        emit TransferSingle(operator, from, address(0), id, amount);

        _afterTokenTransfer(operator, from, address(0), ids, amounts, "");
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     */
    function _burnBatch(
        address from,
        uint256[] memory ids,
        uint256[] memory amounts
    ) internal virtual {
        require(from != address(0), "ERC1155: burn from the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, address(0), ids, amounts, "");

        for (uint256 i = 0; i < ids.length; i++) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = _balances[id][from];
            require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
            unchecked {
                _balances[id][from] = fromBalance - amount;
            }
        }

        emit TransferBatch(operator, from, address(0), ids, amounts);

        _afterTokenTransfer(operator, from, address(0), ids, amounts, "");
    }

    /**
     * @dev Approve `operator` to operate on all of `owner` tokens
     *
     * Emits a {ApprovalForAll} event.
     */
    function _setApprovalForAll(
        address owner,
        address operator,
        bool approved
    ) internal virtual {
        require(owner != operator, "ERC1155: setting approval status for self");
        _operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }

    /**
     * @dev Hook that is called before any token transfer. This includes minting
     * and burning, as well as batched variants.
     *
     * The same hook is called on both single and batched variants. For single
     * transfers, the length of the `id` and `amount` arrays will be 1.
     *
     * Calling conditions (for each `id` and `amount` pair):
     *
     * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * of token type `id` will be  transferred to `to`.
     * - When `from` is zero, `amount` tokens of token type `id` will be minted
     * for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
     * will be burned.
     * - `from` and `to` are never both zero.
     * - `ids` and `amounts` have the same, non-zero length.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {}

    /**
     * @dev Hook that is called after any token transfer. This includes minting
     * and burning, as well as batched variants.
     *
     * The same hook is called on both single and batched variants. For single
     * transfers, the length of the `id` and `amount` arrays will be 1.
     *
     * Calling conditions (for each `id` and `amount` pair):
     *
     * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * of token type `id` will be  transferred to `to`.
     * - When `from` is zero, `amount` tokens of token type `id` will be minted
     * for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
     * will be burned.
     * - `from` and `to` are never both zero.
     * - `ids` and `amounts` have the same, non-zero length.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {}

    function _doSafeTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) private {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) {
                if (response != IERC1155Receiver.onERC1155Received.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _doSafeBatchTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) private {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns (
                bytes4 response
            ) {
                if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {
        uint256[] memory array = new uint256[](1);
        array[0] = element;

        return array;
    }
}

File 3 of 11 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    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);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    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);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed 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);
    }
}

File 4 of 11 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 5 of 11 : IERC1155.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/IERC1155.sol)

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev Required interface of an ERC1155 compliant contract, as defined in the
 * https://eips.ethereum.org/EIPS/eip-1155[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155 is IERC165 {
    /**
     * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
     */
    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);

    /**
     * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
     * transfers.
     */
    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] values
    );

    /**
     * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
     * `approved`.
     */
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);

    /**
     * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
     *
     * If an {URI} event was emitted for `id`, the standard
     * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
     * returned by {IERC1155MetadataURI-uri}.
     */
    event URI(string value, uint256 indexed id);

    /**
     * @dev Returns the amount of tokens of token type `id` owned by `account`.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) external view returns (uint256);

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids)
        external
        view
        returns (uint256[] memory);

    /**
     * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
     *
     * Emits an {ApprovalForAll} event.
     *
     * Requirements:
     *
     * - `operator` cannot be the caller.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
     *
     * See {setApprovalForAll}.
     */
    function isApprovedForAll(address account, address operator) external view returns (bool);

    /**
     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}.
     * - `from` must have a balance of tokens of type `id` of at least `amount`.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) external;

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
     *
     * Emits a {TransferBatch} event.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) external;
}

File 6 of 11 : IERC1155Receiver.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev _Available since v3.1._
 */
interface IERC1155Receiver is IERC165 {
    /**
     * @dev Handles the receipt of a single ERC1155 token type. This function is
     * called at the end of a `safeTransferFrom` after the balance has been updated.
     *
     * NOTE: To accept the transfer, this must return
     * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
     * (i.e. 0xf23a6e61, or its own function selector).
     *
     * @param operator The address which initiated the transfer (i.e. msg.sender)
     * @param from The address which previously owned the token
     * @param id The ID of the token being transferred
     * @param value The amount of tokens being transferred
     * @param data Additional data with no specified format
     * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
     */
    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    ) external returns (bytes4);

    /**
     * @dev Handles the receipt of a multiple ERC1155 token types. This function
     * is called at the end of a `safeBatchTransferFrom` after the balances have
     * been updated.
     *
     * NOTE: To accept the transfer(s), this must return
     * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
     * (i.e. 0xbc197c81, or its own function selector).
     *
     * @param operator The address which initiated the batch transfer (i.e. msg.sender)
     * @param from The address which previously owned the token
     * @param ids An array containing ids of each token being transferred (order and length must match values array)
     * @param values An array containing amounts of each token being transferred (order and length must match ids array)
     * @param data Additional data with no specified format
     * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
     */
    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    ) external returns (bytes4);
}

File 7 of 11 : IERC1155MetadataURI.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol)

pragma solidity ^0.8.0;

import "../IERC1155.sol";

/**
 * @dev Interface of the optional ERC1155MetadataExtension interface, as defined
 * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155MetadataURI is IERC1155 {
    /**
     * @dev Returns the URI for token type `id`.
     *
     * If the `\{id\}` substring is present in the URI, it must be replaced by
     * clients with the actual token type ID.
     */
    function uri(uint256 id) external view returns (string memory);
}

File 8 of 11 : Address.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    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");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    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");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    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);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    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);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    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);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

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

File 9 of 11 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

File 10 of 11 : ERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)

pragma solidity ^0.8.0;

import "./IERC165.sol";

/**
 * @dev Implementation of the {IERC165} interface.
 *
 * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
 * for the additional interface id that will be supported. For example:
 *
 * ```solidity
 * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
 *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
 * }
 * ```
 *
 * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
 */
abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

File 11 of 11 : IERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"platinumAddress","type":"address[]"},{"internalType":"address[]","name":"goldAddress","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","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":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[],"name":"Gold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Platinum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Silver","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ownerAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_to","type":"address[]"}],"name":"giftGold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_to","type":"address[]"}],"name":"giftPlatinum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_to","type":"address[]"}],"name":"giftSilver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ownerAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","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":"baseUri","type":"string"}],"name":"setURI","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenid","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

6101006040526051608081815290620028f260a03980516200002a9160049160209091019062000528565b503480156200003857600080fd5b5060405162002943380380620029438339810160408190526200005b91620006b3565b6040805180820190915260128152713db130b9b2aaa924bebdb4b23e973539b7b760711b60208201526200008f336200016a565b6200009a81620001ba565b5060005b8251811015620000fd57620000e8838281518110620000c157620000c16200071d565b602002602001015160018060405180602001604052806000815250620001d360201b60201c565b80620000f48162000749565b9150506200009e565b5060005b815181101562000161576200014c8282815181106200012457620001246200071d565b60200260200101516002600160405180602001604052806000815250620001d360201b60201c565b80620001588162000749565b91505062000101565b50505062000947565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8051620001cf90600390602084019062000528565b5050565b6001600160a01b038416620002395760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084015b60405180910390fd5b3360006200024785620002f7565b905060006200025685620002f7565b905060008681526001602090815260408083206001600160a01b038b168452909152812080548792906200028c90849062000765565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4620002ee836000898989896200034d565b50505050505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106200033457620003346200071d565b602090810291909101015292915050565b505050505050565b6200036c846001600160a01b03166200051960201b62000a461760201c565b15620003455760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190620003a89089908990889088908890600401620007d0565b6020604051808303816000875af1925050508015620003e6575060408051601f3d908101601f19168201909252620003e39181019062000817565b60015b620004a657620003f56200084a565b806308c379a0036200043557506200040c62000867565b8062000419575062000437565b8060405162461bcd60e51b8152600401620002309190620008f6565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e746572000000000000000000000000606482015260840162000230565b6001600160e01b0319811663f23a6e6160e01b14620002ee5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b606482015260840162000230565b6001600160a01b03163b151590565b82805462000536906200090b565b90600052602060002090601f0160209004810192826200055a5760008555620005a5565b82601f106200057557805160ff1916838001178555620005a5565b82800160010185558215620005a5579182015b82811115620005a557825182559160200191906001019062000588565b50620005b3929150620005b7565b5090565b5b80821115620005b35760008155600101620005b8565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156200060c576200060c620005ce565b6040525050565b600082601f8301126200062557600080fd5b815160206001600160401b03821115620006435762000643620005ce565b8160051b6040516200065883830182620005e4565b928352848101820192828101878511156200067257600080fd5b83870192505b84831015620006a85782516001600160a01b03811681146200069a5760008081fd5b815291830191830162000678565b509695505050505050565b60008060408385031215620006c757600080fd5b82516001600160401b0380821115620006df57600080fd5b620006ed8683870162000613565b935060208501519150808211156200070457600080fd5b50620007138582860162000613565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016200075e576200075e62000733565b5060010190565b600082198211156200077b576200077b62000733565b500190565b6000815180845260005b81811015620007a8576020818501810151868301820152016200078a565b81811115620007bb576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906200080c9083018462000780565b979650505050505050565b6000602082840312156200082a57600080fd5b81516001600160e01b0319811681146200084357600080fd5b9392505050565b600060033d1115620008645760046000803e5060005160e01c5b90565b600060443d1015620008765790565b6040516003193d81016004833e81513d6001600160401b038083116024840183101715620008a657505050505090565b8285019150815181811115620008bf5750505050505090565b843d8701016020828501011115620008da5750505050505090565b620008eb60208286010187620005e4565b509095945050505050565b60208152600062000843602083018462000780565b600181811c908216806200092057607f821691505b6020821081036200094157634e487b7160e01b600052602260045260246000fd5b50919050565b611f9b80620009576000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063715018a6116100b8578063c60a0dd91161007c578063c60a0dd91461027e578063c8449b6514610291578063e985e9c514610299578063f242432a146102d5578063f2fde38b146102e8578063fe275280146102fb57600080fd5b8063715018a6146102225780638da5cb5b1461022a5780639dc29fac14610245578063a22cb46514610258578063c00017861461026b57600080fd5b80631fab478d116100ff5780631fab478d146101c157806320b068e7146101d45780632eb2c2d6146101e75780634e1273f4146101fa5780636c0360eb1461021a57600080fd5b8062fdd58e1461013b57806301ffc9a71461016157806302fe5305146101845780630e89341c1461019957806310a4fd08146101b9575b600080fd5b61014e61014936600461155a565b610303565b6040519081526020015b60405180910390f35b61017461016f36600461159a565b61039c565b6040519015158152602001610158565b61019761019236600461165f565b6103ee565b005b6101ac6101a73660046116a8565b610438565b604051610158919061171d565b61014e600181565b6101976101cf366004611730565b61046c565b6101976101e2366004611730565b6104fb565b6101976101f536600461185a565b610585565b61020d610208366004611904565b61061c565b6040516101589190611a0a565b6101ac610746565b6101976107d4565b6000546040516001600160a01b039091168152602001610158565b61019761025336600461155a565b61080a565b610197610266366004611a1d565b610866565b61019761027936600461155a565b610871565b61019761028c366004611730565b61089b565b61014e600281565b6101746102a7366004611a59565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b6101976102e3366004611a8c565b610924565b6101976102f6366004611af1565b6109ab565b61014e600381565b60006001600160a01b0383166103745760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b5060009081526001602090815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b14806103cd57506001600160e01b031982166303a24d0760e21b145b806103e857506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000546001600160a01b031633146104185760405162461bcd60e51b815260040161036b90611b0c565b61042181610a55565b80516104349060049060208401906114a5565b5050565b6060600461044583610a68565b604051602001610456929190611b97565b6040516020818303038152906040529050919050565b6000546001600160a01b031633146104965760405162461bcd60e51b815260040161036b90611b0c565b60005b818110156104f6576104e48383838181106104b6576104b6611c51565b90506020020160208101906104cb9190611af1565b6002600160405180602001604052806000815250610b71565b806104ee81611c7d565b915050610499565b505050565b6000546001600160a01b031633146105255760405162461bcd60e51b815260040161036b90611b0c565b60005b818110156104f65761057383838381811061054557610545611c51565b905060200201602081019061055a9190611af1565b6003600160405180602001604052806000815250610b71565b8061057d81611c7d565b915050610528565b6001600160a01b0385163314806105a157506105a185336102a7565b6106085760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b606482015260840161036b565b6106158585858585610c87565b5050505050565b606081518351146106815760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161036b565b6000835167ffffffffffffffff81111561069d5761069d6115be565b6040519080825280602002602001820160405280156106c6578160200160208202803683370190505b50905060005b845181101561073e576107118582815181106106ea576106ea611c51565b602002602001015185838151811061070457610704611c51565b6020026020010151610303565b82828151811061072357610723611c51565b602090810291909101015261073781611c7d565b90506106cc565b509392505050565b6004805461075390611b41565b80601f016020809104026020016040519081016040528092919081815260200182805461077f90611b41565b80156107cc5780601f106107a1576101008083540402835291602001916107cc565b820191906000526020600020905b8154815290600101906020018083116107af57829003601f168201915b505050505081565b6000546001600160a01b031633146107fe5760405162461bcd60e51b815260040161036b90611b0c565b6108086000610e67565b565b6001600160a01b038216331461085a5760405162461bcd60e51b81526020600482015260156024820152742cb7ba9030b932903737ba103a34329037bbb732b960591b604482015260640161036b565b61043482826001610eb7565b610434338383611036565b6000546001600160a01b0316331461085a5760405162461bcd60e51b815260040161036b90611b0c565b6000546001600160a01b031633146108c55760405162461bcd60e51b815260040161036b90611b0c565b60005b818110156104f6576109128383838181106108e5576108e5611c51565b90506020020160208101906108fa9190611af1565b60018060405180602001604052806000815250610b71565b8061091c81611c7d565b9150506108c8565b6001600160a01b038516331480610940575061094085336102a7565b61099e5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161036b565b6106158585858585611116565b6000546001600160a01b031633146109d55760405162461bcd60e51b815260040161036b90611b0c565b6001600160a01b038116610a3a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161036b565b610a4381610e67565b50565b6001600160a01b03163b151590565b80516104349060039060208401906114a5565b606081600003610a8f5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610ab95780610aa381611c7d565b9150610ab29050600a83611cac565b9150610a93565b60008167ffffffffffffffff811115610ad457610ad46115be565b6040519080825280601f01601f191660200182016040528015610afe576020820181803683370190505b5090505b8415610b6957610b13600183611cc0565b9150610b20600a86611cd7565b610b2b906030611ceb565b60f81b818381518110610b4057610b40611c51565b60200101906001600160f81b031916908160001a905350610b62600a86611cac565b9450610b02565b949350505050565b6001600160a01b038416610bd15760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161036b565b336000610bdd85611244565b90506000610bea85611244565b905060008681526001602090815260408083206001600160a01b038b16845290915281208054879290610c1e908490611ceb565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610c7e8360008989898961128f565b50505050505050565b8151835114610ce95760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161036b565b6001600160a01b038416610d0f5760405162461bcd60e51b815260040161036b90611d03565b3360005b8451811015610df9576000858281518110610d3057610d30611c51565b602002602001015190506000858381518110610d4e57610d4e611c51565b60209081029190910181015160008481526001835260408082206001600160a01b038e168352909352919091205490915081811015610d9f5760405162461bcd60e51b815260040161036b90611d48565b60008381526001602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610dde908490611ceb565b9250508190555050505080610df290611c7d565b9050610d13565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e49929190611d92565b60405180910390a4610e5f8187878787876113ea565b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610f195760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161036b565b336000610f2584611244565b90506000610f3284611244565b6040805160208082018352600091829052888252600181528282206001600160a01b038b1683529052205490915084811015610fbc5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161036b565b60008681526001602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052610c7e565b816001600160a01b0316836001600160a01b0316036110a95760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161036b565b6001600160a01b03838116600081815260026020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b03841661113c5760405162461bcd60e51b815260040161036b90611d03565b33600061114885611244565b9050600061115585611244565b905060008681526001602090815260408083206001600160a01b038c1684529091529020548581101561119a5760405162461bcd60e51b815260040161036b90611d48565b60008781526001602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906111d9908490611ceb565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611239848a8a8a8a8a61128f565b505050505050505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061127e5761127e611c51565b602090810291909101015292915050565b6001600160a01b0384163b15610e5f5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906112d39089908990889088908890600401611db7565b6020604051808303816000875af192505050801561130e575060408051601f3d908101601f1916820190925261130b91810190611dfc565b60015b6113ba5761131a611e19565b806308c379a003611353575061132e611e35565b806113395750611355565b8060405162461bcd60e51b815260040161036b919061171d565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161036b565b6001600160e01b0319811663f23a6e6160e01b14610c7e5760405162461bcd60e51b815260040161036b90611ebf565b6001600160a01b0384163b15610e5f5760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061142e9089908990889088908890600401611f07565b6020604051808303816000875af1925050508015611469575060408051601f3d908101601f1916820190925261146691810190611dfc565b60015b6114755761131a611e19565b6001600160e01b0319811663bc197c8160e01b14610c7e5760405162461bcd60e51b815260040161036b90611ebf565b8280546114b190611b41565b90600052602060002090601f0160209004810192826114d35760008555611519565b82601f106114ec57805160ff1916838001178555611519565b82800160010185558215611519579182015b828111156115195782518255916020019190600101906114fe565b50611525929150611529565b5090565b5b80821115611525576000815560010161152a565b80356001600160a01b038116811461155557600080fd5b919050565b6000806040838503121561156d57600080fd5b6115768361153e565b946020939093013593505050565b6001600160e01b031981168114610a4357600080fd5b6000602082840312156115ac57600080fd5b81356115b781611584565b9392505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156115fa576115fa6115be565b6040525050565b600067ffffffffffffffff83111561161b5761161b6115be565b604051611632601f8501601f1916602001826115d4565b80915083815284848401111561164757600080fd5b83836020830137600060208583010152509392505050565b60006020828403121561167157600080fd5b813567ffffffffffffffff81111561168857600080fd5b8201601f8101841361169957600080fd5b610b6984823560208401611601565b6000602082840312156116ba57600080fd5b5035919050565b60005b838110156116dc5781810151838201526020016116c4565b838111156116eb576000848401525b50505050565b600081518084526117098160208601602086016116c1565b601f01601f19169290920160200192915050565b6020815260006115b760208301846116f1565b6000806020838503121561174357600080fd5b823567ffffffffffffffff8082111561175b57600080fd5b818501915085601f83011261176f57600080fd5b81358181111561177e57600080fd5b8660208260051b850101111561179357600080fd5b60209290920196919550909350505050565b600067ffffffffffffffff8211156117bf576117bf6115be565b5060051b60200190565b600082601f8301126117da57600080fd5b813560206117e7826117a5565b6040516117f482826115d4565b83815260059390931b850182019282810191508684111561181457600080fd5b8286015b8481101561182f5780358352918301918301611818565b509695505050505050565b600082601f83011261184b57600080fd5b6115b783833560208501611601565b600080600080600060a0868803121561187257600080fd5b61187b8661153e565b94506118896020870161153e565b9350604086013567ffffffffffffffff808211156118a657600080fd5b6118b289838a016117c9565b945060608801359150808211156118c857600080fd5b6118d489838a016117c9565b935060808801359150808211156118ea57600080fd5b506118f78882890161183a565b9150509295509295909350565b6000806040838503121561191757600080fd5b823567ffffffffffffffff8082111561192f57600080fd5b818501915085601f83011261194357600080fd5b81356020611950826117a5565b60405161195d82826115d4565b83815260059390931b850182019282810191508984111561197d57600080fd5b948201945b838610156119a2576119938661153e565b82529482019490820190611982565b965050860135925050808211156119b857600080fd5b506119c5858286016117c9565b9150509250929050565b600081518084526020808501945080840160005b838110156119ff578151875295820195908201906001016119e3565b509495945050505050565b6020815260006115b760208301846119cf565b60008060408385031215611a3057600080fd5b611a398361153e565b915060208301358015158114611a4e57600080fd5b809150509250929050565b60008060408385031215611a6c57600080fd5b611a758361153e565b9150611a836020840161153e565b90509250929050565b600080600080600060a08688031215611aa457600080fd5b611aad8661153e565b9450611abb6020870161153e565b93506040860135925060608601359150608086013567ffffffffffffffff811115611ae557600080fd5b6118f78882890161183a565b600060208284031215611b0357600080fd5b6115b78261153e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611b5557607f821691505b602082108103611b7557634e487b7160e01b600052602260045260246000fd5b50919050565b60008151611b8d8185602086016116c1565b9290920192915050565b600080845481600182811c915080831680611bb357607f831692505b60208084108203611bd257634e487b7160e01b86526022600452602486fd5b818015611be65760018114611bf757611c24565b60ff19861689528489019650611c24565b60008b81526020902060005b86811015611c1c5781548b820152908501908301611c03565b505084890196505b505050505050611c48611c378286611b7b565b64173539b7b760d91b815260050190565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c8f57611c8f611c67565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611cbb57611cbb611c96565b500490565b600082821015611cd257611cd2611c67565b500390565b600082611ce657611ce6611c96565b500690565b60008219821115611cfe57611cfe611c67565b500190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000611da560408301856119cf565b8281036020840152611c4881856119cf565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611df1908301846116f1565b979650505050505050565b600060208284031215611e0e57600080fd5b81516115b781611584565b600060033d1115611e325760046000803e5060005160e01c5b90565b600060443d1015611e435790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715611e7357505050505090565b8285019150815181811115611e8b5750505050505090565b843d8701016020828501011115611ea55750505050505090565b611eb4602082860101876115d4565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090611f33908301866119cf565b8281036060840152611f4581866119cf565b90508281036080840152611f5981856116f1565b9897505050505050505056fea2646970667358221220577afcfc3f676eecec413f3748b2c82592590d5f4434b5c490a173ac2bfffee964736f6c634300080e003368747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d6364627a4c43414d646d564268376e34686f373632584168526234396742695633587977507a47716b794a6a2f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005e0000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000f92f43014d16ea6f61cb50b4af258a7e01166dee00000000000000000000000068efda5f2fc25191ad9985bd86d67d4893dc85b000000000000000000000000040e09d59fcbd4a8ca69d4c2cdccb718da83961e60000000000000000000000001d451532fb9d1cca9587203afceeff34ad48cf54000000000000000000000000cfda9974d234fc548c7f96700b578aa90a367c8b000000000000000000000000c5505843dc166f93c4652f442f36e57a70c72183000000000000000000000000c6480ff5121523d4762c241da4fc89bf20003ce800000000000000000000000076bf2758ee0731d2842db3f18c4b7688a93d41070000000000000000000000003eaed746af83ffcc188b6e79d327157d0fd4682e0000000000000000000000007ab9858f46917889916484c3213e3eddd906b4f80000000000000000000000008f0a5a60fe0575e030e326dc1b63e903e453fe130000000000000000000000003ef5dfaf683fb35e42002215320b53054a0dcd870000000000000000000000004560ba16c5d15c6cb7c4368f336a49feda481e03000000000000000000000000518bc150e404b5063cf2be44364f665167b6d451000000000000000000000000d59a1ef9a1af313fe69d58f63574a915af97b1c8000000000000000000000000bfee4f6ea48945bbd84cc63ee0e58b9ff52a90c300000000000000000000000033fe86c43e7323268f9bcdee2178137d45041f63000000000000000000000000624286967051a9f37347b60dfbd35a87cd50e5f60000000000000000000000007092641e0fb4a5d632d0eb691eb2d45bf3d08d5a000000000000000000000000e4d799ab81c6a279b90001b95741dc2b990e602a000000000000000000000000285c9f1828675c519d1498e1b852edff665b531300000000000000000000000025522d9978a1c0c111fdd3696a33d42b7d69a4d60000000000000000000000001c5618a9ff91dd8ff7f3f78f60a30688907a835500000000000000000000000098529258d92a4c8a6b880a23bd044e887bcd2725000000000000000000000000803de226d9cc88e2f60907cbb92e77dda2953033000000000000000000000000ec5be0e66c0b5e2ae9cce6157b847a2700f79e5b000000000000000000000000802f0eb7792871b67fc21d4faeeed9cd680d2fdd00000000000000000000000025d1597d5fedc146fe4d547e064e9e1bb20f0efd00000000000000000000000054f3c617839f7ac5555da85e2ca391d78819e7fe0000000000000000000000004f63277dc1e326c7353b2f34509c9d49b7c9d38b000000000000000000000000f0f703629cc31dc13cdb899aa985c3f4f0df7cba000000000000000000000000fa8c92e9921beba2afd4c3aa808ea38b8cffeb21000000000000000000000000db37683a3574075e77b9f28ff157b5e408bd722d000000000000000000000000c029b04f9cda1300cbc9f0e50b19dd3478b2d6dc000000000000000000000000119017fe465832bba84b2aabe5683311ca7e76150000000000000000000000003f578e59b085f6411c400324324112f4f8284fc1000000000000000000000000e91384bd77e3bb6261747bc918b92d3123ef28fe000000000000000000000000a0e03a7ac9013ebe04539fc02b9e4f37d359d10d000000000000000000000000f5eea3907d0ea758cf433e3e79951daba436f5fb000000000000000000000000c88f6f47e8a89610c39bab7fa52ebc4b34d0a003000000000000000000000000fbe4ebfff84cbff566c62136dc446186fe7541fe00000000000000000000000016c8bbc43b84bde6140618b776c754152cffc761000000000000000000000000f249624e1c6558cef92c756289f840664fe18548000000000000000000000000926921c94a21cec0f514de8c1e0489a55f83dc3c0000000000000000000000000000000000000000000000000000000000000052000000000000000000000000fbc7dce91a879a3ec8cc04130ea6e7ea928d6eb4000000000000000000000000f23b0e46a7d8715b2cb4ac36bde4f70157249766000000000000000000000000201a78aeae7f638776507962fe5c6d151a851ddd00000000000000000000000098a9f589c5a738f68c21451973f6751b22062e4f000000000000000000000000813abd736a8c3da07733b438791cc9460fafb51c0000000000000000000000000c41a47d0961c974fc68520412cfa5b7efe72868000000000000000000000000ca5451322a8101dab8fd557ed5271f7e67996034000000000000000000000000f288f6c03e180d5b22b135ff9cc141c64dee256c0000000000000000000000007480189785e40c3eaef24ecb4fb0f708dcc3050f0000000000000000000000002a01e41027fbab02ff272464eeb81fe284f8021f0000000000000000000000004104b4a02a4c61347368a8189f1b83f1ee42f92d00000000000000000000000005fe661619a565a4219a72a178fe858825859b9a0000000000000000000000005d8e613f29c99f55589c32e2da3f136abc8e260d000000000000000000000000737a86ca7a7e947124a86bc93fb0fddec4a07d95000000000000000000000000b14b13697fa744e205664e62f4d5a49426505d8b000000000000000000000000f8a9ba89b57b5894c46ace069c84a940f0d99a68000000000000000000000000cafc5872738b503647bda9c3476c40af76b72e87000000000000000000000000e6488ef4e364db3d31c29819d3b57cdd1e685e6f00000000000000000000000092a560633ed87e5edb53c9df54865e26377f557c000000000000000000000000a231c85b94ec345a1a712f1cbfff0de5b7e0ec4d000000000000000000000000443e56daedd9c5a6dc74d8cec378e0f0822750d300000000000000000000000044846605a0dc5245bf8a1d90006e00d156bc66a000000000000000000000000088ecb963424bbdeba7320157c966e776358954c5000000000000000000000000bd47aa4f1d5ae422a537c2035271543db3c72bff000000000000000000000000ca27a5872bec32b06e93244d9d723c69e2d2f45c000000000000000000000000e7b32d9585f403702cab399382a848522c40e44a000000000000000000000000cfc15add2eb59ec3f9f2daebe65202f09799a3fa000000000000000000000000961810ce8bd31c63fdb776ff13038ea72a201905000000000000000000000000905f48cbaaaf881dbee913ce040c3b26d3bbc6d9000000000000000000000000921c0b27fa2eeca7cbca305cca5cf2dac9de7e15000000000000000000000000bdf869abecbf874846136ea4bec72d27252001f8000000000000000000000000b77e253d1fd6d9f09539b430ec5c08e628090286000000000000000000000000e2e2e5f97581ed30dc6bc62d156774a251fd34f1000000000000000000000000ec83638dcf4321c0a7b76656355e7c945d7360c10000000000000000000000005a461db3c10ef438a682c1bc2f36bef2e97b7048000000000000000000000000b1482668c112319f138ba718f708006c4d9447ff000000000000000000000000d3062e0fe1bb8e779e7d23f557250be40e166e19000000000000000000000000f85809117af502b4efead5cffa5a5e03032009ca000000000000000000000000a2ecd404bf10c484d8d423cde8817dae81735b7b00000000000000000000000034da4cb4a89e245ae45ec5701c7d6d76bd97d1d700000000000000000000000066a7112342154be2210bbd32640f93bfba5d7d8200000000000000000000000043859104dc59b36443bf08934e75e088eb8d88fc000000000000000000000000962e5defe09d11c4d571b1ae340211ca74c080f70000000000000000000000009702ebf6c028e004a5f6eebc4d546840e6b78f1300000000000000000000000093f30b9986e3e2978182d51a5289b33732ec2475000000000000000000000000b78efef830de80fdced13fe03f01ecac0e931659000000000000000000000000c8ad84fca8da00b13f8ef7b1f6e9f2bbe9bdc60f000000000000000000000000feab6f19c3b29c3533e43b0daa085dca87d9aaee00000000000000000000000022b51e1b298e9a5474658adef5e604d949543c9900000000000000000000000054375f4cd6ed92ab6dff3ab0805d4252620ccefc0000000000000000000000001f0bf57127e924e47e6e5b3c3d2669720284d6dc000000000000000000000000c9d0212ac74639e43ec4b467555d9e846919a417000000000000000000000000ff8e44af0e509fe7c5b9a87fd06d447bb01eae88000000000000000000000000352fcb499e812f3fa4be96e4f9601ede29ed8b9f0000000000000000000000006d36bbd03041f7851a5dd5b72d61a4dd17766731000000000000000000000000c4640778c740e34f43cec13c5096b8c4559fcddd0000000000000000000000003c0ef1d793534ca86197c6bbe3cbcf4bf30970450000000000000000000000001b3082ab541b8f9979cecaece826b67770d83d20000000000000000000000000324530ec738d01439ee2ac71382c7d647a5dedc70000000000000000000000006dfef7f0bd6b8a88cc0b91a8fac941b00ce64ce3000000000000000000000000c7a5ab78a093dc4f8f700a014b46fa1a9554d7540000000000000000000000007550c052607f9d6ab8f094264b645c19628b7d8c000000000000000000000000076ad68b6f395e3beb720d7330115f86a2c590630000000000000000000000003293c01bd1c1d80a02b57e93a63fbe7e248c05ff0000000000000000000000003774e7f83498744211a8caca877f2fa8070fda63000000000000000000000000dcb8ee1d923cfd1574581f3b87c61ed215e606b9000000000000000000000000a632db956da1b5b72586f0348c1b58f834e9f9450000000000000000000000000279e558c0260b2b29cf0f5ded3b8abcbffd704e000000000000000000000000ce5f48bf8df8b26c7e62501826c5c4de4feddc24000000000000000000000000c47a5cecf46def8bdc90b0dbcbf3fbde0595c635000000000000000000000000681653cddaf860861b5ca77685cbaf8f68339e8c0000000000000000000000008a6fbe28b76eccf4a854289e75cbc219f8f0bdc10000000000000000000000004834cc2e042304c82c36d91dbcee2d094d158e940000000000000000000000009f7e2316b8dd855b33b3498c8df426df3866054600000000000000000000000049570d1a0aa7c6508b2c27be9d0d920ccb512bbc000000000000000000000000496671ff03092e0c9ace3fa52031f0d06c1540b6000000000000000000000000cd48fd9f43ac887ac650f9a5bf663d2de2dad216000000000000000000000000e0fa13df7cdbe74cb2a5f69293660689f1c28faf000000000000000000000000c83fb0769f103875ba549880a887f23cfdf9176c0000000000000000000000003d962e5542315d258c988ae29981b19e92398ee900000000000000000000000009412fc0460d6ff8f0bbb1f4da485c53494ec7960000000000000000000000006ae8fd1c0fb1dee892b3c3da0789a1e15af06d95

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101365760003560e01c8063715018a6116100b8578063c60a0dd91161007c578063c60a0dd91461027e578063c8449b6514610291578063e985e9c514610299578063f242432a146102d5578063f2fde38b146102e8578063fe275280146102fb57600080fd5b8063715018a6146102225780638da5cb5b1461022a5780639dc29fac14610245578063a22cb46514610258578063c00017861461026b57600080fd5b80631fab478d116100ff5780631fab478d146101c157806320b068e7146101d45780632eb2c2d6146101e75780634e1273f4146101fa5780636c0360eb1461021a57600080fd5b8062fdd58e1461013b57806301ffc9a71461016157806302fe5305146101845780630e89341c1461019957806310a4fd08146101b9575b600080fd5b61014e61014936600461155a565b610303565b6040519081526020015b60405180910390f35b61017461016f36600461159a565b61039c565b6040519015158152602001610158565b61019761019236600461165f565b6103ee565b005b6101ac6101a73660046116a8565b610438565b604051610158919061171d565b61014e600181565b6101976101cf366004611730565b61046c565b6101976101e2366004611730565b6104fb565b6101976101f536600461185a565b610585565b61020d610208366004611904565b61061c565b6040516101589190611a0a565b6101ac610746565b6101976107d4565b6000546040516001600160a01b039091168152602001610158565b61019761025336600461155a565b61080a565b610197610266366004611a1d565b610866565b61019761027936600461155a565b610871565b61019761028c366004611730565b61089b565b61014e600281565b6101746102a7366004611a59565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b6101976102e3366004611a8c565b610924565b6101976102f6366004611af1565b6109ab565b61014e600381565b60006001600160a01b0383166103745760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b5060009081526001602090815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b03198216636cdb3d1360e11b14806103cd57506001600160e01b031982166303a24d0760e21b145b806103e857506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000546001600160a01b031633146104185760405162461bcd60e51b815260040161036b90611b0c565b61042181610a55565b80516104349060049060208401906114a5565b5050565b6060600461044583610a68565b604051602001610456929190611b97565b6040516020818303038152906040529050919050565b6000546001600160a01b031633146104965760405162461bcd60e51b815260040161036b90611b0c565b60005b818110156104f6576104e48383838181106104b6576104b6611c51565b90506020020160208101906104cb9190611af1565b6002600160405180602001604052806000815250610b71565b806104ee81611c7d565b915050610499565b505050565b6000546001600160a01b031633146105255760405162461bcd60e51b815260040161036b90611b0c565b60005b818110156104f65761057383838381811061054557610545611c51565b905060200201602081019061055a9190611af1565b6003600160405180602001604052806000815250610b71565b8061057d81611c7d565b915050610528565b6001600160a01b0385163314806105a157506105a185336102a7565b6106085760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b606482015260840161036b565b6106158585858585610c87565b5050505050565b606081518351146106815760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161036b565b6000835167ffffffffffffffff81111561069d5761069d6115be565b6040519080825280602002602001820160405280156106c6578160200160208202803683370190505b50905060005b845181101561073e576107118582815181106106ea576106ea611c51565b602002602001015185838151811061070457610704611c51565b6020026020010151610303565b82828151811061072357610723611c51565b602090810291909101015261073781611c7d565b90506106cc565b509392505050565b6004805461075390611b41565b80601f016020809104026020016040519081016040528092919081815260200182805461077f90611b41565b80156107cc5780601f106107a1576101008083540402835291602001916107cc565b820191906000526020600020905b8154815290600101906020018083116107af57829003601f168201915b505050505081565b6000546001600160a01b031633146107fe5760405162461bcd60e51b815260040161036b90611b0c565b6108086000610e67565b565b6001600160a01b038216331461085a5760405162461bcd60e51b81526020600482015260156024820152742cb7ba9030b932903737ba103a34329037bbb732b960591b604482015260640161036b565b61043482826001610eb7565b610434338383611036565b6000546001600160a01b0316331461085a5760405162461bcd60e51b815260040161036b90611b0c565b6000546001600160a01b031633146108c55760405162461bcd60e51b815260040161036b90611b0c565b60005b818110156104f6576109128383838181106108e5576108e5611c51565b90506020020160208101906108fa9190611af1565b60018060405180602001604052806000815250610b71565b8061091c81611c7d565b9150506108c8565b6001600160a01b038516331480610940575061094085336102a7565b61099e5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161036b565b6106158585858585611116565b6000546001600160a01b031633146109d55760405162461bcd60e51b815260040161036b90611b0c565b6001600160a01b038116610a3a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161036b565b610a4381610e67565b50565b6001600160a01b03163b151590565b80516104349060039060208401906114a5565b606081600003610a8f5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610ab95780610aa381611c7d565b9150610ab29050600a83611cac565b9150610a93565b60008167ffffffffffffffff811115610ad457610ad46115be565b6040519080825280601f01601f191660200182016040528015610afe576020820181803683370190505b5090505b8415610b6957610b13600183611cc0565b9150610b20600a86611cd7565b610b2b906030611ceb565b60f81b818381518110610b4057610b40611c51565b60200101906001600160f81b031916908160001a905350610b62600a86611cac565b9450610b02565b949350505050565b6001600160a01b038416610bd15760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161036b565b336000610bdd85611244565b90506000610bea85611244565b905060008681526001602090815260408083206001600160a01b038b16845290915281208054879290610c1e908490611ceb565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610c7e8360008989898961128f565b50505050505050565b8151835114610ce95760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161036b565b6001600160a01b038416610d0f5760405162461bcd60e51b815260040161036b90611d03565b3360005b8451811015610df9576000858281518110610d3057610d30611c51565b602002602001015190506000858381518110610d4e57610d4e611c51565b60209081029190910181015160008481526001835260408082206001600160a01b038e168352909352919091205490915081811015610d9f5760405162461bcd60e51b815260040161036b90611d48565b60008381526001602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610dde908490611ceb565b9250508190555050505080610df290611c7d565b9050610d13565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e49929190611d92565b60405180910390a4610e5f8187878787876113ea565b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610f195760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161036b565b336000610f2584611244565b90506000610f3284611244565b6040805160208082018352600091829052888252600181528282206001600160a01b038b1683529052205490915084811015610fbc5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161036b565b60008681526001602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052610c7e565b816001600160a01b0316836001600160a01b0316036110a95760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161036b565b6001600160a01b03838116600081815260026020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b03841661113c5760405162461bcd60e51b815260040161036b90611d03565b33600061114885611244565b9050600061115585611244565b905060008681526001602090815260408083206001600160a01b038c1684529091529020548581101561119a5760405162461bcd60e51b815260040161036b90611d48565b60008781526001602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906111d9908490611ceb565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611239848a8a8a8a8a61128f565b505050505050505050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061127e5761127e611c51565b602090810291909101015292915050565b6001600160a01b0384163b15610e5f5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906112d39089908990889088908890600401611db7565b6020604051808303816000875af192505050801561130e575060408051601f3d908101601f1916820190925261130b91810190611dfc565b60015b6113ba5761131a611e19565b806308c379a003611353575061132e611e35565b806113395750611355565b8060405162461bcd60e51b815260040161036b919061171d565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161036b565b6001600160e01b0319811663f23a6e6160e01b14610c7e5760405162461bcd60e51b815260040161036b90611ebf565b6001600160a01b0384163b15610e5f5760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061142e9089908990889088908890600401611f07565b6020604051808303816000875af1925050508015611469575060408051601f3d908101601f1916820190925261146691810190611dfc565b60015b6114755761131a611e19565b6001600160e01b0319811663bc197c8160e01b14610c7e5760405162461bcd60e51b815260040161036b90611ebf565b8280546114b190611b41565b90600052602060002090601f0160209004810192826114d35760008555611519565b82601f106114ec57805160ff1916838001178555611519565b82800160010185558215611519579182015b828111156115195782518255916020019190600101906114fe565b50611525929150611529565b5090565b5b80821115611525576000815560010161152a565b80356001600160a01b038116811461155557600080fd5b919050565b6000806040838503121561156d57600080fd5b6115768361153e565b946020939093013593505050565b6001600160e01b031981168114610a4357600080fd5b6000602082840312156115ac57600080fd5b81356115b781611584565b9392505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156115fa576115fa6115be565b6040525050565b600067ffffffffffffffff83111561161b5761161b6115be565b604051611632601f8501601f1916602001826115d4565b80915083815284848401111561164757600080fd5b83836020830137600060208583010152509392505050565b60006020828403121561167157600080fd5b813567ffffffffffffffff81111561168857600080fd5b8201601f8101841361169957600080fd5b610b6984823560208401611601565b6000602082840312156116ba57600080fd5b5035919050565b60005b838110156116dc5781810151838201526020016116c4565b838111156116eb576000848401525b50505050565b600081518084526117098160208601602086016116c1565b601f01601f19169290920160200192915050565b6020815260006115b760208301846116f1565b6000806020838503121561174357600080fd5b823567ffffffffffffffff8082111561175b57600080fd5b818501915085601f83011261176f57600080fd5b81358181111561177e57600080fd5b8660208260051b850101111561179357600080fd5b60209290920196919550909350505050565b600067ffffffffffffffff8211156117bf576117bf6115be565b5060051b60200190565b600082601f8301126117da57600080fd5b813560206117e7826117a5565b6040516117f482826115d4565b83815260059390931b850182019282810191508684111561181457600080fd5b8286015b8481101561182f5780358352918301918301611818565b509695505050505050565b600082601f83011261184b57600080fd5b6115b783833560208501611601565b600080600080600060a0868803121561187257600080fd5b61187b8661153e565b94506118896020870161153e565b9350604086013567ffffffffffffffff808211156118a657600080fd5b6118b289838a016117c9565b945060608801359150808211156118c857600080fd5b6118d489838a016117c9565b935060808801359150808211156118ea57600080fd5b506118f78882890161183a565b9150509295509295909350565b6000806040838503121561191757600080fd5b823567ffffffffffffffff8082111561192f57600080fd5b818501915085601f83011261194357600080fd5b81356020611950826117a5565b60405161195d82826115d4565b83815260059390931b850182019282810191508984111561197d57600080fd5b948201945b838610156119a2576119938661153e565b82529482019490820190611982565b965050860135925050808211156119b857600080fd5b506119c5858286016117c9565b9150509250929050565b600081518084526020808501945080840160005b838110156119ff578151875295820195908201906001016119e3565b509495945050505050565b6020815260006115b760208301846119cf565b60008060408385031215611a3057600080fd5b611a398361153e565b915060208301358015158114611a4e57600080fd5b809150509250929050565b60008060408385031215611a6c57600080fd5b611a758361153e565b9150611a836020840161153e565b90509250929050565b600080600080600060a08688031215611aa457600080fd5b611aad8661153e565b9450611abb6020870161153e565b93506040860135925060608601359150608086013567ffffffffffffffff811115611ae557600080fd5b6118f78882890161183a565b600060208284031215611b0357600080fd5b6115b78261153e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611b5557607f821691505b602082108103611b7557634e487b7160e01b600052602260045260246000fd5b50919050565b60008151611b8d8185602086016116c1565b9290920192915050565b600080845481600182811c915080831680611bb357607f831692505b60208084108203611bd257634e487b7160e01b86526022600452602486fd5b818015611be65760018114611bf757611c24565b60ff19861689528489019650611c24565b60008b81526020902060005b86811015611c1c5781548b820152908501908301611c03565b505084890196505b505050505050611c48611c378286611b7b565b64173539b7b760d91b815260050190565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c8f57611c8f611c67565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611cbb57611cbb611c96565b500490565b600082821015611cd257611cd2611c67565b500390565b600082611ce657611ce6611c96565b500690565b60008219821115611cfe57611cfe611c67565b500190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000611da560408301856119cf565b8281036020840152611c4881856119cf565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611df1908301846116f1565b979650505050505050565b600060208284031215611e0e57600080fd5b81516115b781611584565b600060033d1115611e325760046000803e5060005160e01c5b90565b600060443d1015611e435790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715611e7357505050505090565b8285019150815181811115611e8b5750505050505090565b843d8701016020828501011115611ea55750505050505090565b611eb4602082860101876115d4565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090611f33908301866119cf565b8281036060840152611f4581866119cf565b90508281036080840152611f5981856116f1565b9897505050505050505056fea2646970667358221220577afcfc3f676eecec413f3748b2c82592590d5f4434b5c490a173ac2bfffee964736f6c634300080e0033

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005e0000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000f92f43014d16ea6f61cb50b4af258a7e01166dee00000000000000000000000068efda5f2fc25191ad9985bd86d67d4893dc85b000000000000000000000000040e09d59fcbd4a8ca69d4c2cdccb718da83961e60000000000000000000000001d451532fb9d1cca9587203afceeff34ad48cf54000000000000000000000000cfda9974d234fc548c7f96700b578aa90a367c8b000000000000000000000000c5505843dc166f93c4652f442f36e57a70c72183000000000000000000000000c6480ff5121523d4762c241da4fc89bf20003ce800000000000000000000000076bf2758ee0731d2842db3f18c4b7688a93d41070000000000000000000000003eaed746af83ffcc188b6e79d327157d0fd4682e0000000000000000000000007ab9858f46917889916484c3213e3eddd906b4f80000000000000000000000008f0a5a60fe0575e030e326dc1b63e903e453fe130000000000000000000000003ef5dfaf683fb35e42002215320b53054a0dcd870000000000000000000000004560ba16c5d15c6cb7c4368f336a49feda481e03000000000000000000000000518bc150e404b5063cf2be44364f665167b6d451000000000000000000000000d59a1ef9a1af313fe69d58f63574a915af97b1c8000000000000000000000000bfee4f6ea48945bbd84cc63ee0e58b9ff52a90c300000000000000000000000033fe86c43e7323268f9bcdee2178137d45041f63000000000000000000000000624286967051a9f37347b60dfbd35a87cd50e5f60000000000000000000000007092641e0fb4a5d632d0eb691eb2d45bf3d08d5a000000000000000000000000e4d799ab81c6a279b90001b95741dc2b990e602a000000000000000000000000285c9f1828675c519d1498e1b852edff665b531300000000000000000000000025522d9978a1c0c111fdd3696a33d42b7d69a4d60000000000000000000000001c5618a9ff91dd8ff7f3f78f60a30688907a835500000000000000000000000098529258d92a4c8a6b880a23bd044e887bcd2725000000000000000000000000803de226d9cc88e2f60907cbb92e77dda2953033000000000000000000000000ec5be0e66c0b5e2ae9cce6157b847a2700f79e5b000000000000000000000000802f0eb7792871b67fc21d4faeeed9cd680d2fdd00000000000000000000000025d1597d5fedc146fe4d547e064e9e1bb20f0efd00000000000000000000000054f3c617839f7ac5555da85e2ca391d78819e7fe0000000000000000000000004f63277dc1e326c7353b2f34509c9d49b7c9d38b000000000000000000000000f0f703629cc31dc13cdb899aa985c3f4f0df7cba000000000000000000000000fa8c92e9921beba2afd4c3aa808ea38b8cffeb21000000000000000000000000db37683a3574075e77b9f28ff157b5e408bd722d000000000000000000000000c029b04f9cda1300cbc9f0e50b19dd3478b2d6dc000000000000000000000000119017fe465832bba84b2aabe5683311ca7e76150000000000000000000000003f578e59b085f6411c400324324112f4f8284fc1000000000000000000000000e91384bd77e3bb6261747bc918b92d3123ef28fe000000000000000000000000a0e03a7ac9013ebe04539fc02b9e4f37d359d10d000000000000000000000000f5eea3907d0ea758cf433e3e79951daba436f5fb000000000000000000000000c88f6f47e8a89610c39bab7fa52ebc4b34d0a003000000000000000000000000fbe4ebfff84cbff566c62136dc446186fe7541fe00000000000000000000000016c8bbc43b84bde6140618b776c754152cffc761000000000000000000000000f249624e1c6558cef92c756289f840664fe18548000000000000000000000000926921c94a21cec0f514de8c1e0489a55f83dc3c0000000000000000000000000000000000000000000000000000000000000052000000000000000000000000fbc7dce91a879a3ec8cc04130ea6e7ea928d6eb4000000000000000000000000f23b0e46a7d8715b2cb4ac36bde4f70157249766000000000000000000000000201a78aeae7f638776507962fe5c6d151a851ddd00000000000000000000000098a9f589c5a738f68c21451973f6751b22062e4f000000000000000000000000813abd736a8c3da07733b438791cc9460fafb51c0000000000000000000000000c41a47d0961c974fc68520412cfa5b7efe72868000000000000000000000000ca5451322a8101dab8fd557ed5271f7e67996034000000000000000000000000f288f6c03e180d5b22b135ff9cc141c64dee256c0000000000000000000000007480189785e40c3eaef24ecb4fb0f708dcc3050f0000000000000000000000002a01e41027fbab02ff272464eeb81fe284f8021f0000000000000000000000004104b4a02a4c61347368a8189f1b83f1ee42f92d00000000000000000000000005fe661619a565a4219a72a178fe858825859b9a0000000000000000000000005d8e613f29c99f55589c32e2da3f136abc8e260d000000000000000000000000737a86ca7a7e947124a86bc93fb0fddec4a07d95000000000000000000000000b14b13697fa744e205664e62f4d5a49426505d8b000000000000000000000000f8a9ba89b57b5894c46ace069c84a940f0d99a68000000000000000000000000cafc5872738b503647bda9c3476c40af76b72e87000000000000000000000000e6488ef4e364db3d31c29819d3b57cdd1e685e6f00000000000000000000000092a560633ed87e5edb53c9df54865e26377f557c000000000000000000000000a231c85b94ec345a1a712f1cbfff0de5b7e0ec4d000000000000000000000000443e56daedd9c5a6dc74d8cec378e0f0822750d300000000000000000000000044846605a0dc5245bf8a1d90006e00d156bc66a000000000000000000000000088ecb963424bbdeba7320157c966e776358954c5000000000000000000000000bd47aa4f1d5ae422a537c2035271543db3c72bff000000000000000000000000ca27a5872bec32b06e93244d9d723c69e2d2f45c000000000000000000000000e7b32d9585f403702cab399382a848522c40e44a000000000000000000000000cfc15add2eb59ec3f9f2daebe65202f09799a3fa000000000000000000000000961810ce8bd31c63fdb776ff13038ea72a201905000000000000000000000000905f48cbaaaf881dbee913ce040c3b26d3bbc6d9000000000000000000000000921c0b27fa2eeca7cbca305cca5cf2dac9de7e15000000000000000000000000bdf869abecbf874846136ea4bec72d27252001f8000000000000000000000000b77e253d1fd6d9f09539b430ec5c08e628090286000000000000000000000000e2e2e5f97581ed30dc6bc62d156774a251fd34f1000000000000000000000000ec83638dcf4321c0a7b76656355e7c945d7360c10000000000000000000000005a461db3c10ef438a682c1bc2f36bef2e97b7048000000000000000000000000b1482668c112319f138ba718f708006c4d9447ff000000000000000000000000d3062e0fe1bb8e779e7d23f557250be40e166e19000000000000000000000000f85809117af502b4efead5cffa5a5e03032009ca000000000000000000000000a2ecd404bf10c484d8d423cde8817dae81735b7b00000000000000000000000034da4cb4a89e245ae45ec5701c7d6d76bd97d1d700000000000000000000000066a7112342154be2210bbd32640f93bfba5d7d8200000000000000000000000043859104dc59b36443bf08934e75e088eb8d88fc000000000000000000000000962e5defe09d11c4d571b1ae340211ca74c080f70000000000000000000000009702ebf6c028e004a5f6eebc4d546840e6b78f1300000000000000000000000093f30b9986e3e2978182d51a5289b33732ec2475000000000000000000000000b78efef830de80fdced13fe03f01ecac0e931659000000000000000000000000c8ad84fca8da00b13f8ef7b1f6e9f2bbe9bdc60f000000000000000000000000feab6f19c3b29c3533e43b0daa085dca87d9aaee00000000000000000000000022b51e1b298e9a5474658adef5e604d949543c9900000000000000000000000054375f4cd6ed92ab6dff3ab0805d4252620ccefc0000000000000000000000001f0bf57127e924e47e6e5b3c3d2669720284d6dc000000000000000000000000c9d0212ac74639e43ec4b467555d9e846919a417000000000000000000000000ff8e44af0e509fe7c5b9a87fd06d447bb01eae88000000000000000000000000352fcb499e812f3fa4be96e4f9601ede29ed8b9f0000000000000000000000006d36bbd03041f7851a5dd5b72d61a4dd17766731000000000000000000000000c4640778c740e34f43cec13c5096b8c4559fcddd0000000000000000000000003c0ef1d793534ca86197c6bbe3cbcf4bf30970450000000000000000000000001b3082ab541b8f9979cecaece826b67770d83d20000000000000000000000000324530ec738d01439ee2ac71382c7d647a5dedc70000000000000000000000006dfef7f0bd6b8a88cc0b91a8fac941b00ce64ce3000000000000000000000000c7a5ab78a093dc4f8f700a014b46fa1a9554d7540000000000000000000000007550c052607f9d6ab8f094264b645c19628b7d8c000000000000000000000000076ad68b6f395e3beb720d7330115f86a2c590630000000000000000000000003293c01bd1c1d80a02b57e93a63fbe7e248c05ff0000000000000000000000003774e7f83498744211a8caca877f2fa8070fda63000000000000000000000000dcb8ee1d923cfd1574581f3b87c61ed215e606b9000000000000000000000000a632db956da1b5b72586f0348c1b58f834e9f9450000000000000000000000000279e558c0260b2b29cf0f5ded3b8abcbffd704e000000000000000000000000ce5f48bf8df8b26c7e62501826c5c4de4feddc24000000000000000000000000c47a5cecf46def8bdc90b0dbcbf3fbde0595c635000000000000000000000000681653cddaf860861b5ca77685cbaf8f68339e8c0000000000000000000000008a6fbe28b76eccf4a854289e75cbc219f8f0bdc10000000000000000000000004834cc2e042304c82c36d91dbcee2d094d158e940000000000000000000000009f7e2316b8dd855b33b3498c8df426df3866054600000000000000000000000049570d1a0aa7c6508b2c27be9d0d920ccb512bbc000000000000000000000000496671ff03092e0c9ace3fa52031f0d06c1540b6000000000000000000000000cd48fd9f43ac887ac650f9a5bf663d2de2dad216000000000000000000000000e0fa13df7cdbe74cb2a5f69293660689f1c28faf000000000000000000000000c83fb0769f103875ba549880a887f23cfdf9176c0000000000000000000000003d962e5542315d258c988ae29981b19e92398ee900000000000000000000000009412fc0460d6ff8f0bbb1f4da485c53494ec7960000000000000000000000006ae8fd1c0fb1dee892b3c3da0789a1e15af06d95

-----Decoded View---------------
Arg [0] : platinumAddress (address[]): 0xF92f43014d16ea6F61cb50B4aF258a7E01166DEe,0x68Efda5f2fc25191AD9985BD86d67d4893DC85B0,0x40E09D59fcbd4a8ca69D4C2CdCCB718da83961E6,0x1D451532FB9D1cCa9587203aFceeFf34Ad48cF54,0xcfda9974d234FC548C7f96700B578aa90a367c8B,0xC5505843Dc166f93C4652f442F36e57A70c72183,0xC6480fF5121523D4762c241Da4Fc89BF20003ce8,0x76BF2758Ee0731d2842db3f18C4b7688a93d4107,0x3eaEd746aF83fFcC188B6E79d327157d0Fd4682E,0x7Ab9858F46917889916484C3213E3edDD906b4f8,0x8f0a5a60fe0575e030e326Dc1B63E903E453fe13,0x3ef5dFaf683fB35e42002215320b53054a0dCd87,0x4560Ba16c5D15c6Cb7c4368f336A49FeDa481E03,0x518Bc150e404B5063cf2BE44364f665167B6d451,0xD59a1EF9A1af313FE69D58f63574a915Af97b1C8,0xBFEe4F6EA48945BBd84Cc63eE0E58b9FF52a90c3,0x33fe86c43E7323268F9Bcdee2178137D45041f63,0x624286967051a9f37347b60DFBd35a87cD50e5F6,0x7092641e0fb4A5d632d0Eb691eB2d45bf3D08d5A,0xE4D799aB81c6A279B90001B95741dC2b990e602a,0x285C9f1828675c519D1498E1b852EdFf665B5313,0x25522D9978a1c0C111FDd3696a33d42b7D69A4d6,0x1C5618a9FF91Dd8ff7F3F78f60A30688907a8355,0x98529258d92A4c8a6B880a23bD044E887bcD2725,0x803DE226D9Cc88E2f60907CBb92e77dDA2953033,0xEc5bE0e66c0B5E2AE9Cce6157b847a2700F79e5B,0x802F0eB7792871B67Fc21d4FaEeed9Cd680D2FDd,0x25D1597D5fEdc146fE4D547e064E9e1Bb20f0EfD,0x54F3c617839f7AC5555Da85e2cA391D78819e7fE,0x4F63277Dc1E326C7353B2F34509c9D49B7c9D38B,0xF0F703629Cc31dC13Cdb899Aa985C3f4f0DF7CBa,0xfa8c92E9921beBa2AFD4C3AA808EA38b8cfFeb21,0xDB37683A3574075E77b9f28FF157b5E408Bd722d,0xC029B04F9cDa1300cBc9f0E50B19Dd3478b2d6Dc,0x119017fE465832bba84b2Aabe5683311cA7e7615,0x3f578E59B085F6411c400324324112F4f8284Fc1,0xE91384BD77e3bB6261747BC918b92d3123EF28fe,0xA0e03a7aC9013eBE04539fc02B9e4F37d359d10D,0xf5eeA3907D0Ea758cF433e3E79951DaBA436f5Fb,0xc88f6F47E8A89610C39baB7Fa52Ebc4B34D0A003,0xfbE4EbfFf84CBfF566c62136dC446186Fe7541FE,0x16c8BBC43B84Bde6140618B776C754152CfFC761,0xf249624e1c6558Cef92c756289f840664Fe18548,0x926921C94A21CeC0F514dE8c1e0489A55f83Dc3C
Arg [1] : goldAddress (address[]): 0xfBC7DCe91a879A3EC8cC04130ea6E7EA928D6EB4,0xf23b0e46A7d8715B2cB4Ac36BDE4f70157249766,0x201A78AEAE7f638776507962FE5c6D151A851DdD,0x98a9F589C5A738f68c21451973F6751b22062E4f,0x813AbD736A8C3DA07733B438791cc9460faFb51C,0x0C41A47d0961C974fC68520412CFA5b7eFe72868,0xCA5451322A8101DaB8fD557eD5271F7E67996034,0xF288F6C03e180d5B22b135FF9cC141C64dEE256c,0x7480189785E40c3eAEf24EcB4fB0f708Dcc3050F,0x2a01E41027fBAB02fF272464EeB81fE284F8021f,0x4104B4a02a4c61347368a8189F1B83F1eE42f92D,0x05fE661619A565a4219a72A178FE858825859b9A,0x5d8e613f29c99f55589C32E2da3f136Abc8E260D,0x737A86cA7A7e947124A86BC93Fb0fDdEc4A07d95,0xb14B13697fa744e205664E62F4D5a49426505d8b,0xf8A9BA89b57b5894c46ACE069c84a940F0d99A68,0xCAFC5872738b503647BdA9c3476c40aF76B72e87,0xe6488eF4E364dB3d31c29819d3b57Cdd1e685E6F,0x92A560633eD87e5EDB53C9dF54865E26377F557C,0xA231C85B94eC345A1A712f1CbFFf0DE5B7e0ec4d,0x443E56dAeDd9c5a6dC74D8Cec378E0F0822750d3,0x44846605A0DC5245bf8A1d90006e00D156BC66A0,0x88eCB963424bBDeBA7320157C966E776358954c5,0xbD47aA4F1d5ae422a537c2035271543DB3c72bfF,0xCa27A5872bEc32b06E93244d9d723C69e2d2f45C,0xE7B32D9585f403702caB399382a848522C40e44a,0xCfc15aDd2eb59Ec3F9f2DaeBE65202f09799A3fa,0x961810Ce8Bd31c63fDb776ff13038ea72A201905,0x905f48CbAAAF881Dbee913cE040c3b26d3bbc6D9,0x921c0b27FA2eeCA7cbcA305cca5cF2Dac9DE7e15,0xBdf869abeCbf874846136EA4Bec72D27252001F8,0xb77E253d1fd6d9f09539B430ec5C08E628090286,0xe2E2e5f97581ed30Dc6bc62d156774A251Fd34f1,0xeC83638dcF4321c0A7b76656355E7c945d7360c1,0x5a461dB3c10EF438A682c1bc2F36BEF2E97b7048,0xB1482668C112319f138ba718f708006C4d9447FF,0xd3062E0FE1bb8e779e7d23F557250BE40E166E19,0xF85809117aF502b4eFEad5CffA5a5E03032009CA,0xa2ECD404bf10C484D8d423CDE8817dAE81735b7B,0x34dA4Cb4A89e245aE45Ec5701C7D6D76bD97d1D7,0x66a7112342154Be2210Bbd32640F93BfBA5d7d82,0x43859104dC59B36443bF08934e75E088Eb8D88Fc,0x962e5DeFE09D11c4D571B1Ae340211Ca74c080F7,0x9702eBf6c028E004a5f6EEBc4d546840e6b78F13,0x93F30B9986e3e2978182d51a5289B33732eC2475,0xb78Efef830DE80FDCed13fE03f01ecaC0E931659,0xC8AD84fcA8dA00B13F8ef7B1f6e9f2bBE9BDC60f,0xfEAb6F19c3B29c3533E43B0Daa085DCa87D9aaEE,0x22b51E1B298e9A5474658aDef5e604d949543C99,0x54375f4CD6Ed92Ab6DFF3ab0805D4252620CCeFC,0x1F0Bf57127e924e47e6E5B3c3d2669720284d6Dc,0xC9D0212Ac74639E43ec4b467555d9e846919a417,0xFf8E44Af0E509Fe7c5b9A87Fd06D447BB01eae88,0x352fcB499e812F3fa4Be96E4F9601EdE29ed8B9F,0x6d36BBd03041F7851A5dD5B72D61a4dD17766731,0xC4640778c740e34f43Cec13c5096B8C4559fcDdD,0x3C0eF1d793534Ca86197C6bBe3cBCf4bf3097045,0x1b3082Ab541b8f9979cecaECe826B67770D83D20,0x324530eC738D01439ee2Ac71382C7D647a5DEdC7,0x6DFEf7f0bD6B8A88cC0b91a8fAc941B00CE64Ce3,0xc7A5AB78a093dC4f8F700A014B46fA1A9554d754,0x7550c052607F9d6aB8F094264b645c19628b7d8C,0x076ad68B6f395e3beB720D7330115F86A2C59063,0x3293c01BD1C1d80A02b57e93A63fBE7e248C05ff,0x3774e7f83498744211A8cAca877f2fa8070FDa63,0xdcB8Ee1D923cFd1574581F3B87C61ed215e606B9,0xA632db956Da1b5B72586F0348C1B58f834E9f945,0x0279e558c0260B2B29cf0f5Ded3b8ABcBFFD704E,0xCE5F48BF8df8B26C7e62501826c5c4De4feDDc24,0xC47a5CECf46DeF8bdc90b0dbCbF3fbDe0595C635,0x681653cDdAF860861B5cA77685cbaf8F68339E8c,0x8a6Fbe28b76eCcf4A854289e75cbc219F8F0BDc1,0x4834CC2E042304C82C36d91dBcee2D094d158E94,0x9f7e2316B8DD855B33b3498c8df426dF38660546,0x49570d1A0Aa7C6508B2C27be9D0d920Ccb512bbC,0x496671FF03092E0c9AcE3fA52031f0d06C1540b6,0xCd48FD9F43aC887aC650f9a5bF663D2De2dAd216,0xe0fA13DF7CDBE74cB2A5F69293660689F1C28faf,0xC83fB0769F103875Ba549880a887F23CFdf9176c,0x3d962e5542315d258c988ae29981B19e92398Ee9,0x09412FC0460D6FF8f0Bbb1F4dA485c53494eC796,0x6ae8FD1c0Fb1deE892B3C3Da0789A1E15aF06d95

-----Encoded View---------------
130 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000000000000000000000000000000000000000005e0
Arg [2] : 000000000000000000000000000000000000000000000000000000000000002c
Arg [3] : 000000000000000000000000f92f43014d16ea6f61cb50b4af258a7e01166dee
Arg [4] : 00000000000000000000000068efda5f2fc25191ad9985bd86d67d4893dc85b0
Arg [5] : 00000000000000000000000040e09d59fcbd4a8ca69d4c2cdccb718da83961e6
Arg [6] : 0000000000000000000000001d451532fb9d1cca9587203afceeff34ad48cf54
Arg [7] : 000000000000000000000000cfda9974d234fc548c7f96700b578aa90a367c8b
Arg [8] : 000000000000000000000000c5505843dc166f93c4652f442f36e57a70c72183
Arg [9] : 000000000000000000000000c6480ff5121523d4762c241da4fc89bf20003ce8
Arg [10] : 00000000000000000000000076bf2758ee0731d2842db3f18c4b7688a93d4107
Arg [11] : 0000000000000000000000003eaed746af83ffcc188b6e79d327157d0fd4682e
Arg [12] : 0000000000000000000000007ab9858f46917889916484c3213e3eddd906b4f8
Arg [13] : 0000000000000000000000008f0a5a60fe0575e030e326dc1b63e903e453fe13
Arg [14] : 0000000000000000000000003ef5dfaf683fb35e42002215320b53054a0dcd87
Arg [15] : 0000000000000000000000004560ba16c5d15c6cb7c4368f336a49feda481e03
Arg [16] : 000000000000000000000000518bc150e404b5063cf2be44364f665167b6d451
Arg [17] : 000000000000000000000000d59a1ef9a1af313fe69d58f63574a915af97b1c8
Arg [18] : 000000000000000000000000bfee4f6ea48945bbd84cc63ee0e58b9ff52a90c3
Arg [19] : 00000000000000000000000033fe86c43e7323268f9bcdee2178137d45041f63
Arg [20] : 000000000000000000000000624286967051a9f37347b60dfbd35a87cd50e5f6
Arg [21] : 0000000000000000000000007092641e0fb4a5d632d0eb691eb2d45bf3d08d5a
Arg [22] : 000000000000000000000000e4d799ab81c6a279b90001b95741dc2b990e602a
Arg [23] : 000000000000000000000000285c9f1828675c519d1498e1b852edff665b5313
Arg [24] : 00000000000000000000000025522d9978a1c0c111fdd3696a33d42b7d69a4d6
Arg [25] : 0000000000000000000000001c5618a9ff91dd8ff7f3f78f60a30688907a8355
Arg [26] : 00000000000000000000000098529258d92a4c8a6b880a23bd044e887bcd2725
Arg [27] : 000000000000000000000000803de226d9cc88e2f60907cbb92e77dda2953033
Arg [28] : 000000000000000000000000ec5be0e66c0b5e2ae9cce6157b847a2700f79e5b
Arg [29] : 000000000000000000000000802f0eb7792871b67fc21d4faeeed9cd680d2fdd
Arg [30] : 00000000000000000000000025d1597d5fedc146fe4d547e064e9e1bb20f0efd
Arg [31] : 00000000000000000000000054f3c617839f7ac5555da85e2ca391d78819e7fe
Arg [32] : 0000000000000000000000004f63277dc1e326c7353b2f34509c9d49b7c9d38b
Arg [33] : 000000000000000000000000f0f703629cc31dc13cdb899aa985c3f4f0df7cba
Arg [34] : 000000000000000000000000fa8c92e9921beba2afd4c3aa808ea38b8cffeb21
Arg [35] : 000000000000000000000000db37683a3574075e77b9f28ff157b5e408bd722d
Arg [36] : 000000000000000000000000c029b04f9cda1300cbc9f0e50b19dd3478b2d6dc
Arg [37] : 000000000000000000000000119017fe465832bba84b2aabe5683311ca7e7615
Arg [38] : 0000000000000000000000003f578e59b085f6411c400324324112f4f8284fc1
Arg [39] : 000000000000000000000000e91384bd77e3bb6261747bc918b92d3123ef28fe
Arg [40] : 000000000000000000000000a0e03a7ac9013ebe04539fc02b9e4f37d359d10d
Arg [41] : 000000000000000000000000f5eea3907d0ea758cf433e3e79951daba436f5fb
Arg [42] : 000000000000000000000000c88f6f47e8a89610c39bab7fa52ebc4b34d0a003
Arg [43] : 000000000000000000000000fbe4ebfff84cbff566c62136dc446186fe7541fe
Arg [44] : 00000000000000000000000016c8bbc43b84bde6140618b776c754152cffc761
Arg [45] : 000000000000000000000000f249624e1c6558cef92c756289f840664fe18548
Arg [46] : 000000000000000000000000926921c94a21cec0f514de8c1e0489a55f83dc3c
Arg [47] : 0000000000000000000000000000000000000000000000000000000000000052
Arg [48] : 000000000000000000000000fbc7dce91a879a3ec8cc04130ea6e7ea928d6eb4
Arg [49] : 000000000000000000000000f23b0e46a7d8715b2cb4ac36bde4f70157249766
Arg [50] : 000000000000000000000000201a78aeae7f638776507962fe5c6d151a851ddd
Arg [51] : 00000000000000000000000098a9f589c5a738f68c21451973f6751b22062e4f
Arg [52] : 000000000000000000000000813abd736a8c3da07733b438791cc9460fafb51c
Arg [53] : 0000000000000000000000000c41a47d0961c974fc68520412cfa5b7efe72868
Arg [54] : 000000000000000000000000ca5451322a8101dab8fd557ed5271f7e67996034
Arg [55] : 000000000000000000000000f288f6c03e180d5b22b135ff9cc141c64dee256c
Arg [56] : 0000000000000000000000007480189785e40c3eaef24ecb4fb0f708dcc3050f
Arg [57] : 0000000000000000000000002a01e41027fbab02ff272464eeb81fe284f8021f
Arg [58] : 0000000000000000000000004104b4a02a4c61347368a8189f1b83f1ee42f92d
Arg [59] : 00000000000000000000000005fe661619a565a4219a72a178fe858825859b9a
Arg [60] : 0000000000000000000000005d8e613f29c99f55589c32e2da3f136abc8e260d
Arg [61] : 000000000000000000000000737a86ca7a7e947124a86bc93fb0fddec4a07d95
Arg [62] : 000000000000000000000000b14b13697fa744e205664e62f4d5a49426505d8b
Arg [63] : 000000000000000000000000f8a9ba89b57b5894c46ace069c84a940f0d99a68
Arg [64] : 000000000000000000000000cafc5872738b503647bda9c3476c40af76b72e87
Arg [65] : 000000000000000000000000e6488ef4e364db3d31c29819d3b57cdd1e685e6f
Arg [66] : 00000000000000000000000092a560633ed87e5edb53c9df54865e26377f557c
Arg [67] : 000000000000000000000000a231c85b94ec345a1a712f1cbfff0de5b7e0ec4d
Arg [68] : 000000000000000000000000443e56daedd9c5a6dc74d8cec378e0f0822750d3
Arg [69] : 00000000000000000000000044846605a0dc5245bf8a1d90006e00d156bc66a0
Arg [70] : 00000000000000000000000088ecb963424bbdeba7320157c966e776358954c5
Arg [71] : 000000000000000000000000bd47aa4f1d5ae422a537c2035271543db3c72bff
Arg [72] : 000000000000000000000000ca27a5872bec32b06e93244d9d723c69e2d2f45c
Arg [73] : 000000000000000000000000e7b32d9585f403702cab399382a848522c40e44a
Arg [74] : 000000000000000000000000cfc15add2eb59ec3f9f2daebe65202f09799a3fa
Arg [75] : 000000000000000000000000961810ce8bd31c63fdb776ff13038ea72a201905
Arg [76] : 000000000000000000000000905f48cbaaaf881dbee913ce040c3b26d3bbc6d9
Arg [77] : 000000000000000000000000921c0b27fa2eeca7cbca305cca5cf2dac9de7e15
Arg [78] : 000000000000000000000000bdf869abecbf874846136ea4bec72d27252001f8
Arg [79] : 000000000000000000000000b77e253d1fd6d9f09539b430ec5c08e628090286
Arg [80] : 000000000000000000000000e2e2e5f97581ed30dc6bc62d156774a251fd34f1
Arg [81] : 000000000000000000000000ec83638dcf4321c0a7b76656355e7c945d7360c1
Arg [82] : 0000000000000000000000005a461db3c10ef438a682c1bc2f36bef2e97b7048
Arg [83] : 000000000000000000000000b1482668c112319f138ba718f708006c4d9447ff
Arg [84] : 000000000000000000000000d3062e0fe1bb8e779e7d23f557250be40e166e19
Arg [85] : 000000000000000000000000f85809117af502b4efead5cffa5a5e03032009ca
Arg [86] : 000000000000000000000000a2ecd404bf10c484d8d423cde8817dae81735b7b
Arg [87] : 00000000000000000000000034da4cb4a89e245ae45ec5701c7d6d76bd97d1d7
Arg [88] : 00000000000000000000000066a7112342154be2210bbd32640f93bfba5d7d82
Arg [89] : 00000000000000000000000043859104dc59b36443bf08934e75e088eb8d88fc
Arg [90] : 000000000000000000000000962e5defe09d11c4d571b1ae340211ca74c080f7
Arg [91] : 0000000000000000000000009702ebf6c028e004a5f6eebc4d546840e6b78f13
Arg [92] : 00000000000000000000000093f30b9986e3e2978182d51a5289b33732ec2475
Arg [93] : 000000000000000000000000b78efef830de80fdced13fe03f01ecac0e931659
Arg [94] : 000000000000000000000000c8ad84fca8da00b13f8ef7b1f6e9f2bbe9bdc60f
Arg [95] : 000000000000000000000000feab6f19c3b29c3533e43b0daa085dca87d9aaee
Arg [96] : 00000000000000000000000022b51e1b298e9a5474658adef5e604d949543c99
Arg [97] : 00000000000000000000000054375f4cd6ed92ab6dff3ab0805d4252620ccefc
Arg [98] : 0000000000000000000000001f0bf57127e924e47e6e5b3c3d2669720284d6dc
Arg [99] : 000000000000000000000000c9d0212ac74639e43ec4b467555d9e846919a417
Arg [100] : 000000000000000000000000ff8e44af0e509fe7c5b9a87fd06d447bb01eae88
Arg [101] : 000000000000000000000000352fcb499e812f3fa4be96e4f9601ede29ed8b9f
Arg [102] : 0000000000000000000000006d36bbd03041f7851a5dd5b72d61a4dd17766731
Arg [103] : 000000000000000000000000c4640778c740e34f43cec13c5096b8c4559fcddd
Arg [104] : 0000000000000000000000003c0ef1d793534ca86197c6bbe3cbcf4bf3097045
Arg [105] : 0000000000000000000000001b3082ab541b8f9979cecaece826b67770d83d20
Arg [106] : 000000000000000000000000324530ec738d01439ee2ac71382c7d647a5dedc7
Arg [107] : 0000000000000000000000006dfef7f0bd6b8a88cc0b91a8fac941b00ce64ce3
Arg [108] : 000000000000000000000000c7a5ab78a093dc4f8f700a014b46fa1a9554d754
Arg [109] : 0000000000000000000000007550c052607f9d6ab8f094264b645c19628b7d8c
Arg [110] : 000000000000000000000000076ad68b6f395e3beb720d7330115f86a2c59063
Arg [111] : 0000000000000000000000003293c01bd1c1d80a02b57e93a63fbe7e248c05ff
Arg [112] : 0000000000000000000000003774e7f83498744211a8caca877f2fa8070fda63
Arg [113] : 000000000000000000000000dcb8ee1d923cfd1574581f3b87c61ed215e606b9
Arg [114] : 000000000000000000000000a632db956da1b5b72586f0348c1b58f834e9f945
Arg [115] : 0000000000000000000000000279e558c0260b2b29cf0f5ded3b8abcbffd704e
Arg [116] : 000000000000000000000000ce5f48bf8df8b26c7e62501826c5c4de4feddc24
Arg [117] : 000000000000000000000000c47a5cecf46def8bdc90b0dbcbf3fbde0595c635
Arg [118] : 000000000000000000000000681653cddaf860861b5ca77685cbaf8f68339e8c
Arg [119] : 0000000000000000000000008a6fbe28b76eccf4a854289e75cbc219f8f0bdc1
Arg [120] : 0000000000000000000000004834cc2e042304c82c36d91dbcee2d094d158e94
Arg [121] : 0000000000000000000000009f7e2316b8dd855b33b3498c8df426df38660546
Arg [122] : 00000000000000000000000049570d1a0aa7c6508b2c27be9d0d920ccb512bbc
Arg [123] : 000000000000000000000000496671ff03092e0c9ace3fa52031f0d06c1540b6
Arg [124] : 000000000000000000000000cd48fd9f43ac887ac650f9a5bf663d2de2dad216
Arg [125] : 000000000000000000000000e0fa13df7cdbe74cb2a5f69293660689f1c28faf
Arg [126] : 000000000000000000000000c83fb0769f103875ba549880a887f23cfdf9176c
Arg [127] : 0000000000000000000000003d962e5542315d258c988ae29981b19e92398ee9
Arg [128] : 00000000000000000000000009412fc0460d6ff8f0bbb1f4da485c53494ec796
Arg [129] : 0000000000000000000000006ae8fd1c0fb1dee892b3c3da0789a1e15af06d95


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.