public static void WriteUInt64(this byte[] buffer, int offset, ulong value)
{
buffer[offset++] = (byte)(value >> 56);
buffer[offset++] = (byte)(value >> 48);
buffer[offset++] = (byte)(value >> 40);
buffer[offset++] = (byte)(value >> 32);
buffer[offset++] = (byte)(value >> 24);
buffer[offset++] = (byte)(value >> 16);
buffer[offset++] = (byte)(value >> 8);
buffer[offset++] = (byte)(value);
}