static string ReadLine(Stream stream, Encoding encoding)
{
var buffer = new List<byte>(8 * 1024);
while (true)
{
var cur = stream.ReadByte();
if (cur < 0)
break;
if (cur == '\r')
continue;
if (cur == '\n')
break;
buffer.Add((byte)cur);
}
if (buffer.Count == 0)
return null;
var res = encoding.GetString(buffer.ToArray());
return res;
}