interface IERC721Legacy {
    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     *
     * 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}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Transfers `tokenId` token from msg.sender to `to`.
     */
    function transfer(
        address to,
        uint256 tokenId
    ) external;
}
/**
 * @dev Required interface of an ERC721 Legacy compliant contract.
 */
function transfer(
    address to,
    uint256 tokenId
) external;

/**
 * @dev Transfers `tokenId` token from msg.sender to `to`.
 */