import struct


def unpack_uint64(byte_stream, endian="<"):
    """Return list of uint64s, (either endian) from bytes object.

    Unpack a bytes object into list of 64-bit unsigned integers.
    Each 8 input bytes decodes to a uint64.

    Args:
        byte_stream (bytes): length is a multiple of 8
        endian (char, optional): "<" means little-endian unpacking, and
            ">" means big-endian unpacking

    Returns:
        list: unpacked uint64 numbers
    """
    num_uint64 = len(byte_stream) // 8
    out_uint64s = struct.unpack(endian + "Q" * num_uint64, byte_stream)
    return out_uint64s