code: func (msg *MsgFilterLoad) BtcDecode(r io.Reader, pver uint32, enc MessageEncoding) error {
  	if pver < BIP0037Version {
  		str := fmt.Sprintf("filterload message invalid for protocol "+
  			"version %d", pver)
  		return messageError("MsgFilterLoad.BtcDecode", str)
  	}
  
  	var err error
  	msg.Filter, err = ReadVarBytes(r, pver, MaxFilterLoadFilterSize,
  		"filterload filter size")
  	if err != nil {
  		return err
  	}
  
  	err = readElements(r, &msg.HashFuncs, &msg.Tweak, &msg.Flags)
  	if err != nil {
  		return err
  	}
  
  	if msg.HashFuncs > MaxFilterLoadHashFuncs {
  		str := fmt.Sprintf("too many filter hash functions for message "+
  			"[count %v, max %v]", msg.HashFuncs, MaxFilterLoadHashFuncs)
  		return messageError("MsgFilterLoad.BtcDecode", str)
  	}
  
  	return nil
  }
docs: // BtcDecode decodes r using the bitcoin protocol encoding into the receiver.
  // This is part of the Message interface implementation.