ERC-721
Overview
Max Total Supply
68 SPOOKYCATS
Holders
43
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 SPOOKYCATSLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SpookyCats
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-10-29 */ // Sources flattened with hardhat v2.6.1 https://hardhat.org // File @openzeppelin/contracts/utils/introspection/[email protected] // SPDX-License-Identifier: MIT 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/token/ERC721/[email protected] 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/[email protected] 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/token/ERC721/extensions/[email protected] 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/utils/[email protected] 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/utils/[email protected] 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/utils/[email protected] 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/introspection/[email protected] 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/[email protected] 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 { require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_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 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/[email protected] 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/[email protected] 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 @openzeppelin/contracts/access/[email protected] 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() { _setOwner(_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 { _setOwner(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"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File contracts/SpookyCats.sol pragma solidity ^0.8.0; interface IReferenceContract { function tokensOfOwner(address owner) external view returns (uint256[] memory); } contract SpookyCats is ERC721Enumerable, Ownable { using Strings for uint256; string public _baseTokenURI; uint256 public _price = 0.03 ether; uint256 public _maxSupply = 3333; bool public _preSaleIsActive = false; bool public _saleIsActive = false; mapping(address => uint256) public _whitelist; mapping(uint256 => bool) public _tokensTracked; address _referenceContract = 0x5f7Ed81ee49a3D85ff9F2120156b4Cd38383B9cb; address a1 = 0x55c3B3D49bdeFC4DC52667C4eA7c6Ce5089e08Ed; address a2 = 0x7a598C9A35cC773B6E650cc8ed08b2b9513dDa01; address a3 = 0xA4754D6c8905AA776692bc60732F92911EA1fCa2; constructor(string memory baseURI) ERC721("SpookyCats", "SPOOKYCATS") { _baseTokenURI = baseURI; populateWhitelist(); } function mint(uint256 mintCount) external payable { uint256 supply = totalSupply(); uint256 whitelistMints = _whitelist[msg.sender]; uint256 freeMints; uint256 payableMints; if (whitelistMints > 0 && whitelistMints < 99) { freeMints = whitelistMints; _whitelist[msg.sender] = 99; } uint256[] memory tokensOfSender = IReferenceContract(_referenceContract).tokensOfOwner(msg.sender); for (uint256 i; i < tokensOfSender.length; i++) { if (!_tokensTracked[tokensOfSender[i]]) { freeMints = freeMints + 2; _tokensTracked[tokensOfSender[i]] = true; } } if (whitelistMints > 0 || tokensOfSender.length > 0) { require(_preSaleIsActive, "pre_sale_not_active"); } else { require(_saleIsActive, "sale_not_active"); } if (mintCount > freeMints) { payableMints = mintCount - freeMints; } uint256 totalMints = freeMints + payableMints; require(supply + totalMints <= _maxSupply, "max_token_supply_exceeded"); require(msg.value >= _price * payableMints, "insufficient_payment_value"); for (uint256 i; i < totalMints; i++) { _safeMint(msg.sender, supply + i); } } function ownerMint(uint256 mintCount, address recipient) external { uint256 supply = totalSupply(); bool canMint; if (msg.sender == a1 || msg.sender == a2 || msg.sender == a3) { canMint = true; } require(canMint, "unauthorized_sender"); require(supply + mintCount <= _maxSupply, "max_token_supply_exceeded"); for (uint256 i = 0; i < mintCount; i++) { _safeMint(recipient, supply + i); } } function checkTrackedTokenId(uint256 tokenId) external view returns (bool) { return _tokensTracked[tokenId]; } function updateWhitelist(address owner, uint256 count) external onlyOwner { _whitelist[owner] = count; } function _baseURI() internal view virtual override returns (string memory) { return _baseTokenURI; } function setBaseURI(string memory baseURI) external onlyOwner { _baseTokenURI = baseURI; } function setPrice(uint256 price) external onlyOwner { _price = price; } function preSaleStart() public onlyOwner { _preSaleIsActive = true; } function preSaleStop() public onlyOwner { _preSaleIsActive = false; } function saleStart() external onlyOwner { _saleIsActive = true; } function saleStop() external onlyOwner { _saleIsActive = false; } function interfaceTokensOfOwner(address owner) external view returns (uint256[] memory) { return IReferenceContract(_referenceContract).tokensOfOwner(owner); } function tokensOfOwner(address owner) external view returns (uint256[] memory) { uint256 tokenCount = balanceOf(owner); uint256[] memory tokenIds = new uint256[](tokenCount); for (uint256 i; i < tokenCount; i++) { tokenIds[i] = tokenOfOwnerByIndex(owner, i); } return tokenIds; } function withdrawAll() external payable onlyOwner { uint256 _each = address(this).balance / 3; require(payable(a1).send(_each)); require(payable(a2).send(_each)); require(payable(a3).send(_each)); } function populateWhitelist() private { _whitelist[0x63Dc29501d7559DB0Cb81b9C6DbC3C2F042C1245] = 1; _whitelist[0xb5A2D06B4D3FDfC994cC82def8C7E3364905aBC7] = 1; _whitelist[0xDB74098bB80aff56B5e525D55ACE521a7Fa83D60] = 1; _whitelist[0x1107602d51193953cFe4cb8a4B01d846e7E426ab] = 1; _whitelist[0x8a9ae3393801cFA423a54E1031639CF8c6f65FBF] = 1; _whitelist[0x53F0B0a19469B9B4e493c968b52EF09826e13F30] = 1; _whitelist[0xeBc453E098EA5Ca81E216441891c84BC4fB6e8E6] = 1; _whitelist[0x7bbb1cF56c688fB49a7685Fb28409484f6aD35CD] = 1; _whitelist[0xcdEFcDF6937BC536a637ca8fBb44Cfae1476eB42] = 1; _whitelist[0xF7595B72e67264FDc8c5b12D67cdF9BF0cDB4716] = 1; _whitelist[0x40a2F7517a98D96aF74C0C86f9C9e1De709FF56E] = 1; _whitelist[0x0Dda429Fb28fD7B3D8B0D232f88F3aF19d906962] = 1; _whitelist[0x09e79e8b4cdbFF6B26D4cf4BaB113705896fE9a8] = 1; _whitelist[0x26Ac155F40A4Ac8fcac27b45D3bd38F17B928BE2] = 1; _whitelist[0x835649A4Ad9C806405B03e39BFCd02D6e81B408F] = 1; _whitelist[0x53607f10D76B9d29d6eAD2184E9045dF978F8b59] = 1; _whitelist[0xA494EAaDc6b7940a6DB852DC54B2FE5fA15ca624] = 1; _whitelist[0xC3EDD46bCf48890c1B72aE414cD61B90D1c3334f] = 1; _whitelist[0x4E0ad2Dd94ae7447A24e824c46061dbE983E0A1F] = 1; _whitelist[0xb7a2B5a7d82085567362015a775BE42D1FC70652] = 1; _whitelist[0xa59C465D617E9c4101FCa42463E4F9453db6da42] = 1; _whitelist[0xb9C86b39301246e055d01c76f20b848A88427B02] = 1; _whitelist[0xa57255C02d1171E960aA4F5a99184e5982f33077] = 1; _whitelist[0x0ACE7Cc0F10C2bF796bC2Fb1bb80e1C8847B0567] = 1; _whitelist[0x734Bf83ebE39F3Dbc53360a0522c6c99517a5074] = 1; _whitelist[0xd52C99B8D73F5bD29dA85330eFCa15acC5071C62] = 1; _whitelist[0x7F2AD3B180a2724c922a63DF13F8BFC7fc36b685] = 1; _whitelist[0x6A932553C062E0aFF43B59d3FBaAcA18F0Dab017] = 1; _whitelist[0xb504b504551AdEE28b9e046e2a218200e8aF66Cb] = 1; _whitelist[0xb963C1BFA2ee0dA0F3300F4d4AE2E2A5504A1DF9] = 1; _whitelist[0xF3D2d790dDE4889Ff10B8D8FBD2DE7631eE97663] = 1; _whitelist[0x453ac2F4462d3ced2BDA325898fae783926225FC] = 1; _whitelist[0xD17238636aCE796bae6BD669737775aF7AA8f82B] = 1; _whitelist[0xb1eBF12bCE67984D914062BD1b7c641962557660] = 1; _whitelist[0x7258DC6dc529B531bAE1579D190f193fa3706b4A] = 1; _whitelist[0x7656354162ac373A52783896E0DC9D1A1352d94d] = 1; _whitelist[0x41284C43F91d6307F8E5dc2CE72061d43Cd383c0] = 1; _whitelist[0xF7fcCCBB90eA56626A5C8ef1AA273aCFDCCC3eA6] = 1; _whitelist[0x66Ee3605Ca27E13848b53c9730235323B2Aa69a0] = 1; _whitelist[0x159148Aa964A0774F2Dc9c534aBee6e305Af4d7d] = 1; _whitelist[0xf2615676Dc226ECd4494A04228857e3a1BDf86f5] = 1; _whitelist[0xc64B31506c2c813d7C81Db05decD3c187E701e08] = 1; _whitelist[0xA205B1022b7915261Bf62835F02aC7A8d9Ca1e05] = 1; _whitelist[0xFD845e60eAea6c960d2a2b6F490b53D26925D5cB] = 1; _whitelist[0x64590a8a5C844394893668EaC7edE9A1adF18152] = 1; _whitelist[0x31FD69F76afed0FA6DB8B1a606e521C64813505D] = 1; _whitelist[0x1D43168ff0e4b52209571613A5a2ab6cE00B7999] = 2; _whitelist[0x9946Ba71C3f7f0730373dE898D8E38411FAA152b] = 1; _whitelist[0x3E0dF2ce06a8225F12af6D2171FEc1bDbDAcEa8D] = 1; _whitelist[0x3286651F7bA59ba8D23025b39A24Cb473C9C01B8] = 1; _whitelist[0x856a5f9a8A29b4C9E0c95357b543Ff3e9245BfBA] = 1; _whitelist[0x1922942C8CafA23B67d1BA45703950DD0849480a] = 1; _whitelist[0x68f3b8F48CaD402DDA2e7D3Fa7697984E2DCa741] = 1; _whitelist[0xe3901d0a64973a4f9e163A9fE8448dcdc98bA8e9] = 1; _whitelist[0x2b291BE98C53e2fC88224745cd0B75Fa02121f28] = 1; _whitelist[0x033CC34a6AB84705B3cF71098653a9840514c73D] = 1; _whitelist[0x0e51632B79ca39813111ea6a75f3c3ab4979fEa6] = 1; _whitelist[0xc70150E6DefF0b3d0578Dc99d97401631b838f55] = 2; _whitelist[0x1327eda6B51Ea6D19d701398EBb120C7dcd54B58] = 1; _whitelist[0xCba1311383Fbc544e8Ae08B48Ed7B6FcE1e5691a] = 1; _whitelist[0x998F6da35d54Da034ad39Df42f37FA069C645A47] = 1; _whitelist[0x268018E1Ef07dD68873AF53721Af50947EFE8F4a] = 1; _whitelist[0xBeF6A169E4d44840D55032CB75a3910b6fEF467d] = 1; _whitelist[0xABaa9079De6d8b4228A98Eb1435d471B7De6992f] = 1; _whitelist[0xc01DbEEA95ba3AC00fbD9Be9fF06eC3284dc42E5] = 1; _whitelist[0x3232e13096515B5cf006358bf91B588C3066757e] = 1; _whitelist[0x9dfe430F8752a5a725C79D8A8cECB6F9535f62D5] = 1; _whitelist[0x1234ec7C0Ab43fae7f7B97c18d5183Ba5967564B] = 1; _whitelist[0x1498A57afE51860b22413CEdD196Cf4493bBfe12] = 1; _whitelist[0xA1232CE88B93702c3467d0b6Ad7E9FA6eEb49EB4] = 1; _whitelist[0x765Bd363c8fCF8AA4dB870E05fD5Ba40dAa81B66] = 1; _whitelist[0x9dD23e4Ea9e5b10529056FF120dcd41bd1C8F310] = 1; _whitelist[0xfF069d9c80235FF14d296E2b81788f25eeDd6D11] = 1; _whitelist[0xb27D058c8C64e0FC6DFaf4860D271d51B27A5F88] = 1; _whitelist[0xf66A629EdA2c24B6EFeB750Fe74A3FeA9902aC6d] = 1; _whitelist[0x1eFf4f9836F34F9618DF4491D0bAE051F07eF2d6] = 1; _whitelist[0x716C59a499fADeb4b5Be3b319B6cf24385503Ed0] = 1; _whitelist[0x4d96b171372385EEF9db97cfaF9f16A46BD22d04] = 1; _whitelist[0x6BbFf3885bBf209bF40Eb5Bb95c21E20feE214ad] = 1; _whitelist[0x4c02081163eEf26c5b6d607D5a92eB46f14e3917] = 1; _whitelist[0x0226f58C94C0857B2e3aBd4aA0df2Ef917A71dCc] = 1; _whitelist[0x2a127C5d264013026eF3f31cbAa7f6812cC2a731] = 1; _whitelist[0xA5Ed9AcE0C2a53B6490D4C8e72f9a966F37DF35f] = 1; _whitelist[0x6F9900f5dF40399080a0CC206AD41c674CFa66CE] = 1; _whitelist[0x2972fe704FBd567bE18A4BAcfe9f05eA9a62f729] = 1; _whitelist[0x7961Bd738c2218038A60324181311f0e8e406121] = 1; _whitelist[0xC42bA60a4f78b4037E30167105e5f76657a9d08f] = 1; _whitelist[0x2f5Ab230e5B0564C0eecc93674a8B85B781A499F] = 1; _whitelist[0xe7B622e9a313e79a7b693485f0F5878740BC9249] = 1; _whitelist[0x88c97dF74680530Dfb4bc10Bb61707De63D439f7] = 1; _whitelist[0x9B5f95fFb5Cb01723BBD1e8E76f310358351f483] = 1; _whitelist[0x1459a34762b6401f5fbFa11C55B0f81Bda100391] = 1; _whitelist[0x08CA657ca337EDE754ceD0200918fEfEE7203041] = 1; _whitelist[0x5f697FB2A1b538a62bC196bc0aacD280e0bD22AE] = 1; _whitelist[0x6101e3de526fCC9596A9ed2FBA8BCdE47bd66920] = 1; _whitelist[0x0e0889A8F18C1319B2f8e22AEc2F4Bbe8Fc422A0] = 1; _whitelist[0xCE6900D875C7460CE6293C77F6070C98C5c3db9A] = 1; _whitelist[0xd88cEaaE5e9156B5D48b718EdbA62C4E52C509d6] = 1; _whitelist[0x1DB0056646a5bf324cB53a324aC325c6fbB85fB5] = 1; _whitelist[0x4122Ac127311bB4bD22ceC65AE3A8007d8ab9489] = 1; _whitelist[0x11ba2C5506E69A33e333fF9E9D7174aa52B59093] = 1; _whitelist[0xF4E30bcb65f56B9bbb5B7aeF70Daaf07b7B5FCD2] = 1; _whitelist[0x486B90d442F4319FC8A19B9c4b75C9857196e6D4] = 1; _whitelist[0xfEfF684674F2a0549723C75814b1487eBc92EDE5] = 1; _whitelist[0x4a1ccB3fC509205EC44e86A741bA29AB66a06F45] = 1; _whitelist[0x5e9b7676B36f5DE6ce31Eef1fa4a23598Af8EdDc] = 1; _whitelist[0x711Ed6Dff07A4E61C4158350557B0606FF79a6b5] = 1; _whitelist[0xc745AE18B87eb0DB75c89D9699dc880b833D7645] = 1; _whitelist[0xdA19cd59A312CB34b4c5B07D6DdAeC333b989973] = 1; _whitelist[0x987aF6aAfA9415D1684905B4654338F4bEd19AD8] = 1; _whitelist[0x0CD40F7EdB13EC6B372e8B3333b209eF16E5ae98] = 2; _whitelist[0xC03aDa2B5DF0cC5D3919aE551Cfe65559Dbabe1D] = 1; _whitelist[0xB2d68609a7374d81ee096C965467BbA5c20E6DD8] = 1; _whitelist[0xc304E913ebB7625687D66f6904207fdFD19C7E53] = 1; _whitelist[0xfa3369b19ACB8625A631ea807D9F60Cc0e050577] = 1; _whitelist[0x863E7aAded2B90a08802d362b7FBf228b65C5Bc9] = 1; _whitelist[0x4A9973D3A1563a85B9424D2Db229151a8E1f5611] = 1; _whitelist[0xd90DBE9117676b29c2e06fffc339b24A71051ed0] = 1; _whitelist[0x71453727E55C378551B7b466F16da18aC1Dfc874] = 1; _whitelist[0xd011878cBEE251d148857A58EB737ADc3A4a9e98] = 1; _whitelist[0xf9eC946c7D7Fa6189147EeE1C2B7bF418e7eB705] = 1; _whitelist[0x560f74a13E7118038eB4e67caFCc42BA19EE8F82] = 1; _whitelist[0xe300DD7bd1c79aa78ED4217b482ec9f95De7fBb1] = 1; _whitelist[0x2913ffd77bf3317C3922B707D6aDDCFc9d0e3eAF] = 1; _whitelist[0x3710c45D46aD86A868Ae03899412B8aB6246f64e] = 1; _whitelist[0x9B23C802dD34cCdB7661102d9F9D647D3879D25C] = 1; _whitelist[0x2881fDf7e15D3664BeDCFb79B4775A89ED7Fc122] = 1; _whitelist[0xC5FC0a9Cb273ad5cfa538345618Aa692a3CBB02a] = 1; _whitelist[0xB109c2B91095E27Ecec3B9e46F72063c90A6054B] = 1; _whitelist[0x00A3031230E54f9fc124A7AeDB77111e020DD675] = 1; _whitelist[0x31ad5BF465D86952253D07B89dc68b236BE50bE2] = 1; _whitelist[0x1b7549c126680B1d08Cc660C6e772ccEc0Bcc663] = 1; _whitelist[0x79322e3d7133BF9d3b886e6adD1Fc65e0DcC60AF] = 1; _whitelist[0x4a36246660620b03A933BBEd0E87c469eDa61A74] = 1; _whitelist[0x2bd0897c180feaEa5D4DcD8CE4CDc4167ee3Cf22] = 1; _whitelist[0x575fA7ac7E4fCfdD66ed62602Ff28b0FCec47AD7] = 1; _whitelist[0x29CAa7a393cFE67576F81A8b77A22c7880aF5501] = 1; _whitelist[0x78244D51D21BC7A58BeE3bD6932928c93C83Fb99] = 1; _whitelist[0xc70Be24060c944790B1af7a67b63Bb4109FB1f2A] = 1; _whitelist[0xbF6CB050941a12305ccADbc594B5fE46290efaFB] = 1; _whitelist[0x58A00F069924fB09d261CFFA02EFa6316D4dFc1A] = 1; _whitelist[0x3913d13611D2F128e3e1d3Ee7dAbA53e4d37a2C8] = 1; _whitelist[0x9c466fBdECF0a60018a8eC0D3a0Ef540DF31d9Ba] = 1; _whitelist[0x9B578c1696b30b85e36f36F679242D25283910E4] = 1; _whitelist[0xFCe04BD855fddce366ff8D04ca930503E8263A3f] = 1; _whitelist[0x908DF508e7Cb714c32F1986bC29e9e350a70b1d6] = 1; _whitelist[0x3D03856068DF8A206F452DF10156B909671517D7] = 1; _whitelist[0x8f8260521A3EE8540D5e1b5f17051ea434D18d72] = 1; _whitelist[0x0D552308237A5536864D15E7c2eeC79f8FE3982A] = 1; _whitelist[0x797c7B11f619dfE9665b8e9f17F6666d3142f378] = 1; _whitelist[0xA4Da502fcdf699827AB39ec0Ebd5A7D298B8548b] = 1; _whitelist[0x31963b060d71ee24A6d458B75AA85E63b99Bd7fB] = 1; _whitelist[0xd8a2759c485f0028e1d494d9cFbFF61a857703Ba] = 1; _whitelist[0xd8e611961E49c21592f58DeFe9272e81E0880fF0] = 1; _whitelist[0xfd2c90dBA0BD1CAD3Eb8696A49e86d9d7Bf6A677] = 1; _whitelist[0x575BeF676A2d7EA43839D3DEb57bf94EBd603c3f] = 1; _whitelist[0x178f05180456bD8bfb58512B20a35F1ECaD8E488] = 1; _whitelist[0xd2bE77Ad97a8ae76061b14f60f8E75d0618a8Bc6] = 1; _whitelist[0xD7738712EC08Cf59C2F948E0Dc9E0535F2eFA2cE] = 1; _whitelist[0x6E3998bAB30F24d0B7bB09a24FBC7105F3f2dCf8] = 1; _whitelist[0xBFFc3dd2490c44015c6eA06d62B8bFac7F666663] = 1; _whitelist[0xfFd8074dFA81097A0eb770C25f8fE367B2017e5D] = 1; _whitelist[0xba779536c4AdAbC750F66053477C6BD63B5a814b] = 1; _whitelist[0x8d3bD8c1FefDd108b59a725a3A16276E43ceE6bb] = 1; _whitelist[0x17070EEC41395063CC046132cC95CE028bCA352E] = 1; _whitelist[0x27c017479C893226F8e8Ce6eDc862dFC1786F6c3] = 1; _whitelist[0x5685A0d411E88fdf99702189506540807C0fd4F0] = 1; _whitelist[0x414aE5317aC0109d3B4B78a739E46EF6594A8117] = 1; _whitelist[0x8D16e6AF9faa28277B4fef9F7225ab1642a7dC8E] = 1; _whitelist[0xD44EF5Ba2F992F44dB5F43630F0d0ECC3AE6D192] = 1; _whitelist[0x760a42570FAa7BC535B00Ef872DDbBFd15bf632A] = 1; _whitelist[0x654902C7fb6514376221e33dF2342452Df1B8a20] = 1; _whitelist[0xdDdB7aE1Db2a487059Ed87ADEfb534b60e183379] = 1; _whitelist[0x998B5660b069884a34D67A6D564d64374EF101CA] = 1; _whitelist[0x352465348315DAb6079B01EeC41d99E4630a6884] = 1; _whitelist[0x466AbBfb9AAb4C6dF6d3Cc03D6C63C43C5162048] = 1; _whitelist[0x91cEaECEeF3Fee475Cd6B1EB8a466BffF3276235] = 1; _whitelist[0x7aF81fCDfD6F9a5115d33518C3119A829eF996cF] = 1; _whitelist[0x64d7f75EB50C1FD3ab0f5b7a091017058265560C] = 1; _whitelist[0x3e276663F97c85FDbC4952Bb3f17667257b7ec06] = 1; _whitelist[0x2622A9d55d687E96C6320f64AD8c323ccD3B1115] = 1; _whitelist[0x228e7EF9ca9d993cDCdC51157EE3087ec0BFB1Ed] = 1; _whitelist[0x05cAAD8dd79807D1D31d089CE90Bde9c068dc743] = 1; _whitelist[0x005fe151D9185a30A11B3Fc7233ca3b2cfee7EC5] = 1; _whitelist[0xd181C2250DF5eb611D7d5Fc06725c71EF807B74D] = 1; _whitelist[0x2B64ba4D237D534971D7bE9F0323c0FE8d6ED374] = 1; _whitelist[0x479D10B2ECdD86ff92098E11693ABaa8A06e53ec] = 1; _whitelist[0x9DCAA39A7fB46f6d7281C636253473E43912Dd04] = 1; _whitelist[0x5c1a0FA9C926D570DF1db629A359507aE411957C] = 1; _whitelist[0xDA862691ab3F8fD3F28123b72146a571575E5E2A] = 1; _whitelist[0xE537161881499a8eded38aBD72A3A42e2CD02F14] = 1; _whitelist[0x077FdfA2aeC6b8094091E04832bAEfC29869fCE2] = 1; _whitelist[0x357521a8F37120730986504bfbC9AB3823014B02] = 1; _whitelist[0x9dB0d73BA0Ac7069A043dd61AF111d383cdf4959] = 1; _whitelist[0x6D27109eE133835817EB9F232CF5047879CA3BE9] = 1; _whitelist[0xbb379Fd5C382462B036285cf212ef86b447230Ac] = 1; _whitelist[0x7A6Be82e4268086D8BDb723F5ca7e3f47699528F] = 1; _whitelist[0xd999AD87f550BdeA462873EEC02C7a6aBb7dbC59] = 1; _whitelist[0x14BB901ba4B98898465a7dc9a1c27E4970183dcf] = 1; _whitelist[0xd8b13F3647122ce258c802f2A48B9b1774b72218] = 1; _whitelist[0xE9bCcf975C1D18839CC0522647Df6004d01DD4f9] = 1; _whitelist[0xE736E2f558B59fb333C9092fD407B1c8a775CED5] = 1; _whitelist[0xf39E5F6d386b79F981Aa58b5E53c50De81eb5f28] = 1; _whitelist[0xb36a66271b2c99043fE07C93fc4Bd723300d67ae] = 1; _whitelist[0xdb68A37014FaeaAB36f3d244f9649A6877d3b045] = 2; _whitelist[0x57325fFB486cfD1B943c77507ba339b0D5D1B546] = 1; _whitelist[0x47b40d0c64005c74666dCb348bd4a3D6A2e8Faf2] = 1; _whitelist[0xf7321Cb3Ab5EaD1C78187380D89c3c6Afb492C84] = 1; _whitelist[0xD930FA30c21cC729C11C550854A2f16eB545b38e] = 1; _whitelist[0xeC0D280929ed4a08F367CAD07bc5A3Bb4BB07687] = 1; _whitelist[0x70e8df8e5887b6Ca5A118B06E132fbBE69f0f736] = 2; _whitelist[0x4DA33Cf3100E5DA72285F1Cc282cf056ce0ADD51] = 1; _whitelist[0x680fffAEaF8A1888006b31FB1c1804eae8A2aE84] = 1; _whitelist[0xDff71A881a17737b6942FE1542F4b88128eA57D8] = 1; _whitelist[0x29cb02180D8d689918cE2c50A3357798d6Fd9283] = 1; _whitelist[0xeFF582CE2650FBe7fdf8b8d5DD70c2f71bc6e3BE] = 1; _whitelist[0xC4FBAfafE2eCe3b2b94Ab735A4079493faaE73B3] = 1; _whitelist[0x17C056d0e6A6D998ED9ea67Df252af7fcad9d998] = 1; _whitelist[0xD1333b41d5851eb2c229ee3ACf8b3afea2C6A486] = 1; _whitelist[0xd0d72Ed50588D4219c675a7d4235a7BfD832CafC] = 1; _whitelist[0x7C8867841cA13e9c5eF77b7abe4B4be4f4383DBB] = 1; _whitelist[0x64ae474dA28Db2Ef925b87E94a81C8F2783f6066] = 1; _whitelist[0x71fEA1Cc5B76E8bC5568dEb48C505f77B4C7920E] = 1; _whitelist[0x3D139eB16d79944a98EC3Db0A862f9CE98c576F5] = 1; _whitelist[0x815537cC9c4E54F232389E71C6413FEF905515C9] = 1; _whitelist[0xE62dA1963414DEAB63751989334ad71E55895620] = 1; _whitelist[0x178cb0E2a3d3eb0c0e76ef79b46e495A73a14f25] = 1; _whitelist[0x6CB5c9fd6df9Ec4fd1B61C611A88161965E0D7D0] = 1; _whitelist[0x3a67910fAc82Dd5cbb58B48cccea779E1e5334f0] = 1; _whitelist[0xf5434f31be443337F253892059740dDA019B0114] = 1; _whitelist[0x4cE4fD36C1040eC42f01566684b5D6424f142126] = 1; _whitelist[0xC7c2576E4564621d2371806e0B090AB85C4DC7b9] = 1; _whitelist[0x997B95a4a1eD6186A2de4D63f9ab1c95A918468a] = 1; _whitelist[0xBdA655472FEe2074e6bc6Db9F32ca15c786c182D] = 2; _whitelist[0xEFc53997a1143f6EC7d56a1b9CB8A137442F2Fd1] = 1; _whitelist[0xb6eeD98a7917953093992592D5A606e8d5c82BD5] = 1; _whitelist[0xf8c853ffA4A4f0ba3317A3AD97C9dCbbEe2f6c0f] = 1; _whitelist[0xe0024AB198F3F40a6EF41fCf05ed8aB153D16811] = 1; _whitelist[0x94E59547b8C68924380C90E729488f3E79FF8d22] = 1; _whitelist[0x0931D31509eCE624dF1058509D56452ae6C890F6] = 1; _whitelist[0x897a6D1A4e30470D9ACd5eCBb1F979cDB0F8Cdab] = 1; _whitelist[0x0628f16e2D1c51f6fe84D4300B63330e75e3a183] = 1; _whitelist[0xfD8Ce17208f8244175a6f06e522Df3E73fd843D8] = 1; _whitelist[0x700643004BA7Cb17B824C6808A4196a06eB25E4b] = 1; _whitelist[0x382DA0557343B6637cbD1ACF6BbB63DfF423D6cd] = 4; _whitelist[0xAD62DA09a5faC08c802aa97707186C9BE1838700] = 1; _whitelist[0x23E53e8215f3223D29F8b67708C384EEF2B42CC0] = 1; _whitelist[0x35548a028f67C7e2669b9D20D48185AaB452cF3F] = 1; _whitelist[0xfE9a4bd31077092cF33c82d9340CE751f53d1019] = 1; _whitelist[0x009268406b52502bF89024C992ab192D9CD81e1C] = 1; _whitelist[0xB5619CA0Bdd458EBfbc2b8B4b823E23D5717ea67] = 1; _whitelist[0xFda4067D5c3ECd62D6A62e47123496cba5d69408] = 1; _whitelist[0x38D4AA05B0C4445978BFB353c4aEDfc31b01dE86] = 1; _whitelist[0x31Ead29A17C14F5426d8cEe40c975f563B1daBfc] = 1; _whitelist[0x9c6E4c937b469f29eC5d790906B11Aa1410E3645] = 1; _whitelist[0x05D37a4A252459A8ce335E0b4E2852262aFD7616] = 1; _whitelist[0xaF85B139AA26c1A4C920Da0F63AAb2D571fD8AB5] = 1; _whitelist[0x1aB7966a006D47AFe62c315CC467d192d5A107A3] = 1; _whitelist[0x18e3cd7c20778a7cA1304E3a5698D2Ff85F14D9d] = 1; _whitelist[0x764aBE778aa96Cd04972444a8E1DB83dF13f7E66] = 1; _whitelist[0xf1ad3ED4b754c4B0D7b9d70F617191A8118B5Cf5] = 1; _whitelist[0x642458957C6F027fc1fea5B99928df23Fe46272E] = 1; _whitelist[0xfA8188bfE27Ce37C94BA87CD5717f622276A62D7] = 1; _whitelist[0x984b6717aFa9604e9C37eCBe44f7d12dE9c6A7d2] = 3; _whitelist[0x09715c29d8D8E8527853bcAcB90681048cC4E6c3] = 1; _whitelist[0x2DEf8c95901A01d4f8428083db4cE8B7d5f743aE] = 1; _whitelist[0x000091892804f655cC1ACA5BBe42944dbb972aB1] = 1; _whitelist[0x1f210AaEe2EfBc994dA696B8EfbD95AbbDe42Ae4] = 1; _whitelist[0xE1698607C930dC6330C5706827c033e1A810C8cd] = 1; _whitelist[0x950b45581ee4a2ad5E520053EE363859d9AE2BFd] = 1; _whitelist[0x4c2349B7c390cF1De6a37441D45b6C112159d3E9] = 1; _whitelist[0x79011Da8FBec0266A3ecE5170642c1738366d5b0] = 1; _whitelist[0xf0E2B96503e6ECa768afB08E342785363Dd9577E] = 1; _whitelist[0x232EE3d94be2274123CaE983f8Cc3E552ae0b559] = 1; _whitelist[0x5CD2460CC25FCA8f3a4ec6Ca0840fe381dc8Ff2a] = 1; _whitelist[0x15BC07A40596d5980f47982Fd8F95456Ac233Fc0] = 1; _whitelist[0xe408e6953A307f8f410a02a3e36A3ad9C48aabe5] = 1; _whitelist[0x18A86bDC70D9E30903fc7A67e9481Eb5Ae343B50] = 1; _whitelist[0x508385F810A96224f3c899646C465B3d05Bd4b72] = 1; _whitelist[0x5d988C4Da0440134E5F393a5B1fecd9233977e64] = 1; _whitelist[0x17bB250E7830041857ed026738250b69b97f10B0] = 1; _whitelist[0x221bb340a28506409a34D3c46f8E7B1cb88A403e] = 1; _whitelist[0x9A7bf91A97c79FF8D139DC06318e764Fd6521d26] = 1; _whitelist[0x49920FA4F34476D18864215486bA0d40e66C6Fb7] = 1; _whitelist[0xC6c0db5Cc1dfC71D3F9b9277FC9617483e4BCbBD] = 1; _whitelist[0xcB35A553e0D5242a1d50afE26E66953Eb0088b2F] = 1; _whitelist[0x86ac2D393b40a44842975f9A812EDB3F92018685] = 1; _whitelist[0x286DB56eAc9CF71ea582Ca6B499EBB908eb39C09] = 1; _whitelist[0x0cc376Ec3fAa9c17FF1F791343ad1B1556BDe19E] = 1; _whitelist[0xFba50D8f5133C32135d9798e1996e2b74dE7C7E6] = 1; _whitelist[0xa2140e9c5eA863Da58521737e566D27087E198c9] = 2; _whitelist[0xF6d47763f157f42E8BD711A3B41510267eaF4ba1] = 1; _whitelist[0xB1F0b13747F289Be7921165b0CBFBcC98C7bC5c4] = 1; _whitelist[0xcd32f12aDffda0291460f87D48D714bbdE4F11B7] = 1; _whitelist[0x09Bfa99BEcCBE7f815480219726Cd8e96b8a8F76] = 1; _whitelist[0x441B9f1BB3B37E529E800f5AA8E8aCC05B27FA00] = 1; _whitelist[0xA4E131A22DF699e6b3EE2933B614bD75457f6bd7] = 1; _whitelist[0x07dE15d5a6A345EeA702b457949E89DCFc3023f7] = 1; _whitelist[0xc03525eF5ba1d5e1262Dd573c78Ff3Ea6015F8DC] = 1; _whitelist[0x4E9dDdF23257B1Fe39d42c5C659627868800A78D] = 1; _whitelist[0x59e12d7C0bFa1B6728804Dc1D0071c911427C298] = 1; _whitelist[0x9a192D7AFe4450F723c3A7Be88f66b1B2B3B74DC] = 1; _whitelist[0x46D410b7fbaF1a2D43b48A07c15856Ad258120fa] = 1; _whitelist[0x460fb86D8E41C7776dddEb768013B28c95E69c69] = 1; _whitelist[0x3f9830a65A2CbB6E8F78D7F23308ba740C37d90a] = 1; _whitelist[0x11e41f95aa2CfC13E5E7F2126b5675119FDAFE8a] = 1; _whitelist[0xeeFbc827847d018d79095216674112eDA4Be2EC2] = 1; _whitelist[0xa2076DF4F3676fDDf4DD0b5fA27Df36b1A671593] = 1; _whitelist[0x411789076CB66b80Dc61a0cEd0dd43bfDEFe9864] = 1; _whitelist[0xAC3371936DE69e98071dc7c615e783234eC0b53f] = 1; _whitelist[0xBdE1b08071421AAB08BbB3133097A589891c25F5] = 1; _whitelist[0xa6585B22c2c7c92e80C33bb6620e2869BAd08CF5] = 1; _whitelist[0x06Ef623E6C10e397A0F2dFfa8c982125328e398c] = 1; _whitelist[0x86fEf6eC5320F6Cf9231f524aE89E198419CDC0F] = 1; _whitelist[0xdfF6B88d0372D71288103F3AC0A91a211A413794] = 1; _whitelist[0x69b31f245cf42fAF8A7a31db8E2285A6c6E31d66] = 1; _whitelist[0xE8dc63C8E7375cbe287Fc2CF63372075fC7108f6] = 1; _whitelist[0x793e48857f3CcdfE5CF3c504b6DFC7E8dab5b0e1] = 2; _whitelist[0x1D07B5638D08c45AAa079f724F854D09aA9e04A5] = 1; _whitelist[0x32FB6ACa62bFD1348ea07aeacee7729d63430e42] = 1; _whitelist[0x887eBa0e1D8DA256d07Eb378Cb8195a92BDc8488] = 1; _whitelist[0x8F4171a5d9540EeBe4bA9D021a6364d744514865] = 1; _whitelist[0x748c18cb8D115328bbED99CF98f4EbCE56F7D113] = 1; _whitelist[0xdFA18950c01320c307B3C8c10C7e7E622E26D800] = 1; _whitelist[0x13e256196FA6CE8CC7968333c7813819BB8a04e9] = 1; _whitelist[0x192B27876BAdFdB36f8ed3862179f650aE8C73B6] = 1; _whitelist[0xE0Cf727fa39307eb2eb029E0f2D575258e76cB73] = 1; _whitelist[0x8f7641846a6CE3a34Db36cE87daD2BBba7335411] = 1; _whitelist[0x2C7EA2dD243b43E38055ff20fe270907597b9735] = 1; _whitelist[0x4d85e79e60f7532Bd054bCd04D95cAF0d75d6BF6] = 1; _whitelist[0xc00158E782Edf67B7f657A52993Bf1E779381E21] = 1; _whitelist[0x24Bd267B0fe4CeFC617B4c4A103406616a7cc145] = 1; _whitelist[0x7b3Dc8D59A2027053cD00eDf4Af5b6a0408e654a] = 1; _whitelist[0x233f1ACE42d2d405FE014802de007c0823cC4dc0] = 1; _whitelist[0x9021748B9fB35d7d9E82Cad87d09c535F8f389DA] = 1; _whitelist[0x15f386A69eb29C2D284a655957e3B96A62Fb76D9] = 1; _whitelist[0xe138f5Ff35fD1DEd796520638E7782D258184533] = 1; _whitelist[0x6D0b3F2f99E24bD4AF14CABA3a94FcfCBaEF29DC] = 1; _whitelist[0xf7D1224Cbfc9660584728FA9d482253F0f2625a6] = 1; _whitelist[0xF969eb96e2a92CCe9922229ED4179aEF03B9CF05] = 1; _whitelist[0x500Eb89E9724528d9e26abbD624cacF0cCb485b3] = 1; _whitelist[0xd5F997BBbbec8750E31f2851859aC75Fd8272bc0] = 1; _whitelist[0x8121AE3FBB1345cB4EddA090Af164c8e9F73a46F] = 1; _whitelist[0x1B8061A0aF9c4eaAE4A8C5122d8287F764f0114F] = 1; _whitelist[0x47bc490fe3C93780821aD5D342A18eD6BB7243eA] = 1; _whitelist[0x02E6AAf160283a433081BdCCa73fC5aEA84a4aE3] = 1; _whitelist[0xb846673c0Bc1E16CdfCBBeA737Ee7172ae3f2942] = 1; _whitelist[0x4B049e4EDE517194fABEBBbf56Ba3525febd99A4] = 1; _whitelist[0x906EBF5dcAD2Ddb580aF5fdD0339299597e7D5b4] = 1; _whitelist[0x5d8241e7C9D5b22478d97875Aeef3F0AD35987a3] = 1; _whitelist[0x51f8BBC6d4275b1428B870feDc421BfE0477473f] = 1; _whitelist[0xf7356754FF673F69Ab0d2E77573c3d90365BA536] = 1; _whitelist[0x56302bf1C52368005aBeeC50D18D2213CDC91665] = 1; _whitelist[0xD1b4a271F26A821960c8dc3AE67DF8157899E8fc] = 1; _whitelist[0xc9C174300A90da9e835D77255F289604224E23E5] = 1; _whitelist[0xa6E7102f702C9b00FcB0F8b0EE7D521191402162] = 1; _whitelist[0xfE90b996aeB7051bDFfd5d840988B8673394297b] = 1; _whitelist[0x9CF984Db3421D88793d73f174F3A16FAc5aD5270] = 1; _whitelist[0x525022ECd0de305F714E108D3b4ce68928c2D81F] = 1; _whitelist[0x794F0FCfcEc2a5F2bF9733b73c13FDe1803E5780] = 1; _whitelist[0xdF221740ca82e5168f0398Fe0c006AF8e74a1977] = 1; _whitelist[0x9245fC07CF68Fb2161d68d4540c72903b8ec5Fb0] = 1; _whitelist[0x25255a36287c9DF4B2363Fd9F998CEEc7F12BEf0] = 1; _whitelist[0xb90EDcADE5e8aa93Bdb52F7f092f0d122ff7e983] = 1; _whitelist[0xB94f7Ed85B83A65709557433dF1c3c8F19F7c94f] = 1; _whitelist[0x00bD256B2730FE6E9D523209919B83b806290A3A] = 1; _whitelist[0x1c6C8898A3E576B9FEA3027ae55888A4e1200845] = 1; _whitelist[0xA06651Cd0EBe9FF6F559025934e24D807e6a75Ca] = 1; _whitelist[0x4523273c92e01E016b863D37a885288B7e43029f] = 1; _whitelist[0x774Cd866CEADf1871EfD610Ad30603FFb8034aE5] = 1; _whitelist[0xc71204D20d5b22CB95D264AeFa7beCd74bf756ac] = 1; _whitelist[0x681Ad212d2E7eeabb07c6403061ffCa4faA832b7] = 1; _whitelist[0xDBc5cC346Ba167fb7CF5E0Be898ceCD9d03Abb80] = 1; _whitelist[0x09C52C99e701304332B5998227f07D2648e8a72c] = 1; _whitelist[0xc771972C541c4600f0337B50f2a7F1378C66a3B0] = 1; _whitelist[0x5711A90f5192D244153eA5BD50De14B4d63359EC] = 1; _whitelist[0x0a0d8dF6fE0b5653DA7f6b6b93F4a0641C42F970] = 1; _whitelist[0x5A8F66b24de24e1c829e03c9D3EFD3343064083c] = 1; _whitelist[0x9805B78cE73255F2E25CB64947648f8F2752c8e4] = 1; _whitelist[0x0162b179c860D536DF3cECdbD65F971b03B5F10e] = 1; _whitelist[0xB9B98B8F559242C9694a08B6E6c1Dc4b50Fc340F] = 1; _whitelist[0x9De33BeE1353E65fE86Cc274F86Ade0439021576] = 1; _whitelist[0x29d109d06Bba4E6e2FC98a30e35702a63e53995A] = 1; _whitelist[0x6829B3Be1C0c14b292549e1f2d1224764C1bDD4E] = 1; _whitelist[0x218d5638Bf697e22EbB3CD4B6fbf73DCD1A8F035] = 1; _whitelist[0x49594Fb73a7912Bc6dA5D33a1060Aca029907086] = 1; _whitelist[0x85047527b7184033d5B7717Db659344717e404B6] = 1; _whitelist[0x643cd42f6FebBB0C6417169657161CDCc0bF4AAB] = 1; _whitelist[0xDb09Ca3b6D92250b33bfd5Ee8F5Db46420f2775F] = 1; _whitelist[0x2EdB4EdDB8C23Aa25d7b8D7D669660f99Bf8B4e0] = 1; _whitelist[0x2DF3f91A9947B652d94040215846C2110343c399] = 1; _whitelist[0xe4d56f7C4ceE091494CD9E86C078B238Fc7416C6] = 1; _whitelist[0x074fdC302F8D3C0E8B11C80F2A07BF2a3b8ca855] = 1; _whitelist[0xD645Ca671cba01470bEdDEE6A5132A501b959e0E] = 1; _whitelist[0xD7C13c218f33CC397102319382cA24284B26F089] = 1; _whitelist[0x33acED828E230dBc987BDcF9e086eCD81d7D88d8] = 1; _whitelist[0xA2B584e5f442f73038320F9e95A490b86ec27D62] = 1; _whitelist[0x9246307e550fbd40bcB6Ce18f96c7E4f7bAc0b7E] = 1; _whitelist[0xB0354d60D76407A803Eeb313f7213B75b5384c68] = 1; _whitelist[0x56061DE24b5dcEB6B94561032b75CC61D7c2807c] = 1; _whitelist[0xe22587927937515F7FF6A6cEcC94C1b2d30aC1B7] = 1; _whitelist[0x809a956Ca163188dEB520f10beCa9081a11a9beD] = 1; _whitelist[0x5787163458669c0364E5fC7d01Fe67106A75Acd2] = 1; _whitelist[0xDea1C6ce3F106a5fE37Bdc21aD9c90aaef335Cef] = 1; _whitelist[0xa3Cd8a52Ea9ab7baBEB564E09871DC43CCa8D19b] = 1; _whitelist[0x14B30b46ec4fA1a993806bd5Dda4195C5a82353e] = 1; _whitelist[0x960e7366BA7B09178FBE091B3Ed1De4e533C5A6C] = 1; _whitelist[0x72cD65DA5d108746Cb9c9574b86c3c1904e0Cfe8] = 1; _whitelist[0x6Ee6805d588113c1a8B2737c348889f58279915f] = 1; _whitelist[0x2De926e06c901Ac70D78C4c56F98CE672F562F50] = 1; _whitelist[0x773B5337c547CE517653D35783A4f0e404AC872F] = 1; _whitelist[0xfDF4E9880501623392025aC549e120CB9383E60e] = 1; _whitelist[0x81450f038842311cd7BF878a14bcAAD9529e5170] = 1; _whitelist[0x85fF57abe859faDA303AA7CB3F8C03775398dd62] = 1; _whitelist[0x025A046F1d27e7D473d2d838F53332D0cF5401B0] = 1; _whitelist[0x887A3F880FbF38517D948D860DF82fE8A95206b9] = 1; _whitelist[0x677989D892653b0f48eE47287d3522eA1f8E4825] = 1; _whitelist[0xf55914186a692a3335fF44ae107FA724b1074dDC] = 1; _whitelist[0x2321eE6246999a80443F217066921EEA123e81E0] = 1; _whitelist[0xf10944D1460c3820Fb2E144cFd6C3426B5Edc533] = 2; _whitelist[0xB484659880945aaD7ad451A4BE1DFd058ee09c94] = 1; _whitelist[0xD8086758DAabc3E734EF5971eb7e2AD8f32A2f81] = 1; _whitelist[0x39256C222e2A16DB63F21dA9d8266fC6f95f45b9] = 1; _whitelist[0x7A5C4cAF90e9211D7D474918F764eBdC2f9Ec1a3] = 1; _whitelist[0x3a04103F99623c6D9cf2Ad1C80b985639477E5Ec] = 2; _whitelist[0xbc56d4DA709742D07198636117910CBe939F6176] = 2; _whitelist[0x182B32912D74A620124F7BdC13f6dA38c5DbE8CF] = 3; _whitelist[0xB03fff6ad3f1eE2A0DcA9ec942fF191890E7f0b9] = 1; _whitelist[0xF166fbFd63201BFa03d06BFeC356e851E8c4A976] = 1; _whitelist[0x383462bb37beb393F17821fcFfC2Fe712756e977] = 2; _whitelist[0xa0E4B623ABC39a7C472dd03466722561750a90B1] = 1; _whitelist[0xC809d22A9E1b21B6b84a620FB280DFd381dd70a3] = 1; _whitelist[0xD5D021403AaA4C59c5C1e23CA14e45e566765fE0] = 1; _whitelist[0x4dDE7D4dAafFA88DE922b99fa0890Ff6872cDF59] = 1; _whitelist[0x8208bfe9625386503fb206bB3E2D62201C804C62] = 1; _whitelist[0xE07f78Bf7299a73f961cf8Cb62355401D150548A] = 1; _whitelist[0x2D8E6C0d3a44074bD003583187a43396888F04B9] = 1; _whitelist[0x09678D7f6187Ce98a2333F509D9fa8F9bCaA2C5E] = 1; _whitelist[0x9b9dD8A8737b00946F4e35D73b3aDD447f604dba] = 1; _whitelist[0x0122C0C70eC38Df1658402d412E27b2553e2cFAB] = 1; _whitelist[0x2EDb41E7Ad7E8A7c4ff0AeeDAEa1318e664bD003] = 1; _whitelist[0x7213bDEEeCE54a882eA253441c320718e5af06DF] = 1; _whitelist[0x98571cb4562672ec251A784cf9daB82c68A366Fb] = 1; _whitelist[0xf8295fa75053C9eF3fD792e31EBC2E2Df01957aB] = 1; _whitelist[0x8A5e04ad92edCdD75435055911cc02cd4EF9Be1B] = 1; _whitelist[0x0DD399a7ED92283e4983C2974FE377070D67f4eB] = 1; _whitelist[0xb0EcC3EAE0DA5C60BF99eE3D6136d8194ef61E55] = 1; _whitelist[0x0Df9D7f238E96317E8ca8aE5886DF2cd62D7398E] = 1; _whitelist[0xE2B527C0F207c27b1746E91B3A3c1f8afb4288bA] = 1; _whitelist[0x8Bc4fB84aCaEEa45aDD0b8D94047f64a59f97ffe] = 1; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"baseURI","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":[],"name":"_baseTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_preSaleIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_saleIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_tokensTracked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_whitelist","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"checkTrackedTokenId","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"interfaceTokensOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintCount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintCount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"ownerMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preSaleStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"preSaleStop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleStop","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":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setPrice","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":"address","name":"owner","type":"address"}],"name":"tokensOfOwner","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"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"updateWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
6080604052666a94d74f430000600c55610d05600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff021916908315150217905550735f7ed81ee49a3d85ff9f2120156b4cd38383b9cb601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507355c3b3d49bdefc4dc52667c4ea7c6ce5089e08ed601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a598c9a35cc773b6e650cc8ed08b2b9513dda01601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a4754d6c8905aa776692bc60732f92911ea1fca2601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001ac57600080fd5b506040516200f0433803806200f0438339818101604052810190620001d291906200a120565b6040518060400160405280600a81526020017f53706f6f6b7943617473000000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f53504f4f4b59434154530000000000000000000000000000000000000000000081525081600090805190602001906200025692919062009ffe565b5080600190805190602001906200026f92919062009ffe565b5050506200029262000286620002c260201b60201c565b620002ca60201b60201c565b80600b9080519060200190620002aa92919062009ffe565b50620002bb6200039060201b60201c565b506200a2d5565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600f60007363dc29501d7559db0cb81b9c6dbc3c2f042c124573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b5a2d06b4d3fdfc994cc82def8c7e3364905abc773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073db74098bb80aff56b5e525d55ace521a7fa83d6073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731107602d51193953cfe4cb8a4b01d846e7e426ab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738a9ae3393801cfa423a54e1031639cf8c6f65fbf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007353f0b0a19469b9b4e493c968b52ef09826e13f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073ebc453e098ea5ca81e216441891c84bc4fb6e8e673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737bbb1cf56c688fb49a7685fb28409484f6ad35cd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073cdefcdf6937bc536a637ca8fbb44cfae1476eb4273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f7595b72e67264fdc8c5b12d67cdf9bf0cdb471673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007340a2f7517a98d96af74c0c86f9c9e1de709ff56e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730dda429fb28fd7b3d8b0d232f88f3af19d90696273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007309e79e8b4cdbff6b26d4cf4bab113705896fe9a873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007326ac155f40a4ac8fcac27b45d3bd38f17b928be273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073835649a4ad9c806405b03e39bfcd02d6e81b408f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007353607f10d76b9d29d6ead2184e9045df978f8b5973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a494eaadc6b7940a6db852dc54b2fe5fa15ca62473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c3edd46bcf48890c1b72ae414cd61b90d1c3334f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734e0ad2dd94ae7447a24e824c46061dbe983e0a1f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b7a2b5a7d82085567362015a775be42d1fc7065273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a59c465d617e9c4101fca42463e4f9453db6da4273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b9c86b39301246e055d01c76f20b848a88427b0273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a57255c02d1171e960aa4f5a99184e5982f3307773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730ace7cc0f10c2bf796bc2fb1bb80e1c8847b056773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073734bf83ebe39f3dbc53360a0522c6c99517a507473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d52c99b8d73f5bd29da85330efca15acc5071c6273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737f2ad3b180a2724c922a63df13f8bfc7fc36b68573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736a932553c062e0aff43b59d3fbaaca18f0dab01773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b504b504551adee28b9e046e2a218200e8af66cb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b963c1bfa2ee0da0f3300f4d4ae2e2a5504a1df973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f3d2d790dde4889ff10b8d8fbd2de7631ee9766373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073453ac2f4462d3ced2bda325898fae783926225fc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d17238636ace796bae6bd669737775af7aa8f82b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b1ebf12bce67984d914062bd1b7c64196255766073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737258dc6dc529b531bae1579d190f193fa3706b4a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737656354162ac373a52783896e0dc9d1a1352d94d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007341284c43f91d6307f8e5dc2ce72061d43cd383c073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f7fcccbb90ea56626a5c8ef1aa273acfdccc3ea673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007366ee3605ca27e13848b53c9730235323b2aa69a073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073159148aa964a0774f2dc9c534abee6e305af4d7d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f2615676dc226ecd4494a04228857e3a1bdf86f573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c64b31506c2c813d7c81db05decd3c187e701e0873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a205b1022b7915261bf62835f02ac7a8d9ca1e0573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fd845e60eaea6c960d2a2b6f490b53d26925d5cb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007364590a8a5c844394893668eac7ede9a1adf1815273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007331fd69f76afed0fa6db8b1a606e521c64813505d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f6000731d43168ff0e4b52209571613a5a2ab6ce00b799973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739946ba71c3f7f0730373de898d8e38411faa152b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733e0df2ce06a8225f12af6d2171fec1bdbdacea8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733286651f7ba59ba8d23025b39a24cb473c9c01b873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073856a5f9a8a29b4c9e0c95357b543ff3e9245bfba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731922942c8cafa23b67d1ba45703950dd0849480a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007368f3b8f48cad402dda2e7d3fa7697984e2dca74173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e3901d0a64973a4f9e163a9fe8448dcdc98ba8e973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732b291be98c53e2fc88224745cd0b75fa02121f2873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073033cc34a6ab84705b3cf71098653a9840514c73d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730e51632b79ca39813111ea6a75f3c3ab4979fea673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f600073c70150e6deff0b3d0578dc99d97401631b838f5573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731327eda6b51ea6d19d701398ebb120c7dcd54b5873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073cba1311383fbc544e8ae08b48ed7b6fce1e5691a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073998f6da35d54da034ad39df42f37fa069c645a4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073268018e1ef07dd68873af53721af50947efe8f4a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073bef6a169e4d44840d55032cb75a3910b6fef467d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073abaa9079de6d8b4228a98eb1435d471b7de6992f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c01dbeea95ba3ac00fbd9be9ff06ec3284dc42e573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733232e13096515b5cf006358bf91b588c3066757e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739dfe430f8752a5a725c79d8a8cecb6f9535f62d573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731234ec7c0ab43fae7f7b97c18d5183ba5967564b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731498a57afe51860b22413cedd196cf4493bbfe1273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a1232ce88b93702c3467d0b6ad7e9fa6eeb49eb473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073765bd363c8fcf8aa4db870e05fd5ba40daa81b6673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739dd23e4ea9e5b10529056ff120dcd41bd1c8f31073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073ff069d9c80235ff14d296e2b81788f25eedd6d1173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b27d058c8c64e0fc6dfaf4860d271d51b27a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f66a629eda2c24b6efeb750fe74a3fea9902ac6d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731eff4f9836f34f9618df4491d0bae051f07ef2d673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073716c59a499fadeb4b5be3b319b6cf24385503ed073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734d96b171372385eef9db97cfaf9f16a46bd22d0473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736bbff3885bbf209bf40eb5bb95c21e20fee214ad73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734c02081163eef26c5b6d607d5a92eb46f14e391773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730226f58c94c0857b2e3abd4aa0df2ef917a71dcc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732a127c5d264013026ef3f31cbaa7f6812cc2a73173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a5ed9ace0c2a53b6490d4c8e72f9a966f37df35f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736f9900f5df40399080a0cc206ad41c674cfa66ce73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732972fe704fbd567be18a4bacfe9f05ea9a62f72973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737961bd738c2218038a60324181311f0e8e40612173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c42ba60a4f78b4037e30167105e5f76657a9d08f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732f5ab230e5b0564c0eecc93674a8b85b781a499f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e7b622e9a313e79a7b693485f0f5878740bc924973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007388c97df74680530dfb4bc10bb61707de63d439f773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739b5f95ffb5cb01723bbd1e8e76f310358351f48373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731459a34762b6401f5fbfa11c55b0f81bda10039173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007308ca657ca337ede754ced0200918fefee720304173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735f697fb2a1b538a62bc196bc0aacd280e0bd22ae73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736101e3de526fcc9596a9ed2fba8bcde47bd6692073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730e0889a8f18c1319b2f8e22aec2f4bbe8fc422a073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073ce6900d875c7460ce6293c77f6070c98c5c3db9a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d88ceaae5e9156b5d48b718edba62c4e52c509d673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731db0056646a5bf324cb53a324ac325c6fbb85fb573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734122ac127311bb4bd22cec65ae3a8007d8ab948973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007311ba2c5506e69a33e333ff9e9d7174aa52b5909373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f4e30bcb65f56b9bbb5b7aef70daaf07b7b5fcd273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073486b90d442f4319fc8a19b9c4b75c9857196e6d473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073feff684674f2a0549723c75814b1487ebc92ede573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734a1ccb3fc509205ec44e86a741ba29ab66a06f4573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735e9b7676b36f5de6ce31eef1fa4a23598af8eddc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073711ed6dff07a4e61c4158350557b0606ff79a6b573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c745ae18b87eb0db75c89d9699dc880b833d764573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073da19cd59a312cb34b4c5b07d6ddaec333b98997373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073987af6aafa9415d1684905b4654338f4bed19ad873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f6000730cd40f7edb13ec6b372e8b3333b209ef16e5ae9873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c03ada2b5df0cc5d3919ae551cfe65559dbabe1d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b2d68609a7374d81ee096c965467bba5c20e6dd873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c304e913ebb7625687d66f6904207fdfd19c7e5373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fa3369b19acb8625a631ea807d9f60cc0e05057773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073863e7aaded2b90a08802d362b7fbf228b65c5bc973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734a9973d3a1563a85b9424d2db229151a8e1f561173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d90dbe9117676b29c2e06fffc339b24a71051ed073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007371453727e55c378551b7b466f16da18ac1dfc87473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d011878cbee251d148857a58eb737adc3a4a9e9873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f9ec946c7d7fa6189147eee1c2b7bf418e7eb70573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073560f74a13e7118038eb4e67cafcc42ba19ee8f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e300dd7bd1c79aa78ed4217b482ec9f95de7fbb173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732913ffd77bf3317c3922b707d6addcfc9d0e3eaf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733710c45d46ad86a868ae03899412b8ab6246f64e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739b23c802dd34ccdb7661102d9f9d647d3879d25c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732881fdf7e15d3664bedcfb79b4775a89ed7fc12273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c5fc0a9cb273ad5cfa538345618aa692a3cbb02a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b109c2b91095e27ecec3b9e46f72063c90a6054b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600072a3031230e54f9fc124a7aedb77111e020dd67573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007331ad5bf465d86952253d07b89dc68b236be50be273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731b7549c126680b1d08cc660c6e772ccec0bcc66373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007379322e3d7133bf9d3b886e6add1fc65e0dcc60af73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734a36246660620b03a933bbed0e87c469eda61a7473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732bd0897c180feaea5d4dcd8ce4cdc4167ee3cf2273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073575fa7ac7e4fcfdd66ed62602ff28b0fcec47ad773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007329caa7a393cfe67576f81a8b77a22c7880af550173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007378244d51d21bc7a58bee3bd6932928c93c83fb9973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c70be24060c944790b1af7a67b63bb4109fb1f2a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073bf6cb050941a12305ccadbc594b5fe46290efafb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007358a00f069924fb09d261cffa02efa6316d4dfc1a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733913d13611d2f128e3e1d3ee7daba53e4d37a2c873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739c466fbdecf0a60018a8ec0d3a0ef540df31d9ba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739b578c1696b30b85e36f36f679242d25283910e473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fce04bd855fddce366ff8d04ca930503e8263a3f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073908df508e7cb714c32f1986bc29e9e350a70b1d673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733d03856068df8a206f452df10156b909671517d773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738f8260521a3ee8540d5e1b5f17051ea434d18d7273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730d552308237a5536864d15e7c2eec79f8fe3982a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073797c7b11f619dfe9665b8e9f17f6666d3142f37873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a4da502fcdf699827ab39ec0ebd5a7d298b8548b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007331963b060d71ee24a6d458b75aa85e63b99bd7fb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d8a2759c485f0028e1d494d9cfbff61a857703ba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d8e611961e49c21592f58defe9272e81e0880ff073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fd2c90dba0bd1cad3eb8696a49e86d9d7bf6a67773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073575bef676a2d7ea43839d3deb57bf94ebd603c3f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073178f05180456bd8bfb58512b20a35f1ecad8e48873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d2be77ad97a8ae76061b14f60f8e75d0618a8bc673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d7738712ec08cf59c2f948e0dc9e0535f2efa2ce73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736e3998bab30f24d0b7bb09a24fbc7105f3f2dcf873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073bffc3dd2490c44015c6ea06d62b8bfac7f66666373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073ffd8074dfa81097a0eb770c25f8fe367b2017e5d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073ba779536c4adabc750f66053477c6bd63b5a814b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738d3bd8c1fefdd108b59a725a3a16276e43cee6bb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007317070eec41395063cc046132cc95ce028bca352e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007327c017479c893226f8e8ce6edc862dfc1786f6c373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735685a0d411e88fdf99702189506540807c0fd4f073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073414ae5317ac0109d3b4b78a739e46ef6594a811773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738d16e6af9faa28277b4fef9f7225ab1642a7dc8e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d44ef5ba2f992f44db5f43630f0d0ecc3ae6d19273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073760a42570faa7bc535b00ef872ddbbfd15bf632a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073654902c7fb6514376221e33df2342452df1b8a2073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073dddb7ae1db2a487059ed87adefb534b60e18337973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073998b5660b069884a34d67a6d564d64374ef101ca73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073352465348315dab6079b01eec41d99e4630a688473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073466abbfb9aab4c6df6d3cc03d6c63c43c516204873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007391ceaeceef3fee475cd6b1eb8a466bfff327623573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737af81fcdfd6f9a5115d33518c3119a829ef996cf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007364d7f75eb50c1fd3ab0f5b7a091017058265560c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733e276663f97c85fdbc4952bb3f17667257b7ec0673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732622a9d55d687e96c6320f64ad8c323ccd3b111573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073228e7ef9ca9d993cdcdc51157ee3087ec0bfb1ed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007305caad8dd79807d1d31d089ce90bde9c068dc74373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000725fe151d9185a30a11b3fc7233ca3b2cfee7ec573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d181c2250df5eb611d7d5fc06725c71ef807b74d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732b64ba4d237d534971d7be9f0323c0fe8d6ed37473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073479d10b2ecdd86ff92098e11693abaa8a06e53ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739dcaa39a7fb46f6d7281c636253473e43912dd0473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735c1a0fa9c926d570df1db629a359507ae411957c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073da862691ab3f8fd3f28123b72146a571575e5e2a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e537161881499a8eded38abd72a3a42e2cd02f1473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073077fdfa2aec6b8094091e04832baefc29869fce273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073357521a8f37120730986504bfbc9ab3823014b0273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739db0d73ba0ac7069a043dd61af111d383cdf495973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736d27109ee133835817eb9f232cf5047879ca3be973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073bb379fd5c382462b036285cf212ef86b447230ac73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737a6be82e4268086d8bdb723f5ca7e3f47699528f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d999ad87f550bdea462873eec02c7a6abb7dbc5973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007314bb901ba4b98898465a7dc9a1c27e4970183dcf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d8b13f3647122ce258c802f2a48b9b1774b7221873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e9bccf975c1d18839cc0522647df6004d01dd4f973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e736e2f558b59fb333c9092fd407b1c8a775ced573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f39e5f6d386b79f981aa58b5e53c50de81eb5f2873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b36a66271b2c99043fe07c93fc4bd723300d67ae73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f600073db68a37014faeaab36f3d244f9649a6877d3b04573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007357325ffb486cfd1b943c77507ba339b0d5d1b54673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007347b40d0c64005c74666dcb348bd4a3d6a2e8faf273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f7321cb3ab5ead1c78187380d89c3c6afb492c8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d930fa30c21cc729c11c550854a2f16eb545b38e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073ec0d280929ed4a08f367cad07bc5a3bb4bb0768773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f60007370e8df8e5887b6ca5a118b06e132fbbe69f0f73673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734da33cf3100e5da72285f1cc282cf056ce0add5173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073680fffaeaf8a1888006b31fb1c1804eae8a2ae8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073dff71a881a17737b6942fe1542f4b88128ea57d873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007329cb02180d8d689918ce2c50a3357798d6fd928373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073eff582ce2650fbe7fdf8b8d5dd70c2f71bc6e3be73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c4fbafafe2ece3b2b94ab735a4079493faae73b373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007317c056d0e6a6d998ed9ea67df252af7fcad9d99873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d1333b41d5851eb2c229ee3acf8b3afea2c6a48673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d0d72ed50588d4219c675a7d4235a7bfd832cafc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737c8867841ca13e9c5ef77b7abe4b4be4f4383dbb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007364ae474da28db2ef925b87e94a81c8f2783f606673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007371fea1cc5b76e8bc5568deb48c505f77b4c7920e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733d139eb16d79944a98ec3db0a862f9ce98c576f573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073815537cc9c4e54f232389e71c6413fef905515c973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e62da1963414deab63751989334ad71e5589562073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073178cb0e2a3d3eb0c0e76ef79b46e495a73a14f2573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736cb5c9fd6df9ec4fd1b61c611a88161965e0d7d073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733a67910fac82dd5cbb58b48cccea779e1e5334f073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f5434f31be443337f253892059740dda019b011473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734ce4fd36c1040ec42f01566684b5d6424f14212673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c7c2576e4564621d2371806e0b090ab85c4dc7b973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073997b95a4a1ed6186a2de4d63f9ab1c95a918468a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f600073bda655472fee2074e6bc6db9f32ca15c786c182d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073efc53997a1143f6ec7d56a1b9cb8a137442f2fd173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b6eed98a7917953093992592d5a606e8d5c82bd573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f8c853ffa4a4f0ba3317a3ad97c9dcbbee2f6c0f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e0024ab198f3f40a6ef41fcf05ed8ab153d1681173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007394e59547b8c68924380c90e729488f3e79ff8d2273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730931d31509ece624df1058509d56452ae6c890f673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073897a6d1a4e30470d9acd5ecbb1f979cdb0f8cdab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730628f16e2d1c51f6fe84d4300b63330e75e3a18373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fd8ce17208f8244175a6f06e522df3e73fd843d873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073700643004ba7cb17b824c6808a4196a06eb25e4b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004600f600073382da0557343b6637cbd1acf6bbb63dff423d6cd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073ad62da09a5fac08c802aa97707186c9be183870073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007323e53e8215f3223d29f8b67708c384eef2b42cc073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007335548a028f67c7e2669b9d20d48185aab452cf3f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fe9a4bd31077092cf33c82d9340ce751f53d101973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000729268406b52502bf89024c992ab192d9cd81e1c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b5619ca0bdd458ebfbc2b8b4b823e23d5717ea6773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fda4067d5c3ecd62d6a62e47123496cba5d6940873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007338d4aa05b0c4445978bfb353c4aedfc31b01de8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007331ead29a17c14f5426d8cee40c975f563b1dabfc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739c6e4c937b469f29ec5d790906b11aa1410e364573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007305d37a4a252459a8ce335e0b4e2852262afd761673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073af85b139aa26c1a4c920da0f63aab2d571fd8ab573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731ab7966a006d47afe62c315cc467d192d5a107a373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007318e3cd7c20778a7ca1304e3a5698d2ff85f14d9d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073764abe778aa96cd04972444a8e1db83df13f7e6673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f1ad3ed4b754c4b0d7b9d70f617191a8118b5cf573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073642458957c6f027fc1fea5b99928df23fe46272e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fa8188bfe27ce37c94ba87cd5717f622276a62d773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003600f600073984b6717afa9604e9c37ecbe44f7d12de9c6a7d273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007309715c29d8d8e8527853bcacb90681048cc4e6c373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732def8c95901a01d4f8428083db4ce8b7d5f743ae73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007191892804f655cc1aca5bbe42944dbb972ab173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731f210aaee2efbc994da696b8efbd95abbde42ae473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e1698607c930dc6330c5706827c033e1a810c8cd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073950b45581ee4a2ad5e520053ee363859d9ae2bfd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734c2349b7c390cf1de6a37441d45b6c112159d3e973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007379011da8fbec0266a3ece5170642c1738366d5b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f0e2b96503e6eca768afb08e342785363dd9577e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073232ee3d94be2274123cae983f8cc3e552ae0b55973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735cd2460cc25fca8f3a4ec6ca0840fe381dc8ff2a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007315bc07a40596d5980f47982fd8f95456ac233fc073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e408e6953a307f8f410a02a3e36a3ad9c48aabe573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007318a86bdc70d9e30903fc7a67e9481eb5ae343b5073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073508385f810a96224f3c899646c465b3d05bd4b7273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735d988c4da0440134e5f393a5b1fecd9233977e6473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007317bb250e7830041857ed026738250b69b97f10b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073221bb340a28506409a34d3c46f8e7b1cb88a403e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739a7bf91a97c79ff8d139dc06318e764fd6521d2673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007349920fa4f34476d18864215486ba0d40e66c6fb773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c6c0db5cc1dfc71d3f9b9277fc9617483e4bcbbd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073cb35a553e0d5242a1d50afe26e66953eb0088b2f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007386ac2d393b40a44842975f9a812edb3f9201868573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073286db56eac9cf71ea582ca6b499ebb908eb39c0973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730cc376ec3faa9c17ff1f791343ad1b1556bde19e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fba50d8f5133c32135d9798e1996e2b74de7c7e673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f600073a2140e9c5ea863da58521737e566d27087e198c973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f6d47763f157f42e8bd711a3b41510267eaf4ba173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b1f0b13747f289be7921165b0cbfbcc98c7bc5c473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073cd32f12adffda0291460f87d48d714bbde4f11b773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007309bfa99beccbe7f815480219726cd8e96b8a8f7673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073441b9f1bb3b37e529e800f5aa8e8acc05b27fa0073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a4e131a22df699e6b3ee2933b614bd75457f6bd773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007307de15d5a6a345eea702b457949e89dcfc3023f773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c03525ef5ba1d5e1262dd573c78ff3ea6015f8dc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734e9dddf23257b1fe39d42c5c659627868800a78d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007359e12d7c0bfa1b6728804dc1d0071c911427c29873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739a192d7afe4450f723c3a7be88f66b1b2b3b74dc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007346d410b7fbaf1a2d43b48a07c15856ad258120fa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073460fb86d8e41c7776dddeb768013b28c95e69c6973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000733f9830a65a2cbb6e8f78d7f23308ba740c37d90a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007311e41f95aa2cfc13e5e7f2126b5675119fdafe8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073eefbc827847d018d79095216674112eda4be2ec273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a2076df4f3676fddf4dd0b5fa27df36b1a67159373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073411789076cb66b80dc61a0ced0dd43bfdefe986473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073ac3371936de69e98071dc7c615e783234ec0b53f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073bde1b08071421aab08bbb3133097a589891c25f573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a6585b22c2c7c92e80c33bb6620e2869bad08cf573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007306ef623e6c10e397a0f2dffa8c982125328e398c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007386fef6ec5320f6cf9231f524ae89e198419cdc0f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073dff6b88d0372d71288103f3ac0a91a211a41379473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007369b31f245cf42faf8a7a31db8e2285a6c6e31d6673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e8dc63c8e7375cbe287fc2cf63372075fc7108f673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f600073793e48857f3ccdfe5cf3c504b6dfc7e8dab5b0e173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731d07b5638d08c45aaa079f724f854d09aa9e04a573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007332fb6aca62bfd1348ea07aeacee7729d63430e4273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073887eba0e1d8da256d07eb378cb8195a92bdc848873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738f4171a5d9540eebe4ba9d021a6364d74451486573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073748c18cb8d115328bbed99cf98f4ebce56f7d11373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073dfa18950c01320c307b3c8c10c7e7e622e26d80073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007313e256196fa6ce8cc7968333c7813819bb8a04e973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073192b27876badfdb36f8ed3862179f650ae8c73b673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e0cf727fa39307eb2eb029e0f2d575258e76cb7373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738f7641846a6ce3a34db36ce87dad2bbba733541173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732c7ea2dd243b43e38055ff20fe270907597b973573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734d85e79e60f7532bd054bcd04d95caf0d75d6bf673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c00158e782edf67b7f657a52993bf1e779381e2173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007324bd267b0fe4cefc617b4c4a103406616a7cc14573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737b3dc8d59a2027053cd00edf4af5b6a0408e654a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073233f1ace42d2d405fe014802de007c0823cc4dc073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739021748b9fb35d7d9e82cad87d09c535f8f389da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007315f386a69eb29c2d284a655957e3b96a62fb76d973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e138f5ff35fd1ded796520638e7782d25818453373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736d0b3f2f99e24bd4af14caba3a94fcfcbaef29dc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f7d1224cbfc9660584728fa9d482253f0f2625a673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f969eb96e2a92cce9922229ed4179aef03b9cf0573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073500eb89e9724528d9e26abbd624cacf0ccb485b373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d5f997bbbbec8750e31f2851859ac75fd8272bc073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738121ae3fbb1345cb4edda090af164c8e9f73a46f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731b8061a0af9c4eaae4a8c5122d8287f764f0114f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007347bc490fe3c93780821ad5d342a18ed6bb7243ea73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007302e6aaf160283a433081bdcca73fc5aea84a4ae373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b846673c0bc1e16cdfcbbea737ee7172ae3f294273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734b049e4ede517194fabebbbf56ba3525febd99a473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073906ebf5dcad2ddb580af5fdd0339299597e7d5b473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735d8241e7c9d5b22478d97875aeef3f0ad35987a373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007351f8bbc6d4275b1428b870fedc421bfe0477473f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f7356754ff673f69ab0d2e77573c3d90365ba53673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007356302bf1c52368005abeec50d18d2213cdc9166573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d1b4a271f26a821960c8dc3ae67df8157899e8fc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c9c174300a90da9e835d77255f289604224e23e573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a6e7102f702c9b00fcb0f8b0ee7d52119140216273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fe90b996aeb7051bdffd5d840988b8673394297b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739cf984db3421d88793d73f174f3a16fac5ad527073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073525022ecd0de305f714e108d3b4ce68928c2d81f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073794f0fcfcec2a5f2bf9733b73c13fde1803e578073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073df221740ca82e5168f0398fe0c006af8e74a197773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739245fc07cf68fb2161d68d4540c72903b8ec5fb073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007325255a36287c9df4b2363fd9f998ceec7f12bef073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b90edcade5e8aa93bdb52f7f092f0d122ff7e98373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b94f7ed85b83a65709557433df1c3c8f19f7c94f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600072bd256b2730fe6e9d523209919b83b806290a3a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000731c6c8898a3e576b9fea3027ae55888a4e120084573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a06651cd0ebe9ff6f559025934e24d807e6a75ca73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734523273c92e01e016b863d37a885288b7e43029f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073774cd866ceadf1871efd610ad30603ffb8034ae573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c71204d20d5b22cb95d264aefa7becd74bf756ac73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073681ad212d2e7eeabb07c6403061ffca4faa832b773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073dbc5cc346ba167fb7cf5e0be898cecd9d03abb8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007309c52c99e701304332b5998227f07d2648e8a72c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c771972c541c4600f0337b50f2a7f1378c66a3b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735711a90f5192d244153ea5bd50de14b4d63359ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730a0d8df6fe0b5653da7f6b6b93f4a0641c42f97073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735a8f66b24de24e1c829e03c9d3efd3343064083c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739805b78ce73255f2e25cb64947648f8f2752c8e473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730162b179c860d536df3cecdbd65f971b03b5f10e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b9b98b8f559242c9694a08b6e6c1dc4b50fc340f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739de33bee1353e65fe86cc274f86ade043902157673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007329d109d06bba4e6e2fc98a30e35702a63e53995a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736829b3be1c0c14b292549e1f2d1224764c1bdd4e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073218d5638bf697e22ebb3cd4b6fbf73dcd1a8f03573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007349594fb73a7912bc6da5d33a1060aca02990708673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007385047527b7184033d5b7717db659344717e404b673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073643cd42f6febbb0c6417169657161cdcc0bf4aab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073db09ca3b6d92250b33bfd5ee8f5db46420f2775f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732edb4eddb8c23aa25d7b8d7d669660f99bf8b4e073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732df3f91a9947b652d94040215846c2110343c39973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e4d56f7c4cee091494cd9e86c078b238fc7416c673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073074fdc302f8d3c0e8b11c80f2a07bf2a3b8ca85573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d645ca671cba01470beddee6a5132a501b959e0e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d7c13c218f33cc397102319382ca24284b26f08973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007333aced828e230dbc987bdcf9e086ecd81d7d88d873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a2b584e5f442f73038320f9e95a490b86ec27d6273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739246307e550fbd40bcb6ce18f96c7e4f7bac0b7e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b0354d60d76407a803eeb313f7213b75b5384c6873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007356061de24b5dceb6b94561032b75cc61d7c2807c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e22587927937515f7ff6a6cecc94c1b2d30ac1b773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073809a956ca163188deb520f10beca9081a11a9bed73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000735787163458669c0364e5fc7d01fe67106a75acd273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073dea1c6ce3f106a5fe37bdc21ad9c90aaef335cef73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a3cd8a52ea9ab7babeb564e09871dc43cca8d19b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007314b30b46ec4fa1a993806bd5dda4195c5a82353e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073960e7366ba7b09178fbe091b3ed1de4e533c5a6c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007372cd65da5d108746cb9c9574b86c3c1904e0cfe873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000736ee6805d588113c1a8b2737c348889f58279915f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732de926e06c901ac70d78c4c56f98ce672f562f5073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073773b5337c547ce517653d35783a4f0e404ac872f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073fdf4e9880501623392025ac549e120cb9383e60e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007381450f038842311cd7bf878a14bcaad9529e517073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007385ff57abe859fada303aa7cb3f8c03775398dd6273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073025a046f1d27e7d473d2d838f53332d0cf5401b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073887a3f880fbf38517d948d860df82fe8a95206b973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073677989d892653b0f48ee47287d3522ea1f8e482573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f55914186a692a3335ff44ae107fa724b1074ddc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732321ee6246999a80443f217066921eea123e81e073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f600073f10944d1460c3820fb2e144cfd6c3426b5edc53373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b484659880945aad7ad451a4be1dfd058ee09c9473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d8086758daabc3e734ef5971eb7e2ad8f32a2f8173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007339256c222e2a16db63f21da9d8266fc6f95f45b973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737a5c4caf90e9211d7d474918f764ebdc2f9ec1a373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f6000733a04103f99623c6d9cf2ad1c80b985639477e5ec73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f600073bc56d4da709742d07198636117910cbe939f617673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003600f600073182b32912d74a620124f7bdc13f6da38c5dbe8cf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b03fff6ad3f1ee2a0dca9ec942ff191890e7f0b973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f166fbfd63201bfa03d06bfec356e851e8c4a97673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002600f600073383462bb37beb393f17821fcffc2fe712756e97773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073a0e4b623abc39a7c472dd03466722561750a90b173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073c809d22a9e1b21b6b84a620fb280dfd381dd70a373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073d5d021403aaa4c59c5c1e23ca14e45e566765fe073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000734dde7d4daaffa88de922b99fa0890ff6872cdf5973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738208bfe9625386503fb206bb3e2d62201c804c6273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e07f78bf7299a73f961cf8cb62355401d150548a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732d8e6c0d3a44074bd003583187a43396888f04b973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007309678d7f6187ce98a2333f509d9fa8f9bcaa2c5e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000739b9dd8a8737b00946f4e35d73b3add447f604dba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730122c0c70ec38df1658402d412e27b2553e2cfab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000732edb41e7ad7e8a7c4ff0aeedaea1318e664bd00373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000737213bdeeece54a882ea253441c320718e5af06df73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f60007398571cb4562672ec251a784cf9dab82c68a366fb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073f8295fa75053c9ef3fd792e31ebc2e2df01957ab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738a5e04ad92edcdd75435055911cc02cd4ef9be1b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730dd399a7ed92283e4983c2974fe377070d67f4eb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073b0ecc3eae0da5c60bf99ee3d6136d8194ef61e5573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000730df9d7f238e96317e8ca8ae5886df2cd62d7398e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f600073e2b527c0f207c27b1746e91b3a3c1f8afb4288ba73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600f6000738bc4fb84acaeea45add0b8d94047f64a59f97ffe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b8280546200a00c906200a1fa565b90600052602060002090601f0160209004810192826200a03057600085556200a07c565b82601f106200a04b57805160ff19168380011785556200a07c565b828001600101855582156200a07c579182015b828111156200a07b5782518255916020019190600101906200a05e565b5b5090506200a08b91906200a08f565b5090565b5b808211156200a0aa5760008160009055506001016200a090565b5090565b60006200a0c56200a0bf846200a18e565b6200a165565b9050828152602081018484840111156200a0de57600080fd5b6200a0eb8482856200a1c4565b509392505050565b600082601f8301126200a10557600080fd5b81516200a1178482602086016200a0ae565b91505092915050565b6000602082840312156200a13357600080fd5b600082015167ffffffffffffffff8111156200a14e57600080fd5b6200a15c848285016200a0f3565b91505092915050565b60006200a1716200a184565b90506200a17f82826200a230565b919050565b6000604051905090565b600067ffffffffffffffff8211156200a1ac576200a1ab6200a295565b5b6200a1b7826200a2c4565b9050602081019050919050565b60005b838110156200a1e45780820151818401526020810190506200a1c7565b838111156200a1f4576000848401525b50505050565b600060028204905060018216806200a21357607f821691505b602082108114156200a22a576200a2296200a266565b5b50919050565b6200a23b826200a2c4565b810181811067ffffffffffffffff821117156200a25d576200a25c6200a295565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b614d5e806200a2e56000396000f3fe6080604052600436106102305760003560e01c80638078059c1161012e578063b88d4fde116100ab578063d8c7a7971161006f578063d8c7a7971461081f578063e985e9c51461084a578063ef305cec14610887578063f2fde38b1461089e578063ff944be4146108c757610230565b8063b88d4fde14610728578063c87b56dd14610751578063cfc86f7b1461078e578063cfdb63ac146107b9578063d52c57e0146107f657610230565b806395d89b41116100f257806395d89b4114610664578063a0712d681461068f578063a22cb465146106ab578063a9a13471146106d4578063ab0bcc411461071157610230565b80638078059c146105b25780638462151c146105c9578063853828b6146106065780638da5cb5b1461061057806391b7f5ed1461063b57610230565b8063235b6ea1116101bc57806355f804b31161018057806355f804b3146104cd5780635d893ba0146104f65780636352211e1461052157806370a082311461055e578063715018a61461059b57610230565b8063235b6ea1146103d657806323b872dd146104015780632f745c591461042a57806342842e0e146104675780634f6ccce71461049057610230565b80630d5624b3116102035780630d5624b3146103035780630f7f7b5d1461031a57806318160ddd146103575780631a73293d1461038257806322f4596f146103ab57610230565b806301ffc9a71461023557806306fdde0314610272578063081812fc1461029d578063095ea7b3146102da575b600080fd5b34801561024157600080fd5b5061025c6004803603810190610257919061390e565b610904565b6040516102699190613f2d565b60405180910390f35b34801561027e57600080fd5b5061028761097e565b6040516102949190613f48565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf91906139a1565b610a10565b6040516102d19190613ea4565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190613891565b610a95565b005b34801561030f57600080fd5b50610318610bad565b005b34801561032657600080fd5b50610341600480360381019061033c9190613726565b610c46565b60405161034e9190613f0b565b60405180910390f35b34801561036357600080fd5b5061036c610cff565b604051610379919061424a565b60405180910390f35b34801561038e57600080fd5b506103a960048036038101906103a49190613891565b610d0c565b005b3480156103b757600080fd5b506103c0610dd0565b6040516103cd919061424a565b60405180910390f35b3480156103e257600080fd5b506103eb610dd6565b6040516103f8919061424a565b60405180910390f35b34801561040d57600080fd5b506104286004803603810190610423919061378b565b610ddc565b005b34801561043657600080fd5b50610451600480360381019061044c9190613891565b610e3c565b60405161045e919061424a565b60405180910390f35b34801561047357600080fd5b5061048e6004803603810190610489919061378b565b610ee1565b005b34801561049c57600080fd5b506104b760048036038101906104b291906139a1565b610f01565b6040516104c4919061424a565b60405180910390f35b3480156104d957600080fd5b506104f460048036038101906104ef9190613960565b610f98565b005b34801561050257600080fd5b5061050b61102e565b6040516105189190613f2d565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906139a1565b611041565b6040516105559190613ea4565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613726565b6110f3565b604051610592919061424a565b60405180910390f35b3480156105a757600080fd5b506105b06111ab565b005b3480156105be57600080fd5b506105c7611233565b005b3480156105d557600080fd5b506105f060048036038101906105eb9190613726565b6112cc565b6040516105fd9190613f0b565b60405180910390f35b61060e6113c6565b005b34801561061c57600080fd5b50610625611576565b6040516106329190613ea4565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d91906139a1565b6115a0565b005b34801561067057600080fd5b50610679611626565b6040516106869190613f48565b60405180910390f35b6106a960048036038101906106a491906139a1565b6116b8565b005b3480156106b757600080fd5b506106d260048036038101906106cd9190613855565b611adb565b005b3480156106e057600080fd5b506106fb60048036038101906106f691906139a1565b611c5c565b6040516107089190613f2d565b60405180910390f35b34801561071d57600080fd5b50610726611c86565b005b34801561073457600080fd5b5061074f600480360381019061074a91906137da565b611d1f565b005b34801561075d57600080fd5b50610778600480360381019061077391906139a1565b611d81565b6040516107859190613f48565b60405180910390f35b34801561079a57600080fd5b506107a3611e28565b6040516107b09190613f48565b60405180910390f35b3480156107c557600080fd5b506107e060048036038101906107db9190613726565b611eb6565b6040516107ed919061424a565b60405180910390f35b34801561080257600080fd5b5061081d600480360381019061081891906139ca565b611ece565b005b34801561082b57600080fd5b506108346120b1565b6040516108419190613f2d565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c919061374f565b6120c4565b60405161087e9190613f2d565b60405180910390f35b34801561089357600080fd5b5061089c612158565b005b3480156108aa57600080fd5b506108c560048036038101906108c09190613726565b6121f1565b005b3480156108d357600080fd5b506108ee60048036038101906108e991906139a1565b6122e9565b6040516108fb9190613f2d565b60405180910390f35b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610977575061097682612309565b5b9050919050565b60606000805461098d9061455f565b80601f01602080910402602001604051908101604052809291908181526020018280546109b99061455f565b8015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b5050505050905090565b6000610a1b826123eb565b610a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a519061412a565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610aa082611041565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b08906141aa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610b30612457565b73ffffffffffffffffffffffffffffffffffffffff161480610b5f5750610b5e81610b59612457565b6120c4565b5b610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b959061408a565b60405180910390fd5b610ba8838361245f565b505050565b610bb5612457565b73ffffffffffffffffffffffffffffffffffffffff16610bd3611576565b73ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c209061414a565b60405180910390fd5b6001600e60006101000a81548160ff021916908315150217905550565b6060601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638462151c836040518263ffffffff1660e01b8152600401610ca39190613ea4565b60006040518083038186803b158015610cbb57600080fd5b505afa158015610ccf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610cf891906138cd565b9050919050565b6000600880549050905090565b610d14612457565b73ffffffffffffffffffffffffffffffffffffffff16610d32611576565b73ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061414a565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600d5481565b600c5481565b610ded610de7612457565b82612518565b610e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e23906141ea565b60405180910390fd5b610e378383836125f6565b505050565b6000610e47836110f3565b8210610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90613f6a565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610efc83838360405180602001604052806000815250611d1f565b505050565b6000610f0b610cff565b8210610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f439061422a565b60405180910390fd5b60088281548110610f86577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050919050565b610fa0612457565b73ffffffffffffffffffffffffffffffffffffffff16610fbe611576565b73ffffffffffffffffffffffffffffffffffffffff1614611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b9061414a565b60405180910390fd5b80600b908051906020019061102a92919061349f565b5050565b600e60019054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e1906140ca565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b906140aa565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111b3612457565b73ffffffffffffffffffffffffffffffffffffffff166111d1611576565b73ffffffffffffffffffffffffffffffffffffffff1614611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e9061414a565b60405180910390fd5b6112316000612852565b565b61123b612457565b73ffffffffffffffffffffffffffffffffffffffff16611259611576565b73ffffffffffffffffffffffffffffffffffffffff16146112af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a69061414a565b60405180910390fd5b6000600e60016101000a81548160ff021916908315150217905550565b606060006112d9836110f3565b905060008167ffffffffffffffff81111561131d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561134b5781602001602082028036833780820191505090505b50905060005b828110156113bb576113638582610e3c565b82828151811061139c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080806113b3906145c2565b915050611351565b508092505050919050565b6113ce612457565b73ffffffffffffffffffffffffffffffffffffffff166113ec611576565b73ffffffffffffffffffffffffffffffffffffffff1614611442576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114399061414a565b60405180910390fd5b600060034761145191906143ea565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050506114b357600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505061151357600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505061157357600080fd5b50565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115a8612457565b73ffffffffffffffffffffffffffffffffffffffff166115c6611576565b73ffffffffffffffffffffffffffffffffffffffff161461161c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116139061414a565b60405180910390fd5b80600c8190555050565b6060600180546116359061455f565b80601f01602080910402602001604051908101604052809291908181526020018280546116619061455f565b80156116ae5780601f10611683576101008083540402835291602001916116ae565b820191906000526020600020905b81548152906001019060200180831161169157829003601f168201915b5050505050905090565b60006116c2610cff565b90506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008060008311801561171b5750606383105b15611769578291506063600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638462151c336040518263ffffffff1660e01b81526004016117c69190613ea4565b60006040518083038186803b1580156117de57600080fd5b505afa1580156117f2573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061181b91906138cd565b905060005b815181101561191d5760106000838381518110611866577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151815260200190815260200160002060009054906101000a900460ff1661190a5760028461189b9190614394565b93506001601060008484815181106118dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611915906145c2565b915050611820565b50600084118061192e575060008151115b1561198757600e60009054906101000a900460ff16611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119799061400a565b60405180910390fd5b6119d7565b600e60019054906101000a900460ff166119d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cd906140ea565b60405180910390fd5b5b828611156119ee5782866119eb9190614475565b91505b600082846119fc9190614394565b9050600d548187611a0d9190614394565b1115611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a459061420a565b60405180910390fd5b82600c54611a5c919061441b565b341015611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a95906141ca565b60405180910390fd5b60005b81811015611ad157611abe338289611ab99190614394565b612918565b8080611ac9906145c2565b915050611aa1565b5050505050505050565b611ae3612457565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b489061402a565b60405180910390fd5b8060056000611b5e612457565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611c0b612457565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c509190613f2d565b60405180910390a35050565b60006010600083815260200190815260200160002060009054906101000a900460ff169050919050565b611c8e612457565b73ffffffffffffffffffffffffffffffffffffffff16611cac611576565b73ffffffffffffffffffffffffffffffffffffffff1614611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf99061414a565b60405180910390fd5b6001600e60016101000a81548160ff021916908315150217905550565b611d30611d2a612457565b83612518565b611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d66906141ea565b60405180910390fd5b611d7b84848484612936565b50505050565b6060611d8c826123eb565b611dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc29061418a565b60405180910390fd5b6000611dd5612992565b90506000815111611df55760405180602001604052806000815250611e20565b80611dff84612a24565b604051602001611e10929190613e80565b6040516020818303038152906040525b915050919050565b600b8054611e359061455f565b80601f0160208091040260200160405190810160405280929190818152602001828054611e619061455f565b8015611eae5780601f10611e8357610100808354040283529160200191611eae565b820191906000526020600020905b815481529060010190602001808311611e9157829003601f168201915b505050505081565b600f6020528060005260406000206000915090505481565b6000611ed8610cff565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f855750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611fdd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15611fe757600190505b80612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e9061404a565b60405180910390fd5b600d5484836120369190614394565b1115612077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206e9061420a565b60405180910390fd5b60005b848110156120aa576120978482856120929190614394565b612918565b80806120a2906145c2565b91505061207a565b5050505050565b600e60009054906101000a900460ff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612160612457565b73ffffffffffffffffffffffffffffffffffffffff1661217e611576565b73ffffffffffffffffffffffffffffffffffffffff16146121d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cb9061414a565b60405180910390fd5b6000600e60006101000a81548160ff021916908315150217905550565b6121f9612457565b73ffffffffffffffffffffffffffffffffffffffff16612217611576565b73ffffffffffffffffffffffffffffffffffffffff161461226d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122649061414a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d490613faa565b60405180910390fd5b6122e681612852565b50565b60106020528060005260406000206000915054906101000a900460ff1681565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806123d457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806123e457506123e382612bd1565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166124d283611041565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612523826123eb565b612562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125599061406a565b60405180910390fd5b600061256d83611041565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806125dc57508373ffffffffffffffffffffffffffffffffffffffff166125c484610a10565b73ffffffffffffffffffffffffffffffffffffffff16145b806125ed57506125ec81856120c4565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661261682611041565b73ffffffffffffffffffffffffffffffffffffffff161461266c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126639061416a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d390613fea565b60405180910390fd5b6126e7838383612c3b565b6126f260008261245f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127429190614475565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127999190614394565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612932828260405180602001604052806000815250612d4f565b5050565b6129418484846125f6565b61294d84848484612daa565b61298c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298390613f8a565b60405180910390fd5b50505050565b6060600b80546129a19061455f565b80601f01602080910402602001604051908101604052809291908181526020018280546129cd9061455f565b8015612a1a5780601f106129ef57610100808354040283529160200191612a1a565b820191906000526020600020905b8154815290600101906020018083116129fd57829003601f168201915b5050505050905090565b60606000821415612a6c576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612bcc565b600082905060005b60008214612a9e578080612a87906145c2565b915050600a82612a9791906143ea565b9150612a74565b60008167ffffffffffffffff811115612ae0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612b125781602001600182028036833780820191505090505b5090505b60008514612bc557600182612b2b9190614475565b9150600a85612b3a919061460b565b6030612b469190614394565b60f81b818381518110612b82577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612bbe91906143ea565b9450612b16565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612c46838383612f41565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c8957612c8481612f46565b612cc8565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612cc757612cc68382612f8f565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d0b57612d06816130fc565b612d4a565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612d4957612d48828261323f565b5b5b505050565b612d5983836132be565b612d666000848484612daa565b612da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9c90613f8a565b60405180910390fd5b505050565b6000612dcb8473ffffffffffffffffffffffffffffffffffffffff1661348c565b15612f34578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612df4612457565b8786866040518563ffffffff1660e01b8152600401612e169493929190613ebf565b602060405180830381600087803b158015612e3057600080fd5b505af1925050508015612e6157506040513d601f19601f82011682018060405250810190612e5e9190613937565b60015b612ee4573d8060008114612e91576040519150601f19603f3d011682016040523d82523d6000602084013e612e96565b606091505b50600081511415612edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed390613f8a565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612f39565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612f9c846110f3565b612fa69190614475565b905060006007600084815260200190815260200160002054905081811461308b576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506131109190614475565b9050600060096000848152602001908152602001600020549050600060088381548110613166577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080600883815481106131ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480613223577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061324a836110f3565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561332e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133259061410a565b60405180910390fd5b613337816123eb565b15613377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336e90613fca565b60405180910390fd5b61338360008383612c3b565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133d39190614394565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b8280546134ab9061455f565b90600052602060002090601f0160209004810192826134cd5760008555613514565b82601f106134e657805160ff1916838001178555613514565b82800160010185558215613514579182015b828111156135135782518255916020019190600101906134f8565b5b5090506135219190613525565b5090565b5b8082111561353e576000816000905550600101613526565b5090565b60006135556135508461428a565b614265565b9050808382526020820190508285602086028201111561357457600080fd5b60005b858110156135a4578161358a8882613711565b845260208401935060208301925050600181019050613577565b5050509392505050565b60006135c16135bc846142b6565b614265565b9050828152602081018484840111156135d957600080fd5b6135e484828561451d565b509392505050565b60006135ff6135fa846142e7565b614265565b90508281526020810184848401111561361757600080fd5b61362284828561451d565b509392505050565b60008135905061363981614ccc565b92915050565b600082601f83011261365057600080fd5b8151613660848260208601613542565b91505092915050565b60008135905061367881614ce3565b92915050565b60008135905061368d81614cfa565b92915050565b6000815190506136a281614cfa565b92915050565b600082601f8301126136b957600080fd5b81356136c98482602086016135ae565b91505092915050565b600082601f8301126136e357600080fd5b81356136f38482602086016135ec565b91505092915050565b60008135905061370b81614d11565b92915050565b60008151905061372081614d11565b92915050565b60006020828403121561373857600080fd5b60006137468482850161362a565b91505092915050565b6000806040838503121561376257600080fd5b60006137708582860161362a565b92505060206137818582860161362a565b9150509250929050565b6000806000606084860312156137a057600080fd5b60006137ae8682870161362a565b93505060206137bf8682870161362a565b92505060406137d0868287016136fc565b9150509250925092565b600080600080608085870312156137f057600080fd5b60006137fe8782880161362a565b945050602061380f8782880161362a565b9350506040613820878288016136fc565b925050606085013567ffffffffffffffff81111561383d57600080fd5b613849878288016136a8565b91505092959194509250565b6000806040838503121561386857600080fd5b60006138768582860161362a565b925050602061388785828601613669565b9150509250929050565b600080604083850312156138a457600080fd5b60006138b28582860161362a565b92505060206138c3858286016136fc565b9150509250929050565b6000602082840312156138df57600080fd5b600082015167ffffffffffffffff8111156138f957600080fd5b6139058482850161363f565b91505092915050565b60006020828403121561392057600080fd5b600061392e8482850161367e565b91505092915050565b60006020828403121561394957600080fd5b600061395784828501613693565b91505092915050565b60006020828403121561397257600080fd5b600082013567ffffffffffffffff81111561398c57600080fd5b613998848285016136d2565b91505092915050565b6000602082840312156139b357600080fd5b60006139c1848285016136fc565b91505092915050565b600080604083850312156139dd57600080fd5b60006139eb858286016136fc565b92505060206139fc8582860161362a565b9150509250929050565b6000613a128383613e62565b60208301905092915050565b613a27816144a9565b82525050565b6000613a3882614328565b613a428185614356565b9350613a4d83614318565b8060005b83811015613a7e578151613a658882613a06565b9750613a7083614349565b925050600181019050613a51565b5085935050505092915050565b613a94816144bb565b82525050565b6000613aa582614333565b613aaf8185614367565b9350613abf81856020860161452c565b613ac8816146f8565b840191505092915050565b6000613ade8261433e565b613ae88185614378565b9350613af881856020860161452c565b613b01816146f8565b840191505092915050565b6000613b178261433e565b613b218185614389565b9350613b3181856020860161452c565b80840191505092915050565b6000613b4a602b83614378565b9150613b5582614709565b604082019050919050565b6000613b6d603283614378565b9150613b7882614758565b604082019050919050565b6000613b90602683614378565b9150613b9b826147a7565b604082019050919050565b6000613bb3601c83614378565b9150613bbe826147f6565b602082019050919050565b6000613bd6602483614378565b9150613be18261481f565b604082019050919050565b6000613bf9601383614378565b9150613c048261486e565b602082019050919050565b6000613c1c601983614378565b9150613c2782614897565b602082019050919050565b6000613c3f601383614378565b9150613c4a826148c0565b602082019050919050565b6000613c62602c83614378565b9150613c6d826148e9565b604082019050919050565b6000613c85603883614378565b9150613c9082614938565b604082019050919050565b6000613ca8602a83614378565b9150613cb382614987565b604082019050919050565b6000613ccb602983614378565b9150613cd6826149d6565b604082019050919050565b6000613cee600f83614378565b9150613cf982614a25565b602082019050919050565b6000613d11602083614378565b9150613d1c82614a4e565b602082019050919050565b6000613d34602c83614378565b9150613d3f82614a77565b604082019050919050565b6000613d57602083614378565b9150613d6282614ac6565b602082019050919050565b6000613d7a602983614378565b9150613d8582614aef565b604082019050919050565b6000613d9d602f83614378565b9150613da882614b3e565b604082019050919050565b6000613dc0602183614378565b9150613dcb82614b8d565b604082019050919050565b6000613de3601a83614378565b9150613dee82614bdc565b602082019050919050565b6000613e06603183614378565b9150613e1182614c05565b604082019050919050565b6000613e29601983614378565b9150613e3482614c54565b602082019050919050565b6000613e4c602c83614378565b9150613e5782614c7d565b604082019050919050565b613e6b81614513565b82525050565b613e7a81614513565b82525050565b6000613e8c8285613b0c565b9150613e988284613b0c565b91508190509392505050565b6000602082019050613eb96000830184613a1e565b92915050565b6000608082019050613ed46000830187613a1e565b613ee16020830186613a1e565b613eee6040830185613e71565b8181036060830152613f008184613a9a565b905095945050505050565b60006020820190508181036000830152613f258184613a2d565b905092915050565b6000602082019050613f426000830184613a8b565b92915050565b60006020820190508181036000830152613f628184613ad3565b905092915050565b60006020820190508181036000830152613f8381613b3d565b9050919050565b60006020820190508181036000830152613fa381613b60565b9050919050565b60006020820190508181036000830152613fc381613b83565b9050919050565b60006020820190508181036000830152613fe381613ba6565b9050919050565b6000602082019050818103600083015261400381613bc9565b9050919050565b6000602082019050818103600083015261402381613bec565b9050919050565b6000602082019050818103600083015261404381613c0f565b9050919050565b6000602082019050818103600083015261406381613c32565b9050919050565b6000602082019050818103600083015261408381613c55565b9050919050565b600060208201905081810360008301526140a381613c78565b9050919050565b600060208201905081810360008301526140c381613c9b565b9050919050565b600060208201905081810360008301526140e381613cbe565b9050919050565b6000602082019050818103600083015261410381613ce1565b9050919050565b6000602082019050818103600083015261412381613d04565b9050919050565b6000602082019050818103600083015261414381613d27565b9050919050565b6000602082019050818103600083015261416381613d4a565b9050919050565b6000602082019050818103600083015261418381613d6d565b9050919050565b600060208201905081810360008301526141a381613d90565b9050919050565b600060208201905081810360008301526141c381613db3565b9050919050565b600060208201905081810360008301526141e381613dd6565b9050919050565b6000602082019050818103600083015261420381613df9565b9050919050565b6000602082019050818103600083015261422381613e1c565b9050919050565b6000602082019050818103600083015261424381613e3f565b9050919050565b600060208201905061425f6000830184613e71565b92915050565b600061426f614280565b905061427b8282614591565b919050565b6000604051905090565b600067ffffffffffffffff8211156142a5576142a46146c9565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156142d1576142d06146c9565b5b6142da826146f8565b9050602081019050919050565b600067ffffffffffffffff821115614302576143016146c9565b5b61430b826146f8565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061439f82614513565b91506143aa83614513565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143df576143de61463c565b5b828201905092915050565b60006143f582614513565b915061440083614513565b9250826144105761440f61466b565b5b828204905092915050565b600061442682614513565b915061443183614513565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561446a5761446961463c565b5b828202905092915050565b600061448082614513565b915061448b83614513565b92508282101561449e5761449d61463c565b5b828203905092915050565b60006144b4826144f3565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561454a57808201518184015260208101905061452f565b83811115614559576000848401525b50505050565b6000600282049050600182168061457757607f821691505b6020821081141561458b5761458a61469a565b5b50919050565b61459a826146f8565b810181811067ffffffffffffffff821117156145b9576145b86146c9565b5b80604052505050565b60006145cd82614513565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614600576145ff61463c565b5b600182019050919050565b600061461682614513565b915061462183614513565b9250826146315761463061466b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f7072655f73616c655f6e6f745f61637469766500000000000000000000000000600082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f756e617574686f72697a65645f73656e64657200000000000000000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f73616c655f6e6f745f6163746976650000000000000000000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f696e73756666696369656e745f7061796d656e745f76616c7565000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f6d61785f746f6b656e5f737570706c795f657863656564656400000000000000600082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b614cd5816144a9565b8114614ce057600080fd5b50565b614cec816144bb565b8114614cf757600080fd5b50565b614d03816144c7565b8114614d0e57600080fd5b50565b614d1a81614513565b8114614d2557600080fd5b5056fea264697066735822122020e0de8b78c4c73a889ffaece31dce353c99f0307d4c0e23edb61e534906601a64736f6c634300080400330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005068747470733a2f2f6e6674782e6d7970696e6174612e636c6f75642f697066732f516d6262544357646d774e454c716b6a534d484c64354e74487751574a4377744b50396b4844536353414d7a456f3f00000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102305760003560e01c80638078059c1161012e578063b88d4fde116100ab578063d8c7a7971161006f578063d8c7a7971461081f578063e985e9c51461084a578063ef305cec14610887578063f2fde38b1461089e578063ff944be4146108c757610230565b8063b88d4fde14610728578063c87b56dd14610751578063cfc86f7b1461078e578063cfdb63ac146107b9578063d52c57e0146107f657610230565b806395d89b41116100f257806395d89b4114610664578063a0712d681461068f578063a22cb465146106ab578063a9a13471146106d4578063ab0bcc411461071157610230565b80638078059c146105b25780638462151c146105c9578063853828b6146106065780638da5cb5b1461061057806391b7f5ed1461063b57610230565b8063235b6ea1116101bc57806355f804b31161018057806355f804b3146104cd5780635d893ba0146104f65780636352211e1461052157806370a082311461055e578063715018a61461059b57610230565b8063235b6ea1146103d657806323b872dd146104015780632f745c591461042a57806342842e0e146104675780634f6ccce71461049057610230565b80630d5624b3116102035780630d5624b3146103035780630f7f7b5d1461031a57806318160ddd146103575780631a73293d1461038257806322f4596f146103ab57610230565b806301ffc9a71461023557806306fdde0314610272578063081812fc1461029d578063095ea7b3146102da575b600080fd5b34801561024157600080fd5b5061025c6004803603810190610257919061390e565b610904565b6040516102699190613f2d565b60405180910390f35b34801561027e57600080fd5b5061028761097e565b6040516102949190613f48565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf91906139a1565b610a10565b6040516102d19190613ea4565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190613891565b610a95565b005b34801561030f57600080fd5b50610318610bad565b005b34801561032657600080fd5b50610341600480360381019061033c9190613726565b610c46565b60405161034e9190613f0b565b60405180910390f35b34801561036357600080fd5b5061036c610cff565b604051610379919061424a565b60405180910390f35b34801561038e57600080fd5b506103a960048036038101906103a49190613891565b610d0c565b005b3480156103b757600080fd5b506103c0610dd0565b6040516103cd919061424a565b60405180910390f35b3480156103e257600080fd5b506103eb610dd6565b6040516103f8919061424a565b60405180910390f35b34801561040d57600080fd5b506104286004803603810190610423919061378b565b610ddc565b005b34801561043657600080fd5b50610451600480360381019061044c9190613891565b610e3c565b60405161045e919061424a565b60405180910390f35b34801561047357600080fd5b5061048e6004803603810190610489919061378b565b610ee1565b005b34801561049c57600080fd5b506104b760048036038101906104b291906139a1565b610f01565b6040516104c4919061424a565b60405180910390f35b3480156104d957600080fd5b506104f460048036038101906104ef9190613960565b610f98565b005b34801561050257600080fd5b5061050b61102e565b6040516105189190613f2d565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906139a1565b611041565b6040516105559190613ea4565b60405180910390f35b34801561056a57600080fd5b5061058560048036038101906105809190613726565b6110f3565b604051610592919061424a565b60405180910390f35b3480156105a757600080fd5b506105b06111ab565b005b3480156105be57600080fd5b506105c7611233565b005b3480156105d557600080fd5b506105f060048036038101906105eb9190613726565b6112cc565b6040516105fd9190613f0b565b60405180910390f35b61060e6113c6565b005b34801561061c57600080fd5b50610625611576565b6040516106329190613ea4565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d91906139a1565b6115a0565b005b34801561067057600080fd5b50610679611626565b6040516106869190613f48565b60405180910390f35b6106a960048036038101906106a491906139a1565b6116b8565b005b3480156106b757600080fd5b506106d260048036038101906106cd9190613855565b611adb565b005b3480156106e057600080fd5b506106fb60048036038101906106f691906139a1565b611c5c565b6040516107089190613f2d565b60405180910390f35b34801561071d57600080fd5b50610726611c86565b005b34801561073457600080fd5b5061074f600480360381019061074a91906137da565b611d1f565b005b34801561075d57600080fd5b50610778600480360381019061077391906139a1565b611d81565b6040516107859190613f48565b60405180910390f35b34801561079a57600080fd5b506107a3611e28565b6040516107b09190613f48565b60405180910390f35b3480156107c557600080fd5b506107e060048036038101906107db9190613726565b611eb6565b6040516107ed919061424a565b60405180910390f35b34801561080257600080fd5b5061081d600480360381019061081891906139ca565b611ece565b005b34801561082b57600080fd5b506108346120b1565b6040516108419190613f2d565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c919061374f565b6120c4565b60405161087e9190613f2d565b60405180910390f35b34801561089357600080fd5b5061089c612158565b005b3480156108aa57600080fd5b506108c560048036038101906108c09190613726565b6121f1565b005b3480156108d357600080fd5b506108ee60048036038101906108e991906139a1565b6122e9565b6040516108fb9190613f2d565b60405180910390f35b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610977575061097682612309565b5b9050919050565b60606000805461098d9061455f565b80601f01602080910402602001604051908101604052809291908181526020018280546109b99061455f565b8015610a065780601f106109db57610100808354040283529160200191610a06565b820191906000526020600020905b8154815290600101906020018083116109e957829003601f168201915b5050505050905090565b6000610a1b826123eb565b610a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a519061412a565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610aa082611041565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b08906141aa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610b30612457565b73ffffffffffffffffffffffffffffffffffffffff161480610b5f5750610b5e81610b59612457565b6120c4565b5b610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b959061408a565b60405180910390fd5b610ba8838361245f565b505050565b610bb5612457565b73ffffffffffffffffffffffffffffffffffffffff16610bd3611576565b73ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c209061414a565b60405180910390fd5b6001600e60006101000a81548160ff021916908315150217905550565b6060601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638462151c836040518263ffffffff1660e01b8152600401610ca39190613ea4565b60006040518083038186803b158015610cbb57600080fd5b505afa158015610ccf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610cf891906138cd565b9050919050565b6000600880549050905090565b610d14612457565b73ffffffffffffffffffffffffffffffffffffffff16610d32611576565b73ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061414a565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600d5481565b600c5481565b610ded610de7612457565b82612518565b610e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e23906141ea565b60405180910390fd5b610e378383836125f6565b505050565b6000610e47836110f3565b8210610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90613f6a565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610efc83838360405180602001604052806000815250611d1f565b505050565b6000610f0b610cff565b8210610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f439061422a565b60405180910390fd5b60088281548110610f86577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050919050565b610fa0612457565b73ffffffffffffffffffffffffffffffffffffffff16610fbe611576565b73ffffffffffffffffffffffffffffffffffffffff1614611014576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100b9061414a565b60405180910390fd5b80600b908051906020019061102a92919061349f565b5050565b600e60019054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e1906140ca565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115b906140aa565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111b3612457565b73ffffffffffffffffffffffffffffffffffffffff166111d1611576565b73ffffffffffffffffffffffffffffffffffffffff1614611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e9061414a565b60405180910390fd5b6112316000612852565b565b61123b612457565b73ffffffffffffffffffffffffffffffffffffffff16611259611576565b73ffffffffffffffffffffffffffffffffffffffff16146112af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a69061414a565b60405180910390fd5b6000600e60016101000a81548160ff021916908315150217905550565b606060006112d9836110f3565b905060008167ffffffffffffffff81111561131d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561134b5781602001602082028036833780820191505090505b50905060005b828110156113bb576113638582610e3c565b82828151811061139c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101818152505080806113b3906145c2565b915050611351565b508092505050919050565b6113ce612457565b73ffffffffffffffffffffffffffffffffffffffff166113ec611576565b73ffffffffffffffffffffffffffffffffffffffff1614611442576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114399061414a565b60405180910390fd5b600060034761145191906143ea565b9050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050506114b357600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505061151357600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505061157357600080fd5b50565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115a8612457565b73ffffffffffffffffffffffffffffffffffffffff166115c6611576565b73ffffffffffffffffffffffffffffffffffffffff161461161c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116139061414a565b60405180910390fd5b80600c8190555050565b6060600180546116359061455f565b80601f01602080910402602001604051908101604052809291908181526020018280546116619061455f565b80156116ae5780601f10611683576101008083540402835291602001916116ae565b820191906000526020600020905b81548152906001019060200180831161169157829003601f168201915b5050505050905090565b60006116c2610cff565b90506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008060008311801561171b5750606383105b15611769578291506063600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638462151c336040518263ffffffff1660e01b81526004016117c69190613ea4565b60006040518083038186803b1580156117de57600080fd5b505afa1580156117f2573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061181b91906138cd565b905060005b815181101561191d5760106000838381518110611866577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151815260200190815260200160002060009054906101000a900460ff1661190a5760028461189b9190614394565b93506001601060008484815181106118dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611915906145c2565b915050611820565b50600084118061192e575060008151115b1561198757600e60009054906101000a900460ff16611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119799061400a565b60405180910390fd5b6119d7565b600e60019054906101000a900460ff166119d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cd906140ea565b60405180910390fd5b5b828611156119ee5782866119eb9190614475565b91505b600082846119fc9190614394565b9050600d548187611a0d9190614394565b1115611a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a459061420a565b60405180910390fd5b82600c54611a5c919061441b565b341015611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a95906141ca565b60405180910390fd5b60005b81811015611ad157611abe338289611ab99190614394565b612918565b8080611ac9906145c2565b915050611aa1565b5050505050505050565b611ae3612457565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b489061402a565b60405180910390fd5b8060056000611b5e612457565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611c0b612457565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c509190613f2d565b60405180910390a35050565b60006010600083815260200190815260200160002060009054906101000a900460ff169050919050565b611c8e612457565b73ffffffffffffffffffffffffffffffffffffffff16611cac611576565b73ffffffffffffffffffffffffffffffffffffffff1614611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf99061414a565b60405180910390fd5b6001600e60016101000a81548160ff021916908315150217905550565b611d30611d2a612457565b83612518565b611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d66906141ea565b60405180910390fd5b611d7b84848484612936565b50505050565b6060611d8c826123eb565b611dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc29061418a565b60405180910390fd5b6000611dd5612992565b90506000815111611df55760405180602001604052806000815250611e20565b80611dff84612a24565b604051602001611e10929190613e80565b6040516020818303038152906040525b915050919050565b600b8054611e359061455f565b80601f0160208091040260200160405190810160405280929190818152602001828054611e619061455f565b8015611eae5780601f10611e8357610100808354040283529160200191611eae565b820191906000526020600020905b815481529060010190602001808311611e9157829003601f168201915b505050505081565b600f6020528060005260406000206000915090505481565b6000611ed8610cff565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611f855750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611fdd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15611fe757600190505b80612027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201e9061404a565b60405180910390fd5b600d5484836120369190614394565b1115612077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206e9061420a565b60405180910390fd5b60005b848110156120aa576120978482856120929190614394565b612918565b80806120a2906145c2565b91505061207a565b5050505050565b600e60009054906101000a900460ff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612160612457565b73ffffffffffffffffffffffffffffffffffffffff1661217e611576565b73ffffffffffffffffffffffffffffffffffffffff16146121d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121cb9061414a565b60405180910390fd5b6000600e60006101000a81548160ff021916908315150217905550565b6121f9612457565b73ffffffffffffffffffffffffffffffffffffffff16612217611576565b73ffffffffffffffffffffffffffffffffffffffff161461226d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122649061414a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d490613faa565b60405180910390fd5b6122e681612852565b50565b60106020528060005260406000206000915054906101000a900460ff1681565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806123d457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806123e457506123e382612bd1565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166124d283611041565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612523826123eb565b612562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125599061406a565b60405180910390fd5b600061256d83611041565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806125dc57508373ffffffffffffffffffffffffffffffffffffffff166125c484610a10565b73ffffffffffffffffffffffffffffffffffffffff16145b806125ed57506125ec81856120c4565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661261682611041565b73ffffffffffffffffffffffffffffffffffffffff161461266c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126639061416a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d390613fea565b60405180910390fd5b6126e7838383612c3b565b6126f260008261245f565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127429190614475565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127999190614394565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612932828260405180602001604052806000815250612d4f565b5050565b6129418484846125f6565b61294d84848484612daa565b61298c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298390613f8a565b60405180910390fd5b50505050565b6060600b80546129a19061455f565b80601f01602080910402602001604051908101604052809291908181526020018280546129cd9061455f565b8015612a1a5780601f106129ef57610100808354040283529160200191612a1a565b820191906000526020600020905b8154815290600101906020018083116129fd57829003601f168201915b5050505050905090565b60606000821415612a6c576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612bcc565b600082905060005b60008214612a9e578080612a87906145c2565b915050600a82612a9791906143ea565b9150612a74565b60008167ffffffffffffffff811115612ae0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612b125781602001600182028036833780820191505090505b5090505b60008514612bc557600182612b2b9190614475565b9150600a85612b3a919061460b565b6030612b469190614394565b60f81b818381518110612b82577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612bbe91906143ea565b9450612b16565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612c46838383612f41565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c8957612c8481612f46565b612cc8565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612cc757612cc68382612f8f565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d0b57612d06816130fc565b612d4a565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612d4957612d48828261323f565b5b5b505050565b612d5983836132be565b612d666000848484612daa565b612da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9c90613f8a565b60405180910390fd5b505050565b6000612dcb8473ffffffffffffffffffffffffffffffffffffffff1661348c565b15612f34578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612df4612457565b8786866040518563ffffffff1660e01b8152600401612e169493929190613ebf565b602060405180830381600087803b158015612e3057600080fd5b505af1925050508015612e6157506040513d601f19601f82011682018060405250810190612e5e9190613937565b60015b612ee4573d8060008114612e91576040519150601f19603f3d011682016040523d82523d6000602084013e612e96565b606091505b50600081511415612edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed390613f8a565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612f39565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612f9c846110f3565b612fa69190614475565b905060006007600084815260200190815260200160002054905081811461308b576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506131109190614475565b9050600060096000848152602001908152602001600020549050600060088381548110613166577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080600883815481106131ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480613223577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061324a836110f3565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561332e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133259061410a565b60405180910390fd5b613337816123eb565b15613377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336e90613fca565b60405180910390fd5b61338360008383612c3b565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133d39190614394565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b8280546134ab9061455f565b90600052602060002090601f0160209004810192826134cd5760008555613514565b82601f106134e657805160ff1916838001178555613514565b82800160010185558215613514579182015b828111156135135782518255916020019190600101906134f8565b5b5090506135219190613525565b5090565b5b8082111561353e576000816000905550600101613526565b5090565b60006135556135508461428a565b614265565b9050808382526020820190508285602086028201111561357457600080fd5b60005b858110156135a4578161358a8882613711565b845260208401935060208301925050600181019050613577565b5050509392505050565b60006135c16135bc846142b6565b614265565b9050828152602081018484840111156135d957600080fd5b6135e484828561451d565b509392505050565b60006135ff6135fa846142e7565b614265565b90508281526020810184848401111561361757600080fd5b61362284828561451d565b509392505050565b60008135905061363981614ccc565b92915050565b600082601f83011261365057600080fd5b8151613660848260208601613542565b91505092915050565b60008135905061367881614ce3565b92915050565b60008135905061368d81614cfa565b92915050565b6000815190506136a281614cfa565b92915050565b600082601f8301126136b957600080fd5b81356136c98482602086016135ae565b91505092915050565b600082601f8301126136e357600080fd5b81356136f38482602086016135ec565b91505092915050565b60008135905061370b81614d11565b92915050565b60008151905061372081614d11565b92915050565b60006020828403121561373857600080fd5b60006137468482850161362a565b91505092915050565b6000806040838503121561376257600080fd5b60006137708582860161362a565b92505060206137818582860161362a565b9150509250929050565b6000806000606084860312156137a057600080fd5b60006137ae8682870161362a565b93505060206137bf8682870161362a565b92505060406137d0868287016136fc565b9150509250925092565b600080600080608085870312156137f057600080fd5b60006137fe8782880161362a565b945050602061380f8782880161362a565b9350506040613820878288016136fc565b925050606085013567ffffffffffffffff81111561383d57600080fd5b613849878288016136a8565b91505092959194509250565b6000806040838503121561386857600080fd5b60006138768582860161362a565b925050602061388785828601613669565b9150509250929050565b600080604083850312156138a457600080fd5b60006138b28582860161362a565b92505060206138c3858286016136fc565b9150509250929050565b6000602082840312156138df57600080fd5b600082015167ffffffffffffffff8111156138f957600080fd5b6139058482850161363f565b91505092915050565b60006020828403121561392057600080fd5b600061392e8482850161367e565b91505092915050565b60006020828403121561394957600080fd5b600061395784828501613693565b91505092915050565b60006020828403121561397257600080fd5b600082013567ffffffffffffffff81111561398c57600080fd5b613998848285016136d2565b91505092915050565b6000602082840312156139b357600080fd5b60006139c1848285016136fc565b91505092915050565b600080604083850312156139dd57600080fd5b60006139eb858286016136fc565b92505060206139fc8582860161362a565b9150509250929050565b6000613a128383613e62565b60208301905092915050565b613a27816144a9565b82525050565b6000613a3882614328565b613a428185614356565b9350613a4d83614318565b8060005b83811015613a7e578151613a658882613a06565b9750613a7083614349565b925050600181019050613a51565b5085935050505092915050565b613a94816144bb565b82525050565b6000613aa582614333565b613aaf8185614367565b9350613abf81856020860161452c565b613ac8816146f8565b840191505092915050565b6000613ade8261433e565b613ae88185614378565b9350613af881856020860161452c565b613b01816146f8565b840191505092915050565b6000613b178261433e565b613b218185614389565b9350613b3181856020860161452c565b80840191505092915050565b6000613b4a602b83614378565b9150613b5582614709565b604082019050919050565b6000613b6d603283614378565b9150613b7882614758565b604082019050919050565b6000613b90602683614378565b9150613b9b826147a7565b604082019050919050565b6000613bb3601c83614378565b9150613bbe826147f6565b602082019050919050565b6000613bd6602483614378565b9150613be18261481f565b604082019050919050565b6000613bf9601383614378565b9150613c048261486e565b602082019050919050565b6000613c1c601983614378565b9150613c2782614897565b602082019050919050565b6000613c3f601383614378565b9150613c4a826148c0565b602082019050919050565b6000613c62602c83614378565b9150613c6d826148e9565b604082019050919050565b6000613c85603883614378565b9150613c9082614938565b604082019050919050565b6000613ca8602a83614378565b9150613cb382614987565b604082019050919050565b6000613ccb602983614378565b9150613cd6826149d6565b604082019050919050565b6000613cee600f83614378565b9150613cf982614a25565b602082019050919050565b6000613d11602083614378565b9150613d1c82614a4e565b602082019050919050565b6000613d34602c83614378565b9150613d3f82614a77565b604082019050919050565b6000613d57602083614378565b9150613d6282614ac6565b602082019050919050565b6000613d7a602983614378565b9150613d8582614aef565b604082019050919050565b6000613d9d602f83614378565b9150613da882614b3e565b604082019050919050565b6000613dc0602183614378565b9150613dcb82614b8d565b604082019050919050565b6000613de3601a83614378565b9150613dee82614bdc565b602082019050919050565b6000613e06603183614378565b9150613e1182614c05565b604082019050919050565b6000613e29601983614378565b9150613e3482614c54565b602082019050919050565b6000613e4c602c83614378565b9150613e5782614c7d565b604082019050919050565b613e6b81614513565b82525050565b613e7a81614513565b82525050565b6000613e8c8285613b0c565b9150613e988284613b0c565b91508190509392505050565b6000602082019050613eb96000830184613a1e565b92915050565b6000608082019050613ed46000830187613a1e565b613ee16020830186613a1e565b613eee6040830185613e71565b8181036060830152613f008184613a9a565b905095945050505050565b60006020820190508181036000830152613f258184613a2d565b905092915050565b6000602082019050613f426000830184613a8b565b92915050565b60006020820190508181036000830152613f628184613ad3565b905092915050565b60006020820190508181036000830152613f8381613b3d565b9050919050565b60006020820190508181036000830152613fa381613b60565b9050919050565b60006020820190508181036000830152613fc381613b83565b9050919050565b60006020820190508181036000830152613fe381613ba6565b9050919050565b6000602082019050818103600083015261400381613bc9565b9050919050565b6000602082019050818103600083015261402381613bec565b9050919050565b6000602082019050818103600083015261404381613c0f565b9050919050565b6000602082019050818103600083015261406381613c32565b9050919050565b6000602082019050818103600083015261408381613c55565b9050919050565b600060208201905081810360008301526140a381613c78565b9050919050565b600060208201905081810360008301526140c381613c9b565b9050919050565b600060208201905081810360008301526140e381613cbe565b9050919050565b6000602082019050818103600083015261410381613ce1565b9050919050565b6000602082019050818103600083015261412381613d04565b9050919050565b6000602082019050818103600083015261414381613d27565b9050919050565b6000602082019050818103600083015261416381613d4a565b9050919050565b6000602082019050818103600083015261418381613d6d565b9050919050565b600060208201905081810360008301526141a381613d90565b9050919050565b600060208201905081810360008301526141c381613db3565b9050919050565b600060208201905081810360008301526141e381613dd6565b9050919050565b6000602082019050818103600083015261420381613df9565b9050919050565b6000602082019050818103600083015261422381613e1c565b9050919050565b6000602082019050818103600083015261424381613e3f565b9050919050565b600060208201905061425f6000830184613e71565b92915050565b600061426f614280565b905061427b8282614591565b919050565b6000604051905090565b600067ffffffffffffffff8211156142a5576142a46146c9565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156142d1576142d06146c9565b5b6142da826146f8565b9050602081019050919050565b600067ffffffffffffffff821115614302576143016146c9565b5b61430b826146f8565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061439f82614513565b91506143aa83614513565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143df576143de61463c565b5b828201905092915050565b60006143f582614513565b915061440083614513565b9250826144105761440f61466b565b5b828204905092915050565b600061442682614513565b915061443183614513565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561446a5761446961463c565b5b828202905092915050565b600061448082614513565b915061448b83614513565b92508282101561449e5761449d61463c565b5b828203905092915050565b60006144b4826144f3565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561454a57808201518184015260208101905061452f565b83811115614559576000848401525b50505050565b6000600282049050600182168061457757607f821691505b6020821081141561458b5761458a61469a565b5b50919050565b61459a826146f8565b810181811067ffffffffffffffff821117156145b9576145b86146c9565b5b80604052505050565b60006145cd82614513565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614600576145ff61463c565b5b600182019050919050565b600061461682614513565b915061462183614513565b9250826146315761463061466b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f7072655f73616c655f6e6f745f61637469766500000000000000000000000000600082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f756e617574686f72697a65645f73656e64657200000000000000000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f73616c655f6e6f745f6163746976650000000000000000000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f696e73756666696369656e745f7061796d656e745f76616c7565000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f6d61785f746f6b656e5f737570706c795f657863656564656400000000000000600082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b614cd5816144a9565b8114614ce057600080fd5b50565b614cec816144bb565b8114614cf757600080fd5b50565b614d03816144c7565b8114614d0e57600080fd5b50565b614d1a81614513565b8114614d2557600080fd5b5056fea264697066735822122020e0de8b78c4c73a889ffaece31dce353c99f0307d4c0e23edb61e534906601a64736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000005068747470733a2f2f6e6674782e6d7970696e6174612e636c6f75642f697066732f516d6262544357646d774e454c716b6a534d484c64354e74487751574a4377744b50396b4844536353414d7a456f3f00000000000000000000000000000000
-----Decoded View---------------
Arg [0] : baseURI (string): https://nftx.mypinata.cloud/ipfs/QmbbTCWdmwNELqkjSMHLd5NtHwQWJCwtKP9kHDScSAMzEo?
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000050
Arg [2] : 68747470733a2f2f6e6674782e6d7970696e6174612e636c6f75642f69706673
Arg [3] : 2f516d6262544357646d774e454c716b6a534d484c64354e74487751574a4377
Arg [4] : 744b50396b4844536353414d7a456f3f00000000000000000000000000000000
Deployed Bytecode Sourcemap
43485:35530:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34858:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21747:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23306:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22829:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46783:83;;;;;;;;;;;;;:::i;:::-;;47139:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35498:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46330:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;43652:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43611:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24196:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;35166:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24606:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;35688:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46578:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;43734:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21441:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21171:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;42661:94;;;;;;;;;;;;;:::i;:::-;;47052:79;;;;;;;;;;;;;:::i;:::-;;47320:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;47670:239;;;:::i;:::-;;42010:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46690:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21916:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44301:1386;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23599:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46198:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46965:79;;;;;;;;;;;;;:::i;:::-;;24862:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22091:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43577:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43776:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;45695:495;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;43691:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23965:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46874:83;;;;;;;;;;;;;:::i;:::-;;42910:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;43828:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;34858:224;34960:4;34999:35;34984:50;;;:11;:50;;;;:90;;;;35038:36;35062:11;35038:23;:36::i;:::-;34984:90;34977:97;;34858:224;;;:::o;21747:100::-;21801:13;21834:5;21827:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21747:100;:::o;23306:221::-;23382:7;23410:16;23418:7;23410;:16::i;:::-;23402:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;23495:15;:24;23511:7;23495:24;;;;;;;;;;;;;;;;;;;;;23488:31;;23306:221;;;:::o;22829:411::-;22910:13;22926:23;22941:7;22926:14;:23::i;:::-;22910:39;;22974:5;22968:11;;:2;:11;;;;22960:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;23068:5;23052:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;23077:37;23094:5;23101:12;:10;:12::i;:::-;23077:16;:37::i;:::-;23052:62;23030:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;23211:21;23220:2;23224:7;23211:8;:21::i;:::-;22829:411;;;:::o;46783:83::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;46854:4:::1;46835:16;;:23;;;;;;;;;;;;;;;;;;46783:83::o:0;47139:173::-;47209:16;47264:18;;;;;;;;;;;47245:52;;;47298:5;47245:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47238:66;;47139:173;;;:::o;35498:113::-;35559:7;35586:10;:17;;;;35579:24;;35498:113;:::o;46330:118::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;46435:5:::1;46415:10;:17;46426:5;46415:17;;;;;;;;;;;;;;;:25;;;;46330:118:::0;;:::o;43652:32::-;;;;:::o;43611:34::-;;;;:::o;24196:339::-;24391:41;24410:12;:10;:12::i;:::-;24424:7;24391:18;:41::i;:::-;24383:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;24499:28;24509:4;24515:2;24519:7;24499:9;:28::i;:::-;24196:339;;;:::o;35166:256::-;35263:7;35299:23;35316:5;35299:16;:23::i;:::-;35291:5;:31;35283:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;35388:12;:19;35401:5;35388:19;;;;;;;;;;;;;;;:26;35408:5;35388:26;;;;;;;;;;;;35381:33;;35166:256;;;;:::o;24606:185::-;24744:39;24761:4;24767:2;24771:7;24744:39;;;;;;;;;;;;:16;:39::i;:::-;24606:185;;;:::o;35688:233::-;35763:7;35799:30;:28;:30::i;:::-;35791:5;:38;35783:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;35896:10;35907:5;35896:17;;;;;;;;;;;;;;;;;;;;;;;;35889:24;;35688:233;;;:::o;46578:104::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;46667:7:::1;46651:13;:23;;;;;;;;;;;;:::i;:::-;;46578:104:::0;:::o;43734:33::-;;;;;;;;;;;;;:::o;21441:239::-;21513:7;21533:13;21549:7;:16;21557:7;21549:16;;;;;;;;;;;;;;;;;;;;;21533:32;;21601:1;21584:19;;:5;:19;;;;21576:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;21667:5;21660:12;;;21441:239;;;:::o;21171:208::-;21243:7;21288:1;21271:19;;:5;:19;;;;21263:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;21355:9;:16;21365:5;21355:16;;;;;;;;;;;;;;;;21348:23;;21171:208;;;:::o;42661:94::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;42726:21:::1;42744:1;42726:9;:21::i;:::-;42661:94::o:0;47052:79::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;47118:5:::1;47102:13;;:21;;;;;;;;;;;;;;;;;;47052:79::o:0;47320:342::-;47381:16;47410:18;47431:16;47441:5;47431:9;:16::i;:::-;47410:37;;47458:25;47500:10;47486:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47458:53;;47527:9;47522:107;47542:10;47538:1;:14;47522:107;;;47588:29;47608:5;47615:1;47588:19;:29::i;:::-;47574:8;47583:1;47574:11;;;;;;;;;;;;;;;;;;;;;:43;;;;;47554:3;;;;;:::i;:::-;;;;47522:107;;;;47646:8;47639:15;;;;47320:342;;;:::o;47670:239::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;47731:13:::1;47771:1;47747:21;:25;;;;:::i;:::-;47731:41;;47799:2;;;;;;;;;;;47791:16;;:23;47808:5;47791:23;;;;;;;;;;;;;;;;;;;;;;;47783:32;;;::::0;::::1;;47842:2;;;;;;;;;;;47834:16;;:23;47851:5;47834:23;;;;;;;;;;;;;;;;;;;;;;;47826:32;;;::::0;::::1;;47885:2;;;;;;;;;;;47877:16;;:23;47894:5;47877:23;;;;;;;;;;;;;;;;;;;;;;;47869:32;;;::::0;::::1;;42301:1;47670:239::o:0;42010:87::-;42056:7;42083:6;;;;;;;;;;;42076:13;;42010:87;:::o;46690:85::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;46762:5:::1;46753:6;:14;;;;46690:85:::0;:::o;21916:104::-;21972:13;22005:7;21998:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21916:104;:::o;44301:1386::-;44362:14;44379:13;:11;:13::i;:::-;44362:30;;44403:22;44428:10;:22;44439:10;44428:22;;;;;;;;;;;;;;;;44403:47;;44461:17;44489:20;44543:1;44526:14;:18;:41;;;;;44565:2;44548:14;:19;44526:41;44522:142;;;44596:14;44584:26;;44650:2;44625:10;:22;44636:10;44625:22;;;;;;;;;;;;;;;:27;;;;44522:142;44676:31;44729:18;;;;;;;;;;;44710:52;;;44763:10;44710:64;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;44676:98;;44792:9;44787:233;44807:14;:21;44803:1;:25;44787:233;;;44855:14;:33;44870:14;44885:1;44870:17;;;;;;;;;;;;;;;;;;;;;;44855:33;;;;;;;;;;;;;;;;;;;;;44850:159;;44933:1;44921:9;:13;;;;:::i;:::-;44909:25;;44989:4;44953:14;:33;44968:14;44983:1;44968:17;;;;;;;;;;;;;;;;;;;;;;44953:33;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;44850:159;44830:3;;;;;:::i;:::-;;;;44787:233;;;;45053:1;45036:14;:18;:47;;;;45082:1;45058:14;:21;:25;45036:47;45032:211;;;45108:16;;;;;;;;;;;45100:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;45032:211;;;45198:13;;;;;;;;;;;45190:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;45032:211;45271:9;45259;:21;45255:90;;;45324:9;45312;:21;;;;:::i;:::-;45297:36;;45255:90;45357:18;45390:12;45378:9;:24;;;;:::i;:::-;45357:45;;45446:10;;45432;45423:6;:19;;;;:::i;:::-;:33;;45415:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;45527:12;45518:6;;:21;;;;:::i;:::-;45505:9;:34;;45497:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;45588:9;45583:97;45603:10;45599:1;:14;45583:97;;;45635:33;45645:10;45666:1;45657:6;:10;;;;:::i;:::-;45635:9;:33::i;:::-;45615:3;;;;;:::i;:::-;;;;45583:97;;;;44301:1386;;;;;;;:::o;23599:295::-;23714:12;:10;:12::i;:::-;23702:24;;:8;:24;;;;23694:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;23814:8;23769:18;:32;23788:12;:10;:12::i;:::-;23769:32;;;;;;;;;;;;;;;:42;23802:8;23769:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;23867:8;23838:48;;23853:12;:10;:12::i;:::-;23838:48;;;23877:8;23838:48;;;;;;:::i;:::-;;;;;;;;23599:295;;:::o;46198:124::-;46267:4;46291:14;:23;46306:7;46291:23;;;;;;;;;;;;;;;;;;;;;46284:30;;46198:124;;;:::o;46965:79::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;47032:4:::1;47016:13;;:20;;;;;;;;;;;;;;;;;;46965:79::o:0;24862:328::-;25037:41;25056:12;:10;:12::i;:::-;25070:7;25037:18;:41::i;:::-;25029:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;25143:39;25157:4;25163:2;25167:7;25176:5;25143:13;:39::i;:::-;24862:328;;;;:::o;22091:334::-;22164:13;22198:16;22206:7;22198;:16::i;:::-;22190:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;22279:21;22303:10;:8;:10::i;:::-;22279:34;;22355:1;22337:7;22331:21;:25;:86;;;;;;;;;;;;;;;;;22383:7;22392:18;:7;:16;:18::i;:::-;22366:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22331:86;22324:93;;;22091:334;;;:::o;43577:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;43776:45::-;;;;;;;;;;;;;;;;;:::o;45695:495::-;45772:14;45789:13;:11;:13::i;:::-;45772:30;;45813:12;45856:2;;;;;;;;;;;45842:16;;:10;:16;;;:36;;;;45876:2;;;;;;;;;;;45862:16;;:10;:16;;;45842:36;:56;;;;45896:2;;;;;;;;;;;45882:16;;:10;:16;;;45842:56;45838:103;;;45925:4;45915:14;;45838:103;45959:7;45951:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;46031:10;;46018:9;46009:6;:18;;;;:::i;:::-;:32;;46001:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;46089:9;46084:99;46108:9;46104:1;:13;46084:99;;;46139:32;46149:9;46169:1;46160:6;:10;;;;:::i;:::-;46139:9;:32::i;:::-;46119:3;;;;;:::i;:::-;;;;46084:99;;;;45695:495;;;;:::o;43691:36::-;;;;;;;;;;;;;:::o;23965:164::-;24062:4;24086:18;:25;24105:5;24086:25;;;;;;;;;;;;;;;:35;24112:8;24086:35;;;;;;;;;;;;;;;;;;;;;;;;;24079:42;;23965:164;;;;:::o;46874:83::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;46944:5:::1;46925:16;;:24;;;;;;;;;;;;;;;;;;46874:83::o:0;42910:192::-;42241:12;:10;:12::i;:::-;42230:23;;:7;:5;:7::i;:::-;:23;;;42222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;43019:1:::1;42999:22;;:8;:22;;;;42991:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;43075:19;43085:8;43075:9;:19::i;:::-;42910:192:::0;:::o;43828:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;20802:305::-;20904:4;20956:25;20941:40;;;:11;:40;;;;:105;;;;21013:33;20998:48;;;:11;:48;;;;20941:105;:158;;;;21063:36;21087:11;21063:23;:36::i;:::-;20941:158;20921:178;;20802:305;;;:::o;26700:127::-;26765:4;26817:1;26789:30;;:7;:16;26797:7;26789:16;;;;;;;;;;;;;;;;;;;;;:30;;;;26782:37;;26700:127;;;:::o;16204:98::-;16257:7;16284:10;16277:17;;16204:98;:::o;30682:174::-;30784:2;30757:15;:24;30773:7;30757:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;30840:7;30836:2;30802:46;;30811:23;30826:7;30811:14;:23::i;:::-;30802:46;;;;;;;;;;;;30682:174;;:::o;26994:348::-;27087:4;27112:16;27120:7;27112;:16::i;:::-;27104:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;27188:13;27204:23;27219:7;27204:14;:23::i;:::-;27188:39;;27257:5;27246:16;;:7;:16;;;:51;;;;27290:7;27266:31;;:20;27278:7;27266:11;:20::i;:::-;:31;;;27246:51;:87;;;;27301:32;27318:5;27325:7;27301:16;:32::i;:::-;27246:87;27238:96;;;26994:348;;;;:::o;29986:578::-;30145:4;30118:31;;:23;30133:7;30118:14;:23::i;:::-;:31;;;30110:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;30228:1;30214:16;;:2;:16;;;;30206:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;30284:39;30305:4;30311:2;30315:7;30284:20;:39::i;:::-;30388:29;30405:1;30409:7;30388:8;:29::i;:::-;30449:1;30430:9;:15;30440:4;30430:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;30478:1;30461:9;:13;30471:2;30461:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;30509:2;30490:7;:16;30498:7;30490:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;30548:7;30544:2;30529:27;;30538:4;30529:27;;;;;;;;;;;;29986:578;;;:::o;43110:173::-;43166:16;43185:6;;;;;;;;;;;43166:25;;43211:8;43202:6;;:17;;;;;;;;;;;;;;;;;;43266:8;43235:40;;43256:8;43235:40;;;;;;;;;;;;43110:173;;:::o;27684:110::-;27760:26;27770:2;27774:7;27760:26;;;;;;;;;;;;:9;:26::i;:::-;27684:110;;:::o;26072:315::-;26229:28;26239:4;26245:2;26249:7;26229:9;:28::i;:::-;26276:48;26299:4;26305:2;26309:7;26318:5;26276:22;:48::i;:::-;26268:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;26072:315;;;;:::o;46456:114::-;46516:13;46549;46542:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46456:114;:::o;16737:723::-;16793:13;17023:1;17014:5;:10;17010:53;;;17041:10;;;;;;;;;;;;;;;;;;;;;17010:53;17073:12;17088:5;17073:20;;17104:14;17129:78;17144:1;17136:4;:9;17129:78;;17162:8;;;;;:::i;:::-;;;;17193:2;17185:10;;;;;:::i;:::-;;;17129:78;;;17217:19;17249:6;17239:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17217:39;;17267:154;17283:1;17274:5;:10;17267:154;;17311:1;17301:11;;;;;:::i;:::-;;;17378:2;17370:5;:10;;;;:::i;:::-;17357:2;:24;;;;:::i;:::-;17344:39;;17327:6;17334;17327:14;;;;;;;;;;;;;;;;;;;:56;;;;;;;;;;;17407:2;17398:11;;;;;:::i;:::-;;;17267:154;;;17445:6;17431:21;;;;;16737:723;;;;:::o;19300:157::-;19385:4;19424:25;19409:40;;;:11;:40;;;;19402:47;;19300:157;;;:::o;36534:589::-;36678:45;36705:4;36711:2;36715:7;36678:26;:45::i;:::-;36756:1;36740:18;;:4;:18;;;36736:187;;;36775:40;36807:7;36775:31;:40::i;:::-;36736:187;;;36845:2;36837:10;;:4;:10;;;36833:90;;36864:47;36897:4;36903:7;36864:32;:47::i;:::-;36833:90;36736:187;36951:1;36937:16;;:2;:16;;;36933:183;;;36970:45;37007:7;36970:36;:45::i;:::-;36933:183;;;37043:4;37037:10;;:2;:10;;;37033:83;;37064:40;37092:2;37096:7;37064:27;:40::i;:::-;37033:83;36933:183;36534:589;;;:::o;28021:321::-;28151:18;28157:2;28161:7;28151:5;:18::i;:::-;28202:54;28233:1;28237:2;28241:7;28250:5;28202:22;:54::i;:::-;28180:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;28021:321;;;:::o;31421:799::-;31576:4;31597:15;:2;:13;;;:15::i;:::-;31593:620;;;31649:2;31633:36;;;31670:12;:10;:12::i;:::-;31684:4;31690:7;31699:5;31633:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;31629:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31892:1;31875:6;:13;:18;31871:272;;;31918:60;;;;;;;;;;:::i;:::-;;;;;;;;31871:272;32093:6;32087:13;32078:6;32074:2;32070:15;32063:38;31629:529;31766:41;;;31756:51;;;:6;:51;;;;31749:58;;;;;31593:620;32197:4;32190:11;;31421:799;;;;;;;:::o;32792:126::-;;;;:::o;37846:164::-;37950:10;:17;;;;37923:15;:24;37939:7;37923:24;;;;;;;;;;;:44;;;;37978:10;37994:7;37978:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37846:164;:::o;38637:988::-;38903:22;38953:1;38928:22;38945:4;38928:16;:22::i;:::-;:26;;;;:::i;:::-;38903:51;;38965:18;38986:17;:26;39004:7;38986:26;;;;;;;;;;;;38965:47;;39133:14;39119:10;:28;39115:328;;39164:19;39186:12;:18;39199:4;39186:18;;;;;;;;;;;;;;;:34;39205:14;39186:34;;;;;;;;;;;;39164:56;;39270:11;39237:12;:18;39250:4;39237:18;;;;;;;;;;;;;;;:30;39256:10;39237:30;;;;;;;;;;;:44;;;;39387:10;39354:17;:30;39372:11;39354:30;;;;;;;;;;;:43;;;;39115:328;;39539:17;:26;39557:7;39539:26;;;;;;;;;;;39532:33;;;39583:12;:18;39596:4;39583:18;;;;;;;;;;;;;;;:34;39602:14;39583:34;;;;;;;;;;;39576:41;;;38637:988;;;;:::o;39920:1079::-;40173:22;40218:1;40198:10;:17;;;;:21;;;;:::i;:::-;40173:46;;40230:18;40251:15;:24;40267:7;40251:24;;;;;;;;;;;;40230:45;;40602:19;40624:10;40635:14;40624:26;;;;;;;;;;;;;;;;;;;;;;;;40602:48;;40688:11;40663:10;40674;40663:22;;;;;;;;;;;;;;;;;;;;;;;:36;;;;40799:10;40768:15;:28;40784:11;40768:28;;;;;;;;;;;:41;;;;40940:15;:24;40956:7;40940:24;;;;;;;;;;;40933:31;;;40975:10;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39920:1079;;;;:::o;37424:221::-;37509:14;37526:20;37543:2;37526:16;:20::i;:::-;37509:37;;37584:7;37557:12;:16;37570:2;37557:16;;;;;;;;;;;;;;;:24;37574:6;37557:24;;;;;;;;;;;:34;;;;37631:6;37602:17;:26;37620:7;37602:26;;;;;;;;;;;:35;;;;37424:221;;;:::o;28678:382::-;28772:1;28758:16;;:2;:16;;;;28750:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;28831:16;28839:7;28831;:16::i;:::-;28830:17;28822:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;28893:45;28922:1;28926:2;28930:7;28893:20;:45::i;:::-;28968:1;28951:9;:13;28961:2;28951:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;28999:2;28980:7;:16;28988:7;28980:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;29044:7;29040:2;29019:33;;29036:1;29019:33;;;;;;;;;;;;28678:382;;:::o;8240:387::-;8300:4;8508:12;8575:7;8563:20;8555:28;;8618:1;8611:4;:8;8604:15;;;8240:387;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:677:1:-;131:5;156:81;172:64;229:6;172:64;:::i;:::-;156:81;:::i;:::-;147:90;;257:5;286:6;279:5;272:21;320:4;313:5;309:16;302:23;;346:6;396:3;388:4;380:6;376:17;371:3;367:27;364:36;361:2;;;425:1;422;415:12;361:2;461:1;446:249;471:6;468:1;465:13;446:249;;;539:3;568:48;612:3;600:10;568:48;:::i;:::-;563:3;556:61;646:4;641:3;637:14;630:21;;680:4;675:3;671:14;664:21;;506:189;493:1;490;486:9;481:14;;446:249;;;450:14;137:564;;;;;;;:::o;707:343::-;784:5;809:65;825:48;866:6;825:48;:::i;:::-;809:65;:::i;:::-;800:74;;897:6;890:5;883:21;935:4;928:5;924:16;973:3;964:6;959:3;955:16;952:25;949:2;;;990:1;987;980:12;949:2;1003:41;1037:6;1032:3;1027;1003:41;:::i;:::-;790:260;;;;;;:::o;1056:345::-;1134:5;1159:66;1175:49;1217:6;1175:49;:::i;:::-;1159:66;:::i;:::-;1150:75;;1248:6;1241:5;1234:21;1286:4;1279:5;1275:16;1324:3;1315:6;1310:3;1306:16;1303:25;1300:2;;;1341:1;1338;1331:12;1300:2;1354:41;1388:6;1383:3;1378;1354:41;:::i;:::-;1140:261;;;;;;:::o;1407:139::-;1453:5;1491:6;1478:20;1469:29;;1507:33;1534:5;1507:33;:::i;:::-;1459:87;;;;:::o;1569:318::-;1651:5;1700:3;1693:4;1685:6;1681:17;1677:27;1667:2;;1718:1;1715;1708:12;1667:2;1751:6;1745:13;1776:105;1877:3;1869:6;1862:4;1854:6;1850:17;1776:105;:::i;:::-;1767:114;;1657:230;;;;;:::o;1893:133::-;1936:5;1974:6;1961:20;1952:29;;1990:30;2014:5;1990:30;:::i;:::-;1942:84;;;;:::o;2032:137::-;2077:5;2115:6;2102:20;2093:29;;2131:32;2157:5;2131:32;:::i;:::-;2083:86;;;;:::o;2175:141::-;2231:5;2262:6;2256:13;2247:22;;2278:32;2304:5;2278:32;:::i;:::-;2237:79;;;;:::o;2335:271::-;2390:5;2439:3;2432:4;2424:6;2420:17;2416:27;2406:2;;2457:1;2454;2447:12;2406:2;2497:6;2484:20;2522:78;2596:3;2588:6;2581:4;2573:6;2569:17;2522:78;:::i;:::-;2513:87;;2396:210;;;;;:::o;2626:273::-;2682:5;2731:3;2724:4;2716:6;2712:17;2708:27;2698:2;;2749:1;2746;2739:12;2698:2;2789:6;2776:20;2814:79;2889:3;2881:6;2874:4;2866:6;2862:17;2814:79;:::i;:::-;2805:88;;2688:211;;;;;:::o;2905:139::-;2951:5;2989:6;2976:20;2967:29;;3005:33;3032:5;3005:33;:::i;:::-;2957:87;;;;:::o;3050:143::-;3107:5;3138:6;3132:13;3123:22;;3154:33;3181:5;3154:33;:::i;:::-;3113:80;;;;:::o;3199:262::-;3258:6;3307:2;3295:9;3286:7;3282:23;3278:32;3275:2;;;3323:1;3320;3313:12;3275:2;3366:1;3391:53;3436:7;3427:6;3416:9;3412:22;3391:53;:::i;:::-;3381:63;;3337:117;3265:196;;;;:::o;3467:407::-;3535:6;3543;3592:2;3580:9;3571:7;3567:23;3563:32;3560:2;;;3608:1;3605;3598:12;3560:2;3651:1;3676:53;3721:7;3712:6;3701:9;3697:22;3676:53;:::i;:::-;3666:63;;3622:117;3778:2;3804:53;3849:7;3840:6;3829:9;3825:22;3804:53;:::i;:::-;3794:63;;3749:118;3550:324;;;;;:::o;3880:552::-;3957:6;3965;3973;4022:2;4010:9;4001:7;3997:23;3993:32;3990:2;;;4038:1;4035;4028:12;3990:2;4081:1;4106:53;4151:7;4142:6;4131:9;4127:22;4106:53;:::i;:::-;4096:63;;4052:117;4208:2;4234:53;4279:7;4270:6;4259:9;4255:22;4234:53;:::i;:::-;4224:63;;4179:118;4336:2;4362:53;4407:7;4398:6;4387:9;4383:22;4362:53;:::i;:::-;4352:63;;4307:118;3980:452;;;;;:::o;4438:809::-;4533:6;4541;4549;4557;4606:3;4594:9;4585:7;4581:23;4577:33;4574:2;;;4623:1;4620;4613:12;4574:2;4666:1;4691:53;4736:7;4727:6;4716:9;4712:22;4691:53;:::i;:::-;4681:63;;4637:117;4793:2;4819:53;4864:7;4855:6;4844:9;4840:22;4819:53;:::i;:::-;4809:63;;4764:118;4921:2;4947:53;4992:7;4983:6;4972:9;4968:22;4947:53;:::i;:::-;4937:63;;4892:118;5077:2;5066:9;5062:18;5049:32;5108:18;5100:6;5097:30;5094:2;;;5140:1;5137;5130:12;5094:2;5168:62;5222:7;5213:6;5202:9;5198:22;5168:62;:::i;:::-;5158:72;;5020:220;4564:683;;;;;;;:::o;5253:401::-;5318:6;5326;5375:2;5363:9;5354:7;5350:23;5346:32;5343:2;;;5391:1;5388;5381:12;5343:2;5434:1;5459:53;5504:7;5495:6;5484:9;5480:22;5459:53;:::i;:::-;5449:63;;5405:117;5561:2;5587:50;5629:7;5620:6;5609:9;5605:22;5587:50;:::i;:::-;5577:60;;5532:115;5333:321;;;;;:::o;5660:407::-;5728:6;5736;5785:2;5773:9;5764:7;5760:23;5756:32;5753:2;;;5801:1;5798;5791:12;5753:2;5844:1;5869:53;5914:7;5905:6;5894:9;5890:22;5869:53;:::i;:::-;5859:63;;5815:117;5971:2;5997:53;6042:7;6033:6;6022:9;6018:22;5997:53;:::i;:::-;5987:63;;5942:118;5743:324;;;;;:::o;6073:420::-;6168:6;6217:2;6205:9;6196:7;6192:23;6188:32;6185:2;;;6233:1;6230;6223:12;6185:2;6297:1;6286:9;6282:17;6276:24;6327:18;6319:6;6316:30;6313:2;;;6359:1;6356;6349:12;6313:2;6387:89;6468:7;6459:6;6448:9;6444:22;6387:89;:::i;:::-;6377:99;;6247:239;6175:318;;;;:::o;6499:260::-;6557:6;6606:2;6594:9;6585:7;6581:23;6577:32;6574:2;;;6622:1;6619;6612:12;6574:2;6665:1;6690:52;6734:7;6725:6;6714:9;6710:22;6690:52;:::i;:::-;6680:62;;6636:116;6564:195;;;;:::o;6765:282::-;6834:6;6883:2;6871:9;6862:7;6858:23;6854:32;6851:2;;;6899:1;6896;6889:12;6851:2;6942:1;6967:63;7022:7;7013:6;7002:9;6998:22;6967:63;:::i;:::-;6957:73;;6913:127;6841:206;;;;:::o;7053:375::-;7122:6;7171:2;7159:9;7150:7;7146:23;7142:32;7139:2;;;7187:1;7184;7177:12;7139:2;7258:1;7247:9;7243:17;7230:31;7288:18;7280:6;7277:30;7274:2;;;7320:1;7317;7310:12;7274:2;7348:63;7403:7;7394:6;7383:9;7379:22;7348:63;:::i;:::-;7338:73;;7201:220;7129:299;;;;:::o;7434:262::-;7493:6;7542:2;7530:9;7521:7;7517:23;7513:32;7510:2;;;7558:1;7555;7548:12;7510:2;7601:1;7626:53;7671:7;7662:6;7651:9;7647:22;7626:53;:::i;:::-;7616:63;;7572:117;7500:196;;;;:::o;7702:407::-;7770:6;7778;7827:2;7815:9;7806:7;7802:23;7798:32;7795:2;;;7843:1;7840;7833:12;7795:2;7886:1;7911:53;7956:7;7947:6;7936:9;7932:22;7911:53;:::i;:::-;7901:63;;7857:117;8013:2;8039:53;8084:7;8075:6;8064:9;8060:22;8039:53;:::i;:::-;8029:63;;7984:118;7785:324;;;;;:::o;8115:179::-;8184:10;8205:46;8247:3;8239:6;8205:46;:::i;:::-;8283:4;8278:3;8274:14;8260:28;;8195:99;;;;:::o;8300:118::-;8387:24;8405:5;8387:24;:::i;:::-;8382:3;8375:37;8365:53;;:::o;8454:732::-;8573:3;8602:54;8650:5;8602:54;:::i;:::-;8672:86;8751:6;8746:3;8672:86;:::i;:::-;8665:93;;8782:56;8832:5;8782:56;:::i;:::-;8861:7;8892:1;8877:284;8902:6;8899:1;8896:13;8877:284;;;8978:6;8972:13;9005:63;9064:3;9049:13;9005:63;:::i;:::-;8998:70;;9091:60;9144:6;9091:60;:::i;:::-;9081:70;;8937:224;8924:1;8921;8917:9;8912:14;;8877:284;;;8881:14;9177:3;9170:10;;8578:608;;;;;;;:::o;9192:109::-;9273:21;9288:5;9273:21;:::i;:::-;9268:3;9261:34;9251:50;;:::o;9307:360::-;9393:3;9421:38;9453:5;9421:38;:::i;:::-;9475:70;9538:6;9533:3;9475:70;:::i;:::-;9468:77;;9554:52;9599:6;9594:3;9587:4;9580:5;9576:16;9554:52;:::i;:::-;9631:29;9653:6;9631:29;:::i;:::-;9626:3;9622:39;9615:46;;9397:270;;;;;:::o;9673:364::-;9761:3;9789:39;9822:5;9789:39;:::i;:::-;9844:71;9908:6;9903:3;9844:71;:::i;:::-;9837:78;;9924:52;9969:6;9964:3;9957:4;9950:5;9946:16;9924:52;:::i;:::-;10001:29;10023:6;10001:29;:::i;:::-;9996:3;9992:39;9985:46;;9765:272;;;;;:::o;10043:377::-;10149:3;10177:39;10210:5;10177:39;:::i;:::-;10232:89;10314:6;10309:3;10232:89;:::i;:::-;10225:96;;10330:52;10375:6;10370:3;10363:4;10356:5;10352:16;10330:52;:::i;:::-;10407:6;10402:3;10398:16;10391:23;;10153:267;;;;;:::o;10426:366::-;10568:3;10589:67;10653:2;10648:3;10589:67;:::i;:::-;10582:74;;10665:93;10754:3;10665:93;:::i;:::-;10783:2;10778:3;10774:12;10767:19;;10572:220;;;:::o;10798:366::-;10940:3;10961:67;11025:2;11020:3;10961:67;:::i;:::-;10954:74;;11037:93;11126:3;11037:93;:::i;:::-;11155:2;11150:3;11146:12;11139:19;;10944:220;;;:::o;11170:366::-;11312:3;11333:67;11397:2;11392:3;11333:67;:::i;:::-;11326:74;;11409:93;11498:3;11409:93;:::i;:::-;11527:2;11522:3;11518:12;11511:19;;11316:220;;;:::o;11542:366::-;11684:3;11705:67;11769:2;11764:3;11705:67;:::i;:::-;11698:74;;11781:93;11870:3;11781:93;:::i;:::-;11899:2;11894:3;11890:12;11883:19;;11688:220;;;:::o;11914:366::-;12056:3;12077:67;12141:2;12136:3;12077:67;:::i;:::-;12070:74;;12153:93;12242:3;12153:93;:::i;:::-;12271:2;12266:3;12262:12;12255:19;;12060:220;;;:::o;12286:366::-;12428:3;12449:67;12513:2;12508:3;12449:67;:::i;:::-;12442:74;;12525:93;12614:3;12525:93;:::i;:::-;12643:2;12638:3;12634:12;12627:19;;12432:220;;;:::o;12658:366::-;12800:3;12821:67;12885:2;12880:3;12821:67;:::i;:::-;12814:74;;12897:93;12986:3;12897:93;:::i;:::-;13015:2;13010:3;13006:12;12999:19;;12804:220;;;:::o;13030:366::-;13172:3;13193:67;13257:2;13252:3;13193:67;:::i;:::-;13186:74;;13269:93;13358:3;13269:93;:::i;:::-;13387:2;13382:3;13378:12;13371:19;;13176:220;;;:::o;13402:366::-;13544:3;13565:67;13629:2;13624:3;13565:67;:::i;:::-;13558:74;;13641:93;13730:3;13641:93;:::i;:::-;13759:2;13754:3;13750:12;13743:19;;13548:220;;;:::o;13774:366::-;13916:3;13937:67;14001:2;13996:3;13937:67;:::i;:::-;13930:74;;14013:93;14102:3;14013:93;:::i;:::-;14131:2;14126:3;14122:12;14115:19;;13920:220;;;:::o;14146:366::-;14288:3;14309:67;14373:2;14368:3;14309:67;:::i;:::-;14302:74;;14385:93;14474:3;14385:93;:::i;:::-;14503:2;14498:3;14494:12;14487:19;;14292:220;;;:::o;14518:366::-;14660:3;14681:67;14745:2;14740:3;14681:67;:::i;:::-;14674:74;;14757:93;14846:3;14757:93;:::i;:::-;14875:2;14870:3;14866:12;14859:19;;14664:220;;;:::o;14890:366::-;15032:3;15053:67;15117:2;15112:3;15053:67;:::i;:::-;15046:74;;15129:93;15218:3;15129:93;:::i;:::-;15247:2;15242:3;15238:12;15231:19;;15036:220;;;:::o;15262:366::-;15404:3;15425:67;15489:2;15484:3;15425:67;:::i;:::-;15418:74;;15501:93;15590:3;15501:93;:::i;:::-;15619:2;15614:3;15610:12;15603:19;;15408:220;;;:::o;15634:366::-;15776:3;15797:67;15861:2;15856:3;15797:67;:::i;:::-;15790:74;;15873:93;15962:3;15873:93;:::i;:::-;15991:2;15986:3;15982:12;15975:19;;15780:220;;;:::o;16006:366::-;16148:3;16169:67;16233:2;16228:3;16169:67;:::i;:::-;16162:74;;16245:93;16334:3;16245:93;:::i;:::-;16363:2;16358:3;16354:12;16347:19;;16152:220;;;:::o;16378:366::-;16520:3;16541:67;16605:2;16600:3;16541:67;:::i;:::-;16534:74;;16617:93;16706:3;16617:93;:::i;:::-;16735:2;16730:3;16726:12;16719:19;;16524:220;;;:::o;16750:366::-;16892:3;16913:67;16977:2;16972:3;16913:67;:::i;:::-;16906:74;;16989:93;17078:3;16989:93;:::i;:::-;17107:2;17102:3;17098:12;17091:19;;16896:220;;;:::o;17122:366::-;17264:3;17285:67;17349:2;17344:3;17285:67;:::i;:::-;17278:74;;17361:93;17450:3;17361:93;:::i;:::-;17479:2;17474:3;17470:12;17463:19;;17268:220;;;:::o;17494:366::-;17636:3;17657:67;17721:2;17716:3;17657:67;:::i;:::-;17650:74;;17733:93;17822:3;17733:93;:::i;:::-;17851:2;17846:3;17842:12;17835:19;;17640:220;;;:::o;17866:366::-;18008:3;18029:67;18093:2;18088:3;18029:67;:::i;:::-;18022:74;;18105:93;18194:3;18105:93;:::i;:::-;18223:2;18218:3;18214:12;18207:19;;18012:220;;;:::o;18238:366::-;18380:3;18401:67;18465:2;18460:3;18401:67;:::i;:::-;18394:74;;18477:93;18566:3;18477:93;:::i;:::-;18595:2;18590:3;18586:12;18579:19;;18384:220;;;:::o;18610:366::-;18752:3;18773:67;18837:2;18832:3;18773:67;:::i;:::-;18766:74;;18849:93;18938:3;18849:93;:::i;:::-;18967:2;18962:3;18958:12;18951:19;;18756:220;;;:::o;18982:108::-;19059:24;19077:5;19059:24;:::i;:::-;19054:3;19047:37;19037:53;;:::o;19096:118::-;19183:24;19201:5;19183:24;:::i;:::-;19178:3;19171:37;19161:53;;:::o;19220:435::-;19400:3;19422:95;19513:3;19504:6;19422:95;:::i;:::-;19415:102;;19534:95;19625:3;19616:6;19534:95;:::i;:::-;19527:102;;19646:3;19639:10;;19404:251;;;;;:::o;19661:222::-;19754:4;19792:2;19781:9;19777:18;19769:26;;19805:71;19873:1;19862:9;19858:17;19849:6;19805:71;:::i;:::-;19759:124;;;;:::o;19889:640::-;20084:4;20122:3;20111:9;20107:19;20099:27;;20136:71;20204:1;20193:9;20189:17;20180:6;20136:71;:::i;:::-;20217:72;20285:2;20274:9;20270:18;20261:6;20217:72;:::i;:::-;20299;20367:2;20356:9;20352:18;20343:6;20299:72;:::i;:::-;20418:9;20412:4;20408:20;20403:2;20392:9;20388:18;20381:48;20446:76;20517:4;20508:6;20446:76;:::i;:::-;20438:84;;20089:440;;;;;;;:::o;20535:373::-;20678:4;20716:2;20705:9;20701:18;20693:26;;20765:9;20759:4;20755:20;20751:1;20740:9;20736:17;20729:47;20793:108;20896:4;20887:6;20793:108;:::i;:::-;20785:116;;20683:225;;;;:::o;20914:210::-;21001:4;21039:2;21028:9;21024:18;21016:26;;21052:65;21114:1;21103:9;21099:17;21090:6;21052:65;:::i;:::-;21006:118;;;;:::o;21130:313::-;21243:4;21281:2;21270:9;21266:18;21258:26;;21330:9;21324:4;21320:20;21316:1;21305:9;21301:17;21294:47;21358:78;21431:4;21422:6;21358:78;:::i;:::-;21350:86;;21248:195;;;;:::o;21449:419::-;21615:4;21653:2;21642:9;21638:18;21630:26;;21702:9;21696:4;21692:20;21688:1;21677:9;21673:17;21666:47;21730:131;21856:4;21730:131;:::i;:::-;21722:139;;21620:248;;;:::o;21874:419::-;22040:4;22078:2;22067:9;22063:18;22055:26;;22127:9;22121:4;22117:20;22113:1;22102:9;22098:17;22091:47;22155:131;22281:4;22155:131;:::i;:::-;22147:139;;22045:248;;;:::o;22299:419::-;22465:4;22503:2;22492:9;22488:18;22480:26;;22552:9;22546:4;22542:20;22538:1;22527:9;22523:17;22516:47;22580:131;22706:4;22580:131;:::i;:::-;22572:139;;22470:248;;;:::o;22724:419::-;22890:4;22928:2;22917:9;22913:18;22905:26;;22977:9;22971:4;22967:20;22963:1;22952:9;22948:17;22941:47;23005:131;23131:4;23005:131;:::i;:::-;22997:139;;22895:248;;;:::o;23149:419::-;23315:4;23353:2;23342:9;23338:18;23330:26;;23402:9;23396:4;23392:20;23388:1;23377:9;23373:17;23366:47;23430:131;23556:4;23430:131;:::i;:::-;23422:139;;23320:248;;;:::o;23574:419::-;23740:4;23778:2;23767:9;23763:18;23755:26;;23827:9;23821:4;23817:20;23813:1;23802:9;23798:17;23791:47;23855:131;23981:4;23855:131;:::i;:::-;23847:139;;23745:248;;;:::o;23999:419::-;24165:4;24203:2;24192:9;24188:18;24180:26;;24252:9;24246:4;24242:20;24238:1;24227:9;24223:17;24216:47;24280:131;24406:4;24280:131;:::i;:::-;24272:139;;24170:248;;;:::o;24424:419::-;24590:4;24628:2;24617:9;24613:18;24605:26;;24677:9;24671:4;24667:20;24663:1;24652:9;24648:17;24641:47;24705:131;24831:4;24705:131;:::i;:::-;24697:139;;24595:248;;;:::o;24849:419::-;25015:4;25053:2;25042:9;25038:18;25030:26;;25102:9;25096:4;25092:20;25088:1;25077:9;25073:17;25066:47;25130:131;25256:4;25130:131;:::i;:::-;25122:139;;25020:248;;;:::o;25274:419::-;25440:4;25478:2;25467:9;25463:18;25455:26;;25527:9;25521:4;25517:20;25513:1;25502:9;25498:17;25491:47;25555:131;25681:4;25555:131;:::i;:::-;25547:139;;25445:248;;;:::o;25699:419::-;25865:4;25903:2;25892:9;25888:18;25880:26;;25952:9;25946:4;25942:20;25938:1;25927:9;25923:17;25916:47;25980:131;26106:4;25980:131;:::i;:::-;25972:139;;25870:248;;;:::o;26124:419::-;26290:4;26328:2;26317:9;26313:18;26305:26;;26377:9;26371:4;26367:20;26363:1;26352:9;26348:17;26341:47;26405:131;26531:4;26405:131;:::i;:::-;26397:139;;26295:248;;;:::o;26549:419::-;26715:4;26753:2;26742:9;26738:18;26730:26;;26802:9;26796:4;26792:20;26788:1;26777:9;26773:17;26766:47;26830:131;26956:4;26830:131;:::i;:::-;26822:139;;26720:248;;;:::o;26974:419::-;27140:4;27178:2;27167:9;27163:18;27155:26;;27227:9;27221:4;27217:20;27213:1;27202:9;27198:17;27191:47;27255:131;27381:4;27255:131;:::i;:::-;27247:139;;27145:248;;;:::o;27399:419::-;27565:4;27603:2;27592:9;27588:18;27580:26;;27652:9;27646:4;27642:20;27638:1;27627:9;27623:17;27616:47;27680:131;27806:4;27680:131;:::i;:::-;27672:139;;27570:248;;;:::o;27824:419::-;27990:4;28028:2;28017:9;28013:18;28005:26;;28077:9;28071:4;28067:20;28063:1;28052:9;28048:17;28041:47;28105:131;28231:4;28105:131;:::i;:::-;28097:139;;27995:248;;;:::o;28249:419::-;28415:4;28453:2;28442:9;28438:18;28430:26;;28502:9;28496:4;28492:20;28488:1;28477:9;28473:17;28466:47;28530:131;28656:4;28530:131;:::i;:::-;28522:139;;28420:248;;;:::o;28674:419::-;28840:4;28878:2;28867:9;28863:18;28855:26;;28927:9;28921:4;28917:20;28913:1;28902:9;28898:17;28891:47;28955:131;29081:4;28955:131;:::i;:::-;28947:139;;28845:248;;;:::o;29099:419::-;29265:4;29303:2;29292:9;29288:18;29280:26;;29352:9;29346:4;29342:20;29338:1;29327:9;29323:17;29316:47;29380:131;29506:4;29380:131;:::i;:::-;29372:139;;29270:248;;;:::o;29524:419::-;29690:4;29728:2;29717:9;29713:18;29705:26;;29777:9;29771:4;29767:20;29763:1;29752:9;29748:17;29741:47;29805:131;29931:4;29805:131;:::i;:::-;29797:139;;29695:248;;;:::o;29949:419::-;30115:4;30153:2;30142:9;30138:18;30130:26;;30202:9;30196:4;30192:20;30188:1;30177:9;30173:17;30166:47;30230:131;30356:4;30230:131;:::i;:::-;30222:139;;30120:248;;;:::o;30374:419::-;30540:4;30578:2;30567:9;30563:18;30555:26;;30627:9;30621:4;30617:20;30613:1;30602:9;30598:17;30591:47;30655:131;30781:4;30655:131;:::i;:::-;30647:139;;30545:248;;;:::o;30799:419::-;30965:4;31003:2;30992:9;30988:18;30980:26;;31052:9;31046:4;31042:20;31038:1;31027:9;31023:17;31016:47;31080:131;31206:4;31080:131;:::i;:::-;31072:139;;30970:248;;;:::o;31224:222::-;31317:4;31355:2;31344:9;31340:18;31332:26;;31368:71;31436:1;31425:9;31421:17;31412:6;31368:71;:::i;:::-;31322:124;;;;:::o;31452:129::-;31486:6;31513:20;;:::i;:::-;31503:30;;31542:33;31570:4;31562:6;31542:33;:::i;:::-;31493:88;;;:::o;31587:75::-;31620:6;31653:2;31647:9;31637:19;;31627:35;:::o;31668:311::-;31745:4;31835:18;31827:6;31824:30;31821:2;;;31857:18;;:::i;:::-;31821:2;31907:4;31899:6;31895:17;31887:25;;31967:4;31961;31957:15;31949:23;;31750:229;;;:::o;31985:307::-;32046:4;32136:18;32128:6;32125:30;32122:2;;;32158:18;;:::i;:::-;32122:2;32196:29;32218:6;32196:29;:::i;:::-;32188:37;;32280:4;32274;32270:15;32262:23;;32051:241;;;:::o;32298:308::-;32360:4;32450:18;32442:6;32439:30;32436:2;;;32472:18;;:::i;:::-;32436:2;32510:29;32532:6;32510:29;:::i;:::-;32502:37;;32594:4;32588;32584:15;32576:23;;32365:241;;;:::o;32612:132::-;32679:4;32702:3;32694:11;;32732:4;32727:3;32723:14;32715:22;;32684:60;;;:::o;32750:114::-;32817:6;32851:5;32845:12;32835:22;;32824:40;;;:::o;32870:98::-;32921:6;32955:5;32949:12;32939:22;;32928:40;;;:::o;32974:99::-;33026:6;33060:5;33054:12;33044:22;;33033:40;;;:::o;33079:113::-;33149:4;33181;33176:3;33172:14;33164:22;;33154:38;;;:::o;33198:184::-;33297:11;33331:6;33326:3;33319:19;33371:4;33366:3;33362:14;33347:29;;33309:73;;;;:::o;33388:168::-;33471:11;33505:6;33500:3;33493:19;33545:4;33540:3;33536:14;33521:29;;33483:73;;;;:::o;33562:169::-;33646:11;33680:6;33675:3;33668:19;33720:4;33715:3;33711:14;33696:29;;33658:73;;;;:::o;33737:148::-;33839:11;33876:3;33861:18;;33851:34;;;;:::o;33891:305::-;33931:3;33950:20;33968:1;33950:20;:::i;:::-;33945:25;;33984:20;34002:1;33984:20;:::i;:::-;33979:25;;34138:1;34070:66;34066:74;34063:1;34060:81;34057:2;;;34144:18;;:::i;:::-;34057:2;34188:1;34185;34181:9;34174:16;;33935:261;;;;:::o;34202:185::-;34242:1;34259:20;34277:1;34259:20;:::i;:::-;34254:25;;34293:20;34311:1;34293:20;:::i;:::-;34288:25;;34332:1;34322:2;;34337:18;;:::i;:::-;34322:2;34379:1;34376;34372:9;34367:14;;34244:143;;;;:::o;34393:348::-;34433:7;34456:20;34474:1;34456:20;:::i;:::-;34451:25;;34490:20;34508:1;34490:20;:::i;:::-;34485:25;;34678:1;34610:66;34606:74;34603:1;34600:81;34595:1;34588:9;34581:17;34577:105;34574:2;;;34685:18;;:::i;:::-;34574:2;34733:1;34730;34726:9;34715:20;;34441:300;;;;:::o;34747:191::-;34787:4;34807:20;34825:1;34807:20;:::i;:::-;34802:25;;34841:20;34859:1;34841:20;:::i;:::-;34836:25;;34880:1;34877;34874:8;34871:2;;;34885:18;;:::i;:::-;34871:2;34930:1;34927;34923:9;34915:17;;34792:146;;;;:::o;34944:96::-;34981:7;35010:24;35028:5;35010:24;:::i;:::-;34999:35;;34989:51;;;:::o;35046:90::-;35080:7;35123:5;35116:13;35109:21;35098:32;;35088:48;;;:::o;35142:149::-;35178:7;35218:66;35211:5;35207:78;35196:89;;35186:105;;;:::o;35297:126::-;35334:7;35374:42;35367:5;35363:54;35352:65;;35342:81;;;:::o;35429:77::-;35466:7;35495:5;35484:16;;35474:32;;;:::o;35512:154::-;35596:6;35591:3;35586;35573:30;35658:1;35649:6;35644:3;35640:16;35633:27;35563:103;;;:::o;35672:307::-;35740:1;35750:113;35764:6;35761:1;35758:13;35750:113;;;35849:1;35844:3;35840:11;35834:18;35830:1;35825:3;35821:11;35814:39;35786:2;35783:1;35779:10;35774:15;;35750:113;;;35881:6;35878:1;35875:13;35872:2;;;35961:1;35952:6;35947:3;35943:16;35936:27;35872:2;35721:258;;;;:::o;35985:320::-;36029:6;36066:1;36060:4;36056:12;36046:22;;36113:1;36107:4;36103:12;36134:18;36124:2;;36190:4;36182:6;36178:17;36168:27;;36124:2;36252;36244:6;36241:14;36221:18;36218:38;36215:2;;;36271:18;;:::i;:::-;36215:2;36036:269;;;;:::o;36311:281::-;36394:27;36416:4;36394:27;:::i;:::-;36386:6;36382:40;36524:6;36512:10;36509:22;36488:18;36476:10;36473:34;36470:62;36467:2;;;36535:18;;:::i;:::-;36467:2;36575:10;36571:2;36564:22;36354:238;;;:::o;36598:233::-;36637:3;36660:24;36678:5;36660:24;:::i;:::-;36651:33;;36706:66;36699:5;36696:77;36693:2;;;36776:18;;:::i;:::-;36693:2;36823:1;36816:5;36812:13;36805:20;;36641:190;;;:::o;36837:176::-;36869:1;36886:20;36904:1;36886:20;:::i;:::-;36881:25;;36920:20;36938:1;36920:20;:::i;:::-;36915:25;;36959:1;36949:2;;36964:18;;:::i;:::-;36949:2;37005:1;37002;36998:9;36993:14;;36871:142;;;;:::o;37019:180::-;37067:77;37064:1;37057:88;37164:4;37161:1;37154:15;37188:4;37185:1;37178:15;37205:180;37253:77;37250:1;37243:88;37350:4;37347:1;37340:15;37374:4;37371:1;37364:15;37391:180;37439:77;37436:1;37429:88;37536:4;37533:1;37526:15;37560:4;37557:1;37550:15;37577:180;37625:77;37622:1;37615:88;37722:4;37719:1;37712:15;37746:4;37743:1;37736:15;37763:102;37804:6;37855:2;37851:7;37846:2;37839:5;37835:14;37831:28;37821:38;;37811:54;;;:::o;37871:230::-;38011:34;38007:1;37999:6;37995:14;37988:58;38080:13;38075:2;38067:6;38063:15;38056:38;37977:124;:::o;38107:237::-;38247:34;38243:1;38235:6;38231:14;38224:58;38316:20;38311:2;38303:6;38299:15;38292:45;38213:131;:::o;38350:225::-;38490:34;38486:1;38478:6;38474:14;38467:58;38559:8;38554:2;38546:6;38542:15;38535:33;38456:119;:::o;38581:178::-;38721:30;38717:1;38709:6;38705:14;38698:54;38687:72;:::o;38765:223::-;38905:34;38901:1;38893:6;38889:14;38882:58;38974:6;38969:2;38961:6;38957:15;38950:31;38871:117;:::o;38994:169::-;39134:21;39130:1;39122:6;39118:14;39111:45;39100:63;:::o;39169:175::-;39309:27;39305:1;39297:6;39293:14;39286:51;39275:69;:::o;39350:169::-;39490:21;39486:1;39478:6;39474:14;39467:45;39456:63;:::o;39525:231::-;39665:34;39661:1;39653:6;39649:14;39642:58;39734:14;39729:2;39721:6;39717:15;39710:39;39631:125;:::o;39762:243::-;39902:34;39898:1;39890:6;39886:14;39879:58;39971:26;39966:2;39958:6;39954:15;39947:51;39868:137;:::o;40011:229::-;40151:34;40147:1;40139:6;40135:14;40128:58;40220:12;40215:2;40207:6;40203:15;40196:37;40117:123;:::o;40246:228::-;40386:34;40382:1;40374:6;40370:14;40363:58;40455:11;40450:2;40442:6;40438:15;40431:36;40352:122;:::o;40480:165::-;40620:17;40616:1;40608:6;40604:14;40597:41;40586:59;:::o;40651:182::-;40791:34;40787:1;40779:6;40775:14;40768:58;40757:76;:::o;40839:231::-;40979:34;40975:1;40967:6;40963:14;40956:58;41048:14;41043:2;41035:6;41031:15;41024:39;40945:125;:::o;41076:182::-;41216:34;41212:1;41204:6;41200:14;41193:58;41182:76;:::o;41264:228::-;41404:34;41400:1;41392:6;41388:14;41381:58;41473:11;41468:2;41460:6;41456:15;41449:36;41370:122;:::o;41498:234::-;41638:34;41634:1;41626:6;41622:14;41615:58;41707:17;41702:2;41694:6;41690:15;41683:42;41604:128;:::o;41738:220::-;41878:34;41874:1;41866:6;41862:14;41855:58;41947:3;41942:2;41934:6;41930:15;41923:28;41844:114;:::o;41964:176::-;42104:28;42100:1;42092:6;42088:14;42081:52;42070:70;:::o;42146:236::-;42286:34;42282:1;42274:6;42270:14;42263:58;42355:19;42350:2;42342:6;42338:15;42331:44;42252:130;:::o;42388:175::-;42528:27;42524:1;42516:6;42512:14;42505:51;42494:69;:::o;42569:231::-;42709:34;42705:1;42697:6;42693:14;42686:58;42778:14;42773:2;42765:6;42761:15;42754:39;42675:125;:::o;42806:122::-;42879:24;42897:5;42879:24;:::i;:::-;42872:5;42869:35;42859:2;;42918:1;42915;42908:12;42859:2;42849:79;:::o;42934:116::-;43004:21;43019:5;43004:21;:::i;:::-;42997:5;42994:32;42984:2;;43040:1;43037;43030:12;42984:2;42974:76;:::o;43056:120::-;43128:23;43145:5;43128:23;:::i;:::-;43121:5;43118:34;43108:2;;43166:1;43163;43156:12;43108:2;43098:78;:::o;43182:122::-;43255:24;43273:5;43255:24;:::i;:::-;43248:5;43245:35;43235:2;;43294:1;43291;43284:12;43235:2;43225:79;:::o
Swarm Source
ipfs://20e0de8b78c4c73a889ffaece31dce353c99f0307d4c0e23edb61e534906601a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.