ETH Price: $2,683.26 (-4.09%)

Token

APP Enjoy Passport (APEP)
 

Overview

Max Total Supply

2,020 APEP

Holders

2,020

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 APEP
0xe741A9e976c768E6811cDbd62Ae24389F5352A1D
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:
EnjoyPassport

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 30000 runs

Other Settings:
default evmVersion
File 1 of 16 : EnjoyPassport.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import 'erc721a/contracts/ERC721A.sol';
import '@openzeppelin/contracts/access/Ownable.sol';
import '@openzeppelin/contracts/access/AccessControl.sol';
// import '@openzeppelin/contracts/utils/Strings.sol';
import './interface/IEnjoyPassport.sol';
import './interface/IRouter.sol';
import "./interface/IWalletFamily.sol";
import "./interface/IERC4906.sol";
contract EnjoyPassport is IEnjoyPassport, Ownable, AccessControl, ERC721A, IERC4906{
// using Strings for uint256;
bytes32 public constant ADMIN = keccak256('ADMIN');
bytes32 public constant MINTER = keccak256('MINTER');
bytes32 public constant BURNER = keccak256('BURNER');
bytes32 public constant UPDATER = keccak256("UPDATER");
IRouter public router;
IWalletFamily public walletfamily;
uint256 public targetId = 1; // defalt 1
constructor(
) ERC721A("APP Enjoy Passport", "APEP") {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 16 : AccessControl.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (access/AccessControl.sol)
pragma solidity ^0.8.0;
import "./IAccessControl.sol";
import "../utils/Context.sol";
import "../utils/Strings.sol";
import "../utils/introspection/ERC165.sol";
/**
* @dev Contract module that allows children to implement role-based access
* control mechanisms. This is a lightweight version that doesn't allow enumerating role
* members except through off-chain means by accessing the contract event logs. Some
* applications may benefit from on-chain enumerability, for those cases see
* {AccessControlEnumerable}.
*
* Roles are referred to by their `bytes32` identifier. These should be exposed
* in the external API and be unique. The best way to achieve this is by
* using `public constant` hash digests:
*
* ```
* bytes32 public constant MY_ROLE = keccak256("MY_ROLE");
* ```
*
* Roles can be used to represent a set of permissions. To restrict access to a
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 16 : IAccessControl.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)
pragma solidity ^0.8.0;
/**
* @dev External interface of AccessControl declared to support ERC165 detection.
*/
interface IAccessControl {
/**
* @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`
*
* `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite
* {RoleAdminChanged} not being emitted signaling this.
*
* _Available since v3.1._
*/
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);
/**
* @dev Emitted when `account` is granted `role`.
*
* `sender` is the account that originated the contract call, an admin role
* bearer except when using {AccessControl-_setupRole}.
*/
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 16 : Ownable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (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.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 16 : IERC721.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol)
pragma solidity ^0.8.0;
import "../../utils/introspection/IERC165.sol";
/**
* @dev Required interface of an ERC721 compliant contract.
*/
interface IERC721 is IERC165 {
/**
* @dev Emitted when `tokenId` token is transferred from `from` to `to`.
*/
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
*/
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
*/
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 16 : Context.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 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;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 16 : ERC165.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 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) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 16 : IERC165.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 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);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 16 : Math.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol)
pragma solidity ^0.8.0;
/**
* @dev Standard math utilities missing in the Solidity language.
*/
library Math {
enum Rounding {
Down, // Toward negative infinity
Up, // Toward infinity
Zero // Toward zero
}
/**
* @dev Returns the largest of two numbers.
*/
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a > b ? a : b;
}
/**
* @dev Returns the smallest of two numbers.
*/
function min(uint256 a, uint256 b) internal pure returns (uint256) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 16 : Strings.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Strings.sol)
pragma solidity ^0.8.0;
import "./math/Math.sol";
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _SYMBOLS = "0123456789abcdef";
uint8 private constant _ADDRESS_LENGTH = 20;
/**
* @dev Converts a `uint256` to its ASCII `string` decimal representation.
*/
function toString(uint256 value) internal pure returns (string memory) {
unchecked {
uint256 length = Math.log10(value) + 1;
string memory buffer = new string(length);
uint256 ptr;
/// @solidity memory-safe-assembly
assembly {
ptr := add(buffer, add(32, length))
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 11 of 16 : IEnjoyPassport.sol
1
2
3
4
5
6
7
8
9
10
11
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;
interface IEnjoyPassport {
function minterMint(address _address, uint256 _amount) external;
function burnerBurn(address _address, uint256[] calldata tokenIds) external;
function tokenOfOwner(address owner) external view returns (uint256);
function refreshMetadata(uint256 _tokenId) external;
function refreshMetadata(uint256 _fromTokenId, uint256 _toTokenId) external;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 12 of 16 : IERC4906.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// SPDX-License-Identifier: CC0-1.0
pragma solidity >=0.7.0 <0.9.0;
import { IERC165, ERC165 } from "@openzeppelin/contracts/utils/introspection/ERC165.sol";
import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
/// @title EIP-721 Metadata Update Extension
interface IERC4906 is IERC165 {
/// @dev This event emits when the metadata of a token is changed.
/// So that the third-party platforms such as NFT market could
/// timely update the images and related attributes of the NFT.
event MetadataUpdate(uint256 _tokenId);
/// @dev This event emits when the metadata of a range of tokens is changed.
/// So that the third-party platforms such as NFT market could
/// timely update the images and related attributes of the NFTs.
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 13 of 16 : IRouter.sol
1
2
3
4
5
6
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.9.0;
interface IRouter{
function tokenURI(uint256 _tokenId,uint256 _id) external view returns(string memory);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 14 of 16 : IWalletFamily.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
/*
* Created by masataka.eth (@masataka_net)
*/
pragma solidity >=0.7.0 <0.9.0;
interface IWalletFamily {
// approve ----------------------------
function approveChild(address _parent,bytes32 _nonce, bytes memory _signature) external;
function deleteApprove(address _parent,address _child) external returns (bool);
function getApproveList() external view returns(address[] memory);
// fix ----------------------------
function fixChild(address _child) external;
function isChild(address _child) external view returns (bool);
function isChildPair(address _parent, address _child) external view returns (bool);
function getFixList(address _parent) external view returns (address[] memory);
// VerifySignature ----------------------------
function getMessageHash(address _child,address _parent,bytes32 _nonce) external pure returns (bytes32);
function getEthSignedMessageHash(bytes32 _messageHash) external pure returns (bytes32);
function isVerify(address _parent,bytes32 _nonce,bytes memory signature) external view returns (bool);
function recoverSigner(bytes32 _ethSignedMessageHash, bytes memory _signature) external pure returns (address);
function splitSignature(bytes memory sig) external pure returns (bytes32 r, bytes32 s,uint8 v);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 15 of 16 : ERC721A.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.2.3
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import './IERC721A.sol';
/**
* @dev Interface of ERC721 token receiver.
*/
interface ERC721A__IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
/**
* @title ERC721A
*
* @dev Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721)
* Non-Fungible Token Standard, including the Metadata extension.
* Optimized for lower gas during batch mints.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 16 of 16 : IERC721A.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.2.3
// Creator: Chiru Labs
pragma solidity ^0.8.4;
/**
* @dev Interface of ERC721A.
*/
interface IERC721A {
/**
* The caller must own the token or be an approved operator.
*/
error ApprovalCallerNotOwnerNorApproved();
/**
* The token does not exist.
*/
error ApprovalQueryForNonexistentToken();
/**
* Cannot query the balance for the zero address.
*/
error BalanceQueryForZeroAddress();
/**
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"optimizer": {
"enabled": true,
"runs": 30000
},
"viaIR": true,
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","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":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BURNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPDATER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"burnerBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"grantAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"minterMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"refreshMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"refreshMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"revokeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bool","name":"","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setTargetId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IWalletFamily","name":"_walletFamily","type":"address"}],"name":"setWalletfamily","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"targetId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"tokenOfOwner","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletfamily","outputs":[{"internalType":"contract IWalletFamily","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6080806040523462000207576200001660c0604052565b601281527110541408115b9a9bde4814185cdcdc1bdc9d60721b60a052604051620000418162000223565b60048152630415045560e41b60208083019190915260008054336001600160a01b031982168117835591949291906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08680a38151916001600160401b038311620001f7575b620000c783620000c16004546200028e565b620002cb565b81601f8411600114620001675750620000fe949190836200015b575b50508160011b916000199060031b1c1916176004556200037d565b620001096001600255565b620001146001600c55565b6200011f3362000481565b6200012a336200054a565b6200013533620005ac565b62000140336200060e565b6200014b3362000670565b604051612ecb9081620009528239f35b015190503880620000e3565b600460005292947f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b93601f19871691905b828210620001de575050916001939186620000fe979410620001c4575b505050811b016004556200037d565b015160001960f88460031b161c19169055388080620001b5565b8060018697829497870151815501960194019062000198565b620002016200020c565b620000af565b600080fd5b50634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176200023f57604052565b620002496200020c565b604052565b602081019081106001600160401b038211176200023f57604052565b601f909101601f19168101906001600160401b038211908210176200023f57604052565b90600182811c92168015620002c0575b6020831014620002aa57565b634e487b7160e01b600052602260045260246000fd5b91607f16916200029e565b601f8111620002d8575050565b6000906004825260208220906020601f850160051c8301941062000319575b601f0160051c01915b8281106200030d57505050565b81815560010162000300565b9092508290620002f7565b601f811162000331575050565b6000906005825260208220906020601f850160051c8301941062000372575b601f0160051c01915b8281106200036657505050565b81815560010162000359565b909250829062000350565b80519091906001600160401b03811162000471575b620003aa81620003a46005546200028e565b62000324565b602080601f8311600114620003e95750819293600092620003dd575b50508160011b916000199060031b1c191617600555565b015190503880620003c6565b6005600052601f198316949091907f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0926000905b878210620004585750508360019596106200043e575b505050811b01600555565b015160001960f88460031b161c1916905538808062000433565b806001859682949686015181550195019301906200041d565b6200047b6200020c565b62000392565b6001600160a01b03811660009081527fd52cfefb3f6fd7766669e08a03d2ceb3243383019e3a5fed2a519df30ee55b92602052604081207fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec429060ff905b541615620004eb57505050565b8082526001602090815260408084206001600160a01b038616600090815292529020805460ff1916600117905533926001600160a01b0316917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4565b6001600160a01b03811660009081527ffe36a80dee87f02e45351a65c4bd3ccefd3fc5363e679b6e4b81a8004282b3fc602052604081207ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc99060ff90620004de565b6001600160a01b03811660009081527f193e3572123513c32b36f6267c30628a827495c35a3a55210b02c864b69a1fe2602052604081207f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c89060ff90620004de565b6001600160a01b03811660009081527f0345da471fed81e28f4ca5948c3071e559c89b9f6a2ea2196e8c3e85dbd1ab7d602052604081207fe7d07e22cc47e0674aa5610dfc0c7c09a0a3b7491679c731a125fba46498854e9060ff90620004de565b60409081519162000681836200024e565b60008084526002546001600160a01b03841680835260076020908152604080852080546801000000000000000101905583855260069091528320600160e11b4260a01b831717905591949160019182810191907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908289838180a483835b848103620007ad57505050156200079d57600255833b62000722575b5050505050565b6002549360001985019180805b62000751575b505050505050600254036200074e57808080806200071b565b80fd5b156200078e575b86620007716200076d8684870196866200089a565b1590565b6200077d57816200072f565b85516368d2bf6b60e11b8152600490fd5b85831062000758578062000735565b8351622e076360e81b8152600490fd5b80848b858180a4018490620006ff565b908160209103126200020757516001600160e01b031981168103620002075790565b9193929060018060a01b0316825260209360008584015260408301526080606083015280519081608084015260005b8281106200083157505060a09293506000838284010152601f8019910116010190565b81810186015184820160a0015285016200080e565b3d1562000895573d906001600160401b03821162000885575b6040519162000879601f8201601f1916602001846200026a565b82523d6000602084013e565b6200088f6200020c565b6200085f565b606090565b620008c560209160009394604051948580948193630a85bd0160e11b998a84523360048501620007df565b03926001600160a01b03165af1600091816200091a575b506200090c57620008ec62000846565b8051908162000907576040516368d2bf6b60e11b8152600490fd5b602001fd5b6001600160e01b0319161490565b6200094191925060203d811162000949575b6200093881836200026a565b810190620007bd565b9038620008dc565b503d6200092c56fe60806040526004361015610013575b600080fd5b60003560e01c806301ffc9a71461035b57806306fdde0314610352578063081812fc14610349578063095ea7b314610340578063118c4f131461033757806318160ddd1461032e5780631a8baec1146103255780631fffe2b01461031c57806321f314ca1461031357806323b872dd1461030a578063248a9ca31461030157806326987b60146102f8578063294cdf0d146102ef5780632a0acc6a146102e65780632d345670146102dd5780632f2ff15d146102d457806335bb3e16146102cb57806336568abe146102c257806340c10f19146102b957806342842e0e146102b0578063568583d5146102a75780636352211e1461029e57806369bfdcdf1461029557806370a082311461028c578063715018a61461028357806387fc5e061461027a5780638da5cb5b1461027157806391d148541461026857806394a686301461025f57806395d89b4114610256578063980b17d01461024d578063a217fddf14610244578063a22cb4651461023b578063b88d4fde14610232578063c0d7865514610229578063c87b56dd14610220578063d547741f14610217578063d95ba42f1461020e578063e985e9c514610205578063f2fde38b146101fc578063f887ea40146101f35763fe6d8124146101eb57600080fd5b61000e611a9a565b5061000e611a65565b5061000e611949565b5061000e6118d0565b5061000e611888565b5061000e61182b565b5061000e61170b565b5061000e6116a1565b5061000e611614565b5061000e611509565b5061000e6114e2565b5061000e611478565b5061000e6113b4565b5061000e611378565b5061000e611313565b5061000e6112de565b5061000e6112bf565b5061000e61123f565b5061000e611217565b5061000e6111c6565b5061000e611189565b5061000e611154565b5061000e611130565b5061000e610fbe565b5061000e610ef3565b5061000e610e5c565b5061000e610d21565b5061000e610be8565b5061000e610bac565b5061000e610b7c565b5061000e610b5d565b5061000e610b2d565b5061000e610b1a565b5061000e6108fe565b5061000e610896565b5061000e610874565b5061000e61082e565b5061000e6107f2565b5061000e610756565b5061000e6106bd565b5061000e61057d565b5061000e61038e565b7fffffffff0000000000000000000000000000000000000000000000000000000081160361000e57565b503461000e57602060031936011261000e5761041d7fffffffff000000000000000000000000000000000000000000000000000000006004356103d081610364565b167f7965db0b0000000000000000000000000000000000000000000000000000000081149081156104d9575b81156104af575b8115610421575b5060405190151581529081906020820190565b0390f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491508115610485575b811561045b575b503861040a565b7f5b5e139f0000000000000000000000000000000000000000000000000000000091501438610454565b7f80ac58cd000000000000000000000000000000000000000000000000000000008114915061044d565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081149150610403565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506103fc565b60005b8381106105165750506000910152565b8181015183820152602001610506565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361056281518092818752878088019101610503565b0116010190565b90602061057a928181520190610526565b90565b503461000e576000806003193601126106ba5760405190806004549060019180831c928082169283156106b0575b602092838610851461068357858852602088019490811561064457506001146105eb575b61041d876105df8189038261158a565b60405191829182610569565b600460005294509192917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83861061063357505050910190506105df8261041d38806105cf565b805485870152948201948101610617565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685525050505090151560051b0190506105df8261041d38806105cf565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b93607f16936105ab565b80fd5b503461000e57602060031936011261000e576004356106db816127d7565b1561070e576000526008602052602073ffffffffffffffffffffffffffffffffffffffff60406000205416604051908152f35b60046040517fcf4700e4000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff81160361000e57565b50604060031936011261000e5761076e600435610738565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5468697320746f6b656e206973205342542c20736f20746869732063616e206e60448201527f6f7420617070726f76616c2e00000000000000000000000000000000000000006064820152fd5b503461000e57600060031936011261000e5760206040517f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c88152f35b503461000e57600060031936011261000e5760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600254600354900301604051908152f35b503461000e57602060031936011261000e5761088e611c33565b600435600c55005b503461000e57604060031936011261000e576004356108b481610738565b6024359067ffffffffffffffff9081831161000e573660238401121561000e57826004013591821161000e573660248360051b8501011161000e5760246108fc9301906122c5565b005b503461000e5760408060031936011261000e5760049081359161092083610738565b6024359161092c611d59565b805161093781611561565b600094858252600254908515610ac5576109718173ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b680100000000000000018702815401905560019173ffffffffffffffffffffffffffffffffffffffff821683881460e11b4260a01b1781176109bd836000526006602052604060002090565b558884808a85019480857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95868180a4015b848103610ab65750505015610a8e57600255803b610a0b578680f35b6002549586039180805b610a33575b50505050505050600254036106ba573880808080808680f35b15610a81575b87610a4f610a4b868487019686612bdc565b1590565b610a595781610a15565b8686517fd1a57ed6000000000000000000000000000000000000000000000000000000008152fd5b868310610a395780610a1a565b8585517f2e076300000000000000000000000000000000000000000000000000000000008152fd5b80848d858180a40185906109ef565b505050517fb562e8dd000000000000000000000000000000000000000000000000000000008152fd5b600319606091011261000e57600435610b0681610738565b90602435610b1381610738565b9060443590565b506108fc610b2736610aee565b91612525565b503461000e57602060031936011261000e5760043560005260016020526020600160406000200154604051908152f35b503461000e57600060031936011261000e576020600254604051908152f35b503461000e57602060031936011261000e576020610ba4600435610b9f81610738565b6123a5565b604051908152f35b503461000e57600060031936011261000e5760206040517fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428152f35b503461000e57602060031936011261000e57600435610c0681610738565b610c0e611bb4565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fd52cfefb3f6fd7766669e08a03d2ceb3243383019e3a5fed2a519df30ee55b9260205260408120549091907fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec429060ff16610c83578280f35b8083526001602052610cb882604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8480a438808280f35b503461000e57604060031936011261000e57600435602435610d4281610738565b610d4a611c33565b610d767fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42831415612655565b600091808352600160205260ff610db083604086209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b541615610dbb578280f35b8083526001602052610df082604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8480a438808280f35b503461000e57602060031936011261000e57600435610e7a81610738565b610e82611bb4565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fd52cfefb3f6fd7766669e08a03d2ceb3243383019e3a5fed2a519df30ee55b92602052604081209091907fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec429060ff90610db0565b503461000e57604060031936011261000e57602435610f1181610738565b3373ffffffffffffffffffffffffffffffffffffffff821603610f3a576108fc90600435611ad6565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152fd5b503461000e5760408060031936011261000e57600490813591610fe083610738565b60243591610fec611c33565b8051610ff781611561565b600094858252600254908515610ac5576110318173ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b680100000000000000018702815401905560019173ffffffffffffffffffffffffffffffffffffffff821683881460e11b4260a01b17811761107d836000526006602052604060002090565b558884808a85019480857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95868180a4015b8481036111215750505015610a8e57600255803b6110cb578680f35b6002549586039180805b6110f25750505050505050600254036106ba573880808080808680f35b15611114575b8761110a610a4b868487019686612bdc565b610a5957816110d5565b8683106110f85780610a1a565b80848d858180a40185906110af565b506108fc61113d36610aee565b906040519261114b84611561565b60008452612ac6565b503461000e57600060031936011261000e57602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b503461000e57602060031936011261000e57602073ffffffffffffffffffffffffffffffffffffffff6111bd60043561271b565b16604051908152f35b503461000e57604060031936011261000e576111e0611dae565b60408051600435815260243560208201527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c9190a1005b503461000e57602060031936011261000e576020610ba460043561123a81610738565b6126ba565b503461000e576000806003193601126106ba5761125a611bb4565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461000e57600060031936011261000e576020600c54604051908152f35b503461000e57600060031936011261000e57602073ffffffffffffffffffffffffffffffffffffffff60005416604051908152f35b503461000e57604060031936011261000e57602060ff61136c60243561133881610738565b6004356000526001845260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54166040519015158152f35b503461000e57600060031936011261000e5760206040517fe7d07e22cc47e0674aa5610dfc0c7c09a0a3b7491679c731a125fba46498854e8152f35b503461000e576000806003193601126106ba5760405190806005549060019180831c9280821692831561146e575b602092838610851461068357858852602088019490811561064457506001146114155761041d876105df8189038261158a565b600560005294509192917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b83861061145d57505050910190506105df8261041d38806105cf565b805485870152948201948101611441565b93607f16936113e2565b503461000e57602060031936011261000e5773ffffffffffffffffffffffffffffffffffffffff6004356114ab81610738565b6114b3611c33565b167fffffffffffffffffffffffff0000000000000000000000000000000000000000600b541617600b55600080f35b503461000e57600060031936011261000e57602060405160008152f35b8015150361000e57565b503461000e57604060031936011261000e57611526600435610738565b61076e6024356114ff565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff82111761157d57604052565b611585611531565b604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761157d57604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111611607575b01160190565b61160f611531565b611601565b50608060031936011261000e5760043561162d81610738565b60243561163981610738565b6064359167ffffffffffffffff831161000e573660238401121561000e57826004013591611666836115cb565b92611674604051948561158a565b808452366024828701011161000e5760208160009260246108fc9801838801378501015260443591612ac6565b503461000e57602060031936011261000e5773ffffffffffffffffffffffffffffffffffffffff6004356116d481610738565b6116dc611c33565b167fffffffffffffffffffffffff0000000000000000000000000000000000000000600a541617600a55600080f35b503461000e57602060031936011261000e57600435611729816127d7565b15611801576117b2600061041d9261176c73ffffffffffffffffffffffffffffffffffffffff600a541673ffffffffffffffffffffffffffffffffffffffff1690565b600c54916040518095819482937f92cb829d0000000000000000000000000000000000000000000000000000000084526004840160209093929193604081019481520152565b03915afa9081156117f4575b6000916117d3575b5060405191829182610569565b6117ee913d8091833e6117e6818361158a565b81019061241f565b386117c6565b6117fc61247e565b6117be565b60046040517fa14c4b50000000000000000000000000000000000000000000000000000000008152fd5b503461000e57604060031936011261000e576108fc60243560043561184f82610738565b611857611c33565b6118837fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42821415612655565b611ad6565b503461000e57602060031936011261000e576118a2611dae565b7ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce760206040516004358152a1005b503461000e57604060031936011261000e57602060ff61136c6004356118f581610738565b73ffffffffffffffffffffffffffffffffffffffff6024359161191783610738565b166000526009845260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b503461000e57602060031936011261000e5760043561196781610738565b61196f611bb4565b73ffffffffffffffffffffffffffffffffffffffff80911680156119e1576000918254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b503461000e57600060031936011261000e57602073ffffffffffffffffffffffffffffffffffffffff600a5416604051908152f35b503461000e57600060031936011261000e5760206040517ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98152f35b600090808252600160205260ff611b1084604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5416611b1b57505050565b8082526001602052611b5083604084209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b73ffffffffffffffffffffffffffffffffffffffff3394169280a4565b73ffffffffffffffffffffffffffffffffffffffff600054163303611bd557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3360009081527fd52cfefb3f6fd7766669e08a03d2ceb3243383019e3a5fed2a519df30ee55b92602052604090205460ff1615611c6c57565b611d556048611d23611c7d33611f93565b611cf7611c88612055565b6040519485937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000006020860152611cc8815180926020603789019101610503565b84017f206973206d697373696e6720726f6c652000000000000000000000000000000060378201520190611e03565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261158a565b6040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301610569565b0390fd5b3360009081527ffe36a80dee87f02e45351a65c4bd3ccefd3fc5363e679b6e4b81a8004282b3fc602052604090205460ff1615611d9257565b611d556048611d23611da333611f93565b611cf7611c886120f1565b3360009081527f0345da471fed81e28f4ca5948c3071e559c89b9f6a2ea2196e8c3e85dbd1ab7d602052604090205460ff1615611de757565b611d556048611d23611df833611f93565b611cf7611c8861218d565b90611e1660209282815194859201610503565b0190565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b604051906080820182811067ffffffffffffffff821117611e77575b604052604282526060366020840137565b611e7f611531565b611e66565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602090805115611ec2570190565b611e16611e84565b602190805160011015611ec2570190565b906020918051821015611eed57010190565b611ef5611e84565b010190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908015611f26570190565b611e16611e1a565b15611f3557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b604051906060820182811067ffffffffffffffff821117612048575b604052602a825260403660208401376030611fc983611eb4565b536078611fd583611eca565b536029905b60018211611fed5761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6120359316601081101561203b575b1a61202b8486611edb565b5360041c91611efa565b90611fda565b612043611e84565b612020565b612050611531565b611faf565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4261207e611e4a565b90603061208a83611eb4565b53607861209683611eca565b536041905b600182116120ae5761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6120eb9316601081101561203b571a61202b8486611edb565b9061209b565b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc961211a611e4a565b90603061212683611eb4565b53607861213283611eca565b536041905b6001821161214a5761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6121879316601081101561203b571a61202b8486611edb565b90612137565b7fe7d07e22cc47e0674aa5610dfc0c7c09a0a3b7491679c731a125fba46498854e6121b6611e4a565b9060306121c283611eb4565b5360786121ce83611eca565b536041905b600182116121e65761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6122239316601081101561203b571a61202b8486611edb565b906121d3565b7f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c8612252611e4a565b90603061225e83611eb4565b53607861226a83611eca565b536041905b600182116122825761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6122bf9316601081101561203b571a61202b8486611edb565b9061226f565b3360009081527f193e3572123513c32b36f6267c30628a827495c35a3a55210b02c864b69a1fe26020526040812054919392909160ff161561235b57815b838110612311575050505050565b8060051b82013573ffffffffffffffffffffffffffffffffffffffff806123378361271b565b1690871603612357579061234d61235292612d32565b612377565b612303565b8380fd5b611d556048611d2361236c33611f93565b611cf7611c88612229565b6001907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f26570190565b6123ae816126ba565b6123b9575b50600090565b6002549060005b8281106123ce5750506123b3565b6123d7816127d7565b806123f5575b6123ef576123ea90612377565b6123c0565b91505090565b5073ffffffffffffffffffffffffffffffffffffffff806124158361271b565b16908316146123dd565b60208183031261000e5780519067ffffffffffffffff821161000e570181601f8201121561000e578051612452816115cb565b92612460604051948561158a565b8184526020828401011161000e5761057a9160208085019101610503565b506040513d6000823e3d90fd5b9081602091031261000e575161057a816114ff565b5060846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5468697320746f6b656e206973205342542c20736f20746869732063616e206e60448201527f6f74207472616e736665722e00000000000000000000000000000000000000006064820152fd5b9190612562612549600b5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff908181166125a1575b50811661dead14612598575050506125966124a0565b565b6125969261282b565b6040517ffc91a89700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152600191602090829060249082905afa908115612648575b60009161261a575b501515146126105738612580565b506125969261282b565b61263b915060203d8111612641575b612633818361158a565b81019061248b565b38612602565b503d612629565b61265061247e565b6125fa565b1561265c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6e6f742061646d696e206f6e6c792e00000000000000000000000000000000006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff1680156126f157600052600760205267ffffffffffffffff6040600020541690565b60046040517f8f4eb604000000000000000000000000000000000000000000000000000000008152fd5b808060011115612750575b60046040517fdf2d9b42000000000000000000000000000000000000000000000000000000008152fd5b600254811015612726576000526006602052604060002054907c01000000000000000000000000000000000000000000000000000000008216612726575b8115612798575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150016127d0816000526006602052604060002090565b549061278e565b8060011115908161281f575b816127ec575090565b905060005260066020527c0100000000000000000000000000000000000000000000000000000000604060002054161590565b600254811091506127e3565b906128358361271b565b73ffffffffffffffffffffffffffffffffffffffff808416928382841603612a9c5760008681526008602052604090208054909261288f73ffffffffffffffffffffffffffffffffffffffff881633908114908414171590565b612a0d575b82169586156129e35761291d936128d1926129d9575b5073ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905573ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b805460010190557c0200000000000000000000000000000000000000000000000000000000804260a01b85171761295e866000526006602052604060002090565b5581161561298f575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600184016129a7816000526006602052604060002090565b54156129b4575b50612967565b60025481146129ae576129d1906000526006602052604060002090565b5538806129ae565b60009055386128aa565b60046040517fea553b34000000000000000000000000000000000000000000000000000000008152fd5b612a6d610a4b612a6633612a418b73ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b9073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5460ff1690565b156128945760046040517f59c896be000000000000000000000000000000000000000000000000000000008152fd5b60046040517fa1148100000000000000000000000000000000000000000000000000000000008152fd5b929190612ad4828286612525565b803b612ae1575b50505050565b612aea93612cdb565b15612af85738808080612adb565b60046040517fd1a57ed6000000000000000000000000000000000000000000000000000000008152fd5b9081602091031261000e575161057a81610364565b61057a939273ffffffffffffffffffffffffffffffffffffffff6080931682526000602083015260408201528160608201520190610526565b909261057a949360809373ffffffffffffffffffffffffffffffffffffffff809216845216602083015260408201528160608201520190610526565b3d15612bd7573d90612bbd826115cb565b91612bcb604051938461158a565b82523d6000602084013e565b606090565b612c3360209173ffffffffffffffffffffffffffffffffffffffff939460006040519586809581947f150b7a02000000000000000000000000000000000000000000000000000000009a8b84523360048501612b37565b0393165af160009181612cab575b50612c8557612c4e612bac565b80519081612c805760046040517fd1a57ed6000000000000000000000000000000000000000000000000000000008152fd5b602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000161490565b612ccd91925060203d8111612cd4575b612cc5818361158a565b810190612b22565b9038612c41565b503d612cbb565b92602091612c3393600073ffffffffffffffffffffffffffffffffffffffff6040518097819682957f150b7a02000000000000000000000000000000000000000000000000000000009b8c85523360048601612b70565b6000612d3d8261271b565b73ffffffffffffffffffffffffffffffffffffffff811690612d6c846000526008602052604060002090815490565b612e8c575b50612d9c8273ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b6fffffffffffffffffffffffffffffffff81540190557c03000000000000000000000000000000000000000000000000000000004260a01b831717612deb856000526006602052604060002090565b557c0200000000000000000000000000000000000000000000000000000000811615612e42575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4600160035401600355565b60018401612e5a816000526006602052604060002090565b5415612e67575b50612e12565b6002548114612e6157612e84906000526006602052604060002090565b553880612e61565b83905538612d7156fea26469706673582212208a0a6e4239f4932fac31bd29e41c1e7236fc2c90e482e2adbb216942eb86933e64736f6c63430008110033

Deployed Bytecode

0x60806040526004361015610013575b600080fd5b60003560e01c806301ffc9a71461035b57806306fdde0314610352578063081812fc14610349578063095ea7b314610340578063118c4f131461033757806318160ddd1461032e5780631a8baec1146103255780631fffe2b01461031c57806321f314ca1461031357806323b872dd1461030a578063248a9ca31461030157806326987b60146102f8578063294cdf0d146102ef5780632a0acc6a146102e65780632d345670146102dd5780632f2ff15d146102d457806335bb3e16146102cb57806336568abe146102c257806340c10f19146102b957806342842e0e146102b0578063568583d5146102a75780636352211e1461029e57806369bfdcdf1461029557806370a082311461028c578063715018a61461028357806387fc5e061461027a5780638da5cb5b1461027157806391d148541461026857806394a686301461025f57806395d89b4114610256578063980b17d01461024d578063a217fddf14610244578063a22cb4651461023b578063b88d4fde14610232578063c0d7865514610229578063c87b56dd14610220578063d547741f14610217578063d95ba42f1461020e578063e985e9c514610205578063f2fde38b146101fc578063f887ea40146101f35763fe6d8124146101eb57600080fd5b61000e611a9a565b5061000e611a65565b5061000e611949565b5061000e6118d0565b5061000e611888565b5061000e61182b565b5061000e61170b565b5061000e6116a1565b5061000e611614565b5061000e611509565b5061000e6114e2565b5061000e611478565b5061000e6113b4565b5061000e611378565b5061000e611313565b5061000e6112de565b5061000e6112bf565b5061000e61123f565b5061000e611217565b5061000e6111c6565b5061000e611189565b5061000e611154565b5061000e611130565b5061000e610fbe565b5061000e610ef3565b5061000e610e5c565b5061000e610d21565b5061000e610be8565b5061000e610bac565b5061000e610b7c565b5061000e610b5d565b5061000e610b2d565b5061000e610b1a565b5061000e6108fe565b5061000e610896565b5061000e610874565b5061000e61082e565b5061000e6107f2565b5061000e610756565b5061000e6106bd565b5061000e61057d565b5061000e61038e565b7fffffffff0000000000000000000000000000000000000000000000000000000081160361000e57565b503461000e57602060031936011261000e5761041d7fffffffff000000000000000000000000000000000000000000000000000000006004356103d081610364565b167f7965db0b0000000000000000000000000000000000000000000000000000000081149081156104d9575b81156104af575b8115610421575b5060405190151581529081906020820190565b0390f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491508115610485575b811561045b575b503861040a565b7f5b5e139f0000000000000000000000000000000000000000000000000000000091501438610454565b7f80ac58cd000000000000000000000000000000000000000000000000000000008114915061044d565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081149150610403565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506103fc565b60005b8381106105165750506000910152565b8181015183820152602001610506565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361056281518092818752878088019101610503565b0116010190565b90602061057a928181520190610526565b90565b503461000e576000806003193601126106ba5760405190806004549060019180831c928082169283156106b0575b602092838610851461068357858852602088019490811561064457506001146105eb575b61041d876105df8189038261158a565b60405191829182610569565b600460005294509192917f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83861061063357505050910190506105df8261041d38806105cf565b805485870152948201948101610617565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685525050505090151560051b0190506105df8261041d38806105cf565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b93607f16936105ab565b80fd5b503461000e57602060031936011261000e576004356106db816127d7565b1561070e576000526008602052602073ffffffffffffffffffffffffffffffffffffffff60406000205416604051908152f35b60046040517fcf4700e4000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff81160361000e57565b50604060031936011261000e5761076e600435610738565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5468697320746f6b656e206973205342542c20736f20746869732063616e206e60448201527f6f7420617070726f76616c2e00000000000000000000000000000000000000006064820152fd5b503461000e57600060031936011261000e5760206040517f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c88152f35b503461000e57600060031936011261000e5760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600254600354900301604051908152f35b503461000e57602060031936011261000e5761088e611c33565b600435600c55005b503461000e57604060031936011261000e576004356108b481610738565b6024359067ffffffffffffffff9081831161000e573660238401121561000e57826004013591821161000e573660248360051b8501011161000e5760246108fc9301906122c5565b005b503461000e5760408060031936011261000e5760049081359161092083610738565b6024359161092c611d59565b805161093781611561565b600094858252600254908515610ac5576109718173ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b680100000000000000018702815401905560019173ffffffffffffffffffffffffffffffffffffffff821683881460e11b4260a01b1781176109bd836000526006602052604060002090565b558884808a85019480857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95868180a4015b848103610ab65750505015610a8e57600255803b610a0b578680f35b6002549586039180805b610a33575b50505050505050600254036106ba573880808080808680f35b15610a81575b87610a4f610a4b868487019686612bdc565b1590565b610a595781610a15565b8686517fd1a57ed6000000000000000000000000000000000000000000000000000000008152fd5b868310610a395780610a1a565b8585517f2e076300000000000000000000000000000000000000000000000000000000008152fd5b80848d858180a40185906109ef565b505050517fb562e8dd000000000000000000000000000000000000000000000000000000008152fd5b600319606091011261000e57600435610b0681610738565b90602435610b1381610738565b9060443590565b506108fc610b2736610aee565b91612525565b503461000e57602060031936011261000e5760043560005260016020526020600160406000200154604051908152f35b503461000e57600060031936011261000e576020600254604051908152f35b503461000e57602060031936011261000e576020610ba4600435610b9f81610738565b6123a5565b604051908152f35b503461000e57600060031936011261000e5760206040517fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec428152f35b503461000e57602060031936011261000e57600435610c0681610738565b610c0e611bb4565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fd52cfefb3f6fd7766669e08a03d2ceb3243383019e3a5fed2a519df30ee55b9260205260408120549091907fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec429060ff16610c83578280f35b8083526001602052610cb882604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8480a438808280f35b503461000e57604060031936011261000e57600435602435610d4281610738565b610d4a611c33565b610d767fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42831415612655565b600091808352600160205260ff610db083604086209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b541615610dbb578280f35b8083526001602052610df082604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8480a438808280f35b503461000e57602060031936011261000e57600435610e7a81610738565b610e82611bb4565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fd52cfefb3f6fd7766669e08a03d2ceb3243383019e3a5fed2a519df30ee55b92602052604081209091907fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec429060ff90610db0565b503461000e57604060031936011261000e57602435610f1181610738565b3373ffffffffffffffffffffffffffffffffffffffff821603610f3a576108fc90600435611ad6565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152fd5b503461000e5760408060031936011261000e57600490813591610fe083610738565b60243591610fec611c33565b8051610ff781611561565b600094858252600254908515610ac5576110318173ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b680100000000000000018702815401905560019173ffffffffffffffffffffffffffffffffffffffff821683881460e11b4260a01b17811761107d836000526006602052604060002090565b558884808a85019480857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95868180a4015b8481036111215750505015610a8e57600255803b6110cb578680f35b6002549586039180805b6110f25750505050505050600254036106ba573880808080808680f35b15611114575b8761110a610a4b868487019686612bdc565b610a5957816110d5565b8683106110f85780610a1a565b80848d858180a40185906110af565b506108fc61113d36610aee565b906040519261114b84611561565b60008452612ac6565b503461000e57600060031936011261000e57602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b503461000e57602060031936011261000e57602073ffffffffffffffffffffffffffffffffffffffff6111bd60043561271b565b16604051908152f35b503461000e57604060031936011261000e576111e0611dae565b60408051600435815260243560208201527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c9190a1005b503461000e57602060031936011261000e576020610ba460043561123a81610738565b6126ba565b503461000e576000806003193601126106ba5761125a611bb4565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461000e57600060031936011261000e576020600c54604051908152f35b503461000e57600060031936011261000e57602073ffffffffffffffffffffffffffffffffffffffff60005416604051908152f35b503461000e57604060031936011261000e57602060ff61136c60243561133881610738565b6004356000526001845260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b54166040519015158152f35b503461000e57600060031936011261000e5760206040517fe7d07e22cc47e0674aa5610dfc0c7c09a0a3b7491679c731a125fba46498854e8152f35b503461000e576000806003193601126106ba5760405190806005549060019180831c9280821692831561146e575b602092838610851461068357858852602088019490811561064457506001146114155761041d876105df8189038261158a565b600560005294509192917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b83861061145d57505050910190506105df8261041d38806105cf565b805485870152948201948101611441565b93607f16936113e2565b503461000e57602060031936011261000e5773ffffffffffffffffffffffffffffffffffffffff6004356114ab81610738565b6114b3611c33565b167fffffffffffffffffffffffff0000000000000000000000000000000000000000600b541617600b55600080f35b503461000e57600060031936011261000e57602060405160008152f35b8015150361000e57565b503461000e57604060031936011261000e57611526600435610738565b61076e6024356114ff565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff82111761157d57604052565b611585611531565b604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761157d57604052565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209267ffffffffffffffff8111611607575b01160190565b61160f611531565b611601565b50608060031936011261000e5760043561162d81610738565b60243561163981610738565b6064359167ffffffffffffffff831161000e573660238401121561000e57826004013591611666836115cb565b92611674604051948561158a565b808452366024828701011161000e5760208160009260246108fc9801838801378501015260443591612ac6565b503461000e57602060031936011261000e5773ffffffffffffffffffffffffffffffffffffffff6004356116d481610738565b6116dc611c33565b167fffffffffffffffffffffffff0000000000000000000000000000000000000000600a541617600a55600080f35b503461000e57602060031936011261000e57600435611729816127d7565b15611801576117b2600061041d9261176c73ffffffffffffffffffffffffffffffffffffffff600a541673ffffffffffffffffffffffffffffffffffffffff1690565b600c54916040518095819482937f92cb829d0000000000000000000000000000000000000000000000000000000084526004840160209093929193604081019481520152565b03915afa9081156117f4575b6000916117d3575b5060405191829182610569565b6117ee913d8091833e6117e6818361158a565b81019061241f565b386117c6565b6117fc61247e565b6117be565b60046040517fa14c4b50000000000000000000000000000000000000000000000000000000008152fd5b503461000e57604060031936011261000e576108fc60243560043561184f82610738565b611857611c33565b6118837fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42821415612655565b611ad6565b503461000e57602060031936011261000e576118a2611dae565b7ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce760206040516004358152a1005b503461000e57604060031936011261000e57602060ff61136c6004356118f581610738565b73ffffffffffffffffffffffffffffffffffffffff6024359161191783610738565b166000526009845260406000209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b503461000e57602060031936011261000e5760043561196781610738565b61196f611bb4565b73ffffffffffffffffffffffffffffffffffffffff80911680156119e1576000918254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b503461000e57600060031936011261000e57602073ffffffffffffffffffffffffffffffffffffffff600a5416604051908152f35b503461000e57600060031936011261000e5760206040517ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98152f35b600090808252600160205260ff611b1084604085209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5416611b1b57505050565b8082526001602052611b5083604084209073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b73ffffffffffffffffffffffffffffffffffffffff3394169280a4565b73ffffffffffffffffffffffffffffffffffffffff600054163303611bd557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b3360009081527fd52cfefb3f6fd7766669e08a03d2ceb3243383019e3a5fed2a519df30ee55b92602052604090205460ff1615611c6c57565b611d556048611d23611c7d33611f93565b611cf7611c88612055565b6040519485937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000006020860152611cc8815180926020603789019101610503565b84017f206973206d697373696e6720726f6c652000000000000000000000000000000060378201520190611e03565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261158a565b6040519182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301610569565b0390fd5b3360009081527ffe36a80dee87f02e45351a65c4bd3ccefd3fc5363e679b6e4b81a8004282b3fc602052604090205460ff1615611d9257565b611d556048611d23611da333611f93565b611cf7611c886120f1565b3360009081527f0345da471fed81e28f4ca5948c3071e559c89b9f6a2ea2196e8c3e85dbd1ab7d602052604090205460ff1615611de757565b611d556048611d23611df833611f93565b611cf7611c8861218d565b90611e1660209282815194859201610503565b0190565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b604051906080820182811067ffffffffffffffff821117611e77575b604052604282526060366020840137565b611e7f611531565b611e66565b507f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602090805115611ec2570190565b611e16611e84565b602190805160011015611ec2570190565b906020918051821015611eed57010190565b611ef5611e84565b010190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908015611f26570190565b611e16611e1a565b15611f3557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b604051906060820182811067ffffffffffffffff821117612048575b604052602a825260403660208401376030611fc983611eb4565b536078611fd583611eca565b536029905b60018211611fed5761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6120359316601081101561203b575b1a61202b8486611edb565b5360041c91611efa565b90611fda565b612043611e84565b612020565b612050611531565b611faf565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4261207e611e4a565b90603061208a83611eb4565b53607861209683611eca565b536041905b600182116120ae5761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6120eb9316601081101561203b571a61202b8486611edb565b9061209b565b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc961211a611e4a565b90603061212683611eb4565b53607861213283611eca565b536041905b6001821161214a5761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6121879316601081101561203b571a61202b8486611edb565b90612137565b7fe7d07e22cc47e0674aa5610dfc0c7c09a0a3b7491679c731a125fba46498854e6121b6611e4a565b9060306121c283611eb4565b5360786121ce83611eca565b536041905b600182116121e65761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6122239316601081101561203b571a61202b8486611edb565b906121d3565b7f9667e80708b6eeeb0053fa0cca44e028ff548e2a9f029edfeac87c118b08b7c8612252611e4a565b90603061225e83611eb4565b53607861226a83611eca565b536041905b600182116122825761057a915015611f2e565b807f3031323334353637383961626364656600000000000000000000000000000000600f6122bf9316601081101561203b571a61202b8486611edb565b9061226f565b3360009081527f193e3572123513c32b36f6267c30628a827495c35a3a55210b02c864b69a1fe26020526040812054919392909160ff161561235b57815b838110612311575050505050565b8060051b82013573ffffffffffffffffffffffffffffffffffffffff806123378361271b565b1690871603612357579061234d61235292612d32565b612377565b612303565b8380fd5b611d556048611d2361236c33611f93565b611cf7611c88612229565b6001907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f26570190565b6123ae816126ba565b6123b9575b50600090565b6002549060005b8281106123ce5750506123b3565b6123d7816127d7565b806123f5575b6123ef576123ea90612377565b6123c0565b91505090565b5073ffffffffffffffffffffffffffffffffffffffff806124158361271b565b16908316146123dd565b60208183031261000e5780519067ffffffffffffffff821161000e570181601f8201121561000e578051612452816115cb565b92612460604051948561158a565b8184526020828401011161000e5761057a9160208085019101610503565b506040513d6000823e3d90fd5b9081602091031261000e575161057a816114ff565b5060846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5468697320746f6b656e206973205342542c20736f20746869732063616e206e60448201527f6f74207472616e736665722e00000000000000000000000000000000000000006064820152fd5b9190612562612549600b5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff908181166125a1575b50811661dead14612598575050506125966124a0565b565b6125969261282b565b6040517ffc91a89700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152600191602090829060249082905afa908115612648575b60009161261a575b501515146126105738612580565b506125969261282b565b61263b915060203d8111612641575b612633818361158a565b81019061248b565b38612602565b503d612629565b61265061247e565b6125fa565b1561265c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6e6f742061646d696e206f6e6c792e00000000000000000000000000000000006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff1680156126f157600052600760205267ffffffffffffffff6040600020541690565b60046040517f8f4eb604000000000000000000000000000000000000000000000000000000008152fd5b808060011115612750575b60046040517fdf2d9b42000000000000000000000000000000000000000000000000000000008152fd5b600254811015612726576000526006602052604060002054907c01000000000000000000000000000000000000000000000000000000008216612726575b8115612798575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150016127d0816000526006602052604060002090565b549061278e565b8060011115908161281f575b816127ec575090565b905060005260066020527c0100000000000000000000000000000000000000000000000000000000604060002054161590565b600254811091506127e3565b906128358361271b565b73ffffffffffffffffffffffffffffffffffffffff808416928382841603612a9c5760008681526008602052604090208054909261288f73ffffffffffffffffffffffffffffffffffffffff881633908114908414171590565b612a0d575b82169586156129e35761291d936128d1926129d9575b5073ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905573ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b805460010190557c0200000000000000000000000000000000000000000000000000000000804260a01b85171761295e866000526006602052604060002090565b5581161561298f575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600184016129a7816000526006602052604060002090565b54156129b4575b50612967565b60025481146129ae576129d1906000526006602052604060002090565b5538806129ae565b60009055386128aa565b60046040517fea553b34000000000000000000000000000000000000000000000000000000008152fd5b612a6d610a4b612a6633612a418b73ffffffffffffffffffffffffffffffffffffffff166000526009602052604060002090565b9073ffffffffffffffffffffffffffffffffffffffff16600052602052604060002090565b5460ff1690565b156128945760046040517f59c896be000000000000000000000000000000000000000000000000000000008152fd5b60046040517fa1148100000000000000000000000000000000000000000000000000000000008152fd5b929190612ad4828286612525565b803b612ae1575b50505050565b612aea93612cdb565b15612af85738808080612adb565b60046040517fd1a57ed6000000000000000000000000000000000000000000000000000000008152fd5b9081602091031261000e575161057a81610364565b61057a939273ffffffffffffffffffffffffffffffffffffffff6080931682526000602083015260408201528160608201520190610526565b909261057a949360809373ffffffffffffffffffffffffffffffffffffffff809216845216602083015260408201528160608201520190610526565b3d15612bd7573d90612bbd826115cb565b91612bcb604051938461158a565b82523d6000602084013e565b606090565b612c3360209173ffffffffffffffffffffffffffffffffffffffff939460006040519586809581947f150b7a02000000000000000000000000000000000000000000000000000000009a8b84523360048501612b37565b0393165af160009181612cab575b50612c8557612c4e612bac565b80519081612c805760046040517fd1a57ed6000000000000000000000000000000000000000000000000000000008152fd5b602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000161490565b612ccd91925060203d8111612cd4575b612cc5818361158a565b810190612b22565b9038612c41565b503d612cbb565b92602091612c3393600073ffffffffffffffffffffffffffffffffffffffff6040518097819682957f150b7a02000000000000000000000000000000000000000000000000000000009b8c85523360048601612b70565b6000612d3d8261271b565b73ffffffffffffffffffffffffffffffffffffffff811690612d6c846000526008602052604060002090815490565b612e8c575b50612d9c8273ffffffffffffffffffffffffffffffffffffffff166000526007602052604060002090565b6fffffffffffffffffffffffffffffffff81540190557c03000000000000000000000000000000000000000000000000000000004260a01b831717612deb856000526006602052604060002090565b557c0200000000000000000000000000000000000000000000000000000000811615612e42575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4600160035401600355565b60018401612e5a816000526006602052604060002090565b5415612e67575b50612e12565b6002548114612e6157612e84906000526006602052604060002090565b553880612e61565b83905538612d7156fea26469706673582212208a0a6e4239f4932fac31bd29e41c1e7236fc2c90e482e2adbb216942eb86933e64736f6c63430008110033

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.