ERC-721
Overview
Max Total Supply
100 S&C
Holders
81
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 S&CLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ExampleToken
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.11;import { ERC721SeaDrop } from "../src/ERC721SeaDrop.sol";import "openzeppelin-contracts/contracts/utils/Strings.sol";/*** @notice Example token with on-chain metadata that is compatible* with SeaDrop.*/contract ExampleToken is ERC721SeaDrop {/// @notice Store the int representation of this address as a/// seed for its tokens' randomized output.uint160 private immutable thisUintAddress = uint160(address(this));/*** @notice Deploy the token contract with its name, symbol,* administrator, and allowed SeaDrop addresses.*/constructor(string memory name,string memory symbol,address administrator,address[] memory allowedSeaDrop) ERC721SeaDrop(name, symbol, administrator, allowedSeaDrop) {}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.11;import {IERC721SeaDrop,IERC721ContractMetadata} from "./interfaces/IERC721SeaDrop.sol";import {ERC721ContractMetadata,IERC721ContractMetadata} from "./ERC721ContractMetadata.sol";import { ERC721A } from "ERC721A/ERC721A.sol";import { TwoStepAdministered } from "utility-contracts/TwoStepAdministered.sol";import {IERC721} from "openzeppelin-contracts/contracts/token/ERC721/IERC721.sol";import {IERC165} from "openzeppelin-contracts/contracts/utils/introspection/IERC165.sol";import { SeaDrop } from "./SeaDrop.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)pragma solidity ^0.8.0;/*** @dev String operations.*/library Strings {bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";uint8 private constant _ADDRESS_LENGTH = 20;/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {// 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++;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.11;import {IERC721ContractMetadata} from "../interfaces/IERC721ContractMetadata.sol";import {AllowListData,PublicDrop,TokenGatedDropStage} from "../lib/SeaDropStructs.sol";import {IERC165} from "openzeppelin-contracts/contracts/utils/introspection/IERC165.sol";interface IERC721SeaDrop is IERC721ContractMetadata, IERC165 {/*** @dev Revert with an error if a contract other than an allowed* SeaDrop address calls an update function.*/error OnlySeaDrop();/*** @dev Emit an event when allowed SeaDrop contracts are updated.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.11;import { ERC721A } from "ERC721A/ERC721A.sol";import { MaxMintable } from "utility-contracts/MaxMintable.sol";import {TwoStepAdministered,TwoStepOwnable} from "utility-contracts/TwoStepAdministered.sol";import { AllowList } from "utility-contracts/AllowList.sol";import { Ownable } from "openzeppelin-contracts/contracts/access/Ownable.sol";import {ECDSA} from "openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol";import {ConstructorInitializable} from "utility-contracts/ConstructorInitializable.sol";import {IERC721ContractMetadata
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.0// Creator: Chiru Labspragma solidity ^0.8.4;import './IERC721A.sol';/*** @dev Interface of ERC721 token receiver.*/interface ERC721A__IERC721Receiver {function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data) external returns (bytes4);}/*** @title ERC721A** @dev Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721)* Non-Fungible Token Standard, including the Metadata extension.* Optimized for lower gas during batch mints.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.8.0;import {TwoStepOwnable} from "utility-contracts/TwoStepOwnable.sol";contract TwoStepAdministered is TwoStepOwnable {event AdministratorUpdated(address indexed previousAdministrator,address indexed newAdministrator);event PotentialAdministratorUpdated(address newPotentialAdministrator);error OnlyAdministrator();error OnlyOwnerOrAdministrator();error NotNextAdministrator();error NewAdministratorIsZeroAddress();address public administrator;address public potentialAdministrator;modifier onlyAdministrator() virtual {if (msg.sender != administrator) {revert OnlyAdministrator();}_;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol)pragma solidity ^0.8.0;import "../../utils/introspection/IERC165.sol";/*** @dev Required interface of an ERC721 compliant contract.*/interface IERC721 is IERC165 {/*** @dev Emitted when `tokenId` token is transferred from `from` to `to`.*/event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);/*** @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.*/event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);/*** @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.*/event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
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: MITpragma solidity ^0.8.11;import { ISeaDrop } from "./interfaces/ISeaDrop.sol";import {AllowListData,MintParams,PublicDrop,TokenGatedDropStage,TokenGatedMintParams} from "./lib/SeaDropStructs.sol";import { IERC721SeaDrop } from "./interfaces/IERC721SeaDrop.sol";import { ERC20, SafeTransferLib } from "solmate/utils/SafeTransferLib.sol";import { MerkleProofLib } from "solady/utils/MerkleProofLib.sol";import {IERC721} from "openzeppelin-contracts/contracts/token/ERC721/IERC721.sol";import {IERC165} from "openzeppelin-contracts/contracts/utils/introspection/IERC165.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.11;import {AllowListData,MintParams,PublicDrop,TokenGatedDropStage,TokenGatedMintParams} from "../lib/SeaDropStructs.sol";import { SeaDropErrorsAndEvents } from "../lib/SeaDropErrorsAndEvents.sol";interface ISeaDrop is SeaDropErrorsAndEvents {/*** @notice Mint a public drop.** @param nftContract The nft contract to mint.* @param feeRecipient The fee recipient.* @param minter The mint recipient.* @param quantity The number of tokens to mint.*/function mintPublic(address nftContract,address feeRecipient,address minter,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.11;import { PublicDrop, TokenGatedDropStage } from "./SeaDropStructs.sol";interface SeaDropErrorsAndEvents {/*** @dev Revert with an error if the drop stage is not active.*/error NotActive(uint256 currentTimestamp,uint256 startTimestamp,uint256 endTimestamp);/*** @dev Revert with an error if the mint quantity exceeds the max allowed* per transaction.*/error MintQuantityExceedsMaxPerTransaction(uint256 quantity, uint256 allowed);/*** @dev Revert with an error if the mint quantity exceeds the max allowed* to be minted per wallet.*/error MintQuantityExceedsMaxMintedPerWallet(uint256 total, uint256 allowed);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.11;/*** @notice A struct defining public drop data.* Designed to fit efficiently in one storage slot.** @param mintPrice The mint price per token.* (Up to 1.2m of native token, e.g.: ETH, MATIC)* @param startTime The start time, ensure this is not zero.* @param maxMintsPerWallet Maximum total number of mints a user is* allowed.* @param feeBps Fee out of 10,000 basis points to be collected.* @param restrictFeeRecipients If false, allow any fee recipient;* if true, check fee recipient is allowed.*/struct PublicDrop {uint80 mintPrice; // 80/256 bitsuint64 startTime; // 144/256 bitsuint40 maxMintsPerWallet; // 184/256 bitsuint16 feeBps; // 200/256 bitsbool restrictFeeRecipients; // 208/256 bits}/*** @notice Stages from dropURI are strictly for front-end consumption,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.11;interface IERC721ContractMetadata {/*** @dev Emit an event when the max token supply is updated.*/event MaxSupplyUpdated(uint256 newMaxSupply);/*** @dev Emit an event with the previous and new provenance hash after* being updated.*/event ProvenanceHashUpdated(bytes32 previousHash, bytes32 newHash);/*** @dev Emit an event when the URI for the collection-level metadata* is updated.*/event ContractURIUpdated(string newContractURI);/*** @dev Emit an event for partial reveals/updates.* Batch update implementation should be left to contract.** @param startTokenId The start token id.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.8.4;import {TwoStepOwnable} from "./TwoStepOwnable.sol";///@notice Ownable contract with restrictions on how many times an address can mintabstract contract MaxMintable is TwoStepOwnable {uint256 public maxMintsPerWallet;error MaxMintedForWallet();constructor(uint256 _maxMintsPerWallet) {maxMintsPerWallet = _maxMintsPerWallet;}modifier checkMaxMintedForWallet(uint256 quantity) {uint256 numMinted = _numberMinted(msg.sender);if (numMinted + quantity > maxMintsPerWallet) {revert MaxMintedForWallet();}_;}///@notice set maxMintsPerWallet. OnlyOwnerfunction setMaxMintsPerWallet(uint256 maxMints) public onlyOwner {maxMintsPerWallet = maxMints;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.8.4;import {TwoStepOwnable} from "./TwoStepOwnable.sol";/*** @notice Smart contract that verifies and tracks allow list redemptions against a configurable Merkle root, up to a* max number configured at deploy*/contract AllowList is TwoStepOwnable {bytes32 public merkleRoot;error NotAllowListed();///@notice Checks if msg.sender is included in AllowList, revert otherwise///@param proof Merkle proofmodifier onlyAllowListed(bytes32[] calldata proof) {if (!isAllowListed(proof, msg.sender)) {revert NotAllowListed();}_;}constructor(bytes32 _merkleRoot) {merkleRoot = _merkleRoot;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.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) {
12345678910111213141516171819// SPDX-License-Identifier: MITpragma solidity >=0.8.4;/*** @author emo.eth* @notice Abstract smart contract that provides an onlyUninitialized modifier which only allows calling when* from within a constructor of some sort, whether directly instantiating an inherting contract,* or when delegatecalling from a proxy*/abstract contract ConstructorInitializable {error AlreadyInitialized();modifier onlyConstructor() {if (address(this).code.length != 0) {revert AlreadyInitialized();}_;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.0// Creator: Chiru Labspragma solidity ^0.8.4;/*** @dev Interface of ERC721A.*/interface IERC721A {/*** The caller must own the token or be an approved operator.*/error ApprovalCallerNotOwnerNorApproved();/*** The token does not exist.*/error ApprovalQueryForNonexistentToken();/*** The caller cannot approve to their own address.*/error ApproveToCaller();/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.8.4;import {ConstructorInitializable} from "./ConstructorInitializable.sol";/**@notice A two-step extension of Ownable, where the new owner must claim ownership of the contract after owner initiates transferOwner can cancel the transfer at any point before the new owner claims ownership.Helpful in guarding against transferring ownership to an address that is unable to act as the Owner.*/abstract contract TwoStepOwnable is ConstructorInitializable {address public owner;event OwnershipTransferred(address indexed previousOwner,address indexed newOwner);address internal potentialOwner;event PotentialOwnerUpdated(address newPotentialAdministrator);error NewOwnerIsZeroAddress();error NotNextOwner();error OnlyOwner();
1234567891011121314151617181920212223242526// SPDX-License-Identifier: AGPL-3.0-onlypragma solidity >=0.8.0;import {ERC20} from "../tokens/ERC20.sol";/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values./// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)/// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer./// @dev Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller.library SafeTransferLib {/*//////////////////////////////////////////////////////////////ETH OPERATIONS//////////////////////////////////////////////////////////////*/function safeTransferETH(address to, uint256 amount) internal {bool success;assembly {// Transfer the ETH and store if it succeeded or not.success := call(gas(), to, amount, 0, 0, 0, 0)}require(success, "ETH_TRANSFER_FAILED");}/*//////////////////////////////////////////////////////////////
12345678910111213141516171819202122232425// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Gas optimized verification of proof of inclusion for a leaf in a Merkle tree./// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/MerkleProofLib.sol)/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/MerkleProofLib.sol)/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/MerkleProof.sol)library MerkleProofLib {function verify(bytes32[] calldata proof,bytes32 root,bytes32 leaf) internal pure returns (bool isValid) {assembly {if proof.length {// Left shift by 5 is equivalent to multiplying by 0x20.let end := add(proof.offset, shl(5, proof.length))// Initialize `offset` to the offset of `proof` in the calldata.let offset := proof.offset// Iterate over proof elements to compute root hash.// prettier-ignorefor {} 1 {} {// Slot of `leaf` in scratch space.// If the condition is true: 0x20, otherwise: 0x00.let scratch := shl(5, gt(leaf, calldataload(offset)))
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: AGPL-3.0-onlypragma solidity >=0.8.0;/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation./// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.abstract contract ERC20 {/*//////////////////////////////////////////////////////////////EVENTS//////////////////////////////////////////////////////////////*/event Transfer(address indexed from, address indexed to, uint256 amount);event Approval(address indexed owner, address indexed spender, uint256 amount);/*//////////////////////////////////////////////////////////////METADATA STORAGE//////////////////////////////////////////////////////////////*/string public name;string public symbol;uint8 public immutable decimals;
1234567891011121314151617181920212223242526{"remappings": ["ERC721A/=lib/ERC721A/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","script/=script/","seadrop/=src/","solady/=lib/solady/src/","solmate/=lib/solmate/src/","src/=src/","test/=test/","utility-contracts/=lib/utility-contracts/src/","src/=src/","test/=test/","script/=script/"],"optimizer": {"enabled": true,"runs": 200},"metadata": {"bytecodeHash": "ipfs"},"outputSelection": {
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"administrator","type":"address"},{"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"name":"AllowListRedeemed","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"CreatorPayoutAddressCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"FeeRecipientCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"FeeRecipientNotAllowed","type":"error"},{"inputs":[{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"want","type":"uint256"}],"name":"IncorrectPayment","type":"error"},{"inputs":[],"name":"InvalidProof","type":"error"},{"inputs":[{"internalType":"address","name":"recoveredSigner","type":"address"}],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"allowed","type":"uint256"}],"name":"MintQuantityExceedsMaxMintedPerWallet","type":"error"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"allowed","type":"uint256"}],"name":"MintQuantityExceedsMaxPerTransaction","type":"error"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"name":"MintQuantityExceedsMaxSupply","type":"error"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"maxTokenSupplyForStage","type":"uint256"}],"name":"MintQuantityExceedsMaxTokenSupplyForStage","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"NewAdministratorIsZeroAddress","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint256","name":"startTimestamp","type":"uint256"},{"internalType":"uint256","name":"endTimestamp","type":"uint256"}],"name":"NotActive","type":"error"},{"inputs":[],"name":"NotNextAdministrator","type":"error"},{"inputs":[],"name":"NotNextOwner","type":"error"},{"inputs":[],"name":"OnlyAdministrator","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"OnlyIERC721SeaDrop","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"inputs":[],"name":"OnlyOwnerOrAdministrator","type":"error"},{"inputs":[],"name":"OnlySeaDrop","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"ProvenanceHashCannotBeSetAfterMintStarted","type":"error"},{"inputs":[{"internalType":"address","name":"nftContract","type":"address"},{"internalType":"address","name":"allowedNftContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"TokenGatedNotTokenOwner","type":"error"},{"inputs":[{"internalType":"address","name":"nftContract","type":"address"},{"internalType":"address","name":"allowedNftContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"TokenGatedTokenIdAlreadyRedeemed","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdministrator","type":"address"},{"indexed":true,"internalType":"address","name":"newAdministrator","type":"address"}],"name":"AdministratorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"bytes32","name":"previousMerkleRoot","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newMerkleRoot","type":"bytes32"},{"indexed":false,"internalType":"string[]","name":"publicKeyURI","type":"string[]"},{"indexed":false,"internalType":"string","name":"allowListURI","type":"string"}],"name":"AllowListUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"address","name":"feeRecipient","type":"address"},{"indexed":true,"internalType":"bool","name":"allowed","type":"bool"}],"name":"AllowedFeeRecipientUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"name":"AllowedSeaDropUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"baseURI","type":"string"}],"name":"BaseURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"newContractURI","type":"string"}],"name":"ContractURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"address","name":"newPayoutAddress","type":"address"}],"name":"CreatorPayoutAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":false,"internalType":"string","name":"newDropURI","type":"string"}],"name":"DropURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"MaxSupplyUpdated","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":false,"internalType":"address","name":"newPotentialAdministrator","type":"address"}],"name":"PotentialAdministratorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newPotentialAdministrator","type":"address"}],"name":"PotentialOwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"previousHash","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"newHash","type":"bytes32"}],"name":"ProvenanceHashUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint64","name":"startTime","type":"uint64"},{"internalType":"uint40","name":"maxMintsPerWallet","type":"uint40"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"indexed":false,"internalType":"struct PublicDrop","name":"publicDrop","type":"tuple"}],"name":"PublicDropUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":true,"internalType":"address","name":"feeRecipient","type":"address"},{"indexed":false,"internalType":"address","name":"payer","type":"address"},{"indexed":false,"internalType":"uint256","name":"quantityMinted","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unitMintPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeBps","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dropStageIndex","type":"uint256"}],"name":"SeaDropMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":false,"internalType":"address[]","name":"oldSigners","type":"address[]"},{"indexed":false,"internalType":"address[]","name":"newSigners","type":"address[]"}],"name":"SignersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftContract","type":"address"},{"indexed":true,"internalType":"address","name":"allowedNftToken","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint8","name":"dropStageIndex","type":"uint8"},{"internalType":"uint40","name":"maxTokenSupplyForStage","type":"uint40"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"indexed":false,"internalType":"struct TokenGatedDropStage","name":"dropStage","type":"tuple"}],"name":"TokenGatedDropStageUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"startTokenId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"endTokenId","type":"uint256"}],"name":"TokenURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptAdministration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"administrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelAdministrationTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelOwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"name":"getMintStats","outputs":[{"internalType":"uint256","name":"minterNumMinted","type":"uint256"},{"internalType":"uint256","name":"currentTotalSupply","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mintSeaDrop","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"potentialAdministrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"provenanceHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceAdministration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"startTokenId","type":"uint256"},{"internalType":"uint256","name":"endTokenId","type":"uint256"},{"internalType":"string","name":"","type":"string"}],"name":"setBatchTokenURIs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newContractURI","type":"string"}],"name":"setContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newProvenanceHash","type":"bytes32"}],"name":"setProvenanceHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdministrator","type":"address"}],"name":"transferAdministration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPotentialOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"string[]","name":"publicKeyURIs","type":"string[]"},{"internalType":"string","name":"allowListURI","type":"string"}],"internalType":"struct AllowListData","name":"allowListData","type":"tuple"}],"name":"updateAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"updateAllowedFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"name":"updateAllowedSeaDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"payoutAddress","type":"address"}],"name":"updateCreatorPayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"string","name":"dropURI","type":"string"}],"name":"updateDropURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint64","name":"startTime","type":"uint64"},{"internalType":"uint40","name":"maxMintsPerWallet","type":"uint40"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct PublicDrop","name":"publicDrop","type":"tuple"}],"name":"updatePublicDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"uint16","name":"feeBps","type":"uint16"}],"name":"updatePublicDropFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address[]","name":"newSigners","type":"address[]"}],"name":"updateSigners","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"allowedNftToken","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint8","name":"dropStageIndex","type":"uint8"},{"internalType":"uint40","name":"maxTokenSupplyForStage","type":"uint40"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct TokenGatedDropStage","name":"dropStage","type":"tuple"}],"name":"updateTokenGatedDrop","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a0604052306080523480156200001557600080fd5b50604051620051323803806200513283398101604081905262000038916200036e565b83838383838383808383600262000050838262000514565b5060036200005f828262000514565b505060008055506200007062000107565b6200007b8162000134565b5050505060005b8151811015620000e257600160106000848481518110620000a757620000a7620005e0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000082565b508051620000f8906011906020840190620001f2565b505050505050505050620005f6565b303b15620001275760405162dc149f60e41b815260040160405180910390fd5b6200013233620001a0565b565b303b15620001545760405162dc149f60e41b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0383169081179091556040516000907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d83122908290a350565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280548282559060005260206000209081019282156200024a579160200282015b828111156200024a57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000213565b50620002589291506200025c565b5090565b5b808211156200025857600081556001016200025d565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620002b457620002b462000273565b604052919050565b600082601f830112620002ce57600080fd5b81516001600160401b03811115620002ea57620002ea62000273565b602062000300601f8301601f1916820162000289565b82815285828487010111156200031557600080fd5b60005b838110156200033557858101830151828201840152820162000318565b83811115620003475760008385840101525b5095945050505050565b80516001600160a01b03811681146200036957600080fd5b919050565b600080600080608085870312156200038557600080fd5b84516001600160401b03808211156200039d57600080fd5b620003ab88838901620002bc565b9550602091508187015181811115620003c357600080fd5b620003d189828a01620002bc565b955050620003e26040880162000351565b9350606087015181811115620003f757600080fd5b8701601f810189136200040957600080fd5b8051828111156200041e576200041e62000273565b8060051b92506200043184840162000289565b818152928201840192848101908b8511156200044c57600080fd5b928501925b848410156200047557620004658462000351565b8252928501929085019062000451565b989b979a50959850505050505050565b600181811c908216806200049a57607f821691505b602082108103620004bb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200050f57600081815260208120601f850160051c81016020861015620004ea5750805b601f850160051c820191505b818110156200050b57828155600101620004f6565b5050505b505050565b81516001600160401b0381111562000530576200053062000273565b620005488162000541845462000485565b84620004c1565b602080601f831160018114620005805760008415620005675750858301515b600019600386901b1c1916600185901b1785556200050b565b600085815260208120601f198616915b82811015620005b15788860151825594840194600190910190840162000590565b5085821015620005d05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b608051614aef62000643600039600081816123c10152818161262e0152818161296901528181612b7501528181612d6001528181612f6e0152818161337b01526133d80152614aef6000f3fe6080604052600436106102725760003560e01c806379ba50971161014f578063b88d4fde116100c1578063d5e7feb81161007a578063d5e7feb814610736578063e8a3d48514610756578063e985e9c51461076b578063f0025d96146107b4578063f2fde38b146107c9578063f53d0a8e146107e957600080fd5b8063b88d4fde14610697578063bbf1ab0c146106b7578063c6ab67a3146106d7578063c780b63d146106ec578063c87b56dd14610701578063d5abeb011461072157600080fd5b8063938e3d7b11610113578063938e3d7b146105ed57806395d89b411461060d5780639794ed4014610622578063998c05d814610637578063a22cb46514610657578063b0c1361a1461067757600080fd5b806379ba50971461053d5780637a05bc8214610552578063840e15d4146105725780638da5cb5b146105ad578063913ee93d146105cd57600080fd5b806348a4c101116101e857806364869dad116101ac57806364869dad146104a057806366251b69146104b35780636c0360eb146104d35780636f8b44b0146104e857806370a0823114610508578063715018a61461052857600080fd5b806348a4c1011461040057806355f804b31461042057806360c308b6146104405780636352211e146104605780636407ab101461048057600080fd5b806318160ddd1161023a57806318160ddd1461034857806323452b9c1461036b57806323b872dd1461038057806329e31c1b146103a05780633680620d146103c057806342842e0e146103e057600080fd5b806301ffc9a71461027757806306fdde03146102ac578063081812fc146102ce578063095ea7b314610306578063099b6bfa14610328575b600080fd5b34801561028357600080fd5b5061029761029236600461349c565b610809565b60405190151581526020015b60405180910390f35b3480156102b857600080fd5b506102c1610876565b6040516102a39190613511565b3480156102da57600080fd5b506102ee6102e9366004613524565b610908565b6040516001600160a01b0390911681526020016102a3565b34801561031257600080fd5b50610326610321366004613559565b61094c565b005b34801561033457600080fd5b50610326610343366004613524565b6109ec565b34801561035457600080fd5b5061035d610a63565b6040519081526020016102a3565b34801561037757600080fd5b50610326610a77565b34801561038c57600080fd5b5061032661039b366004613583565b610ac6565b3480156103ac57600080fd5b506103266103bb366004613607565b610c5f565b3480156103cc57600080fd5b506103266103db366004613659565b610c9a565b3480156103ec57600080fd5b506103266103fb366004613583565b610d7a565b34801561040c57600080fd5b5061032661041b3660046136c6565b610d9a565b34801561042c57600080fd5b5061032661043b36600461370d565b610e72565b34801561044c57600080fd5b5061032661045b366004613792565b610eb9565b34801561046c57600080fd5b506102ee61047b366004613524565b611000565b34801561048c57600080fd5b5061032661049b3660046137c7565b61100b565b6103266104ae366004613559565b6110b6565b3480156104bf57600080fd5b506103266104ce366004613819565b6110f9565b3480156104df57600080fd5b506102c161116f565b3480156104f457600080fd5b50610326610503366004613524565b61117e565b34801561051457600080fd5b5061035d61052336600461384c565b6111c2565b34801561053457600080fd5b50610326611210565b34801561054957600080fd5b50610326611224565b34801561055e57600080fd5b5061032661056d366004613867565b6112a0565b34801561057e57600080fd5b5061059261058d36600461384c565b61134b565b604080519384526020840192909252908201526060016102a3565b3480156105b957600080fd5b506008546102ee906001600160a01b031681565b3480156105d957600080fd5b506103266105e836600461384c565b611387565b3480156105f957600080fd5b5061032661060836600461370d565b61142a565b34801561061957600080fd5b506102c1611471565b34801561062e57600080fd5b50610326611480565b34801561064357600080fd5b506103266106523660046138ac565b6114ef565b34801561066357600080fd5b506103266106723660046138eb565b611632565b34801561068357600080fd5b50610326610692366004613932565b6116c7565b3480156106a357600080fd5b506103266106b23660046139cc565b6117e0565b3480156106c357600080fd5b506103266106d2366004613a8b565b61182a565b3480156106e357600080fd5b50600f5461035d565b3480156106f857600080fd5b506103266118d7565b34801561070d57600080fd5b506102c161071c366004613524565b611944565b34801561072d57600080fd5b50600c5461035d565b34801561074257600080fd5b50600b546102ee906001600160a01b031681565b34801561076257600080fd5b506102c16119c0565b34801561077757600080fd5b50610297610786366004613819565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156107c057600080fd5b506103266119cf565b3480156107d557600080fd5b506103266107e436600461384c565b611a17565b3480156107f557600080fd5b50600a546102ee906001600160a01b031681565b60006001600160e01b031982166301ffc9a760e01b148061083a57506001600160e01b031982166380ac58cd60e01b145b8061085557506001600160e01b03198216632fd0239360e01b145b8061087057506001600160e01b0319821663290d607b60e21b145b92915050565b60606002805461088590613adc565b80601f01602080910402602001604051908101604052809291908181526020018280546108b190613adc565b80156108fe5780601f106108d3576101008083540402835291602001916108fe565b820191906000526020600020905b8154815290600101906020018083116108e157829003601f168201915b5050505050905090565b600061091382611a94565b610930576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600061095782611000565b9050336001600160a01b03821614610990576109738133610786565b610990576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6109f4611abb565b60006109fe610a63565b1115610a1d5760405163e03264af60e01b815260040160405180910390fd5b600f80549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b6000610a726001546000540390565b905090565b610a7f611abb565b600980546001600160a01b0319169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da906020015b60405180910390a1565b6000610ad182611ae6565b9050836001600160a01b0316816001600160a01b031614610b045760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b03881690911417610b5157610b348633610786565b610b5157604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516610b7857604051633a954ecd60e21b815260040160405180910390fd5b8015610b8357600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003610c1557600184016000818152600460205260408120549003610c13576000548114610c135760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b610c67611abb565b604051839085907fa367e77d52123b7db91661964f869e6d260e9050507402788a87ca8ad38687e790600090a350505050565b6008546001600160a01b03163314610cd757600a546001600160a01b03163314610cd7576040516359d9793760e01b815260040160405180910390fd5b6001600160a01b038216600090815260106020526040902054829060ff161515600114610d1757604051635136618d60e11b815260040160405180910390fd5b60405163ebb4a55f60e01b81526001600160a01b0384169063ebb4a55f90610d43908590600401613b7e565b600060405180830381600087803b158015610d5d57600080fd5b505af1158015610d71573d6000803e3d6000fd5b50505050505050565b610d95838383604051806020016040528060008152506117e0565b505050565b600a546001600160a01b03163314610dc8576040516001620aed3360e41b0319815260040160405180910390fd5b6001600160a01b038316600090815260106020526040902054839060ff161515600114610e0857604051635136618d60e11b815260040160405180910390fd5b604051638e7d1e4360e01b81526001600160a01b0384811660048301528315156024830152851690638e7d1e43906044015b600060405180830381600087803b158015610e5457600080fd5b505af1158015610e68573d6000803e3d6000fd5b5050505050505050565b610e7a611abb565b600d610e87828483613ca2565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad8282604051610a57929190613d62565b6008546001600160a01b03163314610ef657600a546001600160a01b03163314610ef6576040516359d9793760e01b815260040160405180910390fd5b60005b601154811015610f585760006010600060118481548110610f1c57610f1c613d76565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600101610ef9565b5060005b81811015610fc157600160106000858585818110610f7c57610f7c613d76565b9050602002016020810190610f91919061384c565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610f5c565b50610fce6011838361340e565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d8282604051610a57929190613d8c565b600061087082611ae6565b6008546001600160a01b0316331461104857600a546001600160a01b03163314611048576040516359d9793760e01b815260040160405180910390fd5b6001600160a01b038316600090815260106020526040902054839060ff16151560011461108857604051635136618d60e11b815260040160405180910390fd5b6040516396751ae960e01b81526001600160a01b038516906396751ae990610e3a9086908690600401613d8c565b3360009081526010602052604090205460ff1615156001146110eb57604051635136618d60e11b815260040160405180910390fd5b6110f58282611b54565b5050565b611101611abb565b6001600160a01b038216600090815260106020526040902054829060ff16151560011461114157604051635136618d60e11b815260040160405180910390fd5b60405163024e71b760e31b81526001600160a01b0383811660048301528416906312738db890602401610d43565b6060600d805461088590613adc565b611186611abb565b600c8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c906020015b60405180910390a150565b60006001600160a01b0382166111eb576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b611218611abb565b6112226000611c52565b565b6009546001600160a01b031633811461125057604051636b7584e760e11b815260040160405180910390fd5b600980546001600160a01b0319169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a161129d81611c52565b50565b6008546001600160a01b031633146112dd57600a546001600160a01b031633146112dd576040516359d9793760e01b815260040160405180910390fd5b6001600160a01b038316600090815260106020526040902054839060ff16151560011461131d57604051635136618d60e11b815260040160405180910390fd5b60405163b957d0cb60e01b81526001600160a01b0385169063b957d0cb90610e3a9086908690600401613d62565b6001600160a01b03811660009081526005602052604080822054901c6001600160401b0316908061137a610a63565b600c549395909450915050565b600a546001600160a01b031633146113b5576040516001620aed3360e41b0319815260040160405180910390fd5b6001600160a01b0381166113dc57604051633536be7f60e21b815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f906020016111b7565b611432611abb565b600e61143f828483613ca2565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051610a57929190613d62565b60606003805461088590613adc565b600a546001600160a01b031633146114ae576040516001620aed3360e41b0319815260040160405180910390fd5b600b80546001600160a01b0319169055604051600081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f90602001610abc565b6114f7611abb565b6001600160a01b038216600090815260106020526040902054829060ff16151560011461153757604051635136618d60e11b815260040160405180910390fd5b604051632f1a98a760e21b81523060048201526000906001600160a01b0385169063bc6a629c9060240160a060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190613e18565b905060006115b536859003850185613e9d565b60608084015161ffff1690820152600160808401526040516336ccc91360e11b81529091506001600160a01b03861690636d999226906115f9908490600401613f0b565b600060405180830381600087803b15801561161357600080fd5b505af1158015611627573d6000803e3d6000fd5b505050505050505050565b336001600160a01b0383160361165b5760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600a546001600160a01b031633146116f5576040516001620aed3360e41b0319815260040160405180910390fd5b6001600160a01b038216600090815260106020526040902054829060ff16151560011461173557604051635136618d60e11b815260040160405180910390fd5b604051632f1a98a760e21b81523060048201526000906001600160a01b0385169063bc6a629c9060240160a060405180830381865afa15801561177c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a09190613e18565b61ffff84166060820152600160808201526040516336ccc91360e11b81529091506001600160a01b03851690636d99922690610e3a908490600401613f0b565b6117eb848484610ac6565b6001600160a01b0383163b156118245761180784848484611ca4565b611824576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6008546001600160a01b0316331461186757600a546001600160a01b03163314611867576040516359d9793760e01b815260040160405180910390fd5b6001600160a01b038316600090815260106020526040902054839060ff1615156001146118a757604051635136618d60e11b815260040160405180910390fd5b604051632efc6ac360e21b81526001600160a01b0385169063bbf1ab0c90610e3a90309087908790600401613f8e565b600a546001600160a01b03163314611905576040516001620aed3360e41b0319815260040160405180910390fd5b600a80546001600160a01b031916905560405160009033907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d83122908390a3565b606061194f82611a94565b6119b75760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840160405180910390fd5b61087082611d90565b6060600e805461088590613adc565b600b546001600160a01b03163381146119fb576040516353bb059b60e01b815260040160405180910390fd5b611a0481612358565b50600b80546001600160a01b0319169055565b611a1f611abb565b6001600160a01b038116611a4657604051633a247dd760e11b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0383169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da906020016111b7565b6000805482108015610870575050600090815260046020526040902054600160e01b161590565b6008546001600160a01b0316331461122257604051635fc483c560e01b815260040160405180910390fd5b600081600054811015611b3b5760008181526004602052604081205490600160e01b82169003611b39575b80600003611b32575060001901600081815260046020526040902054611b11565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b6000805490829003611b795760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114611c2857808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611bf0565b5081600003611c4957604051622e076360e81b815260040160405180910390fd5b60005550505050565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611cd990339089908890889060040161406c565b6020604051808303816000875af1925050508015611d14575060408051601f3d908101601f19168201909252611d119181019061409f565b60015b611d72573d808015611d42576040519150601f19603f3d011682016040523d82523d6000602084013e611d47565b606091505b508051600003611d6a576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6060806000611d9e846123a4565b90506000611dab85612611565b90506000611db88661294c565b905083604051602001611dcb91906140bc565b604051602081830303815290604052935083611de8876001612b58565b604051602001611df9929190614187565b604051602081830303815290604052935083604051602001611e1b91906141b6565b60408051601f19818403018152919052935083611e43611e3c886001614252565b6000612b58565b604051602001611e54929190614187565b604051602081830303815290604052935083604051602001611e76919061426a565b604051602081830303815290604052935083611e9187612d43565b604051602001611ea2929190614187565b604051602081830303815290604052935083604051602001611ec4919061429b565b604051602081830303815290604052935083611edf87612f4e565b604051602001611ef0929190614187565b604051602081830303815290604052935083604051602001611f1291906142ca565b604051602081830303815290604052935083611f2f876001612fad565b604051602001611f40929190614187565b604051602081830303815290604052935083604051602001611f6291906142f1565b604051602081830303815290604052935083611f7d87613215565b604051602001611f8e929190614187565b604051602081830303815290604052935083604051602001611fb09190614317565b60405160208183030381529060405293508383604051602001611fd4929190614187565b60405160208183030381529060405293508382604051602001611ff8929190614187565b6040516020818303038152906040529350838160405160200161201c929190614187565b60405160208183030381529060405293508360405160200161203e9190614342565b60408051601f1981840301815282820190915260168252757b226e616d65223a20225465737420546f6b656e202360501b602083015294508061208088613215565b604051602001612091929190614187565b6040516020818303038152906040529050806040516020016120b3919061436c565b604051602081830303815290604052905080856040516020016120d7929190614187565b6040516020818303038152906040529050806040516020016120f991906144cc565b60405160208183030381529060405290508061211488613215565b604051602001612125929190614187565b6040516020818303038152906040529050806040516020016121479190614533565b60405160208183030381529060405290508061216288612d43565b604051602001612173929190614187565b6040516020818303038152906040529050806040516020016121959190614582565b6040516020818303038152906040529050806121b088612f4e565b6040516020016121c1929190614187565b6040516020818303038152906040529050806040516020016121e391906145d6565b6040516020818303038152906040529050806121fe85613315565b60405160200161220f929190614187565b604051602081830303815290604052905080604051602001612231919061462a565b60405160208183030381529060405290508061224c84613315565b60405160200161225d929190614187565b60405160208183030381529060405290508060405160200161227f919061467d565b60405160208183030381529060405290508061229a83613315565b6040516020016122ab929190614187565b6040516020818303038152906040529050806040516020016122cd91906146ce565b6040516020818303038152906040529050806122e846613215565b6040516020016122f9929190614187565b60405160208183030381529060405290508060405160200161231b9190614721565b60405160208183030381529060405290508060405160200161233d9190614749565b60405160208183030381529060405295505050505050919050565b600a80546001600160a01b0319166001600160a01b03831690811790915560405133907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d8312290600090a350565b606060006123b3836001614252565b6123e6906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166147a4565b90506123f36003826147b8565b1561240e575050604080516020810190915260008152919050565b6040805180820190915260098152683c7265637420783d2760b81b6020820152600061244061012d600185901b6147b8565b9050600061245461012e600286901b6147b8565b9050600061246861012f600387901b6147b8565b9050600061247c61012f600488901b6147b8565b90508461248885613215565b604051602001612499929190614187565b6040516020818303038152906040529450846040516020016124bb91906147cc565b6040516020818303038152906040529450846124d684613215565b6040516020016124e7929190614187565b60405160208183030381529060405294508460405160200161250991906147f5565b60405160208183030381529060405294508461252483613215565b604051602001612535929190614187565b6040516020818303038152906040529450846040516020016125579190614822565b60405160208183030381529060405294508461257282613215565b604051602001612583929190614187565b6040516020818303038152906040529450846040516020016125a59190614850565b6040516020818303038152906040529450846125c2896003612fad565b6040516020016125d3929190614187565b6040516020818303038152906040529450846040516020016125f5919061487d565b60408051601f1981840301815291905298975050505050505050565b60606000612620836001614252565b612653906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166147a4565b90506126606005826147b8565b1561267b575050604080516020810190915260008152919050565b6040805180820190915260118152703c706f6c79676f6e20706f696e74733d2760781b602082015260006126b561012d600185901b6147b8565b905060006126c961012e600286901b6147b8565b905060006126dd61012f600387901b6147b8565b905060006126f1610130600488901b6147b8565b90506000612705610131600589901b6147b8565b9050600061271961013260068a901b6147b8565b90508661272587613215565b604051602001612736929190614187565b60405160208183030381529060405296508660405160200161275891906148a5565b60405160208183030381529060405296508661277386613215565b604051602001612784929190614187565b6040516020818303038152906040529650866040516020016127a691906148ca565b6040516020818303038152906040529650866127c185613215565b6040516020016127d2929190614187565b6040516020818303038152906040529650866040516020016127f491906148a5565b60405160208183030381529060405296508661280f84613215565b604051602001612820929190614187565b60405160208183030381529060405296508660405160200161284291906148ca565b60405160208183030381529060405296508661285d83613215565b60405160200161286e929190614187565b60405160208183030381529060405296508660405160200161289091906148a5565b6040516020818303038152906040529650866128ab82613215565b6040516020016128bc929190614187565b6040516020818303038152906040529650866040516020016128de9190614850565b6040516020818303038152906040529650866128fb8b6005612fad565b60405160200161290c929190614187565b60405160208183030381529060405296508660405160200161292e919061487d565b60408051601f198184030181529190529a9950505050505050505050565b6060600061295b836001614252565b61298e906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166147a4565b905061299b6007826147b8565b156129b6575050604080516020810190915260008152919050565b60408051808201909152600c81526b3c636972636c652063783d2760a01b602082015260006129eb61012c600185901b6147b8565b905060006129ff61012c600286901b6147b8565b90506000612a126096600387901b6147b8565b905083612a1e84613215565b604051602001612a2f929190614187565b604051602081830303815290604052935083604051602001612a5191906148ef565b604051602081830303815290604052935083612a6c83613215565b604051602001612a7d929190614187565b604051602081830303815290604052935083604051602001612a9f9190614919565b604051602081830303815290604052935083612aba82613215565b604051602001612acb929190614187565b604051602081830303815290604052935083604051602001612aed9190614850565b604051602081830303815290604052935083612b0a886007612fad565b604051602001612b1b929190614187565b604051602081830303815290604052935083604051602001612b3d919061487d565b60408051601f19818403018152919052979650505050505050565b60606000612b67846001614252565b612b9a906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166147a4565b6040805180820190915260048152630e4cec4560e31b60208201529091506000600185151514612bcb576000612bce565b607f5b60ff1690506000818260ff612be39190614942565b612bf190600187901b6147b8565b612bfb9190614252565b9050600082612c0b8160ff614942565b612c1990600288901b6147b8565b612c239190614252565b9050600083612c338160ff614942565b612c4190600389901b6147b8565b612c4b9190614252565b905084612c5784613215565b604051602001612c68929190614187565b604051602081830303815290604052945084604051602001612c8a9190614959565b604051602081830303815290604052945084612ca583613215565b604051602001612cb6929190614187565b604051602081830303815290604052945084604051602001612cd89190614959565b604051602081830303815290604052945084612cf382613215565b604051602001612d04929190614187565b604051602081830303815290604052945084604051602001612d26919061497f565b60408051808303601f190181529190529998505050505050505050565b60606000612d52836001614252565b612d85906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166147a4565b9050612d926009826147b8565b600003612dbf57505060408051808201909152600881526711d85c985b5bdb9960c21b6020820152919050565b612dca6008826147b8565b600003612df55750506040805180820190915260068152655461686f6d6160d01b6020820152919050565b612e006007826147b8565b600003612e3157505060408051808201909152600c81526b547265627563686574204d5360a01b6020820152919050565b612e3c6006826147b8565b600003612e7057505060408051808201909152600f81526e2a34b6b2b9902732bb902937b6b0b760891b6020820152919050565b612e7b6005826147b8565b600003612ea757505060408051808201909152600781526647656f7267696160c81b6020820152919050565b612eb26004826147b8565b600003612ee057505060408051808201909152600981526848656c76657469636160b81b6020820152919050565b612eeb6003826147b8565b600003612f1b57505060408051808201909152600b81526a436f7572696572204e657760a81b6020820152919050565b505060408051808201909152600f81526e109c9d5cda0814d8dc9a5c1d081355608a1b6020820152919050565b50919050565b606061087060b4612f60846001614252565b612f93906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166147a4565b612f9d91906147b8565b612fa890600c614252565b613215565b6040805180820190915260058152643334b6361d60d91b602082015260609080612fec612fda8587614252565b612fe5906001614252565b6001612b58565b604051602001612ffd929190614187565b60405160208183030381529060405290508060405160200161301f91906149a4565b60408051601f19818403018152919052905080613052612fa86130428688614252565b61304d906003614252565b61335f565b604051602001613063929190614187565b60405160208183030381529060405290508060405160200161308591906149d7565b60408051601f198184030181529190529050806130a6611e3c866005614252565b6040516020016130b7929190614187565b6040516020818303038152906040529050806040516020016130d99190614a03565b60408051601f1981840301815291905290508061310c612fa86130fc8688614252565b613107906007614252565b6133bc565b60405160200161311d929190614187565b60405160208183030381529060405290508060405160200161313f9190614a35565b60408051601f1981840301815291905290508061316d612fa86131628688614252565b61304d906009614252565b60405160200161317e929190614187565b60408051601f198184030181529190529050600561319c8486614252565b6131a691906147b8565b600003611b3257806040516020016131be9190614a6a565b60408051601f198184030181529190529050806131ec612fa86131e18688614252565b61310790600d614252565b6040516020016131fd929190614187565b60405160208183030381529060405290509392505050565b60608160000361323c5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115613266578061325081614aa0565b915061325f9050600a836147a4565b9150613240565b6000816001600160401b038111156132805761328061395e565b6040519080825280601f01601f1916602001820160405280156132aa576020820181803683370190505b5090505b8415611d88576132bf600183614942565b91506132cc600a866147b8565b6132d7906030614252565b60f81b8183815181106132ec576132ec613d76565b60200101906001600160f81b031916908160001a90535061330e600a866147a4565b94506132ae565b60608151600014613341576040518060400160405280600381526020016259657360e81b815250610870565b50506040805180820190915260028152614e6f60f01b602082015290565b60008061336d836001614252565b6133a0906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166147a4565b90506133b16009600183901b6147b8565b611b32906001614252565b6000806133ca836001614252565b6133fd906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166147a4565b9050611b32600a600383901b6147b8565b828054828255906000526020600020908101928215613461579160200282015b828111156134615781546001600160a01b0319166001600160a01b0384351617825560209092019160019091019061342e565b5061346d929150613471565b5090565b5b8082111561346d5760008155600101613472565b6001600160e01b03198116811461129d57600080fd5b6000602082840312156134ae57600080fd5b8135611b3281613486565b60005b838110156134d45781810151838201526020016134bc565b838111156118245750506000910152565b600081518084526134fd8160208601602086016134b9565b601f01601f19169290920160200192915050565b602081526000611b3260208301846134e5565b60006020828403121561353657600080fd5b5035919050565b80356001600160a01b038116811461355457600080fd5b919050565b6000806040838503121561356c57600080fd5b6135758361353d565b946020939093013593505050565b60008060006060848603121561359857600080fd5b6135a18461353d565b92506135af6020850161353d565b9150604084013590509250925092565b60008083601f8401126135d157600080fd5b5081356001600160401b038111156135e857600080fd5b60208301915083602082850101111561360057600080fd5b9250929050565b6000806000806060858703121561361d57600080fd5b843593506020850135925060408501356001600160401b0381111561364157600080fd5b61364d878288016135bf565b95989497509550505050565b6000806040838503121561366c57600080fd5b6136758361353d565b915060208301356001600160401b0381111561369057600080fd5b8301606081860312156136a257600080fd5b809150509250929050565b801515811461129d57600080fd5b8035613554816136ad565b6000806000606084860312156136db57600080fd5b6136e48461353d565b92506136f26020850161353d565b91506040840135613702816136ad565b809150509250925092565b6000806020838503121561372057600080fd5b82356001600160401b0381111561373657600080fd5b613742858286016135bf565b90969095509350505050565b60008083601f84011261376057600080fd5b5081356001600160401b0381111561377757600080fd5b6020830191508360208260051b850101111561360057600080fd5b600080602083850312156137a557600080fd5b82356001600160401b038111156137bb57600080fd5b6137428582860161374e565b6000806000604084860312156137dc57600080fd5b6137e58461353d565b925060208401356001600160401b0381111561380057600080fd5b61380c8682870161374e565b9497909650939450505050565b6000806040838503121561382c57600080fd5b6138358361353d565b91506138436020840161353d565b90509250929050565b60006020828403121561385e57600080fd5b611b328261353d565b60008060006040848603121561387c57600080fd5b6138858461353d565b925060208401356001600160401b038111156138a057600080fd5b61380c868287016135bf565b60008082840360c08112156138c057600080fd5b6138c98461353d565b925060a0601f19820112156138dd57600080fd5b506020830190509250929050565b600080604083850312156138fe57600080fd5b6139078361353d565b915060208301356136a2816136ad565b61ffff8116811461129d57600080fd5b803561355481613917565b6000806040838503121561394557600080fd5b61394e8361353d565b915060208301356136a281613917565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156139965761399661395e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156139c4576139c461395e565b604052919050565b600080600080608085870312156139e257600080fd5b6139eb8561353d565b935060206139fa81870161353d565b93506040860135925060608601356001600160401b0380821115613a1d57600080fd5b818801915088601f830112613a3157600080fd5b813581811115613a4357613a4361395e565b613a55601f8201601f1916850161399c565b91508082528984828501011115613a6b57600080fd5b808484018584013760008482840101525080935050505092959194509250565b6000806000838503610140811215613aa257600080fd5b613aab8561353d565b9350613ab96020860161353d565b9250610100603f1982011215613ace57600080fd5b506040840190509250925092565b600181811c90821680613af057607f821691505b602082108103612f4857634e487b7160e01b600052602260045260246000fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e19843603018112613b5057600080fd5b83016020810192503590506001600160401b03811115613b6f57600080fd5b80360382131561360057600080fd5b600060208083526080830184358285015281850135601e19863603018112613ba557600080fd5b850182810190356001600160401b03811115613bc057600080fd5b8060051b803603831315613bd357600080fd5b606060408801529281905260a09286018301928290870160005b83811015613c2757888603609f19018252613c088386613b39565b613c13888284613b10565b975050509186019190860190600101613bed565b5050505050613c396040860186613b39565b858303601f190160608701529250613c52828483613b10565b9695505050505050565b601f821115610d9557600081815260208120601f850160051c81016020861015613c835750805b601f850160051c820191505b81811015610c5757828155600101613c8f565b6001600160401b03831115613cb957613cb961395e565b613ccd83613cc78354613adc565b83613c5c565b6000601f841160018114613d015760008515613ce95750838201355b600019600387901b1c1916600186901b178355613d5b565b600083815260209020601f19861690835b82811015613d325786850135825560209485019460019092019101613d12565b5086821015613d4f5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b602081526000611d88602083018486613b10565b634e487b7160e01b600052603260045260246000fd5b60208082528181018390526000908460408401835b86811015613dcd576001600160a01b03613dba8461353d565b1682529183019190830190600101613da1565b509695505050505050565b69ffffffffffffffffffff8116811461129d57600080fd5b6001600160401b038116811461129d57600080fd5b64ffffffffff8116811461129d57600080fd5b600060a08284031215613e2a57600080fd5b613e32613974565b8251613e3d81613dd8565b81526020830151613e4d81613df0565b60208201526040830151613e6081613e05565b60408201526060830151613e7381613917565b60608201526080830151613e86816136ad565b60808201529392505050565b803561355481613e05565b600060a08284031215613eaf57600080fd5b613eb7613974565b8235613ec281613dd8565b81526020830135613ed281613df0565b60208201526040830135613ee581613e05565b60408201526060830135613ef881613917565b60608201526080830135613e86816136ad565b600060a08201905069ffffffffffffffffffff83511682526001600160401b03602084015116602083015264ffffffffff604084015116604083015261ffff606084015116606083015260808301511515608083015292915050565b803565ffffffffffff8116811461355457600080fd5b803560ff8116811461355457600080fd5b6001600160a01b0384811682528316602082015261014081018235613fb281613dd8565b69ffffffffffffffffffff1660408301526020830135613fd181613917565b61ffff166060830152613fe660408401613f67565b65ffffffffffff166080830152613fff60608401613f67565b65ffffffffffff1660a083015261401860808401613f7d565b60ff1660c083015261402c60a08401613e92565b64ffffffffff1660e083015261404460c08401613927565b61ffff1661010083015261405a60e084016136bb565b80151561012084015250949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613c52908301846134e5565b6000602082840312156140b157600080fd5b8151611b3281613486565b600082516140ce8184602087016134b9565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f32309201918252507f30302f73766727207072657365727665417370656374526174696f3d27784d6960208201527f6e594d696e206d656574272076696577426f783d27302030203335302033353060408201527f273e3c726563742077696474683d273130302527206865696768743d2731303060608201526e12939039ba3cb6329e93b334b6361d60891b6080820152608f01919050565b600083516141998184602088016134b9565b8351908301906141ad8183602088016134b9565b01949350505050565b600082516141c88184602087016134b9565b7f27202f3e3c7465787420783d273530252720793d273530252720646f6d696e619201918252507f6e742d626173656c696e653d276d6964646c652720746578742d616e63686f726020820152751e93b6b4b2323632939039ba3cb6329e93b334b6361d60511b6040820152605601919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156142655761426561423c565b500190565b6000825161427c8184602087016134b9565b6c1db337b73a16b330b6b4b63c9d60991b920191825250600d01919050565b600082516142ad8184602087016134b9565b6a1db337b73a16b9b4bd329d60a91b920191825250600b01919050565b600082516142dc8184602087016134b9565b6270783b60e81b920191825250600301919050565b600082516143038184602087016134b9565b61139f60f11b920191825250600201919050565b600082516143298184602087016134b9565b661e17ba32bc3a1f60c91b920191825250600701919050565b600082516143548184602087016134b9565b651e17b9bb339f60d11b920191825250600601919050565b6000825161437e8184602087016134b9565b7f222c20226465736372697074696f6e223a2022546869732069732061207465739201918252507f7420746f6b656e2c20666f7220747279696e67206f757420636f6f6c2074686960208201527f6e67732072656c6174656420746f204e4654732120506c65617365206e6f746560408201527f2074686174207468697320746f6b656e20686173206e6f2076616c7565206f7260608201527f2077617272616e7479206f6620616e79206b696e642e5c6e5c6e5c225468652060808201527f6675747572652062656c6f6e677320746f2074686f73652077686f2062656c6960a08201527f65766520696e2074686520626561757479206f6620746865697220647265616d60c08201527f732e5c225c6e2d456c65616e6f7220526f6f736576656c74222c2022696d616760e08201526932afb230ba30911d101160b11b61010082015261010a01919050565b600082516144de8184602087016134b9565b7f222c202261747472696275746573223a205b207b2274726169745f74797065229201918252507f3a2022546f6b656e204944222c202276616c7565223a202200000000000000006020820152603801919050565b600082516145458184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022466f6e74222c202276616c759201918252506432911d101160d91b6020820152602501919050565b600082516145948184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022466f6e742073697a65222c2092019182525069113b30b63ab2911d101160b11b6020820152602a01919050565b600082516145e88184602087016134b9565b7f227d2c207b2274726169745f74797065223a202252656374616e676c65222c2092019182525069113b30b63ab2911d101160b11b6020820152602a01919050565b6000825161463c8184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022547269616e676c65222c2022920191825250683b30b63ab2911d101160b91b6020820152602901919050565b6000825161468f8184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022436972636c65222c2022766192019182525066363ab2911d101160c91b6020820152602701919050565b600082516146e08184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022436861696e204944222c2022920191825250683b30b63ab2911d101160b91b6020820152602901919050565b600082516147338184602087016134b9565b63227d5d7d60e01b920191825250600401919050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c000000000081526000825161478181601b8501602087016134b9565b91909101601b0192915050565b634e487b7160e01b600052601260045260246000fd5b6000826147b3576147b361478e565b500490565b6000826147c7576147c761478e565b500690565b600082516147de8184602087016134b9565b642720793d2760d81b920191825250600501919050565b600082516148078184602087016134b9565b68272077696474683d2760b81b920191825250600901919050565b600082516148348184602087016134b9565b6927206865696768743d2760b01b920191825250600a01919050565b600082516148628184602087016134b9565b6827207374796c653d2760b81b920191825250600901919050565b6000825161488f8184602087016134b9565b631390179f60e11b920191825250600401919050565b600082516148b78184602087016134b9565b600b60fa1b920191825250600101919050565b600082516148dc8184602087016134b9565b600160fd1b920191825250600101919050565b600082516149018184602087016134b9565b65272063793d2760d01b920191825250600601919050565b6000825161492b8184602087016134b9565b642720723d2760d81b920191825250600501919050565b6000828210156149545761495461423c565b500390565b6000825161496b8184602087016134b9565b61016160f51b920191825250600201919050565b600082516149918184602087016134b9565b602960f81b920191825250600101919050565b600082516149b68184602087016134b9565b6e1db334b63616b7b830b1b4ba3c9d1760891b920191825250600f01919050565b600082516149e98184602087016134b9565b671db9ba3937b5b29d60c11b920191825250600801919050565b60008251614a158184602087016134b9565b6d1db9ba3937b5b296bbb4b23a341d60911b920191825250600e01919050565b60008251614a478184602087016134b9565b701db9ba3937b5b296b7b830b1b4ba3c9d1760791b920191825250601101919050565b60008251614a7c8184602087016134b9565b711db9ba3937b5b296b230b9b430b93930bc9d60711b920191825250601201919050565b600060018201614ab257614ab261423c565b506001019056fea2646970667358221220658e9c20f0269782fec8c07baf2110c3bc340385f4e7b0e1f6b568fb3e67d96d64736f6c634300080f0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000fba662e1a8e91a350702cf3b87d0c2d2fb4ba57f0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000f536861706573202620436f6c6f727300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003532643000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002fb6feb663c481e9854a251002c772fead3974d6
Deployed Bytecode
0x6080604052600436106102725760003560e01c806379ba50971161014f578063b88d4fde116100c1578063d5e7feb81161007a578063d5e7feb814610736578063e8a3d48514610756578063e985e9c51461076b578063f0025d96146107b4578063f2fde38b146107c9578063f53d0a8e146107e957600080fd5b8063b88d4fde14610697578063bbf1ab0c146106b7578063c6ab67a3146106d7578063c780b63d146106ec578063c87b56dd14610701578063d5abeb011461072157600080fd5b8063938e3d7b11610113578063938e3d7b146105ed57806395d89b411461060d5780639794ed4014610622578063998c05d814610637578063a22cb46514610657578063b0c1361a1461067757600080fd5b806379ba50971461053d5780637a05bc8214610552578063840e15d4146105725780638da5cb5b146105ad578063913ee93d146105cd57600080fd5b806348a4c101116101e857806364869dad116101ac57806364869dad146104a057806366251b69146104b35780636c0360eb146104d35780636f8b44b0146104e857806370a0823114610508578063715018a61461052857600080fd5b806348a4c1011461040057806355f804b31461042057806360c308b6146104405780636352211e146104605780636407ab101461048057600080fd5b806318160ddd1161023a57806318160ddd1461034857806323452b9c1461036b57806323b872dd1461038057806329e31c1b146103a05780633680620d146103c057806342842e0e146103e057600080fd5b806301ffc9a71461027757806306fdde03146102ac578063081812fc146102ce578063095ea7b314610306578063099b6bfa14610328575b600080fd5b34801561028357600080fd5b5061029761029236600461349c565b610809565b60405190151581526020015b60405180910390f35b3480156102b857600080fd5b506102c1610876565b6040516102a39190613511565b3480156102da57600080fd5b506102ee6102e9366004613524565b610908565b6040516001600160a01b0390911681526020016102a3565b34801561031257600080fd5b50610326610321366004613559565b61094c565b005b34801561033457600080fd5b50610326610343366004613524565b6109ec565b34801561035457600080fd5b5061035d610a63565b6040519081526020016102a3565b34801561037757600080fd5b50610326610a77565b34801561038c57600080fd5b5061032661039b366004613583565b610ac6565b3480156103ac57600080fd5b506103266103bb366004613607565b610c5f565b3480156103cc57600080fd5b506103266103db366004613659565b610c9a565b3480156103ec57600080fd5b506103266103fb366004613583565b610d7a565b34801561040c57600080fd5b5061032661041b3660046136c6565b610d9a565b34801561042c57600080fd5b5061032661043b36600461370d565b610e72565b34801561044c57600080fd5b5061032661045b366004613792565b610eb9565b34801561046c57600080fd5b506102ee61047b366004613524565b611000565b34801561048c57600080fd5b5061032661049b3660046137c7565b61100b565b6103266104ae366004613559565b6110b6565b3480156104bf57600080fd5b506103266104ce366004613819565b6110f9565b3480156104df57600080fd5b506102c161116f565b3480156104f457600080fd5b50610326610503366004613524565b61117e565b34801561051457600080fd5b5061035d61052336600461384c565b6111c2565b34801561053457600080fd5b50610326611210565b34801561054957600080fd5b50610326611224565b34801561055e57600080fd5b5061032661056d366004613867565b6112a0565b34801561057e57600080fd5b5061059261058d36600461384c565b61134b565b604080519384526020840192909252908201526060016102a3565b3480156105b957600080fd5b506008546102ee906001600160a01b031681565b3480156105d957600080fd5b506103266105e836600461384c565b611387565b3480156105f957600080fd5b5061032661060836600461370d565b61142a565b34801561061957600080fd5b506102c1611471565b34801561062e57600080fd5b50610326611480565b34801561064357600080fd5b506103266106523660046138ac565b6114ef565b34801561066357600080fd5b506103266106723660046138eb565b611632565b34801561068357600080fd5b50610326610692366004613932565b6116c7565b3480156106a357600080fd5b506103266106b23660046139cc565b6117e0565b3480156106c357600080fd5b506103266106d2366004613a8b565b61182a565b3480156106e357600080fd5b50600f5461035d565b3480156106f857600080fd5b506103266118d7565b34801561070d57600080fd5b506102c161071c366004613524565b611944565b34801561072d57600080fd5b50600c5461035d565b34801561074257600080fd5b50600b546102ee906001600160a01b031681565b34801561076257600080fd5b506102c16119c0565b34801561077757600080fd5b50610297610786366004613819565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156107c057600080fd5b506103266119cf565b3480156107d557600080fd5b506103266107e436600461384c565b611a17565b3480156107f557600080fd5b50600a546102ee906001600160a01b031681565b60006001600160e01b031982166301ffc9a760e01b148061083a57506001600160e01b031982166380ac58cd60e01b145b8061085557506001600160e01b03198216632fd0239360e01b145b8061087057506001600160e01b0319821663290d607b60e21b145b92915050565b60606002805461088590613adc565b80601f01602080910402602001604051908101604052809291908181526020018280546108b190613adc565b80156108fe5780601f106108d3576101008083540402835291602001916108fe565b820191906000526020600020905b8154815290600101906020018083116108e157829003601f168201915b5050505050905090565b600061091382611a94565b610930576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600061095782611000565b9050336001600160a01b03821614610990576109738133610786565b610990576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6109f4611abb565b60006109fe610a63565b1115610a1d5760405163e03264af60e01b815260040160405180910390fd5b600f80549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b6000610a726001546000540390565b905090565b610a7f611abb565b600980546001600160a01b0319169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da906020015b60405180910390a1565b6000610ad182611ae6565b9050836001600160a01b0316816001600160a01b031614610b045760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b03881690911417610b5157610b348633610786565b610b5157604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516610b7857604051633a954ecd60e21b815260040160405180910390fd5b8015610b8357600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003610c1557600184016000818152600460205260408120549003610c13576000548114610c135760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b610c67611abb565b604051839085907fa367e77d52123b7db91661964f869e6d260e9050507402788a87ca8ad38687e790600090a350505050565b6008546001600160a01b03163314610cd757600a546001600160a01b03163314610cd7576040516359d9793760e01b815260040160405180910390fd5b6001600160a01b038216600090815260106020526040902054829060ff161515600114610d1757604051635136618d60e11b815260040160405180910390fd5b60405163ebb4a55f60e01b81526001600160a01b0384169063ebb4a55f90610d43908590600401613b7e565b600060405180830381600087803b158015610d5d57600080fd5b505af1158015610d71573d6000803e3d6000fd5b50505050505050565b610d95838383604051806020016040528060008152506117e0565b505050565b600a546001600160a01b03163314610dc8576040516001620aed3360e41b0319815260040160405180910390fd5b6001600160a01b038316600090815260106020526040902054839060ff161515600114610e0857604051635136618d60e11b815260040160405180910390fd5b604051638e7d1e4360e01b81526001600160a01b0384811660048301528315156024830152851690638e7d1e43906044015b600060405180830381600087803b158015610e5457600080fd5b505af1158015610e68573d6000803e3d6000fd5b5050505050505050565b610e7a611abb565b600d610e87828483613ca2565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad8282604051610a57929190613d62565b6008546001600160a01b03163314610ef657600a546001600160a01b03163314610ef6576040516359d9793760e01b815260040160405180910390fd5b60005b601154811015610f585760006010600060118481548110610f1c57610f1c613d76565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600101610ef9565b5060005b81811015610fc157600160106000858585818110610f7c57610f7c613d76565b9050602002016020810190610f91919061384c565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610f5c565b50610fce6011838361340e565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d8282604051610a57929190613d8c565b600061087082611ae6565b6008546001600160a01b0316331461104857600a546001600160a01b03163314611048576040516359d9793760e01b815260040160405180910390fd5b6001600160a01b038316600090815260106020526040902054839060ff16151560011461108857604051635136618d60e11b815260040160405180910390fd5b6040516396751ae960e01b81526001600160a01b038516906396751ae990610e3a9086908690600401613d8c565b3360009081526010602052604090205460ff1615156001146110eb57604051635136618d60e11b815260040160405180910390fd5b6110f58282611b54565b5050565b611101611abb565b6001600160a01b038216600090815260106020526040902054829060ff16151560011461114157604051635136618d60e11b815260040160405180910390fd5b60405163024e71b760e31b81526001600160a01b0383811660048301528416906312738db890602401610d43565b6060600d805461088590613adc565b611186611abb565b600c8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c906020015b60405180910390a150565b60006001600160a01b0382166111eb576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b611218611abb565b6112226000611c52565b565b6009546001600160a01b031633811461125057604051636b7584e760e11b815260040160405180910390fd5b600980546001600160a01b0319169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a161129d81611c52565b50565b6008546001600160a01b031633146112dd57600a546001600160a01b031633146112dd576040516359d9793760e01b815260040160405180910390fd5b6001600160a01b038316600090815260106020526040902054839060ff16151560011461131d57604051635136618d60e11b815260040160405180910390fd5b60405163b957d0cb60e01b81526001600160a01b0385169063b957d0cb90610e3a9086908690600401613d62565b6001600160a01b03811660009081526005602052604080822054901c6001600160401b0316908061137a610a63565b600c549395909450915050565b600a546001600160a01b031633146113b5576040516001620aed3360e41b0319815260040160405180910390fd5b6001600160a01b0381166113dc57604051633536be7f60e21b815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0383169081179091556040519081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f906020016111b7565b611432611abb565b600e61143f828483613ca2565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051610a57929190613d62565b60606003805461088590613adc565b600a546001600160a01b031633146114ae576040516001620aed3360e41b0319815260040160405180910390fd5b600b80546001600160a01b0319169055604051600081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f90602001610abc565b6114f7611abb565b6001600160a01b038216600090815260106020526040902054829060ff16151560011461153757604051635136618d60e11b815260040160405180910390fd5b604051632f1a98a760e21b81523060048201526000906001600160a01b0385169063bc6a629c9060240160a060405180830381865afa15801561157e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a29190613e18565b905060006115b536859003850185613e9d565b60608084015161ffff1690820152600160808401526040516336ccc91360e11b81529091506001600160a01b03861690636d999226906115f9908490600401613f0b565b600060405180830381600087803b15801561161357600080fd5b505af1158015611627573d6000803e3d6000fd5b505050505050505050565b336001600160a01b0383160361165b5760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600a546001600160a01b031633146116f5576040516001620aed3360e41b0319815260040160405180910390fd5b6001600160a01b038216600090815260106020526040902054829060ff16151560011461173557604051635136618d60e11b815260040160405180910390fd5b604051632f1a98a760e21b81523060048201526000906001600160a01b0385169063bc6a629c9060240160a060405180830381865afa15801561177c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a09190613e18565b61ffff84166060820152600160808201526040516336ccc91360e11b81529091506001600160a01b03851690636d99922690610e3a908490600401613f0b565b6117eb848484610ac6565b6001600160a01b0383163b156118245761180784848484611ca4565b611824576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6008546001600160a01b0316331461186757600a546001600160a01b03163314611867576040516359d9793760e01b815260040160405180910390fd5b6001600160a01b038316600090815260106020526040902054839060ff1615156001146118a757604051635136618d60e11b815260040160405180910390fd5b604051632efc6ac360e21b81526001600160a01b0385169063bbf1ab0c90610e3a90309087908790600401613f8e565b600a546001600160a01b03163314611905576040516001620aed3360e41b0319815260040160405180910390fd5b600a80546001600160a01b031916905560405160009033907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d83122908390a3565b606061194f82611a94565b6119b75760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840160405180910390fd5b61087082611d90565b6060600e805461088590613adc565b600b546001600160a01b03163381146119fb576040516353bb059b60e01b815260040160405180910390fd5b611a0481612358565b50600b80546001600160a01b0319169055565b611a1f611abb565b6001600160a01b038116611a4657604051633a247dd760e11b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0383169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da906020016111b7565b6000805482108015610870575050600090815260046020526040902054600160e01b161590565b6008546001600160a01b0316331461122257604051635fc483c560e01b815260040160405180910390fd5b600081600054811015611b3b5760008181526004602052604081205490600160e01b82169003611b39575b80600003611b32575060001901600081815260046020526040902054611b11565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b6000805490829003611b795760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114611c2857808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611bf0565b5081600003611c4957604051622e076360e81b815260040160405180910390fd5b60005550505050565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611cd990339089908890889060040161406c565b6020604051808303816000875af1925050508015611d14575060408051601f3d908101601f19168201909252611d119181019061409f565b60015b611d72573d808015611d42576040519150601f19603f3d011682016040523d82523d6000602084013e611d47565b606091505b508051600003611d6a576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b6060806000611d9e846123a4565b90506000611dab85612611565b90506000611db88661294c565b905083604051602001611dcb91906140bc565b604051602081830303815290604052935083611de8876001612b58565b604051602001611df9929190614187565b604051602081830303815290604052935083604051602001611e1b91906141b6565b60408051601f19818403018152919052935083611e43611e3c886001614252565b6000612b58565b604051602001611e54929190614187565b604051602081830303815290604052935083604051602001611e76919061426a565b604051602081830303815290604052935083611e9187612d43565b604051602001611ea2929190614187565b604051602081830303815290604052935083604051602001611ec4919061429b565b604051602081830303815290604052935083611edf87612f4e565b604051602001611ef0929190614187565b604051602081830303815290604052935083604051602001611f1291906142ca565b604051602081830303815290604052935083611f2f876001612fad565b604051602001611f40929190614187565b604051602081830303815290604052935083604051602001611f6291906142f1565b604051602081830303815290604052935083611f7d87613215565b604051602001611f8e929190614187565b604051602081830303815290604052935083604051602001611fb09190614317565b60405160208183030381529060405293508383604051602001611fd4929190614187565b60405160208183030381529060405293508382604051602001611ff8929190614187565b6040516020818303038152906040529350838160405160200161201c929190614187565b60405160208183030381529060405293508360405160200161203e9190614342565b60408051601f1981840301815282820190915260168252757b226e616d65223a20225465737420546f6b656e202360501b602083015294508061208088613215565b604051602001612091929190614187565b6040516020818303038152906040529050806040516020016120b3919061436c565b604051602081830303815290604052905080856040516020016120d7929190614187565b6040516020818303038152906040529050806040516020016120f991906144cc565b60405160208183030381529060405290508061211488613215565b604051602001612125929190614187565b6040516020818303038152906040529050806040516020016121479190614533565b60405160208183030381529060405290508061216288612d43565b604051602001612173929190614187565b6040516020818303038152906040529050806040516020016121959190614582565b6040516020818303038152906040529050806121b088612f4e565b6040516020016121c1929190614187565b6040516020818303038152906040529050806040516020016121e391906145d6565b6040516020818303038152906040529050806121fe85613315565b60405160200161220f929190614187565b604051602081830303815290604052905080604051602001612231919061462a565b60405160208183030381529060405290508061224c84613315565b60405160200161225d929190614187565b60405160208183030381529060405290508060405160200161227f919061467d565b60405160208183030381529060405290508061229a83613315565b6040516020016122ab929190614187565b6040516020818303038152906040529050806040516020016122cd91906146ce565b6040516020818303038152906040529050806122e846613215565b6040516020016122f9929190614187565b60405160208183030381529060405290508060405160200161231b9190614721565b60405160208183030381529060405290508060405160200161233d9190614749565b60405160208183030381529060405295505050505050919050565b600a80546001600160a01b0319166001600160a01b03831690811790915560405133907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d8312290600090a350565b606060006123b3836001614252565b6123e6906001600160a01b037f000000000000000000000000b15cb2c66a4b9a7640bbfc803993d7acbeb879c7166147a4565b90506123f36003826147b8565b1561240e575050604080516020810190915260008152919050565b6040805180820190915260098152683c7265637420783d2760b81b6020820152600061244061012d600185901b6147b8565b9050600061245461012e600286901b6147b8565b9050600061246861012f600387901b6147b8565b9050600061247c61012f600488901b6147b8565b90508461248885613215565b604051602001612499929190614187565b6040516020818303038152906040529450846040516020016124bb91906147cc565b6040516020818303038152906040529450846124d684613215565b6040516020016124e7929190614187565b60405160208183030381529060405294508460405160200161250991906147f5565b60405160208183030381529060405294508461252483613215565b604051602001612535929190614187565b6040516020818303038152906040529450846040516020016125579190614822565b60405160208183030381529060405294508461257282613215565b604051602001612583929190614187565b6040516020818303038152906040529450846040516020016125a59190614850565b6040516020818303038152906040529450846125c2896003612fad565b6040516020016125d3929190614187565b6040516020818303038152906040529450846040516020016125f5919061487d565b60408051601f1981840301815291905298975050505050505050565b60606000612620836001614252565b612653906001600160a01b037f000000000000000000000000b15cb2c66a4b9a7640bbfc803993d7acbeb879c7166147a4565b90506126606005826147b8565b1561267b575050604080516020810190915260008152919050565b6040805180820190915260118152703c706f6c79676f6e20706f696e74733d2760781b602082015260006126b561012d600185901b6147b8565b905060006126c961012e600286901b6147b8565b905060006126dd61012f600387901b6147b8565b905060006126f1610130600488901b6147b8565b90506000612705610131600589901b6147b8565b9050600061271961013260068a901b6147b8565b90508661272587613215565b604051602001612736929190614187565b60405160208183030381529060405296508660405160200161275891906148a5565b60405160208183030381529060405296508661277386613215565b604051602001612784929190614187565b6040516020818303038152906040529650866040516020016127a691906148ca565b6040516020818303038152906040529650866127c185613215565b6040516020016127d2929190614187565b6040516020818303038152906040529650866040516020016127f491906148a5565b60405160208183030381529060405296508661280f84613215565b604051602001612820929190614187565b60405160208183030381529060405296508660405160200161284291906148ca565b60405160208183030381529060405296508661285d83613215565b60405160200161286e929190614187565b60405160208183030381529060405296508660405160200161289091906148a5565b6040516020818303038152906040529650866128ab82613215565b6040516020016128bc929190614187565b6040516020818303038152906040529650866040516020016128de9190614850565b6040516020818303038152906040529650866128fb8b6005612fad565b60405160200161290c929190614187565b60405160208183030381529060405296508660405160200161292e919061487d565b60408051601f198184030181529190529a9950505050505050505050565b6060600061295b836001614252565b61298e906001600160a01b037f000000000000000000000000b15cb2c66a4b9a7640bbfc803993d7acbeb879c7166147a4565b905061299b6007826147b8565b156129b6575050604080516020810190915260008152919050565b60408051808201909152600c81526b3c636972636c652063783d2760a01b602082015260006129eb61012c600185901b6147b8565b905060006129ff61012c600286901b6147b8565b90506000612a126096600387901b6147b8565b905083612a1e84613215565b604051602001612a2f929190614187565b604051602081830303815290604052935083604051602001612a5191906148ef565b604051602081830303815290604052935083612a6c83613215565b604051602001612a7d929190614187565b604051602081830303815290604052935083604051602001612a9f9190614919565b604051602081830303815290604052935083612aba82613215565b604051602001612acb929190614187565b604051602081830303815290604052935083604051602001612aed9190614850565b604051602081830303815290604052935083612b0a886007612fad565b604051602001612b1b929190614187565b604051602081830303815290604052935083604051602001612b3d919061487d565b60408051601f19818403018152919052979650505050505050565b60606000612b67846001614252565b612b9a906001600160a01b037f000000000000000000000000b15cb2c66a4b9a7640bbfc803993d7acbeb879c7166147a4565b6040805180820190915260048152630e4cec4560e31b60208201529091506000600185151514612bcb576000612bce565b607f5b60ff1690506000818260ff612be39190614942565b612bf190600187901b6147b8565b612bfb9190614252565b9050600082612c0b8160ff614942565b612c1990600288901b6147b8565b612c239190614252565b9050600083612c338160ff614942565b612c4190600389901b6147b8565b612c4b9190614252565b905084612c5784613215565b604051602001612c68929190614187565b604051602081830303815290604052945084604051602001612c8a9190614959565b604051602081830303815290604052945084612ca583613215565b604051602001612cb6929190614187565b604051602081830303815290604052945084604051602001612cd89190614959565b604051602081830303815290604052945084612cf382613215565b604051602001612d04929190614187565b604051602081830303815290604052945084604051602001612d26919061497f565b60408051808303601f190181529190529998505050505050505050565b60606000612d52836001614252565b612d85906001600160a01b037f000000000000000000000000b15cb2c66a4b9a7640bbfc803993d7acbeb879c7166147a4565b9050612d926009826147b8565b600003612dbf57505060408051808201909152600881526711d85c985b5bdb9960c21b6020820152919050565b612dca6008826147b8565b600003612df55750506040805180820190915260068152655461686f6d6160d01b6020820152919050565b612e006007826147b8565b600003612e3157505060408051808201909152600c81526b547265627563686574204d5360a01b6020820152919050565b612e3c6006826147b8565b600003612e7057505060408051808201909152600f81526e2a34b6b2b9902732bb902937b6b0b760891b6020820152919050565b612e7b6005826147b8565b600003612ea757505060408051808201909152600781526647656f7267696160c81b6020820152919050565b612eb26004826147b8565b600003612ee057505060408051808201909152600981526848656c76657469636160b81b6020820152919050565b612eeb6003826147b8565b600003612f1b57505060408051808201909152600b81526a436f7572696572204e657760a81b6020820152919050565b505060408051808201909152600f81526e109c9d5cda0814d8dc9a5c1d081355608a1b6020820152919050565b50919050565b606061087060b4612f60846001614252565b612f93906001600160a01b037f000000000000000000000000b15cb2c66a4b9a7640bbfc803993d7acbeb879c7166147a4565b612f9d91906147b8565b612fa890600c614252565b613215565b6040805180820190915260058152643334b6361d60d91b602082015260609080612fec612fda8587614252565b612fe5906001614252565b6001612b58565b604051602001612ffd929190614187565b60405160208183030381529060405290508060405160200161301f91906149a4565b60408051601f19818403018152919052905080613052612fa86130428688614252565b61304d906003614252565b61335f565b604051602001613063929190614187565b60405160208183030381529060405290508060405160200161308591906149d7565b60408051601f198184030181529190529050806130a6611e3c866005614252565b6040516020016130b7929190614187565b6040516020818303038152906040529050806040516020016130d99190614a03565b60408051601f1981840301815291905290508061310c612fa86130fc8688614252565b613107906007614252565b6133bc565b60405160200161311d929190614187565b60405160208183030381529060405290508060405160200161313f9190614a35565b60408051601f1981840301815291905290508061316d612fa86131628688614252565b61304d906009614252565b60405160200161317e929190614187565b60408051601f198184030181529190529050600561319c8486614252565b6131a691906147b8565b600003611b3257806040516020016131be9190614a6a565b60408051601f198184030181529190529050806131ec612fa86131e18688614252565b61310790600d614252565b6040516020016131fd929190614187565b60405160208183030381529060405290509392505050565b60608160000361323c5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115613266578061325081614aa0565b915061325f9050600a836147a4565b9150613240565b6000816001600160401b038111156132805761328061395e565b6040519080825280601f01601f1916602001820160405280156132aa576020820181803683370190505b5090505b8415611d88576132bf600183614942565b91506132cc600a866147b8565b6132d7906030614252565b60f81b8183815181106132ec576132ec613d76565b60200101906001600160f81b031916908160001a90535061330e600a866147a4565b94506132ae565b60608151600014613341576040518060400160405280600381526020016259657360e81b815250610870565b50506040805180820190915260028152614e6f60f01b602082015290565b60008061336d836001614252565b6133a0906001600160a01b037f000000000000000000000000b15cb2c66a4b9a7640bbfc803993d7acbeb879c7166147a4565b90506133b16009600183901b6147b8565b611b32906001614252565b6000806133ca836001614252565b6133fd906001600160a01b037f000000000000000000000000b15cb2c66a4b9a7640bbfc803993d7acbeb879c7166147a4565b9050611b32600a600383901b6147b8565b828054828255906000526020600020908101928215613461579160200282015b828111156134615781546001600160a01b0319166001600160a01b0384351617825560209092019160019091019061342e565b5061346d929150613471565b5090565b5b8082111561346d5760008155600101613472565b6001600160e01b03198116811461129d57600080fd5b6000602082840312156134ae57600080fd5b8135611b3281613486565b60005b838110156134d45781810151838201526020016134bc565b838111156118245750506000910152565b600081518084526134fd8160208601602086016134b9565b601f01601f19169290920160200192915050565b602081526000611b3260208301846134e5565b60006020828403121561353657600080fd5b5035919050565b80356001600160a01b038116811461355457600080fd5b919050565b6000806040838503121561356c57600080fd5b6135758361353d565b946020939093013593505050565b60008060006060848603121561359857600080fd5b6135a18461353d565b92506135af6020850161353d565b9150604084013590509250925092565b60008083601f8401126135d157600080fd5b5081356001600160401b038111156135e857600080fd5b60208301915083602082850101111561360057600080fd5b9250929050565b6000806000806060858703121561361d57600080fd5b843593506020850135925060408501356001600160401b0381111561364157600080fd5b61364d878288016135bf565b95989497509550505050565b6000806040838503121561366c57600080fd5b6136758361353d565b915060208301356001600160401b0381111561369057600080fd5b8301606081860312156136a257600080fd5b809150509250929050565b801515811461129d57600080fd5b8035613554816136ad565b6000806000606084860312156136db57600080fd5b6136e48461353d565b92506136f26020850161353d565b91506040840135613702816136ad565b809150509250925092565b6000806020838503121561372057600080fd5b82356001600160401b0381111561373657600080fd5b613742858286016135bf565b90969095509350505050565b60008083601f84011261376057600080fd5b5081356001600160401b0381111561377757600080fd5b6020830191508360208260051b850101111561360057600080fd5b600080602083850312156137a557600080fd5b82356001600160401b038111156137bb57600080fd5b6137428582860161374e565b6000806000604084860312156137dc57600080fd5b6137e58461353d565b925060208401356001600160401b0381111561380057600080fd5b61380c8682870161374e565b9497909650939450505050565b6000806040838503121561382c57600080fd5b6138358361353d565b91506138436020840161353d565b90509250929050565b60006020828403121561385e57600080fd5b611b328261353d565b60008060006040848603121561387c57600080fd5b6138858461353d565b925060208401356001600160401b038111156138a057600080fd5b61380c868287016135bf565b60008082840360c08112156138c057600080fd5b6138c98461353d565b925060a0601f19820112156138dd57600080fd5b506020830190509250929050565b600080604083850312156138fe57600080fd5b6139078361353d565b915060208301356136a2816136ad565b61ffff8116811461129d57600080fd5b803561355481613917565b6000806040838503121561394557600080fd5b61394e8361353d565b915060208301356136a281613917565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156139965761399661395e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156139c4576139c461395e565b604052919050565b600080600080608085870312156139e257600080fd5b6139eb8561353d565b935060206139fa81870161353d565b93506040860135925060608601356001600160401b0380821115613a1d57600080fd5b818801915088601f830112613a3157600080fd5b813581811115613a4357613a4361395e565b613a55601f8201601f1916850161399c565b91508082528984828501011115613a6b57600080fd5b808484018584013760008482840101525080935050505092959194509250565b6000806000838503610140811215613aa257600080fd5b613aab8561353d565b9350613ab96020860161353d565b9250610100603f1982011215613ace57600080fd5b506040840190509250925092565b600181811c90821680613af057607f821691505b602082108103612f4857634e487b7160e01b600052602260045260246000fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e19843603018112613b5057600080fd5b83016020810192503590506001600160401b03811115613b6f57600080fd5b80360382131561360057600080fd5b600060208083526080830184358285015281850135601e19863603018112613ba557600080fd5b850182810190356001600160401b03811115613bc057600080fd5b8060051b803603831315613bd357600080fd5b606060408801529281905260a09286018301928290870160005b83811015613c2757888603609f19018252613c088386613b39565b613c13888284613b10565b975050509186019190860190600101613bed565b5050505050613c396040860186613b39565b858303601f190160608701529250613c52828483613b10565b9695505050505050565b601f821115610d9557600081815260208120601f850160051c81016020861015613c835750805b601f850160051c820191505b81811015610c5757828155600101613c8f565b6001600160401b03831115613cb957613cb961395e565b613ccd83613cc78354613adc565b83613c5c565b6000601f841160018114613d015760008515613ce95750838201355b600019600387901b1c1916600186901b178355613d5b565b600083815260209020601f19861690835b82811015613d325786850135825560209485019460019092019101613d12565b5086821015613d4f5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b602081526000611d88602083018486613b10565b634e487b7160e01b600052603260045260246000fd5b60208082528181018390526000908460408401835b86811015613dcd576001600160a01b03613dba8461353d565b1682529183019190830190600101613da1565b509695505050505050565b69ffffffffffffffffffff8116811461129d57600080fd5b6001600160401b038116811461129d57600080fd5b64ffffffffff8116811461129d57600080fd5b600060a08284031215613e2a57600080fd5b613e32613974565b8251613e3d81613dd8565b81526020830151613e4d81613df0565b60208201526040830151613e6081613e05565b60408201526060830151613e7381613917565b60608201526080830151613e86816136ad565b60808201529392505050565b803561355481613e05565b600060a08284031215613eaf57600080fd5b613eb7613974565b8235613ec281613dd8565b81526020830135613ed281613df0565b60208201526040830135613ee581613e05565b60408201526060830135613ef881613917565b60608201526080830135613e86816136ad565b600060a08201905069ffffffffffffffffffff83511682526001600160401b03602084015116602083015264ffffffffff604084015116604083015261ffff606084015116606083015260808301511515608083015292915050565b803565ffffffffffff8116811461355457600080fd5b803560ff8116811461355457600080fd5b6001600160a01b0384811682528316602082015261014081018235613fb281613dd8565b69ffffffffffffffffffff1660408301526020830135613fd181613917565b61ffff166060830152613fe660408401613f67565b65ffffffffffff166080830152613fff60608401613f67565b65ffffffffffff1660a083015261401860808401613f7d565b60ff1660c083015261402c60a08401613e92565b64ffffffffff1660e083015261404460c08401613927565b61ffff1661010083015261405a60e084016136bb565b80151561012084015250949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613c52908301846134e5565b6000602082840312156140b157600080fd5b8151611b3281613486565b600082516140ce8184602087016134b9565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f32309201918252507f30302f73766727207072657365727665417370656374526174696f3d27784d6960208201527f6e594d696e206d656574272076696577426f783d27302030203335302033353060408201527f273e3c726563742077696474683d273130302527206865696768743d2731303060608201526e12939039ba3cb6329e93b334b6361d60891b6080820152608f01919050565b600083516141998184602088016134b9565b8351908301906141ad8183602088016134b9565b01949350505050565b600082516141c88184602087016134b9565b7f27202f3e3c7465787420783d273530252720793d273530252720646f6d696e619201918252507f6e742d626173656c696e653d276d6964646c652720746578742d616e63686f726020820152751e93b6b4b2323632939039ba3cb6329e93b334b6361d60511b6040820152605601919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156142655761426561423c565b500190565b6000825161427c8184602087016134b9565b6c1db337b73a16b330b6b4b63c9d60991b920191825250600d01919050565b600082516142ad8184602087016134b9565b6a1db337b73a16b9b4bd329d60a91b920191825250600b01919050565b600082516142dc8184602087016134b9565b6270783b60e81b920191825250600301919050565b600082516143038184602087016134b9565b61139f60f11b920191825250600201919050565b600082516143298184602087016134b9565b661e17ba32bc3a1f60c91b920191825250600701919050565b600082516143548184602087016134b9565b651e17b9bb339f60d11b920191825250600601919050565b6000825161437e8184602087016134b9565b7f222c20226465736372697074696f6e223a2022546869732069732061207465739201918252507f7420746f6b656e2c20666f7220747279696e67206f757420636f6f6c2074686960208201527f6e67732072656c6174656420746f204e4654732120506c65617365206e6f746560408201527f2074686174207468697320746f6b656e20686173206e6f2076616c7565206f7260608201527f2077617272616e7479206f6620616e79206b696e642e5c6e5c6e5c225468652060808201527f6675747572652062656c6f6e677320746f2074686f73652077686f2062656c6960a08201527f65766520696e2074686520626561757479206f6620746865697220647265616d60c08201527f732e5c225c6e2d456c65616e6f7220526f6f736576656c74222c2022696d616760e08201526932afb230ba30911d101160b11b61010082015261010a01919050565b600082516144de8184602087016134b9565b7f222c202261747472696275746573223a205b207b2274726169745f74797065229201918252507f3a2022546f6b656e204944222c202276616c7565223a202200000000000000006020820152603801919050565b600082516145458184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022466f6e74222c202276616c759201918252506432911d101160d91b6020820152602501919050565b600082516145948184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022466f6e742073697a65222c2092019182525069113b30b63ab2911d101160b11b6020820152602a01919050565b600082516145e88184602087016134b9565b7f227d2c207b2274726169745f74797065223a202252656374616e676c65222c2092019182525069113b30b63ab2911d101160b11b6020820152602a01919050565b6000825161463c8184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022547269616e676c65222c2022920191825250683b30b63ab2911d101160b91b6020820152602901919050565b6000825161468f8184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022436972636c65222c2022766192019182525066363ab2911d101160c91b6020820152602701919050565b600082516146e08184602087016134b9565b7f227d2c207b2274726169745f74797065223a2022436861696e204944222c2022920191825250683b30b63ab2911d101160b91b6020820152602901919050565b600082516147338184602087016134b9565b63227d5d7d60e01b920191825250600401919050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c000000000081526000825161478181601b8501602087016134b9565b91909101601b0192915050565b634e487b7160e01b600052601260045260246000fd5b6000826147b3576147b361478e565b500490565b6000826147c7576147c761478e565b500690565b600082516147de8184602087016134b9565b642720793d2760d81b920191825250600501919050565b600082516148078184602087016134b9565b68272077696474683d2760b81b920191825250600901919050565b600082516148348184602087016134b9565b6927206865696768743d2760b01b920191825250600a01919050565b600082516148628184602087016134b9565b6827207374796c653d2760b81b920191825250600901919050565b6000825161488f8184602087016134b9565b631390179f60e11b920191825250600401919050565b600082516148b78184602087016134b9565b600b60fa1b920191825250600101919050565b600082516148dc8184602087016134b9565b600160fd1b920191825250600101919050565b600082516149018184602087016134b9565b65272063793d2760d01b920191825250600601919050565b6000825161492b8184602087016134b9565b642720723d2760d81b920191825250600501919050565b6000828210156149545761495461423c565b500390565b6000825161496b8184602087016134b9565b61016160f51b920191825250600201919050565b600082516149918184602087016134b9565b602960f81b920191825250600101919050565b600082516149b68184602087016134b9565b6e1db334b63616b7b830b1b4ba3c9d1760891b920191825250600f01919050565b600082516149e98184602087016134b9565b671db9ba3937b5b29d60c11b920191825250600801919050565b60008251614a158184602087016134b9565b6d1db9ba3937b5b296bbb4b23a341d60911b920191825250600e01919050565b60008251614a478184602087016134b9565b701db9ba3937b5b296b7b830b1b4ba3c9d1760791b920191825250601101919050565b60008251614a7c8184602087016134b9565b711db9ba3937b5b296b230b9b430b93930bc9d60711b920191825250601201919050565b600060018201614ab257614ab261423c565b506001019056fea2646970667358221220658e9c20f0269782fec8c07baf2110c3bc340385f4e7b0e1f6b568fb3e67d96d64736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000fba662e1a8e91a350702cf3b87d0c2d2fb4ba57f0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000f536861706573202620436f6c6f727300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003532643000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002fb6feb663c481e9854a251002c772fead3974d6
-----Decoded View---------------
Arg [0] : name (string): Shapes & Colors
Arg [1] : symbol (string): S&C
Arg [2] : administrator (address): 0xfBa662e1a8e91a350702cF3b87D0C2d2Fb4BA57F
Arg [3] : allowedSeaDrop (address[]): 0x2fb6FEB663c481E9854a251002C772FEad3974d6
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 000000000000000000000000fba662e1a8e91a350702cf3b87d0c2d2fb4ba57f
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [5] : 536861706573202620436f6c6f72730000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 5326430000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [9] : 0000000000000000000000002fb6feb663c481e9854a251002c772fead3974d6
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.