ERC-1155
Overview
Max Total Supply
8,087 SPComic
Holders
1,300
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x6A3174d6...297EaAb0d The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
HyperMintERC1155_2_2_0
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.10;import '@openzeppelin/contracts/interfaces/IERC2981.sol';import '@openzeppelin/contracts/interfaces/IERC20.sol';import '@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol';import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';import '@openzeppelin/contracts/utils/cryptography/ECDSA.sol';import './opensea-operator-filter/OperatorFilterer.sol';import './Ownable_1_0_0.sol';import './Interfaces/IHyperMintERC1155_2_2_0.sol';contract HyperMintERC1155_2_2_0 isIHyperMintERC1155_2_2_0,ERC1155Burnable,Ownable,OperatorFilterer{using SafeERC20 for IERC20;/* ================= STATE VARIABLES ================= */// ========= Immutable Storage =========uint256 internal constant BASIS_POINTS = 10000;// ========== Mutable Storage ==========string public constant version = '2.2.0';
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.2;import '@openzeppelin/contracts/interfaces/IERC2981.sol';import '@openzeppelin/contracts/interfaces/IERC20.sol';import '@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol';import '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';import '@openzeppelin/contracts/utils/cryptography/ECDSA.sol';import './Ownable_1_0_0.sol';contract HyperMintERC1155_2_0_0 is ERC1155Burnable, Ownable {using SafeERC20 for IERC20;/* ================= CUSTOM ERRORS ================= */error NewSupplyTooLow();error ArrayLengthMismatch();error MaxSupplyExceeded();error SignatureExpired();error NotAuthorised();error BuyDisabled();error InsufficientPaymentValue();error PublicSaleClosed();error SaleClosed();error MaxPerTransactionsExceeded();error ContractCallBlocked();error ImmutableRecoveryAddress();
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)pragma solidity ^0.8.0;import "../utils/introspection/IERC165.sol";/*** @dev Interface for the NFT Royalty Standard.** A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal* support for royalty payments across all NFT marketplaces and ecosystem participants.** _Available since v4.5._*/interface IERC2981 is IERC165 {/*** @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of* exchange. The royalty amount is denominated and should be paid in that same unit of exchange.*/function royaltyInfo(uint256 tokenId, uint256 salePrice)externalviewreturns (address receiver, uint256 royaltyAmount);}
123456// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol)pragma solidity ^0.8.0;import "../token/ERC20/IERC20.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/ERC1155Burnable.sol)pragma solidity ^0.8.0;import "../ERC1155.sol";/*** @dev Extension of {ERC1155} that allows token holders to destroy both their* own tokens and those that they have been approved to use.** _Available since v3.1._*/abstract contract ERC1155Burnable is ERC1155 {function burn(address account,uint256 id,uint256 value) public virtual {require(account == _msgSender() || isApprovedForAll(account, _msgSender()),"ERC1155: caller is not owner nor approved");_burn(account, id, value);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)pragma solidity ^0.8.0;import "../IERC20.sol";import "../../../utils/Address.sol";/*** @title SafeERC20* @dev Wrappers around ERC20 operations that throw on failure (when the token* contract returns false). Tokens that return no value (and instead revert or* throw on failure) are also supported, non-reverting calls are assumed to be* successful.* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.*/library SafeERC20 {using Address for address;function safeTransfer(IERC20 token,address to,uint256 value) internal {_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/ECDSA.sol)pragma solidity ^0.8.0;import "../Strings.sol";/*** @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.** These functions can be used to verify that a message was signed by the holder* of the private keys of a given address.*/library ECDSA {enum RecoverError {NoError,InvalidSignature,InvalidSignatureLength,InvalidSignatureS,InvalidSignatureV}function _throwError(RecoverError error) private pure {if (error == RecoverError.NoError) {return; // no error: do nothing} else if (error == RecoverError.InvalidSignature) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)pragma solidity ^0.8.4;import '@openzeppelin/contracts/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;address private _contractManager;event ContractManagerTransferred(address indexed previousContractManager,address indexed newContractManager
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/interface IERC165 {/*** @dev Returns true if this contract implements the interface defined by* `interfaceId`. See the corresponding* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]* to learn more about how these ids are created.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC20 standard as defined in the EIP.*/interface IERC20 {/*** @dev Emitted when `value` tokens are moved from one account (`from`) to* another (`to`).** Note that `value` may be zero.*/event Transfer(address indexed from, address indexed to, uint256 value);/*** @dev Emitted when the allowance of a `spender` for an `owner` is set by* a call to {approve}. `value` is the new allowance.*/event Approval(address indexed owner, address indexed spender, uint256 value);/*** @dev Returns the amount of tokens in existence.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC1155/ERC1155.sol)pragma solidity ^0.8.0;import "./IERC1155.sol";import "./IERC1155Receiver.sol";import "./extensions/IERC1155MetadataURI.sol";import "../../utils/Address.sol";import "../../utils/Context.sol";import "../../utils/introspection/ERC165.sol";/*** @dev Implementation of the basic standard multi-token.* See https://eips.ethereum.org/EIPS/eip-1155* Originally based on code by Enjin: https://github.com/enjin/erc-1155** _Available since v3.1._*/contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {using Address for address;// Mapping from token ID to account balancesmapping(uint256 => mapping(address => uint256)) private _balances;// Mapping from account to operator approvals
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC1155/IERC1155.sol)pragma solidity ^0.8.0;import "../../utils/introspection/IERC165.sol";/*** @dev Required interface of an ERC1155 compliant contract, as defined in the* https://eips.ethereum.org/EIPS/eip-1155[EIP].** _Available since v3.1._*/interface IERC1155 is IERC165 {/*** @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.*/event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);/*** @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all* transfers.*/event TransferBatch(address indexed operator,address indexed from,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)pragma solidity ^0.8.0;import "../../utils/introspection/IERC165.sol";/*** @dev _Available since v3.1._*/interface IERC1155Receiver is IERC165 {/*** @dev Handles the receipt of a single ERC1155 token type. This function is* called at the end of a `safeTransferFrom` after the balance has been updated.** NOTE: To accept the transfer, this must return* `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`* (i.e. 0xf23a6e61, or its own function selector).** @param operator The address which initiated the transfer (i.e. msg.sender)* @param from The address which previously owned the token* @param id The ID of the token being transferred* @param value The amount of tokens being transferred* @param data Additional data with no specified format* @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed*/
12345678910111213141516171819202122// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol)pragma solidity ^0.8.0;import "../IERC1155.sol";/*** @dev Interface of the optional ERC1155MetadataExtension interface, as defined* in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].** _Available since v3.1._*/interface IERC1155MetadataURI is IERC1155 {/*** @dev Returns the URI for token type `id`.** If the `\{id\}` substring is present in the URI, it must be replaced by* clients with the actual token type ID.*/function uri(uint256 id) external view returns (string memory);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)pragma solidity ^0.8.1;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*
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 v4.4.1 (utils/introspection/ERC165.sol)pragma solidity ^0.8.0;import "./IERC165.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check* for the additional interface id that will be supported. For example:** ```solidity* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);* }* ```** Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.*/abstract contract ERC165 is IERC165 {/*** @dev See {IERC165-supportsInterface}.*/function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)pragma solidity ^0.8.0;/*** @dev String operations.*/library Strings {bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {// Inspired by OraclizeAPI's implementation - MIT licence// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.solif (value == 0) {return "0";}uint256 temp = value;uint256 digits;while (temp != 0) {digits++;temp /= 10;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import {IOperatorFilterRegistry} from './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
123456// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (interfaces/IERC165.sol)pragma solidity ^0.8.0;import "../utils/introspection/IERC165.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;interface IOperatorFilterRegistry {function isOperatorAllowed(address registrant, address operator)externalviewreturns (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(
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.10;// ============== Structs ==============struct GeneralConfig {string name;string symbol;string contractMetadataUrl;string tokenMetadataUrl;bool allowBuy;bool allowPublicTransfer;bool enableOpenSeaOperatorFilterRegistry;uint256 publicSaleDate;uint256 saleCloseDate;uint256 primaryRoyaltyFee;uint256 secondaryRoyaltyFee;}struct TokenConfig {uint256 price;uint256 maxSupply;uint256 maxPerTransaction;}struct Addresses {address recoveryAddress;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.
123456789101112131415161718192021222324{"evmVersion": "london","libraries": {},"metadata": {"bytecodeHash": "ipfs"},"optimizer": {"enabled": true,"runs": 1000},"remappings": [],"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"contractMetadataUrl","type":"string"},{"internalType":"string","name":"tokenMetadataUrl","type":"string"},{"internalType":"bool","name":"allowBuy","type":"bool"},{"internalType":"bool","name":"allowPublicTransfer","type":"bool"},{"internalType":"bool","name":"enableOpenSeaOperatorFilterRegistry","type":"bool"},{"internalType":"uint256","name":"publicSaleDate","type":"uint256"},{"internalType":"uint256","name":"saleCloseDate","type":"uint256"},{"internalType":"uint256","name":"primaryRoyaltyFee","type":"uint256"},{"internalType":"uint256","name":"secondaryRoyaltyFee","type":"uint256"}],"internalType":"struct GeneralConfig","name":"_generalConfig","type":"tuple"},{"components":[{"internalType":"address","name":"recoveryAddress","type":"address"},{"internalType":"address","name":"collectionOwnerAddress","type":"address"},{"internalType":"address","name":"authorisationAddress","type":"address"},{"internalType":"address","name":"purchaseTokenAddress","type":"address"},{"internalType":"address","name":"managerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"customerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"secondaryRoyaltyAddress","type":"address"}],"internalType":"struct Addresses","name":"_addresses","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[],"name":"BuyDisabled","type":"error"},{"inputs":[],"name":"ContractCallBlocked","type":"error"},{"inputs":[],"name":"ImmutableRecoveryAddress","type":"error"},{"inputs":[],"name":"InsufficientPaymentValue","type":"error"},{"inputs":[],"name":"MaxPerTransactionsExceeded","type":"error"},{"inputs":[],"name":"MaxSupplyExceeded","type":"error"},{"inputs":[],"name":"NewSupplyTooLow","type":"error"},{"inputs":[],"name":"NotAuthorised","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"inputs":[],"name":"PublicSaleClosed","type":"error"},{"inputs":[],"name":"SaleClosed","type":"error"},{"inputs":[],"name":"SignatureExpired","type":"error"},{"inputs":[],"name":"TransfersDisabled","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousContractManager","type":"address"},{"indexed":true,"internalType":"address","name":"newContractManager","type":"address"}],"name":"ContractManagerTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint256","name":"maxPerTransaction","type":"uint256"}],"internalType":"struct TokenConfig[]","name":"_tokens","type":"tuple[]"}],"name":"addTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addresses","outputs":[{"internalType":"address","name":"recoveryAddress","type":"address"},{"internalType":"address","name":"collectionOwnerAddress","type":"address"},{"internalType":"address","name":"authorisationAddress","type":"address"},{"internalType":"address","name":"purchaseTokenAddress","type":"address"},{"internalType":"address","name":"managerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"customerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"secondaryRoyaltyAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"burnBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_totalPrice","type":"uint256"},{"internalType":"uint256","name":"_maxPerAddress","type":"uint256"},{"internalType":"uint256","name":"_expires","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"buyAuthorised","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"contractManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"uri","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"generalConfig","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"contractMetadataUrl","type":"string"},{"internalType":"string","name":"tokenMetadataUrl","type":"string"},{"internalType":"bool","name":"allowBuy","type":"bool"},{"internalType":"bool","name":"allowPublicTransfer","type":"bool"},{"internalType":"bool","name":"enableOpenSeaOperatorFilterRegistry","type":"bool"},{"internalType":"uint256","name":"publicSaleDate","type":"uint256"},{"internalType":"uint256","name":"saleCloseDate","type":"uint256"},{"internalType":"uint256","name":"primaryRoyaltyFee","type":"uint256"},{"internalType":"uint256","name":"secondaryRoyaltyFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSupplies","outputs":[{"internalType":"uint256[]","name":"tokenSupplies","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenConfigs","outputs":[{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint256","name":"maxPerTransaction","type":"uint256"}],"internalType":"struct TokenConfig[]","name":"configs","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_to","type":"address[]"},{"internalType":"uint256[][]","name":"_ids","type":"uint256[][]"},{"internalType":"uint256[][]","name":"_amounts","type":"uint256[][]"}],"name":"mintBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"collectionName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"royaltyAddress","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"recoveryAddress","type":"address"},{"internalType":"address","name":"collectionOwnerAddress","type":"address"},{"internalType":"address","name":"authorisationAddress","type":"address"},{"internalType":"address","name":"purchaseTokenAddress","type":"address"},{"internalType":"address","name":"managerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"customerPrimaryRoyaltyAddress","type":"address"},{"internalType":"address","name":"secondaryRoyaltyAddress","type":"address"}],"internalType":"struct Addresses","name":"_addresses","type":"tuple"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_allowBuy","type":"bool"}],"name":"setAllowBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_allowPublicTransfer","type":"bool"}],"name":"setAllowPublicTransfer","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":"uint256","name":"_publicSale","type":"uint256"},{"internalType":"uint256","name":"_saleClosed","type":"uint256"}],"name":"setDates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"setEnableOpenSeaOperatorFilterRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_contractURI","type":"string"},{"internalType":"string","name":"_tokenURI","type":"string"}],"name":"setMetadataURIs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newName","type":"string"},{"internalType":"string","name":"_newSymbol","type":"string"}],"name":"setNameAndSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_primaryFee","type":"uint256"},{"internalType":"uint256","name":"_secondaryFee","type":"uint256"}],"name":"setRoyalty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"_maxSupply","type":"uint256"},{"internalType":"uint256","name":"_maxPerTransaction","type":"uint256"}],"name":"setTokenConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"supplies","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"collectionSymbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenConfigs","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint256","name":"maxPerTransaction","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_expires","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"transferAuthorised","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newContractManager","type":"address"}],"name":"transferContractManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200584038038062005840833981016040819052620000349162000754565b733cc6cdda760b79bafa08df41ecfa224f810dceb66001604051806020016040528060008152506200006c81620003f560201b60201c565b5062000078336200040e565b6daaeb6d7670e522a718067333cd4e3b15620001bd5780156200010b57604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b158015620000ec57600080fd5b505af115801562000101573d6000803e3d6000fd5b50505050620001bd565b6001600160a01b038216156200015c5760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401620000d1565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620001a357600080fd5b505af1158015620001b8573d6000803e3d6000fd5b505050505b50506020810151620001cf9062000460565b815180518391600591620001eb918391602090910190620004b2565b506020828101518051620002069260018501920190620004b2565b506040820151805162000224916002840191602090910190620004b2565b506060820151805162000242916003840191602090910190620004b2565b5060808281015160048301805460a08087015160c08089015161ffff1990941695151561ff0019169590951761010091151582021762ff0000191662010000931515939093029290921790925560e0860151600586015585015160068501556101208501516007850155610140909401516008938401558451600f80546001600160a01b03199081166001600160a01b03938416179091556020870151601080548316918416919091179055604087015160118054831691841691909117905560608701516012805483169184169190911790559286015160138054851691831691909117905593850151601480548416918616919091179055840151601580549092169316929092179091558054620003ed91906200036290620008b7565b80601f01602080910402602001604051908101604052809291908181526020018280546200039090620008b7565b8015620003e15780601f10620003b557610100808354040283529160200191620003e1565b820191906000526020600020905b815481529060010190602001808311620003c357829003601f168201915b5050620003f592505050565b5050620008f4565b80516200040a906002906020840190620004b2565b5050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f5fb4f5c581870540f90f9705018e944972197c5be2aa889f6bb847b6cd2236e190600090a35050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620004c090620008b7565b90600052602060002090601f016020900481019282620004e457600085556200052f565b82601f10620004ff57805160ff19168380011785556200052f565b828001600101855582156200052f579182015b828111156200052f57825182559160200191906001019062000512565b506200053d92915062000541565b5090565b5b808211156200053d576000815560010162000542565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b038111828210171562000594576200059462000558565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620005c557620005c562000558565b604052919050565b600082601f830112620005df57600080fd5b81516001600160401b03811115620005fb57620005fb62000558565b602062000611601f8301601f191682016200059a565b82815285828487010111156200062657600080fd5b60005b838110156200064657858101830151828201840152820162000629565b83811115620006585760008385840101525b5095945050505050565b805180151581146200067357600080fd5b919050565b80516001600160a01b03811681146200067357600080fd5b600060e08284031215620006a357600080fd5b60405160e081016001600160401b0381118282101715620006c857620006c862000558565b604052905080620006d98362000678565b8152620006e96020840162000678565b6020820152620006fc6040840162000678565b60408201526200070f6060840162000678565b6060820152620007226080840162000678565b60808201526200073560a0840162000678565b60a08201526200074860c0840162000678565b60c08201525092915050565b6000806101008084860312156200076a57600080fd5b83516001600160401b03808211156200078257600080fd5b9085019061016082880312156200079857600080fd5b620007a26200056e565b825182811115620007b257600080fd5b620007c089828601620005cd565b825250602083015182811115620007d657600080fd5b620007e489828601620005cd565b602083015250604083015182811115620007fd57600080fd5b6200080b89828601620005cd565b6040830152506060830151828111156200082457600080fd5b6200083289828601620005cd565b606083015250620008466080840162000662565b60808201526200085960a0840162000662565b60a08201526200086c60c0840162000662565b60c082015260e08381015190820152838301519381019390935250610120808201519083015261014090810151908201529150620008ae846020850162000690565b90509250929050565b600181811c90821680620008cc57607f821691505b60208210811415620008ee57634e487b7160e01b600052602260045260246000fd5b50919050565b614f3c80620009046000396000f3fe6080604052600436106102c55760003560e01c806382875f7911610179578063c01bd0e9116100d6578063dedf141e1161008a578063f242432a11610064578063f242432a14610885578063f2fde38b146108a5578063f5298aca146108c557600080fd5b8063dedf141e14610807578063e8a3d48514610827578063e985e9c51461083c57600080fd5b8063d6046836116100bb578063d604683614610746578063d6febde814610766578063da0321cd1461077957600080fd5b8063c01bd0e9146106f6578063c873d1aa1461073157600080fd5b8063a22cb4651161012d578063aeb2de3511610112578063aeb2de3514610698578063b375d492146106b8578063b39e12cf146106d857600080fd5b8063a22cb46514610658578063ae0aa35b1461067857600080fd5b8063927a97a11161015e578063927a97a1146105f7578063933a6f0d1461062357806395d89b411461064357600080fd5b806382875f79146105b05780638da5cb5b146105c557600080fd5b80632eb2c2d61161022757806358939061116101db57806366a4a49c116101c057806366a4a49c1461055b5780636b20c4541461057b578063715018a61461059b57600080fd5b8063589390611461051b5780635a4462151461053b57600080fd5b80634ed52c491161020c5780634ed52c491461049d57806354fd4d50146104b05780635547171d146104f957600080fd5b80632eb2c2d6146104505780634e1273f41461047057600080fd5b8063122ed6791161027e5780631f0f3547116102635780631f0f3547146103d157806326f1a1fd146103f15780632a55205a1461041157600080fd5b8063122ed67914610391578063166d44ea146103b157600080fd5b806306fdde03116102af57806306fdde031461032d5780630e89341c1461034f5780631218ee111461036f57600080fd5b8062fdd58e146102ca57806301ffc9a7146102fd575b600080fd5b3480156102d657600080fd5b506102ea6102e53660046140a2565b6108e5565b6040519081526020015b60405180910390f35b34801561030957600080fd5b5061031d6103183660046140e4565b61098e565b60405190151581526020016102f4565b34801561033957600080fd5b506103426109d2565b6040516102f49190614159565b34801561035b57600080fd5b5061034261036a36600461416c565b610a67565b34801561037b57600080fd5b5061038f61038a366004614185565b610afb565b005b34801561039d57600080fd5b5061038f6103ac3660046141fc565b610c38565b3480156103bd57600080fd5b5061038f6103cc3660046142a4565b610fcb565b3480156103dd57600080fd5b5061038f6103ec366004614303565b61104a565b3480156103fd57600080fd5b506102ea61040c36600461416c565b6111ed565b34801561041d57600080fd5b5061043161042c366004614389565b61120e565b604080516001600160a01b0390931683526020830191909152016102f4565b34801561045c57600080fd5b5061038f61046b3660046144f7565b611244565b34801561047c57600080fd5b5061049061048b3660046145a5565b6112e6565b6040516102f491906146ad565b61038f6104ab3660046146c0565b611424565b3480156104bc57600080fd5b506103426040518060400160405280600581526020017f322e322e3000000000000000000000000000000000000000000000000000000081525081565b34801561050557600080fd5b5061050e6115be565b6040516102f49190614715565b34801561052757600080fd5b5061038f6105363660046142a4565b61163b565b34801561054757600080fd5b5061038f61055636600461476e565b6116bc565b34801561056757600080fd5b5061038f6105763660046147da565b61173a565b34801561058757600080fd5b5061038f61059636600461484f565b611844565b3480156105a757600080fd5b5061038f6118c9565b3480156105bc57600080fd5b5061038f61192f565b3480156105d157600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016102f4565b34801561060357600080fd5b5061060c61196f565b6040516102f49b9a999897969594939291906148c5565b34801561062f57600080fd5b5061038f61063e366004614389565b611bdc565b34801561064f57600080fd5b50610342611c4c565b34801561066457600080fd5b5061038f610673366004614952565b611c5e565b34801561068457600080fd5b5061038f61069336600461498b565b611c6d565b3480156106a457600080fd5b5061038f6106b336600461476e565b611d5a565b3480156106c457600080fd5b5061038f6106d33660046149a8565b611e1e565b3480156106e457600080fd5b506004546001600160a01b03166105df565b34801561070257600080fd5b5061071661071136600461416c565b611f26565b604080519384526020840192909252908201526060016102f4565b34801561073d57600080fd5b50610490611f59565b34801561075257600080fd5b5061038f6107613660046142a4565b611fb0565b61038f610774366004614389565b612028565b34801561078557600080fd5b50600f546010546011546012546013546014546015546107be966001600160a01b03908116968116958116948116938116928116911687565b604080516001600160a01b039889168152968816602088015294871694860194909452918516606085015284166080840152831660a083015290911660c082015260e0016102f4565b34801561081357600080fd5b5061038f610822366004614389565b6120f1565b34801561083357600080fd5b50610342612161565b34801561084857600080fd5b5061031d6108573660046149c0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b34801561089157600080fd5b5061038f6108a03660046149ee565b612173565b3480156108b157600080fd5b5061038f6108c036600461498b565b6121fa565b3480156108d157600080fd5b5061038f6108e0366004614a57565b6122d9565b60006001600160a01b0383166109685760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b031982167f2a55205a0000000000000000000000000000000000000000000000000000000014806109cc57506109cc8261235e565b92915050565b6060600560000180546109e490614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1090614a8c565b8015610a5d5780601f10610a3257610100808354040283529160200191610a5d565b820191906000526020600020905b815481529060010190602001808311610a4057829003601f168201915b5050505050905090565b606060028054610a7690614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa290614a8c565b8015610aef5780601f10610ac457610100808354040283529160200191610aef565b820191906000526020600020905b815481529060010190602001808311610ad257829003601f168201915b50505050509050919050565b6004546001600160a01b0316336001600160a01b031614610b605760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b8160168581548110610b7457610b74614ac1565b90600052602060002001541115610bb7576040517f1d77a89900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600e8581548110610bcb57610bcb614ac1565b90600052602060002090600302016000018190555081600e8581548110610bf457610bf4614ac1565b90600052602060002090600302016001018190555080600e8581548110610c1d57610c1d614ac1565b90600052602060002090600302016002018190555050505050565b6004546001600160a01b0316336001600160a01b031614610c9d5760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b323314610cbd57604051633ebb273b60e21b815260040160405180910390fd5b8460005b81811015610fc1576000868683818110610cdd57610cdd614ac1565b9050602002810190610cef9190614ad7565b9050905060005b81811015610ec05760006016898986818110610d1457610d14614ac1565b9050602002810190610d269190614ad7565b84818110610d3657610d36614ac1565b9050602002013581548110610d4d57610d4d614ac1565b90600052602060002001549050600e898986818110610d6e57610d6e614ac1565b9050602002810190610d809190614ad7565b84818110610d9057610d90614ac1565b9050602002013581548110610da757610da7614ac1565b906000526020600020906003020160010154878786818110610dcb57610dcb614ac1565b9050602002810190610ddd9190614ad7565b84818110610ded57610ded614ac1565b9050602002013582610dff9190614b37565b1115610e1e57604051638a164f6360e01b815260040160405180910390fd5b868685818110610e3057610e30614ac1565b9050602002810190610e429190614ad7565b83818110610e5257610e52614ac1565b90506020020135810190508060168a8a87818110610e7257610e72614ac1565b9050602002810190610e849190614ad7565b85818110610e9457610e94614ac1565b9050602002013581548110610eab57610eab614ac1565b60009182526020909120015550600101610cf6565b50610fb8898984818110610ed657610ed6614ac1565b9050602002016020810190610eeb919061498b565b888885818110610efd57610efd614ac1565b9050602002810190610f0f9190614ad7565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a9250899150879050818110610f5557610f55614ac1565b9050602002810190610f679190614ad7565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080518082019091526002815261060f60f31b602082015291506123f99050565b50600101610cc1565b5050505050505050565b6004546001600160a01b0316336001600160a01b0316146110305760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b600980549115156101000261ff0019909216919091179055565b32331461106a57604051633ebb273b60e21b815260040160405180910390fd5b82421061108a57604051630819bdcd60e01b815260040160405180910390fd5b6040805130606090811b6bffffffffffffffffffffffff1990811660208085019190915233831b821660348501528b831b82166048850152918a901b16605c830152607082018890526090820187905260b08083018790528351808403909101815260d0830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060f084015261010c8084018290528451808503909101815261012c9093019093528151910120600090601154604080516020601f88018190048102820181019092528681529293506001600160a01b03909116916111949184919088908890819084018382808284376000920191909152506125ce92505050565b6001600160a01b0316146111bb57604051631648fd0160e01b815260040160405180910390fd5b6111e28989898960405180604001604052806002815260200161060f60f31b815250612173565b505050505050505050565b601681815481106111fd57600080fd5b600091825260209091200154905081565b601554600d546001600160a01b0390911690600090612710906112319085614b4f565b61123b9190614b6e565b90509250929050565b6001600160a01b03851633148061126057506112608533610857565b6112d25760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000606482015260840161095f565b6112df85858585856125ea565b5050505050565b6060815183511461135f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d617463680000000000000000000000000000000000000000000000606482015260840161095f565b6000835167ffffffffffffffff81111561137b5761137b6143ab565b6040519080825280602002602001820160405280156113a4578160200160208202803683370190505b50905060005b845181101561141c576113ef8582815181106113c8576113c8614ac1565b60200260200101518583815181106113e2576113e2614ac1565b60200260200101516108e5565b82828151811061140157611401614ac1565b602090810291909101015261141581614b90565b90506113aa565b509392505050565b60095460ff1661144757604051639d7da54560e01b815260040160405180910390fd5b32331461146757604051633ebb273b60e21b815260040160405180910390fd5b82421061148757604051630819bdcd60e01b815260040160405180910390fd5b6040805130606090811b6bffffffffffffffffffffffff199081166020808501919091523390921b16603483015260488201899052606882018890526088820187905260a8820186905260c88083018b90528351808403909101815260e8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a333200000000610108840152610124808401829052845180850390910181526101449093019093528151910120600090601154604080516020601f88018190048102820181019092528681529293506001600160a01b039091169161158c9184919088908890819084018382808284376000920191909152506125ce92505050565b6001600160a01b0316146115b357604051631648fd0160e01b815260040160405180910390fd5b6111e2898989612856565b6060600e805480602002602001604051908101604052809291908181526020016000905b8282101561163257838290600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050815260200190600101906115e2565b50505050905090565b6004546001600160a01b0316336001600160a01b0316146116a05760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b60098054911515620100000262ff000019909216919091179055565b6004546001600160a01b0316336001600160a01b0316146117215760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b61172d60058585613f80565b506112df60068383613f80565b6004546001600160a01b0316336001600160a01b03161461179f5760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b60005b8181101561183f576016805460018101825560009182527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890155600e8383838181106117f0576117f0614ac1565b83546001810185556000948552602090942060609091029290920192600302909101905061183582828135815560208201356001820155604082013560028201555050565b50506001016117a2565b505050565b6001600160a01b03831633148061186057506118608333610857565b6118be5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161095f565b61183f838383612b10565b6003546001600160a01b031633146119235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161095f565b61192d6000612d65565b565b600f546001600160a01b0316331461195a57604051631648fd0160e01b815260040160405180910390fd5b600f5461192d906001600160a01b0316612db7565b60058054819061197e90614a8c565b80601f01602080910402602001604051908101604052809291908181526020018280546119aa90614a8c565b80156119f75780601f106119cc576101008083540402835291602001916119f7565b820191906000526020600020905b8154815290600101906020018083116119da57829003601f168201915b505050505090806001018054611a0c90614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3890614a8c565b8015611a855780601f10611a5a57610100808354040283529160200191611a85565b820191906000526020600020905b815481529060010190602001808311611a6857829003601f168201915b505050505090806002018054611a9a90614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054611ac690614a8c565b8015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b505050505090806003018054611b2890614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5490614a8c565b8015611ba15780601f10611b7657610100808354040283529160200191611ba1565b820191906000526020600020905b815481529060010190602001808311611b8457829003601f168201915b505050506004830154600584015460068501546007860154600890960154949560ff808516966101008604821696506201000090950416938b565b6004546001600160a01b0316336001600160a01b031614611c415760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b600c91909155600d55565b6060600560010180546109e490614a8c565b611c69338383612e09565b5050565b6004546001600160a01b0316336001600160a01b031614611cd25760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b6001600160a01b038116611d4e5760405162461bcd60e51b815260206004820152602f60248201527f4f776e61626c653a206e657720636f6e7472616374206f776e6572206973207460448201527f6865207a65726f20616464726573730000000000000000000000000000000000606482015260840161095f565b611d5781612db7565b50565b6004546001600160a01b0316336001600160a01b031614611dbf5760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b611dcb60078585613f80565b50611dd860088383613f80565b50611e1882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612efe92505050565b50505050565b6004546001600160a01b0316336001600160a01b031614611e835760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b600f546001600160a01b0316611e9c602083018361498b565b6001600160a01b031614611edc576040517f9598453c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611eec604082016020830161498b565b6010546001600160a01b03908116911614611f1957611f19611f14604083016020840161498b565b612d65565b80600f61183f8282614bab565b600e8181548110611f3657600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b60606016805480602002602001604051908101604052809291908181526020018280548015610a5d57602002820191906000526020600020905b815481526020019060010190808311611f93575050505050905090565b6004546001600160a01b0316336001600160a01b0316146120155760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b6009805460ff1916911515919091179055565b60095460ff1661204b57604051639d7da54560e01b815260040160405180910390fd5b32331461206b57604051633ebb273b60e21b815260040160405180910390fd5b600a54158061207b5750600a5442105b156120b2576040517fdd4e010600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600e84815481106120c8576120c8614ac1565b9060005260206000209060030201600001546120e49190614b4f565b905061183f838383612856565b6004546001600160a01b0316336001600160a01b0316146121565760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b600a91909155600b55565b6060600560020180546109e490614a8c565b6001600160a01b03851633148061218f575061218f8533610857565b6121ed5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161095f565b6112df8585858585612f11565b6003546001600160a01b031633146122545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161095f565b6001600160a01b0381166122d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161095f565b611d5781612d65565b6001600160a01b0383163314806122f557506122f58333610857565b6123535760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161095f565b61183f8383836130bf565b60006001600160e01b031982167fd9b67a260000000000000000000000000000000000000000000000000000000014806123c157506001600160e01b031982167f0e89341c00000000000000000000000000000000000000000000000000000000145b806109cc57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146109cc565b6001600160a01b0384166124595760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161095f565b81518351146124bb5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161095f565b336124cb8160008787878761324f565b60005b8451811015612566578381815181106124e9576124e9614ac1565b602002602001015160008087848151811061250657612506614ac1565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020600082825461254e9190614b37565b9091555081905061255e81614b90565b9150506124ce565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516125b7929190614cdc565b60405180910390a46112df81600087878787613508565b60008060006125dd85856136ae565b9150915061141c8161371e565b815183511461264c5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161095f565b6001600160a01b0384166126b05760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161095f565b336126bf81878787878761324f565b60005b84518110156127e85760008582815181106126df576126df614ac1565b6020026020010151905060008583815181106126fd576126fd614ac1565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156127905760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b606482015260840161095f565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906127cd908490614b37565b92505081905550505050806127e190614b90565b90506126c2565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612838929190614cdc565b60405180910390a461284e818787878787613508565b505050505050565b600b541561289957600b544210612899576040517f4c013bd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000601684815481106128ae576128ae614ac1565b906000526020600020015490506000600e85815481106128d0576128d0614ac1565b90600052602060002090600302016001015490508084836128f19190614b37565b111561291057604051638a164f6360e01b815260040160405180910390fd5b6000600e868154811061292557612925614ac1565b90600052602060002090600302016002015490508060001461297b578085111561297b576040517fe9a8adbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c546000906127109061298f9087614b4f565b6129999190614b6e565b6012549091506001600160a01b031615612a02576012546013546001600160a01b03918216916129ce918391339116856138d9565b6014546129fc9033906001600160a01b03166129ea858a614d0a565b6001600160a01b0385169291906138d9565b50612aba565b84341015612a3c576040517f7e6fc84600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612a76573d6000803e3d6000fd5b506014546001600160a01b03166108fc612a908388614d0a565b6040518115909202916000818181858888f19350505050158015612ab8573d6000803e3d6000fd5b505b85840193508360168881548110612ad357612ad3614ac1565b9060005260206000200181905550612b0733888860405180604001604052806002815260200161060f60f31b815250613961565b50505050505050565b6001600160a01b038316612b725760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161095f565b8051825114612bd45760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161095f565b6000339050612bf78185600086866040518060200160405280600081525061324f565b60005b8351811015612cf8576000848281518110612c1757612c17614ac1565b602002602001015190506000848381518110612c3557612c35614ac1565b602090810291909101810151600084815280835260408082206001600160a01b038c168352909352919091205490915081811015612cc15760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161095f565b6000928352602083815260408085206001600160a01b038b1686529091529092209103905580612cf081614b90565b915050612bfa565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612d49929190614cdc565b60405180910390a4604080516020810190915260009052611e18565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f5fb4f5c581870540f90f9705018e944972197c5be2aa889f6bb847b6cd2236e190600090a35050565b816001600160a01b0316836001600160a01b03161415612e915760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c660000000000000000000000000000000000000000000000606482015260840161095f565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b8051611c69906002906020840190614004565b6001600160a01b038416612f755760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161095f565b336000612f8185613a7b565b90506000612f8e85613a7b565b9050612f9e83898985858961324f565b6000868152602081815260408083206001600160a01b038c168452909152902054858110156130225760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b606482015260840161095f565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061305f908490614b37565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46111e2848a8a8a8a8a613ac6565b6001600160a01b0383166131215760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161095f565b33600061312d84613a7b565b9050600061313a84613a7b565b905061315a8387600085856040518060200160405280600081525061324f565b6000858152602081815260408083206001600160a01b038a168452909152902054848110156131d75760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161095f565b6000868152602081815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612b07565b604080517fb39e12cf0000000000000000000000000000000000000000000000000000000081529051869186916001600160a01b0380851615929084161591600091309163b39e12cf916004808201926020929091908290030181865afa1580156132be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e29190614d21565b6001600160a01b0386811691161490506000356001600160e01b0319167f1f0f354700000000000000000000000000000000000000000000000000000000148315801561332d575081155b8015613337575082155b8015613341575080155b1561338757600954610100900460ff16613387576040517f8574adcf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009548b9062010000900460ff168061339f576134f8565b6daaeb6d7670e522a718067333cd4e3b156134f8576001600160a01b0382163314156133ca576134f8565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015613419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343d9190614d3e565b80156134c05750604051633185c44d60e21b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561349c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c09190614d3e565b6134f8576040517fede71dcc00000000000000000000000000000000000000000000000000000000815233600482015260240161095f565b5050505050505050505050505050565b6001600160a01b0384163b1561284e5760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061354c9089908990889088908890600401614d5b565b6020604051808303816000875af1925050508015613587575060408051601f3d908101601f1916820190925261358491810190614db9565b60015b61363d57613593614dd6565b806308c379a014156135cd57506135a8614df2565b806135b357506135cf565b8060405162461bcd60e51b815260040161095f9190614159565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e746572000000000000000000000000606482015260840161095f565b6001600160e01b0319811663bc197c8160e01b14612b075760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b606482015260840161095f565b6000808251604114156136e55760208301516040840151606085015160001a6136d987828585613bc2565b94509450505050613717565b82516040141561370f5760208301516040840151613704868383613caf565b935093505050613717565b506000905060025b9250929050565b600081600481111561373257613732614e7c565b141561373b5750565b600181600481111561374f5761374f614e7c565b141561379d5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161095f565b60028160048111156137b1576137b1614e7c565b14156137ff5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161095f565b600381600481111561381357613813614e7c565b141561386c5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161095f565b600481600481111561388057613880614e7c565b1415611d575760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161095f565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611e18908590613d01565b6001600160a01b0384166139c15760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161095f565b3360006139cd85613a7b565b905060006139da85613a7b565b90506139eb8360008985858961324f565b6000868152602081815260408083206001600160a01b038b16845290915281208054879290613a1b908490614b37565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612b0783600089898989613ac6565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613ab557613ab5614ac1565b602090810291909101015292915050565b6001600160a01b0384163b1561284e5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190613b0a9089908990889088908890600401614e92565b6020604051808303816000875af1925050508015613b45575060408051601f3d908101601f19168201909252613b4291810190614db9565b60015b613b5157613593614dd6565b6001600160e01b0319811663f23a6e6160e01b14612b075760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b606482015260840161095f565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613bf95750600090506003613ca6565b8460ff16601b14158015613c1157508460ff16601c14155b15613c225750600090506004613ca6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613c76573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613c9f57600060019250925050613ca6565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831681613ce560ff86901c601b614b37565b9050613cf387828885613bc2565b935093505050935093915050565b6000613d56826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613de69092919063ffffffff16565b80519091501561183f5780806020019051810190613d749190614d3e565b61183f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161095f565b6060613df58484600085613dff565b90505b9392505050565b606082471015613e775760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161095f565b6001600160a01b0385163b613ece5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161095f565b600080866001600160a01b03168587604051613eea9190614eca565b60006040518083038185875af1925050503d8060008114613f27576040519150601f19603f3d011682016040523d82523d6000602084013e613f2c565b606091505b5091509150613f3c828286613f47565b979650505050505050565b60608315613f56575081613df8565b825115613f665782518084602001fd5b8160405162461bcd60e51b815260040161095f9190614159565b828054613f8c90614a8c565b90600052602060002090601f016020900481019282613fae5760008555613ff4565b82601f10613fc75782800160ff19823516178555613ff4565b82800160010185558215613ff4579182015b82811115613ff4578235825591602001919060010190613fd9565b50614000929150614078565b5090565b82805461401090614a8c565b90600052602060002090601f0160209004810192826140325760008555613ff4565b82601f1061404b57805160ff1916838001178555613ff4565b82800160010185558215613ff4579182015b82811115613ff457825182559160200191906001019061405d565b5b808211156140005760008155600101614079565b6001600160a01b0381168114611d5757600080fd5b600080604083850312156140b557600080fd5b82356140c08161408d565b946020939093013593505050565b6001600160e01b031981168114611d5757600080fd5b6000602082840312156140f657600080fd5b8135613df8816140ce565b60005b8381101561411c578181015183820152602001614104565b83811115611e185750506000910152565b60008151808452614145816020860160208601614101565b601f01601f19169290920160200192915050565b602081526000613df8602083018461412d565b60006020828403121561417e57600080fd5b5035919050565b6000806000806080858703121561419b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008083601f8401126141c957600080fd5b50813567ffffffffffffffff8111156141e157600080fd5b6020830191508360208260051b850101111561371757600080fd5b6000806000806000806060878903121561421557600080fd5b863567ffffffffffffffff8082111561422d57600080fd5b6142398a838b016141b7565b9098509650602089013591508082111561425257600080fd5b61425e8a838b016141b7565b9096509450604089013591508082111561427757600080fd5b5061428489828a016141b7565b979a9699509497509295939492505050565b8015158114611d5757600080fd5b6000602082840312156142b657600080fd5b8135613df881614296565b60008083601f8401126142d357600080fd5b50813567ffffffffffffffff8111156142eb57600080fd5b60208301915083602082850101111561371757600080fd5b600080600080600080600060c0888a03121561431e57600080fd5b87356143298161408d565b965060208801356143398161408d565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff81111561436a57600080fd5b6143768a828b016142c1565b989b979a50959850939692959293505050565b6000806040838503121561439c57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156143e7576143e76143ab565b6040525050565b600067ffffffffffffffff821115614408576144086143ab565b5060051b60200190565b600082601f83011261442357600080fd5b81356020614430826143ee565b60405161443d82826143c1565b83815260059390931b850182019282810191508684111561445d57600080fd5b8286015b848110156144785780358352918301918301614461565b509695505050505050565b600082601f83011261449457600080fd5b813567ffffffffffffffff8111156144ae576144ae6143ab565b6040516144c5601f8301601f1916602001826143c1565b8181528460208386010111156144da57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561450f57600080fd5b853561451a8161408d565b9450602086013561452a8161408d565b9350604086013567ffffffffffffffff8082111561454757600080fd5b61455389838a01614412565b9450606088013591508082111561456957600080fd5b61457589838a01614412565b9350608088013591508082111561458b57600080fd5b5061459888828901614483565b9150509295509295909350565b600080604083850312156145b857600080fd5b823567ffffffffffffffff808211156145d057600080fd5b818501915085601f8301126145e457600080fd5b813560206145f1826143ee565b6040516145fe82826143c1565b83815260059390931b850182019282810191508984111561461e57600080fd5b948201945b838610156146455785356146368161408d565b82529482019490820190614623565b9650508601359250508082111561465b57600080fd5b5061466885828601614412565b9150509250929050565b600081518084526020808501945080840160005b838110156146a257815187529582019590820190600101614686565b509495945050505050565b602081526000613df86020830184614672565b600080600080600080600060c0888a0312156146db57600080fd5b873596506020880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff81111561436a57600080fd5b602080825282518282018190526000919060409081850190868401855b828110156147615781518051855286810151878601528501518585015260609093019290850190600101614732565b5091979650505050505050565b6000806000806040858703121561478457600080fd5b843567ffffffffffffffff8082111561479c57600080fd5b6147a8888389016142c1565b909650945060208701359150808211156147c157600080fd5b506147ce878288016142c1565b95989497509550505050565b600080602083850312156147ed57600080fd5b823567ffffffffffffffff8082111561480557600080fd5b818501915085601f83011261481957600080fd5b81358181111561482857600080fd5b86602060608302850101111561483d57600080fd5b60209290920196919550909350505050565b60008060006060848603121561486457600080fd5b833561486f8161408d565b9250602084013567ffffffffffffffff8082111561488c57600080fd5b61489887838801614412565b935060408601359150808211156148ae57600080fd5b506148bb86828701614412565b9150509250925092565b60006101608083526148d98184018f61412d565b905082810360208401526148ed818e61412d565b90508281036040840152614901818d61412d565b90508281036060840152614915818c61412d565b9915156080840152505095151560a087015293151560c086015260e085019290925261010084015261012083015261014090910152949350505050565b6000806040838503121561496557600080fd5b82356149708161408d565b9150602083013561498081614296565b809150509250929050565b60006020828403121561499d57600080fd5b8135613df88161408d565b600060e082840312156149ba57600080fd5b50919050565b600080604083850312156149d357600080fd5b82356149de8161408d565b915060208301356149808161408d565b600080600080600060a08688031215614a0657600080fd5b8535614a118161408d565b94506020860135614a218161408d565b93506040860135925060608601359150608086013567ffffffffffffffff811115614a4b57600080fd5b61459888828901614483565b600080600060608486031215614a6c57600080fd5b8335614a778161408d565b95602085013595506040909401359392505050565b600181811c90821680614aa057607f821691505b602082108114156149ba57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112614aee57600080fd5b83018035915067ffffffffffffffff821115614b0957600080fd5b6020019150600581901b360382131561371757600080fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115614b4a57614b4a614b21565b500190565b6000816000190483118215151615614b6957614b69614b21565b500290565b600082614b8b57634e487b7160e01b600052601260045260246000fd5b500490565b6000600019821415614ba457614ba4614b21565b5060010190565b8135614bb68161408d565b81546001600160a01b0319166001600160a01b038216178255506020820135614bde8161408d565b6001820180546001600160a01b0319166001600160a01b038316179055506040820135614c0a8161408d565b6002820180546001600160a01b0319166001600160a01b038316179055506060820135614c368161408d565b6003820180546001600160a01b0319166001600160a01b038316179055506080820135614c628161408d565b6004820180546001600160a01b0319166001600160a01b0383161790555060a0820135614c8e8161408d565b6005820180546001600160a01b0319166001600160a01b0383161790555060c0820135614cba8161408d565b6006820180546001600160a01b0319166001600160a01b038316179055505050565b604081526000614cef6040830185614672565b8281036020840152614d018185614672565b95945050505050565b600082821015614d1c57614d1c614b21565b500390565b600060208284031215614d3357600080fd5b8151613df88161408d565b600060208284031215614d5057600080fd5b8151613df881614296565b60006001600160a01b03808816835280871660208401525060a06040830152614d8760a0830186614672565b8281036060840152614d998186614672565b90508281036080840152614dad818561412d565b98975050505050505050565b600060208284031215614dcb57600080fd5b8151613df8816140ce565b600060033d1115614def5760046000803e5060005160e01c5b90565b600060443d1015614e005790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715614e3057505050505090565b8285019150815181811115614e485750505050505090565b843d8701016020828501011115614e625750505050505090565b614e71602082860101876143c1565b509095945050505050565b634e487b7160e01b600052602160045260246000fd5b60006001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152613f3c60a083018461412d565b60008251614edc818460208701614101565b919091019291505056fe4f776e61626c653a2063616c6c6572206973206e6f742074686520636f6e7472a2646970667358221220e4aae5a5bef4fe4849241f8565f315b43f75b464a178ddb0656664ecc3df2eb864736f6c634300080a003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000004b26bdf68ac9abfb19f6146313428e7f8b6041f40000000000000000000000008fb9f0baefa3265167918af66142bbcd7ffa8099000000000000000000000000fe5e6a93e44ad07ad96b51e34ad8b11939f7cfb4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062d516276381042016b38b65c89c05ea59ccb13b00000000000000000000000041197b19945ad480a11fbbf970f2ea0cae6642fc00000000000000000000000041197b19945ad480a11fbbf970f2ea0cae6642fc000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001853757065722050554d4120436f6d696373202d20436f7079000000000000000000000000000000000000000000000000000000000000000000000000000000075350436f6d696300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004768747470733a2f2f6170692e68797065726d696e742e636f6d2f6d657461646174612f63666436383466652d386565332d346666382d613565312d39333665363832376630393800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c68747470733a2f2f6170692e68797065726d696e742e636f6d2f6d657461646174612f63666436383466652d386565332d346666382d613565312d3933366536383237663039382f7b69647d0000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102c55760003560e01c806382875f7911610179578063c01bd0e9116100d6578063dedf141e1161008a578063f242432a11610064578063f242432a14610885578063f2fde38b146108a5578063f5298aca146108c557600080fd5b8063dedf141e14610807578063e8a3d48514610827578063e985e9c51461083c57600080fd5b8063d6046836116100bb578063d604683614610746578063d6febde814610766578063da0321cd1461077957600080fd5b8063c01bd0e9146106f6578063c873d1aa1461073157600080fd5b8063a22cb4651161012d578063aeb2de3511610112578063aeb2de3514610698578063b375d492146106b8578063b39e12cf146106d857600080fd5b8063a22cb46514610658578063ae0aa35b1461067857600080fd5b8063927a97a11161015e578063927a97a1146105f7578063933a6f0d1461062357806395d89b411461064357600080fd5b806382875f79146105b05780638da5cb5b146105c557600080fd5b80632eb2c2d61161022757806358939061116101db57806366a4a49c116101c057806366a4a49c1461055b5780636b20c4541461057b578063715018a61461059b57600080fd5b8063589390611461051b5780635a4462151461053b57600080fd5b80634ed52c491161020c5780634ed52c491461049d57806354fd4d50146104b05780635547171d146104f957600080fd5b80632eb2c2d6146104505780634e1273f41461047057600080fd5b8063122ed6791161027e5780631f0f3547116102635780631f0f3547146103d157806326f1a1fd146103f15780632a55205a1461041157600080fd5b8063122ed67914610391578063166d44ea146103b157600080fd5b806306fdde03116102af57806306fdde031461032d5780630e89341c1461034f5780631218ee111461036f57600080fd5b8062fdd58e146102ca57806301ffc9a7146102fd575b600080fd5b3480156102d657600080fd5b506102ea6102e53660046140a2565b6108e5565b6040519081526020015b60405180910390f35b34801561030957600080fd5b5061031d6103183660046140e4565b61098e565b60405190151581526020016102f4565b34801561033957600080fd5b506103426109d2565b6040516102f49190614159565b34801561035b57600080fd5b5061034261036a36600461416c565b610a67565b34801561037b57600080fd5b5061038f61038a366004614185565b610afb565b005b34801561039d57600080fd5b5061038f6103ac3660046141fc565b610c38565b3480156103bd57600080fd5b5061038f6103cc3660046142a4565b610fcb565b3480156103dd57600080fd5b5061038f6103ec366004614303565b61104a565b3480156103fd57600080fd5b506102ea61040c36600461416c565b6111ed565b34801561041d57600080fd5b5061043161042c366004614389565b61120e565b604080516001600160a01b0390931683526020830191909152016102f4565b34801561045c57600080fd5b5061038f61046b3660046144f7565b611244565b34801561047c57600080fd5b5061049061048b3660046145a5565b6112e6565b6040516102f491906146ad565b61038f6104ab3660046146c0565b611424565b3480156104bc57600080fd5b506103426040518060400160405280600581526020017f322e322e3000000000000000000000000000000000000000000000000000000081525081565b34801561050557600080fd5b5061050e6115be565b6040516102f49190614715565b34801561052757600080fd5b5061038f6105363660046142a4565b61163b565b34801561054757600080fd5b5061038f61055636600461476e565b6116bc565b34801561056757600080fd5b5061038f6105763660046147da565b61173a565b34801561058757600080fd5b5061038f61059636600461484f565b611844565b3480156105a757600080fd5b5061038f6118c9565b3480156105bc57600080fd5b5061038f61192f565b3480156105d157600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016102f4565b34801561060357600080fd5b5061060c61196f565b6040516102f49b9a999897969594939291906148c5565b34801561062f57600080fd5b5061038f61063e366004614389565b611bdc565b34801561064f57600080fd5b50610342611c4c565b34801561066457600080fd5b5061038f610673366004614952565b611c5e565b34801561068457600080fd5b5061038f61069336600461498b565b611c6d565b3480156106a457600080fd5b5061038f6106b336600461476e565b611d5a565b3480156106c457600080fd5b5061038f6106d33660046149a8565b611e1e565b3480156106e457600080fd5b506004546001600160a01b03166105df565b34801561070257600080fd5b5061071661071136600461416c565b611f26565b604080519384526020840192909252908201526060016102f4565b34801561073d57600080fd5b50610490611f59565b34801561075257600080fd5b5061038f6107613660046142a4565b611fb0565b61038f610774366004614389565b612028565b34801561078557600080fd5b50600f546010546011546012546013546014546015546107be966001600160a01b03908116968116958116948116938116928116911687565b604080516001600160a01b039889168152968816602088015294871694860194909452918516606085015284166080840152831660a083015290911660c082015260e0016102f4565b34801561081357600080fd5b5061038f610822366004614389565b6120f1565b34801561083357600080fd5b50610342612161565b34801561084857600080fd5b5061031d6108573660046149c0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b34801561089157600080fd5b5061038f6108a03660046149ee565b612173565b3480156108b157600080fd5b5061038f6108c036600461498b565b6121fa565b3480156108d157600080fd5b5061038f6108e0366004614a57565b6122d9565b60006001600160a01b0383166109685760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201527f65726f206164647265737300000000000000000000000000000000000000000060648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006001600160e01b031982167f2a55205a0000000000000000000000000000000000000000000000000000000014806109cc57506109cc8261235e565b92915050565b6060600560000180546109e490614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1090614a8c565b8015610a5d5780601f10610a3257610100808354040283529160200191610a5d565b820191906000526020600020905b815481529060010190602001808311610a4057829003601f168201915b5050505050905090565b606060028054610a7690614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa290614a8c565b8015610aef5780601f10610ac457610100808354040283529160200191610aef565b820191906000526020600020905b815481529060010190602001808311610ad257829003601f168201915b50505050509050919050565b6004546001600160a01b0316336001600160a01b031614610b605760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b8160168581548110610b7457610b74614ac1565b90600052602060002001541115610bb7576040517f1d77a89900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600e8581548110610bcb57610bcb614ac1565b90600052602060002090600302016000018190555081600e8581548110610bf457610bf4614ac1565b90600052602060002090600302016001018190555080600e8581548110610c1d57610c1d614ac1565b90600052602060002090600302016002018190555050505050565b6004546001600160a01b0316336001600160a01b031614610c9d5760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b323314610cbd57604051633ebb273b60e21b815260040160405180910390fd5b8460005b81811015610fc1576000868683818110610cdd57610cdd614ac1565b9050602002810190610cef9190614ad7565b9050905060005b81811015610ec05760006016898986818110610d1457610d14614ac1565b9050602002810190610d269190614ad7565b84818110610d3657610d36614ac1565b9050602002013581548110610d4d57610d4d614ac1565b90600052602060002001549050600e898986818110610d6e57610d6e614ac1565b9050602002810190610d809190614ad7565b84818110610d9057610d90614ac1565b9050602002013581548110610da757610da7614ac1565b906000526020600020906003020160010154878786818110610dcb57610dcb614ac1565b9050602002810190610ddd9190614ad7565b84818110610ded57610ded614ac1565b9050602002013582610dff9190614b37565b1115610e1e57604051638a164f6360e01b815260040160405180910390fd5b868685818110610e3057610e30614ac1565b9050602002810190610e429190614ad7565b83818110610e5257610e52614ac1565b90506020020135810190508060168a8a87818110610e7257610e72614ac1565b9050602002810190610e849190614ad7565b85818110610e9457610e94614ac1565b9050602002013581548110610eab57610eab614ac1565b60009182526020909120015550600101610cf6565b50610fb8898984818110610ed657610ed6614ac1565b9050602002016020810190610eeb919061498b565b888885818110610efd57610efd614ac1565b9050602002810190610f0f9190614ad7565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a9250899150879050818110610f5557610f55614ac1565b9050602002810190610f679190614ad7565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080518082019091526002815261060f60f31b602082015291506123f99050565b50600101610cc1565b5050505050505050565b6004546001600160a01b0316336001600160a01b0316146110305760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b600980549115156101000261ff0019909216919091179055565b32331461106a57604051633ebb273b60e21b815260040160405180910390fd5b82421061108a57604051630819bdcd60e01b815260040160405180910390fd5b6040805130606090811b6bffffffffffffffffffffffff1990811660208085019190915233831b821660348501528b831b82166048850152918a901b16605c830152607082018890526090820187905260b08083018790528351808403909101815260d0830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060f084015261010c8084018290528451808503909101815261012c9093019093528151910120600090601154604080516020601f88018190048102820181019092528681529293506001600160a01b03909116916111949184919088908890819084018382808284376000920191909152506125ce92505050565b6001600160a01b0316146111bb57604051631648fd0160e01b815260040160405180910390fd5b6111e28989898960405180604001604052806002815260200161060f60f31b815250612173565b505050505050505050565b601681815481106111fd57600080fd5b600091825260209091200154905081565b601554600d546001600160a01b0390911690600090612710906112319085614b4f565b61123b9190614b6e565b90509250929050565b6001600160a01b03851633148061126057506112608533610857565b6112d25760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f742060448201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000606482015260840161095f565b6112df85858585856125ea565b5050505050565b6060815183511461135f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e67746860448201527f206d69736d617463680000000000000000000000000000000000000000000000606482015260840161095f565b6000835167ffffffffffffffff81111561137b5761137b6143ab565b6040519080825280602002602001820160405280156113a4578160200160208202803683370190505b50905060005b845181101561141c576113ef8582815181106113c8576113c8614ac1565b60200260200101518583815181106113e2576113e2614ac1565b60200260200101516108e5565b82828151811061140157611401614ac1565b602090810291909101015261141581614b90565b90506113aa565b509392505050565b60095460ff1661144757604051639d7da54560e01b815260040160405180910390fd5b32331461146757604051633ebb273b60e21b815260040160405180910390fd5b82421061148757604051630819bdcd60e01b815260040160405180910390fd5b6040805130606090811b6bffffffffffffffffffffffff199081166020808501919091523390921b16603483015260488201899052606882018890526088820187905260a8820186905260c88083018b90528351808403909101815260e8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a333200000000610108840152610124808401829052845180850390910181526101449093019093528151910120600090601154604080516020601f88018190048102820181019092528681529293506001600160a01b039091169161158c9184919088908890819084018382808284376000920191909152506125ce92505050565b6001600160a01b0316146115b357604051631648fd0160e01b815260040160405180910390fd5b6111e2898989612856565b6060600e805480602002602001604051908101604052809291908181526020016000905b8282101561163257838290600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050815260200190600101906115e2565b50505050905090565b6004546001600160a01b0316336001600160a01b0316146116a05760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b60098054911515620100000262ff000019909216919091179055565b6004546001600160a01b0316336001600160a01b0316146117215760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b61172d60058585613f80565b506112df60068383613f80565b6004546001600160a01b0316336001600160a01b03161461179f5760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b60005b8181101561183f576016805460018101825560009182527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890155600e8383838181106117f0576117f0614ac1565b83546001810185556000948552602090942060609091029290920192600302909101905061183582828135815560208201356001820155604082013560028201555050565b50506001016117a2565b505050565b6001600160a01b03831633148061186057506118608333610857565b6118be5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161095f565b61183f838383612b10565b6003546001600160a01b031633146119235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161095f565b61192d6000612d65565b565b600f546001600160a01b0316331461195a57604051631648fd0160e01b815260040160405180910390fd5b600f5461192d906001600160a01b0316612db7565b60058054819061197e90614a8c565b80601f01602080910402602001604051908101604052809291908181526020018280546119aa90614a8c565b80156119f75780601f106119cc576101008083540402835291602001916119f7565b820191906000526020600020905b8154815290600101906020018083116119da57829003601f168201915b505050505090806001018054611a0c90614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3890614a8c565b8015611a855780601f10611a5a57610100808354040283529160200191611a85565b820191906000526020600020905b815481529060010190602001808311611a6857829003601f168201915b505050505090806002018054611a9a90614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054611ac690614a8c565b8015611b135780601f10611ae857610100808354040283529160200191611b13565b820191906000526020600020905b815481529060010190602001808311611af657829003601f168201915b505050505090806003018054611b2890614a8c565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5490614a8c565b8015611ba15780601f10611b7657610100808354040283529160200191611ba1565b820191906000526020600020905b815481529060010190602001808311611b8457829003601f168201915b505050506004830154600584015460068501546007860154600890960154949560ff808516966101008604821696506201000090950416938b565b6004546001600160a01b0316336001600160a01b031614611c415760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b600c91909155600d55565b6060600560010180546109e490614a8c565b611c69338383612e09565b5050565b6004546001600160a01b0316336001600160a01b031614611cd25760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b6001600160a01b038116611d4e5760405162461bcd60e51b815260206004820152602f60248201527f4f776e61626c653a206e657720636f6e7472616374206f776e6572206973207460448201527f6865207a65726f20616464726573730000000000000000000000000000000000606482015260840161095f565b611d5781612db7565b50565b6004546001600160a01b0316336001600160a01b031614611dbf5760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b611dcb60078585613f80565b50611dd860088383613f80565b50611e1882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612efe92505050565b50505050565b6004546001600160a01b0316336001600160a01b031614611e835760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b600f546001600160a01b0316611e9c602083018361498b565b6001600160a01b031614611edc576040517f9598453c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611eec604082016020830161498b565b6010546001600160a01b03908116911614611f1957611f19611f14604083016020840161498b565b612d65565b80600f61183f8282614bab565b600e8181548110611f3657600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b60606016805480602002602001604051908101604052809291908181526020018280548015610a5d57602002820191906000526020600020905b815481526020019060010190808311611f93575050505050905090565b6004546001600160a01b0316336001600160a01b0316146120155760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b6009805460ff1916911515919091179055565b60095460ff1661204b57604051639d7da54560e01b815260040160405180910390fd5b32331461206b57604051633ebb273b60e21b815260040160405180910390fd5b600a54158061207b5750600a5442105b156120b2576040517fdd4e010600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600e84815481106120c8576120c8614ac1565b9060005260206000209060030201600001546120e49190614b4f565b905061183f838383612856565b6004546001600160a01b0316336001600160a01b0316146121565760405162461bcd60e51b815260206004820152602b6024820152600080516020614ee783398151915260448201526a30b1ba1036b0b730b3b2b960a91b606482015260840161095f565b600a91909155600b55565b6060600560020180546109e490614a8c565b6001600160a01b03851633148061218f575061218f8533610857565b6121ed5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161095f565b6112df8585858585612f11565b6003546001600160a01b031633146122545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161095f565b6001600160a01b0381166122d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161095f565b611d5781612d65565b6001600160a01b0383163314806122f557506122f58333610857565b6123535760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161095f565b61183f8383836130bf565b60006001600160e01b031982167fd9b67a260000000000000000000000000000000000000000000000000000000014806123c157506001600160e01b031982167f0e89341c00000000000000000000000000000000000000000000000000000000145b806109cc57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146109cc565b6001600160a01b0384166124595760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161095f565b81518351146124bb5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161095f565b336124cb8160008787878761324f565b60005b8451811015612566578381815181106124e9576124e9614ac1565b602002602001015160008087848151811061250657612506614ac1565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020600082825461254e9190614b37565b9091555081905061255e81614b90565b9150506124ce565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516125b7929190614cdc565b60405180910390a46112df81600087878787613508565b60008060006125dd85856136ae565b9150915061141c8161371e565b815183511461264c5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161095f565b6001600160a01b0384166126b05760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161095f565b336126bf81878787878761324f565b60005b84518110156127e85760008582815181106126df576126df614ac1565b6020026020010151905060008583815181106126fd576126fd614ac1565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156127905760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b606482015260840161095f565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906127cd908490614b37565b92505081905550505050806127e190614b90565b90506126c2565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612838929190614cdc565b60405180910390a461284e818787878787613508565b505050505050565b600b541561289957600b544210612899576040517f4c013bd700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000601684815481106128ae576128ae614ac1565b906000526020600020015490506000600e85815481106128d0576128d0614ac1565b90600052602060002090600302016001015490508084836128f19190614b37565b111561291057604051638a164f6360e01b815260040160405180910390fd5b6000600e868154811061292557612925614ac1565b90600052602060002090600302016002015490508060001461297b578085111561297b576040517fe9a8adbf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c546000906127109061298f9087614b4f565b6129999190614b6e565b6012549091506001600160a01b031615612a02576012546013546001600160a01b03918216916129ce918391339116856138d9565b6014546129fc9033906001600160a01b03166129ea858a614d0a565b6001600160a01b0385169291906138d9565b50612aba565b84341015612a3c576040517f7e6fc84600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612a76573d6000803e3d6000fd5b506014546001600160a01b03166108fc612a908388614d0a565b6040518115909202916000818181858888f19350505050158015612ab8573d6000803e3d6000fd5b505b85840193508360168881548110612ad357612ad3614ac1565b9060005260206000200181905550612b0733888860405180604001604052806002815260200161060f60f31b815250613961565b50505050505050565b6001600160a01b038316612b725760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161095f565b8051825114612bd45760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161095f565b6000339050612bf78185600086866040518060200160405280600081525061324f565b60005b8351811015612cf8576000848281518110612c1757612c17614ac1565b602002602001015190506000848381518110612c3557612c35614ac1565b602090810291909101810151600084815280835260408082206001600160a01b038c168352909352919091205490915081811015612cc15760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161095f565b6000928352602083815260408085206001600160a01b038b1686529091529092209103905580612cf081614b90565b915050612bfa565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612d49929190614cdc565b60405180910390a4604080516020810190915260009052611e18565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f5fb4f5c581870540f90f9705018e944972197c5be2aa889f6bb847b6cd2236e190600090a35050565b816001600160a01b0316836001600160a01b03161415612e915760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c2073746174757360448201527f20666f722073656c660000000000000000000000000000000000000000000000606482015260840161095f565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b8051611c69906002906020840190614004565b6001600160a01b038416612f755760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161095f565b336000612f8185613a7b565b90506000612f8e85613a7b565b9050612f9e83898985858961324f565b6000868152602081815260408083206001600160a01b038c168452909152902054858110156130225760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b606482015260840161095f565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061305f908490614b37565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46111e2848a8a8a8a8a613ac6565b6001600160a01b0383166131215760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161095f565b33600061312d84613a7b565b9050600061313a84613a7b565b905061315a8387600085856040518060200160405280600081525061324f565b6000858152602081815260408083206001600160a01b038a168452909152902054848110156131d75760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161095f565b6000868152602081815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052612b07565b604080517fb39e12cf0000000000000000000000000000000000000000000000000000000081529051869186916001600160a01b0380851615929084161591600091309163b39e12cf916004808201926020929091908290030181865afa1580156132be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e29190614d21565b6001600160a01b0386811691161490506000356001600160e01b0319167f1f0f354700000000000000000000000000000000000000000000000000000000148315801561332d575081155b8015613337575082155b8015613341575080155b1561338757600954610100900460ff16613387576040517f8574adcf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009548b9062010000900460ff168061339f576134f8565b6daaeb6d7670e522a718067333cd4e3b156134f8576001600160a01b0382163314156133ca576134f8565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015613419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343d9190614d3e565b80156134c05750604051633185c44d60e21b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561349c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c09190614d3e565b6134f8576040517fede71dcc00000000000000000000000000000000000000000000000000000000815233600482015260240161095f565b5050505050505050505050505050565b6001600160a01b0384163b1561284e5760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061354c9089908990889088908890600401614d5b565b6020604051808303816000875af1925050508015613587575060408051601f3d908101601f1916820190925261358491810190614db9565b60015b61363d57613593614dd6565b806308c379a014156135cd57506135a8614df2565b806135b357506135cf565b8060405162461bcd60e51b815260040161095f9190614159565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e204552433131353560448201527f526563656976657220696d706c656d656e746572000000000000000000000000606482015260840161095f565b6001600160e01b0319811663bc197c8160e01b14612b075760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b606482015260840161095f565b6000808251604114156136e55760208301516040840151606085015160001a6136d987828585613bc2565b94509450505050613717565b82516040141561370f5760208301516040840151613704868383613caf565b935093505050613717565b506000905060025b9250929050565b600081600481111561373257613732614e7c565b141561373b5750565b600181600481111561374f5761374f614e7c565b141561379d5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161095f565b60028160048111156137b1576137b1614e7c565b14156137ff5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161095f565b600381600481111561381357613813614e7c565b141561386c5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161095f565b600481600481111561388057613880614e7c565b1415611d575760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161095f565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611e18908590613d01565b6001600160a01b0384166139c15760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161095f565b3360006139cd85613a7b565b905060006139da85613a7b565b90506139eb8360008985858961324f565b6000868152602081815260408083206001600160a01b038b16845290915281208054879290613a1b908490614b37565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612b0783600089898989613ac6565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613ab557613ab5614ac1565b602090810291909101015292915050565b6001600160a01b0384163b1561284e5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190613b0a9089908990889088908890600401614e92565b6020604051808303816000875af1925050508015613b45575060408051601f3d908101601f19168201909252613b4291810190614db9565b60015b613b5157613593614dd6565b6001600160e01b0319811663f23a6e6160e01b14612b075760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b606482015260840161095f565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613bf95750600090506003613ca6565b8460ff16601b14158015613c1157508460ff16601c14155b15613c225750600090506004613ca6565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613c76573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613c9f57600060019250925050613ca6565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831681613ce560ff86901c601b614b37565b9050613cf387828885613bc2565b935093505050935093915050565b6000613d56826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613de69092919063ffffffff16565b80519091501561183f5780806020019051810190613d749190614d3e565b61183f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161095f565b6060613df58484600085613dff565b90505b9392505050565b606082471015613e775760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161095f565b6001600160a01b0385163b613ece5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161095f565b600080866001600160a01b03168587604051613eea9190614eca565b60006040518083038185875af1925050503d8060008114613f27576040519150601f19603f3d011682016040523d82523d6000602084013e613f2c565b606091505b5091509150613f3c828286613f47565b979650505050505050565b60608315613f56575081613df8565b825115613f665782518084602001fd5b8160405162461bcd60e51b815260040161095f9190614159565b828054613f8c90614a8c565b90600052602060002090601f016020900481019282613fae5760008555613ff4565b82601f10613fc75782800160ff19823516178555613ff4565b82800160010185558215613ff4579182015b82811115613ff4578235825591602001919060010190613fd9565b50614000929150614078565b5090565b82805461401090614a8c565b90600052602060002090601f0160209004810192826140325760008555613ff4565b82601f1061404b57805160ff1916838001178555613ff4565b82800160010185558215613ff4579182015b82811115613ff457825182559160200191906001019061405d565b5b808211156140005760008155600101614079565b6001600160a01b0381168114611d5757600080fd5b600080604083850312156140b557600080fd5b82356140c08161408d565b946020939093013593505050565b6001600160e01b031981168114611d5757600080fd5b6000602082840312156140f657600080fd5b8135613df8816140ce565b60005b8381101561411c578181015183820152602001614104565b83811115611e185750506000910152565b60008151808452614145816020860160208601614101565b601f01601f19169290920160200192915050565b602081526000613df8602083018461412d565b60006020828403121561417e57600080fd5b5035919050565b6000806000806080858703121561419b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008083601f8401126141c957600080fd5b50813567ffffffffffffffff8111156141e157600080fd5b6020830191508360208260051b850101111561371757600080fd5b6000806000806000806060878903121561421557600080fd5b863567ffffffffffffffff8082111561422d57600080fd5b6142398a838b016141b7565b9098509650602089013591508082111561425257600080fd5b61425e8a838b016141b7565b9096509450604089013591508082111561427757600080fd5b5061428489828a016141b7565b979a9699509497509295939492505050565b8015158114611d5757600080fd5b6000602082840312156142b657600080fd5b8135613df881614296565b60008083601f8401126142d357600080fd5b50813567ffffffffffffffff8111156142eb57600080fd5b60208301915083602082850101111561371757600080fd5b600080600080600080600060c0888a03121561431e57600080fd5b87356143298161408d565b965060208801356143398161408d565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff81111561436a57600080fd5b6143768a828b016142c1565b989b979a50959850939692959293505050565b6000806040838503121561439c57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff811182821017156143e7576143e76143ab565b6040525050565b600067ffffffffffffffff821115614408576144086143ab565b5060051b60200190565b600082601f83011261442357600080fd5b81356020614430826143ee565b60405161443d82826143c1565b83815260059390931b850182019282810191508684111561445d57600080fd5b8286015b848110156144785780358352918301918301614461565b509695505050505050565b600082601f83011261449457600080fd5b813567ffffffffffffffff8111156144ae576144ae6143ab565b6040516144c5601f8301601f1916602001826143c1565b8181528460208386010111156144da57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561450f57600080fd5b853561451a8161408d565b9450602086013561452a8161408d565b9350604086013567ffffffffffffffff8082111561454757600080fd5b61455389838a01614412565b9450606088013591508082111561456957600080fd5b61457589838a01614412565b9350608088013591508082111561458b57600080fd5b5061459888828901614483565b9150509295509295909350565b600080604083850312156145b857600080fd5b823567ffffffffffffffff808211156145d057600080fd5b818501915085601f8301126145e457600080fd5b813560206145f1826143ee565b6040516145fe82826143c1565b83815260059390931b850182019282810191508984111561461e57600080fd5b948201945b838610156146455785356146368161408d565b82529482019490820190614623565b9650508601359250508082111561465b57600080fd5b5061466885828601614412565b9150509250929050565b600081518084526020808501945080840160005b838110156146a257815187529582019590820190600101614686565b509495945050505050565b602081526000613df86020830184614672565b600080600080600080600060c0888a0312156146db57600080fd5b873596506020880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff81111561436a57600080fd5b602080825282518282018190526000919060409081850190868401855b828110156147615781518051855286810151878601528501518585015260609093019290850190600101614732565b5091979650505050505050565b6000806000806040858703121561478457600080fd5b843567ffffffffffffffff8082111561479c57600080fd5b6147a8888389016142c1565b909650945060208701359150808211156147c157600080fd5b506147ce878288016142c1565b95989497509550505050565b600080602083850312156147ed57600080fd5b823567ffffffffffffffff8082111561480557600080fd5b818501915085601f83011261481957600080fd5b81358181111561482857600080fd5b86602060608302850101111561483d57600080fd5b60209290920196919550909350505050565b60008060006060848603121561486457600080fd5b833561486f8161408d565b9250602084013567ffffffffffffffff8082111561488c57600080fd5b61489887838801614412565b935060408601359150808211156148ae57600080fd5b506148bb86828701614412565b9150509250925092565b60006101608083526148d98184018f61412d565b905082810360208401526148ed818e61412d565b90508281036040840152614901818d61412d565b90508281036060840152614915818c61412d565b9915156080840152505095151560a087015293151560c086015260e085019290925261010084015261012083015261014090910152949350505050565b6000806040838503121561496557600080fd5b82356149708161408d565b9150602083013561498081614296565b809150509250929050565b60006020828403121561499d57600080fd5b8135613df88161408d565b600060e082840312156149ba57600080fd5b50919050565b600080604083850312156149d357600080fd5b82356149de8161408d565b915060208301356149808161408d565b600080600080600060a08688031215614a0657600080fd5b8535614a118161408d565b94506020860135614a218161408d565b93506040860135925060608601359150608086013567ffffffffffffffff811115614a4b57600080fd5b61459888828901614483565b600080600060608486031215614a6c57600080fd5b8335614a778161408d565b95602085013595506040909401359392505050565b600181811c90821680614aa057607f821691505b602082108114156149ba57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112614aee57600080fd5b83018035915067ffffffffffffffff821115614b0957600080fd5b6020019150600581901b360382131561371757600080fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115614b4a57614b4a614b21565b500190565b6000816000190483118215151615614b6957614b69614b21565b500290565b600082614b8b57634e487b7160e01b600052601260045260246000fd5b500490565b6000600019821415614ba457614ba4614b21565b5060010190565b8135614bb68161408d565b81546001600160a01b0319166001600160a01b038216178255506020820135614bde8161408d565b6001820180546001600160a01b0319166001600160a01b038316179055506040820135614c0a8161408d565b6002820180546001600160a01b0319166001600160a01b038316179055506060820135614c368161408d565b6003820180546001600160a01b0319166001600160a01b038316179055506080820135614c628161408d565b6004820180546001600160a01b0319166001600160a01b0383161790555060a0820135614c8e8161408d565b6005820180546001600160a01b0319166001600160a01b0383161790555060c0820135614cba8161408d565b6006820180546001600160a01b0319166001600160a01b038316179055505050565b604081526000614cef6040830185614672565b8281036020840152614d018185614672565b95945050505050565b600082821015614d1c57614d1c614b21565b500390565b600060208284031215614d3357600080fd5b8151613df88161408d565b600060208284031215614d5057600080fd5b8151613df881614296565b60006001600160a01b03808816835280871660208401525060a06040830152614d8760a0830186614672565b8281036060840152614d998186614672565b90508281036080840152614dad818561412d565b98975050505050505050565b600060208284031215614dcb57600080fd5b8151613df8816140ce565b600060033d1115614def5760046000803e5060005160e01c5b90565b600060443d1015614e005790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715614e3057505050505090565b8285019150815181811115614e485750505050505090565b843d8701016020828501011115614e625750505050505090565b614e71602082860101876143c1565b509095945050505050565b634e487b7160e01b600052602160045260246000fd5b60006001600160a01b03808816835280871660208401525084604083015283606083015260a06080830152613f3c60a083018461412d565b60008251614edc818460208701614101565b919091019291505056fe4f776e61626c653a2063616c6c6572206973206e6f742074686520636f6e7472a2646970667358221220e4aae5a5bef4fe4849241f8565f315b43f75b464a178ddb0656664ecc3df2eb864736f6c634300080a0033
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.