code: func ReadBits(bigint *big.Int, buf []byte) {
  	i := len(buf)
  	for _, d := range bigint.Bits() {
  		for j := 0; j < wordBytes && i > 0; j++ {
  			i--
  			buf[i] = byte(d)
  			d >>= 8
  		}
  	}
  }
docs: // ReadBits encodes the absolute value of bigint as big-endian bytes. Callers must ensure
  // that buf has enough space. If buf is too short the result will be incomplete.