code: func (fh FileHeaders) writeTo4(w io.Writer, buf *bytes.Buffer) error {
  	compressionFlags := make([]byte, 4)
  	binary.LittleEndian.PutUint32(compressionFlags, fh.CompressionFlags)
  
  	if err := writeTo4Header(w, 1, fh.Comment); err != nil {
  		return err
  	}
  	if err := writeTo4Header(w, 2, fh.CipherID); err != nil {
  		return err
  	}
  	if err := writeTo4Header(w, 3, compressionFlags); err != nil {
  		return err
  	}
  	if err := writeTo4Header(w, 4, fh.MasterSeed); err != nil {
  		return err
  	}
  	if err := writeTo4Header(w, 7, fh.EncryptionIV); err != nil {
  		return err
  	}
  	if err := writeTo4VariantDictionary(w, 11, fh.KdfParameters.RawData); err != nil {
  		return err
  	}
  	if err := writeTo4VariantDictionary(w, 12, fh.PublicCustomData); err != nil {
  		return err
  	}
  	// End of header
  	return writeTo4Header(w, 0, []byte{0x0D, 0x0A, 0x0D, 0x0A})
  }
docs: // writeTo4 writes a Kdbx v4 structured file header to the given io.Writer