Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
4,444 OCBearish
Holders
821
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
10 OCBearishLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Indelible
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.17;import "../extensions/ERC721AX.sol";import "@openzeppelin/contracts/security/ReentrancyGuard.sol";import "@openzeppelin/contracts/access/Ownable.sol";import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";import "@openzeppelin/contracts/utils/Address.sol";import "solady/src/utils/LibPRNG.sol";import "solady/src/utils/Base64.sol";import "solady/src/utils/SSTORE2.sol";import {DefaultOperatorFilterer} from "./DefaultOperatorFilterer.sol";import "./lib/DynamicBuffer.sol";import "./lib/HelperLib.sol";import "./interfaces/IIndeliblePro.sol";contract Indelible is ERC721AX, DefaultOperatorFilterer, ReentrancyGuard, Ownable {using HelperLib for uint;using DynamicBuffer for bytes;using LibPRNG for *;event MetadataUpdate(uint256 _tokenId);event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);struct LinkedTraitDTO {uint[] traitA;
12345678910// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {OperatorFilterer} from "./OperatorFilterer.sol";abstract contract DefaultOperatorFilterer is OperatorFilterer {address constant DEFAULT_SUBSCRIPTION = address(0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6);constructor() OperatorFilterer(DEFAULT_SUBSCRIPTION, true) {}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {IOperatorFilterRegistry} from "./interfaces/IOperatorFilterRegistry.sol";abstract contract OperatorFilterer {error OperatorNotAllowed(address operator);IOperatorFilterRegistry constant operatorFilterRegistry =IOperatorFilterRegistry(0x000000000000AAeB6D7670E522A718067333cd4E);constructor(address subscriptionOrRegistrantToCopy, bool subscribe) {// If an inheriting token contract is deployed to a network without the registry deployed, the modifier// will not revert, but the contract will need to be registered with the registry once it is deployed in// order for the modifier to filter addresses.if (address(operatorFilterRegistry).code.length > 0) {if (subscribe) {operatorFilterRegistry.registerAndSubscribe(address(this), subscriptionOrRegistrantToCopy);} else {if (subscriptionOrRegistrantToCopy != address(0)) {operatorFilterRegistry.registerAndCopyEntries(address(this), subscriptionOrRegistrantToCopy);} else {operatorFilterRegistry.register(address(this));}}}
123456// SPDX-License-Identifier: MITpragma solidity ^0.8.17;interface IIndeliblePro {function balanceOf(address owner) external view returns (uint256);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;interface IOperatorFilterRegistry {function isOperatorAllowed(address registrant, address operator) external view returns (bool);function register(address registrant) external;function registerAndSubscribe(address registrant, address subscription) external;function registerAndCopyEntries(address registrant, address registrantToCopy) external;function updateOperator(address registrant, address operator, bool filtered) external;function updateOperators(address registrant, address[] calldata operators, bool filtered) external;function updateCodeHash(address registrant, bytes32 codehash, bool filtered) external;function updateCodeHashes(address registrant, bytes32[] calldata codeHashes, bool filtered) external;function subscribe(address registrant, address registrantToSubscribe) external;function unsubscribe(address registrant, bool copyExistingEntries) external;function subscriptionOf(address addr) external returns (address registrant);function subscribers(address registrant) external returns (address[] memory);function subscriberAt(address registrant, uint256 index) external returns (address);function copyEntriesOf(address registrant, address registrantToCopy) external;function isOperatorFiltered(address registrant, address operator) external returns (bool);function isCodeHashOfFiltered(address registrant, address operatorWithCode) external returns (bool);function isCodeHashFiltered(address registrant, bytes32 codeHash) external returns (bool);function filteredOperators(address addr) external returns (address[] memory);function filteredCodeHashes(address addr) external returns (bytes32[] memory);function filteredOperatorAt(address registrant, uint256 index) external returns (address);function filteredCodeHashAt(address registrant, uint256 index) external returns (bytes32);function isRegistered(address addr) external returns (bool);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// Copyright (c) 2021 the ethier authors (github.com/divergencetech/ethier)pragma solidity >=0.8.0;/// @title DynamicBuffer/// @author David Huber (@cxkoda) and Simon Fremaux (@dievardump). See also/// https://raw.githubusercontent.com/dievardump/solidity-dynamic-buffer/// @notice This library is used to allocate a big amount of container memory// which will be subsequently filled without needing to reallocate/// memory./// @dev First, allocate memory./// Then use `buffer.appendUnchecked(theBytes)` or `appendSafe()` if/// bounds checking is required.library DynamicBuffer {/// @notice Allocates container space for the DynamicBuffer/// @param capacity The intended max amount of bytes in the buffer/// @return buffer The memory location of the buffer/// @dev Allocates `capacity + 0x60` bytes of space/// The buffer array starts at the first container data position,/// (i.e. `buffer = container + 0x20`)function allocate(uint256 capacity)internalpurereturns (bytes memory buffer){
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;library HelperLib {function parseInt(string memory _a)internalpurereturns (uint8 _parsedInt){bytes memory bresult = bytes(_a);uint8 mint = 0;for (uint8 i = 0; i < bresult.length; i++) {if ((uint8(uint8(bresult[i])) >= 48) &&(uint8(uint8(bresult[i])) <= 57)) {mint *= 10;mint += uint8(bresult[i]) - 48;}}return mint;}function _substring(string memory str,uint256 startIndex,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// Indelible Labs LLCpragma solidity ^0.8.4;import "erc721a/contracts/ERC721A.sol";/*** @dev This implements an optional extension of {ERC721} that automatically* expires approvals for operators to transfer your tokens after 30 days or* the set approval lifespan.*/abstract contract ERC721AX is ERC721A {// Mapping from owner to operator approvalsmapping(address => mapping(address => uint)) private _operatorApprovals;mapping(address => uint128) public approvalLifespans;// Approval lifespanuint128 constant public DEFAULT_APPROVAL_LIFESPAN = 30 days;/*** @dev Approve or remove `operator` as an operator for the caller.* Operators can call {transferFrom} or {safeTransferFrom}* for any token owned by the caller.** Requirements:
1234567891011121314151617181920212223242526// 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.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol)pragma solidity ^0.8.0;/*** @dev Contract module that helps prevent reentrant calls to a function.** Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier* available, which can be applied to functions to make sure there are no nested* (reentrant) calls to them.** Note that because there is a single `nonReentrant` guard, functions marked as* `nonReentrant` may not call one another. This can be worked around by making* those functions `private`, and then adding `external` `nonReentrant` entry* points to them.** TIP: If you would like to learn more about reentrancy and alternative ways* to protect against it, check out our blog post* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].*/abstract contract ReentrancyGuard {// Booleans are more expensive than uint256 or any type that takes up a full// word because each write operation emits an extra SLOAD to first read the// slot's contents, replace the bits taken up by the boolean, and then write// back. This is the compiler's defense against contract upgrades and
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.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* ====*
123456789101112131415161718192021222324// 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;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/MerkleProof.sol)pragma solidity ^0.8.0;/*** @dev These functions deal with verification of Merkle Tree proofs.** The tree and the proofs can be generated using our* https://github.com/OpenZeppelin/merkle-tree[JavaScript library].* You will find a quickstart guide in the readme.** WARNING: You should avoid using leaf values that are 64 bytes long prior to* hashing, or use a hash function other than keccak256 for hashing leaves.* This is because the concatenation of a sorted pair of internal nodes in* the merkle tree could be reinterpreted as a leaf value.* OpenZeppelin's JavaScript library generates merkle trees that are safe* against this attack out of the box.*/library MerkleProof {/*** @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree* defined by `root`. For this, a `proof` must be provided, containing* sibling hashes on the branch from the leaf to the root of the tree. Each* pair of leaves and each pair of pre-images are assumed to be sorted.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// Creator: Chiru Labspragma 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.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// Creator: Chiru Labspragma 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();/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Library to encode strings in Base64./// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/Base64.sol)/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Base64.sol)/// @author Modified from (https://github.com/Brechtpd/base64/blob/main/base64.sol) by Brecht Devos - <brecht@loopring.org>.library Base64 {/// @dev Encodes `data` using the base64 encoding described in RFC 4648./// See: https://datatracker.ietf.org/doc/html/rfc4648/// @param fileSafe Whether to replace '+' with '-' and '/' with '_'./// @param noPadding Whether to strip away the padding.function encode(bytes memory data, bool fileSafe, bool noPadding)internalpurereturns (string memory result){/// @solidity memory-safe-assemblyassembly {let dataLength := mload(data)if dataLength {// Multiply by 4/3 rounded up.// The `shl(2, ...)` is equivalent to multiplying by 4.let encodedLength := shl(2, div(add(dataLength, 2), 3))
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Library for generating psuedorandom numbers./// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)library LibPRNG {/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* STRUCTS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev A psuedorandom number state in memory.struct PRNG {uint256 state;}/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* OPERATIONS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev Seeds the `prng` with `state`.function seed(PRNG memory prng, uint256 state) internal pure {/// @solidity memory-safe-assemblyassembly {mstore(prng, state)}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Read and write to persistent storage at a fraction of the cost./// @author Solady (https://github.com/vectorized/solmady/blob/main/src/utils/SSTORE2.sol)/// @author Saw-mon-and-Natalie (https://github.com/Saw-mon-and-Natalie)/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SSTORE2.sol)/// @author Modified from 0xSequence (https://github.com/0xSequence/sstore2/blob/master/contracts/SSTORE2.sol)library SSTORE2 {/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* CONSTANTS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev We skip the first byte as it's a STOP opcode,/// which ensures the contract can't be called.uint256 internal constant DATA_OFFSET = 1;/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* CUSTOM ERRORS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev Unable to deploy the storage contract.error DeploymentFailed();/// @dev The storage contract address is invalid.error InvalidPointer();
123456789101112131415161718192021{"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"optimizer": {"enabled": true,"runs": 200},"metadata": {"useLiteralContent": true}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","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":"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":"COLLECTOR_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_APPROVAL_LIFESPAN","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"layerIndex","type":"uint256"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"mimetype","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"hide","type":"bool"},{"internalType":"bool","name":"useExistingData","type":"bool"},{"internalType":"uint256","name":"existingDataIndex","type":"uint256"}],"internalType":"struct Indelible.TraitDTO[]","name":"traits","type":"tuple[]"}],"name":"addLayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"layerIndex","type":"uint256"},{"internalType":"uint256","name":"traitIndex","type":"uint256"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"mimetype","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"hide","type":"bool"},{"internalType":"bool","name":"useExistingData","type":"bool"},{"internalType":"uint256","name":"existingDataIndex","type":"uint256"}],"internalType":"struct Indelible.TraitDTO","name":"trait","type":"tuple"}],"name":"addTrait","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"},{"internalType":"address[]","name":"recipients","type":"address[]"}],"name":"airdrop","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"allowListPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"approvalLifespans","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","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":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collector","type":"address"}],"name":"checkProHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractData","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"banner","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"uint256","name":"royalties","type":"uint256"},{"internalType":"string","name":"royaltiesRecipient","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"uint256","name":"layerIndex","type":"uint256"},{"internalType":"uint256","name":"traitIndex","type":"uint256"}],"name":"getLinkedTraits","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_hash","type":"string"}],"name":"hashToMetadata","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_hash","type":"string"}],"name":"hashToSVG","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isAllowListActive","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":[],"name":"isContractSealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isMintActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPublicMintActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRevealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerAllowList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"onAllowList","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":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicMintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"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":[],"name":"sealContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setAllowListPrice","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":"uint128","name":"lifespanDays","type":"uint128"}],"name":"setApprovalLifespanDays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"color","type":"string"}],"name":"setBackgroundColor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"string","name":"banner","type":"string"},{"internalType":"string","name":"website","type":"string"},{"internalType":"uint256","name":"royalties","type":"uint256"},{"internalType":"string","name":"royaltiesRecipient","type":"string"}],"internalType":"struct Indelible.ContractData","name":"data","type":"tuple"}],"name":"setContractData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256[]","name":"traitA","type":"uint256[]"},{"internalType":"uint256[]","name":"traitB","type":"uint256[]"}],"internalType":"struct Indelible.LinkedTraitDTO[]","name":"linkedTraits","type":"tuple[]"}],"name":"setLinkedTraits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"setMaxPerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"setMaxPerAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newMerkleRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"placeholder","type":"string"}],"name":"setPlaceholderImage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setPublicMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setRandomSeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bool","name":"renderOffChain","type":"bool"}],"name":"setRenderOfTokenId","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":"toggleAllowListMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"togglePublicMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleWrapSVG","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenIdToHash","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenIdToSVG","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"layerIndex","type":"uint256"},{"internalType":"uint256","name":"traitIndex","type":"uint256"}],"name":"traitData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"layerIndex","type":"uint256"},{"internalType":"uint256","name":"traitIndex","type":"uint256"}],"name":"traitDetails","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"mimetype","type":"string"},{"internalType":"bool","name":"hide","type":"bool"}],"internalType":"struct Indelible.Trait","name":"","type":"tuple"}],"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":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"withdrawRecipients","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"imageUrl","type":"string"},{"internalType":"address","name":"recipientAddress","type":"address"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
7329fbb84b835f892eba2d331af9278b74c595edf160805261016060405278484045dc0bb3dfc40e09bf3f8fc0bc2b818a8e365351a7d6e960a09081527864d4c25820475f033c44bfcfbf62069f9d654eb26a1498fd8560c05278217fabd4f6851aef7552990e30e6b1d79589ef17e884df36db60e05278311d94572b937286f1a6454426c9ff2295eaa5eaa5aaece54361010052782381c3541e5ab6fe41fd19520098e6953ecac11e74485f86056101205278136cfdc34ac5fb85f6b3e26f35e64ebaaa3c9ca5882e706a9361014052620000e090601090600662000c54565b506040805161010081018252600560c082019081526409adeeae8d60db1b60e08301528152815180830183526004808252634861747360e01b6020838101919091528084019290925283518085018552818152634579657360e01b8184015283850152835180850185526007815266436c6f7468657360c81b8184015260608401528351808501855290815263426f647960e01b8183015260808301528251808401909352600a835269109858dad9dc9bdd5b9960b21b9083015260a0810191909152620001b390601790600662000caf565b50601880546001600160a81b03191674f3daeb3772b00dfb3bbb1ad4fb3494ea6b9be4fe0117905560408051808201909152600b81526a1d1c985b9cdc185c995b9d60aa1b60208201526019906200020c908262000eae565b507f6b94c6dbb45e12cf8753c239e16afdc50e4f41da7bdc4bde5900b81f3f853ddf601b556040805180820190915260018152603160f81b6020820152601c9062000258908262000eae565b506040518060800160405280604c8152602001620070d5604c9139601d9062000282908262000eae565b5061115c601f556004602055660ffcb9e57d4000602155600060245560006025556040518060e001604052806040518060400160405280600e81526020016d09edc86d0c2d2dc84cac2e4d2e6d60931b8152508152602001604051806101a00160405280610166815260200162006f6f6101669139815260200160405180608001604052806048815260200162006f2760489139815260200160405180608001604052806047815260200162006eb66047913981526020016040518060200160405280600081525081526020016102bc81526020016040518060600160405280602a815260200162006efd602a913990528051602790819062000386908262000eae565b50602082015160018201906200039d908262000eae565b5060408201516002820190620003b4908262000eae565b5060608201516003820190620003cb908262000eae565b5060808201516004820190620003e2908262000eae565b5060a0820151600582015560c0820151600682019062000403908262000eae565b5050503480156200041357600080fd5b50733cc6cdda760b79bafa08df41ecfa224f810dceb660016040518060400160405280600e81526020016d09edc86d0c2d2dc84cac2e4d2e6d60931b8152506040518060400160405280600981526020016809e8684cac2e4d2e6d60bb1b815250816002908162000485919062000eae565b50600362000494828262000eae565b506000805550506daaeb6d7670e522a718067333cd4e3b15620005e05780156200052e57604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200050f57600080fd5b505af115801562000524573d6000803e3d6000fd5b50505050620005e0565b6001600160a01b038216156200057f5760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401620004f4565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620005c657600080fd5b505af1158015620005db573d6000803e3d6000fd5b505050505b50506001600a55620005f23362000c02565b604080516103208101825261021781526101cd60208201526101ae918101919091526101766060820152610129608082015260f360a082015260e160c082015260c360e082015260bb61010082015260b661012082015260ad610140820152609a610160820152609761018082015260966101a082015260776101c082015260666101e082015260656102008201526049610220820152603f610240820152603c610260820152603661028082015260286102a0820152601c6102c0820152601a6102e08201526015610300820152620006d190601190601962000d08565b50604080516103c0810182526101e18152610198602082015261017791810191909152610126606082015260e5608082015260d760a08083019190915260cd60c083015260c660e0830152610100820152609c610120820152609b61014082015260966101608201526090610180820152608e6101a0820152608c6101c082018190526101e082015260886102008201526087610220820152607b61024082015260636102608201526058610280820152604d6102a082015260416102c082015260306102e08201526022610300820181905261032082015260046103408201819052610360820152600361038082015260026103a0820152620007da90601290601e62000d08565b506040805161054081018252610150815261013160208201526101169181019190915261010e606082015260c7608082015260c260a082015260bb60c082015260ba60e082015260b561010082015260aa61012082015260a6610140820152609e610160820152608f610180820152607f6101a0820152607a6101c082015260706101e08201526069610200820152606861022082015260666102408201526061610260820152605661028082015260556102a082015260546102c082015260496102e08201526047610300820152604461032082018190526103408201526042610360820152603961038082015260366103a082015260306103c0820152601f6103e0820152601461040082018190526104208201526011610440820152600e610460820152600b61048082015260096104a082015260086104c082015260056104e0820152600461050082015260036105208201526200094190601390602a62000d08565b50604080516107e08101825260f0815260e960208083019190915260dc9282019290925260d8606082015260bd608082015260b860a0820152609a60c0820152609560e0820152608f610100820152607d610120820152607c61014082015260786101608201526073610180820152606d6101a082015260646101c082015260636101e08201819052610200820152605c61022082015260596102408201526058610260820152605661028082015260516102a0820152604f6102c082015260496102e0820152604861030082015260456103208201526043610340820152603e610360820152603c61038082018190526103a082015260396103c082015260356103e082018190526104008201526034610420820152603161044082018190526104608201526030610480820152602f6104a082015260286104c082015260266104e0820181905261050082015260256105208201526024610540820152602161056082015261058081019190915260196105a082015260136105c082015260116105e08201526010610600820152600f6106208201819052610640820152600e610660820152600a61068082018190526106a082015260096106c082015260086106e08201526007610700820152600661072082015260056107408201526003610760820152600261078082018190526107a082018190526107c082015262000b5190601490603f62000d4c565b506040805160a0810182526106a480825260208201526103ec91810191909152601e6060820152600a608082015262000b8f90601590600562000d08565b5060408051610140810182526101cc81526101c660208201526101bd918101919091526101bc60608201526101bb60808201526101ba60a0820181905260c08201526101b860e08201526101b76101008201526101b361012082015262000bfb90601690600a62000d08565b5062000f7a565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805482825590600052602060002090810192821562000c9d579160200282015b8281111562000c9d57825182906001600160c81b031690559160200191906001019062000c75565b5062000cab92915062000d8f565b5090565b82805482825590600052602060002090810192821562000cfa579160200282015b8281111562000cfa578251829062000ce9908262000eae565b509160200191906001019062000cd0565b5062000cab92915062000da6565b82805482825590600052602060002090810192821562000c9d579160200282015b8281111562000c9d578251829061ffff1690559160200191906001019062000d29565b82805482825590600052602060002090810192821562000c9d579160200282015b8281111562000c9d578251829060ff1690559160200191906001019062000d6d565b5b8082111562000cab576000815560010162000d90565b8082111562000cab57600062000dbd828262000dc7565b5060010162000da6565b50805462000dd59062000e1f565b6000825580601f1062000de6575050565b601f01602090049060005260206000209081019062000e06919062000d8f565b50565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000e3457607f821691505b60208210810362000e5557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000ea957600081815260208120601f850160051c8101602086101562000e845750805b601f850160051c820191505b8181101562000ea55782815560010162000e90565b5050505b505050565b81516001600160401b0381111562000eca5762000eca62000e09565b62000ee28162000edb845462000e1f565b8462000e5b565b602080601f83116001811462000f1a576000841562000f015750858301515b600019600386901b1c1916600185901b17855562000ea5565b600085815260208120601f198616915b8281101562000f4b5788860151825594840194600190910190840162000f2a565b508582101562000f6a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051615f2062000f966000396000613c350152615f206000f3fe6080604052600436106103d25760003560e01c806368bd580e116101fd578063b32c568011610118578063d5abeb01116100ab578063e8a3d4851161007a578063e8a3d48514610b3d578063e985e9c514610b52578063ea84b59b14610b9a578063f192b14414610bc7578063f2fde38b14610be257600080fd5b8063d5abeb0114610ac4578063dbe9875f14610ada578063dc53fd9214610afa578063dc9867ce14610b1057600080fd5b8063ba41b0c6116100e7578063ba41b0c614610a5e578063bdf7a8e614610a71578063c11feac114610a84578063c87b56dd14610aa457600080fd5b8063b32c5680146109eb578063b456806614610a0b578063b75f1aef14610a2b578063b88d4fde14610a4b57600080fd5b8063876171dc1161019057806395d89b411161015f57806395d89b411461098057806397d194d714610995578063a22cb465146109b5578063a24e5153146109d557600080fd5b8063876171dc146108fd57806389ce30741461092d5780638da5cb5b1461094d5780638fb4e8a91461096b57600080fd5b8063715018a6116101cc578063715018a6146108725780637bddd65b146108875780637cb64759146108a7578063831fb10d146108c757600080fd5b806368bd580e146108085780636c0360eb1461081d5780636df9fa881461083257806370a082311461085257600080fd5b80633ccfd60b116102ed5780635b5a482c11610280578063621a1f741161024f578063621a1f74146107925780636352211e146107b2578063639814e0146107d257806366e33870146107e857600080fd5b80635b5a482c1461070e5780635b92ac0d1461073d5780635d82cf6e146107525780636190e1da1461077257600080fd5b80634ca1a0f2116102bc5780634ca1a0f21461069d57806354214f69146106bd578063542d5041146106d457806355f804b3146106ee57600080fd5b80633ccfd60b1461064b5780634047638d1461066057806342842e0e146106755780634920154b1461068857600080fd5b806318160ddd1161036557806336cd2edd1161033457806336cd2edd146105d857806338f897b8146105ee578063394f22cb146106035780633cca24201461062357600080fd5b806318160ddd1461056e57806323b872dd1461059157806329fc6bae146105a45780632d6b6224146105be57600080fd5b806309dbabca116103a157806309dbabca146104ee5780630ad373f41461050e5780630f3debbe1461052e578063180c2cc01461054e57600080fd5b806301ffc9a71461044c57806306fdde0314610481578063081812fc146104a3578063095ea7b3146104db57600080fd5b366104475760235460ff1661042e5760405162461bcd60e51b815260206004820152601c60248201527f5075626c6963206d696e74696e67206973206e6f74206163746976650000000060448201526064015b60405180910390fd5b6104456021543461043f91906149cd565b33610c02565b005b600080fd5b34801561045857600080fd5b5061046c6104673660046149f7565b610f1e565b60405190151581526020015b60405180910390f35b34801561048d57600080fd5b50610496610f70565b6040516104789190614a64565b3480156104af57600080fd5b506104c36104be366004614a77565b611002565b6040516001600160a01b039091168152602001610478565b6104456104e9366004614aac565b611046565b3480156104fa57600080fd5b50610496610509366004614ad6565b6110e6565b34801561051a57600080fd5b5061046c610529366004614af8565b61112e565b34801561053a57600080fd5b50610445610549366004614b13565b6111b0565b34801561055a57600080fd5b50610445610569366004614b4d565b6111ed565b34801561057a57600080fd5b50600154600054035b604051908152602001610478565b61044561059f366004614ba3565b611492565b3480156105b057600080fd5b5060265461046c9060ff1681565b3480156105ca57600080fd5b5060235461046c9060ff1681565b3480156105e457600080fd5b5061058360255481565b3480156105fa57600080fd5b506104456115ee565b34801561060f57600080fd5b5061044561061e366004614bdf565b6116fa565b34801561062f57600080fd5b50610638611740565b6040516104789796959493929190614c08565b34801561065757600080fd5b50610445611a9e565b34801561066c57600080fd5b50610445611bdd565b610445610683366004614ba3565b611bf9565b34801561069457600080fd5b50610445611d4a565b3480156106a957600080fd5b506104456106b8366004614a77565b611d66565b3480156106c957600080fd5b50601a54151561046c565b3480156106e057600080fd5b50601e5461046c9060ff1681565b3480156106fa57600080fd5b50610445610709366004614c91565b611d73565b34801561071a57600080fd5b5061072562278d0081565b6040516001600160801b039091168152602001610478565b34801561074957600080fd5b5061046c611dd8565b34801561075e57600080fd5b5061044561076d366004614a77565b611e1b565b34801561077e57600080fd5b5061044561078d366004614c91565b611e28565b34801561079e57600080fd5b506104966107ad366004614a77565b611e60565b3480156107be57600080fd5b506104c36107cd366004614a77565b6122a7565b3480156107de57600080fd5b5061058360205481565b3480156107f457600080fd5b50610496610803366004614d8d565b6122b2565b34801561081457600080fd5b5061044561244b565b34801561082957600080fd5b50610496612485565b34801561083e57600080fd5b5061044561084d366004614a77565b612513565b34801561085e57600080fd5b5061058361086d366004614af8565b612520565b34801561087e57600080fd5b5061044561256e565b34801561089357600080fd5b506104456108a2366004614a77565b612580565b3480156108b357600080fd5b506104456108c2366004614a77565b61258d565b3480156108d357600080fd5b506107256108e2366004614af8565b6009602052600090815260409020546001600160801b031681565b34801561090957600080fd5b5061091d610918366004614a77565b61259a565b6040516104789493929190614dd5565b34801561093957600080fd5b50610496610948366004614d8d565b6126f4565b34801561095957600080fd5b50600b546001600160a01b03166104c3565b34801561097757600080fd5b5061044561290d565b34801561098c57600080fd5b50610496612929565b3480156109a157600080fd5b506104456109b0366004614e62565b612938565b3480156109c157600080fd5b506104456109d0366004614ebb565b612cd3565b3480156109e157600080fd5b5061058360245481565b3480156109f757600080fd5b5061046c610a06366004614ef2565b612def565b348015610a1757600080fd5b50610445610a26366004614f2b565b612ee9565b348015610a3757600080fd5b50610445610a46366004614c91565b613095565b610445610a59366004614f6c565b6130aa565b610445610a6c366004614e62565b613202565b610445610a7f366004614e62565b613414565b348015610a9057600080fd5b50610496610a9f366004614a77565b6134ff565b348015610ab057600080fd5b50610496610abf366004614a77565b6135ad565b348015610ad057600080fd5b50610583601f5481565b348015610ae657600080fd5b50610445610af5366004614fe7565b6137bb565b348015610b0657600080fd5b5061058360215481565b348015610b1c57600080fd5b50610b30610b2b366004614ad6565b613861565b604051610478919061500c565b348015610b4957600080fd5b506104966138cc565b348015610b5e57600080fd5b5061046c610b6d366004615050565b6001600160a01b039182166000908152600860209081526040808320939094168252919091522054421090565b348015610ba657600080fd5b50610bba610bb5366004614ad6565b61392a565b6040516104789190615083565b348015610bd357600080fd5b506105836602c2ad68fd900081565b348015610bee57600080fd5b50610445610bfd366004614af8565b613aa5565b610c0a611dd8565b610c265760405162461bcd60e51b8152600401610425906150d5565b60005482610c6c5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d1bdad95b8818dbdd5b9d606a1b6044820152606401610425565b601f54610c798483615104565b1115610cbd5760405162461bcd60e51b8152602060048201526013602482015272416c6c20746f6b656e732061726520676f6e6560681b6044820152606401610425565b60235460009060ff16610cd257602454610cd6565b6021545b9050600034610cec6602c2ad68fd900084615104565b610cf69087615117565b602354911415915060ff168015610d185750600b546001600160a01b03163314155b15610ea4578015610da457610d2c3361112e565b610d735760405162461bcd60e51b815260206004820152601860248201527726b4b9b9b4b7339031b7b63632b1ba37b913b9903332b29760411b6044820152606401610425565b3460215486610d829190615117565b14610d9f5760405162461bcd60e51b81526004016104259061512e565b610de1565b346602c2ad68fd9000602154610dba9190615104565b610dc49087615117565b14610de15760405162461bcd60e51b81526004016104259061512e565b60205485610e11336001600160a01b03166000908152600560205260409081902054901c6001600160401b031690565b610e1b9190615104565b1115610e695760405162461bcd60e51b815260206004820152601a60248201527f4578636565646564206d6178206d696e747320616c6c6f7765640000000000006044820152606401610425565b333214610ea45760405162461bcd60e51b8152602060048201526009602482015268454f4173206f6e6c7960b81b6044820152606401610425565b6000610eb16014876149cd565b90506000610ec0601488615165565b905060005b82811015610eea57610ed8876014613b1e565b80610ee281615179565b915050610ec5565b508015610efb57610efb8682613b1e565b82158015610f07575060015b15610f1557610f1587613c1c565b50505050505050565b60006301ffc9a760e01b6001600160e01b031983161480610f4f57506380ac58cd60e01b6001600160e01b03198316145b80610f6a5750635b5e139f60e01b6001600160e01b03198316145b92915050565b606060028054610f7f90615192565b80601f0160208091040260200160405190810160405280929190818152602001828054610fab90615192565b8015610ff85780601f10610fcd57610100808354040283529160200191610ff8565b820191906000526020600020905b815481529060010190602001808311610fdb57829003601f168201915b5050505050905090565b600061100d82613cf4565b61102a576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000611051826122a7565b9050336001600160a01b0382161461108a5761106d8133610b6d565b61108a576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000828152600c602052604090208054606091611127918490811061110d5761110d6151cc565b6000918252602090912001546001600160a01b0316613d1b565b9392505050565b6018546040516370a0823160e01b81526001600160a01b03838116600483015260009261010090041690829082906370a0823190602401602060405180830381865afa158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a691906151e2565b1515949350505050565b6111b8613d65565b601e5460ff16156111db5760405162461bcd60e51b8152600401610425906151fb565b8060276111e88282615381565b505050565b6111f5613d65565b601e5460ff16156112185760405162461bcd60e51b8152600401610425906151fb565b60408051606081019091528061122e8380615227565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060209081019061127790840184615227565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016112c160808401606085016154db565b151590526000848152600d602090815260408083208684529091529020815181906112ec90826154f8565b506020820151600182019061130190826154f8565b50604091820151600291909101805460ff19169115159190911790556000848152600c60209081528282208054845181840281018401909552808552929392909183018282801561137b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161135d575b5050505050905081608001602081019061139591906154db565b156113ef57808260a00135815181106113b0576113b06151cc565b60200260200101518184815181106113ca576113ca6151cc565b60200260200101906001600160a01b031690816001600160a01b03168152505061146c565b6114396113ff6040840184615227565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613dbf92505050565b81848151811061144b5761144b6151cc565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6000848152600c60209081526040909120825161148b928401906148ec565b5050505050565b826daaeb6d7670e522a718067333cd4e3b156115dd57336001600160a01b038216036114c8576114c3848484613e01565b6115e8565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153b91906155b1565b80156115be5750604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561159a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115be91906155b1565b6115dd57604051633b79c77360e21b8152336004820152602401610425565b6115e8848484613e01565b50505050565b6115f6613d65565b601a54156116465760405162461bcd60e51b815260206004820152601a60248201527f52616e646f6d207365656420697320616c7265616479207365740000000000006044820152606401610425565b3a4342446116556001846155ce565b6040805160208101969096528501939093526060808501929092526080840152904060a083015233901b6001600160601b03191660c082015260d40160408051601f198184030181529190528051602090910120601a55601f547f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c906000906116e0906001906155ce565b6040805192835260208301919091520160405180910390a1565b61170781620151806155e1565b33600090815260096020526040902080546fffffffffffffffffffffffffffffffff19166001600160801b039290921691909117905550565b60278054819061174f90615192565b80601f016020809104026020016040519081016040528092919081815260200182805461177b90615192565b80156117c85780601f1061179d576101008083540402835291602001916117c8565b820191906000526020600020905b8154815290600101906020018083116117ab57829003601f168201915b5050505050908060010180546117dd90615192565b80601f016020809104026020016040519081016040528092919081815260200182805461180990615192565b80156118565780601f1061182b57610100808354040283529160200191611856565b820191906000526020600020905b81548152906001019060200180831161183957829003601f168201915b50505050509080600201805461186b90615192565b80601f016020809104026020016040519081016040528092919081815260200182805461189790615192565b80156118e45780601f106118b9576101008083540402835291602001916118e4565b820191906000526020600020905b8154815290600101906020018083116118c757829003601f168201915b5050505050908060030180546118f990615192565b80601f016020809104026020016040519081016040528092919081815260200182805461192590615192565b80156119725780601f1061194757610100808354040283529160200191611972565b820191906000526020600020905b81548152906001019060200180831161195557829003601f168201915b50505050509080600401805461198790615192565b80601f01602080910402602001604051908101604052809291908181526020018280546119b390615192565b8015611a005780601f106119d557610100808354040283529160200191611a00565b820191906000526020600020905b8154815290600101906020018083116119e357829003601f168201915b505050505090806005015490806006018054611a1b90615192565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4790615192565b8015611a945780601f10611a6957610100808354040283529160200191611a94565b820191906000526020600020905b815481529060010190602001808311611a7757829003601f168201915b5050505050905087565b611aa6613d65565b611aae613f9a565b478060008080611ac6600b546001600160a01b031690565b602e5490915015611bbf5760005b602e54811015611bbd57602e8181548110611af157611af16151cc565b90600052602060002090600402016003015483611b0e9190615104565b92506000602e8281548110611b2557611b256151cc565b906000526020600020906004020160020160009054906101000a90046001600160a01b03169050612710602e8381548110611b6257611b626151cc565b906000526020600020906004020160030154612710611b8191906155ce565b611b8b9088615117565b611b9591906149cd565b9450611baa81611ba587896155ce565b613ff3565b5080611bb581615179565b915050611ad4565b505b479450611bcc8186613ff3565b5050505050611bdb6001600a55565b565b611be5613d65565b6023805460ff19811660ff90911615179055565b826daaeb6d7670e522a718067333cd4e3b15611d3f57336001600160a01b03821603611c2a576114c384848461410c565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611c79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9d91906155b1565b8015611d205750604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611cfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2091906155b1565b611d3f57604051633b79c77360e21b8152336004820152602401610425565b6115e884848461410c565b611d52613d65565b6018805460ff19811660ff90911615179055565b611d6e613d65565b602555565b611d7b613d65565b6022611d888284836152c8565b507f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c60006001601f54611dbb91906155ce565b604080519283526020830191909152015b60405180910390a15050565b6000601f54611de660005490565b108015611e16575060235460ff1680611e01575060265460ff165b80611e165750600b546001600160a01b031633145b905090565b611e23613d65565b602155565b611e30613d65565b601e5460ff1615611e535760405162461bcd60e51b8152600401610425906151fb565b60196111e88284836152c8565b6060601a54600003611eb45760405162461bcd60e51b815260206004820152601b60248201527f436f6c6c656374696f6e20686173206e6f742072657665616c656400000000006044820152606401610425565b611ebd82613cf4565b611ef95760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610425565b6000611f27611f0a60066004615117565b604080518281016060018252910181526000602090910190815290565b90506000611f3484614127565b60408051600680825260e08201909252919250600091906020820160c080368337505060408051600680825260e0820190925292935060009291506020820160c0803683370190505090506000601f54601a54611f919190615165565b905060005b6006811015612173576000848281518110611fb357611fb36151cc565b60200260200101519050838281518110611fcf57611fcf6151cc565b60200260200101511515600015150361205f576000601f5460108481548110611ffa57611ffa6151cc565b906000526020600020015485858a6120129190615104565b61201c9190615104565b6120269190615117565b6120309190615165565b905061203c81846141e1565b915081868481518110612051576120516151cc565b602002602001018181525050505b6000828152600f6020908152604080832084845290915290205415612160576000828152600f602090815260408083208484529091529020805460019081106120aa576120aa6151cc565b6000918252602080832090910154848352600f825260408084208585529092529082208054919288926120df576120df6151cc565b9060005260206000200154815181106120fa576120fa6151cc565b6020908102919091018101919091526000838152600f825260408082208483529092529081208054600192879291612134576121346151cc565b90600052602060002001548151811061214f5761214f6151cc565b911515602092830291909101909101525b508061216b81615179565b915050611f96565b5060005b835181101561229b57600a848281518110612194576121946151cc565b602002602001015110156121cb57604080518082019091526002815261030360f41b60208201526121c690879061427d565b612210565b60648482815181106121df576121df6151cc565b60200260200101511015612210576040805180820190915260018152600360fc1b602082015261221090879061427d565b6103e7848281518110612225576122256151cc565b6020026020010151111561225d5760408051808201909152600381526239393960e81b602082015261225890879061427d565b612289565b612289612282858381518110612275576122756151cc565b6020026020010151614302565b879061427d565b8061229381615179565b915050612177565b50939695505050505050565b6000610f6a82614346565b60408051620200608101825262020040815260006020918201908152825180840190935260018352605b60f81b918301919091526060916122f490829061427d565b6000805b600681101561244257600061233561233087612315856003615117565b612320866003615117565b61232b906003615104565b6143ad565b614479565b6000838152600d6020908152604080832060ff9485168085529252822060020154909350909116151590036123fa57821561238d576040805180820190915260018152600b60fa1b602082015261238d90859061427d565b6123eb601783815481106123a3576123a36151cc565b60009182526020808320868452600d8252604080852087865283529384902093516123d4949390910192910161567f565b60408051601f19818403018152919052859061427d565b8215156000036123fa57600192505b612406600160066155ce565b820361242f576040805180820190915260018152605d60f81b602082015261242f90859061427d565b508061243a81615179565b9150506122f8565b50909392505050565b601e5460ff161561246e5760405162461bcd60e51b8152600401610425906151fb565b612476613d65565b601e805460ff19166001179055565b6022805461249290615192565b80601f01602080910402602001604051908101604052809291908181526020018280546124be90615192565b801561250b5780601f106124e05761010080835404028352916020019161250b565b820191906000526020600020905b8154815290600101906020018083116124ee57829003601f168201915b505050505081565b61251b613d65565b602455565b60006001600160a01b038216612549576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b612576613d65565b611bdb6000614537565b612588613d65565b602055565b612595613d65565b601b55565b602e81815481106125aa57600080fd5b90600052602060002090600402016000915090508060000180546125cd90615192565b80601f01602080910402602001604051908101604052809291908181526020018280546125f990615192565b80156126465780601f1061261b57610100808354040283529160200191612646565b820191906000526020600020905b81548152906001019060200180831161262957829003601f168201915b50505050509080600101805461265b90615192565b80601f016020809104026020016040519081016040528092919081815260200182805461268790615192565b80156126d45780601f106126a9576101008083540402835291602001916126d4565b820191906000526020600020905b8154815290600101906020018083116126b757829003601f168201915b50505050600283015460039093015491926001600160a01b031691905084565b6040805162020060810190915262020040815260006020909101818152606091906127386040518060c0016040528060818152602001615e6a60819139829061427d565b612764601960405160200161274d91906156d5565b60408051601f19818403018152919052829061427d565b60005b612773600160066155ce565b81101561282f576127976123308661278c846003615117565b612320856003615117565b60ff16925061281d600d600083815260200190815260200160002060008581526020019081526020016000206001016127f56127f0600c6000868152602001908152602001600020878154811061110d5761110d6151cc565b614589565b604051602001612806929190615707565b60408051601f19818403018152919052839061427d565b8061282781615179565b915050612767565b5061285a612330856003612844600682615117565b61284e91906155ce565b61232b60066003615117565b60ff1691506128dc600d6000612872600160066155ce565b815260200190815260200160002060008481526020019081526020016000206001016128cb6127f0600c6000600160066128ac91906155ce565b8152602001908152602001600020868154811061110d5761110d6151cc565b60405160200161274d929190615761565b6128e581614589565b6040516020016128f591906158c5565b60405160208183030381529060405292505050919050565b612915613d65565b6026805460ff19811660ff90911615179055565b606060038054610f7f90615192565b612940613d65565b601e5460ff16156129635760405162461bcd60e51b8152600401610425906151fb565b8060118460068110612977576129776151cc565b0154146129c65760405162461bcd60e51b815260206004820152601a60248201527f547261697473206c656e67746820697320696e636f72726563740000000000006044820152606401610425565b6000816001600160401b038111156129e0576129e0614d02565b604051908082528060200260200182016040528015612a09578160200160208202803683370190505b50905060005b82811015612cb357838382818110612a2957612a296151cc565b9050602002810190612a3b919061590a565b612a4c9060a08101906080016154db565b15612ac95781848483818110612a6457612a646151cc565b9050602002810190612a76919061590a565b60a0013581518110612a8a57612a8a6151cc565b6020026020010151828281518110612aa457612aa46151cc565b60200260200101906001600160a01b031690816001600160a01b031681525050612b31565b612afe848483818110612ade57612ade6151cc565b9050602002810190612af0919061590a565b6113ff906040810190615227565b828281518110612b1057612b106151cc565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6040518060600160405280858584818110612b4e57612b4e6151cc565b9050602002810190612b60919061590a565b612b6a9080615227565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001858584818110612bb657612bb66151cc565b9050602002810190612bc8919061590a565b612bd6906020810190615227565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001858584818110612c2257612c226151cc565b9050602002810190612c34919061590a565b612c459060808101906060016154db565b151590526000868152600d60209081526040808320858452909152902081518190612c7090826154f8565b5060208201516001820190612c8590826154f8565b50604091909101516002909101805460ff191691151591909117905580612cab81615179565b915050612a0f565b506000848152600c60209081526040909120825161148b928401906148ec565b6001600160a01b0382163303612d2b5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610425565b336000908152600960205260408120546001600160801b0316612d515762278d00612d6b565b336000908152600960205260409020546001600160801b03165b905081612d79576000612d8c565b612d8c6001600160801b03821642615104565b3360008181526008602090815260408083206001600160a01b03891680855290835292819020949094559251851515815290927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000612e6383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050601b546040516001600160601b031960608b901b16602082015290925060340190505b60405160208183030381529060405280519060200120614597565b80612ee15750612ee1838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040516001600160601b031960608a901b1660208201527f6b94c6dbb45e12cf8753c239e16afdc50e4f41da7bdc4bde5900b81f3f853ddf92506034019050612e48565b949350505050565b612ef1613d65565b601e5460ff1615612f145760405162461bcd60e51b8152600401610425906151fb565b60005b818110156111e8576040518060400160405280848484818110612f3c57612f3c6151cc565b9050602002810190612f4e919061592a565b612f5c906020810190615940565b6000818110612f6d57612f6d6151cc565b905060200201358152602001848484818110612f8b57612f8b6151cc565b9050602002810190612f9d919061592a565b612fab906020810190615940565b6001818110612fbc57612fbc6151cc565b90506020020135815250600f6000858585818110612fdc57612fdc6151cc565b9050602002810190612fee919061592a565b612ff89080615940565b6000818110613009576130096151cc565b9050602002013581526020019081526020016000206000858585818110613032576130326151cc565b9050602002810190613044919061592a565b61304e9080615940565b600181811061305f5761305f6151cc565b905060200201358152602001908152602001600020906002613082929190614951565b508061308d81615179565b915050612f17565b61309d613d65565b601d6111e88284836152c8565b836daaeb6d7670e522a718067333cd4e3b156131f657336001600160a01b038216036130e1576130dc858585856145ad565b61148b565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015613130573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315491906155b1565b80156131d75750604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156131b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d791906155b1565b6131f657604051633b79c77360e21b8152336004820152602401610425565b61148b858585856145ad565b61320a613f9a565b613212611dd8565b61322e5760405162461bcd60e51b8152600401610425906150d5565b60235460ff1615801561324c5750600b546001600160a01b03163314155b15613400576000346602c2ad68fd90006024546132699190615104565b6132739086615117565b14801591506132fd576132853361112e565b6132cc5760405162461bcd60e51b815260206004820152601860248201527726b4b9b9b4b7339031b7b63632b1ba37b913b9903332b29760411b6044820152606401610425565b34602454856132db9190615117565b146132f85760405162461bcd60e51b81526004016104259061512e565b61333a565b346602c2ad68fd90006024546133139190615104565b61331d9086615117565b1461333a5760405162461bcd60e51b81526004016104259061512e565b613345338484612def565b6133855760405162461bcd60e51b8152602060048201526011602482015270139bdd081bdb88185b1b1bddc81b1a5cdd607a1b6044820152606401610425565b60255433600090815260056020526040908190205486911c6001600160401b03166133b09190615104565b11156133fe5760405162461bcd60e51b815260206004820152601a60248201527f4578636565646564206d6178206d696e747320616c6c6f7765640000000000006044820152606401610425565b505b61340a8333610c02565b6111e86001600a55565b61341c613f9a565b613424611dd8565b6134405760405162461bcd60e51b8152600401610425906150d5565b60235460ff168061345b5750600b546001600160a01b031633145b6134a75760405162461bcd60e51b815260206004820152601c60248201527f5075626c6963206d696e74696e67206973206e6f7420616374697665000000006044820152606401610425565b60005b818110156134f4576134e2848484848181106134c8576134c86151cc565b90506020020160208101906134dd9190614af8565b610c02565b806134ec81615179565b9150506134aa565b506111e86001600a55565b6060601a5460001461351c5761351761094883611e60565b610f6a565b601d805461352990615192565b80601f016020809104026020016040519081016040528092919081815260200182805461355590615192565b80156135a25780601f10613577576101008083540402835291602001916135a2565b820191906000526020600020905b81548152906001019060200180831161358557829003601f168201915b505050505092915050565b60606135b882613cf4565b6135f45760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610425565b6040805162020060810190915262020040815260006020909101908152613633602761361f85614302565b60405161274d929190602890602001615989565b601a5460000361365757613652601d60405160200161274d9190615a03565b61378b565b600061366284611e60565b905060006022805461367390615192565b905011801561369057506000848152600e602052604090205460ff165b156136be576136b960226136a386614302565b83601c6040516020016128069493929190615a33565b61376d565b60408051602081019091526000815260185460ff16156137345760006136e3836126f4565b905061370d816040516020016136f99190615abe565b604051602081830303815290604052614589565b60405160200161371d91906158c5565b604051602081830303815290604052915050613740565b61373d826126f4565b90505b61376b816040516020016137549190615ba9565b60408051601f19818403018152919052849061427d565b505b613789613779826122b2565b6040516020016128069190615bec565b505b61379481614589565b6040516020016137a49190615c2d565b604051602081830303815290604052915050919050565b6137c4826122a7565b6001600160a01b0316336001600160a01b0316146138165760405162461bcd60e51b815260206004820152600f60248201526e2737ba103a37b5b2b71037bbb732b960891b6044820152606401610425565b6000828152600e6020908152604091829020805460ff191684151517905590518381527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79101611dcc565b6000828152600f602090815260408083208484528252918290208054835181840281018401909452808452606093928301828280156138bf57602002820191906000526020600020905b8154815260200190600101908083116138ab575b5050505050905092915050565b602c5460609061390690602790602890602990602a90602b906138ee90614302565b6040516136f996959493929190602d90602001615c72565b6040516020016139169190615c2d565b604051602081830303815290604052905090565b604080516060808201835280825260208201526000918101919091526000838152600d602090815260408083208584529091529081902081516060810190925280548290829061397990615192565b80601f01602080910402602001604051908101604052809291908181526020018280546139a590615192565b80156139f25780601f106139c7576101008083540402835291602001916139f2565b820191906000526020600020905b8154815290600101906020018083116139d557829003601f168201915b50505050508152602001600182018054613a0b90615192565b80601f0160208091040260200160405190810160405280929190818152602001828054613a3790615192565b8015613a845780601f10613a5957610100808354040283529160200191613a84565b820191906000526020600020905b815481529060010190602001808311613a6757829003601f168201915b50505091835250506002919091015460ff1615156020909101529392505050565b613aad613d65565b6001600160a01b038116613b125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610425565b613b1b81614537565b50565b6000805490829003613b435760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114613bf257808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613bba565b5081600003613c1357604051622e076360e81b815260040160405180910390fd5b60005550505050565b6000613c2f826602c2ad68fd9000615117565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c9e576040519150601f19603f3d011682016040523d82523d6000602084013e613ca3565b606091505b50509050806111e85760405162461bcd60e51b815260206004820152601c60248201527f4661696c656420746f2073656e6420636f6c6c6563746f7220666565000000006044820152606401610425565b6000805482108015610f6a575050600090815260046020526040902054600160e01b161590565b6060813b80613d32576311052bb46000526004601cfd5b600181039050604051915061ffe0603f820116820160405280825260008160208401015280600160208401853c50919050565b600b546001600160a01b03163314611bdb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610425565b60008151600181018060401b6a61000080600a3d393df300178452600a8101601585016000f092505081613dfb5763301164256000526004601cfd5b90915290565b6000613e0c82614346565b9050836001600160a01b0316816001600160a01b031614613e3f5760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b03881690911417613e8c57613e6f8633610b6d565b613e8c57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516613eb357604051633a954ecd60e21b815260040160405180910390fd5b8015613ebe57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003613f5057600184016000818152600460205260408120549003613f4e576000548114613f4e5760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6002600a5403613fec5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610425565b6002600a55565b804710156140435760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610425565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114614090576040519150601f19603f3d011682016040523d82523d6000602084013e614095565b606091505b50509050806111e85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610425565b6111e8838383604051806020016040528060008152506130aa565b600080601f546001600160401b0381111561414457614144614d02565b60405190808252806020026020018201604052801561416d578160200160208202803683370190505b50905060005b601f548110156141a35780828281518110614190576141906151cc565b6020908102919091010152600101614173565b506040805160208101909152601a5481526141be81836145f1565b8184815181106141d0576141d06151cc565b602002602001015192505050919050565b600080805b601184600681106141f9576141f96151cc565b015481101561044757600060118560068110614217576142176151cc565b018281548110614229576142296151cc565b9060005260206000200154905082861015801561424e575061424b8184615104565b86105b1561425d57509150610f6a9050565b6142678184615104565b925050808061427590615179565b9150506141e6565b601f1982015182518251603f1990920191829061429a9083615104565b11156142f85760405162461bcd60e51b815260206004820152602760248201527f44796e616d69634275666665723a20417070656e64696e67206f7574206f66206044820152663137bab732399760c91b6064820152608401610425565b6115e8848461466c565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a90048061431c5750819003601f19909101908152919050565b6000816000548110156143945760008181526004602052604081205490600160e01b82169003614392575b80600003611127575060001901600081815260046020526040902054614371565b505b604051636f96cda160e11b815260040160405180910390fd5b60608360006143bc85856155ce565b6001600160401b038111156143d3576143d3614d02565b6040519080825280601f01601f1916602001820160405280156143fd576020820181803683370190505b509050845b8481101561446f5782818151811061441c5761441c6151cc565b01602001516001600160f81b0319168261443688846155ce565b81518110614446576144466151cc565b60200101906001600160f81b031916908160001a9053508061446781615179565b915050614402565b5095945050505050565b60008181805b82518160ff16101561452f576030838260ff16815181106144a2576144a26151cc565b016020015160f81c108015906144d557506039838260ff16815181106144ca576144ca6151cc565b016020015160f81c11155b1561451d576144e5600a83615d9b565b91506030838260ff16815181106144fe576144fe6151cc565b0160200151614510919060f81c615dbe565b61451a9083615dd7565b91505b8061452781615df0565b91505061447f565b509392505050565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6060610f6a826000806146a2565b6000826145a4858461478d565b14949350505050565b6145b8848484611492565b6001600160a01b0383163b156115e8576145d4848484846147d2565b6115e8576040516368d2bf6b60e11b815260040160405180910390fd5b80516000196001600160801b03821561148b576020840193505b6020852080865282840193608082901c0660051b85018461462d57505061148b565b600585811b8701805183519091529091528385019482841606901b85018461465657505061148b565b600585901b86018051825190915290525061460b565b8051602082019150808201602084510184015b8184101561469757835181526020938401930161467f565b505082510190915250565b60608351801561452f576003600282010460021b60405192507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f526102308515027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f03603f52602083018181015b6003880197508751603f8160121c1651600053603f81600c1c1651600153603f8160061c1651600253603f81165160035350600051825260048201915080821061471257601f01601f1916604052613d3d60f01b60038406600204808303919091526000861515909102918290035290038252509392505050565b600081815b845181101561452f576147be828683815181106147b1576147b16151cc565b60200260200101516148bd565b9150806147ca81615179565b915050614792565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290614807903390899088908890600401615e0f565b6020604051808303816000875af1925050508015614842575060408051601f3d908101601f1916820190925261483f91810190615e4c565b60015b6148a0573d808015614870576040519150601f19603f3d011682016040523d82523d6000602084013e614875565b606091505b508051600003614898576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60008183106148d9576000828152602084905260409020611127565b6000838152602083905260409020611127565b828054828255906000526020600020908101928215614941579160200282015b8281111561494157825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061490c565b5061494d92915061498c565b5090565b828054828255906000526020600020908101928215614941579160200282015b82811115614941578251825591602001919060010190614971565b5b8082111561494d576000815560010161498d565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826149dc576149dc6149a1565b500490565b6001600160e01b031981168114613b1b57600080fd5b600060208284031215614a0957600080fd5b8135611127816149e1565b60005b83811015614a2f578181015183820152602001614a17565b50506000910152565b60008151808452614a50816020860160208601614a14565b601f01601f19169290920160200192915050565b6020815260006111276020830184614a38565b600060208284031215614a8957600080fd5b5035919050565b80356001600160a01b0381168114614aa757600080fd5b919050565b60008060408385031215614abf57600080fd5b614ac883614a90565b946020939093013593505050565b60008060408385031215614ae957600080fd5b50508035926020909101359150565b600060208284031215614b0a57600080fd5b61112782614a90565b600060208284031215614b2557600080fd5b81356001600160401b03811115614b3b57600080fd5b820160e0818503121561112757600080fd5b600080600060608486031215614b6257600080fd5b833592506020840135915060408401356001600160401b03811115614b8657600080fd5b840160c08187031215614b9857600080fd5b809150509250925092565b600080600060608486031215614bb857600080fd5b614bc184614a90565b9250614bcf60208501614a90565b9150604084013590509250925092565b600060208284031215614bf157600080fd5b81356001600160801b038116811461112757600080fd5b60e081526000614c1b60e083018a614a38565b8281036020840152614c2d818a614a38565b90508281036040840152614c418189614a38565b90508281036060840152614c558188614a38565b90508281036080840152614c698187614a38565b90508460a084015282810360c0840152614c838185614a38565b9a9950505050505050505050565b60008060208385031215614ca457600080fd5b82356001600160401b0380821115614cbb57600080fd5b818501915085601f830112614ccf57600080fd5b813581811115614cde57600080fd5b866020828501011115614cf057600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115614d3257614d32614d02565b604051601f8501601f19908116603f01168101908282118183101715614d5a57614d5a614d02565b81604052809350858152868686011115614d7357600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215614d9f57600080fd5b81356001600160401b03811115614db557600080fd5b8201601f81018413614dc657600080fd5b612ee184823560208401614d18565b608081526000614de86080830187614a38565b8281036020840152614dfa8187614a38565b6001600160a01b0395909516604084015250506060015292915050565b60008083601f840112614e2957600080fd5b5081356001600160401b03811115614e4057600080fd5b6020830191508360208260051b8501011115614e5b57600080fd5b9250929050565b600080600060408486031215614e7757600080fd5b8335925060208401356001600160401b03811115614e9457600080fd5b614ea086828701614e17565b9497909650939450505050565b8015158114613b1b57600080fd5b60008060408385031215614ece57600080fd5b614ed783614a90565b91506020830135614ee781614ead565b809150509250929050565b600080600060408486031215614f0757600080fd5b614f1084614a90565b925060208401356001600160401b03811115614e9457600080fd5b60008060208385031215614f3e57600080fd5b82356001600160401b03811115614f5457600080fd5b614f6085828601614e17565b90969095509350505050565b60008060008060808587031215614f8257600080fd5b614f8b85614a90565b9350614f9960208601614a90565b92506040850135915060608501356001600160401b03811115614fbb57600080fd5b8501601f81018713614fcc57600080fd5b614fdb87823560208401614d18565b91505092959194509250565b60008060408385031215614ffa57600080fd5b823591506020830135614ee781614ead565b6020808252825182820181905260009190848201906040850190845b8181101561504457835183529284019291840191600101615028565b50909695505050505050565b6000806040838503121561506357600080fd5b61506c83614a90565b915061507a60208401614a90565b90509250929050565b60208152600082516060602084015261509f6080840182614a38565b90506020840151601f198483030160408501526150bc8282614a38565b9150506040840151151560608401528091505092915050565b6020808252601590820152744d696e74696e67206973206e6f742061637469766560581b604082015260600190565b80820180821115610f6a57610f6a6149b7565b8082028115828204841417610f6a57610f6a6149b7565b6020808252601e908201527f496e636f727265637420616d6f756e74206f662065746865722073656e740000604082015260600190565b600082615174576151746149a1565b500690565b60006001820161518b5761518b6149b7565b5060010190565b600181811c908216806151a657607f821691505b6020821081036151c657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156151f457600080fd5b5051919050565b60208082526012908201527110dbdb9d1c9858dd081a5cc81cd9585b195960721b604082015260600190565b6000808335601e1984360301811261523e57600080fd5b8301803591506001600160401b0382111561525857600080fd5b602001915036819003821315614e5b57600080fd5b601f8211156111e857600081815260208120601f850160051c810160208610156152945750805b601f850160051c820191505b81811015613f92578281556001016152a0565b600019600383901b1c191660019190911b1790565b6001600160401b038311156152df576152df614d02565b6152f3836152ed8354615192565b8361526d565b6000601f841160018114615321576000851561530f5750838201355b61531986826152b3565b84555061148b565b600083815260209020601f19861690835b828110156153525786850135825560209485019460019092019101615332565b508682101561536f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b61538b8283615227565b6001600160401b038111156153a2576153a2614d02565b6153b6816153b08554615192565b8561526d565b6000601f8211600181146153e457600083156153d25750838201355b6153dc84826152b3565b86555061543e565b600085815260209020601f19841690835b8281101561541557868501358255602094850194600190920191016153f5565b50848210156154325760001960f88660031b161c19848701351681555b505060018360011b0185555b5050505061544f6020830183615227565b61545d8183600186016152c8565b505061546c6040830183615227565b61547a8183600286016152c8565b50506154896060830183615227565b6154978183600386016152c8565b50506154a66080830183615227565b6154b48183600486016152c8565b505060a082013560058201556154cd60c0830183615227565b6115e88183600686016152c8565b6000602082840312156154ed57600080fd5b813561112781614ead565b81516001600160401b0381111561551157615511614d02565b6155258161551f8454615192565b8461526d565b602080601f83116001811461555457600084156155425750858301515b61554c85826152b3565b865550613f92565b600085815260208120601f198616915b8281101561558357888601518255948401946001909101908401615564565b50858210156155a15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156155c357600080fd5b815161112781614ead565b81810381811115610f6a57610f6a6149b7565b6001600160801b03818116838216028082169190828114615604576156046149b7565b505092915050565b6000815461561981615192565b60018281168015615631576001811461564657615675565b60ff1984168752821515830287019450615675565b8560005260208060002060005b8581101561566c5781548a820152908401908201615653565b50505082870194505b5050505092915050565b6e3d913a3930b4ba2fba3cb832911d1160891b815260006156a3600f83018561560c565b6a1116113b30b63ab2911d1160a91b81526156c1600b82018561560c565b61227d60f01b815260020195945050505050565b60006156e1828461560c565b75076c4c2c6d6cee4deeadcc85ad2dac2ceca74eae4d8560531b81526016019392505050565b643230ba309d60d91b81526000615721600583018561560c565b670ed8985cd94d8d0b60c21b81528351615742816008840160208801614a14565b6505258eae4d8560d31b60089290910191820152600e01949350505050565b643230ba309d60d91b8152600061577b600583018561560c565b670ed8985cd94d8d0b60c21b8152835161579c816008840160208801614a14565b7f293b6261636b67726f756e642d7265706561743a6e6f2d7265706561743b6261600892909101918201527f636b67726f756e642d73697a653a636f6e7461696e3b6261636b67726f756e6460288201527f2d706f736974696f6e3a63656e7465723b696d6167652d72656e646572696e6760488201527f3a2d7765626b69742d6f7074696d697a652d636f6e74726173743b2d6d732d6960688201527f6e746572706f6c6174696f6e2d6d6f64653a6e6561726573742d6e656967686260888201527f6f723b696d6167652d72656e646572696e673a2d6d6f7a2d63726973702d656460a88201527f6765733b696d6167652d72656e646572696e673a706978656c617465643b223e60c8820152651e17b9bb339f60d11b60e882015260ee01949350505050565b7f646174613a696d6167652f7376672b786d6c3b6261736536342c0000000000008152600082516158fd81601a850160208701614a14565b91909101601a0192915050565b6000823560be1983360301811261592057600080fd5b9190910192915050565b60008235603e1983360301811261592057600080fd5b6000808335601e1984360301811261595757600080fd5b8301803591506001600160401b0382111561597157600080fd5b6020019150600581901b3603821315614e5b57600080fd5b683d913730b6b2911d1160b91b815260006159a7600983018661560c565b61202360f01b815284516159c2816002840160208901614a14565b701116113232b9b1b934b83a34b7b7111d1160791b600292909101918201526159ee601382018561560c565b61088b60f21b81526002019695505050505050565b681134b6b0b3b2911d1160b91b81526000615a21600983018461560c565b61227d60f01b81526002019392505050565b681134b6b0b3b2911d1160b91b81526000615a51600983018761560c565b8551615a61818360208a01614a14565b643f646e613d60d81b91019081528451615a82816005840160208901614a14565b6a266e6574776f726b49643d60a81b60059290910191820152615aa8601082018561560c565b61088b60f21b8152600201979650505050505050565b7f3c7376672077696474683d223130302522206865696768743d2231303025222081527f76696577426f783d2230203020313230302031323030222076657273696f6e3d60208201527f22312e322220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f3260408201527f3030302f737667223e3c696d6167652077696474683d2231323030222068656960608201527033b43a1e91189918181110343932b31e9160791b608082015260008251615b82816091850160208701614a14565b6f111f1e17b4b6b0b3b29f1e17b9bb339f60811b609193909101928301525060a101919050565b6d1134b6b0b3b2afb230ba30911d1160911b81528151600090615bd381600e850160208701614a14565b61088b60f21b600e939091019283015250601001919050565b6c1130ba3a3934b13aba32b9911d60991b81528151600090615c1581600d850160208701614a14565b607d60f81b600d939091019283015250600e01919050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251615c6581601d850160208701614a14565b91909101601d0192915050565b683d913730b6b2911d1160b91b81526000615c90600983018a61560c565b701116113232b9b1b934b83a34b7b7111d1160791b8152615cb4601182018a61560c565b6a11161134b6b0b3b2911d1160a91b81529050615cd4600b82018961560c565b6b1116113130b73732b9111d1160a11b81529050615cf5600c82018861560c565b7211161132bc3a32b93730b62fb634b735911d1160691b81529050615d1d601382018761560c565b90507f222c2273656c6c65725f6665655f62617369735f706f696e7473223a0000000081528451615d5581601c840160208901614a14565b7116113332b2afb932b1b4b834b2b73a111d1160711b601c9290910191820152615d82602e82018561560c565b61227d60f01b81526002019a9950505050505050505050565b60ff8181168382160290811690818114615db757615db76149b7565b5092915050565b60ff8281168282160390811115610f6a57610f6a6149b7565b60ff8181168382160190811115610f6a57610f6a6149b7565b600060ff821660ff8103615e0657615e066149b7565b60010192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615e4290830184614a38565b9695505050505050565b600060208284031215615e5e57600080fd5b8151611127816149e156fe3c7376672077696474683d223132303022206865696768743d2231323030222076696577426f783d2230203020313230302031323030222076657273696f6e3d22312e322220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207374796c653d226261636b67726f756e642d636f6c6f723aa264697066735822122062bede0d836f148e9d0c1d2097afddf462c86084c2723d88ad6cb1078f18e7f264736f6c6343000811003368747470733a2f2f66696c65732e696e64656c69626c652e78797a2f62616e6e65722f37323336376132662d376532382d346263322d626439662d63343166663630343534623730786265634136304430313663444636343945623562416442363039383835343638466335363438443468747470733a2f2f66696c65732e696e64656c69626c652e78797a2f70726f66696c652f37323336376132662d376532382d346263322d626439662d63343166663630343534623742656172697368202d206973206120636f6d6d756e697479206d616465206279206861746572732c20666f72206861746572732e20546865206f6e6c7920706c61636520776865726520796f7520686176652066756c6c2066726565646f6d206f662073706565636820746f206578707265737320796f7572206861747265642e20416c6c206f6620757320666163656420727567732c206d616e6970756c6174696f6e206f662046502c2050412c2066616c73652070726f6d6973657320616e642066616b65206174746974756465206f66206d6f64732c20666f756e6465727320616e64206d656d626572732e2042656172697368202d2069732074686520706c61636520776865726520796f752063616e20756e6974652077697468206f746865722070656f706c652077686f206973207469726564206f662066616b652062756c6c736869742077686963682069732068617070656e696e6720696e20776562332e68747470733a2f2f66696c65732e696e64656c69626c652e78797a2f706c616365686f6c6465722f37323336376132662d376532382d346263322d626439662d633431666636303435346237
Deployed Bytecode
0x6080604052600436106103d25760003560e01c806368bd580e116101fd578063b32c568011610118578063d5abeb01116100ab578063e8a3d4851161007a578063e8a3d48514610b3d578063e985e9c514610b52578063ea84b59b14610b9a578063f192b14414610bc7578063f2fde38b14610be257600080fd5b8063d5abeb0114610ac4578063dbe9875f14610ada578063dc53fd9214610afa578063dc9867ce14610b1057600080fd5b8063ba41b0c6116100e7578063ba41b0c614610a5e578063bdf7a8e614610a71578063c11feac114610a84578063c87b56dd14610aa457600080fd5b8063b32c5680146109eb578063b456806614610a0b578063b75f1aef14610a2b578063b88d4fde14610a4b57600080fd5b8063876171dc1161019057806395d89b411161015f57806395d89b411461098057806397d194d714610995578063a22cb465146109b5578063a24e5153146109d557600080fd5b8063876171dc146108fd57806389ce30741461092d5780638da5cb5b1461094d5780638fb4e8a91461096b57600080fd5b8063715018a6116101cc578063715018a6146108725780637bddd65b146108875780637cb64759146108a7578063831fb10d146108c757600080fd5b806368bd580e146108085780636c0360eb1461081d5780636df9fa881461083257806370a082311461085257600080fd5b80633ccfd60b116102ed5780635b5a482c11610280578063621a1f741161024f578063621a1f74146107925780636352211e146107b2578063639814e0146107d257806366e33870146107e857600080fd5b80635b5a482c1461070e5780635b92ac0d1461073d5780635d82cf6e146107525780636190e1da1461077257600080fd5b80634ca1a0f2116102bc5780634ca1a0f21461069d57806354214f69146106bd578063542d5041146106d457806355f804b3146106ee57600080fd5b80633ccfd60b1461064b5780634047638d1461066057806342842e0e146106755780634920154b1461068857600080fd5b806318160ddd1161036557806336cd2edd1161033457806336cd2edd146105d857806338f897b8146105ee578063394f22cb146106035780633cca24201461062357600080fd5b806318160ddd1461056e57806323b872dd1461059157806329fc6bae146105a45780632d6b6224146105be57600080fd5b806309dbabca116103a157806309dbabca146104ee5780630ad373f41461050e5780630f3debbe1461052e578063180c2cc01461054e57600080fd5b806301ffc9a71461044c57806306fdde0314610481578063081812fc146104a3578063095ea7b3146104db57600080fd5b366104475760235460ff1661042e5760405162461bcd60e51b815260206004820152601c60248201527f5075626c6963206d696e74696e67206973206e6f74206163746976650000000060448201526064015b60405180910390fd5b6104456021543461043f91906149cd565b33610c02565b005b600080fd5b34801561045857600080fd5b5061046c6104673660046149f7565b610f1e565b60405190151581526020015b60405180910390f35b34801561048d57600080fd5b50610496610f70565b6040516104789190614a64565b3480156104af57600080fd5b506104c36104be366004614a77565b611002565b6040516001600160a01b039091168152602001610478565b6104456104e9366004614aac565b611046565b3480156104fa57600080fd5b50610496610509366004614ad6565b6110e6565b34801561051a57600080fd5b5061046c610529366004614af8565b61112e565b34801561053a57600080fd5b50610445610549366004614b13565b6111b0565b34801561055a57600080fd5b50610445610569366004614b4d565b6111ed565b34801561057a57600080fd5b50600154600054035b604051908152602001610478565b61044561059f366004614ba3565b611492565b3480156105b057600080fd5b5060265461046c9060ff1681565b3480156105ca57600080fd5b5060235461046c9060ff1681565b3480156105e457600080fd5b5061058360255481565b3480156105fa57600080fd5b506104456115ee565b34801561060f57600080fd5b5061044561061e366004614bdf565b6116fa565b34801561062f57600080fd5b50610638611740565b6040516104789796959493929190614c08565b34801561065757600080fd5b50610445611a9e565b34801561066c57600080fd5b50610445611bdd565b610445610683366004614ba3565b611bf9565b34801561069457600080fd5b50610445611d4a565b3480156106a957600080fd5b506104456106b8366004614a77565b611d66565b3480156106c957600080fd5b50601a54151561046c565b3480156106e057600080fd5b50601e5461046c9060ff1681565b3480156106fa57600080fd5b50610445610709366004614c91565b611d73565b34801561071a57600080fd5b5061072562278d0081565b6040516001600160801b039091168152602001610478565b34801561074957600080fd5b5061046c611dd8565b34801561075e57600080fd5b5061044561076d366004614a77565b611e1b565b34801561077e57600080fd5b5061044561078d366004614c91565b611e28565b34801561079e57600080fd5b506104966107ad366004614a77565b611e60565b3480156107be57600080fd5b506104c36107cd366004614a77565b6122a7565b3480156107de57600080fd5b5061058360205481565b3480156107f457600080fd5b50610496610803366004614d8d565b6122b2565b34801561081457600080fd5b5061044561244b565b34801561082957600080fd5b50610496612485565b34801561083e57600080fd5b5061044561084d366004614a77565b612513565b34801561085e57600080fd5b5061058361086d366004614af8565b612520565b34801561087e57600080fd5b5061044561256e565b34801561089357600080fd5b506104456108a2366004614a77565b612580565b3480156108b357600080fd5b506104456108c2366004614a77565b61258d565b3480156108d357600080fd5b506107256108e2366004614af8565b6009602052600090815260409020546001600160801b031681565b34801561090957600080fd5b5061091d610918366004614a77565b61259a565b6040516104789493929190614dd5565b34801561093957600080fd5b50610496610948366004614d8d565b6126f4565b34801561095957600080fd5b50600b546001600160a01b03166104c3565b34801561097757600080fd5b5061044561290d565b34801561098c57600080fd5b50610496612929565b3480156109a157600080fd5b506104456109b0366004614e62565b612938565b3480156109c157600080fd5b506104456109d0366004614ebb565b612cd3565b3480156109e157600080fd5b5061058360245481565b3480156109f757600080fd5b5061046c610a06366004614ef2565b612def565b348015610a1757600080fd5b50610445610a26366004614f2b565b612ee9565b348015610a3757600080fd5b50610445610a46366004614c91565b613095565b610445610a59366004614f6c565b6130aa565b610445610a6c366004614e62565b613202565b610445610a7f366004614e62565b613414565b348015610a9057600080fd5b50610496610a9f366004614a77565b6134ff565b348015610ab057600080fd5b50610496610abf366004614a77565b6135ad565b348015610ad057600080fd5b50610583601f5481565b348015610ae657600080fd5b50610445610af5366004614fe7565b6137bb565b348015610b0657600080fd5b5061058360215481565b348015610b1c57600080fd5b50610b30610b2b366004614ad6565b613861565b604051610478919061500c565b348015610b4957600080fd5b506104966138cc565b348015610b5e57600080fd5b5061046c610b6d366004615050565b6001600160a01b039182166000908152600860209081526040808320939094168252919091522054421090565b348015610ba657600080fd5b50610bba610bb5366004614ad6565b61392a565b6040516104789190615083565b348015610bd357600080fd5b506105836602c2ad68fd900081565b348015610bee57600080fd5b50610445610bfd366004614af8565b613aa5565b610c0a611dd8565b610c265760405162461bcd60e51b8152600401610425906150d5565b60005482610c6c5760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d1bdad95b8818dbdd5b9d606a1b6044820152606401610425565b601f54610c798483615104565b1115610cbd5760405162461bcd60e51b8152602060048201526013602482015272416c6c20746f6b656e732061726520676f6e6560681b6044820152606401610425565b60235460009060ff16610cd257602454610cd6565b6021545b9050600034610cec6602c2ad68fd900084615104565b610cf69087615117565b602354911415915060ff168015610d185750600b546001600160a01b03163314155b15610ea4578015610da457610d2c3361112e565b610d735760405162461bcd60e51b815260206004820152601860248201527726b4b9b9b4b7339031b7b63632b1ba37b913b9903332b29760411b6044820152606401610425565b3460215486610d829190615117565b14610d9f5760405162461bcd60e51b81526004016104259061512e565b610de1565b346602c2ad68fd9000602154610dba9190615104565b610dc49087615117565b14610de15760405162461bcd60e51b81526004016104259061512e565b60205485610e11336001600160a01b03166000908152600560205260409081902054901c6001600160401b031690565b610e1b9190615104565b1115610e695760405162461bcd60e51b815260206004820152601a60248201527f4578636565646564206d6178206d696e747320616c6c6f7765640000000000006044820152606401610425565b333214610ea45760405162461bcd60e51b8152602060048201526009602482015268454f4173206f6e6c7960b81b6044820152606401610425565b6000610eb16014876149cd565b90506000610ec0601488615165565b905060005b82811015610eea57610ed8876014613b1e565b80610ee281615179565b915050610ec5565b508015610efb57610efb8682613b1e565b82158015610f07575060015b15610f1557610f1587613c1c565b50505050505050565b60006301ffc9a760e01b6001600160e01b031983161480610f4f57506380ac58cd60e01b6001600160e01b03198316145b80610f6a5750635b5e139f60e01b6001600160e01b03198316145b92915050565b606060028054610f7f90615192565b80601f0160208091040260200160405190810160405280929190818152602001828054610fab90615192565b8015610ff85780601f10610fcd57610100808354040283529160200191610ff8565b820191906000526020600020905b815481529060010190602001808311610fdb57829003601f168201915b5050505050905090565b600061100d82613cf4565b61102a576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000611051826122a7565b9050336001600160a01b0382161461108a5761106d8133610b6d565b61108a576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000828152600c602052604090208054606091611127918490811061110d5761110d6151cc565b6000918252602090912001546001600160a01b0316613d1b565b9392505050565b6018546040516370a0823160e01b81526001600160a01b03838116600483015260009261010090041690829082906370a0823190602401602060405180830381865afa158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a691906151e2565b1515949350505050565b6111b8613d65565b601e5460ff16156111db5760405162461bcd60e51b8152600401610425906151fb565b8060276111e88282615381565b505050565b6111f5613d65565b601e5460ff16156112185760405162461bcd60e51b8152600401610425906151fb565b60408051606081019091528061122e8380615227565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060209081019061127790840184615227565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506020016112c160808401606085016154db565b151590526000848152600d602090815260408083208684529091529020815181906112ec90826154f8565b506020820151600182019061130190826154f8565b50604091820151600291909101805460ff19169115159190911790556000848152600c60209081528282208054845181840281018401909552808552929392909183018282801561137b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161135d575b5050505050905081608001602081019061139591906154db565b156113ef57808260a00135815181106113b0576113b06151cc565b60200260200101518184815181106113ca576113ca6151cc565b60200260200101906001600160a01b031690816001600160a01b03168152505061146c565b6114396113ff6040840184615227565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613dbf92505050565b81848151811061144b5761144b6151cc565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6000848152600c60209081526040909120825161148b928401906148ec565b5050505050565b826daaeb6d7670e522a718067333cd4e3b156115dd57336001600160a01b038216036114c8576114c3848484613e01565b6115e8565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153b91906155b1565b80156115be5750604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561159a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115be91906155b1565b6115dd57604051633b79c77360e21b8152336004820152602401610425565b6115e8848484613e01565b50505050565b6115f6613d65565b601a54156116465760405162461bcd60e51b815260206004820152601a60248201527f52616e646f6d207365656420697320616c7265616479207365740000000000006044820152606401610425565b3a4342446116556001846155ce565b6040805160208101969096528501939093526060808501929092526080840152904060a083015233901b6001600160601b03191660c082015260d40160408051601f198184030181529190528051602090910120601a55601f547f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c906000906116e0906001906155ce565b6040805192835260208301919091520160405180910390a1565b61170781620151806155e1565b33600090815260096020526040902080546fffffffffffffffffffffffffffffffff19166001600160801b039290921691909117905550565b60278054819061174f90615192565b80601f016020809104026020016040519081016040528092919081815260200182805461177b90615192565b80156117c85780601f1061179d576101008083540402835291602001916117c8565b820191906000526020600020905b8154815290600101906020018083116117ab57829003601f168201915b5050505050908060010180546117dd90615192565b80601f016020809104026020016040519081016040528092919081815260200182805461180990615192565b80156118565780601f1061182b57610100808354040283529160200191611856565b820191906000526020600020905b81548152906001019060200180831161183957829003601f168201915b50505050509080600201805461186b90615192565b80601f016020809104026020016040519081016040528092919081815260200182805461189790615192565b80156118e45780601f106118b9576101008083540402835291602001916118e4565b820191906000526020600020905b8154815290600101906020018083116118c757829003601f168201915b5050505050908060030180546118f990615192565b80601f016020809104026020016040519081016040528092919081815260200182805461192590615192565b80156119725780601f1061194757610100808354040283529160200191611972565b820191906000526020600020905b81548152906001019060200180831161195557829003601f168201915b50505050509080600401805461198790615192565b80601f01602080910402602001604051908101604052809291908181526020018280546119b390615192565b8015611a005780601f106119d557610100808354040283529160200191611a00565b820191906000526020600020905b8154815290600101906020018083116119e357829003601f168201915b505050505090806005015490806006018054611a1b90615192565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4790615192565b8015611a945780601f10611a6957610100808354040283529160200191611a94565b820191906000526020600020905b815481529060010190602001808311611a7757829003601f168201915b5050505050905087565b611aa6613d65565b611aae613f9a565b478060008080611ac6600b546001600160a01b031690565b602e5490915015611bbf5760005b602e54811015611bbd57602e8181548110611af157611af16151cc565b90600052602060002090600402016003015483611b0e9190615104565b92506000602e8281548110611b2557611b256151cc565b906000526020600020906004020160020160009054906101000a90046001600160a01b03169050612710602e8381548110611b6257611b626151cc565b906000526020600020906004020160030154612710611b8191906155ce565b611b8b9088615117565b611b9591906149cd565b9450611baa81611ba587896155ce565b613ff3565b5080611bb581615179565b915050611ad4565b505b479450611bcc8186613ff3565b5050505050611bdb6001600a55565b565b611be5613d65565b6023805460ff19811660ff90911615179055565b826daaeb6d7670e522a718067333cd4e3b15611d3f57336001600160a01b03821603611c2a576114c384848461410c565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611c79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9d91906155b1565b8015611d205750604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611cfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2091906155b1565b611d3f57604051633b79c77360e21b8152336004820152602401610425565b6115e884848461410c565b611d52613d65565b6018805460ff19811660ff90911615179055565b611d6e613d65565b602555565b611d7b613d65565b6022611d888284836152c8565b507f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c60006001601f54611dbb91906155ce565b604080519283526020830191909152015b60405180910390a15050565b6000601f54611de660005490565b108015611e16575060235460ff1680611e01575060265460ff165b80611e165750600b546001600160a01b031633145b905090565b611e23613d65565b602155565b611e30613d65565b601e5460ff1615611e535760405162461bcd60e51b8152600401610425906151fb565b60196111e88284836152c8565b6060601a54600003611eb45760405162461bcd60e51b815260206004820152601b60248201527f436f6c6c656374696f6e20686173206e6f742072657665616c656400000000006044820152606401610425565b611ebd82613cf4565b611ef95760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610425565b6000611f27611f0a60066004615117565b604080518281016060018252910181526000602090910190815290565b90506000611f3484614127565b60408051600680825260e08201909252919250600091906020820160c080368337505060408051600680825260e0820190925292935060009291506020820160c0803683370190505090506000601f54601a54611f919190615165565b905060005b6006811015612173576000848281518110611fb357611fb36151cc565b60200260200101519050838281518110611fcf57611fcf6151cc565b60200260200101511515600015150361205f576000601f5460108481548110611ffa57611ffa6151cc565b906000526020600020015485858a6120129190615104565b61201c9190615104565b6120269190615117565b6120309190615165565b905061203c81846141e1565b915081868481518110612051576120516151cc565b602002602001018181525050505b6000828152600f6020908152604080832084845290915290205415612160576000828152600f602090815260408083208484529091529020805460019081106120aa576120aa6151cc565b6000918252602080832090910154848352600f825260408084208585529092529082208054919288926120df576120df6151cc565b9060005260206000200154815181106120fa576120fa6151cc565b6020908102919091018101919091526000838152600f825260408082208483529092529081208054600192879291612134576121346151cc565b90600052602060002001548151811061214f5761214f6151cc565b911515602092830291909101909101525b508061216b81615179565b915050611f96565b5060005b835181101561229b57600a848281518110612194576121946151cc565b602002602001015110156121cb57604080518082019091526002815261030360f41b60208201526121c690879061427d565b612210565b60648482815181106121df576121df6151cc565b60200260200101511015612210576040805180820190915260018152600360fc1b602082015261221090879061427d565b6103e7848281518110612225576122256151cc565b6020026020010151111561225d5760408051808201909152600381526239393960e81b602082015261225890879061427d565b612289565b612289612282858381518110612275576122756151cc565b6020026020010151614302565b879061427d565b8061229381615179565b915050612177565b50939695505050505050565b6000610f6a82614346565b60408051620200608101825262020040815260006020918201908152825180840190935260018352605b60f81b918301919091526060916122f490829061427d565b6000805b600681101561244257600061233561233087612315856003615117565b612320866003615117565b61232b906003615104565b6143ad565b614479565b6000838152600d6020908152604080832060ff9485168085529252822060020154909350909116151590036123fa57821561238d576040805180820190915260018152600b60fa1b602082015261238d90859061427d565b6123eb601783815481106123a3576123a36151cc565b60009182526020808320868452600d8252604080852087865283529384902093516123d4949390910192910161567f565b60408051601f19818403018152919052859061427d565b8215156000036123fa57600192505b612406600160066155ce565b820361242f576040805180820190915260018152605d60f81b602082015261242f90859061427d565b508061243a81615179565b9150506122f8565b50909392505050565b601e5460ff161561246e5760405162461bcd60e51b8152600401610425906151fb565b612476613d65565b601e805460ff19166001179055565b6022805461249290615192565b80601f01602080910402602001604051908101604052809291908181526020018280546124be90615192565b801561250b5780601f106124e05761010080835404028352916020019161250b565b820191906000526020600020905b8154815290600101906020018083116124ee57829003601f168201915b505050505081565b61251b613d65565b602455565b60006001600160a01b038216612549576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b612576613d65565b611bdb6000614537565b612588613d65565b602055565b612595613d65565b601b55565b602e81815481106125aa57600080fd5b90600052602060002090600402016000915090508060000180546125cd90615192565b80601f01602080910402602001604051908101604052809291908181526020018280546125f990615192565b80156126465780601f1061261b57610100808354040283529160200191612646565b820191906000526020600020905b81548152906001019060200180831161262957829003601f168201915b50505050509080600101805461265b90615192565b80601f016020809104026020016040519081016040528092919081815260200182805461268790615192565b80156126d45780601f106126a9576101008083540402835291602001916126d4565b820191906000526020600020905b8154815290600101906020018083116126b757829003601f168201915b50505050600283015460039093015491926001600160a01b031691905084565b6040805162020060810190915262020040815260006020909101818152606091906127386040518060c0016040528060818152602001615e6a60819139829061427d565b612764601960405160200161274d91906156d5565b60408051601f19818403018152919052829061427d565b60005b612773600160066155ce565b81101561282f576127976123308661278c846003615117565b612320856003615117565b60ff16925061281d600d600083815260200190815260200160002060008581526020019081526020016000206001016127f56127f0600c6000868152602001908152602001600020878154811061110d5761110d6151cc565b614589565b604051602001612806929190615707565b60408051601f19818403018152919052839061427d565b8061282781615179565b915050612767565b5061285a612330856003612844600682615117565b61284e91906155ce565b61232b60066003615117565b60ff1691506128dc600d6000612872600160066155ce565b815260200190815260200160002060008481526020019081526020016000206001016128cb6127f0600c6000600160066128ac91906155ce565b8152602001908152602001600020868154811061110d5761110d6151cc565b60405160200161274d929190615761565b6128e581614589565b6040516020016128f591906158c5565b60405160208183030381529060405292505050919050565b612915613d65565b6026805460ff19811660ff90911615179055565b606060038054610f7f90615192565b612940613d65565b601e5460ff16156129635760405162461bcd60e51b8152600401610425906151fb565b8060118460068110612977576129776151cc565b0154146129c65760405162461bcd60e51b815260206004820152601a60248201527f547261697473206c656e67746820697320696e636f72726563740000000000006044820152606401610425565b6000816001600160401b038111156129e0576129e0614d02565b604051908082528060200260200182016040528015612a09578160200160208202803683370190505b50905060005b82811015612cb357838382818110612a2957612a296151cc565b9050602002810190612a3b919061590a565b612a4c9060a08101906080016154db565b15612ac95781848483818110612a6457612a646151cc565b9050602002810190612a76919061590a565b60a0013581518110612a8a57612a8a6151cc565b6020026020010151828281518110612aa457612aa46151cc565b60200260200101906001600160a01b031690816001600160a01b031681525050612b31565b612afe848483818110612ade57612ade6151cc565b9050602002810190612af0919061590a565b6113ff906040810190615227565b828281518110612b1057612b106151cc565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6040518060600160405280858584818110612b4e57612b4e6151cc565b9050602002810190612b60919061590a565b612b6a9080615227565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001858584818110612bb657612bb66151cc565b9050602002810190612bc8919061590a565b612bd6906020810190615227565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001858584818110612c2257612c226151cc565b9050602002810190612c34919061590a565b612c459060808101906060016154db565b151590526000868152600d60209081526040808320858452909152902081518190612c7090826154f8565b5060208201516001820190612c8590826154f8565b50604091909101516002909101805460ff191691151591909117905580612cab81615179565b915050612a0f565b506000848152600c60209081526040909120825161148b928401906148ec565b6001600160a01b0382163303612d2b5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610425565b336000908152600960205260408120546001600160801b0316612d515762278d00612d6b565b336000908152600960205260409020546001600160801b03165b905081612d79576000612d8c565b612d8c6001600160801b03821642615104565b3360008181526008602090815260408083206001600160a01b03891680855290835292819020949094559251851515815290927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000612e6383838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050601b546040516001600160601b031960608b901b16602082015290925060340190505b60405160208183030381529060405280519060200120614597565b80612ee15750612ee1838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040516001600160601b031960608a901b1660208201527f6b94c6dbb45e12cf8753c239e16afdc50e4f41da7bdc4bde5900b81f3f853ddf92506034019050612e48565b949350505050565b612ef1613d65565b601e5460ff1615612f145760405162461bcd60e51b8152600401610425906151fb565b60005b818110156111e8576040518060400160405280848484818110612f3c57612f3c6151cc565b9050602002810190612f4e919061592a565b612f5c906020810190615940565b6000818110612f6d57612f6d6151cc565b905060200201358152602001848484818110612f8b57612f8b6151cc565b9050602002810190612f9d919061592a565b612fab906020810190615940565b6001818110612fbc57612fbc6151cc565b90506020020135815250600f6000858585818110612fdc57612fdc6151cc565b9050602002810190612fee919061592a565b612ff89080615940565b6000818110613009576130096151cc565b9050602002013581526020019081526020016000206000858585818110613032576130326151cc565b9050602002810190613044919061592a565b61304e9080615940565b600181811061305f5761305f6151cc565b905060200201358152602001908152602001600020906002613082929190614951565b508061308d81615179565b915050612f17565b61309d613d65565b601d6111e88284836152c8565b836daaeb6d7670e522a718067333cd4e3b156131f657336001600160a01b038216036130e1576130dc858585856145ad565b61148b565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015613130573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315491906155b1565b80156131d75750604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156131b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d791906155b1565b6131f657604051633b79c77360e21b8152336004820152602401610425565b61148b858585856145ad565b61320a613f9a565b613212611dd8565b61322e5760405162461bcd60e51b8152600401610425906150d5565b60235460ff1615801561324c5750600b546001600160a01b03163314155b15613400576000346602c2ad68fd90006024546132699190615104565b6132739086615117565b14801591506132fd576132853361112e565b6132cc5760405162461bcd60e51b815260206004820152601860248201527726b4b9b9b4b7339031b7b63632b1ba37b913b9903332b29760411b6044820152606401610425565b34602454856132db9190615117565b146132f85760405162461bcd60e51b81526004016104259061512e565b61333a565b346602c2ad68fd90006024546133139190615104565b61331d9086615117565b1461333a5760405162461bcd60e51b81526004016104259061512e565b613345338484612def565b6133855760405162461bcd60e51b8152602060048201526011602482015270139bdd081bdb88185b1b1bddc81b1a5cdd607a1b6044820152606401610425565b60255433600090815260056020526040908190205486911c6001600160401b03166133b09190615104565b11156133fe5760405162461bcd60e51b815260206004820152601a60248201527f4578636565646564206d6178206d696e747320616c6c6f7765640000000000006044820152606401610425565b505b61340a8333610c02565b6111e86001600a55565b61341c613f9a565b613424611dd8565b6134405760405162461bcd60e51b8152600401610425906150d5565b60235460ff168061345b5750600b546001600160a01b031633145b6134a75760405162461bcd60e51b815260206004820152601c60248201527f5075626c6963206d696e74696e67206973206e6f7420616374697665000000006044820152606401610425565b60005b818110156134f4576134e2848484848181106134c8576134c86151cc565b90506020020160208101906134dd9190614af8565b610c02565b806134ec81615179565b9150506134aa565b506111e86001600a55565b6060601a5460001461351c5761351761094883611e60565b610f6a565b601d805461352990615192565b80601f016020809104026020016040519081016040528092919081815260200182805461355590615192565b80156135a25780601f10613577576101008083540402835291602001916135a2565b820191906000526020600020905b81548152906001019060200180831161358557829003601f168201915b505050505092915050565b60606135b882613cf4565b6135f45760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610425565b6040805162020060810190915262020040815260006020909101908152613633602761361f85614302565b60405161274d929190602890602001615989565b601a5460000361365757613652601d60405160200161274d9190615a03565b61378b565b600061366284611e60565b905060006022805461367390615192565b905011801561369057506000848152600e602052604090205460ff165b156136be576136b960226136a386614302565b83601c6040516020016128069493929190615a33565b61376d565b60408051602081019091526000815260185460ff16156137345760006136e3836126f4565b905061370d816040516020016136f99190615abe565b604051602081830303815290604052614589565b60405160200161371d91906158c5565b604051602081830303815290604052915050613740565b61373d826126f4565b90505b61376b816040516020016137549190615ba9565b60408051601f19818403018152919052849061427d565b505b613789613779826122b2565b6040516020016128069190615bec565b505b61379481614589565b6040516020016137a49190615c2d565b604051602081830303815290604052915050919050565b6137c4826122a7565b6001600160a01b0316336001600160a01b0316146138165760405162461bcd60e51b815260206004820152600f60248201526e2737ba103a37b5b2b71037bbb732b960891b6044820152606401610425565b6000828152600e6020908152604091829020805460ff191684151517905590518381527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79101611dcc565b6000828152600f602090815260408083208484528252918290208054835181840281018401909452808452606093928301828280156138bf57602002820191906000526020600020905b8154815260200190600101908083116138ab575b5050505050905092915050565b602c5460609061390690602790602890602990602a90602b906138ee90614302565b6040516136f996959493929190602d90602001615c72565b6040516020016139169190615c2d565b604051602081830303815290604052905090565b604080516060808201835280825260208201526000918101919091526000838152600d602090815260408083208584529091529081902081516060810190925280548290829061397990615192565b80601f01602080910402602001604051908101604052809291908181526020018280546139a590615192565b80156139f25780601f106139c7576101008083540402835291602001916139f2565b820191906000526020600020905b8154815290600101906020018083116139d557829003601f168201915b50505050508152602001600182018054613a0b90615192565b80601f0160208091040260200160405190810160405280929190818152602001828054613a3790615192565b8015613a845780601f10613a5957610100808354040283529160200191613a84565b820191906000526020600020905b815481529060010190602001808311613a6757829003601f168201915b50505091835250506002919091015460ff1615156020909101529392505050565b613aad613d65565b6001600160a01b038116613b125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610425565b613b1b81614537565b50565b6000805490829003613b435760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114613bf257808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613bba565b5081600003613c1357604051622e076360e81b815260040160405180910390fd5b60005550505050565b6000613c2f826602c2ad68fd9000615117565b905060007f00000000000000000000000029fbb84b835f892eba2d331af9278b74c595edf16001600160a01b03168260405160006040518083038185875af1925050503d8060008114613c9e576040519150601f19603f3d011682016040523d82523d6000602084013e613ca3565b606091505b50509050806111e85760405162461bcd60e51b815260206004820152601c60248201527f4661696c656420746f2073656e6420636f6c6c6563746f7220666565000000006044820152606401610425565b6000805482108015610f6a575050600090815260046020526040902054600160e01b161590565b6060813b80613d32576311052bb46000526004601cfd5b600181039050604051915061ffe0603f820116820160405280825260008160208401015280600160208401853c50919050565b600b546001600160a01b03163314611bdb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610425565b60008151600181018060401b6a61000080600a3d393df300178452600a8101601585016000f092505081613dfb5763301164256000526004601cfd5b90915290565b6000613e0c82614346565b9050836001600160a01b0316816001600160a01b031614613e3f5760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b03881690911417613e8c57613e6f8633610b6d565b613e8c57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516613eb357604051633a954ecd60e21b815260040160405180910390fd5b8015613ebe57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003613f5057600184016000818152600460205260408120549003613f4e576000548114613f4e5760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6002600a5403613fec5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610425565b6002600a55565b804710156140435760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610425565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114614090576040519150601f19603f3d011682016040523d82523d6000602084013e614095565b606091505b50509050806111e85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610425565b6111e8838383604051806020016040528060008152506130aa565b600080601f546001600160401b0381111561414457614144614d02565b60405190808252806020026020018201604052801561416d578160200160208202803683370190505b50905060005b601f548110156141a35780828281518110614190576141906151cc565b6020908102919091010152600101614173565b506040805160208101909152601a5481526141be81836145f1565b8184815181106141d0576141d06151cc565b602002602001015192505050919050565b600080805b601184600681106141f9576141f96151cc565b015481101561044757600060118560068110614217576142176151cc565b018281548110614229576142296151cc565b9060005260206000200154905082861015801561424e575061424b8184615104565b86105b1561425d57509150610f6a9050565b6142678184615104565b925050808061427590615179565b9150506141e6565b601f1982015182518251603f1990920191829061429a9083615104565b11156142f85760405162461bcd60e51b815260206004820152602760248201527f44796e616d69634275666665723a20417070656e64696e67206f7574206f66206044820152663137bab732399760c91b6064820152608401610425565b6115e8848461466c565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a90048061431c5750819003601f19909101908152919050565b6000816000548110156143945760008181526004602052604081205490600160e01b82169003614392575b80600003611127575060001901600081815260046020526040902054614371565b505b604051636f96cda160e11b815260040160405180910390fd5b60608360006143bc85856155ce565b6001600160401b038111156143d3576143d3614d02565b6040519080825280601f01601f1916602001820160405280156143fd576020820181803683370190505b509050845b8481101561446f5782818151811061441c5761441c6151cc565b01602001516001600160f81b0319168261443688846155ce565b81518110614446576144466151cc565b60200101906001600160f81b031916908160001a9053508061446781615179565b915050614402565b5095945050505050565b60008181805b82518160ff16101561452f576030838260ff16815181106144a2576144a26151cc565b016020015160f81c108015906144d557506039838260ff16815181106144ca576144ca6151cc565b016020015160f81c11155b1561451d576144e5600a83615d9b565b91506030838260ff16815181106144fe576144fe6151cc565b0160200151614510919060f81c615dbe565b61451a9083615dd7565b91505b8061452781615df0565b91505061447f565b509392505050565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6060610f6a826000806146a2565b6000826145a4858461478d565b14949350505050565b6145b8848484611492565b6001600160a01b0383163b156115e8576145d4848484846147d2565b6115e8576040516368d2bf6b60e11b815260040160405180910390fd5b80516000196001600160801b03821561148b576020840193505b6020852080865282840193608082901c0660051b85018461462d57505061148b565b600585811b8701805183519091529091528385019482841606901b85018461465657505061148b565b600585901b86018051825190915290525061460b565b8051602082019150808201602084510184015b8184101561469757835181526020938401930161467f565b505082510190915250565b60608351801561452f576003600282010460021b60405192507f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f526102308515027f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f03603f52602083018181015b6003880197508751603f8160121c1651600053603f81600c1c1651600153603f8160061c1651600253603f81165160035350600051825260048201915080821061471257601f01601f1916604052613d3d60f01b60038406600204808303919091526000861515909102918290035290038252509392505050565b600081815b845181101561452f576147be828683815181106147b1576147b16151cc565b60200260200101516148bd565b9150806147ca81615179565b915050614792565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290614807903390899088908890600401615e0f565b6020604051808303816000875af1925050508015614842575060408051601f3d908101601f1916820190925261483f91810190615e4c565b60015b6148a0573d808015614870576040519150601f19603f3d011682016040523d82523d6000602084013e614875565b606091505b508051600003614898576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60008183106148d9576000828152602084905260409020611127565b6000838152602083905260409020611127565b828054828255906000526020600020908101928215614941579160200282015b8281111561494157825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061490c565b5061494d92915061498c565b5090565b828054828255906000526020600020908101928215614941579160200282015b82811115614941578251825591602001919060010190614971565b5b8082111561494d576000815560010161498d565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826149dc576149dc6149a1565b500490565b6001600160e01b031981168114613b1b57600080fd5b600060208284031215614a0957600080fd5b8135611127816149e1565b60005b83811015614a2f578181015183820152602001614a17565b50506000910152565b60008151808452614a50816020860160208601614a14565b601f01601f19169290920160200192915050565b6020815260006111276020830184614a38565b600060208284031215614a8957600080fd5b5035919050565b80356001600160a01b0381168114614aa757600080fd5b919050565b60008060408385031215614abf57600080fd5b614ac883614a90565b946020939093013593505050565b60008060408385031215614ae957600080fd5b50508035926020909101359150565b600060208284031215614b0a57600080fd5b61112782614a90565b600060208284031215614b2557600080fd5b81356001600160401b03811115614b3b57600080fd5b820160e0818503121561112757600080fd5b600080600060608486031215614b6257600080fd5b833592506020840135915060408401356001600160401b03811115614b8657600080fd5b840160c08187031215614b9857600080fd5b809150509250925092565b600080600060608486031215614bb857600080fd5b614bc184614a90565b9250614bcf60208501614a90565b9150604084013590509250925092565b600060208284031215614bf157600080fd5b81356001600160801b038116811461112757600080fd5b60e081526000614c1b60e083018a614a38565b8281036020840152614c2d818a614a38565b90508281036040840152614c418189614a38565b90508281036060840152614c558188614a38565b90508281036080840152614c698187614a38565b90508460a084015282810360c0840152614c838185614a38565b9a9950505050505050505050565b60008060208385031215614ca457600080fd5b82356001600160401b0380821115614cbb57600080fd5b818501915085601f830112614ccf57600080fd5b813581811115614cde57600080fd5b866020828501011115614cf057600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115614d3257614d32614d02565b604051601f8501601f19908116603f01168101908282118183101715614d5a57614d5a614d02565b81604052809350858152868686011115614d7357600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215614d9f57600080fd5b81356001600160401b03811115614db557600080fd5b8201601f81018413614dc657600080fd5b612ee184823560208401614d18565b608081526000614de86080830187614a38565b8281036020840152614dfa8187614a38565b6001600160a01b0395909516604084015250506060015292915050565b60008083601f840112614e2957600080fd5b5081356001600160401b03811115614e4057600080fd5b6020830191508360208260051b8501011115614e5b57600080fd5b9250929050565b600080600060408486031215614e7757600080fd5b8335925060208401356001600160401b03811115614e9457600080fd5b614ea086828701614e17565b9497909650939450505050565b8015158114613b1b57600080fd5b60008060408385031215614ece57600080fd5b614ed783614a90565b91506020830135614ee781614ead565b809150509250929050565b600080600060408486031215614f0757600080fd5b614f1084614a90565b925060208401356001600160401b03811115614e9457600080fd5b60008060208385031215614f3e57600080fd5b82356001600160401b03811115614f5457600080fd5b614f6085828601614e17565b90969095509350505050565b60008060008060808587031215614f8257600080fd5b614f8b85614a90565b9350614f9960208601614a90565b92506040850135915060608501356001600160401b03811115614fbb57600080fd5b8501601f81018713614fcc57600080fd5b614fdb87823560208401614d18565b91505092959194509250565b60008060408385031215614ffa57600080fd5b823591506020830135614ee781614ead565b6020808252825182820181905260009190848201906040850190845b8181101561504457835183529284019291840191600101615028565b50909695505050505050565b6000806040838503121561506357600080fd5b61506c83614a90565b915061507a60208401614a90565b90509250929050565b60208152600082516060602084015261509f6080840182614a38565b90506020840151601f198483030160408501526150bc8282614a38565b9150506040840151151560608401528091505092915050565b6020808252601590820152744d696e74696e67206973206e6f742061637469766560581b604082015260600190565b80820180821115610f6a57610f6a6149b7565b8082028115828204841417610f6a57610f6a6149b7565b6020808252601e908201527f496e636f727265637420616d6f756e74206f662065746865722073656e740000604082015260600190565b600082615174576151746149a1565b500690565b60006001820161518b5761518b6149b7565b5060010190565b600181811c908216806151a657607f821691505b6020821081036151c657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156151f457600080fd5b5051919050565b60208082526012908201527110dbdb9d1c9858dd081a5cc81cd9585b195960721b604082015260600190565b6000808335601e1984360301811261523e57600080fd5b8301803591506001600160401b0382111561525857600080fd5b602001915036819003821315614e5b57600080fd5b601f8211156111e857600081815260208120601f850160051c810160208610156152945750805b601f850160051c820191505b81811015613f92578281556001016152a0565b600019600383901b1c191660019190911b1790565b6001600160401b038311156152df576152df614d02565b6152f3836152ed8354615192565b8361526d565b6000601f841160018114615321576000851561530f5750838201355b61531986826152b3565b84555061148b565b600083815260209020601f19861690835b828110156153525786850135825560209485019460019092019101615332565b508682101561536f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b61538b8283615227565b6001600160401b038111156153a2576153a2614d02565b6153b6816153b08554615192565b8561526d565b6000601f8211600181146153e457600083156153d25750838201355b6153dc84826152b3565b86555061543e565b600085815260209020601f19841690835b8281101561541557868501358255602094850194600190920191016153f5565b50848210156154325760001960f88660031b161c19848701351681555b505060018360011b0185555b5050505061544f6020830183615227565b61545d8183600186016152c8565b505061546c6040830183615227565b61547a8183600286016152c8565b50506154896060830183615227565b6154978183600386016152c8565b50506154a66080830183615227565b6154b48183600486016152c8565b505060a082013560058201556154cd60c0830183615227565b6115e88183600686016152c8565b6000602082840312156154ed57600080fd5b813561112781614ead565b81516001600160401b0381111561551157615511614d02565b6155258161551f8454615192565b8461526d565b602080601f83116001811461555457600084156155425750858301515b61554c85826152b3565b865550613f92565b600085815260208120601f198616915b8281101561558357888601518255948401946001909101908401615564565b50858210156155a15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156155c357600080fd5b815161112781614ead565b81810381811115610f6a57610f6a6149b7565b6001600160801b03818116838216028082169190828114615604576156046149b7565b505092915050565b6000815461561981615192565b60018281168015615631576001811461564657615675565b60ff1984168752821515830287019450615675565b8560005260208060002060005b8581101561566c5781548a820152908401908201615653565b50505082870194505b5050505092915050565b6e3d913a3930b4ba2fba3cb832911d1160891b815260006156a3600f83018561560c565b6a1116113b30b63ab2911d1160a91b81526156c1600b82018561560c565b61227d60f01b815260020195945050505050565b60006156e1828461560c565b75076c4c2c6d6cee4deeadcc85ad2dac2ceca74eae4d8560531b81526016019392505050565b643230ba309d60d91b81526000615721600583018561560c565b670ed8985cd94d8d0b60c21b81528351615742816008840160208801614a14565b6505258eae4d8560d31b60089290910191820152600e01949350505050565b643230ba309d60d91b8152600061577b600583018561560c565b670ed8985cd94d8d0b60c21b8152835161579c816008840160208801614a14565b7f293b6261636b67726f756e642d7265706561743a6e6f2d7265706561743b6261600892909101918201527f636b67726f756e642d73697a653a636f6e7461696e3b6261636b67726f756e6460288201527f2d706f736974696f6e3a63656e7465723b696d6167652d72656e646572696e6760488201527f3a2d7765626b69742d6f7074696d697a652d636f6e74726173743b2d6d732d6960688201527f6e746572706f6c6174696f6e2d6d6f64653a6e6561726573742d6e656967686260888201527f6f723b696d6167652d72656e646572696e673a2d6d6f7a2d63726973702d656460a88201527f6765733b696d6167652d72656e646572696e673a706978656c617465643b223e60c8820152651e17b9bb339f60d11b60e882015260ee01949350505050565b7f646174613a696d6167652f7376672b786d6c3b6261736536342c0000000000008152600082516158fd81601a850160208701614a14565b91909101601a0192915050565b6000823560be1983360301811261592057600080fd5b9190910192915050565b60008235603e1983360301811261592057600080fd5b6000808335601e1984360301811261595757600080fd5b8301803591506001600160401b0382111561597157600080fd5b6020019150600581901b3603821315614e5b57600080fd5b683d913730b6b2911d1160b91b815260006159a7600983018661560c565b61202360f01b815284516159c2816002840160208901614a14565b701116113232b9b1b934b83a34b7b7111d1160791b600292909101918201526159ee601382018561560c565b61088b60f21b81526002019695505050505050565b681134b6b0b3b2911d1160b91b81526000615a21600983018461560c565b61227d60f01b81526002019392505050565b681134b6b0b3b2911d1160b91b81526000615a51600983018761560c565b8551615a61818360208a01614a14565b643f646e613d60d81b91019081528451615a82816005840160208901614a14565b6a266e6574776f726b49643d60a81b60059290910191820152615aa8601082018561560c565b61088b60f21b8152600201979650505050505050565b7f3c7376672077696474683d223130302522206865696768743d2231303025222081527f76696577426f783d2230203020313230302031323030222076657273696f6e3d60208201527f22312e322220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f3260408201527f3030302f737667223e3c696d6167652077696474683d2231323030222068656960608201527033b43a1e91189918181110343932b31e9160791b608082015260008251615b82816091850160208701614a14565b6f111f1e17b4b6b0b3b29f1e17b9bb339f60811b609193909101928301525060a101919050565b6d1134b6b0b3b2afb230ba30911d1160911b81528151600090615bd381600e850160208701614a14565b61088b60f21b600e939091019283015250601001919050565b6c1130ba3a3934b13aba32b9911d60991b81528151600090615c1581600d850160208701614a14565b607d60f81b600d939091019283015250600e01919050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251615c6581601d850160208701614a14565b91909101601d0192915050565b683d913730b6b2911d1160b91b81526000615c90600983018a61560c565b701116113232b9b1b934b83a34b7b7111d1160791b8152615cb4601182018a61560c565b6a11161134b6b0b3b2911d1160a91b81529050615cd4600b82018961560c565b6b1116113130b73732b9111d1160a11b81529050615cf5600c82018861560c565b7211161132bc3a32b93730b62fb634b735911d1160691b81529050615d1d601382018761560c565b90507f222c2273656c6c65725f6665655f62617369735f706f696e7473223a0000000081528451615d5581601c840160208901614a14565b7116113332b2afb932b1b4b834b2b73a111d1160711b601c9290910191820152615d82602e82018561560c565b61227d60f01b81526002019a9950505050505050505050565b60ff8181168382160290811690818114615db757615db76149b7565b5092915050565b60ff8281168282160390811115610f6a57610f6a6149b7565b60ff8181168382160190811115610f6a57610f6a6149b7565b600060ff821660ff8103615e0657615e066149b7565b60010192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615e4290830184614a38565b9695505050505050565b600060208284031215615e5e57600080fd5b8151611127816149e156fe3c7376672077696474683d223132303022206865696768743d2231323030222076696577426f783d2230203020313230302031323030222076657273696f6e3d22312e322220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207374796c653d226261636b67726f756e642d636f6c6f723aa264697066735822122062bede0d836f148e9d0c1d2097afddf462c86084c2723d88ad6cb1078f18e7f264736f6c63430008110033
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.