Contract
0xef453154766505feb9dbf0a58e6990fd6eb66969
13
Polygon Sponsored slots available. Book your slot here!
[ Download CSV Export ]
OVERVIEW
Mr. Crypto by Racksmafia virtual reality gallery where all NFTs de Racks and its audience.
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
MRCRYPTO
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at PolygonScan.com on 2022-03-11 */ // File: @openzeppelin/contracts/utils/Strings.sol // OpenZeppelin Contracts v4.4.0 (utils/Strings.sol) pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.0 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/utils/Address.sol // OpenZeppelin Contracts v4.4.0 (utils/Address.sol) pragma solidity ^0.8.0; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol // OpenZeppelin Contracts v4.4.0 (token/ERC721/IERC721Receiver.sol) pragma solidity ^0.8.0; /** * @title ERC721 token receiver interface * @dev Interface for any contract that wants to support safeTransfers * from ERC721 asset contracts. */ interface IERC721Receiver { /** * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } // File: @openzeppelin/contracts/utils/introspection/IERC165.sol // OpenZeppelin Contracts v4.4.0 (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); } // File: @openzeppelin/contracts/utils/introspection/ERC165.sol // OpenZeppelin Contracts v4.4.0 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } // File: @openzeppelin/contracts/token/ERC721/IERC721.sol // OpenZeppelin Contracts v4.4.0 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; /** * @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); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } // File: @openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol // OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/IERC721Enumerable.sol) pragma solidity ^0.8.0; /** * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Enumerable is IERC721 { /** * @dev Returns the total amount of tokens stored by the contract. */ function totalSupply() external view returns (uint256); /** * @dev Returns a token ID owned by `owner` at a given `index` of its token list. * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); /** * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. * Use along with {totalSupply} to enumerate all tokens. */ function tokenByIndex(uint256 index) external view returns (uint256); } // File: @openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol // OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/IERC721Metadata.sol) pragma solidity ^0.8.0; /** * @title ERC-721 Non-Fungible Token Standard, optional metadata extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Metadata is IERC721 { /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); } // File: @openzeppelin/contracts/token/ERC721/ERC721.sol // OpenZeppelin Contracts v4.4.0 (token/ERC721/ERC721.sol) pragma solidity ^0.8.0; /** * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including * the Metadata extension, but not including the Enumerable extension, which is available separately as * {ERC721Enumerable}. */ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; // Token name string private _name; // Token symbol string private _symbol; // Mapping from token ID to owner address mapping(uint256 => address) private _owners; // Mapping owner address to token count mapping(address => uint256) private _balances; // Mapping from token ID to approved address mapping(uint256 => address) private _tokenApprovals; // Mapping from owner to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; /** * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } /** * @dev See {IERC721-balanceOf}. */ function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } /** * @dev See {IERC721-ownerOf}. */ function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } /** * @dev See {IERC721Metadata-name}. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev See {IERC721Metadata-symbol}. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev See {IERC721Metadata-tokenURI}. */ function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } /** * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each * token will be the concatenation of the `baseURI` and the `tokenId`. Empty * by default, can be overriden in child contracts. */ function _baseURI() internal view virtual returns (string memory) { return ""; } /** * @dev See {IERC721-approve}. */ function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } /** * @dev See {IERC721-getApproved}. */ function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } /** * @dev See {IERC721-setApprovalForAll}. */ function setApprovalForAll(address operator, bool approved) public virtual override { _setApprovalForAll(_msgSender(), operator, approved); } /** * @dev See {IERC721-isApprovedForAll}. */ function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } /** * @dev See {IERC721-transferFrom}. */ function transferFrom( address from, address to, uint256 tokenId ) public virtual override { //solhint-disable-next-line max-line-length require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } /** * @dev See {IERC721-safeTransferFrom}. */ function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } /** * @dev See {IERC721-safeTransferFrom}. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * `_data` is additional data, it has no specified format and it is sent in call to `to`. * * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g. * implement alternative mechanisms to perform token transfer, such as signature-based. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } /** * @dev Returns whether `tokenId` exists. * * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}. * * Tokens start existing when they are minted (`_mint`), * and stop existing when they are burned (`_burn`). */ function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } /** * @dev Returns whether `spender` is allowed to manage `tokenId`. * * Requirements: * * - `tokenId` must exist. */ function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } /** * @dev Safely mints `tokenId` and transfers it to `to`. * * Requirements: * * - `tokenId` must not exist. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } /** * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is * forwarded in {IERC721Receiver-onERC721Received} to contract recipients. */ function _safeMint( address to, uint256 tokenId, bytes memory _data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); } /** * @dev Mints `tokenId` and transfers it to `to`. * * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible * * Requirements: * * - `tokenId` must not exist. * - `to` cannot be the zero address. * * Emits a {Transfer} event. */ function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } /** * @dev Destroys `tokenId`. * The approval is cleared when the token is burned. * * Requirements: * * - `tokenId` must exist. * * Emits a {Transfer} event. */ function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); // Clear approvals _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } /** * @dev Transfers `tokenId` from `from` to `to`. * As opposed to {transferFrom}, this imposes no restrictions on msg.sender. * * Requirements: * * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * * Emits a {Transfer} event. */ function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); // Clear approvals from the previous owner _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } /** * @dev Approve `to` to operate on `tokenId` * * Emits a {Approval} event. */ function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } /** * @dev Approve `operator` to operate on all of `owner` tokens * * Emits a {ApprovalForAll} event. */ function _setApprovalForAll( address owner, address operator, bool approved ) internal virtual { require(owner != operator, "ERC721: approve to caller"); _operatorApprovals[owner][operator] = approved; emit ApprovalForAll(owner, operator, approved); } /** * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address. * The call is not executed if the target address is not a contract. * * @param from address representing the previous owner of the given token ID * @param to target address that will receive the tokens * @param tokenId uint256 ID of the token to be transferred * @param _data bytes optional data to send along with the call * @return bool whether the call correctly returned the expected magic value */ function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver.onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } /** * @dev Hook that is called before any token transfer. This includes minting * and burning. * * Calling conditions: * * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be * transferred to `to`. * - When `from` is zero, `tokenId` will be minted for `to`. * - When `to` is zero, ``from``'s `tokenId` will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} } // File: @openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol // OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721Enumerable.sol) pragma solidity ^0.8.0; /** * @dev This implements an optional extension of {ERC721} defined in the EIP that adds * enumerability of all the token ids in the contract as well as all token ids owned by each * account. */ abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { // Mapping from owner to list of owned token IDs mapping(address => mapping(uint256 => uint256)) private _ownedTokens; // Mapping from token ID to index of the owner tokens list mapping(uint256 => uint256) private _ownedTokensIndex; // Array with all token ids, used for enumeration uint256[] private _allTokens; // Mapping from token id to position in the allTokens array mapping(uint256 => uint256) private _allTokensIndex; /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); } /** * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}. */ function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); return _ownedTokens[owner][index]; } /** * @dev See {IERC721Enumerable-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _allTokens.length; } /** * @dev See {IERC721Enumerable-tokenByIndex}. */ function tokenByIndex(uint256 index) public view virtual override returns (uint256) { require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds"); return _allTokens[index]; } /** * @dev Hook that is called before any token transfer. This includes minting * and burning. * * Calling conditions: * * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be * transferred to `to`. * - When `from` is zero, `tokenId` will be minted for `to`. * - When `to` is zero, ``from``'s `tokenId` will be burned. * - `from` cannot be the zero address. * - `to` cannot be the zero address. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual override { super._beforeTokenTransfer(from, to, tokenId); if (from == address(0)) { _addTokenToAllTokensEnumeration(tokenId); } else if (from != to) { _removeTokenFromOwnerEnumeration(from, tokenId); } if (to == address(0)) { _removeTokenFromAllTokensEnumeration(tokenId); } else if (to != from) { _addTokenToOwnerEnumeration(to, tokenId); } } /** * @dev Private function to add a token to this extension's ownership-tracking data structures. * @param to address representing the new owner of the given token ID * @param tokenId uint256 ID of the token to be added to the tokens list of the given address */ function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { uint256 length = ERC721.balanceOf(to); _ownedTokens[to][length] = tokenId; _ownedTokensIndex[tokenId] = length; } /** * @dev Private function to add a token to this extension's token tracking data structures. * @param tokenId uint256 ID of the token to be added to the tokens list */ function _addTokenToAllTokensEnumeration(uint256 tokenId) private { _allTokensIndex[tokenId] = _allTokens.length; _allTokens.push(tokenId); } /** * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for * gas optimizations e.g. when performing a transfer operation (avoiding double writes). * This has O(1) time complexity, but alters the order of the _ownedTokens array. * @param from address representing the previous owner of the given token ID * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address */ function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and // then delete the last slot (swap and pop). uint256 lastTokenIndex = ERC721.balanceOf(from) - 1; uint256 tokenIndex = _ownedTokensIndex[tokenId]; // When the token to delete is the last token, the swap operation is unnecessary if (tokenIndex != lastTokenIndex) { uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index } // This also deletes the contents at the last position of the array delete _ownedTokensIndex[tokenId]; delete _ownedTokens[from][lastTokenIndex]; } /** * @dev Private function to remove a token from this extension's token tracking data structures. * This has O(1) time complexity, but alters the order of the _allTokens array. * @param tokenId uint256 ID of the token to be removed from the tokens list */ function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and // then delete the last slot (swap and pop). uint256 lastTokenIndex = _allTokens.length - 1; uint256 tokenIndex = _allTokensIndex[tokenId]; // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding // an 'if' statement (like in _removeTokenFromOwnerEnumeration) uint256 lastTokenId = _allTokens[lastTokenIndex]; _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index // This also deletes the contents at the last position of the array delete _allTokensIndex[tokenId]; _allTokens.pop(); } } // File: MRCRYPTO.sol /* . . 8 888888888o. .8. ,o888888o. 8 8888 ,88' d888888o. ,8. ,8. .8. 8 8888888888 8 8888 .8. 8 8888 `88. .888. 8888 `88. 8 8888 ,88' .`8888:' `88. ,888. ,888. .888. 8 8888 8 8888 .888. 8 8888 `88 :88888. ,8 8888 `8. 8 8888 ,88' 8.`8888. Y8 .`8888. .`8888. :88888. 8 8888 8 8888 :88888. 8 8888 ,88 . `88888. 88 8888 8 8888 ,88' `8.`8888. ,8.`8888. ,8.`8888. . `88888. 8 8888 8 8888 . `88888. 8 8888. ,88' .8. `88888. 88 8888 8 8888 ,88' `8.`8888. ,8'8.`8888,8^8.`8888. .8. `88888. 8 888888888888 8 8888 .8. `88888. 8 888888888P' .8`8. `88888. 88 8888 8 8888 88' `8.`8888. ,8' `8.`8888' `8.`8888. .8`8. `88888. 8 8888 8 8888 .8`8. `88888. 8 8888`8b .8' `8. `88888. 88 8888 8 888888< `8.`8888. ,8' `8.`88' `8.`8888. .8' `8. `88888. 8 8888 8 8888 .8' `8. `88888. 8 8888 `8b. .8' `8. `88888.`8 8888 .8' 8 8888 `Y8. 8b `8.`8888. ,8' `8.`' `8.`8888. .8' `8. `88888. 8 8888 8 8888 .8' `8. `88888. 8 8888 `8b. .888888888. `88888. 8888 ,88' 8 8888 `Y8. `8b. ;8.`8888 ,8' `8 `8.`8888. .888888888. `88888. 8 8888 8 8888 .888888888. `88888. 8 8888 `88. .8' `8. `88888. `8888888P' 8 8888 `Y8. `Y8888P ,88P' ,8' ` `8.`8888. .8' `8. `88888. 8 8888 8 8888 .8' `8. `88888. */ pragma solidity >=0.7.0 <0.9.0; contract MRCRYPTO is ERC721Enumerable, Ownable { using Strings for uint256; string baseURI; string public baseExtension = ".json"; string public notRevealedUri; uint256[3] public cost= [18.5 ether, 26 ether, 37 ether]; uint256 public totalMaxSupply = 10000; uint256 public previousMaxSupply = 0; uint256 public maxMintAmount = 20; bool public paused = true; bool public revealed = false; bool public whitelistOn = true; bool public lockURI = false; bool public lockExt = false; address liquidity = 0x9931F0108A281A0a4B78613156a039e6aEFc59e4; mapping(address => bool) public isWhitelisted; mapping(uint256 => bool) public reservedMints; mapping(address => bool) public isAdmin; constructor ( string memory _name, string memory _symbol, string memory _initBaseURI, string memory _initNotRevealedUri ) ERC721(_name, _symbol) { setBaseURI(_initBaseURI); setNotRevealedURI(_initNotRevealedUri); giveAway(1, 0x844435cD4f8Efab891a7e10a1A03e6ee8C47A366); //RACKS giveAway(1, 0x8407A400dAdFd053199b1e67Fe75ba1e9d76D3A1); //DEV1 giveAway(1, 0x0AeaC6D1424EA6d0F87123A50CA5eEc9f16108c5); //DEV2 giveAway(1, 0xbCbb32C0caC8833061D6281e934B20bb93004255); //DEV3 giveAway(1, 0xa3B17117F104e5965e98F07fe007784F6e3F3A2D); //PRESENT giveAway(1, 0x4aBb876da9c5A48D64753Cd077B3f5b870856ed8); //RACKS2 giveAway(1, 0xC608d2dD5AFA199a0c0E487Fdd669c1AD7459bE4); //DEV4 giveAway(3, 0x844435cD4f8Efab891a7e10a1A03e6ee8C47A366); //RACKS giveAway(3, 0x8407A400dAdFd053199b1e67Fe75ba1e9d76D3A1); //YONA giveAway(3, 0x0AeaC6D1424EA6d0F87123A50CA5eEc9f16108c5); //DEV2 giveAway(3, 0xbCbb32C0caC8833061D6281e934B20bb93004255); //DEV3 giveAway(3, 0x4aBb876da9c5A48D64753Cd077B3f5b870856ed8); //RACKS2 giveAway(3, 0xC608d2dD5AFA199a0c0E487Fdd669c1AD7459bE4); //DEV4 } modifier onlyAdmin { require(isAdmin[msg.sender] || msg.sender == owner()); _; } // internal function _baseURI() internal view virtual override returns (string memory) { return baseURI; } // public function mint(uint256 _mintAmount) public payable { uint256 supply = totalSupply(); uint256 phase = checkPhase(supply); require(!paused); if (whitelistOn == true) require(isWhitelisted[msg.sender] || msg.sender == owner()); require(_mintAmount > 0); require(_mintAmount <= maxMintAmount); require(supply + _mintAmount <= totalMaxSupply); if (msg.sender != owner()) require(msg.value >= cost[phase] * _mintAmount); for (uint256 i = 1; i <= _mintAmount; ++i) { _safeMint(msg.sender, supply + i); } } function reservedMint(uint256 _tokenId) public payable { uint256 supply = totalSupply(); require(!paused); require( ownerOf(_tokenId) == msg.sender, "you are not the owner of that NFT" ); require(supply + 1 <= totalMaxSupply); require( reservedMints[_tokenId] == false, "Token alredy used to mint at reserved price"); if (_tokenId <= 1000 ) { require(msg.value >= cost[0]); require(supply > 999 && supply <= 3999, "Supply is less than 1000"); _safeMint(msg.sender, supply + 1); reservedMints[_tokenId] = true; } else if (_tokenId <=4000) { require(msg.value >= cost[1]); require(supply > 3999); _safeMint(msg.sender, supply + 1); reservedMints[_tokenId] = true; } } function giveAway(uint256 _mintAmount, address _to) public payable onlyOwner { uint256 supply = totalSupply(); require(_mintAmount > 0); require(supply + _mintAmount <= totalMaxSupply); for (uint256 i = 1; i <= _mintAmount; ++i) { _safeMint(_to, supply + i); } } function checkPhase(uint256 _supply) pure internal returns (uint256) { if (_supply <= 1000) return 0; if (_supply <= 4000) return 1; return 2; } function walletOfOwner(address _owner) public view returns (uint256[] memory) { uint256 ownerTokenCount = balanceOf(_owner); uint256[] memory tokenIds = new uint256[](ownerTokenCount); for (uint256 i; i < ownerTokenCount; ++i) { tokenIds[i] = tokenOfOwnerByIndex(_owner, i); } return tokenIds; } function tokenUsed(uint256 _tokenId) public view returns(bool) { return reservedMints[_tokenId]; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require( _exists(tokenId), "ERC721Metadata: URI query for nonexistent token" ); if(revealed == false && tokenId > previousMaxSupply) return notRevealedUri; return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString(), baseExtension)) : ""; } //only owner function reveal() public onlyAdmin { revealed = true; previousMaxSupply = totalSupply(); } function revealAlreadyMinted() public onlyAdmin { previousMaxSupply = totalSupply(); } function setCost(uint256 _newCost, uint index) public onlyOwner { cost[index] = _newCost; } function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyAdmin { maxMintAmount = _newmaxMintAmount; } function setNotRevealedURI(string memory _notRevealedURI) public onlyAdmin { notRevealedUri = _notRevealedURI; } function setBaseURI(string memory _newBaseURI) public onlyOwner { baseURI = _newBaseURI; } function setBaseExtension(string memory _newBaseExtension) public onlyOwner { baseExtension = _newBaseExtension; } function playPause() public onlyAdmin { revealed = false; paused = !paused; } function withdraw() public payable onlyAdmin { uint256 each = (address(this).balance * 3)/100; uint256 help = (address(this).balance * 2)/100; // ============================================================================= (bool DEV2, ) = 0x0AeaC6D1424EA6d0F87123A50CA5eEc9f16108c5.call{value: each}(""); require(DEV2, "transaction failed"); (bool DEV3, ) = 0xbCbb32C0caC8833061D6281e934B20bb93004255.call{value: each}(""); require(DEV3, "transaction failed"); (bool DEV1, ) = 0x8407A400dAdFd053199b1e67Fe75ba1e9d76D3A1.call{value: each}(""); require(DEV1, "transaction failed"); (bool DEV4, ) = 0xC608d2dD5AFA199a0c0E487Fdd669c1AD7459bE4.call{value: each}(""); require(DEV4, "transaction failed"); (bool PRESENT, ) = 0xa3B17117F104e5965e98F07fe007784F6e3F3A2D.call{value: help}(""); require(PRESENT, "transaction failed"); (bool RACKS, ) = liquidity.call{value: address(this).balance}(""); require(RACKS, "transaction failed"); // ============================================================================= } function setWhitelistPhase () public onlyAdmin { whitelistOn = !whitelistOn; } function addToWhitelist(address[] memory wallets) public onlyAdmin { for (uint256 i = 0; i < wallets.length; ++i) isWhitelisted[wallets[i]] = true; } function addAdmin (address _add) public onlyOwner { isAdmin[_add] = true; } function changeLiquidity(address _new) public onlyOwner { liquidity = _new; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_initBaseURI","type":"string"},{"internalType":"string","name":"_initNotRevealedUri","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_add","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","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":"baseExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"changeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"giveAway","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockExt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockURI","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notRevealedUri","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":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"playPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"previousMaxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"reservedMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"reservedMints","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealAlreadyMinted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"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":"_newBaseExtension","type":"string"}],"name":"setBaseExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCost","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_notRevealedURI","type":"string"}],"name":"setNotRevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setWhitelistPhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxMintAmount","type":"uint256"}],"name":"setmaxMintAmount","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":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenUsed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMaxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whitelistOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600c908051906020019062000051929190620011bf565b506040518060600160405280680100bd33fb98ba000068ffffffffffffffffff168152602001680168d28e3f0028000068ffffffffffffffffff1681526020016802017a67f73174000068ffffffffffffffffff16815250600e906003620000bb92919062001250565b50612710601155600060125560146013556001601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff0219169083151502179055506000601460036101000a81548160ff0219169083151502179055506000601460046101000a81548160ff021916908315150217905550739931f0108a281a0a4b78613156a039e6aefc59e4601460056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001b557600080fd5b50604051620073ea380380620073ea8339818101604052810190620001db919062001388565b83838160009080519060200190620001f5929190620011bf565b5080600190805190602001906200020e929190620011bf565b50505062000231620002256200045860201b60201c565b6200046060201b60201c565b62000242826200052660201b60201c565b6200025381620005d160201b60201c565b6200027a600173844435cd4f8efab891a7e10a1a03e6ee8c47a3666200068a60201b60201c565b620002a16001738407a400dadfd053199b1e67fe75ba1e9d76d3a16200068a60201b60201c565b620002c86001730aeac6d1424ea6d0f87123a50ca5eec9f16108c56200068a60201b60201c565b620002ef600173bcbb32c0cac8833061d6281e934b20bb930042556200068a60201b60201c565b62000316600173a3b17117f104e5965e98f07fe007784f6e3f3a2d6200068a60201b60201c565b6200033d6001734abb876da9c5a48d64753cd077b3f5b870856ed86200068a60201b60201c565b62000364600173c608d2dd5afa199a0c0e487fdd669c1ad7459be46200068a60201b60201c565b6200038b600373844435cd4f8efab891a7e10a1a03e6ee8c47a3666200068a60201b60201c565b620003b26003738407a400dadfd053199b1e67fe75ba1e9d76d3a16200068a60201b60201c565b620003d96003730aeac6d1424ea6d0f87123a50ca5eec9f16108c56200068a60201b60201c565b62000400600373bcbb32c0cac8833061d6281e934b20bb930042556200068a60201b60201c565b620004276003734abb876da9c5a48d64753cd077b3f5b870856ed86200068a60201b60201c565b6200044e600373c608d2dd5afa199a0c0e487fdd669c1ad7459be46200068a60201b60201c565b5050505062001b5b565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005366200045860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200055c620007a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620005b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005ac9062001678565b60405180910390fd5b80600b9080519060200190620005cd929190620011bf565b5050565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168062000664575062000635620007a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6200066e57600080fd5b80600d908051906020019062000686929190620011bf565b5050565b6200069a6200045860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006c0620007a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000719576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007109062001678565b60405180910390fd5b60006200072b620007ca60201b60201c565b9050600083116200073b57600080fd5b60115483826200074c919062001726565b11156200075857600080fd5b6000600190505b8381116200079a57620007868382846200077a919062001726565b620007d760201b60201c565b806200079290620018ca565b90506200075f565b50505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600880549050905090565b620007f9828260405180602001604052806000815250620007fd60201b60201c565b5050565b6200080f83836200086b60201b60201c565b62000824600084848462000a5160201b60201c565b62000866576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200085d90620015f0565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620008de576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d59062001656565b60405180910390fd5b620008ef8162000c0b60201b60201c565b1562000932576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009299062001612565b60405180910390fd5b620009466000838362000c7760201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000998919062001726565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600062000a7f8473ffffffffffffffffffffffffffffffffffffffff1662000dbe60201b62002c201760201c565b1562000bfe578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0262000ab16200045860201b60201c565b8786866040518563ffffffff1660e01b815260040162000ad594939291906200159c565b602060405180830381600087803b15801562000af057600080fd5b505af192505050801562000b2457506040513d601f19601f8201168201806040525081019062000b21919062001356565b60015b62000bad573d806000811462000b57576040519150601f19603f3d011682016040523d82523d6000602084013e62000b5c565b606091505b5060008151141562000ba5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b9c90620015f0565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505062000c03565b600190505b949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b62000c8f83838362000dd160201b62002c331760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000cdc5762000cd68162000dd660201b60201c565b62000d24565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000d235762000d22838262000e1f60201b60201c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000d715762000d6b8162000f9c60201b60201c565b62000db9565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000db85762000db782826200107860201b60201c565b5b5b505050565b600080823b905060008111915050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600162000e39846200110460201b62001bcd1760201c565b62000e45919062001783565b905060006007600084815260200190815260200160002054905081811462000f2b576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905062000fb2919062001783565b905060006009600084815260200190815260200160002054905060006008838154811062000fe55762000fe4620019a5565b5b9060005260206000200154905080600883815481106200100a5762001009620019a5565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806200105c576200105b62001976565b5b6001900381819060005260206000200160009055905550505050565b600062001090836200110460201b62001bcd1760201c565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562001178576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200116f9062001634565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b828054620011cd906200185e565b90600052602060002090601f016020900481019282620011f157600085556200123d565b82601f106200120c57805160ff19168380011785556200123d565b828001600101855582156200123d579182015b828111156200123c5782518255916020019190600101906200121f565b5b5090506200124c9190620012a2565b5090565b82600381019282156200128f579160200282015b828111156200128e578251829068ffffffffffffffffff1690559160200191906001019062001264565b5b5090506200129e9190620012a2565b5090565b5b80821115620012bd576000816000905550600101620012a3565b5090565b6000620012d8620012d284620016c3565b6200169a565b905082815260208101848484011115620012f757620012f662001a08565b5b6200130484828562001828565b509392505050565b6000815190506200131d8162001b41565b92915050565b600082601f8301126200133b576200133a62001a03565b5b81516200134d848260208601620012c1565b91505092915050565b6000602082840312156200136f576200136e62001a12565b5b60006200137f848285016200130c565b91505092915050565b60008060008060808587031215620013a557620013a462001a12565b5b600085015167ffffffffffffffff811115620013c657620013c562001a0d565b5b620013d48782880162001323565b945050602085015167ffffffffffffffff811115620013f857620013f762001a0d565b5b620014068782880162001323565b935050604085015167ffffffffffffffff8111156200142a576200142962001a0d565b5b620014388782880162001323565b925050606085015167ffffffffffffffff8111156200145c576200145b62001a0d565b5b6200146a8782880162001323565b91505092959194509250565b6200148181620017be565b82525050565b60006200149482620016f9565b620014a0818562001704565b9350620014b281856020860162001828565b620014bd8162001a17565b840191505092915050565b6000620014d760328362001715565b9150620014e48262001a28565b604082019050919050565b6000620014fe601c8362001715565b91506200150b8262001a77565b602082019050919050565b600062001525602a8362001715565b9150620015328262001aa0565b604082019050919050565b60006200154c60208362001715565b9150620015598262001aef565b602082019050919050565b60006200157360208362001715565b9150620015808262001b18565b602082019050919050565b62001596816200181e565b82525050565b6000608082019050620015b3600083018762001476565b620015c2602083018662001476565b620015d160408301856200158b565b8181036060830152620015e5818462001487565b905095945050505050565b600060208201905081810360008301526200160b81620014c8565b9050919050565b600060208201905081810360008301526200162d81620014ef565b9050919050565b600060208201905081810360008301526200164f8162001516565b9050919050565b6000602082019050818103600083015262001671816200153d565b9050919050565b60006020820190508181036000830152620016938162001564565b9050919050565b6000620016a6620016b9565b9050620016b4828262001894565b919050565b6000604051905090565b600067ffffffffffffffff821115620016e157620016e0620019d4565b5b620016ec8262001a17565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600062001733826200181e565b915062001740836200181e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001778576200177762001918565b5b828201905092915050565b600062001790826200181e565b91506200179d836200181e565b925082821015620017b357620017b262001918565b5b828203905092915050565b6000620017cb82620017fe565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620018485780820151818401526020810190506200182b565b8381111562001858576000848401525b50505050565b600060028204905060018216806200187757607f821691505b602082108114156200188e576200188d62001947565b5b50919050565b6200189f8262001a17565b810181811067ffffffffffffffff82111715620018c157620018c0620019d4565b5b80604052505050565b6000620018d7826200181e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200190d576200190c62001918565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b62001b4c81620017d2565b811462001b5857600080fd5b50565b61587f8062001b6b6000396000f3fe6080604052600436106102e45760003560e01c80637048027511610190578063a22cb465116100dc578063c8eb449e11610095578063e985e9c51161006f578063e985e9c514610b02578063f2c4ce1e14610b3f578063f2fde38b14610b68578063f376b2f614610b91576102e4565b8063c8eb449e14610a85578063d4c520b614610ac2578063da3ef23f14610ad9576102e4565b8063a22cb46514610977578063a475b5dd146109a0578063b7d1a1e1146109b7578063b88d4fde146109f4578063c668286214610a1d578063c87b56dd14610a48576102e4565b80638c74bf0e116101495780639097548d116101235780639097548d146108c857806395d89b4114610905578063a0617ad014610930578063a0712d681461095b576102e4565b80638c74bf0e146108565780638da5cb5b146108725780638e021c061461089d576102e4565b8063704802751461075e57806370a0823114610787578063715018a6146107c45780637696e088146107db5780637f00c7a6146108045780637f6497831461082d576102e4565b806324d7806c1161024f578063438b63001161020857806351830227116101e257806351830227146106a257806355f804b3146106cd5780635c975abb146106f65780636352211e14610721576102e4565b8063438b6300146105fd5780634917aa3f1461063a5780634f6ccce714610665576102e4565b806324d7806c146104f7578063261d3b21146105345780632f745c59146105505780633af32abf1461058d5780633ccfd60b146105ca57806342842e0e146105d4576102e4565b80631155fb91116102a15780631155fb911461040d57806318160ddd146104385780631d7398fe14610463578063239c70ae1461048c57806323b872dd146104b757806323e699e0146104e0576102e4565b806301ffc9a7146102e957806306fdde0314610326578063081812fc14610351578063081c8c441461038e578063095ea7b3146103b95780630de1ff62146103e2575b600080fd5b3480156102f557600080fd5b50610310600480360381019061030b9190614299565b610ba8565b60405161031d91906149b1565b60405180910390f35b34801561033257600080fd5b5061033b610c22565b60405161034891906149cc565b60405180910390f35b34801561035d57600080fd5b506103786004803603810190610373919061433c565b610cb4565b6040516103859190614928565b60405180910390f35b34801561039a57600080fd5b506103a3610d39565b6040516103b091906149cc565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db9190614210565b610dc7565b005b3480156103ee57600080fd5b506103f7610edf565b6040516104049190614cae565b60405180910390f35b34801561041957600080fd5b50610422610ee5565b60405161042f91906149b1565b60405180910390f35b34801561044457600080fd5b5061044d610ef8565b60405161045a9190614cae565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061408d565b610f05565b005b34801561049857600080fd5b506104a1610fc5565b6040516104ae9190614cae565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d991906140fa565b610fcb565b005b3480156104ec57600080fd5b506104f561102b565b005b34801561050357600080fd5b5061051e6004803603810190610519919061408d565b611105565b60405161052b91906149b1565b60405180910390f35b61054e60048036038101906105499190614369565b611125565b005b34801561055c57600080fd5b5061057760048036038101906105729190614210565b61120e565b6040516105849190614cae565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af919061408d565b6112b3565b6040516105c191906149b1565b60405180910390f35b6105d26112d3565b005b3480156105e057600080fd5b506105fb60048036038101906105f691906140fa565b611838565b005b34801561060957600080fd5b50610624600480360381019061061f919061408d565b611858565b604051610631919061498f565b60405180910390f35b34801561064657600080fd5b5061064f611904565b60405161065c91906149b1565b60405180910390f35b34801561067157600080fd5b5061068c6004803603810190610687919061433c565b611917565b6040516106999190614cae565b60405180910390f35b3480156106ae57600080fd5b506106b7611988565b6040516106c491906149b1565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef91906142f3565b61199b565b005b34801561070257600080fd5b5061070b611a31565b60405161071891906149b1565b60405180910390f35b34801561072d57600080fd5b506107486004803603810190610743919061433c565b611a44565b6040516107559190614928565b60405180910390f35b34801561076a57600080fd5b506107856004803603810190610780919061408d565b611af6565b005b34801561079357600080fd5b506107ae60048036038101906107a9919061408d565b611bcd565b6040516107bb9190614cae565b60405180910390f35b3480156107d057600080fd5b506107d9611c85565b005b3480156107e757600080fd5b5061080260048036038101906107fd91906143a9565b611d0d565b005b34801561081057600080fd5b5061082b6004803603810190610826919061433c565b611da7565b005b34801561083957600080fd5b50610854600480360381019061084f9190614250565b611e44565b005b610870600480360381019061086b919061433c565b611f6a565b005b34801561087e57600080fd5b506108876121cf565b6040516108949190614928565b60405180910390f35b3480156108a957600080fd5b506108b26121f9565b6040516108bf91906149b1565b60405180910390f35b3480156108d457600080fd5b506108ef60048036038101906108ea919061433c565b61220c565b6040516108fc9190614cae565b60405180910390f35b34801561091157600080fd5b5061091a612227565b60405161092791906149cc565b60405180910390f35b34801561093c57600080fd5b506109456122b9565b6040516109529190614cae565b60405180910390f35b6109756004803603810190610970919061433c565b6122bf565b005b34801561098357600080fd5b5061099e600480360381019061099991906141d0565b61247a565b005b3480156109ac57600080fd5b506109b5612490565b005b3480156109c357600080fd5b506109de60048036038101906109d9919061433c565b61254e565b6040516109eb91906149b1565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a16919061414d565b61256e565b005b348015610a2957600080fd5b50610a326125d0565b604051610a3f91906149cc565b60405180910390f35b348015610a5457600080fd5b50610a6f6004803603810190610a6a919061433c565b61265e565b604051610a7c91906149cc565b60405180910390f35b348015610a9157600080fd5b50610aac6004803603810190610aa7919061433c565b6127c5565b604051610ab991906149b1565b60405180910390f35b348015610ace57600080fd5b50610ad76127ef565b005b348015610ae557600080fd5b50610b006004803603810190610afb91906142f3565b612892565b005b348015610b0e57600080fd5b50610b296004803603810190610b2491906140ba565b612928565b604051610b3691906149b1565b60405180910390f35b348015610b4b57600080fd5b50610b666004803603810190610b6191906142f3565b6129bc565b005b348015610b7457600080fd5b50610b8f6004803603810190610b8a919061408d565b612a69565b005b348015610b9d57600080fd5b50610ba6612b61565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c1b5750610c1a82612c38565b5b9050919050565b606060008054610c3190614fe3565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5d90614fe3565b8015610caa5780601f10610c7f57610100808354040283529160200191610caa565b820191906000526020600020905b815481529060010190602001808311610c8d57829003601f168201915b5050505050905090565b6000610cbf82612d1a565b610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf590614bae565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600d8054610d4690614fe3565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7290614fe3565b8015610dbf5780601f10610d9457610100808354040283529160200191610dbf565b820191906000526020600020905b815481529060010190602001808311610da257829003601f168201915b505050505081565b6000610dd282611a44565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a90614c2e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610e62612d86565b73ffffffffffffffffffffffffffffffffffffffff161480610e915750610e9081610e8b612d86565b612928565b5b610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec790614b0e565b60405180910390fd5b610eda8383612d8e565b505050565b60125481565b601460049054906101000a900460ff1681565b6000600880549050905090565b610f0d612d86565b73ffffffffffffffffffffffffffffffffffffffff16610f2b6121cf565b73ffffffffffffffffffffffffffffffffffffffff1614610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890614bce565b60405180910390fd5b80601460056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b610fdc610fd6612d86565b82612e47565b61101b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101290614c4e565b60405180910390fd5b611026838383612f25565b505050565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806110b557506110866121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110be57600080fd5b6000601460016101000a81548160ff021916908315150217905550601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b60176020528060005260406000206000915054906101000a900460ff1681565b61112d612d86565b73ffffffffffffffffffffffffffffffffffffffff1661114b6121cf565b73ffffffffffffffffffffffffffffffffffffffff16146111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890614bce565b60405180910390fd5b60006111ab610ef8565b9050600083116111ba57600080fd5b60115483826111c99190614e18565b11156111d457600080fd5b6000600190505b838111611208576111f78382846111f29190614e18565b613181565b8061120190615046565b90506111db565b50505050565b600061121983611bcd565b821061125a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611251906149ee565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061135d575061132e6121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61136657600080fd5b600060646003476113779190614e9f565b6113819190614e6e565b9050600060646002476113949190614e9f565b61139e9190614e6e565b90506000730aeac6d1424ea6d0f87123a50ca5eec9f16108c573ffffffffffffffffffffffffffffffffffffffff16836040516113da90614913565b60006040518083038185875af1925050503d8060008114611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b5050905080611460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145790614c8e565b60405180910390fd5b600073bcbb32c0cac8833061d6281e934b20bb9300425573ffffffffffffffffffffffffffffffffffffffff168460405161149a90614913565b60006040518083038185875af1925050503d80600081146114d7576040519150601f19603f3d011682016040523d82523d6000602084013e6114dc565b606091505b5050905080611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790614c8e565b60405180910390fd5b6000738407a400dadfd053199b1e67fe75ba1e9d76d3a173ffffffffffffffffffffffffffffffffffffffff168560405161155a90614913565b60006040518083038185875af1925050503d8060008114611597576040519150601f19603f3d011682016040523d82523d6000602084013e61159c565b606091505b50509050806115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d790614c8e565b60405180910390fd5b600073c608d2dd5afa199a0c0e487fdd669c1ad7459be473ffffffffffffffffffffffffffffffffffffffff168660405161161a90614913565b60006040518083038185875af1925050503d8060008114611657576040519150601f19603f3d011682016040523d82523d6000602084013e61165c565b606091505b50509050806116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169790614c8e565b60405180910390fd5b600073a3b17117f104e5965e98f07fe007784f6e3f3a2d73ffffffffffffffffffffffffffffffffffffffff16866040516116da90614913565b60006040518083038185875af1925050503d8060008114611717576040519150601f19603f3d011682016040523d82523d6000602084013e61171c565b606091505b5050905080611760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175790614c8e565b60405180910390fd5b6000601460059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516117a890614913565b60006040518083038185875af1925050503d80600081146117e5576040519150601f19603f3d011682016040523d82523d6000602084013e6117ea565b606091505b505090508061182e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182590614c8e565b60405180910390fd5b5050505050505050565b6118538383836040518060200160405280600081525061256e565b505050565b6060600061186583611bcd565b905060008167ffffffffffffffff811115611883576118826151ab565b5b6040519080825280602002602001820160405280156118b15781602001602082028036833780820191505090505b50905060005b828110156118f9576118c9858261120e565b8282815181106118dc576118db61517c565b5b602002602001018181525050806118f290615046565b90506118b7565b508092505050919050565b601460029054906101000a900460ff1681565b6000611921610ef8565b8210611962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195990614c6e565b60405180910390fd5b600882815481106119765761197561517c565b5b90600052602060002001549050919050565b601460019054906101000a900460ff1681565b6119a3612d86565b73ffffffffffffffffffffffffffffffffffffffff166119c16121cf565b73ffffffffffffffffffffffffffffffffffffffff1614611a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0e90614bce565b60405180910390fd5b80600b9080519060200190611a2d929190613e03565b5050565b601460009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae490614b4e565b60405180910390fd5b80915050919050565b611afe612d86565b73ffffffffffffffffffffffffffffffffffffffff16611b1c6121cf565b73ffffffffffffffffffffffffffffffffffffffff1614611b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6990614bce565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3590614b2e565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611c8d612d86565b73ffffffffffffffffffffffffffffffffffffffff16611cab6121cf565b73ffffffffffffffffffffffffffffffffffffffff1614611d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf890614bce565b60405180910390fd5b611d0b600061319f565b565b611d15612d86565b73ffffffffffffffffffffffffffffffffffffffff16611d336121cf565b73ffffffffffffffffffffffffffffffffffffffff1614611d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8090614bce565b60405180910390fd5b81600e8260038110611d9e57611d9d61517c565b5b01819055505050565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e315750611e026121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611e3a57600080fd5b8060138190555050565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ece5750611e9f6121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611ed757600080fd5b60005b8151811015611f6657600160156000848481518110611efc57611efb61517c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611f5f90615046565b9050611eda565b5050565b6000611f74610ef8565b9050601460009054906101000a900460ff1615611f9057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16611fb083611a44565b73ffffffffffffffffffffffffffffffffffffffff1614612006576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ffd90614a2e565b60405180910390fd5b6011546001826120169190614e18565b111561202157600080fd5b600015156016600084815260200190815260200160002060009054906101000a900460ff16151514612088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207f90614b6e565b60405180910390fd5b6103e8821161214d57600e6000600381106120a6576120a561517c565b5b01543410156120b457600080fd5b6103e7811180156120c75750610f9f8111155b612106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fd90614aee565b60405180910390fd5b61211c336001836121179190614e18565b613181565b60016016600084815260200190815260200160002060006101000a81548160ff0219169083151502179055506121cb565b610fa082116121ca57600e60016003811061216b5761216a61517c565b5b015434101561217957600080fd5b610f9f811161218757600080fd5b61219d336001836121989190614e18565b613181565b60016016600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601460039054906101000a900460ff1681565b600e816003811061221c57600080fd5b016000915090505481565b60606001805461223690614fe3565b80601f016020809104026020016040519081016040528092919081815260200182805461226290614fe3565b80156122af5780601f10612284576101008083540402835291602001916122af565b820191906000526020600020905b81548152906001019060200180831161229257829003601f168201915b5050505050905090565b60115481565b60006122c9610ef8565b905060006122d682613265565b9050601460009054906101000a900460ff16156122f257600080fd5b60011515601460029054906101000a900460ff16151514156123a257601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061239857506123696121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6123a157600080fd5b5b600083116123af57600080fd5b6013548311156123be57600080fd5b60115483836123cd9190614e18565b11156123d857600080fd5b6123e06121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124405782600e82600381106124275761242661517c565b5b01546124339190614e9f565b34101561243f57600080fd5b5b6000600190505b8381116124745761246333828561245e9190614e18565b613181565b8061246d90615046565b9050612447565b50505050565b61248c612485612d86565b8383613295565b5050565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061251a57506124eb6121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61252357600080fd5b6001601460016101000a81548160ff021916908315150217905550612546610ef8565b601281905550565b60166020528060005260406000206000915054906101000a900460ff1681565b61257f612579612d86565b83612e47565b6125be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b590614c4e565b60405180910390fd5b6125ca84848484613402565b50505050565b600c80546125dd90614fe3565b80601f016020809104026020016040519081016040528092919081815260200182805461260990614fe3565b80156126565780601f1061262b57610100808354040283529160200191612656565b820191906000526020600020905b81548152906001019060200180831161263957829003601f168201915b505050505081565b606061266982612d1a565b6126a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269f90614c0e565b60405180910390fd5b60001515601460019054906101000a900460ff1615151480156126cc575060125482115b1561276357600d80546126de90614fe3565b80601f016020809104026020016040519081016040528092919081815260200182805461270a90614fe3565b80156127575780601f1061272c57610100808354040283529160200191612757565b820191906000526020600020905b81548152906001019060200180831161273a57829003601f168201915b505050505090506127c0565b6000600b805461277290614fe3565b90501161278e57604051806020016040528060008152506127bd565b600b6127998361345e565b600c6040516020016127ad939291906148e2565b6040516020818303038152906040525b90505b919050565b60006016600083815260200190815260200160002060009054906101000a900460ff169050919050565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612879575061284a6121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61288257600080fd5b61288a610ef8565b601281905550565b61289a612d86565b73ffffffffffffffffffffffffffffffffffffffff166128b86121cf565b73ffffffffffffffffffffffffffffffffffffffff161461290e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290590614bce565b60405180910390fd5b80600c9080519060200190612924929190613e03565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a465750612a176121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612a4f57600080fd5b80600d9080519060200190612a65929190613e03565b5050565b612a71612d86565b73ffffffffffffffffffffffffffffffffffffffff16612a8f6121cf565b73ffffffffffffffffffffffffffffffffffffffff1614612ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adc90614bce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4c90614a4e565b60405180910390fd5b612b5e8161319f565b50565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612beb5750612bbc6121cf565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612bf457600080fd5b601460029054906101000a900460ff1615601460026101000a81548160ff021916908315150217905550565b600080823b905060008111915050919050565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612d0357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612d135750612d12826135bf565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612e0183611a44565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612e5282612d1a565b612e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8890614ace565b60405180910390fd5b6000612e9c83611a44565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612f0b57508373ffffffffffffffffffffffffffffffffffffffff16612ef384610cb4565b73ffffffffffffffffffffffffffffffffffffffff16145b80612f1c5750612f1b8185612928565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612f4582611a44565b73ffffffffffffffffffffffffffffffffffffffff1614612f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f9290614bee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561300b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300290614a8e565b60405180910390fd5b613016838383613629565b613021600082612d8e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130719190614ef9565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130c89190614e18565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61319b82826040518060200160405280600081525061373d565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006103e882116132795760009050613290565b610fa0821161328b5760019050613290565b600290505b919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fb90614aae565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516133f591906149b1565b60405180910390a3505050565b61340d848484612f25565b61341984848484613798565b613458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161344f90614a0e565b60405180910390fd5b50505050565b606060008214156134a6576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506135ba565b600082905060005b600082146134d85780806134c190615046565b915050600a826134d19190614e6e565b91506134ae565b60008167ffffffffffffffff8111156134f4576134f36151ab565b5b6040519080825280601f01601f1916602001820160405280156135265781602001600182028036833780820191505090505b5090505b600085146135b35760018261353f9190614ef9565b9150600a8561354e919061508f565b603061355a9190614e18565b60f81b8183815181106135705761356f61517c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856135ac9190614e6e565b945061352a565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b613634838383612c33565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613677576136728161392f565b6136b6565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146136b5576136b48382613978565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156136f9576136f481613ae5565b613738565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614613737576137368282613bb6565b5b5b505050565b6137478383613c35565b6137546000848484613798565b613793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378a90614a0e565b60405180910390fd5b505050565b60006137b98473ffffffffffffffffffffffffffffffffffffffff16612c20565b15613922578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026137e2612d86565b8786866040518563ffffffff1660e01b81526004016138049493929190614943565b602060405180830381600087803b15801561381e57600080fd5b505af192505050801561384f57506040513d601f19601f8201168201806040525081019061384c91906142c6565b60015b6138d2573d806000811461387f576040519150601f19603f3d011682016040523d82523d6000602084013e613884565b606091505b506000815114156138ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138c190614a0e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613927565b600190505b949350505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161398584611bcd565b61398f9190614ef9565b9050600060076000848152602001908152602001600020549050818114613a74576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050613af99190614ef9565b9050600060096000848152602001908152602001600020549050600060088381548110613b2957613b2861517c565b5b906000526020600020015490508060088381548110613b4b57613b4a61517c565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480613b9a57613b9961514d565b5b6001900381819060005260206000200160009055905550505050565b6000613bc183611bcd565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c9c90614b8e565b60405180910390fd5b613cae81612d1a565b15613cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ce590614a6e565b60405180910390fd5b613cfa60008383613629565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613d4a9190614e18565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b828054613e0f90614fe3565b90600052602060002090601f016020900481019282613e315760008555613e78565b82601f10613e4a57805160ff1916838001178555613e78565b82800160010185558215613e78579182015b82811115613e77578251825591602001919060010190613e5c565b5b509050613e859190613e89565b5090565b5b80821115613ea2576000816000905550600101613e8a565b5090565b6000613eb9613eb484614cee565b614cc9565b90508083825260208201905082856020860282011115613edc57613edb6151df565b5b60005b85811015613f0c5781613ef28882613f9a565b845260208401935060208301925050600181019050613edf565b5050509392505050565b6000613f29613f2484614d1a565b614cc9565b905082815260208101848484011115613f4557613f446151e4565b5b613f50848285614fa1565b509392505050565b6000613f6b613f6684614d4b565b614cc9565b905082815260208101848484011115613f8757613f866151e4565b5b613f92848285614fa1565b509392505050565b600081359050613fa9816157ed565b92915050565b600082601f830112613fc457613fc36151da565b5b8135613fd4848260208601613ea6565b91505092915050565b600081359050613fec81615804565b92915050565b6000813590506140018161581b565b92915050565b6000815190506140168161581b565b92915050565b600082601f830112614031576140306151da565b5b8135614041848260208601613f16565b91505092915050565b600082601f83011261405f5761405e6151da565b5b813561406f848260208601613f58565b91505092915050565b60008135905061408781615832565b92915050565b6000602082840312156140a3576140a26151ee565b5b60006140b184828501613f9a565b91505092915050565b600080604083850312156140d1576140d06151ee565b5b60006140df85828601613f9a565b92505060206140f085828601613f9a565b9150509250929050565b600080600060608486031215614113576141126151ee565b5b600061412186828701613f9a565b935050602061413286828701613f9a565b925050604061414386828701614078565b9150509250925092565b60008060008060808587031215614167576141666151ee565b5b600061417587828801613f9a565b945050602061418687828801613f9a565b935050604061419787828801614078565b925050606085013567ffffffffffffffff8111156141b8576141b76151e9565b5b6141c48782880161401c565b91505092959194509250565b600080604083850312156141e7576141e66151ee565b5b60006141f585828601613f9a565b925050602061420685828601613fdd565b9150509250929050565b60008060408385031215614227576142266151ee565b5b600061423585828601613f9a565b925050602061424685828601614078565b9150509250929050565b600060208284031215614266576142656151ee565b5b600082013567ffffffffffffffff811115614284576142836151e9565b5b61429084828501613faf565b91505092915050565b6000602082840312156142af576142ae6151ee565b5b60006142bd84828501613ff2565b91505092915050565b6000602082840312156142dc576142db6151ee565b5b60006142ea84828501614007565b91505092915050565b600060208284031215614309576143086151ee565b5b600082013567ffffffffffffffff811115614327576143266151e9565b5b6143338482850161404a565b91505092915050565b600060208284031215614352576143516151ee565b5b600061436084828501614078565b91505092915050565b600080604083850312156143805761437f6151ee565b5b600061438e85828601614078565b925050602061439f85828601613f9a565b9150509250929050565b600080604083850312156143c0576143bf6151ee565b5b60006143ce85828601614078565b92505060206143df85828601614078565b9150509250929050565b60006143f583836148c4565b60208301905092915050565b61440a81614f2d565b82525050565b600061441b82614da1565b6144258185614dcf565b935061443083614d7c565b8060005b8381101561446157815161444888826143e9565b975061445383614dc2565b925050600181019050614434565b5085935050505092915050565b61447781614f3f565b82525050565b600061448882614dac565b6144928185614de0565b93506144a2818560208601614fb0565b6144ab816151f3565b840191505092915050565b60006144c182614db7565b6144cb8185614dfc565b93506144db818560208601614fb0565b6144e4816151f3565b840191505092915050565b60006144fa82614db7565b6145048185614e0d565b9350614514818560208601614fb0565b80840191505092915050565b6000815461452d81614fe3565b6145378186614e0d565b94506001821660008114614552576001811461456357614596565b60ff19831686528186019350614596565b61456c85614d8c565b60005b8381101561458e5781548189015260018201915060208101905061456f565b838801955050505b50505092915050565b60006145ac602b83614dfc565b91506145b782615204565b604082019050919050565b60006145cf603283614dfc565b91506145da82615253565b604082019050919050565b60006145f2602183614dfc565b91506145fd826152a2565b604082019050919050565b6000614615602683614dfc565b9150614620826152f1565b604082019050919050565b6000614638601c83614dfc565b915061464382615340565b602082019050919050565b600061465b602483614dfc565b915061466682615369565b604082019050919050565b600061467e601983614dfc565b9150614689826153b8565b602082019050919050565b60006146a1602c83614dfc565b91506146ac826153e1565b604082019050919050565b60006146c4601883614dfc565b91506146cf82615430565b602082019050919050565b60006146e7603883614dfc565b91506146f282615459565b604082019050919050565b600061470a602a83614dfc565b9150614715826154a8565b604082019050919050565b600061472d602983614dfc565b9150614738826154f7565b604082019050919050565b6000614750602b83614dfc565b915061475b82615546565b604082019050919050565b6000614773602083614dfc565b915061477e82615595565b602082019050919050565b6000614796602c83614dfc565b91506147a1826155be565b604082019050919050565b60006147b9602083614dfc565b91506147c48261560d565b602082019050919050565b60006147dc602983614dfc565b91506147e782615636565b604082019050919050565b60006147ff602f83614dfc565b915061480a82615685565b604082019050919050565b6000614822602183614dfc565b915061482d826156d4565b604082019050919050565b6000614845600083614df1565b915061485082615723565b600082019050919050565b6000614868603183614dfc565b915061487382615726565b604082019050919050565b600061488b602c83614dfc565b915061489682615775565b604082019050919050565b60006148ae601283614dfc565b91506148b9826157c4565b602082019050919050565b6148cd81614f97565b82525050565b6148dc81614f97565b82525050565b60006148ee8286614520565b91506148fa82856144ef565b91506149068284614520565b9150819050949350505050565b600061491e82614838565b9150819050919050565b600060208201905061493d6000830184614401565b92915050565b60006080820190506149586000830187614401565b6149656020830186614401565b61497260408301856148d3565b8181036060830152614984818461447d565b905095945050505050565b600060208201905081810360008301526149a98184614410565b905092915050565b60006020820190506149c6600083018461446e565b92915050565b600060208201905081810360008301526149e681846144b6565b905092915050565b60006020820190508181036000830152614a078161459f565b9050919050565b60006020820190508181036000830152614a27816145c2565b9050919050565b60006020820190508181036000830152614a47816145e5565b9050919050565b60006020820190508181036000830152614a6781614608565b9050919050565b60006020820190508181036000830152614a878161462b565b9050919050565b60006020820190508181036000830152614aa78161464e565b9050919050565b60006020820190508181036000830152614ac781614671565b9050919050565b60006020820190508181036000830152614ae781614694565b9050919050565b60006020820190508181036000830152614b07816146b7565b9050919050565b60006020820190508181036000830152614b27816146da565b9050919050565b60006020820190508181036000830152614b47816146fd565b9050919050565b60006020820190508181036000830152614b6781614720565b9050919050565b60006020820190508181036000830152614b8781614743565b9050919050565b60006020820190508181036000830152614ba781614766565b9050919050565b60006020820190508181036000830152614bc781614789565b9050919050565b60006020820190508181036000830152614be7816147ac565b9050919050565b60006020820190508181036000830152614c07816147cf565b9050919050565b60006020820190508181036000830152614c27816147f2565b9050919050565b60006020820190508181036000830152614c4781614815565b9050919050565b60006020820190508181036000830152614c678161485b565b9050919050565b60006020820190508181036000830152614c878161487e565b9050919050565b60006020820190508181036000830152614ca7816148a1565b9050919050565b6000602082019050614cc360008301846148d3565b92915050565b6000614cd3614ce4565b9050614cdf8282615015565b919050565b6000604051905090565b600067ffffffffffffffff821115614d0957614d086151ab565b5b602082029050602081019050919050565b600067ffffffffffffffff821115614d3557614d346151ab565b5b614d3e826151f3565b9050602081019050919050565b600067ffffffffffffffff821115614d6657614d656151ab565b5b614d6f826151f3565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614e2382614f97565b9150614e2e83614f97565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614e6357614e626150c0565b5b828201905092915050565b6000614e7982614f97565b9150614e8483614f97565b925082614e9457614e936150ef565b5b828204905092915050565b6000614eaa82614f97565b9150614eb583614f97565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614eee57614eed6150c0565b5b828202905092915050565b6000614f0482614f97565b9150614f0f83614f97565b925082821015614f2257614f216150c0565b5b828203905092915050565b6000614f3882614f77565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015614fce578082015181840152602081019050614fb3565b83811115614fdd576000848401525b50505050565b60006002820490506001821680614ffb57607f821691505b6020821081141561500f5761500e61511e565b5b50919050565b61501e826151f3565b810181811067ffffffffffffffff8211171561503d5761503c6151ab565b5b80604052505050565b600061505182614f97565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615084576150836150c0565b5b600182019050919050565b600061509a82614f97565b91506150a583614f97565b9250826150b5576150b46150ef565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f796f7520617265206e6f7420746865206f776e6572206f662074686174204e4660008201527f5400000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f537570706c79206973206c657373207468616e20313030300000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f546f6b656e20616c72656479207573656420746f206d696e742061742072657360008201527f6572766564207072696365000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f7472616e73616374696f6e206661696c65640000000000000000000000000000600082015250565b6157f681614f2d565b811461580157600080fd5b50565b61580d81614f3f565b811461581857600080fd5b50565b61582481614f4b565b811461582f57600080fd5b50565b61583b81614f97565b811461584657600080fd5b5056fea26469706673582212200e820f3a73157e712f596342f9902f2676e643eca6e3bb06c05db1e07b486c4f64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000184d722e2043727970746f206279205261636b736d61666961000000000000000000000000000000000000000000000000000000000000000000000000000000034d52430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002268747470733a2f2f6170696e66742e7261636b736d616669612e636f6d2f6170692f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d68747470733a2f2f6170696e66742e7261636b736d616669612e636f6d2f6170692f68696464656e2e6a736f6e00000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000184d722e2043727970746f206279205261636b736d61666961000000000000000000000000000000000000000000000000000000000000000000000000000000034d52430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002268747470733a2f2f6170696e66742e7261636b736d616669612e636f6d2f6170692f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d68747470733a2f2f6170696e66742e7261636b736d616669612e636f6d2f6170692f68696464656e2e6a736f6e00000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Mr. Crypto by Racksmafia
Arg [1] : _symbol (string): MRC
Arg [2] : _initBaseURI (string): https://apinft.racksmafia.com/api/
Arg [3] : _initNotRevealedUri (string): https://apinft.racksmafia.com/api/hidden.json
-----Encoded View---------------
14 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000018
Arg [5] : 4d722e2043727970746f206279205261636b736d616669610000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 4d52430000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000022
Arg [9] : 68747470733a2f2f6170696e66742e7261636b736d616669612e636f6d2f6170
Arg [10] : 692f000000000000000000000000000000000000000000000000000000000000
Arg [11] : 000000000000000000000000000000000000000000000000000000000000002d
Arg [12] : 68747470733a2f2f6170696e66742e7261636b736d616669612e636f6d2f6170
Arg [13] : 692f68696464656e2e6a736f6e00000000000000000000000000000000000000
Deployed ByteCode Sourcemap
46420:7055:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38266:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25760:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27319:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46561:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26842:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46696:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46899:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;38906:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;53390:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46736:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28069:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;51881:85;;;;;;;;;;;;;:::i;:::-;;47098:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;49783:287;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;38574:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;47000:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51971:1078;;;:::i;:::-;;28479:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;50243:327;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46834:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;39096:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46802:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51657:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46773:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25454:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;53305:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25184:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:103;;;;;;;;;;;;;:::i;:::-;;51316:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;51417:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;53142:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;49043:735;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4079:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46868:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46593:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25929:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46653:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;48491:547;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27612:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;51117:98;;;;;;;;;;;;;:::i;:::-;;47049:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28735:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46520:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50683:414;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50575:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51220:91;;;;;;;;;;;;;:::i;:::-;;51757:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27838:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51535:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4988:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;53054:83;;;;;;;;;;;;;:::i;:::-;;38266:224;38368:4;38407:35;38392:50;;;:11;:50;;;;:90;;;;38446:36;38470:11;38446:23;:36::i;:::-;38392:90;38385:97;;38266:224;;;:::o;25760:100::-;25814:13;25847:5;25840:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25760:100;:::o;27319:221::-;27395:7;27423:16;27431:7;27423;:16::i;:::-;27415:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;27508:15;:24;27524:7;27508:24;;;;;;;;;;;;;;;;;;;;;27501:31;;27319:221;;;:::o;46561:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26842:411::-;26923:13;26939:23;26954:7;26939:14;:23::i;:::-;26923:39;;26987:5;26981:11;;:2;:11;;;;26973:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;27081:5;27065:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;27090:37;27107:5;27114:12;:10;:12::i;:::-;27090:16;:37::i;:::-;27065:62;27043:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;27224:21;27233:2;27237:7;27224:8;:21::i;:::-;26912:341;26842:411;;:::o;46696:36::-;;;;:::o;46899:27::-;;;;;;;;;;;;;:::o;38906:113::-;38967:7;38994:10;:17;;;;38987:24;;38906:113;:::o;53390:82::-;4310:12;:10;:12::i;:::-;4299:23;;:7;:5;:7::i;:::-;:23;;;4291:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;53463:4:::1;53451:9;;:16;;;;;;;;;;;;;;;;;;53390:82:::0;:::o;46736:33::-;;;;:::o;28069:339::-;28264:41;28283:12;:10;:12::i;:::-;28297:7;28264:18;:41::i;:::-;28256:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;28372:28;28382:4;28388:2;28392:7;28372:9;:28::i;:::-;28069:339;;;:::o;51881:85::-;48300:7;:19;48308:10;48300:19;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;48337:7;:5;:7::i;:::-;48323:21;;:10;:21;;;48300:44;48292:53;;;;;;51935:5:::1;51924:8;;:16;;;;;;;;;;;;;;;;;;51955:6;;;;;;;;;;;51954:7;51945:6;;:16;;;;;;;;;;;;;;;;;;51881:85::o:0;47098:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;49783:287::-;4310:12;:10;:12::i;:::-;4299:23;;:7;:5;:7::i;:::-;:23;;;4291:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;49865:14:::1;49882:13;:11;:13::i;:::-;49865:30;;49924:1;49910:11;:15;49902:24;;;::::0;::::1;;49963:14;;49948:11;49939:6;:20;;;;:::i;:::-;:38;;49931:47;;;::::0;::::1;;49990:9;50002:1;49990:13;;49985:81;50010:11;50005:1;:16;49985:81;;50034:26;50044:3;50058:1;50049:6;:10;;;;:::i;:::-;50034:9;:26::i;:::-;50023:3;;;;:::i;:::-;;;49985:81;;;;49860:210;49783:287:::0;;:::o;38574:256::-;38671:7;38707:23;38724:5;38707:16;:23::i;:::-;38699:5;:31;38691:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;38796:12;:19;38809:5;38796:19;;;;;;;;;;;;;;;:26;38816:5;38796:26;;;;;;;;;;;;38789:33;;38574:256;;;;:::o;47000:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;51971:1078::-;48300:7;:19;48308:10;48300:19;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;48337:7;:5;:7::i;:::-;48323:21;;:10;:21;;;48300:44;48292:53;;;;;;52021:12:::1;52064:3;52061:1;52037:21;:25;;;;:::i;:::-;52036:31;;;;:::i;:::-;52021:46;;52072:12;52115:3;52112:1;52088:21;:25;;;;:::i;:::-;52087:31;;;;:::i;:::-;52072:46;;52211:9;52226:42;:47;;52281:4;52226:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52210:80;;;52304:4;52296:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;52338:9;52353:42;:47;;52408:4;52353:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52337:80;;;52431:4;52423:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;52465:9;52480:42;:47;;52535:4;52480:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52464:80;;;52558:4;52550:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;52592:9;52607:42;:47;;52662:4;52607:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52591:80;;;52685:4;52677:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;52720:12;52738:42;:47;;52793:4;52738:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52719:83;;;52816:7;52808:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;52853:10;52869:9;;;;;;;;;;;:14;;52891:21;52869:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52852:65;;;52932:5;52924:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;52016:1033;;;;;;;;51971:1078::o:0;28479:185::-;28617:39;28634:4;28640:2;28644:7;28617:39;;;;;;;;;;;;:16;:39::i;:::-;28479:185;;;:::o;50243:327::-;50312:16;50337:23;50363:17;50373:6;50363:9;:17::i;:::-;50337:43;;50385:25;50427:15;50413:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50385:58;;50453:9;50448:98;50468:15;50464:1;:19;50448:98;;;50510:30;50530:6;50538:1;50510:19;:30::i;:::-;50496:8;50505:1;50496:11;;;;;;;;:::i;:::-;;;;;;;:44;;;;;50485:3;;;;:::i;:::-;;;50448:98;;;;50557:8;50550:15;;;;50243:327;;;:::o;46834:30::-;;;;;;;;;;;;;:::o;39096:233::-;39171:7;39207:30;:28;:30::i;:::-;39199:5;:38;39191:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;39304:10;39315:5;39304:17;;;;;;;;:::i;:::-;;;;;;;;;;39297:24;;39096:233;;;:::o;46802:28::-;;;;;;;;;;;;;:::o;51657:95::-;4310:12;:10;:12::i;:::-;4299:23;;:7;:5;:7::i;:::-;:23;;;4291:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;51736:11:::1;51726:7;:21;;;;;;;;;;;;:::i;:::-;;51657:95:::0;:::o;46773:25::-;;;;;;;;;;;;;:::o;25454:239::-;25526:7;25546:13;25562:7;:16;25570:7;25562:16;;;;;;;;;;;;;;;;;;;;;25546:32;;25614:1;25597:19;;:5;:19;;;;25589:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;25680:5;25673:12;;;25454:239;;;:::o;53305:80::-;4310:12;:10;:12::i;:::-;4299:23;;:7;:5;:7::i;:::-;:23;;;4291:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;53376:4:::1;53360:7;:13;53368:4;53360:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;53305:80:::0;:::o;25184:208::-;25256:7;25301:1;25284:19;;:5;:19;;;;25276:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;25368:9;:16;25378:5;25368:16;;;;;;;;;;;;;;;;25361:23;;25184:208;;;:::o;4730:103::-;4310:12;:10;:12::i;:::-;4299:23;;:7;:5;:7::i;:::-;:23;;;4291:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4795:30:::1;4822:1;4795:18;:30::i;:::-;4730:103::o:0;51316:96::-;4310:12;:10;:12::i;:::-;4299:23;;:7;:5;:7::i;:::-;:23;;;4291:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;51399:8:::1;51385:4;51390:5;51385:11;;;;;;;:::i;:::-;;;:22;;;;51316:96:::0;;:::o;51417:113::-;48300:7;:19;48308:10;48300:19;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;48337:7;:5;:7::i;:::-;48323:21;;:10;:21;;;48300:44;48292:53;;;;;;51508:17:::1;51492:13;:33;;;;51417:113:::0;:::o;53142:158::-;48300:7;:19;48308:10;48300:19;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;48337:7;:5;:7::i;:::-;48323:21;;:10;:21;;;48300:44;48292:53;;;;;;53219:9:::1;53214:81;53238:7;:14;53234:1;:18;53214:81;;;53291:4;53263:13;:25;53277:7;53285:1;53277:10;;;;;;;;:::i;:::-;;;;;;;;53263:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;53254:3;;;;:::i;:::-;;;53214:81;;;;53142:158:::0;:::o;49043:735::-;49104:14;49121:13;:11;:13::i;:::-;49104:30;;49150:6;;;;;;;;;;;49149:7;49141:16;;;;;;49192:10;49171:31;;:17;49179:8;49171:7;:17::i;:::-;:31;;;49162:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;49268:14;;49263:1;49254:6;:10;;;;:::i;:::-;:28;;49246:37;;;;;;49324:5;49297:32;;:13;:23;49311:8;49297:23;;;;;;;;;;;;;;;;;;;;;:32;;;49288:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;49400:4;49388:8;:16;49384:390;;49434:4;49439:1;49434:7;;;;;;;:::i;:::-;;;;49421:9;:20;;49413:29;;;;;;49465:3;49456:6;:12;:30;;;;;49482:4;49472:6;:14;;49456:30;49448:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;49523:33;49533:10;49554:1;49545:6;:10;;;;:::i;:::-;49523:9;:33::i;:::-;49588:4;49562:13;:23;49576:8;49562:23;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;49384:390;;;49622:4;49611:8;:15;49607:167;;49655:4;49660:1;49655:7;;;;;;;:::i;:::-;;;;49642:9;:20;;49634:29;;;;;;49686:4;49677:6;:13;49669:22;;;;;;49699:33;49709:10;49730:1;49721:6;:10;;;;:::i;:::-;49699:9;:33::i;:::-;49764:4;49738:13;:23;49752:8;49738:23;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;49607:167;49384:390;49098:680;49043:735;:::o;4079:87::-;4125:7;4152:6;;;;;;;;;;;4145:13;;4079:87;:::o;46868:27::-;;;;;;;;;;;;;:::o;46593:56::-;;;;;;;;;;;;;;;;;;;;:::o;25929:104::-;25985:13;26018:7;26011:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25929:104;:::o;46653:37::-;;;;:::o;48491:547::-;48546:14;48563:13;:11;:13::i;:::-;48546:30;;48581:13;48597:18;48608:6;48597:10;:18::i;:::-;48581:34;;48631:6;;;;;;;;;;;48630:7;48622:16;;;;;;48662:4;48647:19;;:11;;;;;;;;;;;:19;;;48643:88;;;48680:13;:25;48694:10;48680:25;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;48723:7;:5;:7::i;:::-;48709:21;;:10;:21;;;48680:50;48672:59;;;;;;48643:88;48758:1;48744:11;:15;48736:24;;;;;;48788:13;;48773:11;:28;;48765:37;;;;;;48839:14;;48824:11;48815:6;:20;;;;:::i;:::-;:38;;48807:47;;;;;;48879:7;:5;:7::i;:::-;48865:21;;:10;:21;;;48861:78;;48927:11;48913:4;48918:5;48913:11;;;;;;;:::i;:::-;;;;:25;;;;:::i;:::-;48900:9;:38;;48892:47;;;;;;48861:78;48951:9;48963:1;48951:13;;48946:88;48971:11;48966:1;:16;48946:88;;48995:33;49005:10;49026:1;49017:6;:10;;;;:::i;:::-;48995:9;:33::i;:::-;48984:3;;;;:::i;:::-;;;48946:88;;;;48541:497;;48491:547;:::o;27612:155::-;27707:52;27726:12;:10;:12::i;:::-;27740:8;27750;27707:18;:52::i;:::-;27612:155;;:::o;51117:98::-;48300:7;:19;48308:10;48300:19;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;48337:7;:5;:7::i;:::-;48323:21;;:10;:21;;;48300:44;48292:53;;;;;;51168:4:::1;51157:8;;:15;;;;;;;;;;;;;;;;;;51197:13;:11;:13::i;:::-;51177:17;:33;;;;51117:98::o:0;47049:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;28735:328::-;28910:41;28929:12;:10;:12::i;:::-;28943:7;28910:18;:41::i;:::-;28902:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;29016:39;29030:4;29036:2;29040:7;29049:5;29016:13;:39::i;:::-;28735:328;;;;:::o;46520:37::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;50683:414::-;50771:13;50806:16;50814:7;50806;:16::i;:::-;50793:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;50906:5;50894:17;;:8;;;;;;;;;;;:17;;;:48;;;;;50925:17;;50915:7;:27;50894:48;50891:78;;;50955:14;50948:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50891:78;51007:1;50989:7;50983:21;;;;;:::i;:::-;;;:25;:109;;;;;;;;;;;;;;;;;51039:7;51048:18;:7;:16;:18::i;:::-;51068:13;51022:60;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;50983:109;50976:116;;50683:414;;;;:::o;50575:103::-;50632:4;50650:13;:23;50664:8;50650:23;;;;;;;;;;;;;;;;;;;;;50643:30;;50575:103;;;:::o;51220:91::-;48300:7;:19;48308:10;48300:19;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;48337:7;:5;:7::i;:::-;48323:21;;:10;:21;;;48300:44;48292:53;;;;;;51293:13:::1;:11;:13::i;:::-;51273:17;:33;;;;51220:91::o:0;51757:119::-;4310:12;:10;:12::i;:::-;4299:23;;:7;:5;:7::i;:::-;:23;;;4291:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;51854:17:::1;51838:13;:33;;;;;;;;;;;;:::i;:::-;;51757:119:::0;:::o;27838:164::-;27935:4;27959:18;:25;27978:5;27959:25;;;;;;;;;;;;;;;:35;27985:8;27959:35;;;;;;;;;;;;;;;;;;;;;;;;;27952:42;;27838:164;;;;:::o;51535:117::-;48300:7;:19;48308:10;48300:19;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;48337:7;:5;:7::i;:::-;48323:21;;:10;:21;;;48300:44;48292:53;;;;;;51632:15:::1;51615:14;:32;;;;;;;;;;;;:::i;:::-;;51535:117:::0;:::o;4988:201::-;4310:12;:10;:12::i;:::-;4299:23;;:7;:5;:7::i;:::-;:23;;;4291:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5097:1:::1;5077:22;;:8;:22;;;;5069:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5153:28;5172:8;5153:18;:28::i;:::-;4988:201:::0;:::o;53054:83::-;48300:7;:19;48308:10;48300:19;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;48337:7;:5;:7::i;:::-;48323:21;;:10;:21;;;48300:44;48292:53;;;;;;53121:11:::1;;;;;;;;;;;53120:12;53106:11;;:26;;;;;;;;;;;;;;;;;;53054:83::o:0;6367:387::-;6427:4;6635:12;6702:7;6690:20;6682:28;;6745:1;6738:4;:8;6731:15;;;6367:387;;;:::o;37122:126::-;;;;:::o;24815:305::-;24917:4;24969:25;24954:40;;;:11;:40;;;;:105;;;;25026:33;25011:48;;;:11;:48;;;;24954:105;:158;;;;25076:36;25100:11;25076:23;:36::i;:::-;24954:158;24934:178;;24815:305;;;:::o;30573:127::-;30638:4;30690:1;30662:30;;:7;:16;30670:7;30662:16;;;;;;;;;;;;;;;;;;;;;:30;;;;30655:37;;30573:127;;;:::o;2803:98::-;2856:7;2883:10;2876:17;;2803:98;:::o;34555:174::-;34657:2;34630:15;:24;34646:7;34630:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;34713:7;34709:2;34675:46;;34684:23;34699:7;34684:14;:23::i;:::-;34675:46;;;;;;;;;;;;34555:174;;:::o;30867:348::-;30960:4;30985:16;30993:7;30985;:16::i;:::-;30977:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;31061:13;31077:23;31092:7;31077:14;:23::i;:::-;31061:39;;31130:5;31119:16;;:7;:16;;;:51;;;;31163:7;31139:31;;:20;31151:7;31139:11;:20::i;:::-;:31;;;31119:51;:87;;;;31174:32;31191:5;31198:7;31174:16;:32::i;:::-;31119:87;31111:96;;;30867:348;;;;:::o;33859:578::-;34018:4;33991:31;;:23;34006:7;33991:14;:23::i;:::-;:31;;;33983:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;34101:1;34087:16;;:2;:16;;;;34079:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;34157:39;34178:4;34184:2;34188:7;34157:20;:39::i;:::-;34261:29;34278:1;34282:7;34261:8;:29::i;:::-;34322:1;34303:9;:15;34313:4;34303:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;34351:1;34334:9;:13;34344:2;34334:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;34382:2;34363:7;:16;34371:7;34363:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;34421:7;34417:2;34402:27;;34411:4;34402:27;;;;;;;;;;;;33859:578;;;:::o;31557:110::-;31633:26;31643:2;31647:7;31633:26;;;;;;;;;;;;:9;:26::i;:::-;31557:110;;:::o;5349:191::-;5423:16;5442:6;;;;;;;;;;;5423:25;;5468:8;5459:6;;:17;;;;;;;;;;;;;;;;;;5523:8;5492:40;;5513:8;5492:40;;;;;;;;;;;;5412:128;5349:191;:::o;50075:163::-;50135:7;50164:4;50153:7;:15;50149:33;;50181:1;50174:8;;;;50149:33;50202:4;50191:7;:15;50187:33;;50219:1;50212:8;;;;50187:33;50232:1;50225:8;;50075:163;;;;:::o;34871:315::-;35026:8;35017:17;;:5;:17;;;;35009:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;35113:8;35075:18;:25;35094:5;35075:25;;;;;;;;;;;;;;;:35;35101:8;35075:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;35159:8;35137:41;;35152:5;35137:41;;;35169:8;35137:41;;;;;;:::i;:::-;;;;;;;;34871:315;;;:::o;29945:::-;30102:28;30112:4;30118:2;30122:7;30102:9;:28::i;:::-;30149:48;30172:4;30178:2;30182:7;30191:5;30149:22;:48::i;:::-;30141:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;29945:315;;;;:::o;365:723::-;421:13;651:1;642:5;:10;638:53;;;669:10;;;;;;;;;;;;;;;;;;;;;638:53;701:12;716:5;701:20;;732:14;757:78;772:1;764:4;:9;757:78;;790:8;;;;;:::i;:::-;;;;821:2;813:10;;;;;:::i;:::-;;;757:78;;;845:19;877:6;867:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;845:39;;895:154;911:1;902:5;:10;895:154;;939:1;929:11;;;;;:::i;:::-;;;1006:2;998:5;:10;;;;:::i;:::-;985:2;:24;;;;:::i;:::-;972:39;;955:6;962;955:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1035:2;1026:11;;;;;:::i;:::-;;;895:154;;;1073:6;1059:21;;;;;365:723;;;;:::o;16511:157::-;16596:4;16635:25;16620:40;;;:11;:40;;;;16613:47;;16511:157;;;:::o;39942:589::-;40086:45;40113:4;40119:2;40123:7;40086:26;:45::i;:::-;40164:1;40148:18;;:4;:18;;;40144:187;;;40183:40;40215:7;40183:31;:40::i;:::-;40144:187;;;40253:2;40245:10;;:4;:10;;;40241:90;;40272:47;40305:4;40311:7;40272:32;:47::i;:::-;40241:90;40144:187;40359:1;40345:16;;:2;:16;;;40341:183;;;40378:45;40415:7;40378:36;:45::i;:::-;40341:183;;;40451:4;40445:10;;:2;:10;;;40441:83;;40472:40;40500:2;40504:7;40472:27;:40::i;:::-;40441:83;40341:183;39942:589;;;:::o;31894:321::-;32024:18;32030:2;32034:7;32024:5;:18::i;:::-;32075:54;32106:1;32110:2;32114:7;32123:5;32075:22;:54::i;:::-;32053:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;31894:321;;;:::o;35751:799::-;35906:4;35927:15;:2;:13;;;:15::i;:::-;35923:620;;;35979:2;35963:36;;;36000:12;:10;:12::i;:::-;36014:4;36020:7;36029:5;35963:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;35959:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36222:1;36205:6;:13;:18;36201:272;;;36248:60;;;;;;;;;;:::i;:::-;;;;;;;;36201:272;36423:6;36417:13;36408:6;36404:2;36400:15;36393:38;35959:529;36096:41;;;36086:51;;;:6;:51;;;;36079:58;;;;;35923:620;36527:4;36520:11;;35751:799;;;;;;;:::o;41254:164::-;41358:10;:17;;;;41331:15;:24;41347:7;41331:24;;;;;;;;;;;:44;;;;41386:10;41402:7;41386:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41254:164;:::o;42045:988::-;42311:22;42361:1;42336:22;42353:4;42336:16;:22::i;:::-;:26;;;;:::i;:::-;42311:51;;42373:18;42394:17;:26;42412:7;42394:26;;;;;;;;;;;;42373:47;;42541:14;42527:10;:28;42523:328;;42572:19;42594:12;:18;42607:4;42594:18;;;;;;;;;;;;;;;:34;42613:14;42594:34;;;;;;;;;;;;42572:56;;42678:11;42645:12;:18;42658:4;42645:18;;;;;;;;;;;;;;;:30;42664:10;42645:30;;;;;;;;;;;:44;;;;42795:10;42762:17;:30;42780:11;42762:30;;;;;;;;;;;:43;;;;42557:294;42523:328;42947:17;:26;42965:7;42947:26;;;;;;;;;;;42940:33;;;42991:12;:18;43004:4;42991:18;;;;;;;;;;;;;;;:34;43010:14;42991:34;;;;;;;;;;;42984:41;;;42126:907;;42045:988;;:::o;43328:1079::-;43581:22;43626:1;43606:10;:17;;;;:21;;;;:::i;:::-;43581:46;;43638:18;43659:15;:24;43675:7;43659:24;;;;;;;;;;;;43638:45;;44010:19;44032:10;44043:14;44032:26;;;;;;;;:::i;:::-;;;;;;;;;;44010:48;;44096:11;44071:10;44082;44071:22;;;;;;;;:::i;:::-;;;;;;;;;:36;;;;44207:10;44176:15;:28;44192:11;44176:28;;;;;;;;;;;:41;;;;44348:15;:24;44364:7;44348:24;;;;;;;;;;;44341:31;;;44383:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;43399:1008;;;43328:1079;:::o;40832:221::-;40917:14;40934:20;40951:2;40934:16;:20::i;:::-;40917:37;;40992:7;40965:12;:16;40978:2;40965:16;;;;;;;;;;;;;;;:24;40982:6;40965:24;;;;;;;;;;;:34;;;;41039:6;41010:17;:26;41028:7;41010:26;;;;;;;;;;;:35;;;;40906:147;40832:221;;:::o;32551:382::-;32645:1;32631:16;;:2;:16;;;;32623:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;32704:16;32712:7;32704;:16::i;:::-;32703:17;32695:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;32766:45;32795:1;32799:2;32803:7;32766:20;:45::i;:::-;32841:1;32824:9;:13;32834:2;32824:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;32872:2;32853:7;:16;32861:7;32853:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;32917:7;32913:2;32892:33;;32909:1;32892:33;;;;;;;;;;;;32551:382;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:410::-;829:5;854:65;870:48;911:6;870:48;:::i;:::-;854:65;:::i;:::-;845:74;;942:6;935:5;928:21;980:4;973:5;969:16;1018:3;1009:6;1004:3;1000:16;997:25;994:112;;;1025:79;;:::i;:::-;994:112;1115:41;1149:6;1144:3;1139;1115:41;:::i;:::-;835:327;752:410;;;;;:::o;1168:412::-;1246:5;1271:66;1287:49;1329:6;1287:49;:::i;:::-;1271:66;:::i;:::-;1262:75;;1360:6;1353:5;1346:21;1398:4;1391:5;1387:16;1436:3;1427:6;1422:3;1418:16;1415:25;1412:112;;;1443:79;;:::i;:::-;1412:112;1533:41;1567:6;1562:3;1557;1533:41;:::i;:::-;1252:328;1168:412;;;;;:::o;1586:139::-;1632:5;1670:6;1657:20;1648:29;;1686:33;1713:5;1686:33;:::i;:::-;1586:139;;;;:::o;1748:370::-;1819:5;1868:3;1861:4;1853:6;1849:17;1845:27;1835:122;;1876:79;;:::i;:::-;1835:122;1993:6;1980:20;2018:94;2108:3;2100:6;2093:4;2085:6;2081:17;2018:94;:::i;:::-;2009:103;;1825:293;1748:370;;;;:::o;2124:133::-;2167:5;2205:6;2192:20;2183:29;;2221:30;2245:5;2221:30;:::i;:::-;2124:133;;;;:::o;2263:137::-;2308:5;2346:6;2333:20;2324:29;;2362:32;2388:5;2362:32;:::i;:::-;2263:137;;;;:::o;2406:141::-;2462:5;2493:6;2487:13;2478:22;;2509:32;2535:5;2509:32;:::i;:::-;2406:141;;;;:::o;2566:338::-;2621:5;2670:3;2663:4;2655:6;2651:17;2647:27;2637:122;;2678:79;;:::i;:::-;2637:122;2795:6;2782:20;2820:78;2894:3;2886:6;2879:4;2871:6;2867:17;2820:78;:::i;:::-;2811:87;;2627:277;2566:338;;;;:::o;2924:340::-;2980:5;3029:3;3022:4;3014:6;3010:17;3006:27;2996:122;;3037:79;;:::i;:::-;2996:122;3154:6;3141:20;3179:79;3254:3;3246:6;3239:4;3231:6;3227:17;3179:79;:::i;:::-;3170:88;;2986:278;2924:340;;;;:::o;3270:139::-;3316:5;3354:6;3341:20;3332:29;;3370:33;3397:5;3370:33;:::i;:::-;3270:139;;;;:::o;3415:329::-;3474:6;3523:2;3511:9;3502:7;3498:23;3494:32;3491:119;;;3529:79;;:::i;:::-;3491:119;3649:1;3674:53;3719:7;3710:6;3699:9;3695:22;3674:53;:::i;:::-;3664:63;;3620:117;3415:329;;;;:::o;3750:474::-;3818:6;3826;3875:2;3863:9;3854:7;3850:23;3846:32;3843:119;;;3881:79;;:::i;:::-;3843:119;4001:1;4026:53;4071:7;4062:6;4051:9;4047:22;4026:53;:::i;:::-;4016:63;;3972:117;4128:2;4154:53;4199:7;4190:6;4179:9;4175:22;4154:53;:::i;:::-;4144:63;;4099:118;3750:474;;;;;:::o;4230:619::-;4307:6;4315;4323;4372:2;4360:9;4351:7;4347:23;4343:32;4340:119;;;4378:79;;:::i;:::-;4340:119;4498:1;4523:53;4568:7;4559:6;4548:9;4544:22;4523:53;:::i;:::-;4513:63;;4469:117;4625:2;4651:53;4696:7;4687:6;4676:9;4672:22;4651:53;:::i;:::-;4641:63;;4596:118;4753:2;4779:53;4824:7;4815:6;4804:9;4800:22;4779:53;:::i;:::-;4769:63;;4724:118;4230:619;;;;;:::o;4855:943::-;4950:6;4958;4966;4974;5023:3;5011:9;5002:7;4998:23;4994:33;4991:120;;;5030:79;;:::i;:::-;4991:120;5150:1;5175:53;5220:7;5211:6;5200:9;5196:22;5175:53;:::i;:::-;5165:63;;5121:117;5277:2;5303:53;5348:7;5339:6;5328:9;5324:22;5303:53;:::i;:::-;5293:63;;5248:118;5405:2;5431:53;5476:7;5467:6;5456:9;5452:22;5431:53;:::i;:::-;5421:63;;5376:118;5561:2;5550:9;5546:18;5533:32;5592:18;5584:6;5581:30;5578:117;;;5614:79;;:::i;:::-;5578:117;5719:62;5773:7;5764:6;5753:9;5749:22;5719:62;:::i;:::-;5709:72;;5504:287;4855:943;;;;;;;:::o;5804:468::-;5869:6;5877;5926:2;5914:9;5905:7;5901:23;5897:32;5894:119;;;5932:79;;:::i;:::-;5894:119;6052:1;6077:53;6122:7;6113:6;6102:9;6098:22;6077:53;:::i;:::-;6067:63;;6023:117;6179:2;6205:50;6247:7;6238:6;6227:9;6223:22;6205:50;:::i;:::-;6195:60;;6150:115;5804:468;;;;;:::o;6278:474::-;6346:6;6354;6403:2;6391:9;6382:7;6378:23;6374:32;6371:119;;;6409:79;;:::i;:::-;6371:119;6529:1;6554:53;6599:7;6590:6;6579:9;6575:22;6554:53;:::i;:::-;6544:63;;6500:117;6656:2;6682:53;6727:7;6718:6;6707:9;6703:22;6682:53;:::i;:::-;6672:63;;6627:118;6278:474;;;;;:::o;6758:539::-;6842:6;6891:2;6879:9;6870:7;6866:23;6862:32;6859:119;;;6897:79;;:::i;:::-;6859:119;7045:1;7034:9;7030:17;7017:31;7075:18;7067:6;7064:30;7061:117;;;7097:79;;:::i;:::-;7061:117;7202:78;7272:7;7263:6;7252:9;7248:22;7202:78;:::i;:::-;7192:88;;6988:302;6758:539;;;;:::o;7303:327::-;7361:6;7410:2;7398:9;7389:7;7385:23;7381:32;7378:119;;;7416:79;;:::i;:::-;7378:119;7536:1;7561:52;7605:7;7596:6;7585:9;7581:22;7561:52;:::i;:::-;7551:62;;7507:116;7303:327;;;;:::o;7636:349::-;7705:6;7754:2;7742:9;7733:7;7729:23;7725:32;7722:119;;;7760:79;;:::i;:::-;7722:119;7880:1;7905:63;7960:7;7951:6;7940:9;7936:22;7905:63;:::i;:::-;7895:73;;7851:127;7636:349;;;;:::o;7991:509::-;8060:6;8109:2;8097:9;8088:7;8084:23;8080:32;8077:119;;;8115:79;;:::i;:::-;8077:119;8263:1;8252:9;8248:17;8235:31;8293:18;8285:6;8282:30;8279:117;;;8315:79;;:::i;:::-;8279:117;8420:63;8475:7;8466:6;8455:9;8451:22;8420:63;:::i;:::-;8410:73;;8206:287;7991:509;;;;:::o;8506:329::-;8565:6;8614:2;8602:9;8593:7;8589:23;8585:32;8582:119;;;8620:79;;:::i;:::-;8582:119;8740:1;8765:53;8810:7;8801:6;8790:9;8786:22;8765:53;:::i;:::-;8755:63;;8711:117;8506:329;;;;:::o;8841:474::-;8909:6;8917;8966:2;8954:9;8945:7;8941:23;8937:32;8934:119;;;8972:79;;:::i;:::-;8934:119;9092:1;9117:53;9162:7;9153:6;9142:9;9138:22;9117:53;:::i;:::-;9107:63;;9063:117;9219:2;9245:53;9290:7;9281:6;9270:9;9266:22;9245:53;:::i;:::-;9235:63;;9190:118;8841:474;;;;;:::o;9321:::-;9389:6;9397;9446:2;9434:9;9425:7;9421:23;9417:32;9414:119;;;9452:79;;:::i;:::-;9414:119;9572:1;9597:53;9642:7;9633:6;9622:9;9618:22;9597:53;:::i;:::-;9587:63;;9543:117;9699:2;9725:53;9770:7;9761:6;9750:9;9746:22;9725:53;:::i;:::-;9715:63;;9670:118;9321:474;;;;;:::o;9801:179::-;9870:10;9891:46;9933:3;9925:6;9891:46;:::i;:::-;9969:4;9964:3;9960:14;9946:28;;9801:179;;;;:::o;9986:118::-;10073:24;10091:5;10073:24;:::i;:::-;10068:3;10061:37;9986:118;;:::o;10140:732::-;10259:3;10288:54;10336:5;10288:54;:::i;:::-;10358:86;10437:6;10432:3;10358:86;:::i;:::-;10351:93;;10468:56;10518:5;10468:56;:::i;:::-;10547:7;10578:1;10563:284;10588:6;10585:1;10582:13;10563:284;;;10664:6;10658:13;10691:63;10750:3;10735:13;10691:63;:::i;:::-;10684:70;;10777:60;10830:6;10777:60;:::i;:::-;10767:70;;10623:224;10610:1;10607;10603:9;10598:14;;10563:284;;;10567:14;10863:3;10856:10;;10264:608;;;10140:732;;;;:::o;10878:109::-;10959:21;10974:5;10959:21;:::i;:::-;10954:3;10947:34;10878:109;;:::o;10993:360::-;11079:3;11107:38;11139:5;11107:38;:::i;:::-;11161:70;11224:6;11219:3;11161:70;:::i;:::-;11154:77;;11240:52;11285:6;11280:3;11273:4;11266:5;11262:16;11240:52;:::i;:::-;11317:29;11339:6;11317:29;:::i;:::-;11312:3;11308:39;11301:46;;11083:270;10993:360;;;;:::o;11359:364::-;11447:3;11475:39;11508:5;11475:39;:::i;:::-;11530:71;11594:6;11589:3;11530:71;:::i;:::-;11523:78;;11610:52;11655:6;11650:3;11643:4;11636:5;11632:16;11610:52;:::i;:::-;11687:29;11709:6;11687:29;:::i;:::-;11682:3;11678:39;11671:46;;11451:272;11359:364;;;;:::o;11729:377::-;11835:3;11863:39;11896:5;11863:39;:::i;:::-;11918:89;12000:6;11995:3;11918:89;:::i;:::-;11911:96;;12016:52;12061:6;12056:3;12049:4;12042:5;12038:16;12016:52;:::i;:::-;12093:6;12088:3;12084:16;12077:23;;11839:267;11729:377;;;;:::o;12136:845::-;12239:3;12276:5;12270:12;12305:36;12331:9;12305:36;:::i;:::-;12357:89;12439:6;12434:3;12357:89;:::i;:::-;12350:96;;12477:1;12466:9;12462:17;12493:1;12488:137;;;;12639:1;12634:341;;;;12455:520;;12488:137;12572:4;12568:9;12557;12553:25;12548:3;12541:38;12608:6;12603:3;12599:16;12592:23;;12488:137;;12634:341;12701:38;12733:5;12701:38;:::i;:::-;12761:1;12775:154;12789:6;12786:1;12783:13;12775:154;;;12863:7;12857:14;12853:1;12848:3;12844:11;12837:35;12913:1;12904:7;12900:15;12889:26;;12811:4;12808:1;12804:12;12799:17;;12775:154;;;12958:6;12953:3;12949:16;12942:23;;12641:334;;12455:520;;12243:738;;12136:845;;;;:::o;12987:366::-;13129:3;13150:67;13214:2;13209:3;13150:67;:::i;:::-;13143:74;;13226:93;13315:3;13226:93;:::i;:::-;13344:2;13339:3;13335:12;13328:19;;12987:366;;;:::o;13359:::-;13501:3;13522:67;13586:2;13581:3;13522:67;:::i;:::-;13515:74;;13598:93;13687:3;13598:93;:::i;:::-;13716:2;13711:3;13707:12;13700:19;;13359:366;;;:::o;13731:::-;13873:3;13894:67;13958:2;13953:3;13894:67;:::i;:::-;13887:74;;13970:93;14059:3;13970:93;:::i;:::-;14088:2;14083:3;14079:12;14072:19;;13731:366;;;:::o;14103:::-;14245:3;14266:67;14330:2;14325:3;14266:67;:::i;:::-;14259:74;;14342:93;14431:3;14342:93;:::i;:::-;14460:2;14455:3;14451:12;14444:19;;14103:366;;;:::o;14475:::-;14617:3;14638:67;14702:2;14697:3;14638:67;:::i;:::-;14631:74;;14714:93;14803:3;14714:93;:::i;:::-;14832:2;14827:3;14823:12;14816:19;;14475:366;;;:::o;14847:::-;14989:3;15010:67;15074:2;15069:3;15010:67;:::i;:::-;15003:74;;15086:93;15175:3;15086:93;:::i;:::-;15204:2;15199:3;15195:12;15188:19;;14847:366;;;:::o;15219:::-;15361:3;15382:67;15446:2;15441:3;15382:67;:::i;:::-;15375:74;;15458:93;15547:3;15458:93;:::i;:::-;15576:2;15571:3;15567:12;15560:19;;15219:366;;;:::o;15591:::-;15733:3;15754:67;15818:2;15813:3;15754:67;:::i;:::-;15747:74;;15830:93;15919:3;15830:93;:::i;:::-;15948:2;15943:3;15939:12;15932:19;;15591:366;;;:::o;15963:::-;16105:3;16126:67;16190:2;16185:3;16126:67;:::i;:::-;16119:74;;16202:93;16291:3;16202:93;:::i;:::-;16320:2;16315:3;16311:12;16304:19;;15963:366;;;:::o;16335:::-;16477:3;16498:67;16562:2;16557:3;16498:67;:::i;:::-;16491:74;;16574:93;16663:3;16574:93;:::i;:::-;16692:2;16687:3;16683:12;16676:19;;16335:366;;;:::o;16707:::-;16849:3;16870:67;16934:2;16929:3;16870:67;:::i;:::-;16863:74;;16946:93;17035:3;16946:93;:::i;:::-;17064:2;17059:3;17055:12;17048:19;;16707:366;;;:::o;17079:::-;17221:3;17242:67;17306:2;17301:3;17242:67;:::i;:::-;17235:74;;17318:93;17407:3;17318:93;:::i;:::-;17436:2;17431:3;17427:12;17420:19;;17079:366;;;:::o;17451:::-;17593:3;17614:67;17678:2;17673:3;17614:67;:::i;:::-;17607:74;;17690:93;17779:3;17690:93;:::i;:::-;17808:2;17803:3;17799:12;17792:19;;17451:366;;;:::o;17823:::-;17965:3;17986:67;18050:2;18045:3;17986:67;:::i;:::-;17979:74;;18062:93;18151:3;18062:93;:::i;:::-;18180:2;18175:3;18171:12;18164:19;;17823:366;;;:::o;18195:::-;18337:3;18358:67;18422:2;18417:3;18358:67;:::i;:::-;18351:74;;18434:93;18523:3;18434:93;:::i;:::-;18552:2;18547:3;18543:12;18536:19;;18195:366;;;:::o;18567:::-;18709:3;18730:67;18794:2;18789:3;18730:67;:::i;:::-;18723:74;;18806:93;18895:3;18806:93;:::i;:::-;18924:2;18919:3;18915:12;18908:19;;18567:366;;;:::o;18939:::-;19081:3;19102:67;19166:2;19161:3;19102:67;:::i;:::-;19095:74;;19178:93;19267:3;19178:93;:::i;:::-;19296:2;19291:3;19287:12;19280:19;;18939:366;;;:::o;19311:::-;19453:3;19474:67;19538:2;19533:3;19474:67;:::i;:::-;19467:74;;19550:93;19639:3;19550:93;:::i;:::-;19668:2;19663:3;19659:12;19652:19;;19311:366;;;:::o;19683:::-;19825:3;19846:67;19910:2;19905:3;19846:67;:::i;:::-;19839:74;;19922:93;20011:3;19922:93;:::i;:::-;20040:2;20035:3;20031:12;20024:19;;19683:366;;;:::o;20055:398::-;20214:3;20235:83;20316:1;20311:3;20235:83;:::i;:::-;20228:90;;20327:93;20416:3;20327:93;:::i;:::-;20445:1;20440:3;20436:11;20429:18;;20055:398;;;:::o;20459:366::-;20601:3;20622:67;20686:2;20681:3;20622:67;:::i;:::-;20615:74;;20698:93;20787:3;20698:93;:::i;:::-;20816:2;20811:3;20807:12;20800:19;;20459:366;;;:::o;20831:::-;20973:3;20994:67;21058:2;21053:3;20994:67;:::i;:::-;20987:74;;21070:93;21159:3;21070:93;:::i;:::-;21188:2;21183:3;21179:12;21172:19;;20831:366;;;:::o;21203:::-;21345:3;21366:67;21430:2;21425:3;21366:67;:::i;:::-;21359:74;;21442:93;21531:3;21442:93;:::i;:::-;21560:2;21555:3;21551:12;21544:19;;21203:366;;;:::o;21575:108::-;21652:24;21670:5;21652:24;:::i;:::-;21647:3;21640:37;21575:108;;:::o;21689:118::-;21776:24;21794:5;21776:24;:::i;:::-;21771:3;21764:37;21689:118;;:::o;21813:583::-;22035:3;22057:92;22145:3;22136:6;22057:92;:::i;:::-;22050:99;;22166:95;22257:3;22248:6;22166:95;:::i;:::-;22159:102;;22278:92;22366:3;22357:6;22278:92;:::i;:::-;22271:99;;22387:3;22380:10;;21813:583;;;;;;:::o;22402:379::-;22586:3;22608:147;22751:3;22608:147;:::i;:::-;22601:154;;22772:3;22765:10;;22402:379;;;:::o;22787:222::-;22880:4;22918:2;22907:9;22903:18;22895:26;;22931:71;22999:1;22988:9;22984:17;22975:6;22931:71;:::i;:::-;22787:222;;;;:::o;23015:640::-;23210:4;23248:3;23237:9;23233:19;23225:27;;23262:71;23330:1;23319:9;23315:17;23306:6;23262:71;:::i;:::-;23343:72;23411:2;23400:9;23396:18;23387:6;23343:72;:::i;:::-;23425;23493:2;23482:9;23478:18;23469:6;23425:72;:::i;:::-;23544:9;23538:4;23534:20;23529:2;23518:9;23514:18;23507:48;23572:76;23643:4;23634:6;23572:76;:::i;:::-;23564:84;;23015:640;;;;;;;:::o;23661:373::-;23804:4;23842:2;23831:9;23827:18;23819:26;;23891:9;23885:4;23881:20;23877:1;23866:9;23862:17;23855:47;23919:108;24022:4;24013:6;23919:108;:::i;:::-;23911:116;;23661:373;;;;:::o;24040:210::-;24127:4;24165:2;24154:9;24150:18;24142:26;;24178:65;24240:1;24229:9;24225:17;24216:6;24178:65;:::i;:::-;24040:210;;;;:::o;24256:313::-;24369:4;24407:2;24396:9;24392:18;24384:26;;24456:9;24450:4;24446:20;24442:1;24431:9;24427:17;24420:47;24484:78;24557:4;24548:6;24484:78;:::i;:::-;24476:86;;24256:313;;;;:::o;24575:419::-;24741:4;24779:2;24768:9;24764:18;24756:26;;24828:9;24822:4;24818:20;24814:1;24803:9;24799:17;24792:47;24856:131;24982:4;24856:131;:::i;:::-;24848:139;;24575:419;;;:::o;25000:::-;25166:4;25204:2;25193:9;25189:18;25181:26;;25253:9;25247:4;25243:20;25239:1;25228:9;25224:17;25217:47;25281:131;25407:4;25281:131;:::i;:::-;25273:139;;25000:419;;;:::o;25425:::-;25591:4;25629:2;25618:9;25614:18;25606:26;;25678:9;25672:4;25668:20;25664:1;25653:9;25649:17;25642:47;25706:131;25832:4;25706:131;:::i;:::-;25698:139;;25425:419;;;:::o;25850:::-;26016:4;26054:2;26043:9;26039:18;26031:26;;26103:9;26097:4;26093:20;26089:1;26078:9;26074:17;26067:47;26131:131;26257:4;26131:131;:::i;:::-;26123:139;;25850:419;;;:::o;26275:::-;26441:4;26479:2;26468:9;26464:18;26456:26;;26528:9;26522:4;26518:20;26514:1;26503:9;26499:17;26492:47;26556:131;26682:4;26556:131;:::i;:::-;26548:139;;26275:419;;;:::o;26700:::-;26866:4;26904:2;26893:9;26889:18;26881:26;;26953:9;26947:4;26943:20;26939:1;26928:9;26924:17;26917:47;26981:131;27107:4;26981:131;:::i;:::-;26973:139;;26700:419;;;:::o;27125:::-;27291:4;27329:2;27318:9;27314:18;27306:26;;27378:9;27372:4;27368:20;27364:1;27353:9;27349:17;27342:47;27406:131;27532:4;27406:131;:::i;:::-;27398:139;;27125:419;;;:::o;27550:::-;27716:4;27754:2;27743:9;27739:18;27731:26;;27803:9;27797:4;27793:20;27789:1;27778:9;27774:17;27767:47;27831:131;27957:4;27831:131;:::i;:::-;27823:139;;27550:419;;;:::o;27975:::-;28141:4;28179:2;28168:9;28164:18;28156:26;;28228:9;28222:4;28218:20;28214:1;28203:9;28199:17;28192:47;28256:131;28382:4;28256:131;:::i;:::-;28248:139;;27975:419;;;:::o;28400:::-;28566:4;28604:2;28593:9;28589:18;28581:26;;28653:9;28647:4;28643:20;28639:1;28628:9;28624:17;28617:47;28681:131;28807:4;28681:131;:::i;:::-;28673:139;;28400:419;;;:::o;28825:::-;28991:4;29029:2;29018:9;29014:18;29006:26;;29078:9;29072:4;29068:20;29064:1;29053:9;29049:17;29042:47;29106:131;29232:4;29106:131;:::i;:::-;29098:139;;28825:419;;;:::o;29250:::-;29416:4;29454:2;29443:9;29439:18;29431:26;;29503:9;29497:4;29493:20;29489:1;29478:9;29474:17;29467:47;29531:131;29657:4;29531:131;:::i;:::-;29523:139;;29250:419;;;:::o;29675:::-;29841:4;29879:2;29868:9;29864:18;29856:26;;29928:9;29922:4;29918:20;29914:1;29903:9;29899:17;29892:47;29956:131;30082:4;29956:131;:::i;:::-;29948:139;;29675:419;;;:::o;30100:::-;30266:4;30304:2;30293:9;30289:18;30281:26;;30353:9;30347:4;30343:20;30339:1;30328:9;30324:17;30317:47;30381:131;30507:4;30381:131;:::i;:::-;30373:139;;30100:419;;;:::o;30525:::-;30691:4;30729:2;30718:9;30714:18;30706:26;;30778:9;30772:4;30768:20;30764:1;30753:9;30749:17;30742:47;30806:131;30932:4;30806:131;:::i;:::-;30798:139;;30525:419;;;:::o;30950:::-;31116:4;31154:2;31143:9;31139:18;31131:26;;31203:9;31197:4;31193:20;31189:1;31178:9;31174:17;31167:47;31231:131;31357:4;31231:131;:::i;:::-;31223:139;;30950:419;;;:::o;31375:::-;31541:4;31579:2;31568:9;31564:18;31556:26;;31628:9;31622:4;31618:20;31614:1;31603:9;31599:17;31592:47;31656:131;31782:4;31656:131;:::i;:::-;31648:139;;31375:419;;;:::o;31800:::-;31966:4;32004:2;31993:9;31989:18;31981:26;;32053:9;32047:4;32043:20;32039:1;32028:9;32024:17;32017:47;32081:131;32207:4;32081:131;:::i;:::-;32073:139;;31800:419;;;:::o;32225:::-;32391:4;32429:2;32418:9;32414:18;32406:26;;32478:9;32472:4;32468:20;32464:1;32453:9;32449:17;32442:47;32506:131;32632:4;32506:131;:::i;:::-;32498:139;;32225:419;;;:::o;32650:::-;32816:4;32854:2;32843:9;32839:18;32831:26;;32903:9;32897:4;32893:20;32889:1;32878:9;32874:17;32867:47;32931:131;33057:4;32931:131;:::i;:::-;32923:139;;32650:419;;;:::o;33075:::-;33241:4;33279:2;33268:9;33264:18;33256:26;;33328:9;33322:4;33318:20;33314:1;33303:9;33299:17;33292:47;33356:131;33482:4;33356:131;:::i;:::-;33348:139;;33075:419;;;:::o;33500:::-;33666:4;33704:2;33693:9;33689:18;33681:26;;33753:9;33747:4;33743:20;33739:1;33728:9;33724:17;33717:47;33781:131;33907:4;33781:131;:::i;:::-;33773:139;;33500:419;;;:::o;33925:222::-;34018:4;34056:2;34045:9;34041:18;34033:26;;34069:71;34137:1;34126:9;34122:17;34113:6;34069:71;:::i;:::-;33925:222;;;;:::o;34153:129::-;34187:6;34214:20;;:::i;:::-;34204:30;;34243:33;34271:4;34263:6;34243:33;:::i;:::-;34153:129;;;:::o;34288:75::-;34321:6;34354:2;34348:9;34338:19;;34288:75;:::o;34369:311::-;34446:4;34536:18;34528:6;34525:30;34522:56;;;34558:18;;:::i;:::-;34522:56;34608:4;34600:6;34596:17;34588:25;;34668:4;34662;34658:15;34650:23;;34369:311;;;:::o;34686:307::-;34747:4;34837:18;34829:6;34826:30;34823:56;;;34859:18;;:::i;:::-;34823:56;34897:29;34919:6;34897:29;:::i;:::-;34889:37;;34981:4;34975;34971:15;34963:23;;34686:307;;;:::o;34999:308::-;35061:4;35151:18;35143:6;35140:30;35137:56;;;35173:18;;:::i;:::-;35137:56;35211:29;35233:6;35211:29;:::i;:::-;35203:37;;35295:4;35289;35285:15;35277:23;;34999:308;;;:::o;35313:132::-;35380:4;35403:3;35395:11;;35433:4;35428:3;35424:14;35416:22;;35313:132;;;:::o;35451:141::-;35500:4;35523:3;35515:11;;35546:3;35543:1;35536:14;35580:4;35577:1;35567:18;35559:26;;35451:141;;;:::o;35598:114::-;35665:6;35699:5;35693:12;35683:22;;35598:114;;;:::o;35718:98::-;35769:6;35803:5;35797:12;35787:22;;35718:98;;;:::o;35822:99::-;35874:6;35908:5;35902:12;35892:22;;35822:99;;;:::o;35927:113::-;35997:4;36029;36024:3;36020:14;36012:22;;35927:113;;;:::o;36046:184::-;36145:11;36179:6;36174:3;36167:19;36219:4;36214:3;36210:14;36195:29;;36046:184;;;;:::o;36236:168::-;36319:11;36353:6;36348:3;36341:19;36393:4;36388:3;36384:14;36369:29;;36236:168;;;;:::o;36410:147::-;36511:11;36548:3;36533:18;;36410:147;;;;:::o;36563:169::-;36647:11;36681:6;36676:3;36669:19;36721:4;36716:3;36712:14;36697:29;;36563:169;;;;:::o;36738:148::-;36840:11;36877:3;36862:18;;36738:148;;;;:::o;36892:305::-;36932:3;36951:20;36969:1;36951:20;:::i;:::-;36946:25;;36985:20;37003:1;36985:20;:::i;:::-;36980:25;;37139:1;37071:66;37067:74;37064:1;37061:81;37058:107;;;37145:18;;:::i;:::-;37058:107;37189:1;37186;37182:9;37175:16;;36892:305;;;;:::o;37203:185::-;37243:1;37260:20;37278:1;37260:20;:::i;:::-;37255:25;;37294:20;37312:1;37294:20;:::i;:::-;37289:25;;37333:1;37323:35;;37338:18;;:::i;:::-;37323:35;37380:1;37377;37373:9;37368:14;;37203:185;;;;:::o;37394:348::-;37434:7;37457:20;37475:1;37457:20;:::i;:::-;37452:25;;37491:20;37509:1;37491:20;:::i;:::-;37486:25;;37679:1;37611:66;37607:74;37604:1;37601:81;37596:1;37589:9;37582:17;37578:105;37575:131;;;37686:18;;:::i;:::-;37575:131;37734:1;37731;37727:9;37716:20;;37394:348;;;;:::o;37748:191::-;37788:4;37808:20;37826:1;37808:20;:::i;:::-;37803:25;;37842:20;37860:1;37842:20;:::i;:::-;37837:25;;37881:1;37878;37875:8;37872:34;;;37886:18;;:::i;:::-;37872:34;37931:1;37928;37924:9;37916:17;;37748:191;;;;:::o;37945:96::-;37982:7;38011:24;38029:5;38011:24;:::i;:::-;38000:35;;37945:96;;;:::o;38047:90::-;38081:7;38124:5;38117:13;38110:21;38099:32;;38047:90;;;:::o;38143:149::-;38179:7;38219:66;38212:5;38208:78;38197:89;;38143:149;;;:::o;38298:126::-;38335:7;38375:42;38368:5;38364:54;38353:65;;38298:126;;;:::o;38430:77::-;38467:7;38496:5;38485:16;;38430:77;;;:::o;38513:154::-;38597:6;38592:3;38587;38574:30;38659:1;38650:6;38645:3;38641:16;38634:27;38513:154;;;:::o;38673:307::-;38741:1;38751:113;38765:6;38762:1;38759:13;38751:113;;;38850:1;38845:3;38841:11;38835:18;38831:1;38826:3;38822:11;38815:39;38787:2;38784:1;38780:10;38775:15;;38751:113;;;38882:6;38879:1;38876:13;38873:101;;;38962:1;38953:6;38948:3;38944:16;38937:27;38873:101;38722:258;38673:307;;;:::o;38986:320::-;39030:6;39067:1;39061:4;39057:12;39047:22;;39114:1;39108:4;39104:12;39135:18;39125:81;;39191:4;39183:6;39179:17;39169:27;;39125:81;39253:2;39245:6;39242:14;39222:18;39219:38;39216:84;;;39272:18;;:::i;:::-;39216:84;39037:269;38986:320;;;:::o;39312:281::-;39395:27;39417:4;39395:27;:::i;:::-;39387:6;39383:40;39525:6;39513:10;39510:22;39489:18;39477:10;39474:34;39471:62;39468:88;;;39536:18;;:::i;:::-;39468:88;39576:10;39572:2;39565:22;39355:238;39312:281;;:::o;39599:233::-;39638:3;39661:24;39679:5;39661:24;:::i;:::-;39652:33;;39707:66;39700:5;39697:77;39694:103;;;39777:18;;:::i;:::-;39694:103;39824:1;39817:5;39813:13;39806:20;;39599:233;;;:::o;39838:176::-;39870:1;39887:20;39905:1;39887:20;:::i;:::-;39882:25;;39921:20;39939:1;39921:20;:::i;:::-;39916:25;;39960:1;39950:35;;39965:18;;:::i;:::-;39950:35;40006:1;40003;39999:9;39994:14;;39838:176;;;;:::o;40020:180::-;40068:77;40065:1;40058:88;40165:4;40162:1;40155:15;40189:4;40186:1;40179:15;40206:180;40254:77;40251:1;40244:88;40351:4;40348:1;40341:15;40375:4;40372:1;40365:15;40392:180;40440:77;40437:1;40430:88;40537:4;40534:1;40527:15;40561:4;40558:1;40551:15;40578:180;40626:77;40623:1;40616:88;40723:4;40720:1;40713:15;40747:4;40744:1;40737:15;40764:180;40812:77;40809:1;40802:88;40909:4;40906:1;40899:15;40933:4;40930:1;40923:15;40950:180;40998:77;40995:1;40988:88;41095:4;41092:1;41085:15;41119:4;41116:1;41109:15;41136:117;41245:1;41242;41235:12;41259:117;41368:1;41365;41358:12;41382:117;41491:1;41488;41481:12;41505:117;41614:1;41611;41604:12;41628:117;41737:1;41734;41727:12;41751:102;41792:6;41843:2;41839:7;41834:2;41827:5;41823:14;41819:28;41809:38;;41751:102;;;:::o;41859:230::-;41999:34;41995:1;41987:6;41983:14;41976:58;42068:13;42063:2;42055:6;42051:15;42044:38;41859:230;:::o;42095:237::-;42235:34;42231:1;42223:6;42219:14;42212:58;42304:20;42299:2;42291:6;42287:15;42280:45;42095:237;:::o;42338:220::-;42478:34;42474:1;42466:6;42462:14;42455:58;42547:3;42542:2;42534:6;42530:15;42523:28;42338:220;:::o;42564:225::-;42704:34;42700:1;42692:6;42688:14;42681:58;42773:8;42768:2;42760:6;42756:15;42749:33;42564:225;:::o;42795:178::-;42935:30;42931:1;42923:6;42919:14;42912:54;42795:178;:::o;42979:223::-;43119:34;43115:1;43107:6;43103:14;43096:58;43188:6;43183:2;43175:6;43171:15;43164:31;42979:223;:::o;43208:175::-;43348:27;43344:1;43336:6;43332:14;43325:51;43208:175;:::o;43389:231::-;43529:34;43525:1;43517:6;43513:14;43506:58;43598:14;43593:2;43585:6;43581:15;43574:39;43389:231;:::o;43626:174::-;43766:26;43762:1;43754:6;43750:14;43743:50;43626:174;:::o;43806:243::-;43946:34;43942:1;43934:6;43930:14;43923:58;44015:26;44010:2;44002:6;43998:15;43991:51;43806:243;:::o;44055:229::-;44195:34;44191:1;44183:6;44179:14;44172:58;44264:12;44259:2;44251:6;44247:15;44240:37;44055:229;:::o;44290:228::-;44430:34;44426:1;44418:6;44414:14;44407:58;44499:11;44494:2;44486:6;44482:15;44475:36;44290:228;:::o;44524:230::-;44664:34;44660:1;44652:6;44648:14;44641:58;44733:13;44728:2;44720:6;44716:15;44709:38;44524:230;:::o;44760:182::-;44900:34;44896:1;44888:6;44884:14;44877:58;44760:182;:::o;44948:231::-;45088:34;45084:1;45076:6;45072:14;45065:58;45157:14;45152:2;45144:6;45140:15;45133:39;44948:231;:::o;45185:182::-;45325:34;45321:1;45313:6;45309:14;45302:58;45185:182;:::o;45373:228::-;45513:34;45509:1;45501:6;45497:14;45490:58;45582:11;45577:2;45569:6;45565:15;45558:36;45373:228;:::o;45607:234::-;45747:34;45743:1;45735:6;45731:14;45724:58;45816:17;45811:2;45803:6;45799:15;45792:42;45607:234;:::o;45847:220::-;45987:34;45983:1;45975:6;45971:14;45964:58;46056:3;46051:2;46043:6;46039:15;46032:28;45847:220;:::o;46073:114::-;;:::o;46193:236::-;46333:34;46329:1;46321:6;46317:14;46310:58;46402:19;46397:2;46389:6;46385:15;46378:44;46193:236;:::o;46435:231::-;46575:34;46571:1;46563:6;46559:14;46552:58;46644:14;46639:2;46631:6;46627:15;46620:39;46435:231;:::o;46672:168::-;46812:20;46808:1;46800:6;46796:14;46789:44;46672:168;:::o;46846:122::-;46919:24;46937:5;46919:24;:::i;:::-;46912:5;46909:35;46899:63;;46958:1;46955;46948:12;46899:63;46846:122;:::o;46974:116::-;47044:21;47059:5;47044:21;:::i;:::-;47037:5;47034:32;47024:60;;47080:1;47077;47070:12;47024:60;46974:116;:::o;47096:120::-;47168:23;47185:5;47168:23;:::i;:::-;47161:5;47158:34;47148:62;;47206:1;47203;47196:12;47148:62;47096:120;:::o;47222:122::-;47295:24;47313:5;47295:24;:::i;:::-;47288:5;47285:35;47275:63;;47334:1;47331;47324:12;47275:63;47222:122;:::o
Swarm Source
ipfs://0e820f3a73157e712f596342f9902f2676e643eca6e3bb06c05db1e07b486c4f
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.