text: public override void Write(byte[] b, int off, int len){if ((off < 0) || (off > b.Length) || (len < 0) ||((off + len) > b.Length) || ((off + len) < 0)){throw new IndexOutOfRangeException();}else if (len == 0){return;}do{CreateBlockIfNeeded();int writeBytes = Math.Min(buffer.Remaining(), len);buffer.Write(b, off, writeBytes);off += writeBytes;len -= writeBytes;} while (len > 0);}