code: func NewMultiaddrBytes(b []byte) (a Multiaddr, err error) {
  	defer func() {
  		if e := recover(); e != nil {
  			log.Printf("Panic in NewMultiaddrBytes on input %q: %s", b, e)
  			err = fmt.Errorf("%v", e)
  		}
  	}()
  
  	if err := validateBytes(b); err != nil {
  		return nil, err
  	}
  
  	return &multiaddr{bytes: b}, nil
  }
docs: // NewMultiaddrBytes initializes a Multiaddr from a byte representation.
  // It validates it as an input string.