public uint ReadVarLen()
{
uint result = 0;
int shift = 0;
byte read = 0x80;
while ((read&0x80) > 0)
{
read = ReadByte();
result |= (uint)((read & 0x7F) << shift);
shift += 7;
}
return result;
}