code: func (r *WrapReader) Read(p []byte) (n int, err error) {
  	n, err = Wrap(r, p, r.off, r.wrapAt)
  	r.off = (r.off + int64(n)) % r.wrapAt
  	return n, err
  }
docs: // Read reads into p starting at the current offset, wrapping if it reaches the end.
  // The current offset is shifted forward by the amount read.